作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
给定图 G = (V,E) 的边子集,我们如何检查它是否是图的有效割集?注意:割是将图的顶点划分为两个不相交的子集。因此,切割的切割集是其端点位于分区的不同子集中的边的集合。我有兴趣找到解决这个问题的算法
最佳答案
一个简单的算法是从图中删除可疑的切边,然后查看是否仍然可以从已删除边的节点到对应的节点。如果你仍然可以,那不是一个完整的削减。因此,如果您删除具有节点 A 和 D 的 E2,您可以使用 A 的广度优先搜索,看看是否到达 D。它在空间需求和复杂性方面应该是线性的,因为我们存储了我们访问过的所有节点,所以我们不要回溯并访问任何节点两次。这个 wiki 页面有一些可能有用的漂亮图片:http://en.wikipedia.org/wiki/Cut_%28graph_theory%29
关于算法:对于 G = (V,E),如何确定边集(e 属于 E)是否是图的有效割集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5768329/
我有一组具有唯一节点的连接边。它们使用父节点连接。考虑以下示例代码和插图: CREATE TABLE network ( node integer PRIMARY KEY, parent in
我有一个预流推送网络流算法的实现,它返回一个流网络的最大流。我需要的是确定构成图中切割的饱和边集。 在我当前的实现中,我在图中寻找饱和的前向边缘和空的后向边缘,从边缘源到边缘目标的距离大于或等于 1(
我是一名优秀的程序员,十分优秀!