2018-02-06 神经网络初探——遗传算法

零、软件功用和我使用背景

纯学习,一点小小的问题是范例是c++写的,我喜欢用python,所以用python自己写一遍嘛。代码很简单。

一、参考文献及我的评判

二、意外问题一览

三、基本流程命令

题目的要求是用遗传算法,训练一个能走出迷宫的机器人,对各种迷宫提供解决路径。

思路,首先将任意一个迷宫,以一个二维数组来表示,形态如下:

[(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),

(1,0,1,0,0,0,0,0,1,1,1,0,0,0,1),

(5,0,0,0,0,0,0,0,1,1,1,0,0,0,1),

(1,0,0,0,1,1,1,0,0,1,0,0,0,0,1),

(1,0,0,0,1,1,1,0,0,0,0,0,1,0,1),

(1,1,0,0,1,1,1,0,0,0,0,0,1,0,1),

(1,0,0,0,0,1,0,0,0,0,1,1,1,0,1),

(1,0,1,1,0,0,0,1,0,0,0,0,0,0,8),

(1,0,1,1,0,0,0,1,0,0,0,0,0,0,1),

(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)]

5为入口,8为出口,1不可行动。

嗯,我写了个遗传算法,思路步骤如下。根据离出口的距离进行评分,距离越小,评分越高。

1、产生100个初始样本,对它们的唯一要求是需要落在可用位置。

2、进行评分,评分高的,会有更大的几率进行交配

3、每次交配产生若干胎儿,并进行变异,仍然存活的会成为新一代

4、重复交配行为,直到再次产生100个样本

4、循环,每100代,保存此100个样本记录。这些样本可用作初始样本,即保存了之前的运算成果。

5、评分达到满分,终止循环,走出了迷宫。

6、或连续100代的最高评分不变,认为已经无法继续进化,终止循环。


最后没有代码只讲思路都是耍流氓,所以代码放在github上。shblhy   嗯。

你可能感兴趣的:(2018-02-06 神经网络初探——遗传算法)