1
2
至于名称,这是一个顶点覆盖问题。最佳顶点覆盖是NP难与体面的近似解决方案,但您的问题更简单。在更严格的边缘选择标准下,您将看到一个伪最大值。具体来说,一旦选择了一条边,每个连接的边都会被删除(表示要交换的顶点的删除)。 例如,这里有一个标准的贪婪方法:
选择的边列表提供要交换的顶点。
保留邻接信息的方法取决于图形属性;请参阅友好的本地算法文本。为了简单起见,可以从邻接矩阵开始。 与邻接信息一样,大多数其他的速度改进将最好地应用于特定形状的图形,但同时兼顾时间与空间的复杂性。 例如,您的问题语句似乎暗示了顶点是以方形模式布局的,从中我们可以得到许多有趣的属性。例如,该系统很容易并行化。此外,邻接信息将是高度规则的,但在大的图形尺寸上是稀疏的(大多数顶点不会相互连接)。这使得邻接矩阵具有较高的开销;您可以将邻接矩阵存储在4元组数组中,因为这样可以保持快速访问,但几乎完全消除开销。 |
2
0
如果你有更大的图表,看看 boost graph 图书馆。它为图提供了良好的数据结构,并为不同类型的图遍历提供了基本迭代器。 |
quantummidget · 正在查找BFS父关系数组 6 年前 |
I'm not human · Prolog查找不相关的图形节点 6 年前 |
WIZARD_ · 无向非加权图的最大顶点对数 7 年前 |
user9137770 · 邻接列表与邻接矩阵的区别 7 年前 |
Sook Yee Lim · 在给定邻接矩阵的情况下求两个图的交并? 7 年前 |
DK100 · 在广度优先搜索中处理重复节点 7 年前 |
Keith Pham · 最大化给定预算的子图“价值” 7 年前 |
Mathochist · 在配对列表中查找最大配对数 7 年前 |