Случайный агент в мультиагентной спортивной среде

Я не могу выбирать случайные действия для мультиагентных спортивных залов.

def make_env(scenario_name, benchmark=False):

    from multiagent.environment import MultiAgentEnv
    import multiagent.scenarios as scenarios

    # load scenario from script
    scenario = scenarios.load(scenario_name + ".py").Scenario()
    # create world
    world = scenario.make_world()
    # create multiagent environment
    if benchmark:        
        env = MultiAgentEnv(world, scenario.reset_world, scenario.reward, scenario.observation, scenario.benchmark_data)
    else:
        env = MultiAgentEnv(world, scenario.reset_world, scenario.reward, scenario.observation)
    return env

env = make_env('simple_tag')
env.reset()
for i in range(100):
    env.render()
    actions = [action_space.sample() for action_space in env.action_space]
    env.step(actions)

Приведенный выше код выдает эту ошибку:

Traceback (most recent call last):
  File "hello.py", line 22, in <module>
    env.step(actions)
  File "c:\multiagent-particle-envs\multiagent\environment.py", line 88, in step
    self._set_action(action_n[i], agent, self.action_space[i])
  File "c:\multiagent-particle-envs\multiagent\environment.py", line 174, in _set_action
    agent.action.u[0] += action[0][1] - action[0][2]
TypeError: 'int' object is not subscriptable

Я не могу найти решение, так как не хватает разговоров об этих мультиагентных средах.

1 ответ

Решение

Отвечая на мой собственный вопрос, давайте рассмотрим среду simple_tag.

env.action_space для этой среды дает:

[Discrete(5), Discrete(5), Discrete(5), Discrete(5)] (4 агента)

Это то, что я нашел в заблуждение. Я думал, что действия должны быть списком из 4 элементов, что-то вроде: [0, 3, 4, 1] но то, что он ожидает, - это горячий вектор (из 5 элементов) для всех 4 агентов. Итак, правильный способ кодирования действий:

[array([1., 0., 0., 0., 0.]), array([0., 0., 1., 0., 0.]), array([0., 0., 0., 0., 1.]), array([0., 0., 0., 1., 0.])]

(в зависимости от окружающей среды)

Другие вопросы по тегам