Hello Mat

 找回密码
 立即注册
查看: 16894|回复: 19

10遗传算法优化求解TSP问题--视频分享

[复制链接]

1294

主题

1520

帖子

110

金钱

管理员

Rank: 9Rank: 9Rank: 9

积分
22633
发表于 2017-1-20 19:54:49 | 显示全部楼层 |阅读模式
10遗传算法优化求解TSP问题--视频分享
百度网盘链接:链接:http://pan.baidu.com/s/1geLdLVP 密码:8dra

具体链接在halcom.cn论坛,联系人QQ:3283892722
欢迎大家录制视频,并提交给我,我来设置视频,你可在论坛进行打赏分享。
视频专用播放器:http://halcom.cn/forum.php?mod=viewthread&tid=258&extra=page%3D1


具体的代码如下:
  1. clc,clear,close all
  2. warning off
  3. tic
  4. %% 具体的问题参数
  5. % 城市节点的坐标
  6. x=[41,37,54,25,7,2,68,71,54,83,64,18,22,83,91,...
  7.     25,24,58,71,74,87,18,13,82,62,58,45,41,44,4];
  8. y=[94,84,67,62,64,99,58,44,62,69,60,54,60,46,38,...
  9.     38,42,69,71,78,76,40,40,7,32,35,21,26,35,50];
  10. % plot(x,y,'ro')
  11. citynum = 30;  % citynum表示城市数目
  12. % 城市各节点之间的距离
  13. for i=1:citynum
  14.     for j=1:citynum
  15.         dij(i,j)=sqrt((x(i)-x(j))^2+(y(i)-y(j))^2); % 距离
  16.     end
  17. end
  18. for i=1:citynum
  19.     dij(i,i)= 99999999999999999;
  20. end
  21. %% 算法参数
  22. itermax = 1e4;  % 迭代次数
  23. sizepop = 150; % 种群
  24. % 初始化种群
  25. for i=1:sizepop
  26.     path(i,:) = randperm(citynum);                 % 实数编码
  27.     fitness(i) = ca_tsp(citynum,path(i,:),dij);    % 目标函数值
  28. end
  29. [bestfitness,index] = min(fitness);  % 极小值
  30. zbest = path(index,:);               % 最佳个体
  31. fitnesszbest = bestfitness;          % 全局最优
  32. %% 寻优
  33. for i=1:itermax
  34.     % 交叉操作
  35.     for j=1:5:sizepop-4
  36.         [minf,flag] = min( fitness(j:j+4) );
  37.         pop(j,:) = path(flag,:);  % j:j+4 最优的种群
  38.         
  39.         points = [31,1];
  40.         while(max(points)>citynum)
  41.             points = ceil(sizepop*rand(1,2));    % 随机选取两个节点
  42.         end
  43.         
  44.         pop(j+1,:) = pop(j,:);
  45.         pop(j+1,[points(1),points(2)]) = pop(j+1,[points(2),points(1)]) ;  % 策略1
  46.         pop(j+2,:) = pop(j,:);
  47.         pop(j+2,[min(points):1:max(points)]) = pop(j+2,[max(points):-1:min(points)]) ; % 策略2
  48.         pop(j+3,:) = pop(j,:);
  49.         pop(j+3,[min(points):1:max(points)]) = pop(j+3,[max(points)-1:-1:min(points), max(points)]) ; % 策略3
  50.         pop(j+4,:) = pop(j,:);
  51.         pop(j+4,[min(points):1:max(points)]) = pop(j+4,[min(points)+1:1:max(points), min(points)]) ;  % 策略4
  52.         fitness(j+0) = ca_tsp(citynum,pop(j+0,:),dij);    % 目标函数值
  53.         fitness(j+1) = ca_tsp(citynum,pop(j+1,:),dij);    % 目标函数值
  54.         fitness(j+2) = ca_tsp(citynum,pop(j+2,:),dij);    % 目标函数值
  55.         fitness(j+3) = ca_tsp(citynum,pop(j+3,:),dij);    % 目标函数值
  56.         fitness(j+4) = ca_tsp(citynum,pop(j+4,:),dij);    % 目标函数值
  57.         
  58.         [minf,flag] = min( fitness(j:j+4) );
  59.         if minf<fitnesszbest
  60.             fitnesszbest = minf;
  61.             zbest = pop(j+flag-1,:);
  62.         end
  63.     end
  64.    
  65.     path = pop;  % 更新最优路径
  66. end
  67. toc
  68. %% 显示结果
  69. disp('最优路径')
  70. zbest

  71. figure(1)
  72. plot(x,y,'ro');
  73. hold on
  74. for i=1:citynum
  75.     if i==citynum
  76.         plot([x(zbest(i)),x(zbest(1))],[y(zbest(i)),y(zbest(1))],'b-')
  77.     else
  78.         plot([x(zbest(i)),x(zbest(i+1))],[y(zbest(i)),y(zbest(i+1))],'b-')
  79.     end
  80.     text(x(zbest(i)),y(zbest(i))+1,num2str(zbest(i)))
  81. end
复制代码







算法QQ  3283892722
群智能算法链接http://halcom.cn/forum.php?mod=forumdisplay&fid=73
回复

使用道具 举报

0

主题

13

帖子

15

金钱

新手上路

Rank: 1

积分
28
发表于 2017-2-13 05:37:21 | 显示全部楼层
{:2_31:}太棒了!
回复

使用道具 举报

0

主题

2

帖子

4

金钱

新手上路

Rank: 1

积分
6
发表于 2017-2-19 23:21:21 | 显示全部楼层
好棒,顶一个,感谢余博士
回复 支持 反对

使用道具 举报

0

主题

2

帖子

4

金钱

新手上路

Rank: 1

积分
6
发表于 2017-2-19 23:25:43 | 显示全部楼层
I wish I do it  persistently
回复 支持 反对

使用道具 举报

0

主题

12

帖子

1

金钱

新手上路

Rank: 1

积分
13
发表于 2017-2-26 18:14:23 | 显示全部楼层
问问吾问无为谓吾问无为谓吾问无为谓吾问无为谓
回复 支持 反对

使用道具 举报

0

主题

2

帖子

1

金钱

新手上路

Rank: 1

积分
3
发表于 2017-2-27 16:11:52 | 显示全部楼层
XIEXIELOUZHU
回复 支持 反对

使用道具 举报

0

主题

50

帖子

0

金钱

注册会员

Rank: 2

积分
50
发表于 2017-3-23 00:38:11 | 显示全部楼层
遗传算法优化求解TSP问题,下载学习。
回复 支持 反对

使用道具 举报

0

主题

27

帖子

1

金钱

新手上路

Rank: 1

积分
28
发表于 2017-4-30 15:57:00 | 显示全部楼层
后面的代码需要前面的代码
回复 支持 反对

使用道具 举报

0

主题

6

帖子

22

金钱

新手上路

Rank: 1

积分
28
发表于 2017-6-6 23:44:42 | 显示全部楼层
老铁  看代码来了!!!
回复 支持 反对

使用道具 举报

0

主题

6

帖子

41

金钱

新手上路

Rank: 1

积分
47
发表于 2017-6-16 07:35:45 | 显示全部楼层
有偿代写一个细菌觅食优化算法解决车辆调度问题的模型
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Python|Opencv|MATLAB|Halcom.cn ( 蜀ICP备16027072号 )

GMT+8, 2024-4-26 15:30 , Processed in 0.224729 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表