|
<> 帮我看一下,谢谢!</P>
<>clear all
global distMatrix
t=[1304 2312;3639 1315;4177 2244;3712 1399;3488 1535;3326 1556;...
3238 1229;4196 1044;4312 790;4386 570;3007 1970;2562 1756;...
2788 1491;2381 1676; 1332 695;3715 1678;3918 2179;4061 2376;...
3780 2212;3676 2578;4029 2838;4263 2931;3429 1908;3507 2376;...
3394 2643;3439 3201;2935 3240;3140 3550;2545 2357;2778 2826;2370 2975];...
sz=size(t,1);
distMatrix=distsz(t,t);
xFns='cyclicXover unniformXover partmapXover orderbasedXover'
xFns=[xFns,'singleptXover linerorderXover'];Opts=[2;2;2;2;2;2];%2;2;2;2;2;2;2];
mFns='inversionMutation adjswapMutation'
swapMutation threewapMutation';
mOpts=[2;2;2;2;2];
termFns='maxGeomSelect';
termOps=[100];
selectFn='normGeomSelect';
selectOps=[0.08];
evalFn='tspEval';
evalOps=[];
bounds=[sz];
gaOps=[le-6 1 1];
startPop=initalixeoga(80,bounds,'tspEval',[le=6 1]);
[x endPop bestPop trace]=ga(bounds,evalFn,evalOps,...
startPop,gaPots,termFns,termOps,selectFn,...
selectOps,xFns,xOpts,mFns,mOpts];
bestPop
trace
plot(trace(;,1),trace(;,2));
hold on
plot(trace(;,1),trace(;,3));
figue(2)
clf
A=ones(sz,sz);
A=xor(triu(A),tril(A));
[xg yg]=gplot(A,t);
clf
h=gca;
hold on
ap=x;
plot(t(x(1:sz),1),t(x(1:sz),2,),'r-')
plot(t([x(1):x(sz)],1),t([x(1):x(sz)],2),'r-')
plot(xg,yg,'b.','MarkerSize',24);</P> |
|