有一种贪婪算法,用于查找使用DFS遍历的树的最小顶点覆盖。
- 对于树的每个叶子,选择其父级(即,其父级处于最小顶点覆盖范围内)。
- 对于每个内部节点:
如果未选择其任何子节点,则选择此节点。
如何证明这种贪婪策略给出了最佳答案?是否没有比上述算法产生的顶点覆盖更小的尺寸?
我认为第二步的逻辑不正确。如果您考虑一个退化的树,其中有6个节点一直向下下降(将其标记为1至6对应其深度)。然后,算法的第一步将选择节点5。第二步可能将选择第一个节点(根),然后选择第二个节点(子节点)或第三个节点。但是,这是不正确的,因为您只想选择节点2和节点5以获得正确的解决方案。
—
miguel.martin
@ miguel.martin如果“顶点覆盖”仅包含编号为2和5的顶点,则不会覆盖节点3和4之间的边。
—
Laschet Jain's