代码改变世界

人工智能遗传算法(最新成果)

2010-03-12 13:03  Tedi  阅读(568)  评论(0编辑  收藏  举报

今天,欣喜的一个晚上,我和吴胜兰(他的网站:www.jadesoul.cn非常美观!)一起商量如何把遗传算法应用到黑白棋中。我们讨论了很多种方法,比如写个万能函数f(g,p)=ap+bp2+cp3……+hg+ig2……总之万能方程非常的复杂,包括幂运算等,而且为不失一般性,系数a,b取值都是无穷大的,那么根本就没办法用二进制进行编码,所以想到这点,这个方法也就舍去了。此外还想到了用数据库记录格局的信息,格局估计有上百万种,信息量相当巨大,虽然可以进行优化,但是实际效果不明显,所以这种方法也舍去。问题的关键就是如何确定适应度函数,经过反复的尝试,以及平时看了一些相关的知识,我们提出了这样一个想法:不妨令f(x)=am+bn+…… 这里a,b为系数,m为稳定子估计值,n为不稳定值估计值,此时很容易可以这样定义a和b,a,b都在[0,1]这里编码就非常容易,可采用8位或者16位进行编码,精度为10的8次方和10的16次方,利用遗传算法求最优值,所得的结果和父代进行对弈,如能战胜父代则选择子代,这样一代代遗传操作,最后就能得到一个稳定的a,b值,使得子代的胜率最高,而且这个胜率在以后子代也是稳定的,这样适应度函数就确定下来了,那么黑白棋的遗传算法也就应运而生。现在还需要解决的问题是程序之间相互对弈,可以制定协议通讯(现在正在开发。。。)。很难想像结果会是怎么样?是非常智能还是比较弱智?期待ing,加油!未完。

                                        

“七”乐无穷,尽在新浪新版博客,快来体验啊~~~请点击进入~