如何用遗传算法写黑白棋(或其他类似游戏)的AI?

locusxt 发布于 2013/05/20 21:31
阅读 1K+
收藏 4
之前写一个AI时考虑过遗传算法,但是由于技术有限,对遗传算法的理解不深,不知道如何将问题转化成遗传算法可以解决的问题。能不能提供五子棋、黑白棋之类的基于遗传算法的AI程序,让我参考一下。也欢迎各位朋友提提自己对遗传算法的看法。
加载中
0
Dr.Who
Dr.Who

引用来自“梅开源”的答案

引用来自“cut”的答案

黑白棋用alpha-beta那种基于决策树的算法做,神马遗传算法人工神经网络在天朝都tmd叫兽忽悠人用的,先不说像那样发散的算法对性能带来多大的影响,关键很jb多人连那些算法怎么用都不会就开始吹水

强烈赞同! 谢谢你让我一大清早就神清气爽!

我迄今就没见过几个把神经网络和遗传算法的实现做得像点现代程序的。基本都是不知道哪里抄个原始的TSP问题或者三层的神经网络,里面一堆int就能象征各种现实逻辑,然后写个论文吹嘘用此算法取得了较好成果,有待进一步优化。要不就是集中精力对付遗传算法的收敛,怎么用都搞不清楚一个有效解都没有就怕算法收敛于区间取不到最优解。

虽然不知道你都看了些什么论文,但实际上这种简单的棋类游戏用神经网络或遗传算法能取得比决策树好的多的效果.
locusxt
locusxt
回复 @Dr.Who : 问题是我们平常的测试平台生成的地图是小型的,比赛是大型地图。。。
Dr.Who
Dr.Who
回复 @locusxt : 拿去比赛当然是先train好,要不比什么?
locusxt
locusxt
这个游戏的不同点在于地图是随机生成的。我应该在比赛前利用遗传算法获取普遍最佳的策略,还是在比赛时用遗传算法找到最佳下法?
0
王振威
王振威
遗传算法一般是求最优解的,而对于棋牌类AI程序来讲关键是局面评价函数,个人认为这类AI不适合用遗传算法来解
0
cut
cut
黑白棋用alpha-beta那种基于决策树的算法做,神马遗传算法人工神经网络在天朝都tmd叫兽忽悠人用的,先不说像那样发散的算法对性能带来多大的影响,关键很jb多人连那些算法怎么用都不会就开始吹水
0
梅开源
梅开源

引用来自“cut”的答案

黑白棋用alpha-beta那种基于决策树的算法做,神马遗传算法人工神经网络在天朝都tmd叫兽忽悠人用的,先不说像那样发散的算法对性能带来多大的影响,关键很jb多人连那些算法怎么用都不会就开始吹水

强烈赞同! 谢谢你让我一大清早就神清气爽!

我迄今就没见过几个把神经网络和遗传算法的实现做得像点现代程序的。基本都是不知道哪里抄个原始的TSP问题或者三层的神经网络,里面一堆int就能象征各种现实逻辑,然后写个论文吹嘘用此算法取得了较好成果,有待进一步优化。要不就是集中精力对付遗传算法的收敛,怎么用都搞不清楚一个有效解都没有就怕算法收敛于区间取不到最优解。

0
梅开源
梅开源
如果要用遗传算法做黑白棋AI,要实现对AI的下棋规则逻辑的保存。随机生成大量AI然后让它们去拼去,胜率高的交配和自我微调吧。
0
locusxt
locusxt

引用来自“梅开源”的答案

引用来自“cut”的答案

黑白棋用alpha-beta那种基于决策树的算法做,神马遗传算法人工神经网络在天朝都tmd叫兽忽悠人用的,先不说像那样发散的算法对性能带来多大的影响,关键很jb多人连那些算法怎么用都不会就开始吹水

强烈赞同! 谢谢你让我一大清早就神清气爽!

