给定V顶点(城镇)和E边缘(城镇之间的路线)。公司决定建造仓库,以确保对于任何城镇X,将有一个位于X或紧邻X镇的仓库。
如何找到公司必须建造的最少数量的仓库。
示例:设V = 10且E = 7,边对为:
1 2
2 4
2 5
3 6
8 6
9 7
10 7
这里的答案将是3,因为它足以在城镇编号2,6,9建造仓库。
我的方法:
我首先计算每个城市的程度,然后在城市中放置一个最大程度的仓库。然后我将所有相邻的城市标记为已访问,然后移动到下一个未访问的最大节点并将其放置在仓库中。我这样做,直到没有未访问者离开。 我的方法是否正确?请帮帮我。
答案 0 :(得分:5)
您需要做的就是形成一个图表:
然后找到此图表的minimal dominating set。您应该在每个城镇中建立一个与最小支配集中的顶点对应的仓库。
不幸的是,主导集合问题是NP完全的,所以找到确切的最小值很难,但是你的贪婪算法应该给出一个很好的近似值。