本發(fā)明屬于港口調(diào)度領(lǐng)域,具體涉及一種基于蟻群算法的多目標(biāo)岸橋-泊位調(diào)度優(yōu)化方法。
背景技術(shù):
港口問題的研究涉及十分廣泛,最初只是利用經(jīng)驗(yàn)來人工的進(jìn)行調(diào)度,但是隨著港口規(guī)模的擴(kuò)大,進(jìn)出港口船只的增加,這種靠人工分配泊位的方法越來越不能適應(yīng)全球經(jīng)濟(jì)快速發(fā)展對現(xiàn)代化港口要求。所以人們嘗試建立起智能分配系統(tǒng)來代替人工分配,這種智能優(yōu)化調(diào)度大大提高了港口的工作效率,節(jié)約了港口調(diào)度成本,為港口帶來巨大的經(jīng)濟(jì)效益。k.shih最早提出了關(guān)于集裝箱船舶調(diào)度問題的研究。
國外的港口調(diào)度研究人員將港口調(diào)度分為靜態(tài)的和動態(tài)的,分別建立了靜態(tài)的和動態(tài)的兩種數(shù)學(xué)調(diào)度模型。針對泊位分配的靜態(tài)模型,imai給出了一種求解的該模型的啟發(fā)式算法;而對于泊位分配的動態(tài)模型,imai給出了一種利用拉格朗日松弛法求解的算法。papadimitriou提出了一種基于船舶優(yōu)先服務(wù)的數(shù)學(xué)模型。nishimura在imai的動態(tài)調(diào)度模型的基礎(chǔ)上,加入了船舶??康南拗茥l件,比如泊位的水深和船舶的長度等。sun在以前的基礎(chǔ)上,提出了一種連續(xù)泊位分配的方法,他將泊位看做連續(xù)的空間,根據(jù)船舶長度來動態(tài)的進(jìn)行分配,不再看成固定長度的泊位。monaco提出了一種用拉格朗日方法解決泊位分配模型的新思想,在論文中他提出利用拉格朗日方法得到一種有效的泊位分配方案,從而大大提高了泊位分配的效率。theofanis提出了利用遺傳算法進(jìn)行優(yōu)化的思想,這種啟發(fā)式算法解決了泊位分配復(fù)雜性的問題,是的大規(guī)模問題可以得到充分解決,從而得到更合理的分配方案。bierwirth將泊位分配問題和岸橋分配問題結(jié)合起來,建立了多目標(biāo)泊位分配的模型,是的港口調(diào)度問題更加合理,同時(shí)他提出了一種利用數(shù)學(xué)加權(quán)求解該模型的算法。f.wang提出了一種隨機(jī)分配泊位的數(shù)學(xué)模型。lawphongpanic提出了一種船舶靠泊的優(yōu)化方案,使得船舶港口調(diào)度的效率大大提高,同時(shí)極大的減少了船舶在港時(shí)間。國外對港口調(diào)度問題的研究,基本都是基于具體的港口問題進(jìn)行研究的,所以他們的研究相比較我國國內(nèi)的情況還是有很大的差別。
我國有綿長的海岸線,港口眾多,為了提高這些港口的運(yùn)作效率,科研人員對港口進(jìn)行了大量的理論研究和實(shí)際考察。在以往的港口問題研究中,泊位調(diào)度和岸橋分配是人們研究額的重點(diǎn),后來集卡調(diào)度也越來越受到人們的重視。人們將現(xiàn)有的遺傳算法,蟻群算法,粒子群算法等多種智能算法廣泛的應(yīng)用到港口調(diào)度的問題當(dāng)中,取得了顯著成績。由于港口環(huán)境復(fù)雜,不確定因素很多,孫彬提出了一種基于魯棒反應(yīng)式策略的泊位-岸橋調(diào)度方法,這種方法將港口調(diào)度分成兩部分考慮,泊位實(shí)時(shí)調(diào)度采用asap調(diào)整策略,岸橋?qū)崟r(shí)調(diào)度采用mas技術(shù)。劉志雄針對港口泊位調(diào)度問題,提出了一種基于粒子群算法的解決思路,算法中采用粒子位置取整的二維粒子編碼方式。針對港口內(nèi)位置不同的幾個(gè)集裝箱碼頭調(diào)度問題,徐亞將多個(gè)碼頭虛擬成一個(gè)碼頭,建立了混合整數(shù)規(guī)劃模型,設(shè)計(jì)了一種結(jié)合啟發(fā)式策略和模擬退火機(jī)制的混合模擬退火算法,極大的提高了港口的運(yùn)作效率。
針對岸橋調(diào)度中的動態(tài)分配問題,靳志宏構(gòu)建了泊位與岸橋聯(lián)合動態(tài)調(diào)度的數(shù)學(xué)模型,并且重新設(shè)計(jì)了遺傳算法用來求解該模型,使得集裝箱碼頭的運(yùn)行效率顯著提高。張煜將泊位看做連續(xù)的,建立了一種動態(tài)調(diào)度模型,并且根據(jù)模型建立了分段的染色體編碼,利用遺傳算法求解該模型。由于泊位和岸橋資源是固定的,這些資源的優(yōu)化方案直接關(guān)系到港口的作業(yè)效率,趙坤強(qiáng)建立了泊位分配的混合整數(shù)規(guī)劃模型,然后建立岸橋混合整數(shù)規(guī)劃模型,從而得到了較好的解。
當(dāng)前我國對港口調(diào)度的研究越來越廣泛和深入,但是這些研究往往都是基于單目標(biāo)的優(yōu)化,隨著港口工作的日益精細(xì)化,往往需要考慮調(diào)度中的多個(gè)個(gè)方面,實(shí)現(xiàn)各個(gè)目標(biāo)的均衡。多個(gè)目標(biāo)之間相互聯(lián)系,很難單獨(dú)來看,對多個(gè)目標(biāo)進(jìn)行整體優(yōu)化,統(tǒng)籌安排,讓每個(gè)目標(biāo)都能達(dá)到理想的情況,從而實(shí)現(xiàn)整個(gè)港口運(yùn)行的最大效率,是本申請主要解決的問題。為此,我們通過對青島港的實(shí)地調(diào)研和大量的查找資料,本申請構(gòu)建了一個(gè)用于港口調(diào)度多目標(biāo)優(yōu)化的數(shù)學(xué)模型。我們構(gòu)造了三個(gè)目標(biāo)函數(shù):最小船舶在港時(shí)間,最小集卡運(yùn)輸成本和最小岸橋裝卸成本。
多目標(biāo)優(yōu)化問題在各個(gè)行業(yè)都會遇到,也提出了很多算法,包括利用數(shù)學(xué)方法,將多目標(biāo)問題變成單目標(biāo)問題。但是這種數(shù)學(xué)方法存在著很多弊端,如果問題規(guī)模很大,這種方法往往很難解決。
技術(shù)實(shí)現(xiàn)要素:
針對現(xiàn)有技術(shù)中存在的上述技術(shù)問題,本發(fā)明提出了一種基于蟻群算法的多目標(biāo)岸橋-泊位調(diào)度優(yōu)化方法,設(shè)計(jì)合理,克服了現(xiàn)有技術(shù)的不足,具有良好的效果。
為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
一種基于蟻群算法的多目標(biāo)岸橋-泊位調(diào)度優(yōu)化方法,首先對蟻群算法的包括信息素蒸發(fā)率ρ、啟發(fā)因子α和β、算法的啟發(fā)函數(shù)、信息素濃度更新規(guī)則以及算法中的選擇概率函數(shù)在內(nèi)的參數(shù)進(jìn)行改進(jìn);
其中,對信息素蒸發(fā)率ρ進(jìn)行如下改進(jìn):
ρ初始化為ρ(n0),當(dāng)算法經(jīng)過n次循環(huán),所得到的解無明顯變化時(shí)候,ρ的值作如下改進(jìn):
其中,ρmin是ρ可以取的最小值;
對啟發(fā)因子α和β進(jìn)行如下改進(jìn):
使兩者之間的關(guān)系滿足α+β=1;
對啟發(fā)函數(shù)進(jìn)行如下改進(jìn):
在算法中,每一個(gè)船舶的分配計(jì)劃都用一只螞蟻表示,每一個(gè)方案也代表了問題的最優(yōu)解,我們用r(i,j,c)來標(biāo)識每個(gè)解向量的分量,表示第j艘船分配到泊位i上并且分配c個(gè)岸橋,r(i,j,c)這個(gè)動作的啟發(fā)信息用ηijc表示,這個(gè)信息表示集裝箱船舶j分配到泊位i并分配c個(gè)岸橋;
通過公式(2)計(jì)算動作r(i,v,c)總的啟發(fā)信息:
ηivc=ηivc1×ηivc2×ηivc3(2);
其中,ηivc1是針對最小在港時(shí)間的啟發(fā)函數(shù),ηivc2是針對最小裝卸成本的啟發(fā)函數(shù),ηivc3是針對最小拖車成本的啟發(fā)函數(shù),ηivc是每一艘集裝箱船舶分配泊位和岸橋數(shù)目的總的啟發(fā)函數(shù);
對信息素濃度更新規(guī)則進(jìn)行如下改進(jìn):
通過如下規(guī)則來計(jì)算每一次迭代執(zhí)行后路徑ij上信息素濃度的變化量δτij(t+1):
δτij(t+1)=δτij(t)+(t×δ)(3);
其中,δ是一個(gè)很小的正數(shù),t是當(dāng)前迭代的次數(shù),δτij(t)表示本次迭代過程中路徑ij上螞蟻留下的信息素濃度;
在人工螞蟻搜索完成所有解空間后,對全局的信息素濃度進(jìn)行更新,則更新規(guī)則如下:
其中,ρ為信息素蒸發(fā)率,(1-ρ)表示信息素殘留率,ρ∈(0,1],τij(t)表示螞蟻從狀態(tài)i變化到狀態(tài)j時(shí)的信息素濃度,τij(t-1)表示在迭代執(zhí)行前路徑ij上的信息素濃度,
其中,
對選擇概率函數(shù)進(jìn)行如下改進(jìn):
將概率計(jì)算公式改進(jìn)為:
其中,k∈allowedk表示集裝箱船舶可以選擇的泊位;
參數(shù)改進(jìn)后的基于蟻群算法的多目標(biāo)岸橋-泊位調(diào)度優(yōu)化方法,包括如下步驟:
輸入:進(jìn)港船舶的信息集合;
輸出:進(jìn)港船舶的岸橋,泊位,集卡分配計(jì)劃的集合;
步驟1:初始化參數(shù),設(shè)置啟發(fā)式因子α、信息素蒸發(fā)率ρ、常數(shù)δ、信息素初始濃度τ0以及最大迭代次數(shù)tmax的值;
步驟2:將m個(gè)人工螞蟻隨機(jī)的放在m個(gè)位置上;
步驟3:通過公式(3)、(4)、(5)來改變螞蟻構(gòu)建解的路徑上的信息素濃度,通過人工螞蟻得到的解來計(jì)算各個(gè)路徑上目標(biāo)函數(shù)的值;
步驟4:利用公式(4.14),對人工螞蟻得到解進(jìn)行選擇,得到最優(yōu)解;
其中,
步驟5:判斷t是否小于tmax;
若:判斷結(jié)果是t小于tmax,則令t=t+1,然后進(jìn)入步驟3;
或判斷結(jié)果是t大于或者等于tmax,則進(jìn)入步驟6;
步驟6:利用步驟4得到的最優(yōu)解計(jì)算各個(gè)路徑上目標(biāo)函數(shù)的值;
步驟7:將步驟4得到的最優(yōu)解與解空間中的其它解對比,判斷此最優(yōu)解是否為非支配解;
若:判斷結(jié)果是此最優(yōu)解為非支配解,則加入到解空間;
或判斷結(jié)果是此最優(yōu)解為支配解,則舍棄;
步驟8:將解空間中的非支配解相互對比,確定最終的非支配解;
步驟9:利用公式(1)更新ρ;
步驟10:利用公式(3)更新δτij(t+1);
步驟11:利用公式(4)更新τij;
步驟12:判斷在相同參數(shù)條件下執(zhí)行的次數(shù)nc是否大于最大執(zhí)行的次數(shù)nc(max);
若:判斷結(jié)果是nc>nc(max),則執(zhí)行步驟13;
或判斷結(jié)果是nc≤nc(max),則令δτij=0,nc=nc+1,然后執(zhí)行步驟2;
步驟13:輸出結(jié)果。
此外,本發(fā)明還提到一種基于搜索方式的多目標(biāo)岸橋-泊位調(diào)度優(yōu)化方法,該方法具體包括如下步驟:
輸入:進(jìn)港船舶的信息集合;
輸出:進(jìn)港船舶的岸橋,泊位,集卡分配計(jì)劃的集合;
步驟1:初始化各個(gè)參數(shù),隨機(jī)生成n個(gè)螞蟻,計(jì)算每個(gè)螞蟻對應(yīng)的目標(biāo)函數(shù)值fi(x);
步驟2:初始化精英集合p,其中每個(gè)元素代表的解都是可行且非支配的解;
步驟3:令初始化迭代次數(shù)t=1;
步驟4:令當(dāng)前螞蟻i=1;
步驟5:產(chǎn)生一個(gè)隨機(jī)數(shù)s,s的范圍在[0,1],將隨機(jī)數(shù)s與參數(shù)p0進(jìn)行比較,p0是一個(gè)取值在[0,1]的數(shù);如果s≤p0,則對當(dāng)前螞蟻i采用精英集合搜索的方式尋找最優(yōu)解;如果s>p0,則對當(dāng)前螞蟻采用蟻群內(nèi)搜索的方式尋找最優(yōu)解;
步驟6:確定當(dāng)前螞蟻i的選擇方向,重新計(jì)算螞蟻i對應(yīng)的目標(biāo)函數(shù)值;
步驟7:根據(jù)精英集合更新規(guī)則,判斷螞蟻i是否滿足規(guī)則;
若:判斷結(jié)果是螞蟻i滿足規(guī)則,則加入到精英集合p中,并刪除精英集合p中被螞蟻i支配的解;
或判斷結(jié)果是螞蟻i不滿足規(guī)則,則丟棄,不加入到精英集合p中;
步驟8:令i=i+1,判斷i是否≤n;
若:判斷結(jié)果是i≤n,則執(zhí)行步驟5;
或判斷結(jié)果是i>n,則執(zhí)行步驟9;
步驟9:對精英集合中的解進(jìn)行領(lǐng)域搜索;
步驟10:令t=t+1,判斷t是否小于tmax;
若:判斷結(jié)果是t小于tmax,則執(zhí)行步驟4;
或判斷結(jié)果是t大于或者等于tmax,則結(jié)束。
本發(fā)明所帶來的有益技術(shù)效果:
(1)蟻群算法可以求解得到最接近模型的最優(yōu)解方案;
(2)正負(fù)反饋相互結(jié)合是蟻群算法又一重要特點(diǎn),這一重要特點(diǎn)可以使蟻群之內(nèi)的個(gè)體更好的交流,從而獲得更好的解;
(3)利用蟻群算法,可以得到很多的有效解,決策者可以根據(jù)實(shí)際問題進(jìn)行選擇。
(4)本發(fā)明對每個(gè)螞蟻的適應(yīng)度進(jìn)行計(jì)算并對螞蟻進(jìn)行選擇,使算法更快的向最優(yōu)收斂;保持了群體多樣,以便得到離散分布的近似pareto最優(yōu)前沿;
(5)本發(fā)明對傳統(tǒng)多目標(biāo)蟻群算法中的信息素蒸發(fā)率ρ,啟發(fā)因子α、β,算法的啟發(fā)函數(shù),信息素濃度更新規(guī)則以及算法中的選擇概率函數(shù)進(jìn)行優(yōu)化,從而使得算法得到優(yōu)化;另一方面,從算法搜索方式,對傳統(tǒng)多目標(biāo)蟻群算法進(jìn)行優(yōu)化,從而提高算法的執(zhí)行效率。改變傳統(tǒng)算法的不足,以適應(yīng)不同領(lǐng)域不同問題的求解需要,從而使得問題得以解決。
(6)通過本發(fā)明可以對到港集裝箱船舶進(jìn)行調(diào)度優(yōu)化,從而提高了算法的執(zhí)行效率,可以在更短的時(shí)間內(nèi)求得我們所需要的pareto最優(yōu)解,從而提高了港口的運(yùn)行效率,不僅可以節(jié)約港口運(yùn)營成本,對促進(jìn)區(qū)域和國家經(jīng)濟(jì)發(fā)展也有重要意義。
附圖說明
圖1為八個(gè)時(shí)間單位內(nèi)兩只螞蟻行走情況示意圖。
圖2為十六個(gè)時(shí)間單位內(nèi)兩只螞蟻行走情況示意圖。
圖3為凸集示意圖。
圖4為凹集示意圖。
圖5為集裝箱船舶在泊位i上靠泊情況示意圖。
圖6為算法4.1在迭代執(zhí)行300次后的收斂過程示意圖。
圖7為算法4.2在迭代執(zhí)行300次后的收斂過程示意圖。
圖8為算法4.1的平均迭代次數(shù)與問題規(guī)模關(guān)系示意圖。
圖9為算法4.2的平均迭代次數(shù)與問題規(guī)模關(guān)系示意圖。
圖10為算法4.1與m-aco收斂過程比較示意圖。
圖11為算法4.1與m-gaco收斂過程比較示意圖。
圖12為問題規(guī)模為10時(shí)算法4.2和m-aco、m-gaco算法執(zhí)行完成時(shí)間與迭代次數(shù)關(guān)系示意圖。
圖13為問題規(guī)模為20時(shí)算法4.2和m-aco、m-gaco算法執(zhí)行完成時(shí)間與迭代次數(shù)關(guān)系示意圖。
圖14為問題規(guī)模為30時(shí)算法4.2和m-aco、m-gaco算法執(zhí)行完成時(shí)間與迭代次數(shù)關(guān)系示意圖。
圖15為問題規(guī)模為40時(shí)算法4.2和m-aco、m-gaco算法執(zhí)行完成時(shí)間與迭代次數(shù)關(guān)系示意圖。
具體實(shí)施方式
下面結(jié)合附圖以及具體實(shí)施方式對本發(fā)明作進(jìn)一步詳細(xì)說明:
1、基本蟻群算法
1基本蟻群算法原理
螞蟻從a出發(fā)到b,從a到b有acb和adb兩條線路可以選擇。假設(shè)現(xiàn)在有1,2,3,4四只螞蟻,開始的時(shí)候線路acb和線路adb各分配一只螞蟻,螞蟻1沿著acb前進(jìn),螞蟻2沿著adb前進(jìn),每個(gè)時(shí)間單位內(nèi)螞蟻行走一步,圖1是經(jīng)過八個(gè)時(shí)間單位兩只螞蟻的行走情況。螞蟻1到達(dá)位置b,而螞蟻2剛剛到位置d,是線路adb路程的一半。
螞蟻1到達(dá)位置b,然后原路返回,螞蟻2繼續(xù)前進(jìn)。經(jīng)過16個(gè)時(shí)間單位,螞蟻1和螞蟻2的行進(jìn)情況如圖2所示,此時(shí)螞蟻1返回到a點(diǎn)蟻穴,螞蟻2剛剛到達(dá)b點(diǎn)。如果螞蟻經(jīng)過一次的線路留下的信息素為一個(gè)單位,此時(shí)線路acb上的信息素濃度為2個(gè),線路adb上的信息素濃度為1個(gè)。經(jīng)過32個(gè)時(shí)間單位,螞蟻1在線路acb上往返兩趟,螞蟻2在線路adb上往返一趟,線路acb上每一處的信息素濃度為4個(gè),線路adb上信息素的濃度只有2個(gè),兩者比值為2:1。
利用基本蟻群算法[求解tsp問題首先需要對tsp問題進(jìn)行形式化建模。tsp可以表示成有向圖g=(n,a),其中n代表城市,n={1,2,3,…,n;,a表示n個(gè)城市之間的路徑,a={(i,j)|i,j∈n};dij,i,j∈n表示兩個(gè)城市之間的距離;目標(biāo)函數(shù)
其中w=(i1,i2,i3,...,in)是n個(gè)城市的一個(gè)排列。
基本蟻群算法對tsp問題]的求解過程分為兩個(gè)步驟,首先進(jìn)行路徑構(gòu)建,然后進(jìn)行信息素的更新。
2、pareto最優(yōu)解
對多目標(biāo)優(yōu)化問題進(jìn)行數(shù)學(xué)建模,多目標(biāo)優(yōu)化問題的數(shù)學(xué)模型由多個(gè)目標(biāo)函數(shù)和多個(gè)約束條件組成[30]。
mingq(x1,x2,...,xn)
s.t.si(x1,x2,...,xn)≥0,i=1,2,…,m
hj(x1,x2,...,xn)=0,j=1,2,…,l
假設(shè)x=(x1,x2,...,xn)∈d是n維的解向量,可行域d是問題的解空間;f(x)=(f1,f2,…,fp,g1,g1…,gq)。
定義:解向量之間的支配關(guān)系
向量u=(u1,u2,…,un)和向量v=(v1,v2,…,vn)是解空間d中兩個(gè)向量
若u等于v:當(dāng)且僅當(dāng)
若u優(yōu)于v:當(dāng)且僅當(dāng)
若u弱優(yōu)于v:當(dāng)且僅當(dāng)
若u無差別與v:當(dāng)且僅當(dāng)
定義:決策空間個(gè)體之間的支配關(guān)系
向量u=(u1,u2,…,un)和向量v=(v1,v2,…,vn)是解空間d中兩個(gè)向量。
若u=v,則f(u)=f(v);
若u>v,則f(u)<f(v);
若u≥v,則f(u)≤f(v);
若u~v,則
定義1:若存在x*=(x1,x2,...,xn)∈d,使得對于
f(x*)≤f(x)
我們稱x*是f(x)的絕對最優(yōu)解。
定義2:若不存在x*=(x1,x2,...,xn)∈d滿足:
f(x*)≤f(x)
我們稱x*是f(x)的有效解,又稱pareto解。
定義3:若不存在x*=(x1,x2,...,xn)∈d滿足:
f(x*)<f(x)
我們稱x*是f(x)的弱有效解。
定義4:我們記f(x)=(f1(x),f2(x),…,fp(x),g1(x),g1(x),…,gq(x)),對于任意的
x0=(x1,x2,...,xn)∈d都可得到一個(gè):
f(x0)=(f1(x0),f2(x0),…,fp(x0),g1(x0),g1(x0),…,gq(x0)
這樣我們通過上面的公式得到一個(gè)映像f,集合:
f(d)={f(x)|x∈d}
稱為解向量空間d在映射f下的像,簡稱像集。
定義5:設(shè)集合
如果任意的α∈[0,1],有αs1+(1-α)s2∈s,我們稱集合s為凸集。
如果任意的α∈[0,1],有αs1+(1-α)s2∈ints,我們稱集合s為嚴(yán)格凸集。
其中ints表示集合內(nèi)部,不包括集合s的邊界。
如果一個(gè)集合中任意兩點(diǎn)連線上的點(diǎn)仍然在集合中,則稱該集合為凸集。否則稱為凹集。圖3為凸集示例,圖4為凹集示例。
現(xiàn)在已經(jīng)提出了很多的多目標(biāo)優(yōu)化算法,在評價(jià)這些算法的性能時(shí)候,常常會涉及到凸集和凹集的概念。
2、岸橋-泊位調(diào)度問題的形式化描述
根據(jù)港口調(diào)度的實(shí)際情況,建立了岸橋-泊位調(diào)度的數(shù)學(xué)模型,給出了模型的形式化描述,構(gòu)造了三個(gè)目標(biāo)函數(shù),并給出了模型的約束條件。
本申請將港口泊位看成離散的,獨(dú)立的來進(jìn)行分配,根據(jù)以上對問題的描述,參考泊位-岸橋調(diào)度的各個(gè)因素,我們可以從集裝箱船舶作業(yè)流程中抽出以下模型。
1)所有船舶都會靠泊;
2)所有集裝箱船舶只能靠泊裝卸一次;
3)船舶到港后才能靠泊接受服務(wù);
4)集裝箱船舶吃水深度必須要比靠泊泊位的海水深度淺;
5)??坎次槐仨氝_(dá)到船舶長度的要求;
6)一次一個(gè)泊位只能停靠一艘船舶;
7)每一艘船舶岸橋數(shù)目不大于岸橋的最大數(shù)目;
8)船舶靠泊時(shí)間大于到港時(shí)間;
模型參數(shù):
對數(shù)學(xué)模型中用到的參數(shù)進(jìn)行如下說明:
v:一段時(shí)間內(nèi)的集裝箱船舶到港集合,每個(gè)集裝箱船舶記為vj,其中j={1,2,3,…,|v|};
b:港口內(nèi)所有泊位集合,其中對泊位標(biāo)記為bi,其中i={1,2,3,…,|b|};
c:港口泊位上的岸橋集合,每個(gè)岸橋記為ck,其中k={1,2,3,…,|c|};
pj:集裝箱船舶j的偏好靠泊泊位,j∈v;
ej:集裝箱船舶j的船載標(biāo)箱數(shù)量,j∈v;
cmj:集裝箱船舶j上服務(wù)的最大岸橋數(shù)目,與集裝箱船舶大小相關(guān),j∈v;
lvj:集裝箱船舶j的靠泊水平長度,j∈v;
dvj:集裝箱船舶j吃水深度,j∈v;
c0:單個(gè)岸橋的工作效率;
d:兩個(gè)泊位間的運(yùn)輸距離;
lbi:泊位i的長度,i∈b;
dbi:泊位i的水深,i∈b;
c1:單位距離內(nèi)集卡運(yùn)輸集裝箱的成本;
c2:一個(gè)岸橋單位時(shí)間內(nèi)裝卸集裝箱的裝卸成本;
vo:集裝箱船舶靠泊順序集合;
vb:集裝箱船舶靠泊泊位集合;
vc:集裝箱船舶裝卸過程中用到的岸橋數(shù)目集合;
voj:集裝箱船舶j的靠泊順序,j∈v;
vbj集裝箱船舶j的??坎次唬琷∈v;
vcj:集裝箱船舶j的作業(yè)岸橋數(shù)目,j∈v;
taj:集裝箱船舶j的到港時(shí)間,j∈v;
tbj:集裝箱船舶j開始服務(wù)時(shí)間,j∈v;
cij:集裝箱船舶j在泊位i上的作業(yè)時(shí)間,j∈v,i∈b;
對變量xijk做如下定義:
上面給出的變量中,屬于決策變量的是vo,vb,vc,voj,vbj和vcj。屬于從屬變量的是taj,tbj,cij和xijk。
目標(biāo)函數(shù)
根據(jù)對港口實(shí)際情況的調(diào)研,分析了影響港口岸橋-泊位調(diào)度的所有因素,本申請給出了三個(gè)目標(biāo)函數(shù):集裝箱船舶最小在港時(shí)間,最小運(yùn)輸成本和最小岸橋裝卸成本。
集裝箱船舶在港最短時(shí)間
集裝箱船舶進(jìn)港之后,按照一定的順序??吭诓次簧?,每一個(gè)泊位停靠情況不同,可以用圖5的形式表示泊位i上的??壳闆r。
圖5表示泊位i上集裝箱船舶的靠泊情況,水平坐標(biāo)表示時(shí)間,垂直坐標(biāo)集裝箱船舶按照港口制定的靠泊計(jì)劃,按照一定順序,依次進(jìn)入泊位i進(jìn)行裝卸作業(yè)。在圖5中,一共有三種不同的線條,其中粗黑線條表示船舶進(jìn)入??坎次缓笱b卸作業(yè)的時(shí)間,細(xì)黑線條表示集裝箱船舶在到港后沒有立即停靠,而是錨地等待,細(xì)黑線條代表了錨地等待的時(shí)間。虛線表示泊位i空閑的時(shí)間,水平方向上的五條線代表五條??坎次籭進(jìn)行裝卸作業(yè)的五艘集裝箱船舶。由圖中我們可以看出,從時(shí)刻ti開始,集裝箱船舶v1在泊位i靠泊,開始裝卸作業(yè),經(jīng)過ci1的作業(yè)時(shí)間,然后駛離泊位i,ta3時(shí)刻集裝箱船舶v3到達(dá)港口,然后錨地等待,此時(shí)泊位i處于空閑狀態(tài),到ta2時(shí)刻,集裝箱船舶v2到達(dá)港口并靠泊進(jìn)行裝卸作業(yè),裝卸作業(yè)的時(shí)間是ci2,此時(shí)v2完成裝卸作業(yè),離開泊位i。集裝箱船舶v3沒有靠泊計(jì)劃,需要繼續(xù)錨地等待,此時(shí)泊位i沒有集裝箱船舶???。泊位i一直空閑到到ta4時(shí)刻,此時(shí)集裝箱船舶v4到達(dá)港口,并且按照計(jì)劃在??坎次籭上,進(jìn)行裝卸作業(yè)。裝卸作業(yè)時(shí)間是ci4,此時(shí)v4完成裝卸作業(yè),v4完成裝卸任務(wù)后離開港口。集裝箱船舶v3??坎次?,進(jìn)行裝卸作業(yè)。集裝箱船舶v5在ta5時(shí)刻到達(dá)港口,然后錨地等待,并在集裝箱船舶v3完成裝卸作業(yè)后,按照港口制定的靠泊計(jì)劃,然后??坎次唤邮芊?wù),經(jīng)過ci5的時(shí)間,集裝箱船舶完成裝卸任務(wù)后離開港口。
根據(jù)圖5可以知道,變量yijk表示在泊位i上第k條集裝箱船舶??坎磿r(shí)刻與泊位i上第k-1條集裝箱船舶完成裝卸任務(wù)離開港口時(shí)刻之差。根據(jù)對yijk的描述,可以知道yi22表示船舶v2停靠泊位開始裝卸任務(wù)的時(shí)刻減去船舶v1的完成裝卸任務(wù)離開港口的時(shí)刻。因?yàn)樵诓次籭上,只有上一艘船舶離開港口后,下一艘才能進(jìn)入泊位i???,因此如果yijk<0,則讓yijk=0。
對于每一條集裝箱船舶j,其在港的時(shí)間可以定義為:船舶j進(jìn)入泊位接開始裝卸的時(shí)刻-船舶j的到達(dá)港口的時(shí)刻+集裝箱船舶j在泊位i上完成裝卸任務(wù)的時(shí)間,即
tbj-taj+cij3.1
所有集裝箱船舶在港時(shí)間可以定義為:
從某個(gè)時(shí)刻ti開始,在一個(gè)時(shí)間段內(nèi)共有|b|條船只需要調(diào)度,在泊位i上的靠泊船只總數(shù)為si,根據(jù)公式(3-2)可以推導(dǎo)出:
在泊位i上的第一艘船舶在港時(shí)間為:
其中j1表示在泊位i上第一艘進(jìn)入泊位i停泊的集裝箱船舶,
在泊位i上的第二艘船舶在港時(shí)間為:
其中
同理可知:
在泊位i上的第三艘船舶在港時(shí)間為:
其中
以此類推,可以推導(dǎo)出,泊位i上第si搜集裝箱船舶在港時(shí)間為:
根據(jù)公式(3.1)每艘集裝箱船舶在港時(shí)間和公式(3.2)所有集裝箱船舶在港時(shí)間可以得出:
對f1求最小值,從而得到所有集裝箱船舶在港最短時(shí)間為:
在目標(biāo)函數(shù)f1中,u為集裝箱船舶j在泊位i上靠泊的序號集合,∑i∈b∑j∈v∑k∈u{(si-k+1)cij+ti-taj}xijk表示集裝箱船舶在港裝卸作業(yè)時(shí)間和集裝箱船舶錨地等待靠泊的時(shí)間,∑i∈b∑j∈v∑k∈u(si-k+1)yijkxijk表示泊位空閑時(shí)間。
最小集卡運(yùn)輸成本
在集裝箱船舶進(jìn)港之前,會向港口提交關(guān)于進(jìn)港船舶的相關(guān)資料,包括船舶的大小,吃水深度以及船載集裝箱數(shù)量等信息,港口調(diào)度人員收到相關(guān)資料后會為該船舶制定靠泊計(jì)劃,包括為該船舶分配泊位,堆場,岸橋以及用來運(yùn)輸集裝箱的集卡。船舶進(jìn)港??坎次坏臅r(shí)候船舶j會被分配偏好靠泊泊位,即該泊位與堆放集裝箱的堆場位置最近,這樣集卡運(yùn)輸集裝箱的運(yùn)輸成本會降到最低。但是這只是一種理想狀態(tài),在港口實(shí)際運(yùn)行中,不可能所有的集裝箱船舶都停靠在自己的偏好靠泊泊位上,但是我們可以通過優(yōu)化策略盡可能的將集卡的運(yùn)輸成本降低。本申請中最小集卡運(yùn)輸成本的目標(biāo)函數(shù)可以寫為:
最小岸橋裝卸成本
在現(xiàn)代化的港口,每一個(gè)進(jìn)入泊位??康募b箱船舶,都會被分配不同數(shù)目的岸橋,進(jìn)行裝卸作業(yè)。因?yàn)榘稑虻难b卸成本與所有岸橋裝卸作業(yè)的總時(shí)間和集裝箱船舶分配的岸橋總數(shù)成正比,所以可以定義最小岸橋裝成本的目標(biāo)函數(shù)為:
約束條件
根據(jù)對岸橋-泊位調(diào)度的問題描述,考慮到岸橋-泊位調(diào)度的實(shí)際情況,給出了模型的約束條件。
(1)所有泊位上靠泊作業(yè)的集裝箱船舶數(shù)量應(yīng)該等于到港船舶的數(shù)量;
(2)每只集裝箱船舶只靠泊進(jìn)行一次裝卸作業(yè);
(3)每艘集裝箱船舶必須到港后才能靠泊進(jìn)行裝卸作業(yè);
假設(shè)在泊位i上被服務(wù)的集裝箱船舶有si條,泊位i上第一條靠泊的集裝箱船舶時(shí)間為:
泊位i上第二條靠泊的集裝箱船舶時(shí)間為:
泊位i上第二條靠泊的集裝箱船舶時(shí)間為:
由此得出,泊位i上第j條船的進(jìn)行裝卸作業(yè)的時(shí)刻:
由于公式tbj-taj≥0,則
其中ti+∑j∈v∑k∈u(yijk+cij)+yijk為泊位i上第k-1條集裝箱船舶離開的時(shí)刻tbj。
(4)泊位水深必須大于集裝箱船舶的吃水深度;
(5)集裝箱船舶長度必須小于泊位長度;
(6)集裝箱船舶分配的岸橋數(shù)目要小于或者等于集裝箱船舶最大的限定數(shù)目;
(7)集裝箱船舶的作業(yè)時(shí)間等于裝卸量除以岸橋的裝卸效率;
約束條件是為了對實(shí)際情況中存在的各種客觀因素做出約束,使得模型更符合現(xiàn)實(shí)情況。只有通過約束條件的限制,模型才能更加完善,在應(yīng)用中更好的發(fā)揮作用。
基于蟻群算法的多目標(biāo)岸橋-泊位調(diào)度優(yōu)化
根據(jù)提出的岸橋-泊位數(shù)學(xué)模型,基于傳統(tǒng)的多目標(biāo)蟻群算法,提出了兩個(gè)算法對模型進(jìn)行求解,并提出了一種模型約束條件處理的方法。
岸橋-泊位調(diào)度的多目標(biāo)優(yōu)化
首先給定問題的約束條件,在約束條件成立的前提下,然后分析制定進(jìn)港集裝箱船舶靠泊計(jì)劃,并且為每一艘集裝箱船舶分配一定數(shù)目的岸橋,從而使得集裝箱船舶在港時(shí)間最少。綜合岸橋數(shù)目和裝卸效率對裝卸成本的影響,合理分配可以使得裝卸成本最低。所有的進(jìn)港集裝箱船舶,都能停在其偏好泊位,則拖車成本最低。在岸橋-泊位調(diào)度過程中,不僅要考慮港口的運(yùn)作效率,港口的運(yùn)營成本,同時(shí)我們還要考慮集裝箱船舶的一些自身限制條件,和港口實(shí)際情況的限制。通過上述分析可以知道,岸橋-泊位調(diào)度是關(guān)于多目標(biāo)優(yōu)化的問題。
通過對岸橋-泊位調(diào)度的數(shù)學(xué)建模的分析可知,岸橋-泊位分配調(diào)度的問題,從數(shù)學(xué)上講,其本質(zhì)就是一定約束條件下的多目標(biāo)優(yōu)化問題。在基于岸橋-泊位分配的優(yōu)化中,本身不存在最優(yōu)狀態(tài),通過蟻群算法可以找出使得各個(gè)目標(biāo)都能很好滿足的解。理論上,岸橋-泊位調(diào)度的多目標(biāo)優(yōu)化問題,利用傳統(tǒng)的數(shù)學(xué)規(guī)劃可以求解,但是岸橋-泊位調(diào)度的多目標(biāo)優(yōu)化十分復(fù)雜,問題空間規(guī)模龐大,傳統(tǒng)的多目標(biāo)數(shù)學(xué)規(guī)劃方法求解十分困難,不能處理數(shù)量龐大的數(shù)據(jù),因此我們必須使用一種新的方法解決。
具體到岸橋-泊位調(diào)度的多目標(biāo)優(yōu)化問題,根據(jù)本申請建立的優(yōu)化數(shù)學(xué)模型,先求出一組滿意解。正是因?yàn)閭鹘y(tǒng)算法中的諸多局限,在求解多目標(biāo)問題的時(shí)候有很多的弊端,所以新發(fā)展起來的智能算法,包括蟻群算法,越來越多的被應(yīng)用到多目標(biāo)問題優(yōu)化當(dāng)中。
本申請基于岸橋-泊位調(diào)度模型,提出利用多目標(biāo)蟻群算法來求解岸橋-泊位調(diào)度的優(yōu)化問題,從而有效的提高港口的運(yùn)作效率,降低港口的運(yùn)營成本。在岸橋-泊位優(yōu)化調(diào)度問題中應(yīng)用蟻群算法具有很多的優(yōu)越性:
(1)蟻群算法可以求解得到最接近模型的最優(yōu)解方案,而傳統(tǒng)的多目標(biāo)優(yōu)化方法很難做到這一點(diǎn)。
(2)正負(fù)反饋相互結(jié)合是蟻群算法又一重要特點(diǎn),這一重要特點(diǎn)可以使蟻群之內(nèi)的個(gè)體更好的交流,從而獲得更好的解。而傳統(tǒng)的求解多目標(biāo)問題的算法,不能客觀的反應(yīng)問題的實(shí)際情況,帶有主觀性。
(3)利用蟻群算法,可以得到很多的有效解,決策者可以根據(jù)實(shí)際問題進(jìn)行選擇。
(4)常規(guī)的蟻群算法往往會收斂到一個(gè)解,不能滿足pareto最優(yōu)解的離散分布的目標(biāo),所以必須對常規(guī)蟻群算法引入多目標(biāo)處理機(jī)制,具體體現(xiàn)在兩方面,一是如何對每個(gè)螞蟻的適應(yīng)度進(jìn)行計(jì)算和如何對螞蟻進(jìn)行選擇,使算法更快的向最優(yōu)收斂。二是要保持群體多樣,以便得到離散分布的近似pareto最優(yōu)前沿。
(5)對多目標(biāo)蟻群算法的不同方面進(jìn)行改進(jìn),可以提高算法的性能,傳統(tǒng)多目標(biāo)蟻群算法直接被用來解決岸橋-泊位調(diào)度問題,有諸多不足。一方面從傳統(tǒng)多目標(biāo)蟻群算法的參數(shù)優(yōu)化考慮,對傳統(tǒng)多目標(biāo)蟻群算法中的信息素蒸發(fā)率ρ,啟發(fā)因子α、β,算法的啟發(fā)函數(shù),信息素濃度更新規(guī)則以及算法中的選擇概率函數(shù)進(jìn)行優(yōu)化,從而使得算法得到優(yōu)化。另一方面,從算法搜索方式,對傳統(tǒng)多目標(biāo)蟻群算法進(jìn)行優(yōu)化,從而提高算法的執(zhí)行效率。改變傳統(tǒng)算法的不足,以適應(yīng)不同領(lǐng)域不同問題的求解需要,從而使得問題得以解決。
4、多目標(biāo)蟻群算法的參數(shù)改進(jìn)優(yōu)化
對信息素蒸發(fā)率ρ的改進(jìn)
通過對蟻群算法分析可以知道,在螞蟻尋找最優(yōu)解的過程中,會在路徑上留下信息素。但同時(shí)信息素濃度也會隨著時(shí)間的推移而揮發(fā),所以一條路徑上的實(shí)際信息素濃度,包括螞蟻經(jīng)過留下的和信息素濃度揮發(fā)減少的。本申請信息素濃度蒸發(fā)用ρ表示,信息素濃度殘留用(1-ρ)表示。
因?yàn)榘稑?泊位調(diào)度問題的規(guī)模很大,我們在設(shè)定信息素蒸發(fā)率ρ的時(shí)候,如果ρ值過小,則從未被搜索到的信息會變少,從而導(dǎo)致算法全局搜索的能力降低;如果ρ值過大,在算法執(zhí)行過程中,路徑上走過的螞蟻遺留的信息素大多部分會蒸發(fā)掉,后來的螞蟻會選擇原來的路徑,不利于對整個(gè)解空間的搜索。如果減小ρ,算法在整個(gè)搜索空間的隨機(jī)性更大,并且算法的全局搜索能力也可以大大提高。但是如果ρ太小,算法執(zhí)行收斂的速度會很緩慢,在整個(gè)搜索空間花費(fèi)的時(shí)間也會大大增加。鑒于以上問題,我們可以通過在算法執(zhí)行過程中動態(tài)的改變ρ值加以解決。
ρ初始化為ρ(n0),當(dāng)算法經(jīng)過n次循環(huán),所得到的解無明顯變化時(shí)候,ρ的值作如下改進(jìn):
其中ρmin是ρ可以取的最小值。
對啟發(fā)因子α,β改進(jìn)
啟發(fā)式因子α是一個(gè)常數(shù),是信息素的加權(quán)值,表示螞蟻在構(gòu)建路徑的過程中累加的信息量的重要程度,對算法的執(zhí)行效率影響很大。受啟發(fā)因子α的影響,當(dāng)啟發(fā)式因子α變大時(shí),信息素濃度在算法執(zhí)行過程中正反饋的影響越大,局部尋找最優(yōu)路徑時(shí),可以更快的收斂,從而算法在整個(gè)搜索空間的搜索能力變?nèi)酢.?dāng)啟發(fā)式因子α變小的時(shí)候,信息素濃度在算法執(zhí)行過程中的影響力減小,算法局部搜索的隨機(jī)性變大,從而導(dǎo)致算法執(zhí)行效率很低,算法執(zhí)行時(shí)間過長,也會容易使算法陷入局部最優(yōu)。
期望啟發(fā)因子β也是一個(gè)常數(shù),是能見度的加權(quán)值,期望啟發(fā)因子可以反映啟發(fā)信息在算法執(zhí)行過程當(dāng)中的重要程度,蟻群算法構(gòu)建路徑,需要利用啟發(fā)信息,期望啟發(fā)因子就是來衡量啟發(fā)因子的需要程度。多目標(biāo)蟻群算法需要先驗(yàn)經(jīng)驗(yàn),期望啟發(fā)因子β就是表示先驗(yàn)經(jīng)驗(yàn)的作用。當(dāng)期望啟發(fā)因子β值變大時(shí),在算法執(zhí)行過程中,算法更容易局部收斂。此時(shí)算法執(zhí)行時(shí)間很快,算法能夠很快收斂,但是算法在整個(gè)空間的搜索能力變?nèi)?。期望啟發(fā)因子β越小,會使得算法更容易陷入隨機(jī)搜索,算法在執(zhí)行過程中找到最優(yōu)解的可能性也會降低。
啟發(fā)式因子α與期望啟發(fā)因子β互補(bǔ)雙生,兩者相互配合,在算法執(zhí)行過程中,對算法的執(zhí)行時(shí)間,全局搜索能力和收斂速度進(jìn)行影響,可以通過調(diào)節(jié)兩者的數(shù)值對算法進(jìn)行優(yōu)化。所以如何對這兩個(gè)常數(shù)進(jìn)行取值,構(gòu)建兩者之間的關(guān)系變的非常重要。本申請中,我們用1-α來代替β,即兩者之間的關(guān)系為α+β=1,并且采用乘積代替冪指數(shù)的方法,從而降低蟻群算法的時(shí)間復(fù)雜度。
對啟發(fā)函數(shù)進(jìn)行改進(jìn)
與自然螞蟻不同,人工螞蟻在解決問題的時(shí)候往往包含一些啟發(fā)信息,這些啟發(fā)信息都是實(shí)際問題已包含的,如在泊位-岸橋優(yōu)化調(diào)度中,我們要求解的問題是在多個(gè)約束條件下實(shí)現(xiàn)多個(gè)目標(biāo),將不同的集裝箱船舶??康讲煌牟次?,并分配一定數(shù)目的岸橋,啟發(fā)函數(shù)可以看成是人工螞蟻的經(jīng)驗(yàn)函數(shù),在構(gòu)建多目標(biāo)岸橋-泊位數(shù)學(xué)模型的時(shí)候,啟發(fā)函數(shù)起著至關(guān)重要的作用,只有構(gòu)建合理的啟發(fā)函數(shù),才能在解決實(shí)際問題中起到有益的作用。所以我們要構(gòu)造合適的啟發(fā)函數(shù),讓蟻群優(yōu)化算法能夠解決泊位-岸橋調(diào)度的實(shí)際問題,從而獲得pareto最優(yōu)解。
本申請?jiān)谘芯坎次?岸橋優(yōu)化調(diào)度多目標(biāo)問題的時(shí)候,在算法中,每一個(gè)船舶的分配計(jì)劃都用一只螞蟻表示,每一個(gè)方案也代表了問題的最優(yōu)解。我們用r(i,j,c)來標(biāo)識每個(gè)解向量的分量,表示第j艘船分配到泊位i上并且分配c個(gè)岸橋。關(guān)于r(i,j,c)這個(gè)動作的啟發(fā)信息用ηijc表示,這個(gè)信息表示集裝箱船舶j分配到泊位i并分配c個(gè)岸橋的可取性,可以通過啟發(fā)方法來統(tǒng)計(jì)。在實(shí)際應(yīng)用中有很多的方法可以預(yù)測每種動作的可取性。
結(jié)合泊位-岸橋分配模型和蟻群算法的相關(guān)研究,螞蟻的數(shù)目應(yīng)該等于泊位數(shù),從算法優(yōu)化上來講,對于岸橋-泊位分配具體分析的話,知道每只集裝箱船舶的分配計(jì)劃,包括分配的泊位位置和岸橋數(shù)目,通過這些數(shù)據(jù)來計(jì)算啟發(fā)信息。計(jì)算蟻群算法的啟發(fā)信息,可以是先驗(yàn)的也可以是后驗(yàn)的。在實(shí)際應(yīng)用領(lǐng)域,對于每一個(gè)具體的問題,先驗(yàn)啟發(fā)信息是需要提前進(jìn)行計(jì)算的,在算法執(zhí)行過程中,我們不修改啟發(fā)信息的值,在整個(gè)求解過程中保持不變。后驗(yàn)啟發(fā)信息是動態(tài)的,并且和當(dāng)前算法執(zhí)行狀態(tài)相關(guān)。在計(jì)算蟻群算法的啟發(fā)信息的時(shí)候,一方面我們要考慮蟻群算法的運(yùn)行效率,另一方要考慮啟發(fā)信息對算法的重要程度。先驗(yàn)的啟發(fā)信息可以提高算法的運(yùn)行效率但是不能完全說明r(i,j,c)這一動作的可行性,后驗(yàn)的啟發(fā)信息可以準(zhǔn)確描述動作r(i,j,c)的可行性,但是算法執(zhí)行效率不高。通過對具體問題的具體分析,本申請對岸橋泊位調(diào)度過程中出現(xiàn)的問題綜合考慮,提出一種計(jì)算啟發(fā)函數(shù)的新的方法。該計(jì)算方法考慮每一艘集裝箱船舶分配泊位和岸橋這一動作對目標(biāo)函數(shù)值的貢獻(xiàn),用π表示所有構(gòu)建的路徑分配,所以計(jì)算所有的路徑分配,即π(1,c1),π(2,c2),…,π(|b|,c|b|)是已知的。每個(gè)動作r(i,j,c)對目標(biāo)函數(shù)的貢獻(xiàn)可以做如下計(jì)算:
對于不同的目標(biāo)函數(shù),有的目標(biāo)函數(shù)的值結(jié)果越大越好,對第s個(gè)目標(biāo)函數(shù)進(jìn)行計(jì)算,計(jì)算啟發(fā)信息的公式是
其中b為港口中可以停靠船舶的泊位數(shù)量,v為一段時(shí)間內(nèi)進(jìn)入港口的集裝箱船舶集合。
有的目標(biāo)函數(shù)值的結(jié)果越小越好,對第s個(gè)目標(biāo)函數(shù)進(jìn)行計(jì)算,計(jì)算啟發(fā)信息的公式是
其中ε是一個(gè)很小的正數(shù),避免公式中出現(xiàn)分母為0。
通過公式4.2和公式4.3,每只螞蟻可以求得每艘集裝箱船舶分配到泊位和岸橋的啟發(fā)信息。在多目標(biāo)問題求解過程中,泊位-岸橋優(yōu)化調(diào)度問題,很難求得問題的最優(yōu)解,所以在通常情況下,求得一組pareto最優(yōu)解。在本申請對于多個(gè)目標(biāo)的處理方法上,采取對多目標(biāo)優(yōu)化,然后將多個(gè)目標(biāo)利用加權(quán)的方法,把多目標(biāo)問題轉(zhuǎn)化為單目標(biāo)求解問題。針對建立的泊位-岸橋數(shù)學(xué)模型中提出的三個(gè)目標(biāo)函數(shù),根據(jù)以上提出的方法,我們用以下計(jì)算公式來計(jì)算動作r(i,v,c)總的啟發(fā)信息:
ηivc=ηivc1×ηivc2×ηivc3(4.4)
其中ηivc1是針對最小在港時(shí)間的啟發(fā)函數(shù),ηivc2是針對最小裝卸成本的啟發(fā)函數(shù),ηivc3是針對最小拖車成本的啟發(fā)函數(shù),ηivc是每一艘集裝箱船舶分配泊位和岸橋數(shù)目的總的啟發(fā)函數(shù)。
優(yōu)化信息素濃度更新規(guī)則
信息素濃度函數(shù)同樣可以影響蟻群算法的全局收斂性和計(jì)算效率,在自然世界里,當(dāng)螞蟻尋找到食物后會回到蟻穴,螞蟻經(jīng)過一定的時(shí)間回到蟻穴,從蟻穴到食物之間的最短路徑上,螞蟻往返一次用的時(shí)間最少,所以一定時(shí)間內(nèi),最短路徑上螞蟻往返次數(shù)最多,留下的信息素濃度也最高。相反,最長路徑上螞蟻往返的次數(shù)最少,留下的信息素濃度最低。后來的螞蟻會選擇信息素濃度更高的路徑行走,這樣最短路徑上的螞蟻越來越多,信息素濃度越來越高。而最長路徑上的螞蟻則會不變或者增加緩慢。
在蟻群算法中,螞蟻之間通過正負(fù)反饋的機(jī)制進(jìn)行通信,本申請通過對蟻群算法中的螞蟻釋放的信息素和路徑上信息素濃度的變化規(guī)則,找出算法中信息素濃度更新的規(guī)律,從而進(jìn)行總結(jié)和分析。在蟻群算法執(zhí)行求解過程中,螞蟻相互協(xié)作,共同完成算法的執(zhí)行。在每次迭代過程中,螞蟻從一個(gè)狀態(tài)轉(zhuǎn)移到另一個(gè)狀態(tài),直到構(gòu)建出問題的候選解集,在下一次候選解集更新前,要更新每條路徑上的信息素濃度。
對于單目標(biāo)問題分析中,按照公式4.5對路徑上的信息素濃度更新:
τij(t)=(1-ρ)τij(t-1)+δτij(4.5)
其中ρ信息素蒸發(fā)率,ρ∈(0,1];當(dāng)狀態(tài)從i到變化到狀態(tài)j信的時(shí)候,更新信息素濃度,用τij(t)表示;τij(t-1)表示在沒有狀態(tài)轉(zhuǎn)移的時(shí)候,路徑上所有的信息素濃度沒有變化;δτij表示本次迭代過程中路徑ij上螞蟻留下的信息素濃度,如果螞蟻沒有經(jīng)過路徑ij,則δτij值為0,不需要計(jì)算,如果螞蟻經(jīng)過了路徑ij,則路徑上的δτij必須經(jīng)過計(jì)算。
其中xij是人工螞蟻求得的候選集。
對于泊位-岸橋多目標(biāo)優(yōu)化的問題來說,我們可以把一個(gè)pareto解作為最優(yōu)解,并通過如下規(guī)則來計(jì)算δτij:
δτij(t+1)=δτij(t)+(t×δ)(4.7)
其中δ是一個(gè)很小的正數(shù),t是當(dāng)前迭代的次數(shù)。從這里我們可以看出,我們將當(dāng)前得到的解,與前面的解進(jìn)行對比,若得到的一個(gè)非支配解,我們就將路徑信息素濃度增加t×δ,從而找出最優(yōu)的非支配解集。
在人工螞蟻搜索完成所有解空間后,對全局的信息素濃度進(jìn)行更新,則更新規(guī)則如下:
對選擇概率函數(shù)改進(jìn)
人工螞蟻在構(gòu)建解的過程中,從一個(gè)狀態(tài)到另一個(gè)狀態(tài),主要是根據(jù)兩個(gè)方面的要素,一個(gè)是啟發(fā)函數(shù),另一個(gè)是所經(jīng)過路徑的信息素濃度,信息素在每次迭代后進(jìn)行更新。colorni基于人工螞蟻的禁忌表概念提出了選擇概率函數(shù)的公式:
其中allowedk表示第k只螞蟻的可行解。
從公式中可以看出,選擇概率是用乘冪的方式來計(jì)算的,所以算法的復(fù)雜程度特別高,特別對于研究的問題來講規(guī)模又比較大,這樣就會導(dǎo)致算法的效率特別低。為了提高算法的執(zhí)行效率,調(diào)解τ和η兩個(gè)因素,讓兩者的組合可以實(shí)現(xiàn)算法的高效。
對于泊位-岸橋的多目標(biāo)優(yōu)化調(diào)度問題,必須修改上面的選擇概率公式,來提高算法的執(zhí)行效率。在上面選擇概率公式的基礎(chǔ)上進(jìn)行改進(jìn)。用一個(gè)參數(shù)來表示信息素濃度和啟發(fā)函數(shù)的相關(guān)重要性;同時(shí)利用乘法替代乘冪,可以提高算法的執(zhí)行效率。這對于解決復(fù)雜問題是至關(guān)重要的,根據(jù)上面的額分析,我們將概率計(jì)算公式改進(jìn)為:
其中k∈allowedk表示集裝箱船舶可以選擇的泊位。
參數(shù)改進(jìn)后的基于多目標(biāo)的蟻群優(yōu)化算法
通過以上對傳統(tǒng)多目標(biāo)蟻群算法中各個(gè)參數(shù)的分析和討論,算法4.1給出改進(jìn)后的多目標(biāo)蟻群算法。
算法4.1:參數(shù)改進(jìn)后的基于多目標(biāo)的蟻群優(yōu)化算法
輸入:進(jìn)港船舶的信息集合。
輸出:進(jìn)港船舶的岸橋,泊位,集卡分配計(jì)劃的集合。
步驟1:初始化參數(shù),設(shè)置啟發(fā)式因子α、信息素蒸發(fā)率ρ、常數(shù)δ、信息素初始濃度τ0以及最大迭代次數(shù)tmax的值;
步驟2:將m個(gè)人工螞蟻隨機(jī)的放在m個(gè)位置上;
步驟3:利用公式(4.6)、(4.7)、(4.8)來改變螞蟻構(gòu)建解的路徑上的信息素濃度,通過人工螞蟻得到的解來計(jì)算各個(gè)路徑上目標(biāo)函數(shù)的值;
步驟4:利用公式(4.14),對人工螞蟻得到解進(jìn)行選擇,得到最優(yōu)解;
其中,
步驟5:判斷t是否小于tmax;
若:判斷結(jié)果是t小于tmax,則令t=t+1,然后進(jìn)入步驟3;
或判斷結(jié)果是t大于或者等于tmax,則進(jìn)入步驟6;
步驟6:利用步驟4得到的最優(yōu)解計(jì)算各個(gè)路徑上目標(biāo)函數(shù)的值;
步驟7:將步驟4得到的最優(yōu)解與解空間中的其它解對比,判斷此最優(yōu)解是否為非支配解;
若:判斷結(jié)果是此最優(yōu)解為非支配解,則加入到解空間;
或判斷結(jié)果是此最優(yōu)解為支配解,則舍棄;
步驟8:將解空間中的非支配解相互對比,確定最終的非支配解;
步驟9:利用公式(4.1)更新ρ;
步驟10:利用公式(4.7)更新δτij(t+1);
步驟11:利用公式(4.8)更新τij;
步驟12:判斷在相同參數(shù)條件下執(zhí)行的次數(shù)nc是否大于最大執(zhí)行的次數(shù)nc(max);
若:判斷結(jié)果是nc>nc(max),則執(zhí)行步驟13;
或判斷結(jié)果是nc≤nc(max),則令δτij=0,nc=nc+1,然后執(zhí)行步驟2;
步驟13:輸出結(jié)果。
算法4.1中,通過對傳統(tǒng)多目標(biāo)蟻群算法參數(shù)的改進(jìn),改進(jìn)后的蟻群算法不僅可以防止局部收斂還提高了算法的執(zhí)行效率,還可以用以解決問題規(guī)模比較大的泊位-岸橋優(yōu)化調(diào)度問題。
基于多目標(biāo)蟻群算法的搜索方式優(yōu)化
對于多目標(biāo)優(yōu)化問題的優(yōu)化,目標(biāo)函數(shù)會有多個(gè),多個(gè)目標(biāo)函數(shù)有時(shí)相互矛盾,此消彼長,所以在求解這類問題的時(shí)候,與單目標(biāo)問題有很大的不同,得到的往往不是最優(yōu)解,而是一個(gè)相對較優(yōu)的解。在過去經(jīng)常利用傳統(tǒng)的多目標(biāo)蟻群算法求解,因?yàn)橄伻核惴ㄔ趫?zhí)行過程中,螞蟻之間通過正反饋的機(jī)制進(jìn)行信息交流,所以所求的解往往都會集中在解空間的部分區(qū)域。如果算法中只有一個(gè)螞蟻,算法執(zhí)行過程中單個(gè)螞蟻對于局部信息和全局信息利用不夠,在兩者間很難找到平衡點(diǎn),就會導(dǎo)致算法執(zhí)行效率不高,也會導(dǎo)致算法過早收斂。由于傳統(tǒng)多目標(biāo)蟻群算法存在著諸多不足,本申請通過對傳統(tǒng)蟻群算法的搜索方式進(jìn)行優(yōu)化,從而提高算的性能。
當(dāng)螞蟻搜索經(jīng)過一個(gè)位置的時(shí)候,釋放信息素,并且釋放信息的濃度和該位置所表示解的優(yōu)劣正相關(guān)。當(dāng)下一個(gè)螞蟻選擇路徑的時(shí)候,會考慮之前螞蟻在路徑上留下的信息素濃度,同時(shí)考慮與之前螞蟻留下信息素位置的距離,進(jìn)行綜合判斷。之前已經(jīng)論述了多目標(biāo)優(yōu)化問題中,智能得到比較優(yōu)的解,不能得到最優(yōu)解,根據(jù)每一個(gè)螞蟻得到的解,比較兩個(gè)螞蟻之間解的關(guān)系,通過解的支配關(guān)系來計(jì)算螞蟻在相應(yīng)位置上的信息素濃度。本申請中,我們采用改進(jìn)精英集合的尋優(yōu)方式,螞蟻的搜索尋優(yōu)要受到信息素濃度和全局最優(yōu)經(jīng)驗(yàn)的影響。
蟻群內(nèi)搜索方式優(yōu)化
當(dāng)螞蟻i從當(dāng)前位置要移動到下一個(gè)位置的時(shí)候,其他螞蟻在所在位置上釋放的信息素由它們所表示的解和螞蟻i所表示的解之間的pareto支配關(guān)系決定。相對于螞蟻i之外的螞蟻j來講,當(dāng)螞蟻j所表示的解xj是不可行解,那么解xj對于尋找最優(yōu)解貢獻(xiàn)不大,所以釋放很少的信息素。相反,當(dāng)j所表示的解xj是可行解,同時(shí)又支配螞蟻i所表示的解xi,那么解xj對于尋找最優(yōu)解貢獻(xiàn)很大,所以釋放大量的信息素。根據(jù)以上的分析和論述,我們可以對信息素濃度做如下定義:
其中c1,c2,c3,c4是參數(shù)值,并且c1<c2<c3<c4,i,j=1,2,3,…,m,i≠j。
螞蟻i在選擇下一個(gè)位置的時(shí)候,不僅僅要考慮信息素濃度的大小,還要考慮相鄰兩個(gè)螞蟻之間距離的大小,距離越短,信息素濃度越大的位置越容易被選擇。我們對螞蟻轉(zhuǎn)移到下一個(gè)位置概率如下定義:
其中
最后利用輪盤賭的方式,選擇螞蟻i的移動路徑。
精英集合搜索方式優(yōu)化
只是靠蟻群內(nèi)螞蟻以信息素交流的方式來尋找最優(yōu)解,會導(dǎo)致算法運(yùn)行時(shí)間長,效率低下并且群體的多樣性也不能保證,所以我們用一種基于精英集合的搜索方式。具體步驟中,首先對一個(gè)外部集合初始化,存放非支配解,然后找到集合中最稀疏的非支配解。當(dāng)前螞蟻根據(jù)找到的非支配解來確定尋優(yōu)方向。
計(jì)算外部集合x=(x1,x2,…,xn)中兩個(gè)解之間的距離,計(jì)算公式
其中i,j表示集合中的兩個(gè)解。
利用小生境技術(shù)[54],對外部集合中所有的解求它們的小生境數(shù):
其中s(dij)表示共享函數(shù)值,定義:
其中σshare表示小生境半徑。
經(jīng)過計(jì)算,得到小生境數(shù)最小的非支配解,確定該支配解的位置,當(dāng)前螞蟻就可以沿著確定位置的方向選擇路徑。
對于離散空間,螞蟻從一個(gè)位置直接移動到另一個(gè)位置,對于連續(xù)空間,螞蟻向目標(biāo)方向移動pjdij的距離。在基于精英集合搜索方式中,螞蟻在一定的范圍內(nèi)移動,當(dāng)移動距離超出一定范圍r的時(shí)候,只移動r的距離。
如果螞蟻i表示的解是非支配的可行解,并且在外部集合中沒有解與它重復(fù),那么將這個(gè)解加入到外部集合中。
一次迭代完成以后,對外部集合進(jìn)行領(lǐng)域搜索,在領(lǐng)域內(nèi)尋找更優(yōu)解,若果找到了,則替換當(dāng)前最優(yōu)解,否則,保持不變。
優(yōu)化后的多目標(biāo)蟻群算法
通過對搜索方式的分析和討論,算法4.2給出了優(yōu)化后的多目標(biāo)蟻群算法。
算法4.2:基于搜索方式優(yōu)化的多目標(biāo)蟻群算法
輸入:進(jìn)港船舶的信息集合;
輸出:進(jìn)港船舶的岸橋,泊位,集卡分配計(jì)劃的集合;
步驟1:初始化各個(gè)參數(shù),隨機(jī)生成n個(gè)螞蟻,計(jì)算每個(gè)螞蟻對應(yīng)的目標(biāo)函數(shù)值fi(x);
步驟2:初始化精英集合p,其中每個(gè)元素代表的解都是可行且非支配的解;
步驟3:令初始化迭代次數(shù)t=1;
步驟4:令當(dāng)前螞蟻i=1;
步驟5:產(chǎn)生一個(gè)隨機(jī)數(shù)s,s的范圍在[0,1],將隨機(jī)數(shù)s與參數(shù)p0進(jìn)行比較,p0是一個(gè)取值在[0,1]的數(shù);如果s≤p0,則對當(dāng)前螞蟻i采用精英集合搜索的方式尋找最優(yōu)解;如果s>p0,則對當(dāng)前螞蟻采用蟻群內(nèi)搜索的方式尋找最優(yōu)解;
步驟6:確定當(dāng)前螞蟻i的選擇方向,重新計(jì)算螞蟻i對應(yīng)的目標(biāo)函數(shù)值;
步驟7:根據(jù)精英集合更新規(guī)則,判斷螞蟻i是否滿足規(guī)則;
若:判斷結(jié)果是螞蟻i滿足規(guī)則,則加入到精英集合p中,并刪除精英集合p中被螞蟻i支配的解;
或判斷結(jié)果是螞蟻i不滿足規(guī)則,則丟棄,不加入到精英集合p中;
步驟8:令i=i+1,判斷i是否≤n;
若:判斷結(jié)果是i≤n,則執(zhí)行步驟5;
或判斷結(jié)果是i>n,則執(zhí)行步驟9;
步驟9:對精英集合中的解進(jìn)行領(lǐng)域搜索;
步驟10:令t=t+1,判斷t是否小于tmax;
若:判斷結(jié)果是t小于tmax,則執(zhí)行步驟4;
或判斷結(jié)果是t大于或者等于tmax,則結(jié)束。
算法4.2中,對于不同的螞蟻根據(jù)其獲得參數(shù)值不同,采取不同的搜索方式,構(gòu)建一個(gè)理想的精英集合。然后對精英集合進(jìn)行領(lǐng)域搜索,找到一個(gè)更優(yōu)解,替換當(dāng)前的最優(yōu)解。
約束條件的處理
蟻群算法是隨機(jī)的搜索目標(biāo)空間,跟其他的智能優(yōu)化算法一樣,它的搜索過程可以分為兩個(gè)階段,一是適應(yīng)階段,候選解通過各種得到的信息調(diào)整自身結(jié)構(gòu);二是協(xié)作階段,在這個(gè)階段中,候選解通過信息反饋,相互通信,從而得到更優(yōu)的解。在應(yīng)用蟻群算法解決多目標(biāo)泊位-岸橋調(diào)度的問題中,我們對約束條件的處理一定要充分考慮。
在過去研究非線性問題的約束條件過程中,一般采用的是罰函數(shù)法[55],通過這種方法,將所研究的問題變成沒有約束條件的問題求解。這種方法簡單,但是存在很多弊端,所以后來人們又提出了許多其他的方法,包括逐次二次規(guī)劃法和逐次線性規(guī)劃法,這些方法與罰函數(shù)法有很大的不同,不用再將問題變成無約束的問題求解。但這些方法同樣存在很多弊端,它們需要基于梯度尋優(yōu)。對于約束條件對應(yīng)的約束函數(shù),這些方法還要求這些約束函數(shù)必須是連續(xù)和可微的,同時(shí)這些方法也只能局部求得最優(yōu)。
可以將約束優(yōu)化問題做如下形式化描述:
minf(x)
s.tgi(x)≥0i=1,2,…,n
gi(x)=0i=n+1,…,m
其中f(x)是目標(biāo)函數(shù),n是不等式約束條件個(gè)數(shù),(m-n)是等式約束條件個(gè)數(shù)。
在多目標(biāo)約束問題中,過去所提出的求解算法中,對于約束條件的處理并沒有涉及,而是將問題看作無約束的。本申請中把多目標(biāo)蟻群算法和條件約束處理技術(shù)結(jié)合在一起,用來解決岸橋-泊位調(diào)度多目標(biāo)優(yōu)化的約束問題。約束條件處理技術(shù)有很多,主要包括罰函數(shù)法,基于多目標(biāo)方法,基于排序方法。
在本申請研究的泊位-岸橋調(diào)度問題中,前期采用模擬退火精確懲罰函數(shù)。所采用的懲罰函數(shù)形式如下:
其中懲罰因子
4實(shí)驗(yàn)與分析
為了驗(yàn)證本申請所提出的數(shù)學(xué)模型和算法,本申請通過模擬一段時(shí)間內(nèi)到港集裝箱船舶的數(shù)據(jù)進(jìn)行實(shí)驗(yàn),從而驗(yàn)證本申請所提理論的正確性和有效性。通過對港口過去數(shù)據(jù)的統(tǒng)計(jì)和分析,模擬一天時(shí)間內(nèi)三個(gè)泊位上到港船只的數(shù)據(jù)進(jìn)行實(shí)驗(yàn),能夠很好的反應(yīng)港口調(diào)度的真實(shí)情況。一天內(nèi)到港集裝箱船舶數(shù)據(jù)信息,主要有集裝箱船舶名,船舶長度(單位:米),船舶吃水深度(單位:米),到港時(shí)間,船載集裝箱數(shù)量,偏好泊位等數(shù)據(jù)項(xiàng)。進(jìn)港船舶信息如表7所示。
表7進(jìn)港船舶信息
港口內(nèi)泊位信息,主要有泊位名稱,泊位長度(單位:米),泊位水深(單位:米),最大岸橋數(shù)目,最大分配集卡數(shù)目等數(shù)據(jù)項(xiàng),泊位信息如表8所示。
表8泊位信息
我們假設(shè)從時(shí)刻00:00開始,三個(gè)泊位都是空閑的,單個(gè)岸橋的工作效率為10箱/小時(shí),兩個(gè)泊位之間的運(yùn)輸距離為100米。運(yùn)用算法4.1對上述問題進(jìn)行實(shí)驗(yàn),設(shè)置算法4.1中參數(shù),啟發(fā)因子α=0.85,信息素蒸發(fā)率ρ=0.5,取常數(shù)δ=0.001,信息素初始濃度τ0=10,最大迭代次數(shù)tmax=200,經(jīng)過200次迭代,我們最終可以得到6組pareto最優(yōu)解,表9給出了在6組pareto最優(yōu)解中最有代表性的一組解。
表9pareto最優(yōu)解
三個(gè)目標(biāo)函數(shù)的值分別為:f1=4132,f2=205,f3=80。
運(yùn)用算法4.2對上述問題進(jìn)行實(shí)驗(yàn),我們設(shè)置算法中四個(gè)參數(shù)的值c1=0.01,c2=0.1,c3=0.5,c4=1,經(jīng)過200次迭代,得到四組pareto最優(yōu)解,表10給出了四組解中最有代表性的一組解。
表10pareto最優(yōu)解
三個(gè)目標(biāo)函數(shù)的值分別為:f1=53.66,f2=207.5,f3=20。
通過實(shí)驗(yàn)我們驗(yàn)證了算法4.1,算法4.2的正確性。通過算法4.1,算法4.2可以求解得到多目標(biāo)岸橋-泊位調(diào)度優(yōu)化模型的pareto最優(yōu)解。
為了驗(yàn)證算法4.1,算法4.2收斂性,我們引入三個(gè)目標(biāo)函數(shù)所對應(yīng)的權(quán)重系數(shù)w1,w2,w3,其中w1+w2+w3=1。這樣我們在算法執(zhí)行結(jié)束后可以得到一個(gè)pareto最優(yōu)解,而不是一個(gè)pareto最優(yōu)解集,如果能找到這個(gè)pareto最優(yōu)解,就可以證明我們的算法是收斂的。
設(shè)置算法4.1參數(shù),其中啟發(fā)因子α=0.85,信息素蒸發(fā)率ρ=0.5,取常數(shù)δ=0.001,信息素初始濃度τ0=10,目標(biāo)函數(shù)權(quán)重系數(shù)為w1=0.5,w2=0.3,w3=0.2,問題規(guī)模n=15,螞蟻個(gè)數(shù)m=15。
算法4.1在迭代執(zhí)行300次后其收斂過程如圖6所示,其中橫坐標(biāo)表示迭代次數(shù),縱坐標(biāo)表示三個(gè)優(yōu)化目標(biāo)所對應(yīng)的成本之和。
設(shè)置算法4.2中四個(gè)參數(shù)的值c1=0.01,c2=0.1,c3=0.5,c4=1。
算法4.2在迭代執(zhí)行300次后其收斂過程如圖7所示,其中橫坐標(biāo)表示迭代次數(shù),縱坐標(biāo)表示三個(gè)優(yōu)化目標(biāo)所應(yīng)對應(yīng)的成本之和。
由實(shí)驗(yàn)結(jié)果分析我們可以看出,算法4.1,算法4.2是收斂的。
隨著問題規(guī)模的不同,算法求得pareto最優(yōu)解的平均迭代次數(shù)也會不同,我們設(shè)置不同的問題規(guī)模,找出算法4.1,算法4.2迭代次數(shù)與問題規(guī)模之間的關(guān)系。
設(shè)置算法4.1參數(shù),其中啟發(fā)因子α=0.85,信息素蒸發(fā)率ρ=0.5,取常數(shù)δ=0.001,信息素初始濃度τ0=10,目標(biāo)函數(shù)權(quán)重系數(shù)為w1=0.5,w2=0.3,w3=0.2。表11給出了利用算法4.1得到的問題規(guī)模與算法4.1平均迭代次數(shù)的關(guān)系。
表11算法4.1中問題規(guī)模與迭代次數(shù)關(guān)系
算法4.1的平均迭代次數(shù)與問題規(guī)模關(guān)系如圖8所示。
設(shè)置算法4.2中四個(gè)參數(shù)c1=0.01,c2=0.1,c3=0.5,c4=1。表12給出了利用算法4.2得到的問題規(guī)模與算法4.2平均迭代次數(shù)的關(guān)系。
表12算法4.2中問題規(guī)模與迭代次數(shù)關(guān)系
算法4.2的平均迭代次數(shù)與問題規(guī)模關(guān)系如圖9所示。
為了證明算法4.1,算法4.2在解決多目標(biāo)問題上具有良好的性能。本申請從算法的收斂速度和不同問題規(guī)模下算法執(zhí)行完成時(shí)間兩個(gè)方面,對算法4.1,算法4.2和過去提出的傳統(tǒng)多目標(biāo)蟻群算法m-aco,多目標(biāo)廣義蟻群算法m-gaco進(jìn)行對比分析
對傳統(tǒng)多目標(biāo)蟻群算法做如下參數(shù)設(shè)置。啟發(fā)因子α=0.85,信息素蒸發(fā)率ρ=0.5,信息素初始濃度τ0=10,最大迭代次數(shù)tmax=300,目標(biāo)函數(shù)權(quán)重系數(shù)為w1=0.5,w2=0.3,w3=0.2,問題規(guī)模n=15,螞蟻個(gè)數(shù)m=15。
算法4.1與m-aco收斂過程比較如圖10所示,藍(lán)色代表算法4.1的收斂速度,紅色代表傳統(tǒng)多目標(biāo)蟻群算法m-aco的收斂速度。從實(shí)驗(yàn)結(jié)果中可以看出,在相同的迭代次數(shù)內(nèi),算法4.1的收斂速度要優(yōu)于傳統(tǒng)多目標(biāo)蟻群算法m-aco。
對廣義多目標(biāo)蟻群算法做如下參數(shù)設(shè)置。啟發(fā)因子α=0.85,信息素蒸發(fā)率ρ=0.5,γ0=0.01,信息增量函數(shù)a=1.01,信息素初始濃度τ0=10,最大迭代次數(shù)tmax=300,目標(biāo)函數(shù)權(quán)重系數(shù)為w1=0.5,w2=0.3,w3=0.2,問題規(guī)模n=15,螞蟻個(gè)數(shù)m=15。
算法4.1與m-gaco收斂過程比較如圖11所示,藍(lán)色代表算法4.1的收斂速度,紅色代表廣義多目標(biāo)蟻群算法m-gaco的收斂速度。從實(shí)驗(yàn)結(jié)果中可以看出,在相同的迭代次數(shù)內(nèi)算法4.1的收斂速度要優(yōu)于廣義多目標(biāo)蟻群算法m-gaco。
在不同問題規(guī)模下,算法完成執(zhí)行的時(shí)間不同,當(dāng)問題規(guī)模為10,20,30,40的時(shí)候,比較算法4.2與傳統(tǒng)多目標(biāo)蟻群算法m-aco,多目標(biāo)廣義蟻群算法m-gaco在算法完成執(zhí)行時(shí)間方面性能的差異。
圖12至圖15分別表示問題規(guī)模為10,20,30,40的時(shí),算法2和m-aco,m-gaco算法執(zhí)行完成時(shí)間與迭代次數(shù)之間的關(guān)系。從實(shí)驗(yàn)結(jié)果中我們可以看出,隨著迭代次數(shù)的增加,算法4.2和m-aco,m-gaco執(zhí)行完成的時(shí)間越來越少,但是算法4.2收斂速度比m-aco,m-gaco更快,并且算法4.2在最終算法執(zhí)行完成時(shí)間要比算法m-aco,m-gaco更短。
通過上述所有實(shí)驗(yàn),驗(yàn)證了算法4.1,算法4.2的正確性,同時(shí)也驗(yàn)證明了算法4.1,算法4.2的有效性。算法4.1在相同問題規(guī)模下,可以更快的收斂;算法4.2在不同問題規(guī)模下,算法完成時(shí)間方面有著良好的優(yōu)越性,能夠很好的求解多目標(biāo)岸橋-泊位調(diào)度優(yōu)化的數(shù)學(xué)模型。
本申請通過對港口特點(diǎn)的研究分析,根據(jù)港口運(yùn)行的實(shí)際情況,提出了多目標(biāo)岸橋-泊位調(diào)度的數(shù)學(xué)模型,模型中本申請構(gòu)造了三個(gè)目標(biāo)函數(shù),并且給出了模型的約束條件。在模型構(gòu)造過程中,首先對港口調(diào)度問題進(jìn)行說明,對港口調(diào)度的整個(gè)作業(yè)流程做了一個(gè)整體的描述,對港口內(nèi)各個(gè)流程環(huán)節(jié)和港口內(nèi)各種可利用資源做了簡要介紹。然后針對具體的泊位-岸橋調(diào)度問題做了詳細(xì)分析和描述,對提出的問題所用到的參數(shù)給出了解釋說明。最后根據(jù)問題,給出問題的形式化描述,用數(shù)學(xué)的語言把岸橋-泊位調(diào)度模型描述出來,并給出目標(biāo)函數(shù)的數(shù)學(xué)表達(dá)。
針對本申請?zhí)岢龅亩嗄繕?biāo)岸橋-泊位調(diào)度模型,本申請基于蟻群算法,提出了兩個(gè)用于求解模型的算法,首先對過去傳統(tǒng)蟻群算法中存在的缺點(diǎn)進(jìn)行了分析,指出其在解決岸橋-泊位調(diào)度問題上的不足,然后針對這些不足提出了自己的算法,算法一通過對參數(shù),啟發(fā)函數(shù),概率選擇函數(shù)和信息素濃度更新規(guī)則的改進(jìn),提高了算法的進(jìn)化速度;算法二中考慮到信息素濃度和全局最優(yōu)經(jīng)驗(yàn)的影響,通過改進(jìn)精英集合,對算法內(nèi)搜索方式進(jìn)行優(yōu)化。兩個(gè)算法都是以船舶信息集合為輸入,以船舶分配計(jì)劃集合為輸出。本申請中給出了算法的具體執(zhí)行步驟,通過算法可以對到港集裝箱船舶進(jìn)行調(diào)度優(yōu)化,從而提高了算法的執(zhí)行效率,可以更短的時(shí)間內(nèi)求得我們所需要的pareto最優(yōu)解,從而提高了港口運(yùn)行的效率,不僅可以節(jié)約港口運(yùn)營成本,對促進(jìn)區(qū)域和國家經(jīng)濟(jì)發(fā)展也有重要意義。最后本申請通過仿真實(shí)驗(yàn),對本申請中所提出的算法進(jìn)行驗(yàn)證,在試驗(yàn)中,比較了算法與其它算法在收斂性和算法執(zhí)行時(shí)間兩個(gè)方面的比較,都驗(yàn)證了本申請算法的優(yōu)越性。
當(dāng)然,上述說明并非是對本發(fā)明的限制,本發(fā)明也并不僅限于上述舉例,本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明的實(shí)質(zhì)范圍內(nèi)所做出的變化、改型、添加或替換,也應(yīng)屬于本發(fā)明的保護(hù)范圍。