function TP
clear;
city30=[41 94;37 84;54 67;25 62;7 64;2 99;68 58;71 44;54 62;83 69;64 60;18 54;22 60; ...
83 46;91 38;25 38;24 42;58 69;71 71;74 78;87 76;18 40;13 40;82 7;62 32;58 35;45 21;41 26;44 35;4 50];
for i=1:30
for j=1:30
DL30(i,j)=((city30(i,1)-city30(j,1))^2+(city30(i,2)-city30(j,2))^2)^0.5;
end
end
dislist=DL30;
Clist=city30;
CityNum=size(dislist,2);
Tlist=zeros(CityNum);
%禁忌表(tabu list)
cl=100;%保留前cl个最好候选解
bsf=Inf;
tl=ceil(CityNum^0.5);%禁忌长度(tabu length)
l1=200;%候选解(candidate),不大于n*(n-1)/2(全部领域解个数)
S0=randperm(CityNum);
S=S0;
BSF=S0;
Si=zeros(l1,CityNum);
StopL=80*CityNum;
p=1;
figure(1);
stop = uicontrol('style','toggle','string','stop','background','white');
tic;
while (p<StopL)
if l1>CityNum*(CityNum)/2
disp('候选解个数,不大于n*(n-1)/2(全部领域解个数)!系统自动退出!');
l1=(CityNum*(CityNum)/2)^.5;
break;
end
ArrS(p)=F(dislist,S);
i=1;
A=zeros(l1,2);
while i<=l1
M=CityNum*rand(1,2);
M=ceil(M);
if M(1)~=M(2)
m1=max(M(1),M(2));
m2=min(M(1),M(2));
A(i,1)=m1;A(i,2)=m2;
if i==1
isdel=0;
else
for j=1:i-1
if A(i,1)==A(j,1)&&A(i,2)==A(j,2)
isdel=1;
break;
else
isdel=0;
end
end
end
if ~isdel
i=i+1;
else
i=i;
end
else
i=i;
end
end
CL=Inf*ones(cl,4);
for i=1:l1
Si(i,:)=S;
Si(i,[A(i,1),A(i,2)])=S([A(i,2),A(i,1)]);
F(i)=F(dislist,Si(i,:));
if i<=cl
CL(i,2)=F(i);
CL(i,1)=i;
CL(i,3)=S(A(i,1));
CL(i,4)=S(A(i,2));
else
for j=1:cl
if F(i)<CL(j,2)
CL(j,2)=F(i);
CL(j,1)=i;
CL(j,3)=S(A(i,1));
CL(j,4)=S(A(i,2));
break;
end
end
end
end
bsf=CL(1,2);
if CL(1,2)<bsf %藐视准则(aspiration criterion)
S=Si(CL(1,1),:);
BSF=S;
for m=1:CityNum
for n=1:CityNum
if Tlist(m,n)~=0
Tlist(m,n)=Tlist(m,n)-1;
end
end
end
Tlist(CL(1,3),CL(1,4))=tl;
else
for i=1:cl
if Tlist(CL(i,3),CL(i,4))==0
S=Si(CL(i,1),:);
for m=1:CityNum
for n=1:CityNum
if Tlist(m,n)~=0
Tlist(m,n)=Tlist(m,n)-1;
end
end
end
Tlist(CL(i,3),CL(i,4))=tl;
break;
end
end
end
p=p+1;
Arrbsf(p)=bsf;
for i=1:CityNum-1
plot([Clist(BSF(i),1),Clist(BSF(i+1),1)],[Clist(BSF(i),2),Clist(BSF(i+1),2)],'bo-');
hold on;
end
plot([Clist(BSF(CityNum),1),Clist(BSF(1),1)],[Clist(BSF(CityNum),2),Clist(BSF(1),2)],'bo-');
title(['Counter : ',int2str(p*l1),' The Min Distance: ',num2str(bsf)]);
hold off;
pause(0.005);
if get(stop,'value')==1
break;
end
end
toc;
BestShortcut=BSF
theMinDistance=bsf
set(stop,'style','pushbutton','string','close','callback','close(gcf)');
figure(2);
plot(Arrbsf,'r');
hold on;
plot(ArrS,'b');
grid;
title('搜索过程');
legend('Best So Far','当前解');
end
function F=F(dislist,s)
DistanV=0;
n=size(s,2);
for i=1:(n-1)
DistanV=DistanV+dislist(s(i),s(i+1));
end
DistanV=DistanV+dislist(s(n),s(1));
F=DistanV;
end
没有合适的资源?快使用搜索试试~ 我知道了~
[MATLAB R2017a.rar_Matlab R2017a_settlewv5_模式识别_模式识别;matlab
共137个文件
m:136个
fis:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 149 浏览量
2022-07-15
14:15:50
上传
评论
收藏 71KB RAR 举报
温馨提示
[MATLAB R2017a模式识别与智能计算][辛焕平][程序源代码]
资源推荐
资源详情
资源评论
收起资源包目录
[MATLAB R2017a.rar_Matlab R2017a_settlewv5_模式识别_模式识别;matlab (137个子文件)
M5_9.fis 1KB
TP.m 5KB
ACATSP.m 4KB
M10.m 3KB
M5_6.m 3KB
M5_5.m 2KB
M10_1.m 2KB
M5_13.m 2KB
Rosenbrock.m 2KB
M6_7.m 2KB
POS.m 2KB
Rosenbrock2.m 2KB
fuz_dist.m 2KB
youyueshu.m 2KB
M5_9.m 2KB
M6_2.m 2KB
M4_3.m 2KB
lizi.m 2KB
M8_2.m 2KB
M3_9.m 2KB
M3_5.m 2KB
li11_2.m 2KB
M5_11.m 1KB
SAPSO.m 1KB
Fisherbanbie.m 1KB
MainAneal.m 1KB
M4_2.m 1KB
M9_1.m 1KB
YSPSO.m 1KB
Cross.m 1KB
M5_2.m 1KB
fitness3.m 1KB
M3_7.m 1KB
M8_1.m 1KB
LinWPSO.m 1KB
M6_4a.m 1KB
RandWPSO.m 1KB
M3_6.m 1001B
M6_5.m 973B
Mutation.m 911B
jijia.m 873B
M3_1.m 863B
M4_1.m 856B
svmTrain.m 832B
simpyfuild.m 829B
M6_1.m 806B
M5_10.m 801B
M5_3.m 788B
M6_6.m 752B
bayeseri.m 749B
M5_4.m 707B
fun9a.m 619B
fitness2.m 602B
M3_4.m 594B
Select2.m 577B
func3.m 575B
M2_1.m 486B
M4_4.m 475B
youhua.m 468B
M3_8.m 461B
fisher.m 456B
funmin.m 453B
M3_2.m 439B
M3_3.m 435B
M10_2.m 422B
kernel.m 375B
exchange.m 373B
M2_5.m 372B
M2_4.m 371B
M5_1.m 366B
M2_7.m 353B
M7_3.m 351B
M8_3.m 349B
M1_19.m 337B
DrawRoute.m 336B
M7_5.m 332B
M6_3.m 331B
func3.m 311B
fuz_cing.m 308B
M1_15.m 305B
svmTest.m 303B
M1_20.m 285B
Griewank.m 281B
wuyou.m 274B
M1_13.m 264B
li8_3.m 263B
Schaffer.m 263B
Rosenbrock.m 260B
Rosenbrockfun.m 258B
fun9b.m 257B
M2_6.m 255B
M7_7.m 254B
func4.m 253B
Rastriginfun.m 245B
Griewankfun.m 243B
Code.m 223B
Rastrigin.m 219B
M7_2.m 217B
M5_12.m 214B
func4.m 205B
共 137 条
- 1
- 2
资源评论
刘良运
- 粉丝: 66
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功