http://en.wikipedia.org/wiki/Dominating_set
现在,我有个想法要找到它,我需要你的意见
第一:
在图上创建一个秩系统,每个顶点都有一个秩。顶点等级为:
2*[出边数] - [入边数]
第二:
改变DFS算法:使其也返回生成林上所有根的组(不改变复杂度)
算法:
1. 以所有顶点作为最小支配集
开始 2. 以起始顶点:排名最高的顶点运行 DFS
3. 查看生成森林上的根,获取最小支配集的列表并删除每个顶点不是生成森林上的根
4. 重复 2-3 与保留在最小支配集上的下一个最高排名的顶点
5. 当您在最小支配集上的每个顶点上运行 DFS 时停止
6. 将其返回
我使用 adj-list,所以 DFS 是 O(|V| + |E|) 你觉得这个算法怎么样?它会起作用吗?我可以做得更好吗?该算法的摊销最坏情况是什么?