我正在设计一个城市建设游戏并遇到了一个问题。
想象一下 Sierra 的Caesar III游戏机制:您有许多城区,每个城区都有一个市场。距离上有几个粮仓与有向加权图相连。区别:人(这里是汽车)是形成交通拥堵的单位(这里是图权重)。
注:在凯撒系列游戏中,人们收割粮食并将其储存在几个大粮仓中,而许多市场(小商店)从粮仓中取出食物并运送给市民。
任务:告诉每个地区他们应该从哪里获取食物,同时花费最少的时间并尽量减少城市道路上的拥堵。
地图示例
假设黄色区域相应地需要 7、7 和 4 个苹果。相应地,蓝色粮仓有 7 个和 11 个苹果。
假设边权重与其长度成正比。然后,解决方案应该类似于边缘上指示的灰色数字。例如,第一个区从第一个粮仓获得 4 个苹果,从第二个粮仓获得 3 个苹果,而最后一个区从第二个粮仓获得 4 个苹果。
在这里,垂直道路首先被占用到最大,然后剩余的工人被送到对角线路径。
问题
我应该使用什么实用且非常快速的算法?我正在查看一些描述拥塞游戏的论文(拥塞游戏:竞争优化等),但无法了解全局。