本發(fā)明屬于人工智能技術領域,具體涉及一種基于回答集程序的調機路徑規(guī)劃方法。
背景技術:
傳統(tǒng)鐵路技術站作業(yè)計劃的編制以人工為主,作業(yè)勞動強度大,容易出現計劃編制不及時、計劃質量不高等問題。調機運用計劃是技術站作業(yè)計劃的關鍵內容之一,主要是確定到達列車的解體次序、出發(fā)列車的編組次序、調機的作業(yè)時間以及承擔該作業(yè)的調機移動路線,將直接影響鐵路貨物運輸的周轉和整個路網的通過能力。隨著信息化建設的發(fā)展,鐵路技術站作業(yè)計劃的編制由傳統(tǒng)的手工作業(yè)進入了計算機輔助作業(yè)階段,并逐漸向智能化調度作業(yè)階段發(fā)展。如何實現調機運用計劃的自動編制是當前研究的重點。
目前,國內外處理調機運用計劃編制問題的方法主要包括:(1)數學優(yōu)化方法,如動態(tài)規(guī)劃、整數規(guī)劃和混合整數規(guī)劃法、拉格朗日松弛算法等。該類方法的優(yōu)點是具有嚴格的數學模型,但在編制調機運用計劃時通常要處理一些半結構化和非結構化的信息,這些信息來自編制人員手工作業(yè)時累積的豐富經驗,而這些經驗則難以從數學模型的角度嚴格描述;(2)啟發(fā)式算法,如局部鄰域搜索算法、迭代搜索算法等。該類算法往往需要仔細的設計一個合理的啟發(fā)函數,才能在較快的時間內成功避免局部最優(yōu),得到最優(yōu)解。但目前此類算法的設計缺乏統(tǒng)一、完整的理論體系;(3)智能優(yōu)化類算法,如遺傳算法、模擬退火算法、禁忌搜索算法等。此類算法是從隨機的可行初始解出發(fā),采用迭代改進的策略去逼近問題的最優(yōu)解,從理論上講是一種全局尋優(yōu)的計算方法,但通常計算量比較大,所需時間較長;(4)強化學習算法,如q-learning、dyna算法等。此類算法需要接受外界反饋,并以此指導下一步行動,但各種事實反饋實際上還比較慢,獲得真實場景中的大量數據成本也很高。
技術實現要素:
本發(fā)明所要解決的是現有調機運用計劃編制的問題,提供一種基于回答集程序的調機路徑規(guī)劃方法。
為解決上述問題,本發(fā)明是通過以下技術方案實現的:
一種基于回答集程序的調機路徑規(guī)劃方法,包括如下步驟:
步驟1.對調車場內的軌道進行分類;
步驟2.對調車場內的車廂進行實例化抽象;
步驟3.將調車場內停放的車廂初始位置轉換成相對的網絡圖;該網絡圖中的節(jié)點代表軌道,邊代表通過調機可以從一條軌道移動到另一條軌道;
步驟4.將網絡圖轉換成規(guī)則集,并通過各種符合人工經驗的約束條件來得到路徑規(guī)劃方案;
步驟4.1.根據給定的定義謂詞以回答集程序規(guī)則形式給出網絡圖的節(jié)點及邊相互之間的推導關系,即
規(guī)則1.當存在一條邊開始于x時,可推斷出x是一個節(jié)點;
規(guī)則2.當存在一條邊結束于y時,可推斷出y是一個節(jié)點;
規(guī)則3.如果存在一條邊,調機會通過它的節(jié)點,那么這條邊會成為回答集的一部分;
規(guī)則4.在回答集中不可能有從同一個節(jié)點出發(fā)而在不同節(jié)點結束的兩條邊同時存在的情況;
規(guī)則5.在回答集中不可能有在同一個節(jié)點結束而從不同節(jié)點出發(fā)的兩條邊同時存在的情況;
規(guī)則6.當一條邊成為最短路徑的一部分時,調機一定會通過連接這條邊的兩個節(jié)點;
規(guī)則7.最終得到的最短路徑是必須通過指定的開始節(jié)點和結束節(jié)點的;
規(guī)則8.回答集中不可能存在一個節(jié)點,而調機并沒有經過該節(jié)點;
規(guī)則9.將網絡圖中調機所有可移動的路徑表示出來;
步驟4.2.將步驟4.1中的規(guī)則生成規(guī)則集,該規(guī)則集是回答集程序用來描述網絡圖所需要用到的原子集合;
步驟4.3.將步驟4.2中生成的規(guī)則集送入回答集程序的解決器中,用于實現規(guī)則的推理并得到路徑規(guī)劃方案。
上述基于回答集程序的調機路徑規(guī)劃方法,還進一步包括步驟5、利用隨機產生器來隨機生成與調車場軌道數目相對應的規(guī)則集,以應對現實場景中不斷擴增的調車場軌道數目,并生成最終的路徑規(guī)劃方案。
上述步驟1中,將軌道分為容納軌道和轉移軌道,其中容納軌道又進一步細分為直接軌道、間接軌道和集結軌道。
與現有技術相比,本發(fā)明使用基于邏輯程序的編碼方法結合隨機產生器來解決調機路徑規(guī)劃問題,其具有如下優(yōu)點:
1)有效性;能人工經驗可以有效的轉變成規(guī)則轉變成知識庫。
2)方便易用;只需在知識庫中規(guī)定目標和實現這些目標的現有條件,即只需要告訴系統(tǒng)做什么,至于如何執(zhí)行則由系統(tǒng)的控制部分來處理解決,運算速度快。
3)可擴展性;如有新的約束條件加入,無需改變系統(tǒng)模型,只需要往系統(tǒng)中加入新的規(guī)則即可,有較強的可擴展性。
附圖說明
圖1編組站典型布置圖。
圖2軌道的分類。
圖3實例圖。
圖4單個調機問題對用的網絡圖。
具體實施方式
下面通過一個具體實例對本發(fā)明進行進一步詳細說明。
一種基于回答集程序的調機路徑規(guī)劃方法,包括如下步驟:
步驟1、對調車場內的軌道進行分類。
編組站是我國鐵路網絡中的重要節(jié)點,在這里到達列車會被分散成零散的車輛,出發(fā)列車又會由零散的車輛重新組合到一起,其作業(yè)組織會直接影響鐵路貨物運輸的效率。典型的編組站布置如圖1所示,包括了到-解-集-編-發(fā)的作業(yè)技術過程,分別對應了到達場、駝峰、調車場、峰尾和出發(fā)場五個場景。
為了合理安排各列出發(fā)列車的編組順序將會涉及到調車場的軌道布置,就需要對涉及的軌道進行分類,如圖2所示:
(1.1)轉移軌道,它僅僅是為調機或車廂提供移動場所,在圖中用一個帶小黑點的直線表示。
(1.2)容納軌道,它的主要功能是用來停放和存儲車廂的,這個類型的軌道會占據調車場的大部分空間。容納軌道分為來源軌道和集結軌道,來源軌道停放了各個去向的車廂,集合軌道集結了去向相同的車廂。根據需要移動車廂的相對位置,來源軌道分為直接軌道和間接軌道。
假設,圖2中用灰色方框代表去往目的地a的車廂,用黑色方框代表去往目的地b的車廂,現在需要將去往目的地b的車廂進行編組作業(yè)集結成符合出發(fā)條件的列車,在軌道1上調機不能直接單獨移動去往目的地b的車廂,則被稱為間接軌道,軌道2中可以直接單獨移動去往目的地b的車廂,被稱為直接軌道。
步驟2、對調車場內的車廂實例化抽象。
假設有小規(guī)模的車廂已經解體停留在調車場如圖3所示,顏色各異的方框代表去向各不相同的車廂,四邊圓弧的方框表示調機。假設,灰色方框代表去往目的地a的車廂,用黑色方框代表去往目的地b的車廂,白色方框代表去往目的地c的車廂。所有車廂都連續(xù)性的停放在來源軌道而不是分散在任意軌道上,而且車廂移動必須通過調機來實現。
根據步驟1的軌道分類可知,軌道2稱為間接軌道,軌道3成為直接軌道,軌道4是集結軌道,現在要將去往目的地b的車廂即黑色方框代表的車廂聚集到集結軌道直到滿足出發(fā)條件出站。而調機移動間接軌道的車廂時,要注意還要將去往另一個目的地a的車廂即灰色方框代表的車廂移回到原來的位置。
步驟3、生成實例相對應的網絡圖。
將調車場中停放的車廂初始位置轉換成相對的網絡圖。圖4中,節(jié)點s表示調機的初始位置軌道,節(jié)點d表示直接軌道,節(jié)點b表示集結軌道,節(jié)點i1和i2都表示間接軌道且是同一條軌道,節(jié)點i2是節(jié)點i1的虛擬節(jié)點,是為了避免雙向路徑的存在,節(jié)點e表示過程結束,箭頭直線表示調機可以在這兩軌道之間移動。
步驟4、生成規(guī)則集。
定義的網絡圖由一系列的節(jié)點和邊組成,節(jié)點代表每個軌道,邊是指通過調機可以從一條軌道移動到另一條軌道。
為使用回答集程序進行編碼要使用以下定義:
l0or…orlk:-lk+1,…,lm,notlm+1,…,notln
其中,li是命題語言l下的一個文字,k≥0,m≥k,n≥m。
規(guī)則解釋:令r為形如上述中的規(guī)則,head(r)=l0表示規(guī)則r的頭部,并且body(r)={l1,…,lm,notlm+1,…,notln}表示規(guī)則r的體部,atoms(r)={li|0≤i≤n}表示規(guī)則r中的所有原子集合,pos(r)={li|k+1≤i≤m}表示r中的正體部原子集合,稱為規(guī)則體部的正文字,neg(r)={li|m+1≤i≤n}表示r中體部帶not的原子集合,稱為規(guī)則體部的負文字。
于是我們就可以將規(guī)則寫成head:pos,notneg.如果:
(1)
(2)
(3)
基于圖4的網絡圖,根據表1中定義謂詞以回答集程序規(guī)則形式給出該網絡圖的節(jié)點及邊相互之間的推導關系,如下:
表1asp程序謂詞及含義
規(guī)則1node(x):-arc(x,y).
由規(guī)則1可知節(jié)點是來源于邊的,當存在一條邊開始于x時,可推斷出x是一個節(jié)點。
規(guī)則2node(y):-arc(x,y).
規(guī)則2類似規(guī)則1。由規(guī)則2可知節(jié)點是來源于邊的,當存在一條邊結束于y時,可推斷出y是一個節(jié)點。
規(guī)則3in(x,y)v~in(x,y):-arc(x,y),reached(x).
由規(guī)則3可知如果存在一條邊,調機會通過它的節(jié)點,那么這條邊可能會成為回答集的一部分。因為存在從相同的節(jié)點出發(fā)的多條邊的情況,而只有其中一條會成為最短路徑的一部分。
規(guī)則4:-in(x,y),in(x1,y),x?。絰1.
由規(guī)則4可知在回答集中不可能有從同一個節(jié)點出發(fā)而在不同節(jié)點結束的兩條邊同時存在的情況。
規(guī)則5:-in(x,y),in(x,y1),y?。統(tǒng)1.
規(guī)則5類似規(guī)則4,但是將結束節(jié)點代替了開始節(jié)點。由規(guī)則5可知在回答集中不可能有在同一個節(jié)點結束而從不同節(jié)點出發(fā)的兩條邊同時存在的情況.
規(guī)則6reached(y):-in(x,y).
由規(guī)則6可知當一條邊成為最短路徑的一部分時,調機一定會通過連接這條邊的兩個節(jié)點。
規(guī)則7reached(x):-start(x).
規(guī)則7可知最終得到的最短路徑是必須通過指定的開始節(jié)點和結束節(jié)點。
規(guī)則8:-node(x),notreached(x).
規(guī)則8可以被理解為回答集中不可能存在一個節(jié)點而調機并沒有經過該節(jié)點,也是為了確保網絡圖中每個節(jié)點都被調機遍歷一遍。規(guī)則8就是適用于處理開始節(jié)點和結束節(jié)點這兩個特殊的節(jié)點,這是必要的規(guī)則。
基于圖4的網絡圖,調機所有可以移動的路徑表示如下:
規(guī)則9arc(x,y):-start(x),a1(y).
規(guī)則10arc(x,y):-start(x),f2(y).
規(guī)則11arc(x,y):-a1(x),f2(y).
規(guī)則12arc(x,y):-f2(x),f3(y).
規(guī)則13arc(x,y):-a1(x),f3(y).
規(guī)則14arc(x,y):-a2(x),end(y).
規(guī)則9-14是將調機所有可以移動的路徑表示出來。當網絡圖中所包含的節(jié)點個數不同時,用于描述調機所有可以移動的路徑的規(guī)則數量也會隨之不同。
步驟5、隨機生成器。
為模擬現實場景中不同調車場擁有不同間接軌道數目的場景,開發(fā)了一個隨機生成器。輸入間接軌道的數量,會根據圖3的網絡圖有規(guī)律的添加新的節(jié)點和邊,進而自動產生新的規(guī)則集。
步驟6、輸出規(guī)劃結果。
實現上述方法的基于回答集程序的調機路徑規(guī)劃系統(tǒng),包括如下模塊:
編組站布置模型,依次包括到達場、駝峰、調車場、峰尾和出發(fā)場;
將調車場中的軌道進行分類,根據軌道所起的作用分為轉移軌道和容納軌道。容納軌道又可分為來源軌道和集結軌道,來源軌道停放了各個去向的車廂,集合軌道集結了去向相同的車廂。根據所需要移動車廂的相對位置,來源軌道分為直接軌道和間接軌道;
將調機和車廂所在位置對應的軌道類型轉化成網絡圖,不同的軌道類型用帶不同字母的節(jié)點表示,帶箭頭的實線表示兩軌道間存在可移動的路徑;
規(guī)則集,是回答集程序用來描述網絡圖所需要用到的原子集合;
隨機產生器,能隨機輸入軌道數目生成相對應的編碼規(guī)則;
解決器,用于實現規(guī)則的推理得到路徑規(guī)劃答案。
本發(fā)明針對單臺編組調機的路徑移動編排,給出了回答集程序結合隨機產生器的方法。首先將典型編組站中調車場的軌道進行類型分類,有容納軌道和轉移軌道兩大類,或再將容納軌道細分為直接軌道、間接軌道和集結軌道,接著將實例圖中所停放車廂的位置按軌道類型轉換成網絡圖,然后將網絡圖轉換成規(guī)則集通過各種符合人工經驗的約束條件來得到路徑規(guī)劃的方案,且還需要再利用隨機產生器來隨機生成與調車場軌道數目相對應的規(guī)則集,以應對現實場景中不斷擴增的調車場軌道數目。本發(fā)明是一種理論和建模語言的結合對調機移動的路徑進行規(guī)劃的技術,利用隨機產生器生成與軌道數目相對應的程序編碼,最終自動的生成規(guī)劃結果。