1.用于尋找旅行商最優(yōu)路徑的方法,包括:
(1)數(shù)據(jù)預(yù)處理步驟:
(1a)輸入旅行商TSPLIB數(shù)據(jù)庫(kù)里城市坐標(biāo)數(shù)據(jù),該城市坐標(biāo)數(shù)據(jù)表示x個(gè)城市的坐標(biāo)位置,x為大于10的整數(shù),用i、j分別表示n個(gè)城市中的兩個(gè)不同城市,并將這兩個(gè)城市的連線視為一條邊(i,j);
(1b)初始化邊(i,j)上的信息素濃度為τij(0)=0.1,設(shè)置軌跡相對(duì)重要性參數(shù)α=1,見(jiàn)度的相對(duì)重要性參數(shù)β=2;
(2)設(shè)置計(jì)算全局最優(yōu)路徑的循環(huán)次數(shù)Nmax=1000;
(3)設(shè)循環(huán)次數(shù)Nc=1,通過(guò)蟻群算法開(kāi)始第一次循環(huán),計(jì)算第一次最優(yōu)路徑長(zhǎng)度Cb,完成信息素濃度更新;
(3a)將10個(gè)螞蟻隨機(jī)分布于10個(gè)城市;
(3b)計(jì)算第一只螞蟻路徑長(zhǎng)度:
(3b1)設(shè)螞蟻循環(huán)遍歷次數(shù)N1=x;
(3b2)將第1只螞蟻訪問(wèn)過(guò)的城市集設(shè)置為集合U,其他未訪問(wèn)的城市集設(shè)置為集合A,由狀態(tài)轉(zhuǎn)移概率公式計(jì)算出第1只螞蟻從當(dāng)前城市i到集合A中未訪問(wèn)城市j的狀態(tài)轉(zhuǎn)移概率值Sij,
(3b3)對(duì)集合A中的n個(gè)城市分別計(jì)算其狀態(tài)轉(zhuǎn)移概率值,得到狀態(tài)轉(zhuǎn)移概率集合:
S={Si1,Si2…Sij…Sin},其中Sij表示城市i到城市j的狀態(tài)轉(zhuǎn)移概率值,j=1,2,…,n,n為集合A中未訪問(wèn)的城市的數(shù)量,n=1,2,…,x;
(3b4)找出狀態(tài)轉(zhuǎn)移概率集合S中最大值Sik,k=1,2,…,j,則城市k為螞蟻要移動(dòng)的一下個(gè)城市;
(3b5)將第一只螞蟻移動(dòng)到城市k,并在集合A中剔除城市k,在集合U中加入城市k,更新集合A和集合U;
(3b6)第1只螞蟻移動(dòng)到城市k后,螞蟻返回步驟(3b3),繼續(xù)訪問(wèn)集合A中的第j+1個(gè)城市,直到集合A中沒(méi)有城市,即N1=x,第1只螞蟻遍歷完成;
(3b7)在第1只螞蟻遍歷完所有城市后,計(jì)算第1只螞蟻所訪問(wèn)城市的路徑總長(zhǎng)度:其中dij表示第i個(gè)城市與第j個(gè)城市之間的距離;
(3c)剩下的9只螞蟻按照(3b)的方法遍歷所有城市,計(jì)算9只螞蟻路徑總長(zhǎng)度分別為C2,C3,C4,C5,C6,C7,C8,C9,C10,得到路徑總長(zhǎng)度集合C={C1,…Ca…C10},其中Ca表示第a個(gè)螞蟻的路徑總長(zhǎng)度,a=1,2,…,10;
(3d)找出路徑總長(zhǎng)度集合C中的最小值Cmin,并將該最小值Cmin賦給最優(yōu)路徑長(zhǎng)度Cb
(3e)更新邊(i,j)上的信息素濃度:
τij(t+m)=(1-ρ)·τij(t)+Δτij,
其中,τij(t+m)為t+m時(shí)刻邊(i,j)上的信息素濃度,m=1,2,3···1000,ρ表示信息素?fù)]發(fā)系數(shù),1-ρ為信息素殘留因子,ρ=0.01,τij(t)為t時(shí)刻邊(i,j)上信息素濃度,表示在本次循環(huán)中邊(i,j)上的信息素濃度增量,其中,ca表示第a只螞蟻路徑總長(zhǎng)度,a=1,2,…,10,Q為路徑長(zhǎng)度參數(shù),Q=1,Cb表示最優(yōu)路徑長(zhǎng)度;
(3f)當(dāng)完成所有邊上信息素濃度更新之后,記錄τij(t+m)和最優(yōu)路徑長(zhǎng)度Cb;
(4)循環(huán)次數(shù)Nc加1,返回步驟(3),本次循環(huán)完成后,記錄本次最優(yōu)路徑長(zhǎng)度Cbl,最優(yōu)路徑長(zhǎng)度Cbl=min{Cb,Cbl},其中min{Cb,Cbl}表示Cb和Cbl中值較小的一個(gè),Cbl為第Nc次循環(huán)的最優(yōu)路徑長(zhǎng)度,l=1,2,…,1000;
(5)判斷循環(huán)次數(shù)Nc,當(dāng)循環(huán)次數(shù)達(dá)到預(yù)定的循環(huán)次數(shù)1000時(shí),循環(huán)結(jié)束,輸出最終的全局最優(yōu)路徑長(zhǎng)度Cb1000。
2.根據(jù)權(quán)利要求1所述的用于尋找旅行商最優(yōu)路徑的方法,其特征在于,步驟(3b2)中的狀態(tài)轉(zhuǎn)移概率Sij,按如下公式計(jì)算:
其中,表示為的最大值,τij(t)為t時(shí)刻邊(i,j)上信息素濃度,參數(shù)α表示軌跡相對(duì)重要性,ηij(t)表示螞蟻從城市i到城市j的期望程度,取ηij(t)=1/dij,dij表示城市i和城市j之間的距離,參數(shù)β表示能見(jiàn)度的相對(duì)重要性,q為(0,1)內(nèi)服從均勻分布的隨機(jī)變量,q0=0.4,s表示集合A中未訪問(wèn)的城市,τis(t)為t時(shí)刻城市i到城市s上信息素濃度,ηis(t)表示螞蟻從城市i到城市s的期望程度。