# bomberman-rl-agents **Repository Path**: loxs/bomberman-rl-agents ## Basic Information - **Project Name**: bomberman-rl-agents - **Description**: 环境:https://github.com/ukoethe/bomberman_rl 包含强化学习各类算法 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-08-28 - **Last Updated**: 2025-03-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 简要介绍 环境:https://github.com/ukoethe/bomberman_rl 该环境为一个游戏(炸弹人),Agent任务是吃掉更多的金币或者炸掉更多其他的Agent,游戏刚刚开始时,有很多的箱子,然后Agent可以前/后/左/右/等待/扔炸弹,这些箱子可以被炸弹炸毁,有几率出现金币,吃到一个金币得1分,炸掉一个Agent得5分。最终比赛有4个agent,得分最高的Agent获胜。 - 游戏截图 ![游戏截图](./dqn_hierarchical_agent/images/游戏截图.jpg) ## 运行程序 把[github代码](https://github.com/ukoethe/bomberman_rl)的events.py用本仓库的替换,然后将dqn_hierarchical_agent目录拷贝至其agents目录。 ### 环境 python 3.6及以上 ``` pygame numpy torch ``` ### 训练coin-heaven环境 该环境中没有箱子,一开始全是金币,因此要比classic环境简单很多。也可以和其他agent一起训练。 ``` python main.py play --agents dqn_hierarchical_agent --scenario coin-heaven --train 1 --n-rounds 200 --no-gui python main.py play --agents dqn_hierarchical_agent rule_based_agent --scenario coin-heaven --train 1 --n-rounds 200 --no-gui ``` ### 测试coin-heaven环境 ``` python main.py play --agents dqn_hierarchical_agent --scenario coin-heaven python main.py play --agents dqn_hierarchical_agent rule_based_agent --scenario coin-heaven ``` ### 训练classic环境 ``` python main.py play --agents dqn_hierarchical_agent --scenario classic --train 1 --n-rounds 200 --no-gui python main.py play --agents dqn_hierarchical_agent rule_based_agent --scenario classic --train 1 --n-rounds 200 --no-gui ``` ### 测试classic环境 ``` python main.py play --agents dqn_hierarchical_agent --scenario classic python main.py play --agents dqn_hierarchical_agent rule_based_agent --scenario classic ``` ## 方法简要介绍 - 分层强化学习 ![分层强化学习](./dqn_hierarchical_agent/images/分层强化学习.jpg) - 状态编码 ![状态编码](./dqn_hierarchical_agent/images/状态编码.jpg) - 高层次模型 ![高层次模型](./dqn_hierarchical_agent/images/分层强化学习-高层次模型.jpg) - 低层次模型 ![低层次模型](./dqn_hierarchical_agent/images/分层强化学习-低层次模型.jpg) ## 改进思路 ### 高层agent的绩效奖励应该多一些,另外吃金币的奖励应该大于炸箱子 ### 奖励分级更细致,如被炸弹炸死,这个仅仅和最近几步的动作相关,仅需要惩罚这几步即可,这里低层次模型需要分三级奖励,即时奖励(单步、完成事件2)、短期奖励(被炸死)、长期奖励 ### 训练时,需要设置一个ε随机采样