MATLAB_智能算法30个案例分析 有目录(13)

发布时间:2021-06-05

6 7 8 9 10 11 12 13 14

22 20.47 17.2 16.3 14.05 16.53 21.52 19.41 20.09

96.05 97.02 96.29 97.38 98.12 97.38 95.59 97.13 92.55

从某个城市出发访问每个城市一次且仅一次, 最后回到出发城市,如何安排才使其所走路线最短。

结果:

优化前的一个随机路线轨迹图

图4.1 随机路线图

随机路线为:

11—>7—>10—>4—>12—>9—>14—>8—>13—>5—>2—>3—>6—>1—>11 总距离:71.1144 优化后的路线图:

图4.2 最优解路线图

最优解路线:

5—>4—>3—>14—>2—>1—>10—>9—>11—>8—>13—>7—>12—>6—>5 总距离:29.3405 优化迭代过程:

图4.3 遗传算法进化过程图

4、主程序:

clear

clc

close all

load CityPosition1;%个城市坐标位置 NIND=100; %种群大小 MAXGEN=200;

Pc=0.9; %交叉概率 Pm=0.05; %变异概率

GGAP=0.9; %代沟(Generation gap) D=Distanse(X); %生成距离矩阵 N=size(D,1); %(34*34) %% 初始化种群

Chrom=InitPop(NIND,N);

%% 在二维图上画出所有坐标点 % figure

% plot(X(:,1),X(:,2),'o'); %% 画出随机解的路线图 DrawPath(Chrom(1,:),X) pause(0.0001)

%% 输出随机解的路线和总距离 disp('初始种群中的一个随机值:') OutputPath(Chrom(1,:));

Rlength=PathLength(D,Chrom(1,:));

disp(['总距离:',num2str(Rlength)]);

disp('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~') %% 优化 gen=0; figure;

hold on;box on xlim([0,MAXGEN]) title('优化过程') xlabel('代数') ylabel('最优值')

ObjV=PathLength(D,Chrom); %计算路线长度 preObjV=min(ObjV); while gen<MAXGEN

%% 计算适应度

ObjV=PathLength(D,Chrom); %计算路线长度 % fprintf('%d %1.10f\n',gen,min(ObjV))

line([gen-1,gen],[preObjV,min(ObjV)]);pause(0.0001) preObjV=min(ObjV); FitnV=Fitness(ObjV); %% 选择

SelCh=Select(Chrom,FitnV,GGAP); %% 交叉操作

MATLAB_智能算法30个案例分析 有目录(13).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219