[鐵道部信息化管理]需求分析(一)—— 售票系統領域知識(區間票、訂票、預留票)


 

 

常見的設計問題

網絡上有不少人曾經提出可以把“車票”預先生成並緩存起來。其實這里典型是出現了線下思維和經驗對線上系統設計的阻礙作用。並且是由於對於鐵路區間售票的情況了解不充分造成的誤解。

從傳統經驗上,如果某個車次是熱門,那么為了加快出票速度(窗口買票速度),車站可以采用事先將一定量的車票打印完畢,從而節約一點售票環節和時間。

這里的前提是能預測並估算數一定量的“車票”。這種功能在12306系統里也是一種可選的功能,但是絕不是能立刻實現的。因為准確估計要生成哪些“車票”並不容易。或者應當有一種調節機制來發揮作用,當預估的車票與實際訂票請求沖突時候的動態調節。

所以本系列會給予不生成固定車票的方式。當然,也歡迎討論各種車票的實現方式。

 

最理想的設計目標,是能夠在某些優化策略的指導下,盡量滿足乘客的購票要求。而不是硬性將所有車票的組合事先規定

 

區間票

假設北京到廣州是直達,並且只有一個座位,那么最多只能賣出一張票。

如果中間停武漢,則可能一個人先買了北京到武漢的票,此時從武漢到廣州的運力完全支持另一個人買一張從武漢到廣州的票。

我們這里可以看到“車票”和“座位”之間不是一個概念了。

以北京到廣州的K598/599為例:

 

一共有25站,用排列組合可知理論上有24+23+22+21+… +3+2+1 = 300種不同起點和終點的“車票”可以賣。並且這僅僅是一個“座位”

如果這趟車有2000個“座位”,那么用這種最原始的“車票”對應方式,當我們打算事先緩存所有車票的時候,將面對60萬行數據。

要知道這只是一個車次的一次運營。

實際上不是每個車次都有那么多站,估計平均而言10個站,那么"車票"和"座位"的比例就是45:1.

 

  停靠站不超過64站(6245是62站,實際上超過30站的很少)

                    引用自 園友buzzlight

 

按照博文1的推算,春運期間會有大致100萬運營車次。那么總體數據行數將將是

100萬車次 * 2000座/車次 * 45票/座 = 900億

 每行“車票”如果是64Byte, 900億行是:900億*64Byte=57600億B=56.25億KB=549萬MB=5364GB=5.24TB

當然,這個5TB只是比較極端的估計,精簡以后可能會少很多,但是任何想事先生成並緩存“車票”的方案,要實際估算一下可能的內存使用狀況。

(按照最新的數據估算,可能只有10-20萬車次在整個春運期間,所以對應的內存占用可以降低到20%,暨1TB左右。)

 

此外,由於分段車票之間的關聯性,如果某個區間的票給賣完了,其他相關的票也就自動不可能有用了。因此每張“車票”被標記為已售出的時候,同時需要標記另外很多票已經無效。這也是使用預緩存模式的一個難點

 

完美支持任意區間票的發售,這個應該是一個完美系統所應該做到的需求.

 

不很了解目前鐵路售票系統在發售區間票上面能支持到怎樣的程度。

如果能有一個完美的區間票優化售票邏輯,只要能因此提升1%的客運能力,那將是多大的經濟效益啊?3億?小問題了不是?

 

訂票/鎖票

在電商網站上,當查詢結果告訴你當前有貨,然后等你完成支付以后卻告訴你沒貨了。

憤怒了,有木有?!

 

場景1(鐵路售票窗口處):

購票者:到武昌的K598硬座有票嗎?

售票窗口:有,要幾張?

購票者:3張

售票窗口:462元

購票者遞錢

售票窗口打印車票

 

即使是現在,鐵路售票大廳也是聯網的。從上述黃色的時間點開始,到綠色的時間點結束,是整個售票過程的關鍵步驟。

需要大家思考的問題是:

在購票者告知需要3張票之后到實際打印車票結束,如果此時K598次硬座真的只有最后3張票了,系統是否要保證這個購票者必須能買到票?

 

場景2(鐵路售票窗口處):

購票者:到武昌的K598硬座有票嗎?

售票窗口:有,要幾張?

購票者:3張

售票窗口:只有2張了要嗎?

購票者:要(同時遞錢)

售票窗口打印車票

需要大家思考的問題是:

對比第一個場景,售票窗口收錢的時候,憑什么不擔心三張票被其他人搶走?

場景2的時候,售票窗口為什么也不擔心查詢出來的兩張票不被其他人搶走?

 

答案是,對於售票窗口而言,查詢余票量和訂票是兩個業務操作,一個不影響余票額,另一個卻會臨時鎖定車票。

 

當購票人提供所有購票信息后,系統執行的是訂票/鎖票功能,對於其他窗口而言,這個區段已經不能銷售了。直到該窗口釋放這個區段,其他窗口才能再次銷售

因此,特定車次的余票量,可能在瞬間變成無票,但是過一陣子又是有票的。所以即使你排隊在我前面,也可能我能買到而你被告知沒有票了。

這個邏輯應該是合理的,否則售票大廳每天都要上演全武行的。

 

保留票

可能沒這個專業術語,我只是用來描述有些票其實是有,但就是不賣給你。呵呵

 

