最小循环基算法实现与整数规划近似方法
最小循环基算法分析
-
更新集合 S 的时间分析
- 实验表明,算法 1 的运行时间主导因素(至少对于随机图)不是更新集合 S 的时间,而是计算循环的时间。更新集合 S 的时间复杂度为 (O(m^3)),计算循环的时间复杂度为 (O(m^2n + mn^2 \log n))。在稀疏图上,该算法的运行时间为 (O(n^3 \log n)),与已知最快算法相同。
- 目前解决最小循环基(MCB)问题最快的算法运行时间为 (O(m^2n + mn^2 \log n + m^{\omega})),其中 (m^{\omega}) 因子被 (m^2n) 主导。该算法通过快速矩阵乘法技术改进了更新集合 S 的时间。
- 实际实验显示,更新集合 S 所需时间只是计算循环所需时间的一小部分。例如,在随机加权图中,通过算法 1 对比更新集合 (S_i) 和计算循环 (C_i) 所需的时间,可直观看到这一差异。
- 进一步实验发现,集合 S 的平均基数远小于 N,且实际进行集合更新的次数(当 (\langle C_i, S_j \rangle = 1) 时)远小于 (N(N - 1)/2)。启发式 H1 通过并行执行 32 或 64 次操作,显著降低了更新集合 S 的运行时间常数因子,但不影响最短路径计算。
|n|m|N|N(N - 1)/2|max(|S|)|avg(|S|)|# ⟨S, C⟩ = 1|
|----|----|----|----|----|----|----|
|sparse (m ≈ 2n)
超级会员免费看
订阅专栏 解锁全文
21

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



