專利名稱:運(yùn)輸適時(shí)調(diào)度方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種調(diào)度方法,尤其涉及一種運(yùn)輸適時(shí)調(diào)度方法。
背景技術(shù):
動(dòng)態(tài)車輛調(diào)度是物流管理領(lǐng)域研究的前沿問題,目前,中國市場(chǎng)的運(yùn)輸優(yōu)化系統(tǒng)軟件幾 乎全部來自國外。在中國物流管理軟件市場(chǎng)中排名前四位的博科、用友、金蝶和東軟金算盤 均沒有提供運(yùn)輸資源決策支持功能,而僅涵蓋物流業(yè)務(wù)的流程管理。
通過對(duì)國外同類運(yùn)輸優(yōu)化軟件的分析可知,如SAP、 MANUGISTICS、 0racle、 i2等提供的 運(yùn)輸優(yōu)化產(chǎn)品,定位比較單一,都只是解決車輛的路徑優(yōu)化問題,涵蓋的約束也非常少,僅 僅包含了時(shí)間窗的限制,并且均沒有涉及到滿載車輛的優(yōu)化問題。
啟發(fā)式搜索算法發(fā)式搜索就是在狀態(tài)空間中的搜索對(duì)每一個(gè)搜索的位置進(jìn)行評(píng)估,得到 最好的位置,再從這個(gè)位置進(jìn)行搜索直到目標(biāo)。這樣可以省略大量無畏的搜索路徑,提到了 效率。在啟發(fā)式搜索中,對(duì)位置的估價(jià)是十分重要的。采用了不同的估價(jià)可以有不同的效果。 估價(jià)的表示方法如下。
啟發(fā)中的估價(jià)是用估價(jià)函數(shù)表示的,如f(n) =g(n) +h(n),其中f (n)是節(jié)點(diǎn)n的估 價(jià)函數(shù),g(n)實(shí)在狀態(tài)空間中從初始節(jié)點(diǎn)到n節(jié)點(diǎn)的實(shí)際代價(jià),h(ri)是從ri到目標(biāo)節(jié)點(diǎn)最佳 路徑的估計(jì)代價(jià)。在這里主要是h(n)體現(xiàn)了搜索的啟發(fā)信息。因?yàn)間(n)是已知的。如果說詳 細(xì)點(diǎn),g(n)代表了搜索的廣度的優(yōu)先趨勢(shì)。但是當(dāng)h(n) "g(n)時(shí),可以省略g(n),而提高 效率。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種根據(jù)動(dòng)態(tài)事件觸發(fā)、調(diào)整現(xiàn)場(chǎng)運(yùn)輸調(diào)度作業(yè)的 運(yùn)輸適時(shí)調(diào)度方法。
為解決上述技術(shù)問題,本發(fā)明采用如下技術(shù)方案-
一種運(yùn)輸適時(shí)調(diào)度方法,用于根據(jù)動(dòng)態(tài)事件觸發(fā)、調(diào)整現(xiàn)場(chǎng)運(yùn)輸調(diào)度作業(yè);該方法包括
如下步驟-
步驟l、模型初始化,讀入基礎(chǔ)數(shù)據(jù)及參數(shù),測(cè)試接口;若發(fā)現(xiàn)錯(cuò)誤,做出提示并退出; 步驟2、計(jì)算車輛、任務(wù)匹配度;步驟3、經(jīng)調(diào)度確認(rèn)后,模型計(jì)算初始指令,保存至數(shù)據(jù)庫,做新指令標(biāo)記;
步驟4、無匹配指令的任務(wù)和車輛進(jìn)入各自就緒列表;
步驟5、掃描數(shù)據(jù)庫及緩沖池,按隊(duì)列取出當(dāng)前第一個(gè)未處理事件;
步驟6、事件預(yù)處理;車輛狀態(tài)轉(zhuǎn)換包括狀態(tài)A——到達(dá)裝點(diǎn)、狀態(tài)B——離開裝點(diǎn)、狀 態(tài)C——到達(dá)卸點(diǎn)、狀態(tài)D——離開卸點(diǎn);事件包括車輛堵車事件、午飯啟畢事件、車輛拋錨 或修復(fù)事件、到達(dá)卸點(diǎn)事件、任務(wù)新增事件、任務(wù)量變化事件、取消任務(wù)事件、任務(wù)卸點(diǎn)改 變事件以及天氣變化事件;
步驟61、如果事件為池事件,則直接返回已經(jīng)過預(yù)處理的該事件;
步驟62、根據(jù)車輛狀態(tài)序列以及人工確定,判斷事件是否為可響應(yīng)事件-對(duì)于車輛堵車事件,如果當(dāng)前處于狀態(tài)C、或狀態(tài)D,則堵車信息不合法,移至不響應(yīng)事 件表,忽略該事件并把警告信息保存至數(shù)據(jù)庫,標(biāo)記為新信息,返回空;否則,車輛狀態(tài)為 狀態(tài)A、或狀態(tài)B,檢查該車和該事件處理設(shè)定,如不是可響應(yīng),則標(biāo)記后,返回空;否則, 轉(zhuǎn)步驟63;
對(duì)于午飯啟畢事件,檢查合法性,包括午飯開始是第一次出現(xiàn),且符合時(shí)間窗口,午 飯結(jié)束是午飯開始后第一次出現(xiàn);如不合法,移至不響應(yīng)事件表,忽略該事件并把警告信息 報(bào)錯(cuò)至數(shù)據(jù)庫,標(biāo)記為新信息,返回空;否則,檢查事件處理設(shè)定,如不是可響應(yīng),則標(biāo)記 后,返回空,否則,轉(zhuǎn)步驟63;
對(duì)于車輛拋錨或修復(fù)事件,檢査合法性,包括當(dāng)前狀態(tài)是否為正?;蚬收?,如不合法, 移至不響應(yīng)事件表,忽略該事件并把警告信息報(bào)錯(cuò)至數(shù)據(jù)庫,標(biāo)記為新信息,返回空;否則, 檢査事件處理設(shè)定,如不是可響應(yīng),則標(biāo)記后,返回空;否則,轉(zhuǎn)步驟63;
對(duì)于到達(dá)裝點(diǎn)事件,如當(dāng)前非離開卸點(diǎn)狀態(tài),事件不合法,對(duì)于離開裝點(diǎn)事件,如當(dāng)前 非離開卸點(diǎn)或到達(dá)裝點(diǎn),事件不合法,均移至不響應(yīng)事件表,忽略該事件并把警告信息保存 至數(shù)據(jù)庫,標(biāo)記為新信息,返回空;否則,檢査事件處理設(shè)定,如不是可響應(yīng),則標(biāo)記后, 返回空;否則,轉(zhuǎn)步驟63;
對(duì)于到達(dá)卸點(diǎn)事件,如當(dāng)前非離開裝點(diǎn)狀態(tài),事件不合法,對(duì)于離開卸點(diǎn)事件,如當(dāng)前 非離開裝點(diǎn)或到達(dá)卸點(diǎn),事件不合法,均移至不響應(yīng)事件表,忽略該事件并把警告信息保存 至數(shù)據(jù)庫,標(biāo)記為新信息,返回空;否則,檢査事件處理設(shè)定,如不是可響應(yīng),則標(biāo)記后, 返回空;否則,轉(zhuǎn)步驟63;
對(duì)于任務(wù)新增事件、任務(wù)量變化事件、取消任務(wù)事件、任務(wù)卸點(diǎn)改變事件以及天氣變化 事件,檢査事件處理設(shè)定,如不是可響應(yīng),則標(biāo)記后,返回空;否則,轉(zhuǎn)步驟63; 7步驟63、首先通過車輛、任務(wù)或事件各自設(shè)定,判斷事件是進(jìn)入緩沖池還是立即響應(yīng); 如為前者,標(biāo)記后進(jìn)入緩沖池,然后檢査池是否慢,如不滿,返回;否則,返回緩沖池;如 為后者,返回該事件;
步驟7、若步驟6的返回值為空,則直接返回至步驟5;若返回值為事件,直接進(jìn)入步驟 8;若返回值為緩沖池,設(shè)置池事件啟動(dòng)標(biāo)志,取其第一個(gè)事件,進(jìn)入步驟8;
步驟8、若收到車輛堵車信息,進(jìn)入步驟9;若收到車輛到裝點(diǎn)或離開裝點(diǎn)信息,進(jìn)入步 驟10;若收到車輛到卸點(diǎn)或離開卸點(diǎn)信息,進(jìn)入步驟ll;若收到開始午飯信息或拋錨信息, 進(jìn)入步驟12;若收到午飯結(jié)束信息或車輛修復(fù)信息,進(jìn)入步驟13;若收到新任務(wù)信息,進(jìn)入 步驟14;若收到取消任務(wù)信息,進(jìn)入步驟15;若收到任務(wù)量調(diào)整信息,進(jìn)入步驟16;若收到 任務(wù)卸點(diǎn)改變信息,進(jìn)入步驟17;若收到天氣變化信息,進(jìn)入步驟18;若收到退出程序事件, 進(jìn)入步驟19;
步驟9、根據(jù)車輛選車函數(shù),在所有任務(wù)或僅就緒任務(wù)列表中選擇最佳任務(wù),然后進(jìn)入指 令審批處理步驟,如果返回指令標(biāo)記為直發(fā)或滿意或調(diào)整,則保存該返回指令到數(shù)據(jù)庫待發(fā), 同時(shí)更新任務(wù)匹配度;如果返回指令標(biāo)記為取消,車輛進(jìn)入就緒列表,轉(zhuǎn)入步驟20;
指令審批處理步驟
步驟A1、根據(jù)計(jì)算該指令的事件類型,通過參數(shù)設(shè)定檢査是否可直接下發(fā),如是,標(biāo)記 "直發(fā)"后返回該指令;否則轉(zhuǎn)步驟A2;
步驟A2、詢問用戶是否滿意該計(jì)劃,如是,標(biāo)記"滿意"后返回該指令;否則轉(zhuǎn)步驟
A3;
步驟A3、詢問是否調(diào)整該指令,如非,標(biāo)記"取消"后返回該指令,否則返回調(diào)整后的 指令,標(biāo)記為"新調(diào)整";
步驟10、更新車輛實(shí)時(shí)狀態(tài);根據(jù)到裝點(diǎn)或離開裝點(diǎn)類型更新任務(wù)的等待服務(wù)車輛列表, 如果為離開裝點(diǎn)事件,同時(shí)更新任務(wù)余量和任務(wù)的開始服務(wù)時(shí)間標(biāo)記,如果當(dāng)前等待隊(duì)列為0, 根據(jù)任務(wù)選車函數(shù)在就緒車輛中選擇最佳車輛,然后進(jìn)入指令審批處理步驟,如果返回指令 標(biāo)記為直發(fā)或滿意或調(diào)整,則保存該返回指令到數(shù)據(jù)庫待發(fā),同時(shí)更新車輛匹配度;如果返 回指令為取消,則任務(wù)進(jìn)入就緒任務(wù)列表;轉(zhuǎn)入步驟20;
步驟ll、更新車輛實(shí)時(shí)狀態(tài);如果事件為到卸點(diǎn)且無請(qǐng)求提前期,直接轉(zhuǎn)步驟20;否則, 更新車輛當(dāng)前結(jié)束時(shí)間,根據(jù)車輛選車函數(shù),在所有任務(wù)中選擇最佳任務(wù),然后進(jìn)入指令審 批處理步驟,如果返回指令標(biāo)記為直發(fā)或滿意或調(diào)整,則保存該返回指令到數(shù)據(jù)庫待發(fā),同 時(shí)更新任務(wù)匹配度;如果返回指令標(biāo)記為取消,車輛進(jìn)入就緒列表;轉(zhuǎn)入步驟20;步驟12、更新車輛午飯或可用否的實(shí)時(shí)狀態(tài),轉(zhuǎn)入步驟20;
步驟13、更新車輛午飯或正常的實(shí)時(shí)狀態(tài),如果車輛處于C或D狀態(tài),轉(zhuǎn)入20;否則根
據(jù)當(dāng)前位置在所有任務(wù)中選擇最佳任務(wù),然后進(jìn)入指令審批處理步驟,如果返回指令標(biāo)記為
直發(fā)或滿意或調(diào)整,則保存該返回指令到數(shù)據(jù)庫待發(fā),同時(shí)更新任務(wù)匹配度;如果返回指令 標(biāo)記為取消,車輛進(jìn)入就緒列表;轉(zhuǎn)入步驟20;
步驟14、更新任務(wù)列表,更新匹配度,根據(jù)任務(wù)選車函數(shù)在所有車輛中或僅就緒車輛選 擇最佳車輛,然后進(jìn)入指令審批處理步驟,如果返回指令標(biāo)記為直發(fā)或滿意或調(diào)整,則保存 該返回指令到數(shù)據(jù)庫待發(fā);如果返回指令標(biāo)記為取消,任務(wù)進(jìn)入就緒列表;轉(zhuǎn)入步驟20;
步驟15、更新任務(wù)列表,更新匹配度,檢索該任務(wù)排隊(duì)車輛和分配該任務(wù)指令車輛,依 次為車輛虛擬離開卸點(diǎn)事件進(jìn)入臨時(shí)池,設(shè)置臨時(shí)池標(biāo)志,直接轉(zhuǎn)入步驟20;
步驟16、更新任務(wù)列表,更新匹配度,當(dāng)任務(wù)量減少時(shí),檢索該任務(wù)排隊(duì)車輛和分配該 任務(wù)指令車輛,按運(yùn)量計(jì)算后對(duì)多余車輛虛擬離開卸點(diǎn)事件進(jìn)入臨時(shí)池,設(shè)置臨時(shí)池標(biāo)志, 直接轉(zhuǎn)入步驟20;
步驟17、更新任務(wù)表,更新匹配度,轉(zhuǎn)入步驟20;
步驟18、更新任務(wù)表狀態(tài),對(duì)于變?yōu)橥V範(fàn)顟B(tài)的任務(wù),檢索該任務(wù)排隊(duì)車輛和分配該任
務(wù)指令車輛,依次為車輛虛擬離開卸點(diǎn)事件進(jìn)入臨時(shí)池,設(shè)置臨時(shí)池標(biāo)志,直接轉(zhuǎn)入20; 步驟19、保存后退出程序;
步驟20、主要處理池事件;檢索臨時(shí)池標(biāo)志,如為真則取出臨時(shí)池下一個(gè)標(biāo)志,轉(zhuǎn)步驟 8;否則,更新主池,如果轉(zhuǎn)入前處理的事件是主池池事件且主池不為空,則繼續(xù)處理池事件, 取主池中下一個(gè)事件,轉(zhuǎn)步驟8;否則轉(zhuǎn)步驟5。
作為本發(fā)明的一種優(yōu)選方案,所述主池用來儲(chǔ)存事件的緩沖池,池的長度決定調(diào)度的周期。
作為本發(fā)明的一種優(yōu)選方案,所述臨時(shí)池用來儲(chǔ)存因某個(gè)事件而產(chǎn)生的一系列虛擬事件, 池的大小表示觸發(fā)的虛擬事件的數(shù)量,該池事件一經(jīng)填充立即進(jìn)行算法處理直至池空。
作為本發(fā)明的一種優(yōu)選方案,所述步驟20中取主池中下一個(gè)事件后,取后主池事件為空
設(shè)置主池空標(biāo)志。
作為本發(fā)明的一種優(yōu)選方案,所述車輛被船只、飛機(jī)所替代;同時(shí)還包括生產(chǎn)作業(yè)中的 零部件調(diào)度,即如何動(dòng)態(tài)按需調(diào)度這些零部件到組裝線上;除此之外,還有煉鋼工藝中的鐵 水運(yùn)輸所需的魚雷車調(diào)度。本發(fā)明提出的運(yùn)輸適時(shí)調(diào)度方法的有益效果在于-
(1) 構(gòu)造了考慮擁堵控制的滿載模型,彌補(bǔ)以往滿載調(diào)度研究的不足之處,并提出動(dòng)態(tài) 時(shí)間窗的概念并加以利用。
(2) 該模型基于三維場(chǎng)景,并設(shè)計(jì)了高效快速的啟發(fā)式模型求解算法。
(3) 該模型和算法考慮了滿載車輛調(diào)度中的各類約束,尤其是成功解決了滿載中存在的 車輛載重不統(tǒng)一和多貨物匹配時(shí)的難題。
(4) 提出把車輛調(diào)度優(yōu)化和GPS/GPRS相結(jié)合的機(jī)制,使得調(diào)度管理更快捷,更高效, 做到狀態(tài)的適時(shí)控制。
(5) 基于事件驅(qū)動(dòng)的動(dòng)態(tài)車輛優(yōu)化調(diào)度,適時(shí)根據(jù)運(yùn)輸資源使用情況和未完成任務(wù),提 高運(yùn)輸資源使用效率。
圖1為本發(fā)明運(yùn)輸適時(shí)調(diào)度方法的流程圖。
具體實(shí)施例方式
下面結(jié)合附圖詳細(xì)說明本發(fā)明的優(yōu)選實(shí)施例。 實(shí)施例一
請(qǐng)參閱圖1,本發(fā)明揭示了一種運(yùn)輸適時(shí)調(diào)度方法,該方法用于根據(jù)鋼鐵物流運(yùn)輸現(xiàn)場(chǎng)中 隨時(shí)發(fā)生作業(yè)任務(wù)變更、作業(yè)車輛調(diào)整等事件,通過動(dòng)態(tài)事件觸發(fā)、調(diào)整現(xiàn)場(chǎng)運(yùn)輸調(diào)度作業(yè)。 該方法包括如下步驟
步驟l、模型初始化,讀入基礎(chǔ)數(shù)據(jù)及參數(shù),測(cè)試接口;若發(fā)現(xiàn)錯(cuò)誤,做出提示并退出; 步驟2、計(jì)算車輛、任務(wù)匹配度;
步驟3、經(jīng)調(diào)度確認(rèn)后,模型計(jì)算初始指令,保存至數(shù)據(jù)庫,做新指令標(biāo)記;
步驟4、無匹配指令的任務(wù)和車輛進(jìn)入各自就緒列表;
步驟5、掃描數(shù)據(jù)庫及緩沖池,按隊(duì)列取出當(dāng)前第一個(gè)未處理事件;
步驟6、事件預(yù)處理;車輛狀態(tài)轉(zhuǎn)換包括狀態(tài)A——到達(dá)裝點(diǎn)、狀態(tài)B——離開裝點(diǎn)、狀 態(tài)C——到達(dá)卸點(diǎn)、狀態(tài)D——離開卸點(diǎn);事件包括車輛堵車事件、午飯啟畢事件、車輛拋錨 或修復(fù)事件、到達(dá)卸點(diǎn)事件、任務(wù)新增事件、任務(wù)量變化事件、取消任務(wù)事件、任務(wù)卸點(diǎn)改 變事件以及天氣變化事件;步驟61、如果事件為池事件,則直接返回已經(jīng)過預(yù)處理的該事件; 步驟62、根據(jù)車輛狀態(tài)序列以及人工確定,判斷事件是否為可響應(yīng)事件 對(duì)于車輛堵車事件,如果當(dāng)前處于狀態(tài)C、或狀態(tài)D,則堵車信息不合法,移至不響應(yīng)事 件表,忽略該事件并把警告信息保存至數(shù)據(jù)庫,標(biāo)記為新信息,返回空;否則,車輛狀態(tài)為 狀態(tài)A、或狀態(tài)B,檢査該車和該事件處理設(shè)定,如不是可響應(yīng),則標(biāo)記后,返回空;否則, 轉(zhuǎn)步驟63;
對(duì)于午飯啟畢事件,檢查合法性,包括午飯開始是第一次出現(xiàn),且符合時(shí)間窗口,午 飯結(jié)束是午飯開始后第一次出現(xiàn);如不合法,移至不響應(yīng)事件表,忽略該事件并把警告信息 報(bào)錯(cuò)至數(shù)據(jù)庫,標(biāo)記為新信息,返回空;否則,檢査事件處理設(shè)定,如不是可響應(yīng),則標(biāo)記 后,返回空,否則,轉(zhuǎn)步驟63;
對(duì)于車輛拋錨或修復(fù)事件,檢查合法性,包括當(dāng)前狀態(tài)是否為正?;蚬收?,如不合法, 移至不響應(yīng)事件表,忽略該事件并把警告信息報(bào)錯(cuò)至數(shù)據(jù)庫,標(biāo)記為新信息,返回空;否則, 檢查事件處理設(shè)定,如不是可響應(yīng),則標(biāo)記后,返回空;否則,轉(zhuǎn)步驟63;
對(duì)于到達(dá)裝點(diǎn)事件,如當(dāng)前非離開卸點(diǎn)狀態(tài),事件不合法,對(duì)于離開裝點(diǎn)事件,如當(dāng)前 非離開卸點(diǎn)或到達(dá)裝點(diǎn),事件不合法,均移至不響應(yīng)事件表,忽略該事件并把警告信息保存 至數(shù)據(jù)庫,標(biāo)記為新信息,返回空;否則,檢查事件處理設(shè)定,如不是可響應(yīng),則標(biāo)記后, 返回空;否則,轉(zhuǎn)步驟63;
對(duì)于到達(dá)卸點(diǎn)事件,如當(dāng)前非離開裝點(diǎn)狀態(tài),事件不合法,對(duì)于離開卸點(diǎn)事件,如當(dāng)前 非離開裝點(diǎn)或到達(dá)卸點(diǎn),事件不合法,均移至不響應(yīng)事件表,忽略該事件并把警告信息保存 至數(shù)據(jù)庫,標(biāo)記為新信息,返回空;否則,檢査事件處理設(shè)定,如不是可響應(yīng),則標(biāo)記后, 返回空;否則,轉(zhuǎn)步驟63;
對(duì)于任務(wù)新增事件、任務(wù)量變化事件、取消任務(wù)事件、任務(wù)卸點(diǎn)改變事件以及天氣變化 事件,檢査事件處理設(shè)定,如不是可響應(yīng),則標(biāo)記后,返回空;否則,轉(zhuǎn)步驟63;
步驟63、首先通過車輛、任務(wù)或事件各自設(shè)定,判斷事件是進(jìn)入緩沖池還是立即響應(yīng); 如為前者,標(biāo)記后進(jìn)入緩沖池,然后檢査池是否慢,如不滿,返回;否則,返回緩沖池;如 為后者,返回該事件;
步驟7、若步驟6的返回值為空,則直接返回至步驟5;若返回值為事件,直接進(jìn)入步驟 8;若返回值為緩沖池,設(shè)置池事件啟動(dòng)標(biāo)志,取其第一個(gè)事件,進(jìn)入步驟8;
步驟8、若收到車輛堵車信息,進(jìn)入步驟9;若收到車輛到裝點(diǎn)或離開裝點(diǎn)信息,進(jìn)入步 驟10;若收到車輛到卸點(diǎn)或離開卸點(diǎn)信息,進(jìn)入步驟ll;若收到開始午飯信息或拋錨信息,進(jìn)入步驟12;若收到午飯結(jié)束信息或車輛修復(fù)信息,進(jìn)入步驟13;若收到新任務(wù)信息,進(jìn)入 步驟14;若收到取消任務(wù)信息,進(jìn)入步驟15;若收到任務(wù)量調(diào)整信息,進(jìn)入步驟16;若收到 任務(wù)卸點(diǎn)改變信息,進(jìn)入步驟17;若收到天氣變化信息,進(jìn)入步驟18;若收到退出程序事件, 進(jìn)入步驟19;
步驟9、根據(jù)車輛選車函數(shù),在所有任務(wù)或僅就緒任務(wù)列表中選擇最佳任務(wù),然后進(jìn)入指 令審批處理步驟,如果返回指令標(biāo)記為直發(fā)或滿意或調(diào)整,則保存該返回指令到數(shù)據(jù)庫待發(fā), 同時(shí)更新任務(wù)匹配度;如果返回指令標(biāo)記為取消,車輛進(jìn)入就緒列表,轉(zhuǎn)入步驟20;
指令審批處理步驟
步驟A1、根據(jù)計(jì)算該指令的事件類型,通過參數(shù)設(shè)定檢查是否可直接下發(fā),如是,標(biāo)記 "直發(fā)"后返回該指令;否則轉(zhuǎn)步驟A2;
步驟A2、詢問用戶是否滿意該計(jì)劃,如是,標(biāo)記"滿意"后返回該指令;否則轉(zhuǎn)步驟
A3;
步驟A3、詢問是否調(diào)整該指令,如非,標(biāo)記"取消"后返回該指令,否則返回調(diào)整后的 指令,標(biāo)記為"新調(diào)整";
步驟10、更新車輛實(shí)時(shí)狀態(tài);根據(jù)到裝點(diǎn)或離開裝點(diǎn)類型更新任務(wù)的等待服務(wù)車輛列表, 如果為離開裝點(diǎn)事件,同時(shí)更新任務(wù)余量和任務(wù)的開始服務(wù)時(shí)間標(biāo)記,如果當(dāng)前等待隊(duì)列為0, 根據(jù)任務(wù)選車函數(shù)在就緒車輛中選擇最佳車輛,然后進(jìn)入指令審批處理步驟,如果返回指令 標(biāo)記為直發(fā)或滿意或調(diào)整,則保存該返回指令到數(shù)據(jù)庫待發(fā),同時(shí)更新車輛匹配度;如果返 回指令為取消,則任務(wù)進(jìn)入就緒任務(wù)列表;轉(zhuǎn)入步驟20;
步驟ll、更新車輛實(shí)時(shí)狀態(tài);如果事件為到卸點(diǎn)且無請(qǐng)求提前期,直接轉(zhuǎn)步驟20;否則, 更新車輛當(dāng)前結(jié)束時(shí)間,根據(jù)車輛選車函數(shù),在所有任務(wù)中選擇最佳任務(wù),然后進(jìn)入指令審 批處理步驟,如果返回指令標(biāo)記為直發(fā)或滿意或調(diào)整,則保存該返回指令到數(shù)據(jù)庫待發(fā),同 時(shí)更新任務(wù)匹配度;如果返回指令標(biāo)記為取消,車輛進(jìn)入就緒列表;轉(zhuǎn)入步驟20;
步驟12、更新車輛午飯或可用否的實(shí)時(shí)狀態(tài),轉(zhuǎn)入步驟20;
步驟13、更新車輛午飯或正常的實(shí)時(shí)狀態(tài),如果車輛處于C或D狀態(tài),轉(zhuǎn)入20;否則根 據(jù)當(dāng)前位置在所有任務(wù)中選擇最佳任務(wù),然后進(jìn)入指令審批處理步驟,如果返回指令標(biāo)記為 直發(fā)或滿意或調(diào)整,則保存該返回指令到數(shù)據(jù)庫待發(fā),同時(shí)更新任務(wù)匹配度;如果返回指令 標(biāo)記為取消,車輛進(jìn)入就緒列表;轉(zhuǎn)入步驟20;
步驟14、更新任務(wù)列表,更新匹配度,根據(jù)任務(wù)選車函數(shù)在所有車輛中或僅就緒車輛選 擇最佳車輛,然后進(jìn)入指令審批處理步驟,如果返回指令標(biāo)記為直發(fā)或滿意或調(diào)整,則保存該返回指令到數(shù)據(jù)庫待發(fā);如果返回指令標(biāo)記為取消,任務(wù)進(jìn)入就緒列表;轉(zhuǎn)入步驟20;
步驟15、更新任務(wù)列表,更新匹配度,檢索該任務(wù)排隊(duì)車輛和分配該任務(wù)指令車輛,依 次為車輛虛擬離開卸點(diǎn)事件進(jìn)入臨時(shí)池,設(shè)置臨時(shí)池標(biāo)志,直接轉(zhuǎn)入步驟20;
步驟16、更新任務(wù)列表,更新匹配度,當(dāng)任務(wù)量減少時(shí),檢索該任務(wù)排隊(duì)車輛和分配該 任務(wù)指令車輛,按運(yùn)量計(jì)算后對(duì)多余車輛虛擬離開卸點(diǎn)事件進(jìn)入臨時(shí)池,設(shè)置臨時(shí)池標(biāo)志, 直接轉(zhuǎn)入步驟20;
步驟17、更新任務(wù)表,更新匹配度,轉(zhuǎn)入步驟20;
步驟18、更新任務(wù)表狀態(tài),對(duì)于變?yōu)橥V範(fàn)顟B(tài)的任務(wù),檢索該任務(wù)排隊(duì)車輛和分配該任 務(wù)指令車輛,依次為車輛虛擬離開卸點(diǎn)事件進(jìn)入臨時(shí)池,設(shè)置臨時(shí)池標(biāo)志,直接轉(zhuǎn)入20; 步驟19、保存后退出程序;
步驟20、主要處理池事件;檢索臨時(shí)池標(biāo)志,如為真則取出臨時(shí)池下一個(gè)標(biāo)志,轉(zhuǎn)步驟 8;否則,更新主池,如果轉(zhuǎn)入前處理的事件是主池池事件且主池不為空,則繼續(xù)處理池事件, 取主池中下一個(gè)事件(取后為空設(shè)置主池空標(biāo)志),轉(zhuǎn)步驟8;否則轉(zhuǎn)步驟5。所述主池用來 儲(chǔ)存事件的緩沖池,池的長度決定調(diào)度的周期;所述臨時(shí)池用來儲(chǔ)存因某個(gè)事件而產(chǎn)生的一 系列虛擬事件,池的大小表示觸發(fā)的虛擬事件的數(shù)量,該池事件一經(jīng)填充立即進(jìn)行算法處理 直至池空。
實(shí)施例二
本實(shí)施例通過建立模型具體介紹運(yùn)輸適時(shí)調(diào)度方法中計(jì)算車、任務(wù)匹配度的工作原理及 過程。
其模型如下
^表示點(diǎn)集,包括重載點(diǎn)和車場(chǎng)(其中用4表示車場(chǎng),^表示重載點(diǎn))。有n項(xiàng)貨運(yùn)任
務(wù)表示為A, "ys", 4的貨運(yùn)量為A, 4表示一個(gè)裝卸過程,其裝一車的時(shí)間為c,卸 貨時(shí)間設(shè)為A。 [""W為任務(wù)A的時(shí)間窗,。為4的裝車數(shù)(有o-^ ]+i,[]表示小 于括號(hào)內(nèi)的最大整數(shù))。有附個(gè)車場(chǎng)表示為4, "+l"、"+w, 4擁有的車輛數(shù)為"',K表
示z'車場(chǎng)的第"輛車,12"^"',其車速用&"表示。車輛載重量均為《,每一項(xiàng)任務(wù)稱為一
個(gè)重載點(diǎn),令且任一A》〉q,車輛固定成本設(shè)為p,車輛最早開始時(shí)間為《,最長工作時(shí)間
13為《, 一般取定值丄。
距離常量《依i、 j值而定義。當(dāng)"+ l^/^" + m禾卩iS/S"時(shí),則《表示車場(chǎng)4到任務(wù) ^的裝點(diǎn)的距離;當(dāng)i^z》^"時(shí),《表示^的卸點(diǎn)到A的裝點(diǎn)的距離;當(dāng)B""和 "+ l^/《"+ m時(shí),《表示4的卸點(diǎn)到車場(chǎng)A的距離;當(dāng)"+ 1《/,_/《"+附時(shí),《表示一個(gè) 很大的正數(shù),這意味著從車場(chǎng)到車場(chǎng)的路線是沒有意義的。下面是模型中用到的變量的定義 4車場(chǎng)第li輛車路線的裝車數(shù),"+ l^/《"+ w, K"^",;
T':: 4車場(chǎng)第U輛車到達(dá)路線上第W個(gè)裝貨點(diǎn)的時(shí)間,i^W^Z'",已知從車場(chǎng)出發(fā)時(shí)
間設(shè)為^=《;
任務(wù)4裝第r車的最早開始時(shí)間,B"。,己知"1="乂;
非負(fù)整數(shù)變量,表示弧(i, j)在車場(chǎng)4的第U輛車的路線上出現(xiàn)的次數(shù)?;〉木唧w 定義類似于《,和i、 j的值有關(guān),在此不再贅述。
另外定義本文中用到的一個(gè)函數(shù)表達(dá)式F",力如下所示
顯然,當(dāng)x大于y時(shí),^",力表示x和y的差值,否則為0。
在上述變量定義基礎(chǔ)上,有如下遞推關(guān)系式
c《1+1: t, TT1)"") +1S t iX ("") n x") /s;1' w > i (i-i)
>1 r=i /=i
d《+tlx^:'/y,w" (i-2)
[=[(")+
《"1 (1-3)式(l-l)表示車輛到達(dá)某一裝車點(diǎn)的時(shí)間為到達(dá)上一個(gè)裝車點(diǎn)的時(shí)間和在上一個(gè)裝車點(diǎn)
等待的時(shí)間、上一個(gè)裝點(diǎn)裝車持續(xù)時(shí)間、重車行駛時(shí)間、上一個(gè)卸點(diǎn)卸車持續(xù)時(shí)間、空車行 駛到本次裝點(diǎn)的時(shí)間總和式(1-2)表示式(1-l)在車輛從車場(chǎng)出發(fā)到第一個(gè)裝點(diǎn)時(shí)的特例; 式(l-3)表示的就是同一個(gè)任務(wù)的次序關(guān)系,由于考慮等待時(shí)間成本,任務(wù)的某一車次最早開 始時(shí)間并不僅僅與上一車次的最早開始時(shí)間和裝車持續(xù)時(shí)間有關(guān),還包括裝載機(jī)械等待車輛 到來的一段時(shí)間。所以,某一車次的最早開始時(shí)間是動(dòng)態(tài)的,在模型求解之前并不能確定, 而只能作為模型中的決策變量考慮。
其數(shù)學(xué)模型如下所示
"+m w,. 丄^rt 。'
minrc=Wl z lizzie -",)r
w=l w=l 乂'=1 r=l
j= +l w=l _/=l
!2l;oi,iw",1^^ (3)
'■= +lw=l w=l
■ =rt+l w=l /'=1 s-"+l w=l f=l
M+附w+ffl "+m "+怖
其中,
^ S ; < 7}()_+1)《~ W 2 ",1 S / < ^ (8)《《7;:《《+ £, w +1《/《w + w,l S " w,, (9)
i、 j、 s、 u、 w均為正整數(shù),X^取0或1,""為非負(fù)整數(shù)。
15在此模型(設(shè)為M)中,(l)式為目標(biāo)函數(shù),即最小化等待總時(shí)間、空駛時(shí)間以及固定成 本的總和;(2)式表示每一個(gè)任務(wù)都要被完成;(3)式表示任一裝載機(jī)裝載的任一車都有一輛
車且只有一輛車來完成;(4)式表示任一貨運(yùn)任務(wù)4,其進(jìn)出的車輛數(shù)平衡;(5)、 (6)式表示
車場(chǎng)派車和收車不能超過容量;(7)式表示每輛車要么不派出,要么只派出一次,即返回某車
場(chǎng)后不能再被派出,并且保證派出車輛從車場(chǎng)出發(fā)并返回車場(chǎng);(8)表示任務(wù)的時(shí)間窗約束; (9)限制了車輛的工作時(shí)間不能超過定值。
從M可以看出,本文考慮了任務(wù)的裝車時(shí)間和卸貨時(shí)間,但認(rèn)為只在裝點(diǎn)會(huì)產(chǎn)生動(dòng)態(tài)時(shí) 間窗,存在空閑現(xiàn)象。在滿足約束的情況下,所要求得的是一個(gè)總成本最小的解,其中目標(biāo) 函數(shù)中總等待時(shí)間一項(xiàng)不光包括車輛的等待時(shí)間,也包括任務(wù)的等待時(shí)間(即裝載機(jī)械等待 車輛的時(shí)間)。因?yàn)閺臅r(shí)間上考慮,車輛和裝載機(jī)械都盡量減小空閑時(shí)間的解才是合理的。
車輛調(diào)度模型算法分析
滿載的車輛調(diào)度(Vehicle Scheduling Problem-Full Load, VSPFL)是典型的NP難題,很 難求得全局最優(yōu)解。為了在可接受的多項(xiàng)式時(shí)間內(nèi)求解模型, 一般采用啟發(fā)式算法來求得滿 意解。不同于以往的車輛路線問題,模型M中時(shí)間和空間的信息都是決策變量。本文基于貪 心算法,并對(duì)其進(jìn)行改進(jìn),設(shè)計(jì)評(píng)估函數(shù)。在路線構(gòu)造的過程中,選擇車輛當(dāng)前路線的每一 個(gè)待訪問任務(wù)的原則是非常重要的。從靜態(tài)時(shí)間窗的算法來看,在滿足時(shí)間約束的前提下, 一般選擇距離最短或最節(jié)省的重載點(diǎn)來擴(kuò)展路線。在模型M中,動(dòng)態(tài)時(shí)間窗構(gòu)成總成本的一 部分,是判定所求解可行性的重要指標(biāo),必須在構(gòu)造路線中予以考慮。本文建立如下的路線 構(gòu)造評(píng)估函數(shù)
評(píng)估函數(shù)一
假設(shè)車輛^在^w時(shí)刻來到任務(wù)^,所要完成的一車貨物是4的第r車,完成這一車任
務(wù)后于T,時(shí)刻行駛到任務(wù)^7',設(shè)此時(shí)^/能為該車輛提供服務(wù)的是其第,車,由公式(1 —1)可得出
<formula>formula see original document page 16</formula>
該車輛在執(zhí)行完^的一車后去執(zhí)行的一車的代價(jià)可表示為<formula>formula see original document page 17</formula>
上式中,第一項(xiàng)表示空車行使時(shí)間(Time0),第二項(xiàng)表示該車輛等待^'的裝載機(jī)械的時(shí)
間(Tirael),第三項(xiàng)表示雖然車輛到達(dá)4'時(shí)可立即開始工作,但此時(shí)裝載機(jī)己經(jīng)等待的一段
時(shí)間(Time2)(均不包括權(quán)系數(shù))。w(、 w;、 ^表示各自的權(quán)值。很明顯,后兩項(xiàng)的值不可能 同時(shí)為正。其中,第三項(xiàng)的符號(hào)為負(fù),是因?yàn)樵谇皟身?xiàng)值相等的情況下,函數(shù)傾向于選擇裝 載機(jī)空閑時(shí)間最長的下一個(gè)任務(wù)(函數(shù)值越小越好)。 評(píng)估函數(shù)二
設(shè)車輛K"在^時(shí)刻從車場(chǎng)4出發(fā),行使到4開始執(zhí)行該車輛的第一車任務(wù)。^為該車 輛提供的是該裝載機(jī)的第r車,已知此時(shí)〈-《/《'可知該車輛從車場(chǎng)行使到A的代價(jià)為-
尸2(/,力,4/《+m4f(7;,7;;:) o ^ w〖,wK si, w〖十m^ =i;
其中函數(shù)一用于表示一般情況下車輛完成某車任務(wù)執(zhí)行另一車任務(wù)的轉(zhuǎn)移成本,用于不 完整線路的延伸。其值綜合考慮了距離、車輛等待時(shí)間和任務(wù)的等待車輛時(shí)間。函數(shù)二用于 表示車輛剛從車場(chǎng)出發(fā)駛向某個(gè)任務(wù)的執(zhí)行成本。
*車貨匹配依賴度分析
首先分析衡量某任務(wù)對(duì)某車輛的依賴程度的相關(guān)因素-a和能夠完成該任務(wù)的車輛數(shù)有關(guān) b和能夠完成該任務(wù)的車輛總運(yùn)能有關(guān)
c和能夠完成該任務(wù)的車輛的可用工作時(shí)間有關(guān)
對(duì)上述兩個(gè)因素,統(tǒng)一用新定義的匹配依賴度來衡量。
依次定義車輛潛在運(yùn)能、任務(wù)匹配依賴度、任務(wù)潛在運(yùn)能需求、車輛匹配依賴度
車輛j潛在運(yùn)能VPC (vehicle potential Capacity)=該車j載重量(噸)*剩余工 作時(shí)間(分鐘)??善ヅ?-的有效車輛
任務(wù)i匹配依賴度TMDDR(task matching d印endence degree rate)=l-全部有效車輛 0 表示低依賴度,什么車都能做,l表示高依賴度,什么車都不能做。
任務(wù)i潛在運(yùn)能需求TPD(task potential demand):=該任務(wù)i剩余量(噸)*(標(biāo)準(zhǔn)重車 行駛時(shí)間+裝車總時(shí)間+卸車總時(shí)間)
可匹配y的有效任務(wù)
車輛j匹配依賴度(vehicle matching dependence degree rate)=l-全部有效任務(wù) *評(píng)價(jià)函數(shù)擴(kuò)展
有車輛請(qǐng)求指令時(shí),對(duì)車輛分配一個(gè)標(biāo)明任務(wù)的去向,此時(shí),用原來的Pl值乘以任務(wù)匹 配依賴度來衡量;有任務(wù)新來且有空閑車輛時(shí),對(duì)任務(wù)尋找一個(gè)車輛來作業(yè),此時(shí),用原來 的PI值乘以車輛匹配依賴度來衡量。
以上實(shí)施例僅用以說明而非限制本發(fā)明的技術(shù)方案。如,實(shí)施例中的車輛可以是其他運(yùn) 輸設(shè)備,如船只、飛機(jī);或者非運(yùn)輸設(shè)備,如零部件或者其他配件。不脫離本發(fā)明精神和范 圍的任何修改或局部替換,均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
權(quán)利要求
1、一種運(yùn)輸適時(shí)調(diào)度方法,用于根據(jù)動(dòng)態(tài)事件觸發(fā)、調(diào)整現(xiàn)場(chǎng)運(yùn)輸調(diào)度作業(yè);其特征在于,該方法包括如下步驟步驟1、模型初始化,讀入基礎(chǔ)數(shù)據(jù)及參數(shù),測(cè)試接口;若發(fā)現(xiàn)錯(cuò)誤,做出提示并退出;步驟2、計(jì)算車輛、任務(wù)匹配度;步驟3、經(jīng)調(diào)度確認(rèn)后,模型計(jì)算初始指令,保存至數(shù)據(jù)庫,做新指令標(biāo)記;步驟4、無匹配指令的任務(wù)和車輛進(jìn)入各自就緒列表;步驟5、掃描數(shù)據(jù)庫及緩沖池,按隊(duì)列取出當(dāng)前第一個(gè)未處理事件;步驟6、事件預(yù)處理;車輛狀態(tài)轉(zhuǎn)換包括狀態(tài)A——到達(dá)裝點(diǎn)、狀態(tài)B——離開裝點(diǎn)、狀態(tài)C——到達(dá)卸點(diǎn)、狀態(tài)D——離開卸點(diǎn);事件包括車輛堵車事件、午飯啟畢事件、車輛拋錨或修復(fù)事件、到達(dá)卸點(diǎn)事件、任務(wù)新增事件、任務(wù)量變化事件、取消任務(wù)事件、任務(wù)卸點(diǎn)改變事件以及天氣變化事件;步驟61、如果事件為池事件,則直接返回已經(jīng)過預(yù)處理的該事件;步驟62、根據(jù)車輛狀態(tài)序列以及人工確定,判斷事件是否為可響應(yīng)事件對(duì)于車輛堵車事件,如果當(dāng)前處于狀態(tài)C、或狀態(tài)D,則堵車信息不合法,移至不響應(yīng)事件表,忽略該事件并把警告信息保存至數(shù)據(jù)庫,標(biāo)記為新信息,返回空;否則,車輛狀態(tài)為狀態(tài)A、或狀態(tài)B,檢查該車和該事件處理設(shè)定,如不是可響應(yīng),則標(biāo)記后,返回空;否則,轉(zhuǎn)步驟63;對(duì)于午飯啟畢事件,檢查合法性,包括午飯開始是第一次出現(xiàn),且符合時(shí)間窗口,午飯結(jié)束是午飯開始后第一次出現(xiàn);如不合法,移至不響應(yīng)事件表,忽略該事件并把警告信息報(bào)錯(cuò)至數(shù)據(jù)庫,標(biāo)記為新信息,返回空;否則,檢查事件處理設(shè)定,如不是可響應(yīng),則標(biāo)記后,返回空,否則,轉(zhuǎn)步驟63;對(duì)于車輛拋錨或修復(fù)事件,檢查合法性,包括當(dāng)前狀態(tài)是否為正?;蚬收?,如不合法,移至不響應(yīng)事件表,忽略該事件并把警告信息報(bào)錯(cuò)至數(shù)據(jù)庫,標(biāo)記為新信息,返回空;否則,檢查事件處理設(shè)定,如不是可響應(yīng),則標(biāo)記后,返回空;否則,轉(zhuǎn)步驟63;對(duì)于到達(dá)裝點(diǎn)事件,如當(dāng)前非離開卸點(diǎn)狀態(tài),事件不合法,對(duì)于離開裝點(diǎn)事件,如當(dāng)前非離開卸點(diǎn)或到達(dá)裝點(diǎn),事件不合法,均移至不響應(yīng)事件表,忽略該事件并把警告信息保存至數(shù)據(jù)庫,標(biāo)記為新信息,返回空;否則,檢查事件處理設(shè)定,如不是可響應(yīng),則標(biāo)記后,返回空;否則,轉(zhuǎn)步驟63;對(duì)于到達(dá)卸點(diǎn)事件,如當(dāng)前非離開裝點(diǎn)狀態(tài),事件不合法,對(duì)于離開卸點(diǎn)事件,如當(dāng)前非離開裝點(diǎn)或到達(dá)卸點(diǎn),事件不合法,均移至不響應(yīng)事件表,忽略該事件并把警告信息保存至數(shù)據(jù)庫,標(biāo)記為新信息,返回空;否則,檢查事件處理設(shè)定,如不是可響應(yīng),則標(biāo)記后,返回空;否則,轉(zhuǎn)步驟63;對(duì)于任務(wù)新增事件、任務(wù)量變化事件、取消任務(wù)事件、任務(wù)卸點(diǎn)改變事件以及天氣變化事件,檢查事件處理設(shè)定,如不是可響應(yīng),則標(biāo)記后,返回空;否則,轉(zhuǎn)步驟63;步驟63、首先通過車輛、任務(wù)或事件各自設(shè)定,判斷事件是進(jìn)入緩沖池還是立即響應(yīng);如為前者,標(biāo)記后進(jìn)入緩沖池,然后檢查池是否慢,如不滿,返回;否則,返回緩沖池;如為后者,返回該事件;步驟7、若步驟6的返回值為空,則直接返回至步驟5;若返回值為事件,直接進(jìn)入步驟8;若返回值為緩沖池,設(shè)置池事件啟動(dòng)標(biāo)志,取其第一個(gè)事件,進(jìn)入步驟8;步驟8、若收到車輛堵車信息,進(jìn)入步驟9;若收到車輛到裝點(diǎn)或離開裝點(diǎn)信息,進(jìn)入步驟10;若收到車輛到卸點(diǎn)或離開卸點(diǎn)信息,進(jìn)入步驟11;若收到開始午飯信息或拋錨信息,進(jìn)入步驟12;若收到午飯結(jié)束信息或車輛修復(fù)信息,進(jìn)入步驟13;若收到新任務(wù)信息,進(jìn)入步驟14;若收到取消任務(wù)信息,進(jìn)入步驟15;若收到任務(wù)量調(diào)整信息,進(jìn)入步驟16;若收到任務(wù)卸點(diǎn)改變信息,進(jìn)入步驟17;若收到天氣變化信息,進(jìn)入步驟18;若收到退出程序事件,進(jìn)入步驟19;步驟9、根據(jù)車輛選車函數(shù),在所有任務(wù)或僅就緒任務(wù)列表中選擇最佳任務(wù),然后進(jìn)入指令審批處理步驟,如果返回指令標(biāo)記為直發(fā)或滿意或調(diào)整,則保存該返回指令到數(shù)據(jù)庫待發(fā),同時(shí)更新任務(wù)匹配度;如果返回指令標(biāo)記為取消,車輛進(jìn)入就緒列表,轉(zhuǎn)入步驟20;指令審批處理步驟步驟A1、根據(jù)計(jì)算該指令的事件類型,通過參數(shù)設(shè)定檢查是否可直接下發(fā),如是,標(biāo)記“直發(fā)”后返回該指令;否則轉(zhuǎn)步驟A2;步驟A2、詢問用戶是否滿意該計(jì)劃,如是,標(biāo)記“滿意”后返回該指令;否則轉(zhuǎn)步驟A3;步驟A3、詢問是否調(diào)整該指令,如非,標(biāo)記“取消”后返回該指令,否則返回調(diào)整后的指令,標(biāo)記為“新調(diào)整”;步驟10、更新車輛實(shí)時(shí)狀態(tài);根據(jù)到裝點(diǎn)或離開裝點(diǎn)類型更新任務(wù)的等待服務(wù)車輛列表,如果為離開裝點(diǎn)事件,同時(shí)更新任務(wù)余量和任務(wù)的開始服務(wù)時(shí)間標(biāo)記,如果當(dāng)前等待隊(duì)列為0,根據(jù)任務(wù)選車函數(shù)在就緒車輛中選擇最佳車輛,然后進(jìn)入指令審批處理步驟,如果返回指令標(biāo)記為直發(fā)或滿意或調(diào)整,則保存該返回指令到數(shù)據(jù)庫待發(fā),同時(shí)更新車輛匹配度;如果返回指令為取消,則任務(wù)進(jìn)入就緒任務(wù)列表;轉(zhuǎn)入步驟20;步驟11、更新車輛實(shí)時(shí)狀態(tài);如果事件為到卸點(diǎn)且無請(qǐng)求提前期,直接轉(zhuǎn)步驟20;否則,更新車輛當(dāng)前結(jié)束時(shí)間,根據(jù)車輛選車函數(shù),在所有任務(wù)中選擇最佳任務(wù),然后進(jìn)入指令審批處理步驟,如果返回指令標(biāo)記為直發(fā)或滿意或調(diào)整,則保存該返回指令到數(shù)據(jù)庫待發(fā),同時(shí)更新任務(wù)匹配度;如果返回指令標(biāo)記為取消,車輛進(jìn)入就緒列表;轉(zhuǎn)入步驟20;步驟12、更新車輛午飯或可用否的實(shí)時(shí)狀態(tài),轉(zhuǎn)入步驟20;步驟13、更新車輛午飯或正常的實(shí)時(shí)狀態(tài),如果車輛處于C或D狀態(tài),轉(zhuǎn)入20;否則根據(jù)當(dāng)前位置在所有任務(wù)中選擇最佳任務(wù),然后進(jìn)入指令審批處理步驟,如果返回指令標(biāo)記為直發(fā)或滿意或調(diào)整,則保存該返回指令到數(shù)據(jù)庫待發(fā),同時(shí)更新任務(wù)匹配度;如果返回指令標(biāo)記為取消,車輛進(jìn)入就緒列表;轉(zhuǎn)入步驟20;步驟14、更新任務(wù)列表,更新匹配度,根據(jù)任務(wù)選車函數(shù)在所有車輛中或僅就緒車輛選擇最佳車輛,然后進(jìn)入指令審批處理步驟,如果返回指令標(biāo)記為直發(fā)或滿意或調(diào)整,則保存該返回指令到數(shù)據(jù)庫待發(fā);如果返回指令標(biāo)記為取消,任務(wù)進(jìn)入就緒列表;轉(zhuǎn)入步驟20;步驟15、更新任務(wù)列表,更新匹配度,檢索該任務(wù)排隊(duì)車輛和分配該任務(wù)指令車輛,依次為車輛虛擬離開卸點(diǎn)事件進(jìn)入臨時(shí)池,設(shè)置臨時(shí)池標(biāo)志,直接轉(zhuǎn)入步驟20;步驟16、更新任務(wù)列表,更新匹配度,當(dāng)任務(wù)量減少時(shí),檢索該任務(wù)排隊(duì)車輛和分配該任務(wù)指令車輛,按運(yùn)量計(jì)算后對(duì)多余車輛虛擬離開卸點(diǎn)事件進(jìn)入臨時(shí)池,設(shè)置臨時(shí)池標(biāo)志,直接轉(zhuǎn)入步驟20;步驟17、更新任務(wù)表,更新匹配度,轉(zhuǎn)入步驟20;步驟18、更新任務(wù)表狀態(tài),對(duì)于變?yōu)橥V範(fàn)顟B(tài)的任務(wù),檢索該任務(wù)排隊(duì)車輛和分配該任務(wù)指令車輛,依次為車輛虛擬離開卸點(diǎn)事件進(jìn)入臨時(shí)池,設(shè)置臨時(shí)池標(biāo)志,直接轉(zhuǎn)入20;步驟19、保存后退出程序;步驟20、主要處理池事件;檢索臨時(shí)池標(biāo)志,如為真則取出臨時(shí)池下一個(gè)標(biāo)志,轉(zhuǎn)步驟8;否則,更新主池,如果轉(zhuǎn)入前處理的事件是主池池事件且主池不為空,則繼續(xù)處理池事件,取主池中下一個(gè)事件,轉(zhuǎn)步驟8;否則轉(zhuǎn)步驟5。
2、根據(jù)權(quán)利要求1所述的運(yùn)輸適時(shí)調(diào)度方法,其特征在于:所述主池用來儲(chǔ)存事件的緩沖池,池的長度決定調(diào)度的周期。
3、 根據(jù)權(quán)利要求1所述的運(yùn)輸適時(shí)調(diào)度方法,其特征在于所述臨時(shí)池用來儲(chǔ)存因某個(gè)事件 而產(chǎn)生的一系列虛擬事件,池的大小表示觸發(fā)的虛擬事件的數(shù)量,該池事件一經(jīng)填充立即 進(jìn)行算法處理直至池空。
4、 根據(jù)權(quán)利要求1所述的運(yùn)輸適時(shí)調(diào)度方法,其特征在于所述步驟20中取主池中下一個(gè) 事件后,取后主池事件為空設(shè)置主池空標(biāo)志。
5、 根據(jù)權(quán)利要求1或2或3或4所述的運(yùn)輸適時(shí)調(diào)度方法,其特征在于所述車輛被船只、飛機(jī)、零部件所替代。
6、 根據(jù)權(quán)利要求1或2或3或4所述的運(yùn)輸適時(shí)調(diào)度方法,其特征在于所述車輛包括魚雷車。
全文摘要
本發(fā)明揭示了一種運(yùn)輸適時(shí)調(diào)度方法,用于根據(jù)動(dòng)態(tài)事件觸發(fā)、調(diào)整現(xiàn)場(chǎng)運(yùn)輸調(diào)度作業(yè);該方法根據(jù)事件的信息對(duì)事件做相應(yīng)處理。本發(fā)明基于事件驅(qū)動(dòng)的動(dòng)態(tài)車輛優(yōu)化調(diào)度,適時(shí)根據(jù)運(yùn)輸資源使用情況和未完成任務(wù),提高運(yùn)輸資源使用效率。
文檔編號(hào)G06Q10/00GK101620693SQ20081003999
公開日2010年1月6日 申請(qǐng)日期2008年7月1日 優(yōu)先權(quán)日2008年7月1日
發(fā)明者燕 盧, 吳守倉, 羅一橋, 焰 金 申請(qǐng)人:中冶寶鋼技術(shù)服務(wù)有限公司