GraphGists

大多数人在从一个目的地前往另一个目的地时,都在寻找最佳的航班选项。然而,“最佳航班选项”可以根据不同的标准来定义,例如票价、停靠次数、旅行时间、承运航空公司等,而每个标准又包含很多细节。尽管这个问题可能看起来与在给定图中寻找最短路径非常相似,但有一个需要特别注意的区别,那就是在有经停的旅行中,我们只能选择那些出发时间晚于前一航班到达时间(外加最小中转时间)的航班。尽管有许多网站提供此类服务,我还是使用 GraphGist 对这种情况进行了建模。

我的方案与许多其他现有程序的不同之处在于,在该模型中,除了旅客之外,还考虑了机场、航空公司和其他机构等组织系统,以便更好地了解不同航空公司的统计数据、目的地的受欢迎程度以及其用户在任何特定时间段内的人口统计信息。因此,这些数据可以供组织用于制定更好、更有效的规划方案。

fhRnvSI

www.transtats.bts.gov[交通统计局] 每月发布航班数据集(开源)。本 Gist 为了更快地获取结果样本,使用了 2015 年 11 月 30 日的数据。使用了该数据集中的以下变量:

  • 机场缩写

  • 航班日期

  • 出发地

  • 飞行时长

  • 飞行距离

  • 航班航空公司 ID

  • 航班日期

尽管这些变量在许多方面提供了非常丰富的信息,但它们缺少一个非常重要的部分,即成本和客户最终价格。对于每次航班,该模型假定了三种可能的票务选项舱位:经济舱、商务舱和头等舱。对于每张机票,生成一个随机数,并根据舱位分别乘以 0.75、1 和 1.2,再乘以飞行时长(总旅行时间,单位分钟)。

以下是关于数据集的一些信息:

机场数量

71

航班数量

2809

航空公司数量

2

查询

这个简单但考虑周全的模型可以用来回答几个问题,其中一些在此处列出:

查找从给定出发地[在本案例研究中为西雅图机场 (SEA)] 出发的商务舱直飞航班票价

MATCH (f:Flight)-[:ORIGIN]-(a:Airport { name:'ORD' })
WITH f
MATCH (t:Ticket { class:'business' })-[:ASSIGN]-(f)-[:DESTINATION]-(d:Airport)
RETURN d.name as Destination, t.price as Price, f.airline as Airline

查找从给定出发地[在本案例研究中为西雅图机场 (SEA)] 到给定目的地(在本案例研究中为旧金山机场)的一站式航班

MATCH (a:Airport { name:'SEA' })-[:ORIGIN]-(f1:Flight)-[d:DESTINATION]-(a2:Airport)-[:ORIGIN]-(f2:Flight)-[:DESTINATION]-(a3:Airport { name:'SFO' })
where f1.date < f2.date
RETURN f1.date, f1.airline,  a2.name, f2.date, f2.airline, a3.name

查找从给定出发地[在本案例研究中为西雅图机场 (SEA)] 到给定目的地(在本案例研究中为旧金山机场)的一站式航班

MATCH (a)<-[:ORIGIN]-(f:Flight)
WITH a.name AS Airport, f.airline AS Airline, count(f) AS total
ORDER BY total, Airport, Airline DESC
RETURN Airport, Airline, total

查找每个给定城市和/或航空公司的出发航班数量

MATCH (a)<-[:DESTINATION]-(f:Flight)-[:ASSIGN]-(t:Ticket)
WITH a.name AS Airport, f.airline AS Airline, avg(t.price) AS Average
ORDER BY Airport, Average DESC
RETURN Airport, Average
© . All rights reserved.