一種軌道交通列流圖自動(dòng)編制方法
【專利摘要】本發(fā)明公開了一種軌道交通列流圖自動(dòng)編制方法,與現(xiàn)有技術(shù)相比,本發(fā)明針對(duì)長(zhǎng)期在傳統(tǒng)列流圖編制方面存在的不足,系統(tǒng)地提出了軌道交通列流圖自動(dòng)編制理論及方法,列流線布局緊湊整潔,節(jié)約了圖紙空間,充分利用計(jì)算機(jī)技術(shù),利用所提出的軌道交通列流圖自動(dòng)編制方法,實(shí)現(xiàn)列流圖的自動(dòng)編制。
【專利說(shuō)明】一種軌道交通列流圖自動(dòng)編制方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種軌道交通列流圖自動(dòng)編制理論及方法。
【背景技術(shù)】
[0002]列流圖編制是軌道交通運(yùn)輸規(guī)劃與組織的重要工作,列流圖作為列車編組計(jì)劃及開行方案的直觀圖形表示,為軌道交通擴(kuò)建技術(shù)設(shè)備和配置機(jī)車車輛裝備等決策提供科學(xué)依據(jù),對(duì)車站技術(shù)作業(yè)、作業(yè)量,以及列車運(yùn)行圖等具有重要影響。經(jīng)文獻(xiàn)查閱,國(guó)外尚未見(jiàn)到此領(lǐng)域的研究成果,目前國(guó)內(nèi)僅有鐵路列流圖若干篇文獻(xiàn)可查,對(duì)軌道交通此領(lǐng)域的研究成果未見(jiàn)。目前編制工作主要靠設(shè)計(jì)人員手工編制,設(shè)計(jì)人員勞動(dòng)強(qiáng)度較大、修改困難,缺乏統(tǒng)一規(guī)范且不美觀。特別是當(dāng)路網(wǎng)復(fù)雜、不同軌道交通方式換乘、列流數(shù)量多時(shí),手工編制的工作量很大。國(guó)內(nèi)可查的鐵路列流圖編制軟件很少,雖然個(gè)別軟件已能夠替代部分手工設(shè)計(jì),但總體來(lái)看在自動(dòng)化方面做的不夠徹底,仍然存在較多的手工操作,對(duì)編制人員具有較大的工作量,特別是核心部分——列流平行鋪畫方面仍然存在較多問(wèn)題,且缺乏統(tǒng)一規(guī)范。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的就在于為了解決上述問(wèn)題而提供一種軌道交通列流圖自動(dòng)編制方法。
[0004]本發(fā)明通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn)上述目的:
[0005]本發(fā)明包括列流徑路頂點(diǎn)搜索算法和列流平行鋪畫算法。
[0006]所述列流徑路頂點(diǎn)搜索算法包括無(wú)閉合鏈情況和有閉合鏈情況,所述無(wú)閉合鏈情況的列流徑路頂點(diǎn)搜索算法包括以下步驟:
[0007](I)設(shè)初始頂點(diǎn)集合(除起點(diǎn)外)均未標(biāo)號(hào),有D[i,l] =0,D[s,l] = l,D[i,2]=s ;將s加入B ;
[0008](2)依次取出B中頂點(diǎn),設(shè)當(dāng)前頂點(diǎn)為j ;根據(jù)D[i,I]掃描出未標(biāo)號(hào)的頂點(diǎn)i,并依次檢驗(yàn)A[i, j],若A[i, j] = I,令D[i, I] = l、D[i, 2] = j ;判斷t = i ?若相等,表示終點(diǎn)t也已標(biāo)號(hào),轉(zhuǎn)(4);若不等,將i加入NB;
[0009](3) B掃描完后,將下一輪的起點(diǎn)集合NB賦給B,轉(zhuǎn)步驟⑵;
[0010](4)由t—…一D[i,2]—…一s之間的關(guān)聯(lián)尋找頂點(diǎn),將其反順序重排,得到列流徑路頂點(diǎn)集合TP ;
[0011]所述有閉合鏈情況的列流徑路頂點(diǎn)搜索算法有以下兩種:其一:對(duì)路網(wǎng)頂點(diǎn)的編號(hào)順序進(jìn)行“人工干預(yù)”,來(lái)優(yōu)先選擇指定的路徑;其二:按照無(wú)閉合鏈?zhǔn)紫壬闪辛鲝铰?,若個(gè)別徑路不滿足人工指定要求,再人工調(diào)整即可;
[0012]所述列流平行鋪畫算法包括列流經(jīng)由頂點(diǎn)的位置判定和列流平行鋪畫算法,所述列流經(jīng)由頂點(diǎn)的位置判定:根據(jù)軌道線路“左側(cè)行車”規(guī)則,列流徑路上連續(xù)兩個(gè)頂點(diǎn)的走向,可分為4種情形,記為F, F = I表示從上至下、F = 2表示從下至上、F = 3表示從右至左、F = 4表示從左至右;分析列流在車站的發(fā)、到、通過(guò)情形,以車站矩形框定義了 12種位置;其中位置9~12為以下4種列流走向時(shí)需要考慮:從位置2至位置5、從位置8至位置
3、從位置6至位置1、從位置4至位置7。
[0013]列流平行鋪畫算法基本思想:列流鋪畫時(shí),若走向有改變,則列流包含多條線段;列流向外平移,其實(shí)就是對(duì)各條線段的檢查并向外平移;
[0014]在描述列流平行鋪畫算法之前,作如下定義:
[0015]定義“外點(diǎn)”表示列流途經(jīng)頂點(diǎn)(即車站)時(shí)與矩形框的交點(diǎn);“內(nèi)點(diǎn)”表示列流走向發(fā)生變化的轉(zhuǎn)折點(diǎn);
[0016]定義三維動(dòng)態(tài)數(shù)組X [i,j,k],用于記錄頂點(diǎn)i的位置j的外移單位k處存在列流;沿著列流徑路各頂點(diǎn)間的軌道線路依次向外檢查,若該位置處無(wú)列流,即有空隙存在,則鋪畫列流;若該位置已有列流,則向外平移直至所在位置無(wú)列流,方可鋪畫列流;
[0017]定義PD表示列流平行布線距離,OU表示列流外移單位,列流圖頂點(diǎn)i矩形框的中心坐標(biāo)記為(Xi, Yi);
[0018]外點(diǎn)坐標(biāo)計(jì)算如下:
[0019]
【權(quán)利要求】
1.一種軌道交通列流圖自動(dòng)編制方法,其特征在于:包括列流徑路頂點(diǎn)搜索算法和列流平行鋪畫算法; 所述列流徑路頂點(diǎn)搜索算法包括無(wú)閉合鏈情況和有閉合鏈情況,所述無(wú)閉合鏈情況的列流徑路頂點(diǎn)搜索算法包括以下步驟: (1)設(shè)初始頂點(diǎn)集合(除起點(diǎn)外)均未標(biāo)號(hào),有D[i,I] = 0,D[s, I] = l,D[i,2] = s ;將s加入B ; (2)依次取出B中頂點(diǎn),設(shè)當(dāng)前頂點(diǎn)為j;根據(jù)D[i,l]掃描出未標(biāo)號(hào)的頂點(diǎn)i,并依次檢驗(yàn)A[i, j],若A[i, j] = I,令D[i,l] = l、D[i,2] = j ;判斷t = i ?若相等,表示終點(diǎn)t也已標(biāo)號(hào),轉(zhuǎn)⑷;若不等,將i加入NB ; (3)B掃描完后,將下一輪的起點(diǎn)集合NB賦給B,轉(zhuǎn)步驟(2); (4)由t—----D[i, 2] —----s之間的關(guān)聯(lián)尋找頂點(diǎn),將其反順序重排,得到列流徑路頂點(diǎn)集合TP ; 所述有閉合鏈情況的列流徑路頂點(diǎn)搜索算法有以下兩種:其一:對(duì)路網(wǎng)頂點(diǎn)的編號(hào)順序進(jìn)行“人工干預(yù)”,來(lái)優(yōu)先選擇指定的路徑;其二:按照無(wú)閉合鏈?zhǔn)紫壬闪辛鲝铰?,若個(gè)別徑路不滿足人工指定要求,再人工調(diào)整即可; 所述列流平行鋪畫算法包括列流經(jīng)由頂點(diǎn)的位置判定和列流平行鋪畫算法,所述列流經(jīng)由頂點(diǎn)的位置判定:根據(jù)軌道線路“左側(cè)行車”規(guī)則,列流徑路上連續(xù)兩個(gè)頂點(diǎn)的走向,可分為4種情形,記為F, F = I表示從上至下、F = 2表示從下至上、F = 3表示從右至左、F=4表示從左至右;分析列流在車站的發(fā)、到、通過(guò)情形,以車站矩形框定義了 12種位置;其中位置9~12為以下4種列流走向時(shí)需要考慮:從位置2至位置5、從位置8至位置3、從位置6至位置1、從位置4至位置7 ; 列流平行鋪畫算法基本思想:列流鋪畫時(shí),若走向有改變,則列流包含多條線段;列流向外平移,其實(shí)就是對(duì)各條線段的檢查并向外平移; 在描述列流平行鋪畫算法之前,作如下定義: 定義“外點(diǎn)”表示列流途經(jīng)頂點(diǎn)(即車站)時(shí)與矩形框的交點(diǎn);“內(nèi)點(diǎn)”表示列流走向發(fā)生變化的轉(zhuǎn)折點(diǎn); 定義三維動(dòng)態(tài)數(shù)組X[i,j,k],用于記錄頂點(diǎn)i的位置j的外移單位k處存在列流;沿著列流徑路各頂點(diǎn)間的軌道線路依次向外檢查,若該位置處無(wú)列流,即有空隙存在,則鋪畫列流;若該位置已有列流,則向外平移直至所在位置無(wú)列流,方可鋪畫列流; 定義H)表示列流平行布線距離,OU表示列流外移單位,列流圖頂點(diǎn)i矩形框的中心坐標(biāo)記為(Xi, Yi); 外點(diǎn)坐標(biāo)計(jì)算如下:
定義PF表示列流前一條線段的F值,檢查F和PF的二者關(guān)系,判斷列流走向有沒(méi)有發(fā)生改變,當(dāng)F古PF時(shí),要考慮內(nèi)點(diǎn),內(nèi)點(diǎn)坐標(biāo)計(jì)算如下:
X^=X-PD*OU,Y^=Y1+PD*OUPF = A,F = I公式(2) 列流是由若干條線段(I條或多條)組成,其中無(wú)內(nèi)點(diǎn)時(shí)為I條線段、有內(nèi)點(diǎn)時(shí)為多條線段;列流平行鋪畫,關(guān)鍵就是要確定鄰接點(diǎn)的坐標(biāo); 定義鄰接點(diǎn)表示列流從起點(diǎn)到終點(diǎn)各條線段的端點(diǎn),鄰接點(diǎn)包含外點(diǎn)或內(nèi)點(diǎn); 定義二維動(dòng)態(tài)數(shù)組ΡηΧ2記錄單一走向的線段組的鄰接點(diǎn)信息,P[i,O]記錄鄰接點(diǎn)所在的頂點(diǎn)的編號(hào);P[i,l]記錄鄰接點(diǎn)所在的頂點(diǎn)的位置;定義二維動(dòng)態(tài)數(shù)組LnX 2記錄列流上所有鄰接點(diǎn)信息,LnX2可看作各走向PnX2的綜合;L[i,0]記錄鄰接點(diǎn)所在的頂點(diǎn)的編號(hào)、L[i,l]記錄鄰接點(diǎn)所在的頂點(diǎn)的位置、L[i,2]記錄鄰接點(diǎn)的橫坐標(biāo);L[i,3]記錄鄰接點(diǎn)的縱坐標(biāo); 所述列流平行鋪畫算法步驟如下: (A)掃描列流表,取出當(dāng)前列流記錄,該列流起點(diǎn)記為S、列流終點(diǎn)記為t,采用列流徑路頂點(diǎn)搜索算法,獲得徑路頂點(diǎn)集合TP ; (B)掃描TP,由當(dāng)前頂點(diǎn)與前一頂點(diǎn)的坐標(biāo)計(jì)算得到F,由此得到前一頂點(diǎn)的出發(fā)位置和當(dāng)前頂點(diǎn)的到達(dá)位置;若前一頂點(diǎn)為s(即初始線段),轉(zhuǎn)(E);否則,判斷F = PF?若是,列流走向不變,轉(zhuǎn)(E);否則,列流走向改變,轉(zhuǎn)(C); (C)掃描列流走向改變前線段組的所有鄰接點(diǎn)信息PnX2,依次檢查鄰接點(diǎn)的X[i,j,k],判斷是否有列流?若有,則OU = 0U+1,返回(C);若無(wú),則得出0U,轉(zhuǎn)⑶; (D)若該線段組不是列流的初始走向,將該線段組的起點(diǎn)(即內(nèi)點(diǎn))信息加入LnX2;添加OU至該線段組鄰接點(diǎn)的X[i,j, k],并將該線段組除了終點(diǎn)以外的其它鄰接點(diǎn)信息加入 LnX2 ;清空 PnX2 和 0U,轉(zhuǎn)(E); (E)將列流新走向的兩鄰接點(diǎn)信息加入PnX2,即所在的頂點(diǎn)的編號(hào)加入P[i,0]、兩鄰接點(diǎn)所在的頂點(diǎn)的位置加入P[i,I] ^PF = F ;檢查TP是否掃描完,若否,轉(zhuǎn)⑶;若是,轉(zhuǎn)(F); (F)對(duì)列流的最終走向線段組再次處理,掃描其所有鄰接點(diǎn)信息PnX2,依次檢查鄰接點(diǎn)的X[i,j,k],判斷是否有列流?若有,則OU = 0U+1,返回(F);若無(wú),則得出OU ;若該線段組不是列流的初始走向,將該線段組的起點(diǎn)(即內(nèi)點(diǎn))信息加入LnX2;添加OU至該線段組鄰接點(diǎn)的X[i,j,k],并將該線段組鄰接點(diǎn)信息加入LnX 2 ;轉(zhuǎn)(G); (G)根據(jù)LnX2坐標(biāo)值鋪畫當(dāng)前列流;在列流起點(diǎn)及終點(diǎn)添加列流數(shù)量標(biāo)識(shí),并在終點(diǎn)繪制箭頭;列流表是否掃描完?若是,算法結(jié)束;若無(wú),當(dāng)前記錄后移I位,轉(zhuǎn)(A)。
【文檔編號(hào)】G06T11/20GK104200501SQ201410417641
【公開日】2014年12月10日 申請(qǐng)日期:2014年8月25日 優(yōu)先權(quán)日:2014年8月25日
【發(fā)明者】程學(xué)慶 申請(qǐng)人:程學(xué)慶