一种运价搜索系统的制作方法

文档序号:9865708阅读:760来源:国知局
一种运价搜索系统的制作方法
【技术领域】
[0001 ]本发明涉及运价搜索领域,具体涉及一种运价搜索系统。
【背景技术】
[0002]随着互联网的兴起,航空公司网上售票平台以及各种第三方的航班销售平台不断涌现,旅客可以通过互联网自助的完成航班的预订和支付。这就要求为旅客提供自动化的航班查询搜索系统。旅客输入一个行程请求,该系统会自动为旅客计算生成可用的行程,并且完成航班可利用舱位的查询及航班舱位价格的计算,这就对航班搜索系统的处理性能提出了更高要求。另一方面随着各种第三方互联网购票平台和比价平台的出现,旅客更加关注行程的价格因素,以低价为目的的航班搜索在查询中所占比例越来越大,低价命中率因此也成为衡量航班搜索系统优劣的重要指标。
[0003]航班搜索需要寻找满足旅客行程要求的一组航班并计算出乘坐这组航班所需的价格。为此要解决三种组合问题,即航班组合问题、运价组合问题和航班与运价组合问题。由于运价数据本身的特点,要解决后两个问题(运价组合问题和航班与运价组合问题)需要完整的航班组合信息,因此传统航班搜索系统的处理方式一般是先搜索满足旅客行程要求的航班,再根据已知的航班解决航班与运价组合问题,最后解决运价组合问题。
[0004]航班搜索问题的难点之一是搜索空间大,对于一个从O出发到D的查询请求,我们既要在数以百万计的航班计划数据中找出满足行程要求的航班组合,又要在数以亿计的运价数据中找出相应的运价组合。而航班组合与运价组合之间又可以是多对多的关系,即一个航班组合可与一组运价组合对应,反之亦然。其结果是OD之间满足查询请求的潜在结果数以亿计,盲目搜索很难在用户可接受的响应时间内给出理想结果。因此如何基于运价有目的搜索航班,满足旅客价低质优查询需求,成为了航班搜索系统所面对的重要挑战。
[0005]现有的技术方案首先根据旅客输入的查询请求,包括出发地和目的地,出发时间,舱位类型等条件搜索满足行程要求的一组航班,可能是直达也可能是联程。例如,0-fltl-A-f I t2-D,其中A是中转点。这一步解决的是航班组合问题
[0006]然后根据已知航班拆分为FC,并将FC组合为PU和JR。如上例,可以选择只有一个FC(OD),也可以选择拆分为两个FC(OA) ,FC(AD)的组合。也就是说不是每个航班的联程点都必须作为运价的拆分点,可以允许“跳点”。同理,O-A-B-D可以拆分为FC(OA) +FC(AB) +FC(BD)或FC(0A)+FC(AD)或FC(0B)+FC(DB)或FC(OD)。由此可见一组航班可以对应多种拆分方式。
[0007]在确立了FC后,我们需要将FC组合为PU,再由PU组合为JR。见下面这个例子:
[0008]对于O-A-D-B-O的行程,假设我们拆分为FC(OA),FC(AD) ,FC(DB) ,FC(BO)四种FC,贝丨何组合的PU和JR有:
[0009]PU:
[0010]PUl = [FC(OA),FC(BO)];
[0011]PU2 = [FC(AD),FC(DB)];
[0012]PU3 = [FC(OA) ,FC(AD) ,FC(DB) ,FC(BO)];
[0013]JR:
[0014]JR1 = {PU1,PU2};
[0015]JR2={PU3};
[0016]由这个例子我们可以看出即使确定了FC,我们仍然可以组合出不同的PU和JR。因此我们在第一步解决航班组合问题中得到的一个航班组合,在航班与运价组合过程中可以与不同的FC、PU、JR组合对应起来。这意味每一个航班组合都可以对应着庞大的运价搜索空间。到此现有技术解决航班与运价组合问题的方法是枚举所有可能组合方式,因为此时还没有价格信息,不能错过任何一种可能的组合方式。
[0017]最后解决运价组合问题。上面所述FC、PU、JR都可以看作是运价数据的容器,我们枚举了所有可能的容器组合后,在这一步开始校验运价数据的规则以确定运价数据能否装入这些容器中。运价数据复杂的规则限制了一个运价数据能否装入某一FC中(FC级别的规则校验),以及能否和其它运价数据一起装入某一HJ中(HJ级别的规则校验)和某一JR中(JR级别的规则校验)。一旦我们找到了一组运价可以装入一种容器组合后,意味着我们为这组航班找到了一种可用的运价组合,并可以算出相应的价格。但是这只是这组航班的一种价格可能,如果我们目的是找到最低价,那么可能需要继续寻找可用的运价组合,直到我们确定不会有比已知最低价更低的价格为止。
[0018]上述这套技术方案由于是从满足行程的航班组合开始处理,因此被称为以行程为导向的航班搜索方法。
[0019]但是,以行程为导向的航班搜索方法缺点在于不能有目的的搜索低价结果,因为第一步处理航班组合时没有考虑运价信息,而航班组合一旦确定下来,运价组合的搜索空间就被限制在一个较小的范围内,经过复杂的规则校验后我们只能给出适用于这组航班的最低价格,而不是满足旅客行程要求的最低价格。其根本问题在于由于搜索空间过于庞大我们不可能遍历所有可能的航班组合,而要找到满足旅客行程的低价结果必须从运价组合入手,由运价决定航班而不是反过来。但是目前运价数据的设计决定了必须在确定航班组合后才能确定运价组合是否可用,也就是我们不能在解决航班组合问题之前解决运价组合问题。这就导致了解决低价航班搜索问题的矛盾,我们要搜索低价就要先解决运价组合,而解决运价组合又必须以解决航班组合为前提。为了解决这个问题,本发明提供了一种运价搜索系统,以价格为导向构造可能的运价组合,在不知道航班信息的情况下先利用经验信息估计运价组合的价格和合理性,最大限度的筛选运价组合缩小搜索空间,挑出潜在好的运价组合。

