0

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

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

示例图片

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

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

4

1 回答 1

0

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

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

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

于 2013-02-14T13:04:06.540 回答