我正在为游戏 Defcon 开发一个 AI 机器人。游戏中存在拥有不同人口数量的城市,以及射程有限的防御建筑。我正在努力研究一个好的算法来放置防御塔。
- 人口较多的城市更需要防御
- 失去防御塔是一个打击,所以塔应该彼此靠近放置
- 塔和城市只能放置在陆地上
因此,根据这三条规则,我们发现最佳的放置方式是将塔围绕人口最多的区域放置成一个环(虽然我不想要一个仅仅盲目地在人口最多的区域周围放置一个环的算法,有时候可能会有两组城市相隔很远,在这种情况下,算法应该创建两个圆圈,每个圆圈放置我总塔数的一半)。
我想知道可以用什么样的算法来确定塔的放置位置?
回答:
我不了解这款游戏,但从你的描述来看,你需要的算法类似于解决(加权)k-中心问题。 不幸的是,这是一个 NP 难题,所以在最好的情况下,你只能得到一个被某个因子限制的近似值。