我迄今就没见过几个把神经网络和遗传算法的实现做得像点现代程序的。基本都是不知道哪里抄个原始的TSP问题或者三层的神经网络,里面一堆int就能象征各种现实逻辑,然后写个论文吹嘘用此算法取得了较好成果,有待进一步优化。要不就是集中精力对付遗传算法的收敛,怎么用都搞不清楚一个有效解都没有就怕算法收敛于区间取不到最优解。

我们在进行一个AI比赛(不是黑白棋,但类似),要不是老师说他的一个学生几年前写的一个遗传算法怎么怎么强,我也不会想到遗传算法的。想不通这究竟是怎么弄的。
然后草草写了个贪心,效果貌似还行。。

0
locusxt
locusxt

引用来自“梅开源”的答案

如果要用遗传算法做黑白棋AI,要实现对AI的下棋规则逻辑的保存。随机生成大量AI然后让它们去拼去,胜率高的交配和自我微调吧。

http://wenku.baidu.com/view/a52b42a10029bd64783e2cf9.html
题目就是这道。有兴趣的话可以看一下。。。

0
梅开源
梅开源

引用来自“Dr.Who”的答案

引用来自“梅开源”的答案

引用来自“cut”的答案

黑白棋用alpha-beta那种基于决策树的算法做,神马遗传算法人工神经网络在天朝都tmd叫兽忽悠人用的,先不说像那样发散的算法对性能带来多大的影响,关键很jb多人连那些算法怎么用都不会就开始吹水

强烈赞同! 谢谢你让我一大清早就神清气爽!

我迄今就没见过几个把神经网络和遗传算法的实现做得像点现代程序的。基本都是不知道哪里抄个原始的TSP问题或者三层的神经网络,里面一堆int就能象征各种现实逻辑,然后写个论文吹嘘用此算法取得了较好成果,有待进一步优化。要不就是集中精力对付遗传算法的收敛,怎么用都搞不清楚一个有效解都没有就怕算法收敛于区间取不到最优解。

虽然不知道你都看了些什么论文,但实际上这种简单的棋类游戏用神经网络或遗传算法能取得比决策树好的多的效果.
刚看了下,是我out了。我是06年研究过这个,中间偶尔关注过,看来有点新发展。
0
cut
cut

引用来自“locusxt”的答案

引用来自“梅开源”的答案

引用来自“cut”的答案

黑白棋用alpha-beta那种基于决策树的算法做,神马遗传算法人工神经网络在天朝都tmd叫兽忽悠人用的,先不说像那样发散的算法对性能带来多大的影响,关键很jb多人连那些算法怎么用都不会就开始吹水

强烈赞同! 谢谢你让我一大清早就神清气爽!

我迄今就没见过几个把神经网络和遗传算法的实现做得像点现代程序的。基本都是不知道哪里抄个原始的TSP问题或者三层的神经网络,里面一堆int就能象征各种现实逻辑,然后写个论文吹嘘用此算法取得了较好成果,有待进一步优化。要不就是集中精力对付遗传算法的收敛,怎么用都搞不清楚一个有效解都没有就怕算法收敛于区间取不到最优解。

我们在进行一个AI比赛(不是黑白棋,但类似),要不是老师说他的一个学生几年前写的一个遗传算法怎么怎么强,我也不会想到遗传算法的。想不通这究竟是怎么弄的。
然后草草写了个贪心,效果貌似还行。。

遗传算法,神经网络等等这些算法都是要基于“学习”才能变得越来越牛逼,但学的东西越多,虽然会越来越犀利,但同时占的资源越来越大,性能越来越低,这就是发散算法sb的地方,你拿一个没训练过的遗传算法去比赛,劝你不要比了。

用alpha-beta算法随便搞个10步预测,正常智力的人搞不赢电脑,而且速度很快。如果你一定要什么遗传算法做,倒可以考虑用棋谱那种思路,但初始棋谱的犀利程度直接影响你比赛的成绩。所以哥可以认为你老师几年前那个学生不是他算法写的牛逼,而是他使用的棋谱牛逼。比起你学习怎么使用遗传算法,你研究下怎么建立一个犀利的初始棋谱比较好。不然没等你算法学习好,第一场比赛就出局。

返回顶部
顶部