开源星际争霸2多智能体挑战smac

转自:专知

SMAC是Github上的一个用于在暴雪星际争霸2上进行多智能体协同强化学习(MARL)的环境。SMAC用了暴雪星际争霸2的机器学习API和DeepMing的PySC2为智能体与星际争霸2的交互提供了友好的接口,方便开发者观察和执行行动。


项目地址


https://github.com/oxwhirl/smac


安装SMAC

 
  

pip install git+https://github.com/oxwhirl/smac.git

另外,星际争霸2也是要安装的。


示例代码


在下面的代码中,独立的智能体在接收到观察和全局状态后会执行随机策略。

 
  

from smac.env import StarCraft2Env
import numpy as np


def main():
   env = StarCraft2Env(map_name="8m")
   env_info = env.get_env_info()

   n_actions = env_info["n_actions"]
   n_agents = env_info["n_agents"]

   n_episodes = 10
   
for e in range(n_episodes):
       env.reset()
       terminated = False
       
episode_reward = 0
       
while not terminated:
           obs = env.get_obs()
           state = env.get_state()

           actions = []
           for agent_id in range(n_agents):
               avail_actions = env.get_avail_agent_actions(agent_id)
               avail_actions_ind = np.nonzero(avail_actions)[0]
               action = np.random.choice(avail_actions_ind)
               actions.append(action)

           reward, terminated, _ = env.step(actions)
           episode_reward += reward

       print("Total reward in episode {} = {}".format(e, episode_reward))

   env.close()


推荐阅读

滴滴官宣裁员

入门 | 一步步教你构建 NLP pipeline

写 Python 时的 5 个坏习惯

158万张图像的鉴黄数据集

抖音爬虫 | 手把手教你下载指定的Douyin视频

资源 | 正则表达式的功法大全

春节假期十大AI事件,看看你都错过了啥

GitHub不为人知的小秘密…让你的工作更高效

640?wx_fmt=png

猜你喜欢

转载自blog.csdn.net/qq_28168421/article/details/87485278