乘車座位號的延時分配方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于統(tǒng)籌規(guī)劃領(lǐng)域中乘車座位分配技術(shù),具體是指座位號的延時分配方法。
【背景技術(shù)】
[0002]隨著鐵路運(yùn)營的不斷發(fā)展,營運(yùn)部門在乘客購買車票時需要盡可能滿足乘客對座位(或鋪位)的需求,購票時即確定座位號(或鋪位號)的分配方案,限制了座位或鋪位的使用效率,不能滿足乘客日益增長的乘車舒適度需求。在無座車票與有座車票價格一致的情況下,為構(gòu)建公平、和諧的乘車環(huán)境,應(yīng)當(dāng)盡可能多的滿足乘客對座位(或鋪位)的需求。因此,在運(yùn)力不變的情況下,提高座位(或鋪位)的使用效率具有重要的應(yīng)用價值。
[0003]目前,在購買車票時,乘客即可確定乘車時的座位號(或鋪位號)。隨著信息化浪潮的推進(jìn),車票的預(yù)售期大大提前,使用二代居民身份證檢票乘車,無需換取紙質(zhì)車票也已成為現(xiàn)實(shí),乘客在購票時最關(guān)心的是在自己的乘車區(qū)間內(nèi)是否有座位(或鋪位),而座位號(或鋪位號)可以延時分配,即在乘客檢票時(或在檢票前的約定時間)確定座位號(或鋪位號)。延時分配方案為最大限度的滿足乘客對于座位(或鋪位)的需求提供了現(xiàn)實(shí)條件,而且對于提高乘車舒適度和促進(jìn)和諧乘車大有裨益。
【發(fā)明內(nèi)容】
[0004]本發(fā)明所要解決的技術(shù)問題是,針對現(xiàn)有技術(shù)的不足,構(gòu)建乘車座位號(或鋪位號)的延時分配方法,同時兼顧乘客添加乘車需求、修改乘車需求或撤銷乘車需求,所提方法應(yīng)盡可能滿足不同乘客對于座位(或鋪位)的乘坐需求,提高座位(或鋪位)的使用效率,并且具有較低的計算復(fù)雜度。本發(fā)明可直接應(yīng)用于火車票購票系統(tǒng),也可用于相應(yīng)的乘車購票系統(tǒng)。
[0005]為解決上述技術(shù)問題,本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的:通過建立座位(或鋪位)預(yù)定使用模型,以及乘車需求模型,考慮乘客添加乘車需求、修改乘車需求或撤銷乘車需求的影響,在乘客提出乘車需求后,使用座位分配方法確定乘客在乘車區(qū)間能否有座位(或鋪位),待乘客檢票時(或在檢票前的約定時間)確定乘客們的座位號(或鋪位號)。
[0006]所述的座位(或鋪位)延時分配方法主要用于,在乘客提出乘車需求時確定是否可在乘車區(qū)間內(nèi)提供座位(或鋪位),以及產(chǎn)生座位(或鋪位)分配方案。
[0007]所述的座位(或鋪位)預(yù)定使用建模指的是:將車輛運(yùn)行區(qū)間內(nèi)的座位(或鋪位)使用情況進(jìn)行模型表示。一車輛的一次運(yùn)行是指:從始發(fā)站&出發(fā),途徑不同的站點(diǎn)5;,S2,最終到達(dá)終點(diǎn)站&,Λ為一個正整數(shù)。一次運(yùn)行共可分為#車輛運(yùn)行區(qū)間,分別為:&站到5;站,記為5;站到&站,記為rli2;…;5^站到5^站,記為假設(shè)乘客在車輛運(yùn)行的這Al"區(qū)間內(nèi)不能上下車,車輛可供乘客使用的座位數(shù)量為Nseat, Nseat%一個正整數(shù)。一個座位在車輛運(yùn)行區(qū)間內(nèi)的預(yù)定使用情況表示為一個M隹二進(jìn)制行向量,記作[0"l,O" 2,…,,其中0.尸O表示區(qū)間內(nèi)無乘客預(yù)定使用,O"尸I表示A U區(qū)間內(nèi)有乘客預(yù)定使用,i=l, 2,…,N。
[0008]所述的乘車需求建模指的是:將乘客乘車時的座位使用需求進(jìn)行模型表示。本說明書中所指的乘車需求都是針對同一車輛的一次運(yùn)行而言。假設(shè)乘客提出的一次乘車座位使用需求是連續(xù)的,即乘客提出的一次座位使用需求是從某一站點(diǎn)開始直到之后的某一站點(diǎn)結(jié)束,在這兩站點(diǎn)之間將一直使用同一座位。乘客提出的一次從&站到5;站乘車座位使用需求,表示為一個2維十進(jìn)制行向量,記作a = [ β, y],其中O彡fy彡Λ; f,γ為十進(jìn)制整數(shù),Λ為車輛運(yùn)行區(qū)間的總數(shù)量。
[0009]設(shè)W為一個非空需求集合,W中包含乘客可能提出的座位使用需求。本說明書中的需求集合都是由有限的需求組成。把W的一個映射。稱為W上的二元運(yùn)算。對于尤L的一個二元運(yùn)算。,把a(bǔ), Ae W的像。(a, A)記作a。A,或省略。,只簡單地寫作abo 設(shè) a = [ σ, P]和 A = [ ;r, J],其中 O 彡 αζβ?ζ: JV, O 彡 χ< δ?ζ: N, α, β, γ,J為十進(jìn)制整數(shù),Λ為車輛運(yùn)行區(qū)間的總數(shù)量,定義二元運(yùn)算。為a。A= [min( α, γ),
max (凡 J)],其中min( σ, ;r)表示σ與y中最小的數(shù),max (凡 J)表示々與J中最大的數(shù),令C= [min( α, γ), max (凡 J)],則可寫作a^=c0
[0010]為算法表述方便,進(jìn)行如下定義。
[0011]定義I (相等):設(shè)a = [ α, 0]和A = [ γ, J]是兩個乘車需求,其中O彡水O彡N, α, β, γ, J為十進(jìn)制整數(shù),Λ為車輛運(yùn)行區(qū)間的總數(shù)量。如果σ=;κ并且P= 5,則稱需求a與需求A相等;否則稱需求a與需求A不相等。
[0012]定義2 (左側(cè)兼容、右側(cè)兼容):設(shè)a = [ σ, f ]和A = [ ;r, 是兩個乘車需求,其中O彡σ〈々彡Λ;0彡γ< N, α, β, γ, J為十進(jìn)制整數(shù),Λ為車輛運(yùn)行區(qū)間的總數(shù)量。如果A則稱需求A左側(cè)兼容需求a,或把需求A稱為一個左側(cè)兼容需求a的需求;如果r< K σ〈 P,則稱需求A右側(cè)兼容需求<3,或把需求/?稱為一個右側(cè)兼容需求a的需求。
[0013]定義3(兼容):設(shè)a和A是兩個乘車需求。如果需求a左側(cè)兼容需求A或者需求a右側(cè)兼容需求A,則稱需求a與需求A兼容。設(shè)43是兩個非空的需求集合,如果需求a與W中的某一個需求兼容,則稱需求a與需求集合肩!容;如果方中任意一個需求都與需求集合肩!容,則稱需求集合W與需求集合肩!容。
[0014]特別規(guī)定,任意需求都與空集兼容;空集與任意需求集合兼容;空集與空集兼容。
[0015]定義4(互斥):設(shè)a和A是兩個乘車需求。如果需求a與需求A不兼容,則稱需求<3與需求?互斥。設(shè)Λ及是兩個非空的需求集合,如果需求a與W中的任意一個需求互斥,則稱需求a與需求集合^互斥;如果W中任意一個需求都與需求集合^互斥,則稱需求集合方與需求集合^互斥。
[0016]定義6 (互斥集):設(shè)W是一個非空的需求集合。如果W中只包含一個需求,則稱A是一個互斥集;如果^中包含兩個或兩個以上需求,且任意兩個需求都互斥,則稱W是一個互斥集。
[0017]定義7 (最大互斥集):設(shè)W是一個非空的需求集合,W中包含 <個需求,其中 <為一個正整數(shù)。如果W中僅包含一個需求或W中任意兩個需求都互斥,則W本身構(gòu)成W中唯一一個最大互斥集。設(shè)方是^的一個非空真子集,如果方中只包含一個需求,而_補(bǔ)集與肩!容,則稱晚J中的一個最大互斥集;如果方中包含兩個或兩個以上需求,且任意兩個需求都互斥,而_補(bǔ)集與肩!容,則稱_ J中的一個最大互斥集。
[0018]特別規(guī)定,空集不能構(gòu)成互斥集,也不能構(gòu)成最大互斥集。
[0019]設(shè)W是一個非空的需求集合,W中包含#需求,Λ為一個正整數(shù)。對于任意一個需求ae兒^中存在一個最大互斥集i?,使得ae Ba計算最大互斥集加勺步驟如下。
[0020](I)初始化集合漢使方中僅包含需求a。
[0021](2)遍歷萬中所有需求,如果^-於3空集或萬中所有需求都與肩!容,則集合佛P為所求最大互斥集;否則,Hl3—定存在一個需求與方互斥,繼續(xù)下一步。
[0022](3)將j-方中一個與方互斥的需求添加到集合漢重復(fù)上述步驟2至步驟3,直到得到一個最大互斥集。
[0023]設(shè)W是一個非空的需求集合,W中包含#需求,Λ為一個正整數(shù)。對于任意一個J中的互斥集漢J中存在一個最大互斥集G使得i?包含于α計算最大互斥集雄]步驟如下。
[0024]( I)初始化集合C,令C二B。
[0025](2)遍歷1所有需求,如果16?空集或Ι?ψ所有需求都與6?容,則集合成P為所求最大互斥集;否則,—定存在一個需求與CS:斥,繼續(xù)下一步。
[0026](3)將—個與斥的需求添加到集合C,重復(fù)上述步驟2至步驟3,直到得到一個最大互斥集。
[0027]定義5 (引力):設(shè)a = [ a, 0]和A = [ γ, J]是兩個乘車需求,其中O彡水O彡N, α, β, γ, J為十進(jìn)制整數(shù),Λ為車輛運(yùn)行區(qū)間的總數(shù)量。如果需求a與需求A兼容,那么需求a和需求A之間存在正引力。如果需求A左側(cè)兼容需求a,則稱需求A對需求a的引力方向?yàn)橄蛴?,引力大小為ΡΗ? β、;如果需求A右側(cè)兼容需求a,則稱需求A對需求a的引力方向?yàn)橄蜃?,引力大小為N~ { a - 5、。如果需求a與需求A互斥,那么需求a和需求A之間存在負(fù)引力。如果Q.〈 ^〈/K 則稱需求a對需求A的引力方向?yàn)橄蛴?,引力大小為r-A如果r〈《■〈 ,則稱需求a對需求A的引力方向?yàn)橄蜃螅Υ笮棣?如果需求a和需求A相等,則稱需求a與需求A的引力方向?yàn)椴淮_定,引力大小為如果σ彡χ< <5^: P,則稱需求a與需求A的引力方向?yàn)椴淮_定,引力大小為r-占。設(shè)W是一個非空的需求集合,定義需求<3與集合W的引力方向?yàn)椴淮_定,引力大小為需求a與集合^中需求產(chǎn)生所有引力中的最大值。
[0028]本說明書中,引力的比較只比較引力的大小,不論方向如何;正引力大于負(fù)引力。
[0029]定義8