要找到具有V个节点的无向图G的最小控制集,可以使用如下启发式算法:
- 最初,支配集为空,D:0。
- 在算法执行过程中,集合D根据“懒惰”原理增长,即直到D扩展到
可能。
- 对于V中的每个顶点v,我们保留计数CovCnt [v],这是顶点被其余顶点覆盖的次数。
- 我们假设v与自身相邻
- CovCnt [v]初始化为deg [v] + 1,其中deg [v]表示v的次数。
- 我们还通过应用特殊的评分策略将顶点排为潜在中心来估计v的“重要性”。
- 最初,顶点的分数等于其覆盖数,以反映经验法则,应首先检查低度顶点。
- 然后,在每个步骤中,检查分数最小的顶点x,即
- 如果存在一个覆盖数为1的相邻顶点,则将x加到D上;如果是这样,则顶点x是图形中唯一可以覆盖此类邻居的剩余顶点。因此,必须将x添加到当前的主导集D中。x的所有邻居的覆盖计数都设置为0,以将其指定为被覆盖
- 否则,x用于减少覆盖计数并增加尚未覆盖的相邻顶点的分数。
我使用了here
中的这种算法
我的问题是,如何修改它以用于有向图?