简单加密¶

警告
环境 pettingzoo.mpe.simple_crypto_v3 已迁移到新的 MPE2 包,并将在未来版本中从 PettingZoo 中移除。请将你的导入更新为 mpe2.simple_crypto_v3。
此环境是 MPE 环境 的一部分。请先阅读该页面以获取一般信息。
导入 |
|
---|---|
动作 |
离散/连续 |
Parallel API |
是 |
手动控制 |
否 |
智能体 |
|
智能体 |
2 |
动作形状 |
(4) |
动作值 |
离散(4)/Box(0.0, 1.0, (4)) |
观测形状 |
(4),(8) |
观测值 |
(-inf,inf) |
状态形状 |
(20,) |
状态值 |
(-inf,inf) |
在此环境中,有 2 个善良的智能体(Alice 和 Bob)和 1 个对抗智能体(Eve)。Alice 必须通过公共信道向 Bob 发送一个私有的 1 位消息。如果 Bob 重建了消息,Alice 和 Bob 将获得 +2 的奖励;如果 Eve 重建了消息,他们将获得 -2 的奖励(如果双方都重建了该位,总奖励为 0)。如果 Eve 无法重建信号,则奖励为 -2;如果可以,则奖励为 0。Alice 和 Bob 拥有一个私钥(在每个回合开始时随机生成),他们必须学习使用该私钥来加密消息。
Alice 观测空间:[message, private_key]
Bob 观测空间:[private_key, alices_comm]
Eve 观测空间:[alices_comm]
Alice 动作空间:[say_0, say_1, say_2, say_3]
Bob 动作空间:[say_0, say_1, say_2, say_3]
Eve 动作空间:[say_0, say_1, say_2, say_3]
对于 Bob 和 Eve,会检查他们的通信内容是否是 Alice 试图传达的那个 1 位信息。
参数¶
simple_crypto_v3.env(max_cycles=25, continuous_actions=False, dynamic_rescaling=False)
max_cycles
:游戏终止前的帧数(每个智能体的一步)
continuous_actions
:智能体的动作空间是离散(默认)还是连续
dynamic_rescaling
:是否根据屏幕大小重新缩放智能体和地标的大小
用法¶
AEC¶
from pettingzoo.mpe import simple_crypto_v3
env = simple_crypto_v3.env(render_mode="human")
env.reset(seed=42)
for agent in env.agent_iter():
observation, reward, termination, truncation, info = env.last()
if termination or truncation:
action = None
else:
# this is where you would insert your policy
action = env.action_space(agent).sample()
env.step(action)
env.close()
Parallel¶
from pettingzoo.mpe import simple_crypto_v3
env = simple_crypto_v3.parallel_env(render_mode="human")
observations, infos = env.reset()
while env.agents:
# this is where you would insert your policy
actions = {agent: env.action_space(agent).sample() for agent in env.agents}
observations, rewards, terminations, truncations, infos = env.step(actions)
env.close()