Как следует определять пространства состояний и действий, состояния, действия, награды и выполненные действия в среде с несколькими агентами? - PullRequest
0 голосов
/ 21 января 2020

Версия Ray и другая системная информация (Python версия, версия TensorFlow, ОС): У меня Debian 8.7, python 3.7.4, Tensorflow 2.0.1.

У меня есть пользовательская многоагентная среда, которая использует spaces из gym для определения observaion_space и дискретные action_space, и включает в себя reset и step функции. В этой среде могут быть любые агенты больше одного. Я собираюсь использовать эту среду в ray и запускать различные реализованные мультиагентные алгоритмы там. Теперь, чтобы использовать его с ray, я попробовал свою текущую среду и не работал с какой-то странной ошибкой из-за невозможности прочитать состояние. Итак, я обнаружил, что на самом деле я не знаю, как определить для них в моей среде соответствие с ray. Итак, у меня есть несколько вопросов по этому поводу:

  1. Каким должен быть action_space ? Например, можно думать о list из gym.spaces.Discrete(.) как [gym.spaces.Discrete(.), gym.spaces.Discrete(.), ...], или это может быть словарь таких пробелов, как {0: gym.spaces.Discrete(.), 1: gym.spaces.Discrete(.), ...}, или может быть gym.spaces.Multidiscrete(.). Какой из них предпочитает ray?
  2. Тот же вопрос действителен для observation_space.
  3. Когда мы вызываем env.reset(), он возвращает состояние и может быть списком или словарем. Это состояние должно быть предоставлено ray для запуска алгоритма RL. Опять же, как это должно быть? список или словарь? например [s^0_0, s^0_1, s^0_2, ....] или {0: s^0_0, 1: s^0_1, 2: s^0_2, ....} или что-то еще?
  4. Тот же вопрос действителен для действия, награды и выполнено.

Пожалуйста, дайте мне знать, если мне нужно добавить больше деталей для каждого вопроса.

Заранее спасибо, Афшин

...