我正在尝试用机票解决旅行推销员问题,所以主要想法是从一个机场开始,只访问所有机场一次,然后返回原点。
例如:从 LAX 出发访问 LV、CA、NY 结束 LAX。
这是一个经典的图问题,我们可以将机场表示为节点,将路线表示为边,价格作为边权重。
所以这是最简单的部分,真正让我困惑的是用户希望旅行的日期。例如,我想让用户选择他/她希望旅行的日期,比如从 01 开始到 15 结束。所以我想找到一种最便宜的方式来做到这一点。例如输出将是这样的:
01 - LAX - LV;
04 - LV - CA;
08 - CA - NY;
15 - NY - LAX
所以我知道我可以在边上添加额外的属性,但问题是算法将如何区分如何遍历图形,例如不选择过去权重最小的边。
所以你可以看到我有两条边从 CA 出来(注意边的格式是 DD - 价格,01 - 20 表示日期的第一个和成本 20),以及当多个边相同时如何处理这种情况节点存在。
它也可以被视为三维图,其中第三维是用户旅行的日期。所以主要问题是如何处理这些日期?
希望我明白了,任何建议表示赞赏
提前感谢。