为问题的满意解或最优界。停止条件有两种:一是完成了预先给定的进化代数则停止;二是种群中的最优个体在连
续若干代没有改进或平均适应度在连续若干代基本没有改进时停止。遗传算法过程图如图1:
开始初始化种群计算适应度值
选择操作交叉操作变异操作条件停止适应度最优群体
结束
图1:遗传算法过程框图
3遗传算法MATLAB代码实现
遗传算法中控制参数如下:Clist城市的坐标,dislist城市距离矩阵,i
初始种群的大小,g
max最大代数,pc交叉概率pm变异概率。31开始准备
先读入文件,读入574个城市坐标读入矩阵,并计算城市距离。如代码:
32初始化种群
f遗传算法对求解问题本身是一无所知的,这里采用随机生成初始化种群,如下:计算适应度值,适应度值是根据适应度函数来计算的,如适应度函数代码如下:
33选择操作选择的目的是为了从当前群体中选出优良的个体,使它们有机会作为父代产生后代个
体,如代码:
34交叉操作
f许多生物的繁衍是通过染色体的交叉完成的,在遗传算法中使用这一概念,并把交叉作为遗传算法的一个操作算子,其实现过程是对选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率Pc,在选择的位置实行交换,目的在于产生新的基因组合,即新的个体(这里由于源代码太多不列出)35变异操作
是按一定概率随机改变某个个体的基因值,以变异概率Pm对某个个体的某些位执行变异,在变异时,对执行变异的串的对应位求反,如代码:
最后根据具体条件判断是否返回或是继续,最后当满足条件是输出适应度最优群体。
4实验分析
实验硬件环境为普通笔记本电脑,内存2GB,CPU频率20GHz。软件环境为Wi
dowsXPProfessio
alSP3操作系统,Matlab71。实验对象是574个城市的旅行商问题。
读入574个城市的坐标,如图1:
图1:574个城市坐标的两种显示
41改变种群数量的对比当参数设置为种群大小为100,最大迭代次数2000,交叉概率085,变异概率为005的
时候对574个城市求解,如图2。当参数设置为种群大小为50,最大迭代次数2000,交叉概率085,变异概率为005的
时候对574个城市求解,如图3。当参数设置为种群50,最大迭代次数为5000,交叉概率085,变异概率为005的时候
f对574个城市求解,如图4
图2:种群为100最大迭代次数为2000的TSP问题求解结果
图3:种群为50最大迭代次数为2000的TSP问题求解结果
图4:种群为50最大迭代次数为5000的TSP问题求解结果
通过上述种群大小可知迭代越大求解的结果越优化,但是确花费了大量时间,种群越大
fr