文章目录
概述
遗传算法
遗传算法的基本思想是从初始种群出发,采用优胜劣汰、 适者生存的自然法则选择个体,并通过杂交、变异来产生新
一代种群,如此逐代进化,直到满足目标为止。遗传算法所 涉及到的基本概念主要有以下几个:
•种群(Population):种群是指用遗传算法求解问题时, 初始给定的多个解的集合。遗传算法的求解过程是从这个子 集开始的。
•个体(Individual):个体是指种群中的单个元素,它通常由一个用于描述其基本遗传结构的数据结构来表示。例如,
可以用0、1组成的长度为l的串来表示个体。
• 染色体(Chromosome):染色体是指对个体进行编码后
所得到的编码串。染色体中的每1位称为基因,染色体上由若干个基因构成的一个有效信息段称为基因组。 •
• 适应度(Fitness)函数:适应度函数是一种用来对种群中 各个个体的环境适应性进行度量的函数。其函数值是遗传算法实现优胜劣汰的主要依据 .
• 遗传操作(Genetic Operator):遗传操作是指作用于种 群而产生新的种群的操作。标准的遗传操作包括以下3种基本形式:
–选择(Selection)
– 杂交(Crosssover)
– 变异(Mutation)
TSP问题描述
TSP问题(Traveling Salesman Problem,旅行商问题),由威廉哈密顿爵士和英国数学家克克曼T.P.Kirkman于19世纪初提出。问题描述如下:
有若干个城市,任何两个城市之间的距离都是确定的,现要求一旅行商从某城市出发必须经过每一个城市且只在一个城市逗留一次,最后回到出发的城市,问如何事先确定一条最短的线路已保证其旅行的费用最少?(来源 百度百科 )
参数测试
== 保存随机生成的城市坐标,保证除测试的变量外其余变量均不变 ==
%%生成城市的坐标
%%pos=randn(N,2);
%%save city.mat pos;
load('city.mat');
种群规模
唯一参数改变,其余参数不变
1.M=50
迭代第2000次
minlen=2.144476e+01
8 9 14 1 19 16 2 10 24 22 25 5 21 15 23 18 12 13 4 6 7 11 17 3 20
2.M=75
minlen=2.021244e+01
2 10 24 12 18 15 20 8 9 14 22 1 19 16 25 5 21 23 13 17 3 11 4 7 6
3.M=100
迭代第2000次
minlen=1.919703e+01
25 5 21 18 23 15 20 3 17 11 7 6 4 13 10 2 24 8 9 14 12 22 1 19 16
4.M=125
迭代第2000次
minlen=2.011393e+01
9 14 22 25 5 21 23 15 20 3 17 11 7 6 2 10 4 13 24 19 16 1 12 18 8 4
5.M=150
迭代第2000次
minlen=2.072737e+01
1 25 5 21 23 15 20 3 17 13 10 4 11 7 6 2 16 19 12 18 8 24 9 14 22
结论
依据以上实验结果得出,随着种群规模不断增大,算法的收敛时间也随之增加;而最短距离出现了先增加后减少的情况,即五次实验中,M=100时的解得到是较为优的解。
经查阅资料得:
种群规模较小时,收敛速度快,但容易出现近亲交配,产生病态基因。而且造成有效等位基因先天缺失,即使采用较大概率的变异算子,生成具有竞争力高阶模式的可能性仍然核销,况且大概率变异算子对已有模式的破坏作用极大。同时,遗传算子存在随机误差,妨碍小群体中有效模式的正确传播,使得种群进化不能按照模式定理产生所预期的期望数量。
种群规模太大,全局搜索的能力提高,但运行效率过慢导致难以收敛且浪费资源,稳健性下降。
城市个数
唯一参数改变,其余参数不变
1.N=15
2.N=25
3.N=50
4.N=75
5.N=100
结论
如上实验结果可以看出,随着城市数量的增加,算法的运行时间不断增强。所以,当城市数量非常多时,运行时间可能会非常长。
交叉概率
唯一参数改变,其余参数不变
1.Pc=0.3
迭代第2000次
minlen=2.450808e+01
7 15 22 12 10 3 13 16 17 2 4 14 8 25 6 21 11 1 5 9 18 24 20 19 23