gpt4 book ai didi

python - 多智能体健身房环境中的随机智能体

转载 作者:太空宇宙 更新时间:2023-11-03 21:34:46 25 4
gpt4 key购买 nike

我无法为多代理健身房环境选择随机操作。

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

由于对这些多代理环境的讨论还不够,所以我找不到修复程序。

最佳答案

回答我自己的问题,让我们考虑 simple_tag 环境。

此环境的

env.action_space 给出:

[离散(5)、离散(5)、离散(5)、离散(5)](4 个代理)

这是我认为具有误导性的内容。我认为这些操作必须是 4 个元素的列表,例如: [0, 3, 4, 1] 但它期望的是所有操作的一个单热向量(包含 5 个元素) 4 名代理人。所以,对 Action 进行编码的正确方法是:

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

(取决于环境)

关于python - 多智能体健身房环境中的随机智能体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53304915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com