神经网络深入(连载10)一个demo程序
2017-01-25 13:50
330 查看
游戏编程中的人工智能技术
连载10 一个demo程序
11.4.6 运行Demo程序
为了实际演示NEAT程序,我已把第8章“为你的 Bot提供知觉”中的扫雷机代码外挂了(pluggedin)进去,我想你一定会因NEAT执行得如此相似而感到惊喜!你可以自己编译源程序再来运行,也可以直接运行执行程序Sweepers.exe。源程序和可执行程序均能在光盘相关的文件夹中找到。
和以前一样,F键用来加快演化过程,R键用来重新开始(复位),按下数字键1-4显示扫雷机的“足迹”。
和第8章不同,我们这一次还建立了一个附加的窗口,在其中画出了被创建出来的4个最好的扫雷机的表现型,如图11.22所示。
激活的前向连接用灰线画出,抑制的前向连接用黄线画出。激活的联接用红线画出,抑制的联接用蓝线画出。从偏移神经细胞来的任何连接显示成绿色。连接线的粗细指示了权重的大小。
表11.4 列出了本工程的缺省值设置。
图11.22 NEAT扫雷机在行动
表11.4 NEAT 扫雷机工程的缺省设置
11.5 本章小结(Summary)
在这一章中你已经走过了一段很远的路程,在此过程中你也学到了许多的东西。为了帮助你理解,我在本章所介绍的NEAT I 程序已经作过了简化,为了好奇,去考察一下Ken Stanley和Risto Miikkulainen的原始程序是值得的,从那里你能获得有关NEAT的更完整的见识。你可以在下面的网站上找到有关NEAT的源码和其他文章:
http://www.cs.utexas.edu/users/kstanley/
11.6 练习题(Stuff to try)
L.在原有代码工程中加进一段代码,使物种的数目由用户规定大小范围。
2.设计一些不同的突变操作。
3.在原有代码工程中增加种内配对杂交。
4.为本章前面描述的其他的一种网络拓扑演化方法进行编码。
连载10 一个demo程序
为了实际演示NEAT程序,我已把第8章“为你的 Bot提供知觉”中的扫雷机代码外挂了(pluggedin)进去,我想你一定会因NEAT执行得如此相似而感到惊喜!你可以自己编译源程序再来运行,也可以直接运行执行程序Sweepers.exe。源程序和可执行程序均能在光盘相关的文件夹中找到。
和以前一样,F键用来加快演化过程,R键用来重新开始(复位),按下数字键1-4显示扫雷机的“足迹”。
和第8章不同,我们这一次还建立了一个附加的窗口,在其中画出了被创建出来的4个最好的扫雷机的表现型,如图11.22所示。
激活的前向连接用灰线画出,抑制的前向连接用黄线画出。激活的联接用红线画出,抑制的联接用蓝线画出。从偏移神经细胞来的任何连接显示成绿色。连接线的粗细指示了权重的大小。
表11.4 列出了本工程的缺省值设置。
图11.22 NEAT扫雷机在行动
表11.4 NEAT 扫雷机工程的缺省设置
扫雷机参数 | |
参 数 名 称 | 缺 省 设 置 值 |
触觉器数目 | 5 |
触觉器探测距离(单位:pixel) | 25 |
扫雷器数目 | 50 |
最大产出(turn)率 | 0.2 |
大小(Scale) | 5 |
| |
演化用参数 | |
参 数 名 称 | 缺 省 设 置 值 |
每1代(epoch)的“滴答”(tick)数 | 2000 |
加入1个链接(link)的几率 | 0.007 |
加入1个节点(node)的几率 | 0.003 |
加入1个链接的几率 | 0.005 |
杂交(crossover)率 | 0.7 |
权重突变率 | 0.1 |
最大突变骚扰率 | 0.5 |
权重被置换概率 | 0.1 |
激励响应突变率 | 0.1 |
物种相容性阈值 | 0.26 |
物种老龄期阈值 | 50 |
物种老年惩罚 | 0.7 |
物种青春期阈值 | 10 |
物种年轻奖励 | 1.3 |
在这一章中你已经走过了一段很远的路程,在此过程中你也学到了许多的东西。为了帮助你理解,我在本章所介绍的NEAT I 程序已经作过了简化,为了好奇,去考察一下Ken Stanley和Risto Miikkulainen的原始程序是值得的,从那里你能获得有关NEAT的更完整的见识。你可以在下面的网站上找到有关NEAT的源码和其他文章:
http://www.cs.utexas.edu/users/kstanley/
L.在原有代码工程中加进一段代码,使物种的数目由用户规定大小范围。
2.设计一些不同的突变操作。
3.在原有代码工程中增加种内配对杂交。
4.为本章前面描述的其他的一种网络拓扑演化方法进行编码。
相关文章推荐
- 神经网络深入(连载1)神经网络的拓扑
- Win(Phone)10开发第(3)弹,简单的Demo程序网络请求json解析列表显示
- 神经网络深入(连载6)物种形成
- 神经网络深入(连载4)拓扑扩张
- 神经网络深入(连载8)基因变成表现形
- [连载]《C#通讯(串口和网络)框架的设计与实现》- 10.宿主程序详细设计
- 神经网络深入(连载5)算子与创新
- 神经网络深入(连载2)直接编码
- 神经网络深入(连载9)神经网络类
- 神经网络深入(连载3)间接编码
- [连载]《C#通讯(串口和网络)框架的设计与实现》- 10.宿主程序详细设计
- 神经网络深入(连载7)更换时代
- 神经网络入门(连载之四)
- 一个定时网络唤醒的Windows 2000服务(Service)程序
- 一个网络扫描程序
- 用RichEditCtrl写的一个读取.rtf格式的程序(rtfdemo)
- 60}的C程序 高手帮忙写下`` 46 35 27 21 16 10 9 5 然后输出数组a。已知 int a[11]={1 使数组a仍然有序 将x插入到有序整型数组a中 由键盘输入一个整数x
- (图)做了一个小程序winfrom,包括资讯,天气,邮件监视,播放器,网络电台,备忘提醒。(提供源代码)
- 神经网络入门连载之四
- 网络上传播的一个女生编的c++语言程序