- 博客(11)
- 资源 (5)
- 收藏
- 关注
原创 游戏编程中的人工智能技术-扫雷机系列
是时候更新一波博客了! 在“神经网络入门”系列里,buckland大神制作了一款扫雷机程序,动画效果如下:初代扫雷机:可以看到也多的扫雷机在打圈。运行8代以后,好多了:这几天作者在其上面加了死亡功能,动画效果如下:可以看到那些一直疯狂打圈的扫雷机是弱智的扫雷机,在一段时间过后,被清除并且被重新替代。运行8代以后:不过可以发现这个程序
2016-07-26 10:31:33 2908 1
原创 游戏编程中的人工智能技术-演化算法入门
buckland大神的每一章都很经典,少了任何一章都会感到不完整。今天先介绍第十章-演化算法。因为这是人工生命的基础。大名鼎鼎的tierra就是采用了演化算法。(什么是Tierra?看这里点击打开链接) 演化算法的思路就是让弱小的生命体“死亡”,再让强大的生命体代替“死亡”的生命体,从而保证种群的一直延续,并且,生命体基于求生的本能,避免被“死亡”,会衍生出各种叹为观止的新行为,称之为生
2016-07-20 09:09:04 1894
原创 游戏编程中的人工智能技术-神经网络入门(四)
接下来到了最后一个类:CController控制器类了。CController可以算是所有类的一个综合,将所有类结合起来,成为了一个可以工作的系统,其重要性不言而喻。不过由于作者对windows程序编程实在不了解,只能挑一部分介绍。class CController{private: //storage for the population of genomes vector
2016-07-19 22:25:13 1061
原创 游戏编程中的人工智能技术-神经网络入门(三)
前两节提到了神经网络部分和遗传算法部分,那么代码就到此结束了吗?当然没有,无论什么算法,总要针对一个特定的对象进行使用不是?因此,本节介绍另一个部分,CMinesweeper,即扫雷机代码。class CMinesweeper{private: //the minesweeper's neural net CNeuralNet m_ItsBrain;//扫雷机的大脑,在这里就是一
2016-07-19 21:19:53 1424
原创 游戏编程中的人工智能技术-神经网络入门(二)
上一节介绍了代码的第一个部分:神经网络部分。那么光有神经网络就可以工作了吗?还不行,因为还没有设计神经网络的训练方法,即还没有设计神经网络权重的更新方法。在传统的有监督的神经网络中,先给一个训练集让神经网络进行训练。 等等,啥叫训练集?啥叫训练?举个例子,你首先告诉神经网络1+1=2,1+2=3,1+3=4,这个就是训练集,你不仅告诉了神经网络问题,你还把结果也告诉它了,神经网络会根据问
2016-07-19 12:46:56 3118
原创 游戏编程中的人工智能技术-神经网络入门(一)
有一段时间没有更新了,原本是准备更新TSP-旅行商问题,不过感觉在TSP问题的章节中,Buckland大神写的过于理论化,不是几篇博客可以解释的通的,我自己还有很多问题没有搞清楚。因此先跳到第七章-神经网络入门。 神经网络近段时间可以算是大热了,自从阿尔法狗击败李世石后,深度学习和卷积神经网络成了热门话题,不搞点cnn、caffe都不好意思跟别人说话。不过再怎么吹好歹先打好基础是不是,否
2016-07-18 22:39:52 2902 1
原创 游戏编程中的人工智能-遗传算法入门(五)
前面介绍了例程,接下来运行程序,看看有哪些注意事项。问题1:每一条染色体都是35个基因吗?答案:是的。问题2:那么不会有冗余吗?答案:肯定有冗余。问题3:我怎么没看出来?为什么我只数出22个?答案:你看到的并不一定是全部的,有时候Bob在某个地方徘徊,或撞了多次墙,只不过没有画出来而已。问题4:那既然有冗余,是不是不太好呀?答案:当然不太好,不过因为这一章是
2016-06-04 21:56:39 1162
原创 游戏编程中的人工智能技术-遗传算法入门(四)
接下来介绍SGenome结构体。struct SGenome{ vector vecBits; double dFitness; SGenome():dFitness(0){} SGenome(const int num_bits):dFitness(0) { //create a random bit string for (int i=0; i<num_
2016-06-01 08:29:41 1521
原创 游戏编程中的人工智能技术-遗传算法入门(三)
先请教大家一个问题,为什么我的遗传算法入门(一)一直处于“待审核”状态?好,言归正传,继续研究代码。先看看CBobsMap类的定义。#include "defines.h"using namespace std;class CBobsMap{private: //storage for the map static const int map[MAP_HEIGH
2016-06-01 07:17:33 4964
原创 游戏编程中的人工智能技术-遗传算法入门(二)
ok,现在开始介绍程序。路径如下,文件名为Pathfinder。先运行下,看看效果。一个走迷宫程序,按下回车,用遗传算法走通了。注意:右下方为起点,左上方为终点。好,程序走起!注意,1:若想使用VC的调试功能,则必须文件路径为纯英文,因此上面的路径肯定不行啦。 2:游戏设置需要改变,具体见点击打开链接,否则无法进行调试。
2016-05-31 22:57:49 1726
原创 游戏编程中的人工智能技术-第三章:遗传算法入门(一)
写在算法之前:1、遗传算法的本质是优胜劣汰,优胜劣汰的方法是轮盘赌选择。 2、学习遗传算法程序的关键是:遗传算法使用的情境是什么,如何在情境中使用遗传算法。遗传算法只是理论,你如何在实际的情境中构造它?还有的关键是:了解什么时候认为遗传算法已经成功。
2016-05-31 21:37:27 2961
MATLAB Link for CCS Development Tools在DSP系统设计中的应用
2009-05-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人