我是神经网络初学者。我想通过教计算机下跳棋来学习神经网络的基础知识。其实我想学的游戏是Domineering和 Hex .
这些游戏比较容易保存,规则也比国际象棋简单很多,但是玩的人不多。如果我能把这个想法付诸实践,那将是很好的实验 Combinatorial Game Theory .
PyBrain似乎是 Python 神经网络的明显赢家,但谁能指导我如何为我的游戏任务设置神经网络?谷歌搜索出现了Blondie24 2001 年,但它使用了一些遗传算法 - 我不想让事情复杂化。
请您参考如下方法:
一旦您用机器学习(或者甚至是人工智能,恕我直言)代替“神经网络”,正如评论所正确建议的那样,我认为您会过得更好从 Alpha-beta pruning 开始, Minimax algorithm , 和 Branch and bound想法。
基本上:
- 在每一步中,您都构建所有可能 future 的树,并使用评估函数评估叶节点位置(例如棋盘支配、连通性、 Material 等)
- 在树中向上传播结果,选择你能做出的最好的打法,以及你的对手最差的打法(对他来说最好的),直到你知道在你所处的位置应该采取什么行动。
- 冲洗,重复。如果您有一些好的启发式算法,那么分支定界法可以为您节省大量计算量,并且您的程序级别基本上取决于它能够搜索博弈树的深度。
这很可能是任何人都会引入新想法的基本框架,所以如果您不熟悉它,那就去做吧:-)
