java 遗传算法 旅行商,遗传算法解决旅行商问题(TSP)三:主程序和执行结果

主程序如下:

clc;

clear;

CITYSIZE = 10; % 城市个数

POPSIZE = 50; % 种群个数

PC = 0.4; % 交叉概率

PM = 0.05; % 变异概率

MAXGEN = 150; % 迭代次数

LEAVING = 5; % 父代保留数量

gen = 0;

bestfit = zeros(1, MAXGEN);

bestlength = zeros(1, MAXGEN);

pos = [1 2 2 3 1 4 5 5 6 4; 1 1 2 2 3 4 4 5 5 6]; % 城市坐标

D = distancematrix(pos); % 城市距离矩阵

pop = initpop(POPSIZE, CITYSIZE);

len = callength(D, pop);

fit = calfitness(len);

% 优化

while gen < MAXGEN

childpop = selection(pop, fit, LEAVING); % 选择

leavingpop = selection(pop, fit, POPSIZE-LEAVING);

pop = [leavingpop; childpop]; % 保留一部分父代

pop = crossover(pop, PC); % 交叉

pop = mutation(pop, PM); % 变异

gen = gen + 1;

len = callength(D, pop);

fit = calfitness(len);

bestindex = bestindividual(fit);

bestfit(1, gen) = fit(bestindex);

bestlength(1, gen) = len(bestindex);

end

figure(1);

plot(1:MAXGEN, bestfit(1,:));

xlabel('进化代数');

ylabel('最优适应度值');

title('最优适应度值图');

grid on;

figure(2);

plot(1:MAXGEN, bestlength(1,:));

xlabel('进化代数');

ylabel('最优距离');

title('最优距离图');

grid on;

figure(3);

plot_route(pos, pop(bestindex,:));

grid on;

执行结果如下:

4e84d94af56c

GA解TSP问题路径图

4e84d94af56c

GA解TSP问题适应度值图

4e84d94af56c

GA解TSP问题最优距离图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值