最优图二分的算法工程与移动代理连通性阈值的实证分析
在图论算法领域,图二分问题以及移动代理在网格图上的连通性问题一直是研究的热点。本文将围绕这两个方面展开,详细介绍相关算法的实验情况以及移动代理连通性阈值的实证分析。
最优图二分算法实验
1. 实验实现细节
程序使用 C 语言编写,约有 1400 行代码。源代码和测试数据可从 http://www.minet.uni-jena.de/˜hueffner/occ 获取。
在数据结构方面,超过 90%的时间用于在流网络中寻找增广路径。图数据结构只需枚举给定顶点的邻居,常见操作还包括根据格雷码“启用”或“禁用”顶点。因此,采用了简单的数据结构,图由邻居列表数组表示,空指针表示禁用顶点。由于流仅模拟一组顶点不相交的路径,只需存储每个节点的流前驱和后继,将内存使用减少到 O(n)。
在寻找顶点割时,算法的“内循环”需要在图 G 中找到两个集合 Y1 和 Y2 之间的最小顶点割,或等价地,找到两个集合之间的最大顶点不相交路径集。这是最大流技术的经典应用,利用最大流最小割定理,通过创建新的有向图 G′来解决顶点割问题。由于割相对较小(小于或等于 k),采用了 Edmonds - Karp 算法,该算法反复在流网络中找到最短增广路径并增加流量,直到无法再增加。
实验在 AMD Athlon 64 3400 + 机器上进行,运行 Debian GNU/Linux 3.1 操作系统,使用 GNU gcc 3.4.3 编译器以“-O3 -march = k8”选项编译。迭代压缩算法的内存需求约为 3 MB,ILP 算法最高可达 500 MB。
超级会员免费看
订阅专栏 解锁全文
18

被折叠的 条评论
为什么被折叠?



