前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >遗传算法解决旅行商问题(TSP)三:主程序和执行结果

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

作者头像
mwangblog
发布2018-10-18 17:53:30
5540
发布2018-10-18 17:53:30
举报
文章被收录于专栏:mwangblogmwangblog

主程序如下:

代码语言:javascript
复制
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;

执行结果如下:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-10-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 mwangblog 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档