algorithm - 为什么贪心算法找不到二部图的最大独立集?

标签 algorithm graph graph-theory

我正在尝试使用贪心法解决二部图上的最大独立集问题。所以遇到了这篇文章,它正是我想做的。但我只关注二分图。答案中的反例不是二分图。是否有任何二分图无法使用此图?

Greedy(G):
 S = {}
 While G is not empty:
 Let v be a node with minimum degree in G
 S = union(S, {v})
 remove v and its neighbors from G
return S

Why is greedy algorithm not finding maximum independent set of a graph?

最佳答案

the original question answer 中的方法相同这里也适用,稍微修改一下图表:

(2,2,4)theta 7-vertex bipartite graph

首先删除#5,剩下的是爪子图(节点 (1,3,4,7))。以任何顺序去除它的叶子。你发现了一个四节点独立集:(1,3,5,7)

首先删除#6。剩下的是一个 4 循环。删除任何节点会强制执行以下任一集合:

  1. (1,3,6)
  2. (2,4,6)

两者都是三元素最大(例如,不能扩展)独立集,因此不是最大(例如,最大可能)。

关于algorithm - 为什么贪心算法找不到二部图的最大独立集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15873272/

相关文章:

ruby - Neo4j 上的拓扑排序

algorithm - 如何设计一种算法来计算倒计时式数学数字拼图

c++ - 生成不同于数组的 1000 个元素的新元素

c - 在用邻接矩阵表示的图中插入元素

c++ - 创建表示二维矩阵中所有可能路径的图形

algorithm - 寻找图是否具有唯一拓扑顺序的时间复杂度

Java循环算法

php - 如何从表中选择一行,该行包含一个正整数字段,但0用于表示 "any"

graph - Opentripplanner Graph.obj 文件未找到错误

java - 查找给定邻接矩阵中有多少个相连的节点组