TSP问题遗传算法matlab源程序

TSP问题遗传算法matlab源程序

%TSP问题(又名:旅行商问题,货郎担问题)遗传算法通用matlab程序 %D是距离矩阵,n为种群个数,建议取为城市个数的1~2倍,

%C为停止代数,遗传到第 C代时程序停止,C的具体取值视问题的规模和耗费的时间而定 %m为适应值归一化淘汰加速指数 ,最好取为1,2,3,4 ,不宜太大

%alpha为淘汰保护指数,可取为0~1之间任意小数,取1时关闭保护功能,最好取为0.8~1.0 %R为最短路径,Rlength为路径长度

function [R,Rlength]=geneticTSP(D,n,C,m,alpha)

[N,NN]=size(D);

farm=zeros(n,N);%用于存储种群

for i=1:n

farm(i,:)=randperm(N);%随机生成初始种群

end

R=farm(1,:);%存储最优种群

len=zeros(n,1);%存储路径长度

fitness=zeros(n,1);%存储归一化适应值

counter=0;

while counter<c

for i=1:n

len(i,1)=myLength(D,farm(i,:));%计算路径长度

end

maxlen=max(len);

minlen=min(len);

fitness=fit(len,m,maxlen,minlen);%计算归一化适应值

rr=find(len==minlen);

R=farm(rr(1,1),:);%更新最短路径

FARM=farm;%优胜劣汰,nn记录了复制的个数

nn=0;

for i=1:n

if fitness(i,1)>=alpha*rand

nn=nn+1;

FARM(nn,:)=farm(i,:);

end

end

FARM=FARM(1:nn,:);

[aa,bb]=size(FARM);%交叉和变异

while aa<n

if nn<=2

你可能喜欢

  • 遗传算法求解TSP问题
  • matlab遗传算法实例
  • 模拟退火算法matlab
  • matlab实例教程
  • 优秀数学建模论文
  • 遗传算法matlab代码
  • 遗传算法应用实例

TSP问题遗传算法matlab源程序相关文档

最新文档

返回顶部