不少人都感覺鐵路售票應該就和淘寶商賣東西差不多,有多少庫存放出來,然后大家先到先得。

朴素的共產主義思想……

 

實際情況,要么你自己到鐵路售票大廳去體驗一下,要么看我慢慢道來。

 

1、保定有牛人組團買光了所有北京到廣州的票,導致某次列車出北京的時候是空車出去的。北京售票大廳里面會是啥景象?

2、北京有牛人組團買光了所有北京到廣州的票,你在保定你着急不?

 

所以按照歷史統計數據,必須讓各個停靠站能有一定量本站起點的車票可賣,否則沿途城市的人民群眾不答應或者始發站的百姓們要鬧事。

 

3、由於種種原因,某個途徑站出現了旅客暴增或積壓(比如當地長途汽車站突然癱瘓),假設是許昌。鐵道部特地臨時加掛兩節車廂,用於疏散這200個人。好么,票剛上網,結果許昌的售票大廳才買了10張,就被武昌的哥們刷光了。

 

特定時期,一些票必須在指定車站,甚至指定售票窗口銷售

目前由於不是純網絡售票,所以這個問題不着急。不過據說這次新系統就是開始有這個打算了。呵呵,太極的哥們要慎重啊。

 

理想中的區間票價格

如果同樣的起點和終點,買一張票的價格比分段買兩張要便宜。很好理解,如果第二張賣不出去,只賣第一張其實鐵道部略有不爽,因為運力放空了。

我個人感覺本着提高運力使用效率角度出發,最理想情況下第二張票的價格應該是浮動的。

本質就是利用價格杠桿來引導乘客購票決定,從而提高運力使用效率

比如有人要買K598次的票,不過只是要到石家庄。此時有票,但是如果賣給他,鐵路部門要承擔這個座位從石家庄以后就沒人買的風險,同時可能一個潛在的要買北京到廣州全程的乘客將遇到買票困難。

如果此時剛好有另一個車次,發車和到達時間接近用戶的需要,其中的北京到石家庄段的座位是空閑的,而且這個座位的其他區段也是被訂購過的,那么推薦這個乘客去買這張車票對鐵路部門就是有意義的。

由於這個空座位已經賣出了一張加價的區間票,則第二張票可以按正常價格並扣減對應里程價格來賣。這樣一來,鐵道部相當於賣了一張大區間票,價格上沒有損失。

如果按這種價格策略賣了幾張票,最終形成整個路線上沒有放空,則總體票價和應該等於正常票價。

而且進一步考慮,其實針對那些購買區間票的乘客,鐵路部門需要額外增加的成本基本是0。如果能充分發揮復合售票的威力,那么最終可以降低車次或車廂數量,從而節約運營成本。因此從第二張區間票開始賣得甚至比標准票價低10%也是可以接受的。不過這個目標似乎有點需要論證,減少車次不是那么簡單的事情。

因此在信息系統上花的錢,可以從運營中慢慢收回,可以讓乘客獲得感覺上更貼心的售票服務

 

最優出票策略(算法)

上面在談區間票價格的時候,其實已經涉及到了一個概念:如何最優化出票

這個策略應該是12306的核心知識產權之一了。並且這應該是一個具有學習能力的系統,能通過歷史積累數據挖掘出有用的數據信息提供預測。如果能夠證明因為出票算法導致能提高上座率,降低運營成本,3億?毛毛雨吧?如果真有誰能做到提高運力使用率1%?

當然,由於出票順序不同,已經確定座位的車票無法進行優化。優化一定要在座位沒有確定時候才能實施。或者在出票時至少能有一個次優的選擇。

 

售票系統算法質量評判指標

這個是自己YY的,大家想想還有其他啥指標?其實指標想多了,算法的方向也就慢慢清晰了。

假設一共2個座位,賣了兩張票,路線一共是5個區間。

座位空置率

座位空置率 = (列車座位總數*區間總數 - 對應車票區間累計總數)/列車座位總數*區間總數*100%

如果兩張票區段有重疊,各自是3個區間。

空置率 = (10-6)/ 10 = 40%

如果兩張票區段沒重疊,各自是2個區間。

空置率 = (10-4)/ 10 = 60%

這個指標過高可能表示路線設置有問題。比如某條線的前1/3段上座率一直偏低,那么可能就是要增加后2/3的更短的線路,同時可以降低此線路的運力。

 

座位復用率

座位復用率 =(單次列車運行總出票數量-列車總曾經有人的座位數)/ 列車總曾經有人的座位數 *100%

如果兩個人的區段不重合,則復用率應該是100%。

如果兩張票各占一個位置,則復用率是0%

當空置率大於等於50%,而復用率等於0或過小,出票算法的策略就有待優化。

 

 

座位冗余度

座位冗余度 = 所有未售出的區間座位,組合而成的全程為空的座位數/列車總座位數 * 100%

其實如果所有座位都賣掉了,就是運力緊張的一個信號。

再充分保證座位復用率的前提下,合理情況應該有一定比例的座位保持全程空座。比如5%。

這個指標能成為鐵路自動化調度的一個嘗試。

 

要過節了,所以趕着把第二篇弄上來. 節日期間可能更新沒那么快,雖然宅家里,不過還是有其他事情的么.

最后,再次感謝各位大大來訪

謝謝。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com