当前位置: 华文星空 > 知识

火车的出票系统算法是不是最优的?

2020-09-30知识

因为经常坐火车,多少对火车售票有一些观察研究,就来说说现行铁路使用的TRS售票系统大致对出票是怎么分配。

不得不说,TRS售票系统从20多年前中国铁路开始启用计算机售票到现在,已经增强了非常多的业务能力, 现有的对车票分配的算法,在人为一定干预的情况下,已经算是相当优秀能保证较高的座席复用率。

为了方便下面说明铁路售票常采用的计算规则,以G102次上海虹桥到北京南这趟列车为列。

第一类, 一趟车会有部分车票,完全自由区间售卖,而且是所有车站同时共享。 这类车票出票时会从票池里优先找出临近区间段已出售的席位,比如某乘客想买南京南到济南西的车票,系统会优先找上海虹桥到南京南出售的席位,或者济南西到北京南已出售的席位,如果没有找到,则进一步缩小出售席位的区间范围,第二次再寻找上海虹桥到常州北,或者廊坊到北京南,以此类推,如果都没有,则出售完全没出售过区间的席位。

第二类, 一趟车也会有部分车票在人工分配票额设定时,限制售卖某个车站已远的区间,俗称限售 ,比如某个席位,分配给上海虹桥站,限制出售济南西以远的车站,那么这个席位在卖票时,一开始只能卖上海虹桥到济南西,廊坊,北京南这个区间,当这个席位卖出限售范围之后,才会出现复用票可以出售剩余的区间。 同时,限售是有一个时间点,在火车开车时刻前多少天,如果限售车票没卖出去,则转为第一类自由区间售卖车票,俗称解限。 比如近期Z40次(上海到乌鲁木齐)列车,全车所有卧铺车票限售哈密以远,所有硬座车票限售武威以远,仅在开车前一天早上,才会解限,这时在有剩余车票的情况下才能买上海到西安,南京到兰州这样这趟车的车票。

第三类, 一趟车还会有部分车票在人工分配票额设定时,分配给沿途各站,这类车票有可能会有第二类车票一样会有限售区间。 一般有分配票额多是始发站开始后面几个车票,比如分配给无锡东站100张二等座,那么这100张二等座在出售时,仅限出售无锡东上车的区间,但在无锡东前面的区间会被优先出售,如有其它乘客购买上海虹桥到无锡东区间,会优先出售这100个二等座。

但如果在该车站该车次开车时,分配到的票额还没有卖完,则会自动转为第一类自由区间售卖的车票。有的车次也会在开车前几天,转为第一类。

车次的票额分配和限售区间时限,铁路一段一段时间都会调整,特别在节日出行高峰,为了保证长途旅客以及席位的复用率,第二类第三类人工设定会比平时要多。

然后来说说个人观察发现一些售票规律:

一般情况下,短途的管内列车,以及铁路大数据分析过以短途出行为主的线路上的车次,比如杭深线上跑的长途列车,基本都是第一类自由售卖的车票,不做任何限售分配。这类列车服务的旅客为短途为主,因此一个席位经常复用。

而跨局长途列车,情况相对复杂,平峰的时候,可能大部分席位都是第一类不做限制, 但到了高峰期,像国庆春节这种,则经常有第二类的情况,很多车次在高峰期还直接限售从起点站到终点站, 这也是为什么不少人抱怨在高峰期抢票,一开始售票就没票的原因,因为被限售了起点直接到终点,一开始售票时中间车站是没有任何车票可以卖的。

这里要点名京局,真是见过限售最狠的局,基本北京始发的长途车次,无论平峰高峰,无论高铁还是普通车,一开始都是直接限售到终点,只给前面几个中途车站零星留了一点票额(也就是第三类车票分配),直到开车前一天甚至当天才解限。

还要点名乌局,从乌局管内始发的列车,一开始经常只有乌局管内的车站有票额,都得等到开车前两三天才能解限,苦了兰新线上甘肃西部那些地区,因为兰局没几个始发车在甘肃西部。

部分长途普通车,会有第三类人工分配各站票额的情况,特别是东北的普通车,很多还有执行较严格的各个车站票额分配,经常后面没有分配到票额的车站,只能等前面有分配到票额的车次出了票产生复用之后,才能买到车票。

可以说,在平峰的时候,由于列车上座率不算高,铁路更多的是第一类自由区间售卖并不限制乘客购买车次。而在高峰的时候,铁路通过人工干预票额分配限售的方法,让乘客尽量短途的购买短途车次,长途的购买长途车次,在长途车次的席位有剩余区间的情况下,再出售给短途乘客保证座席复用率。

由于火车停站极多,火车售票算法,是非常复杂的,很难说得有真正的最优解,这一套措施在铁路已经实践很多年,虽然算不上是最优的做法,但确实是相对有效的提高了座席复用率,特别是在春运的时候,保证尽可能多的人能回到家。

最后说个题外话,但因为在这套规则下,在高峰期经常会出现有乘客利用这个规则买短补长导致列车超载后面车站的已经买票乘客无法上车的事故,这个真的是无法用售票系统的算法来解决的一个难题,只能从行政层面人工解决了。