并行算法在多领域的应用与优化
1. 并行双变量线性规划
1.1 算法步骤与计算
在并行双变量线性规划中,首先要计算垂直直线 (L_s) 与每个凸区域 (I(G_j)) 边界的交点,并获取该交点附近 (I(G_j)) 边界的斜率信息。可通过对 (I(G_j)) 边界上排序的顶点序列进行二分查找得到 (r_s) 的值。接着利用这些交点和斜率信息确定最优解 (p^*) 相对于 (L_s) 的位置,此计算可通过 (O(1)) 并行前缀操作完成。
由于有 (O((f(i + 1))^2)) 条垂直直线 (L_s),且每个组 (G_j) 的顶点序列大小也是 (O((f(i + 1))^2)),所以可以使用并行合并来计算所有垂直直线与 (I(G_j)) 边界的交点,而非二分查找。整个步骤 4 在 EREW PRAM 上需要 (O(\log|H(i)|)) 时间和 (O(|H(i)|)) 工作量。步骤 5 中半平面的消除在 EREW PRAM 上可轻松在 (O(\log|H(i)|)) 时间和 (O(|H(i)|)) 工作量内完成。步骤 7 通过应用 Chen 的算法到规模为 (O(n/\log n)) 的问题上,在 EREW PRAM 上需要 (O(\log n)) 时间和 (O(n)) 工作量。
1.2 子集规模分析与算法复杂度
经过步骤 5 的消除后,分析子集 (H(i + 1)) 的规模。假设最优解 (p^*) 位于两条连续的垂直直线 (L_k) 和 (L_{k + 1}) 之间,根据引理 2,步骤 3 确保在 (L_k) 和 (L_{k + 1}) 之间只有 (O(\frac{|H(i)|}{(f(i + 1))^2})) 个顶点。如果凸
超级会员免费看
订阅专栏 解锁全文

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



