一種船舶引航排班問(wèn)題模型與求解方法
【專利摘要】本發(fā)明公開了一種船舶引航排班問(wèn)題模型與求解方法,在分析引航排班各種成文的排班規(guī)則及不成文的排班習(xí)慣的基礎(chǔ)上,針對(duì)常規(guī)求解方法存在大量不可行解的困難,提出了將該模型轉(zhuǎn)化為偽旅行商問(wèn)題的方法;該方法依次包括以下步驟:步驟(1):建立本地?cái)?shù)據(jù)庫(kù),進(jìn)行合同收池;步驟(2):從池中選出待引航排班船舶,建立引航排班問(wèn)題模型;步驟(3):基于分布估計(jì)改進(jìn)離散粒子群算法對(duì)引航排班問(wèn)題模型進(jìn)行求解,找出最優(yōu)引航排班計(jì)劃;步驟(4):根據(jù)確定的最優(yōu)引航排班計(jì)劃進(jìn)行引航排班。本發(fā)明為提高算法效率,通過(guò)引入最優(yōu)粒子子群,其具有搜索速度快,搜索精度高的特點(diǎn)。本發(fā)明所提引航排班問(wèn)題模型是有效的,求解方法是高效的。
【專利說(shuō)明】一種船舶引航排班問(wèn)題模型與求解方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于引航調(diào)度中的引航任務(wù)排班方法,具體涉及的是一種船舶引航排班問(wèn) 題模型與求解方法。
【背景技術(shù)】
[0002] 我國(guó)是一個(gè)港口大國(guó)。然而,在港口迅猛發(fā)展的同時(shí),我國(guó)港口在引航調(diào)度效率上 相對(duì)落后,這嚴(yán)重制約了港口的核心競(jìng)爭(zhēng)力,也造成了一定的資源浪費(fèi)。各引航公司迫切需 要建立一個(gè)高效可行的引航調(diào)度體系實(shí)現(xiàn)引航資源優(yōu)化配置,提高港口競(jìng)爭(zhēng)力。引航調(diào)度 的管理重點(diǎn)就在引航排班上,因此,探討引航調(diào)度中引航排班的建模優(yōu)化和有效的解決方 法,成為亟待解決的關(guān)鍵理論問(wèn)題。
[0003] 引航排班問(wèn)題屬于NP-hard組合優(yōu)化問(wèn)題。由于此類問(wèn)題規(guī)模龐大并且限制因素 復(fù)雜,所以智能算法在解決該類問(wèn)題中得到廣泛運(yùn)用。目前應(yīng)用于組合優(yōu)化的算法主要有 局部搜索法,模擬退火算法,遺傳算法,神經(jīng)網(wǎng)絡(luò)等。引航排班方法主要有基于集覆蓋方法, 基于遺傳算法的方法,基于模擬退火算法的方法。排班問(wèn)題的解決思路大同小異,分為兩 步:1、產(chǎn)生初始引航任務(wù)組;2、運(yùn)用智能優(yōu)化算法對(duì)初始引航任務(wù)組進(jìn)行搜索,生成可行 的任務(wù)組組合。
[0004] 目前有的引航排班方法存在以下問(wèn)題:
[0005] 1.兩步走的思路在算法搜索過(guò)程中易產(chǎn)生不可行解,智能優(yōu)化算法中需添加必要 的排除非可行解策略,加大算法的設(shè)計(jì)難度;
[0006] 2.現(xiàn)有方法只考慮了在引航規(guī)則范圍內(nèi)找到可行排班結(jié)果,未綜合考慮到引航任 務(wù)之間等待時(shí)間,引航任務(wù)組時(shí)間均衡,引航任務(wù)組始末地點(diǎn)轉(zhuǎn)移帶來(lái)的成本問(wèn)題。
[0007] 3.基本智能優(yōu)化算法搜索能力有限,特別是當(dāng)引航任務(wù)數(shù)目較多,考慮因素增多 時(shí),搜索最優(yōu)解將顯得無(wú)能為力。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明解決上述技術(shù)問(wèn)題所采用的技術(shù)方案是提出了一種船舶引航排班問(wèn)題模 型與求解方法,該方法包括以下步驟:
[0009] 步驟⑴:建立本地?cái)?shù)據(jù)庫(kù),進(jìn)行合同收池;
[0010] 步驟⑵:從池中選出待引航排班船舶,統(tǒng)計(jì)待引航排班船舶任務(wù)數(shù)Ntask,建立引 航排班問(wèn)題模型;
[0011] 步驟(3):基于分布估計(jì)改進(jìn)離散粒子群算法對(duì)引航排班問(wèn)題模型進(jìn)行求解,找 出最優(yōu)引航排班計(jì)劃;
[0012] 步驟(4):根據(jù)確定的最優(yōu)引航排班計(jì)劃進(jìn)行引航排班。
[0013] 其中,步驟(2)建立引航排班問(wèn)題模型主要考慮引航中心(引航站)各種成文的 排班規(guī)則及不成文排班習(xí)慣,這些約束主要包括:
[0014] (a)將時(shí)間上可以順承,地點(diǎn)相同的引航任務(wù)銜接,搭建引航任務(wù)組;
[0015] (b) -個(gè)引航任務(wù)組的起始地點(diǎn)與結(jié)束地點(diǎn)保持盡可能相同,避免引航員外站過(guò) 夜;
[0016] (c)每個(gè)引航任務(wù)組的工作時(shí)間相對(duì)均衡;
[0017] ⑷每個(gè)引航任務(wù)組的工作時(shí)間符合引航中心(引航站)的工作時(shí)間制,避免疲勞 引航。
[0018] 在考慮這些約束條件下,本發(fā)明構(gòu)建引航排班問(wèn)題數(shù)學(xué)模型如下:
[0019] Z = c^ob j1+c2*ob j2+c3*ob j3+c4*ob j4 (1)
[0020] 其中obi為目標(biāo)函數(shù)第1部分,表示一個(gè)可行的引航任務(wù)組組合中引航任務(wù)組的 數(shù)目;〇bj 2為目標(biāo)函數(shù)第2部分,表示一個(gè)可行的引航任務(wù)組組合中各引航任務(wù)組的時(shí)間 等待費(fèi)用之和;〇bj3為目標(biāo)函數(shù)第3部分,表示一個(gè)可行的引航任務(wù)組組合中各引航任務(wù) 組的外站過(guò)夜費(fèi)用之和;〇bj 4為目標(biāo)函數(shù)第4部分,表示一個(gè)可行的引航任務(wù)組組合中各 引航任務(wù)組工作時(shí)間的標(biāo)準(zhǔn)差。Cl、 C2、c3、C4為系數(shù)權(quán)值。
[0021] 進(jìn)一步,引航排班問(wèn)題數(shù)學(xué)模型中obji表達(dá)式可由下式求得:
[0022] obj-! = taskno (2)
[0023] taskno為任務(wù)組數(shù)目。
[0024] 引航排班問(wèn)題數(shù)學(xué)模型中obj2表達(dá)式可由下式求得:
【權(quán)利要求】
1. 一種船舶引航排班問(wèn)題模型與求解方法,包括建立本地?cái)?shù)據(jù)庫(kù),進(jìn)行合同收池,其特 征在于:該方法依次包括以下步驟: 步驟(la):建立本地?cái)?shù)據(jù)庫(kù),進(jìn)行合同收池; 步驟(lb):從池中選出待引航排班船舶,統(tǒng)計(jì)待引航排班船舶任務(wù)數(shù)Ntask,建立引航排 班問(wèn)題模型; 步驟(lc):基于分布估計(jì)改進(jìn)離散粒子群算法對(duì)引航排班問(wèn)題模型進(jìn)行求解,找出最 優(yōu)引航排班計(jì)劃; 步驟(Id):根據(jù)確定的最優(yōu)引航排班計(jì)劃進(jìn)行引航排班。
2. 根據(jù)權(quán)利要求1所述一種船舶引航排班問(wèn)題模型與求解方法,其特征在于,對(duì)于所 述步驟(lb),建立引航排班問(wèn)題數(shù)學(xué)模型Z的計(jì)算公式如下: Z = c^ob j1+c2*ob j2+c3*ob j3+c4*ob j4 (1) 其中obi為目標(biāo)函數(shù)第1部分,表示一個(gè)可行的引航任務(wù)組組合中引航任務(wù)組的數(shù) 目;〇bj2為目標(biāo)函數(shù)第2部分,表示一個(gè)可行的引航任務(wù)組組合中各引航任務(wù)組的時(shí)間等 待費(fèi)用之和;〇bj 3為目標(biāo)函數(shù)第3部分,表示一個(gè)可行的引航任務(wù)組組合中各引航任務(wù)組 的外站過(guò)夜費(fèi)用之和;〇bj4為目標(biāo)函數(shù)第4部分,表示一個(gè)可行的引航任務(wù)組組合中各引 航任務(wù)組工作時(shí)間的標(biāo)準(zhǔn)差 ;Cl、c2、c3、c4為系數(shù)權(quán)值。
3. 根據(jù)權(quán)利要求2所述一種船舶引航排班問(wèn)題模型與求解方法,其特征在于,所述引 航排班問(wèn)題數(shù)學(xué)模型中obi表達(dá)式如下: obji = taskno (2) 其中,taskno為任務(wù)組數(shù)目; 所述引航排班問(wèn)題數(shù)學(xué)模型中〇bj2表達(dá)式如下:
(3) wait cosh為任務(wù)組i的等待費(fèi)用,其計(jì)算方式如下:
(4) wait_time為同一引航任務(wù)組中兩銜接引航任務(wù)之間的等待時(shí)間,VT為等待時(shí)間閾 值,c〇a、c〇b為等待時(shí)間權(quán)重系數(shù),且c〇a〈c〇b ;taskno為任務(wù)組數(shù)目; 所述引航排班問(wèn)題數(shù)學(xué)模型中〇bj3表達(dá)式如下:
(^)
如果引航任務(wù)組/的結(jié)束地點(diǎn)與起始地點(diǎn)不相同 如果引航任務(wù)組/的結(jié)束地點(diǎn)與起始地點(diǎn)相同 pos costi為引航任務(wù)組i的外站過(guò)夜花費(fèi),為外站過(guò)夜花費(fèi)權(quán)值; 所述引航排班問(wèn)題數(shù)學(xué)模型中〇bj4表達(dá)式如下: (7) 其中,taskno為任務(wù)組數(shù)目;gtask^timei為任務(wù)組i的工作時(shí)間;avetime為一個(gè)任 務(wù)組組合平均工作時(shí)間,其計(jì)算公式如下:
(8)。
4. 根據(jù)權(quán)利要求2所述一種船舶引航排班問(wèn)題模型與求解方法,其特征在于,對(duì)于所 述步驟(lc),基于分布估計(jì)改進(jìn)離散粒子群算法對(duì)引航排班問(wèn)題模型進(jìn)行求解,其步驟如 下: 步驟(4a):初始化參數(shù);設(shè)置種群大小popsize,運(yùn)行總代數(shù)gen,變異概率pm; 步驟(4b):初始化種群;置運(yùn)行代數(shù)g= 1,隨機(jī)產(chǎn)生popsize個(gè)粒子,每個(gè)粒子為一 具有Ntask個(gè)元素的整數(shù)序列,粒子中的各元素從集合{1,2,…,隊(duì)^}中取值且互不重復(fù); 步驟(4c):計(jì)算粒子適應(yīng)度;根據(jù)適應(yīng)度函數(shù)計(jì)算每個(gè)粒子適應(yīng)度值并保存每個(gè)粒子 找到的個(gè)體極值Pbest及整個(gè)種群的全局極值gbest ; 步驟(4d):將所有個(gè)體極值進(jìn)行排序,以比率γ選擇具有最優(yōu)個(gè)體極值的粒子構(gòu)建最 優(yōu)粒子子群; 步驟(4e):根據(jù)最優(yōu)粒子子群中各序列元素所代表的引航任務(wù)的鄰接關(guān)系建立各引 航任務(wù)的鄰接元素概率分布模型; 步驟(4f):每個(gè)粒子根據(jù)引航任務(wù)的鄰接元素概率分布模型執(zhí)行學(xué)習(xí)采樣過(guò)程; 步驟(4g):對(duì)學(xué)習(xí)后的粒子計(jì)算適應(yīng)度值,如果該值小于學(xué)習(xí)前適應(yīng)度值,則更新當(dāng) 前粒子;否則,對(duì)當(dāng)前粒子以概率?111執(zhí)行變異操作; 步驟(4h):置運(yùn)行代數(shù)g加1,如果g彡gen,轉(zhuǎn)步驟(4c); 步驟(4i):輸出全局極值gbest及全局最優(yōu)粒子。
5. 根據(jù)權(quán)利要求4所述一種船舶引航排班問(wèn)題模型與求解方法,其特征在于,對(duì)于 所述步驟(4c),計(jì)算每個(gè)粒子適應(yīng)度值采用的是偽旅行商問(wèn)題的譯碼方法,其具體步驟如 下: 步驟(5a):設(shè)gtask= l,vtask= 1 ;gtask代表當(dāng)前引航任務(wù)組序號(hào),vtaskR表當(dāng)前引航任 務(wù)序號(hào); 步驟(5b):將引航任務(wù)vtask放入gtask任務(wù)組,vtask加1 ; 步驟(5c):訪問(wèn)引航任務(wù)vtask,如果滿足當(dāng)前訪問(wèn)的引航任務(wù)的起始地點(diǎn)等于之前訪 問(wèn)的引航任務(wù)的結(jié)束地點(diǎn),當(dāng)前訪問(wèn)的引航任務(wù)的起始時(shí)間遲于之前訪問(wèn)的引航任務(wù)的結(jié) 束時(shí)間且從當(dāng)前訪問(wèn)的引航任務(wù)組的第一個(gè)引航任務(wù)的起始時(shí)間到當(dāng)前訪問(wèn)的引航任務(wù) 的結(jié)束時(shí)間間隔小于工作時(shí)間閾值T,則把該任務(wù)放入g task任務(wù)組,vtaskW 1,轉(zhuǎn)步驟(5d); 否則,gtask加1,把當(dāng)前任務(wù)放入更新的gtask任務(wù)組,v task加1; 步驟(5d):如果vtask彡Ntask,轉(zhuǎn)步驟(5c); 步驟(5e):按建立引航排班問(wèn)題數(shù)學(xué)模型的計(jì)算公式(1)計(jì)算引航排班問(wèn)題的總費(fèi) 用,即為粒子的適應(yīng)度值。
6. 根據(jù)權(quán)利要求4所述一種船舶引航排班問(wèn)題模型與求解方法,其特征在于,對(duì)于所 述步驟(4d),最優(yōu)粒子子群的構(gòu)建方法步驟如下: 步驟^a):將所有粒子的個(gè)體極值由小到大進(jìn)行排序; 步驟(6b):根據(jù)比率γ和種群大小popsize依次選擇適應(yīng)度值較小的 [Y *popsize+0. 5]個(gè)粒子組成最優(yōu)粒子子群,其中[γ *popsize+0. 5]代表對(duì) Y *popsize+0. 5 取整。
7. 根據(jù)權(quán)利要求4所述一種船舶引航排班問(wèn)題模型與求解方法,其特征在于,對(duì)于所 述步驟(4e),引航排班問(wèn)題鄰接元素概率分布模型構(gòu)建步驟如下: 步驟(7a):統(tǒng)計(jì)最優(yōu)粒子子群中粒子序列元素i的鄰接元素j出現(xiàn)的次數(shù)nij ; 步驟(7b):構(gòu)建鄰接元素的概率模型; 步驟(7c):構(gòu)建鄰接元素的概率分布模型。
8. 根據(jù)權(quán)利要求7所述一種船舶引航排班問(wèn)題模型與求解方法,其特征在于,對(duì)于所 述步驟(7a),鄰接次數(shù)r^_的計(jì)算步驟如下:
步驟(8a):記最優(yōu)粒子子群為E,其中第k個(gè)個(gè)體表示為 L 為粒子長(zhǎng)度; 步驟(8b):建立一個(gè)鄰接次數(shù)矩陣N,N中的元素表示序列元素i與序列元素j的 鄰接次數(shù),初始化為0,矩陣如下所示:
(9) 步驟(8c):遍歷最優(yōu)粒子子群中的每個(gè)粒子,r^_按如下方式更新:
(10) 其中,4 =/,<=./; 對(duì)于所述步驟(7b),鄰接元素的概率模型建立步驟如下: 步驟(8d):建立鄰接元素概率矩陣P如下:
(11) 步驟(8e):更新概率Pm如下式所示:
(12)。
9. 根據(jù)權(quán)利要求7所述一種船舶引航排班問(wèn)題模型與求解方法,其特征在于,對(duì)于所 (13) 述步驟(7c),鄰接元素的概率分布模型建立步驟如下: 步驟(9a):建立鄰接元素概率分布矩陣F如下: 步驟(9b):更新概率&_,如下式所示:
(14)。 i = l,2"..Lj = 0,l,2"..L
10.根據(jù)權(quán)利要求4所述一種船舶引航排班問(wèn)題模型與求解方法,其特征在于,對(duì)于步 驟(4f),每個(gè)粒子根據(jù)引航任務(wù)的鄰接元素概率分布模型執(zhí)行學(xué)習(xí)采樣過(guò)程的具體步驟如 下: 步驟(l〇a):隨機(jī)產(chǎn)生兩個(gè)粒子位XpX2,保持粒子中粒子位&、&之間的序列不變,其 余粒子位置空; 步驟(10b):對(duì)于剩余粒子位元素值,采用輪盤賭方法,采樣引航排班問(wèn)題鄰接元素概 率分布模型,得到新粒子; 步驟(l〇c):由步驟(l〇b)所得新粒子,若其適應(yīng)度值優(yōu)于采樣學(xué)習(xí)前的適應(yīng)度值,則 將新粒子替換采樣學(xué)習(xí)前的粒子;否則,對(duì)當(dāng)前粒子以概率Pm執(zhí)行變異操作。
【文檔編號(hào)】G06F19/00GK104217118SQ201410467131
【公開日】2014年12月17日 申請(qǐng)日期:2014年9月12日 優(yōu)先權(quán)日:2014年9月12日
【發(fā)明者】薛云燦, 張海霞, 楊啟文, 李彬, 王思睿 申請(qǐng)人:河海大學(xué)常州校區(qū)