【发明内容】

[0020]有鉴于此,本发明提供一种运价搜索的系统,包括旅行经验信息模块,运价索引模块,运价路径选择模块,运价拆分模块和运价组合校验模块,其中,
[0021 ]所述旅行经验信息模块,用来生成旅行经验信息数据库;其中,所述经验信息数据库中的经验信息被按照其精确度进行有层次的索引和存储;
[0022]所述运价索引模块,用来建立运价索引以便快速查找运价;
[0023]所述运价路径选择模块,用来生成潜在的低价路径,根据旅客输入的旅行信息提取相应精确度的运价组最低价格;
[0024]所述运价拆分模块,用来生成IATA标准的价格单元(PU)和运价行程(JR);
[0025]所述运价组合校验模块,用来产生最终的最优运价组合。
[0026]所述旅行经验信息模块还用来更新旅行经验信息数据库,对于不同精确度的经验数据,当其产生的原始数据发生变化后,评估经验数据是否还有效,对于精确度不同的经验数据,采用不同的频率进行更新。
[0027]所述运价索引模块将具有相同或部分相同校验规则的运价聚合成元组,并将元组组织为一个具有层次关系的集合,形成运价数据的搜索树,其中,所述搜索树中的每个节点都对应一个运价组。
[0028]所述运价索引模块按层次逐级深入每一层节点对所述搜索树进行搜索。
[0029]所述运价索引模块根据每个节点的价格和依据旅行经验信息修正后的综合价格对节点进行排序和筛选。
[0030]所述运价路径选择模块以运价组对应的起始地和目的地为节点、最低价格为边权构造运价路径图,在运价路径图中用最短路径算法搜索满足旅客输入的起始地和目的地的前N条最低价格运价路径,并且利用旅行经验数据库中的旅行经验数据计算路径的综合价格,筛除不合理的运价路径。
[0031]所述运价拆分模块将运价路径拆分为不同航空公司、不同舱位类型和不同运价类型的运价行程。
[0032]所述运价组合校验模块在获取航空公司、舱位类型等信息后,利用旅行经验信息估计每一种运价行程的综合价格,按价格对其排序,并且剔除不合理的运价行程;选择当前综合价格最优的运价行程,如果该行程中包含未展开的运价组,则展开该运价组,重新组合为新的运价行程,并再次计算综合价格并排序筛选,直到当前的运价行程全部为元组组成;根据同一元组中运价对航班的约束要求生成满足要求的航班;在获得航班信息后,根据航班信息校验元组中的运价规则得到最优的运价组合。
[0033]如果所述最优的运价组合的价格高于已知的运价行程价格,则从已知价格最低的运价行程开始继续处理,展开所述已知价格最低的运价行程中的运价组,生成新的运价行程,评估价格,排序筛选,进行校验,直到不再有运价行程价格低于已知的运价组合;将得到的运价组合结果返回给用户。
[0034]所述校验由下到上分为三个层次,即运价元素(FC)层、价格单元(PU)层和运价行程(JR)层。
[0035]从ATPCO发布的运价数据和OAG发布的航班计划数据中计算得到旅行经验数据,包括从运价数据中提取出的价格信息和从航班数据中提取的舒适度信息。
[0036]本发明系统将舒适度信息
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1