【TSP問(wèn)題】基于狼群算法求解旅行商問(wèn)題含Matlab源碼
1 簡(jiǎn)介
通過(guò)定義反轉(zhuǎn)算子,對(duì)人工狼位置和智能行為重新進(jìn)行整數(shù)編碼設(shè)計(jì),并結(jié)合概率近鄰初始化方法,提出一種求解旅行商問(wèn)題的離散狼群算法,該算法保留了狼群算法基于職責(zé)分工的協(xié)作式搜索特性,并較好地平衡了算法的廣度開拓和深度開采能力,采用C-TSP問(wèn)題和TSPLIB數(shù)據(jù)庫(kù)中的多組TSP問(wèn)題作為實(shí)驗(yàn)用算例,并將所提出算法與其他5種智能優(yōu)化算法進(jìn)行對(duì)比,仿真結(jié)果表明,所提出算法在求解準(zhǔn)確率、穩(wěn)定性和所需迭代次數(shù)等方面具有相對(duì)優(yōu)勢(shì).
2 部分代碼
clear
clc
%沒(méi)改進(jìn)
% 導(dǎo)入數(shù)據(jù)
load('citys_data.mat');
qidian = citys(1,:);
X = citys(2:end,:);
Ybest = 0;
jisuan=2;%計(jì)算次數(shù)
iter_max=100;%最大迭代次數(shù)
b=2;%更新比例因子
stepb=4;%奔襲步長(zhǎng)
stepc=5;%圍攻步長(zhǎng)上限
bili=8;%近鄰比例因子
dnear=6;
% 狼群算法
[X_jieguo,Y_jieguo,Y_jieguoBest,time]=WPA_TSP(jisuan,iter_max,Ybest,X,b,stepb,stepc,bili,dnear,qidian);
Y_Best = min(Y_jieguoBest);
[hang,lie] = find(Y_Best == Y_jieguoBest);
nn=size(hang,2);%在獵物氣味最濃的方向中隨機(jī)選取一個(gè)前進(jìn)
kk=ceil(nn*rand(1));%當(dāng)存在多匹的情況,則隨-機(jī)選一匹成為頭狼
t=hang(kk(1));
Xtoulang = X_jieguo(t,:);
figure(1)
text(qidian(1),qidian(2),[' ?' '起點(diǎn)']);
hold on
X = [qidian;X];
plot(X(:,1),X(:,2),'o');
hold on
for i = 1 : size(X,1);
? ?text(X(i,1),X(i,2),[' ',num2str(i)]);
? ?hold on
end
for i = 1 : size(X,1)-1
? ? plot([X(Xtoulang(i),1) X(Xtoulang(i+1),1)],[X(Xtoulang(i),2) X(Xtoulang(i+1),2)],'--','LineWidth',1,'color','g');
? ?hold on
? ?grid on
end
plot([X(Xtoulang(end),1) X(Xtoulang(1),1)],[X(Xtoulang(end),2) X(Xtoulang(1),2)],'--','LineWidth',1,'color','g');
3 仿真結(jié)果


4 參考文獻(xiàn)
[1]吳虎勝, 張鳳鳴, 李浩,等. 求解TSP問(wèn)題的離散狼群算法[J]. 控制與決策, 2015, 30(10):7.
博主簡(jiǎn)介:擅長(zhǎng)智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)、信號(hào)處理、元胞自動(dòng)機(jī)、圖像處理、路徑規(guī)劃、無(wú)人機(jī)等多種領(lǐng)域的Matlab仿真,相關(guān)matlab代碼問(wèn)題可私信交流。
部分理論引用網(wǎng)絡(luò)文獻(xiàn),若有侵權(quán)聯(lián)系博主刪除。
