📄 the biggest similarity for tsp.m
字号:
Clear[d, max, i, j, w, w1, juli, start, weizhi, k, wmax, lujing, d];
d = Flatten[Import["e:\\2.xls"], 1];
len = Length[d];
len0 = len;
max = {};
For[i = 1, i <= len, i++, AppendTo[max, Max[d[[i]]]]];
w = Table[0, {i, len}, {j, len}];
For[i = 1, i <= len, i++,
For[j = 1, j <= len, j++,
w[[i, j]] = If[i == j, 0, 1 - d[[i, j]]/max[[i]] ];
]
]
w;(*相似矩阵*)
w1 = w;
lujing = {};
start = 1;
zuixiao = Infinity;
zong = zong2 = {};
biao = {};
While[start <= len0,
lujing = {};
i = start; w = w1;
While[Length[lujing] != len0,
wmax = Max[w[[i]]];
weizhi = Flatten[Position[w, wmax]];
AppendTo[lujing, k = weizhi[[-1]]];(*此处需要改进*)
If[i == start, AppendTo[biao, k], 0];
For[i = 1, i <= len, i++,
w[[i, k]] = 0;
];
i = k;];(*结束while*)
AppendTo[zong, lujing];
len1 = Length[lujing];
k = 1; juli = 0;
While[k != (len1 - 1),
juli += d[[lujing[[k]], lujing[[k + 1]]]]; k++;
];
AppendTo[zong2, juli];
zuixiao = If[zuixiao > juli, juli, zuixiao];
start++;](*结束while*)
wei = Position[zong2, zuixiao];
zuixiao
zong[[wei[[1]]]]
out:= 155.
{{6, 15, 2, 10, 3, 9, 14, 1, 11, 12, 4, 5, 7, 8, 16, 13}}
2.xls 为距离矩阵。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -