當前位置: 華文星空 > 知識

火車的出票系統演算法是不是最優的?

2020-09-30知識

因為經常坐火車,多少對火車售票有一些觀察研究,就來說說現行鐵路使用的TRS售票系統大致對出票是怎麽分配。

不得不說,TRS售票系統從20多年前中國鐵路開始啟用電腦售票到現在,已經增強了非常多的業務能力, 現有的對車票分配的演算法,在人為一定幹預的情況下,已經算是相當優秀能保證較高的座席復用率。

為了方便下面說明鐵路售票常采用的計算規則,以G102次上海虹橋到北京南這趟列車為列。

第一類, 一趟車會有部份車票,完全自由區間售賣,而且是所有車站同時共享。 這類車票出票時會從票池裏優先找出臨近區間段已出售的席位,比如某乘客想買南京南到濟南西的車票,系統會優先找上海虹橋到南京南出售的席位,或者濟南西到北京南已出售的席位,如果沒有找到,則進一步縮小出售席位的區間範圍,第二次再尋找上海虹橋到常州北,或者廊坊到北京南,以此類推,如果都沒有,則出售完全沒出售過區間的席位。

第二類, 一趟車也會有部份車票在人工分配票額設定時,限制售賣某個車站已遠的區間,俗稱限售 ,比如某個席位,分配給上海虹橋站,限制出售濟南西以遠的車站,那麽這個席位在賣票時,一開始只能賣上海虹橋到濟南西,廊坊,北京南這個區間,當這個席位賣出限售範圍之後,才會出現復用票可以出售剩余的區間。 同時,限售是有一個時間點,在火車開車時刻前多少天,如果限售車票沒賣出去,則轉為第一類自由區間售賣車票,俗稱解限。 比如近期Z40次(上海到烏魯木齊)列車,全車所有臥鋪車票限售哈密以遠,所有硬座車票限售武威以遠,僅在開車前一天早上,才會解限,這時在有剩余車票的情況下才能買上海到西安,南京到蘭州這樣這趟車的車票。

第三類, 一趟車還會有部份車票在人工分配票額設定時,分配給沿途各站,這類車票有可能會有第二類車票一樣會有限售區間。 一般有分配票額多是始發站開始後面幾個車票,比如分配給無錫東站100張二等座,那麽這100張二等座在出售時,僅限出售無錫東上車的區間,但在無錫東前面的區間會被優先出售,如有其它乘客購買上海虹橋到無錫東區間,會優先出售這100個二等座。

但如果在該車站該車次開車時,分配到的票額還沒有賣完,則會自動轉為第一類自由區間售賣的車票。有的車次也會在開車前幾天,轉為第一類。

車次的票額分配和限售區間時限,鐵路一段一段時間都會調整,特別在節日出行高峰,為了保證長途旅客以及席位的復用率,第二類第三類人工設定會比平時要多。

然後來說說個人觀察發現一些售票規律:

一般情況下,短途的管內列車,以及鐵路大數據分析過以短途出行為主的路線上的車次,比如杭深線上跑的長途列車,基本都是第一類自由售賣的車票,不做任何限售分配。這類列車服務的旅客為短途為主,因此一個席位經常復用。

而跨局長途列車,情況相對復雜,平峰的時候,可能大部份席位都是第一類不做限制, 但到了高峰期,像國慶春節這種,則經常有第二類的情況,很多車次在高峰期還直接限售從起點站到終點站, 這也是為什麽不少人抱怨在高峰期搶票,一開始售票就沒票的原因,因為被限售了起點直接到終點,一開始售票時中間車站是沒有任何車票可以賣的。

這裏要點名京局,真是見過限售最狠的局,基本北京始發的長途車次,無論平峰高峰,無論高鐵還是普通車,一開始都是直接限售到終點,只給前面幾個中途車站零星留了一點票額(也就是第三類車票分配),直到開車前一天甚至當天才解限。

還要點名烏局,從烏局管內始發的列車,一開始經常只有烏局管內的車站有票額,都得等到開車前兩三天才能解限,苦了蘭新線上甘肅西部那些地區,因為蘭局沒幾個始發車在甘肅西部。

部份長途普通車,會有第三類人工分配各站票額的情況,特別是東北的普通車,很多還有執行較嚴格的各個車站票額分配,經常後面沒有分配到票額的車站,只能等前面有分配到票額的車次出了票產生復用之後,才能買到車票。

可以說,在平峰的時候,由於列車上座率不算高,鐵路更多的是第一類自由區間售賣並不限制乘客購買車次。而在高峰的時候,鐵路透過人工幹預票額分配限售的方法,讓乘客盡量短途的購買短途車次,長途的購買長途車次,在長途車次的席位有剩余區間的情況下,再出售給短途乘客保證座席復用率。

由於火車停站極多,火車售票演算法,是非常復雜的,很難說得有真正的最優解,這一套措施在鐵路已經實踐很多年,雖然算不上是最優的做法,但確實是相對有效的提高了座席復用率,特別是在春運的時候,保證盡可能多的人能回到家。

最後說個題外話,但因為在這套規則下,在高峰期經常會出現有乘客利用這個規則買短補長導致列車超載後面車站的已經買票乘客無法上車的事故,這個真的是無法用售票系統的演算法來解決的一個難題,只能從行政層面人工解決了。