我搜索了Google和Stack Overflow以获得我的问题的答案,但我找不到。
我需要找到一个城市电网的最佳分布。城市由连通图表示。我想在一些节点之间分配发电厂,以便覆盖电网中的所有节点。问题是每个发电厂都有一定的“范围”(它只能覆盖两个节点的“半径”)。我的计划需要找到覆盖整个城市的最低数量的发电厂及其位置。
我从搜索中得知它应该与MST(最小生成树)有关,但问题在于发电厂的范围有限。
我已经考虑过遍历城市中的每个节点并计算包含该节点中发电厂范围内所有节点的子图,直到找到覆盖最多未覆盖节点的节点,然后继续这样做直到整个城市被覆盖(基本上是暴力强迫问题)但这似乎非常不实用,我想知道是否还有其他更有效的方法来解决这个问题。
感谢。
答案 0 :(得分:1)
不幸的是,通过减少dominating set问题,已知这个问题是NP难的。
给定图G,G中的支配集是一组节点D,使得图中的每个节点都在D中或者距离D一步。在图中找到最小支配集的问题是已知是NP难的,这个问题很容易减少到你想要解决的问题:给定图G,产生一个与G具有相同结构的城市(表示为图形),然后给每个发电厂一个半径为1(意味着它可以覆盖节点及其所有邻居)。找到覆盖整个城市的最小的发电厂组,然后最终产生一个主导的图表集。因此,你的问题是NP难的。
如this section of the Wikipedia page中所述,事实证明这个问题难以估算。维基百科页面列出了一些用于逼近它的算法和方法,但它似乎是抵抗多项式时间近似方案的NP难问题之一。
希望这有帮助!