本项目提供了一种基于深度学习和强化学习算法实现的AI斗地主解决方案,并开放了完整源代码供研究与开发使用。
斗地主的deecamp分支提供了可以结合AI的程序引擎,在next_moves中提供按照规则的所有出牌可能性,并需要自己实现从这些选项中选择具体的出牌策略(在myutil中的choose方法)。默认情况下,randomweb分支包括了页面展示功能和可视化调试工具。此外,用户可以选择与人对战。
使用说明如下:
1. 启动server.py
2. 访问rl_pdqn分支模仿OpenAI的实现方式,提供了结合RL的程序引擎,并支持选择对手为随机(random)、陈潇规则(cxgz)或自身(self),但训练时只能同时训练一个玩家且默认为player 1。该分支使用prioritized_dqn作为其模型。
3. 目前胜率如下:对战随机策略约为90%, 对战cxgz策略约为44%。
multi-rl分支模仿OpenAI的实现,允许同时训练多个RL玩家。
mcts分支则采用了蒙特卡洛树搜索(MCTS)算法来暴力解决斗地主问题。