1 / 5
文档名称:

遗传算法解迷宫.doc

格式:doc   大小:72KB   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

遗传算法解迷宫.doc

上传人:n22x33 2018/6/11 文件大小:72 KB

下载得到文件列表

遗传算法解迷宫.doc

文档介绍

文档介绍:实验要求:
一个迷宫,左边有一入口(红色方块),右边有一出口(红色方块),并有一些障碍物(黑色方块)散布在其中。然后在出发点放置一个虚拟人Bob,使用遗传算法编程实现路径寻找方案,使他能找到出口,并避免与所有障碍物相碰撞。
怎样来产生Bob的染色体的编码?
怎样进行适应度评价?
围绕染色体编码、初始群体的设定、适应度函数的设计、遗传操作设计、控制参数设定五个要素进行文档说明
提交完整的软件系统和相关文档,包括源程序和可执行程序。(编程语言C,C++, Java任选其一)
要求程序执行时能显示当前个体的代数以及适应度函数值
实验原理
遗传算法
遗传算法(ic Algorithm)是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法。,其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。遗传算法的这些性质,已被人们广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域。它是现代有关智能计算中的关键技术。
对于一个求函数最大值的优化问题(求函数最小值也类同),一般可以描述为下列数学规划模型:
式中为决策变量,为目标函数式,式2-2、2-3为约束条件,U是基本空间,R是U的子集。满足约束条件的解X称为可行解,集合R表示所有满足约束条件的解所组成的集合,称为可行解集合。
遗传算法的基本运算过程如下:
a)初始化:设置进化代数计数器t=0,设置最大进化代数T,随机生成M个个体作为初始群体P(0)。
b)个体评价:计算群体P(t)中各个个体的适应度。
c)选择运算:将选择算子作用于群体。选择的目的是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。选择操作是建立在群体中个体的适应度评估基础上的。
d)交叉运算;将交叉算子作用于群体。所谓交叉是指把两个父代个体的部分结构加以替换重组而生成新个体的操作。遗传算法中起核心作用的就是交叉算子。
e)变异运算:将变异算子作用于群体。即是对群体中的个体串的某些基因座上的基因值作变动。群体P(t)经过选择、交叉、变异运算之后得到下一代群体P(t 1)。
f)终止条件判断:若tT,则以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算。
数据结构
Jie类记录遗传编码及其相关操作
用一个70位的int数组来表示一个基因组,其中每2位表示一步(00上01下10左右11)。因为迷宫大小固定为15*8,所以35步肯定能找到结果了。该类包含了基本的get、set操作,其中有一个名为getquan的函数,调用它将返回这个基因所代表的走法离出口最近的时候的权值.
2) jieji类代表一个由10个基因组成的种群,包含了交叉、变异、选择和GET、SET函数
public int xuanze()::评价+选择函数。
先扫描记录所有基因的权值,如果找到了一个解则直接打印。
然后通过轮盘法选择后代。依次累加读入的权值,将其除以总权值得到一个百分数;产生一个随机数,通过判断它落在了哪个区间选择后代。
pub