航班票价的 TSP
TSP for a flights fares
我正在尝试用机票解决旅行商问题,所以主要思想是从一个机场开始,只访问所有机场一次,return 到起点。
例如:
从洛杉矶国际机场出发
访问 LV、CA、NY
结束洛杉矶国际机场。
这是一个经典的图形问题,我们可以将机场表示为节点,将路线表示为边,并将价格表示为边权重。
所以这是最简单的部分,真正让我困惑的是用户希望旅行的日期。例如,我想让用户选择 he/she 希望旅行的日期,比如从 01 开始到 15 结束。所以我想找到一种最便宜的方法来做到这一点。例如输出将是这样的:
01 - LAX - LV;
04 - LV - CA;
08 - CA - NY;
15 - NY - LAX
所以我知道我可以在边上放置额外的属性,但问题是算法将如何区分如何遍历图,例如不选择过去已经存在的权重最小的边。
所以你可以看到我有两条边从 CA 出来(注意边格式是 DD - 价格,01 - 20 表示日期的第一个和成本 20),以及如何处理这种情况当存在到同一节点的多个边时。
也可以看成三维图,第三维是用户出行的日期。所以主要问题是如何处理这些日期?
希望我说到点子上了,任何建议表示赞赏
提前致谢。
根据我对您问题的理解,您需要在特定时间之前到达的最便宜路径。如果是这样的话,一个可能的答案是你仍然只根据航班的价格来解决它,同时针对队列中的每个可能的答案(我假设
像 Dijkstra 这样的方法)你会保留已经过了多少时间(用于与截止日期进行比较)。
每当您想添加可能答案的邻居时,您都可以检查它是否在截止日期之前,如果不是,则忽略该实例。
在夏季,您仍然按照从最便宜到最昂贵的顺序查找所有可能的路径,然后选择第一个与您的截止日期不矛盾的路径。
我正在尝试用机票解决旅行商问题,所以主要思想是从一个机场开始,只访问所有机场一次,return 到起点。
例如: 从洛杉矶国际机场出发 访问 LV、CA、NY 结束洛杉矶国际机场。
这是一个经典的图形问题,我们可以将机场表示为节点,将路线表示为边,并将价格表示为边权重。
所以这是最简单的部分,真正让我困惑的是用户希望旅行的日期。例如,我想让用户选择 he/she 希望旅行的日期,比如从 01 开始到 15 结束。所以我想找到一种最便宜的方法来做到这一点。例如输出将是这样的:
01 - LAX - LV;
04 - LV - CA;
08 - CA - NY;
15 - NY - LAX
所以我知道我可以在边上放置额外的属性,但问题是算法将如何区分如何遍历图,例如不选择过去已经存在的权重最小的边。
所以你可以看到我有两条边从 CA 出来(注意边格式是 DD - 价格,01 - 20 表示日期的第一个和成本 20),以及如何处理这种情况当存在到同一节点的多个边时。
也可以看成三维图,第三维是用户出行的日期。所以主要问题是如何处理这些日期?
希望我说到点子上了,任何建议表示赞赏
提前致谢。
根据我对您问题的理解,您需要在特定时间之前到达的最便宜路径。如果是这样的话,一个可能的答案是你仍然只根据航班的价格来解决它,同时针对队列中的每个可能的答案(我假设 像 Dijkstra 这样的方法)你会保留已经过了多少时间(用于与截止日期进行比较)。
每当您想添加可能答案的邻居时,您都可以检查它是否在截止日期之前,如果不是,则忽略该实例。
在夏季,您仍然按照从最便宜到最昂贵的顺序查找所有可能的路径,然后选择第一个与您的截止日期不矛盾的路径。