单对最短路径多个旅行者

时间:2013-02-14 12:48:27

标签: shortest-path

我正在编写一个基于回合制的策略游戏,我有一个特殊的单对最短路径问题。我有一个带有非负非零边权重的加权有向图,这里有多个旅行者,即具有不同运动类型的单位作为一组一起旅行。根据移动类型,图表的每个边缘对于不同的单位具有不同的权重。

通常会使用例如。 Dijkstras算法解决最短路径问题。但是,由于多个单元作为一组一起移动并且每个单元具有不同的边缘权重,所以情况可能是最佳路径与单独移动的任何单个单元的最佳路径不同。从下面可以看出

the example picture

红色和绿色从S移动到D.单独红色移动的最佳路径是SAD,成本为2,单独绿色移动的最佳路径是SCD,成本为2.在这两种情况下,其他单位的移动成本为5,因此单位一起移动的最佳路径是SBD,最大移动成本为4。

每单位类型每回合不同数量的移动点似乎不是问题,因为边缘权重可以被标准化。这可以用线性程序表示并用单纯形算法求解吗?看起来我们会有多个目标函数,我们希望最大限度地减少最大值。但是,是否有更简单的解决方案?

1 个答案:

答案 0 :(得分:0)

如果您真的希望多个旅行者在一个小组中旅行,那么您将需要使用某种优化算法并找到最佳值,就像您建议的那样。

另一方面,如果您不需要整个组的最佳(可能需要一些时间),您可以尝试使用启发式算法或近似优化算法。

由于我不知道游戏的细节,我不能说哪种启发式对你有用。或许,您可以通过从每个组(传单,游泳者,地面单位......)中选择一个代表来最小化搜索空间,并找到所选单位的最佳组路径。