1 / 8
文档名称:

最佳哈密尔顿圈MATLAB程序.docx

格式:docx   大小:31KB   页数:8页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

最佳哈密尔顿圈MATLAB程序.docx

上传人:青青松松 2023/3/26 文件大小:31 KB

下载得到文件列表

最佳哈密尔顿圈MATLAB程序.docx

文档介绍

文档介绍:该【最佳哈密尔顿圈MATLAB程序 】是由【青青松松】上传分享,文档一共【8】页,该文档可以免费在线阅读,需要了解更多关于【最佳哈密尔顿圈MATLAB程序 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。最正确哈密尔顿圈MATLAB程序
最正确哈密尔顿圈MATLAB程序
最正确哈密尔顿圈MATLAB程序
文件
function[circle,long]=modifycircle(c1,L);
globala
flag=1;
whileflag>0
flag=0;
form=1:L-3
forn=m+2:L-1
ifa(c1(m),c1(n))+a(c1(m+1),c1(n+1))<...
a(c1(m),c1(m+1))+a(c1(n),c1(n+1))
flag=1;
c1(m+1:n)=c1(n:-1:m+1);
end
end
end
end
long=a(c1(1),c1(L));
fori=1:L-1
long=long+a(c1(i),c1(i+1));
end
circle=c1;
命令窗口
全程的:
globala
L=size(a,1);
c1=[12:1820:5319];
[circle,long]=modifycircle(c1,L);
c2=[1192:1820:53];%改变初始圈,该算法的最后一个极点不动
[circle2,long2]=modifycircle(c2,L);
iflong2<long
long=long2;
circle=circle2;
end
circle,long
circle=
Columns1through19
1
16
44
45
46
47
17
48
50
49
51
53
52
3
4
21
5
22
26
Columns20through38
6
25
13
37
38
39
36
10
11
31
8
29
27
28
7
30
9
32
33
Columns39through53
34
35
12
40
41
42
15
43
14
24
23
20
18
19
long=+002
1
a=[

;

;

;

;

;

;

;

;

;





;

;

;

;

;

;

;
最正确哈密尔顿圈MATLAB程序
最正确哈密尔顿圈MATLAB程序
最正确哈密尔顿圈MATLAB程序

;


];
globala
L=size(a,1);
c1=[12:1113:1812];
[circle,long]=modifycircle(c1,L);
c2=[1122:1113:18];%改变初始圈,该算法的最后一个极点不动
[circle2,long2]=modifycircle(c2,L);
iflong2<long
long=long2;
circle=circle2;
end
circle,long
结果
circle=
1456789101115161718
14133212
long=
+002
globala
L=size(a,1);
c1=[11413324:1115:1812];
[circle,long]=modifycircle(c1,L);
c2=[1141332124:1115:18];%改变初始圈,该算法的最后一个极点不动
[circle2,long2]=modifycircle(c2,L);
iflong2<long
long=long2;
circle=circle2;
end
circle,long
结果
circle=
1
4
5
6
7
18
8
9
10
11
15
16
17
14
13
3
2
12
long=
+002
最正确哈密尔顿圈MATLAB程序
最正确哈密尔顿圈MATLAB程序
最正确哈密尔顿圈MATLAB程序
2
a=[

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;


];
最正确哈密尔顿圈MATLAB程序
最正确哈密尔顿圈MATLAB程序
最正确哈密尔顿圈MATLAB程序
globala
L=size(a,1);
c1=[13:182];
[circle,long]=modifycircle(c1,L);
c2=[123:18];%改变初始圈,该算法的最后一个极点不动
[circle2,long2]=modifycircle(c2,L);
iflong2<long
long=long2;
circle=circle2;
end
circle,long
circle=
1
10
9
3
4
5
6
7
8
11
12
13
14
15
16
18
17
2
long=
+002
globala
L=size(a,1);
c1=[110911:1618173:82];
[circle,long]=modifycircle(c1,L);
c2=[110911:16181723:8];%改变初始圈,该算法的最后一个极点不动
[circle2,long2]=modifycircle(c2,L);
iflong2<long
long=long2;
circle=circle2;
end
circle,long
circle=
1
17
18
16
15
13
14
6
7
8
5
4
3
9
12
11
10
2
long=
+002
3
a=[

;

;

最正确哈密尔顿圈MATLAB程序
最正确哈密尔顿圈MATLAB程序
最正确哈密尔顿圈MATLAB程序
;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;


];
globala
L=size(a,1);
c1=[13:192];
[circle,long]=modifycircle(c1,L);
c2=[123:19];%改变初始圈,该算法的最后一个极点不动
[circle2,long2]=modifycircle(c2,L);
iflong2<long
long=long2;
circle=circle2;
end
最正确哈密尔顿圈MATLAB程序
最正确哈密尔顿圈MATLAB程序
最正确哈密尔顿圈MATLAB程序
circle,long
circle=
Columns1through18
1
3
14
4
8
15
9
19
16
11
17
18
13
12
10
7
6
5
Column19
2
long=
+002
globala
L=size(a,1);
c1=[11718131210765314481591916112];[circle,long]=modifycircle(c1,L);
c2=[123:19];%改变初始圈,该算法的最后一个极点不动
[circle2,long2]=modifycircle(c2,L);
iflong2<long
long=long2;
circle=circle2;
end
circle,long
circle=
Columns1through18
1
3
14
4
8
15
9
19
16
11
18
13
12
17
10
7
6
5
Column19
2
long=
+002
最正确哈密尔顿圈MATLAB程序
最正确哈密尔顿圈MATLAB程序
最正确哈密尔顿圈MATLAB程序
改进次数
路径
总行程
第一部分
一次改进结果O-P-26-27-28-Q-29-R-A-33-31-32-30-35-34-B-C-1

多次改进结果O-P-26-27-28-30-Q-29-R-A-33-31-32-35-34-B-C-1

第二部分
一次改进结果O-25-20-L-19-J-15-I-18-21-K-17-16-22-23-24-N-M

多次改进结果O-N-24-23-22-17-16-15-I-18-J-19-L-20-K-21-25-M

第三部分
一次改进结果O-3-D-4-8-E-9-10-F-12-G-H-14-13-11-7-6-5-2

多次改进结果
O-3-D-4-8-E-9-10-F-12-H-14-13-11-G-7-6-5-2

circle=
Columns1through18
1
3
14
4
8
15
9
19
16
11
18
13
12
17
10
7
6
5
Column19
2
long=
+002
最正确哈密尔顿圈MATLAB程序
最正确哈密尔顿圈MATLAB程序
最正确哈密尔顿圈MATLAB程序