假设:
问题:
尚未选择此项目的代码语言(可能是.NET语言,因为快速表单会派上用场),因此首选伪代码算法。如果添加的信息可能有帮助,我会留意后续问题。
答案 0 :(得分:4)
答案 1 :(得分:3)
在基地,您将以树为单位查看您的城市网络,以离开的城市为根,每个离开的航班都是指向孩子的指针。您将在树中执行递归深度优先搜索以查找到目标的所有路径,但是在您前进时检查一个循环并中止导致循环的任何路径。
当你找到可行的路径时,你可以保持最短但找到的单一解决方案;或保留更大的路径子集,如果您想在此基础上选择,则按出发时间的某些标准进行分层。
根据数据库和节点的具体情况,您还可以引入其他规则来缩短路径搜索时间,例如,如果您碰巧知道出发地和目的地相距1000英里,并且您的路径到目前为止已经跟踪了你飞行了3000英里而你仍然不在那里,拧紧它,继续搜索下一条路径。
答案 2 :(得分:0)
在分解响应后,我正在尝试一种算法,该算法基于手动标记“连接”机场的机场。这可以节省数百个无法连接到任何地方的机场(当您最后一次通过Cedar Rapids从纽约连接到东京时?)。这将涵盖多达2次中途停留,在2次停留之后我将使用特殊情况算法,完整的树搜索,或标记“未服务”的路线(很多真正的航空公司都会这样做,但对于游戏来说这应该是玩家可定制的反正。
目前的模式是这样的:
寻找不间断!
没有不间断连接?
没有一站式连接?