<p>We present fast algorithms for approximate shortest paths in the massively parallel computation (MPC) model. We provide randomized algorithms that take <InlineEquation ID="IEq1"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="446_2025_482_Article_IEq1.gif" Format="GIF" Height="19" Rendition="HTML" Resolution="72" Type="Linedraw" Width="101" /> </InlineMediaObject> <EquationSource Format="TEX">\(\textrm{poly}(\log {\log {n}})\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mtext>poly</mtext> <mo stretchy="false">(</mo> <mo>log</mo> <mrow> <mo>log</mo> <mi>n</mi> </mrow> <mo stretchy="false">)</mo> </mrow> </math></EquationSource> </InlineEquation> rounds in the near-linear memory MPC model. Our results are for unweighted undirected graphs with <i>n</i> vertices and <i>m</i> edges. Our first contribution is a <InlineEquation ID="IEq2"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="446_2025_482_Article_IEq2.gif" Format="GIF" Height="19" Rendition="HTML" Resolution="72" Type="Linedraw" Width="49" /> </InlineMediaObject> <EquationSource Format="TEX">\((1+\epsilon )\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mo stretchy="false">(</mo> <mn>1</mn> <mo>+</mo> <mi>ϵ</mi> <mo stretchy="false">)</mo> </mrow> </math></EquationSource> </InlineEquation>-approximation algorithm for Single-Source Shortest Paths (SSSP) that takes <InlineEquation ID="IEq3"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="446_2025_482_Article_IEq1.gif" Format="GIF" Height="19" Rendition="HTML" Resolution="72" Type="Linedraw" Width="101" /> </InlineMediaObject> <EquationSource Format="TEX">\(\textrm{poly}(\log {\log {n}})\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mtext>poly</mtext> <mo stretchy="false">(</mo> <mo>log</mo> <mrow> <mo>log</mo> <mi>n</mi> </mrow> <mo stretchy="false">)</mo> </mrow> </math></EquationSource> </InlineEquation> rounds in the near-linear MPC model, where the memory per machine is <InlineEquation ID="IEq4"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="446_2025_482_Article_IEq4.gif" Format="GIF" Height="22" Rendition="HTML" Resolution="72" Type="Linedraw" Width="37" /> </InlineMediaObject> <EquationSource Format="TEX">\(\tilde{O}(n)\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mover accent="true"> <mi>O</mi> <mo stretchy="false">~</mo> </mover> <mrow> <mo stretchy="false">(</mo> <mi>n</mi> <mo stretchy="false">)</mo> </mrow> </mrow> </math></EquationSource> </InlineEquation> and the total memory is <InlineEquation ID="IEq5"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="446_2025_482_Article_IEq5.gif" Format="GIF" Height="22" Rendition="HTML" Resolution="72" Type="Linedraw" Width="59" /> </InlineMediaObject> <EquationSource Format="TEX">\(\tilde{O}(mn^{\rho })\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mover accent="true"> <mi>O</mi> <mo stretchy="false">~</mo> </mover> <mrow> <mo stretchy="false">(</mo> <mi>m</mi> <msup> <mi>n</mi> <mi>ρ</mi> </msup> <mo stretchy="false">)</mo> </mrow> </mrow> </math></EquationSource> </InlineEquation>, where <InlineEquation ID="IEq6"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="446_2025_482_Article_IEq6.gif" Format="GIF" Height="12" Rendition="HTML" Resolution="72" Type="Linedraw" Width="13" /> </InlineMediaObject> <EquationSource Format="TEX">\(\rho \)</EquationSource> <EquationSource Format="MATHML"><math> <mi>ρ</mi> </math></EquationSource> </InlineEquation> is a small constant. Our second contribution is a distance oracle that allows to approximate the distance between any pair of vertices. The distance oracle is constructed in <InlineEquation ID="IEq7"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="446_2025_482_Article_IEq1.gif" Format="GIF" Height="19" Rendition="HTML" Resolution="72" Type="Linedraw" Width="101" /> </InlineMediaObject> <EquationSource Format="TEX">\(\textrm{poly}(\log {\log {n}})\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mtext>poly</mtext> <mo stretchy="false">(</mo> <mo>log</mo> <mrow> <mo>log</mo> <mi>n</mi> </mrow> <mo stretchy="false">)</mo> </mrow> </math></EquationSource> </InlineEquation> rounds and allows to query a <InlineEquation ID="IEq8"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="446_2025_482_Article_IEq8.gif" Format="GIF" Height="19" Rendition="HTML" Resolution="72" Type="Linedraw" Width="107" /> </InlineMediaObject> <EquationSource Format="TEX">\((1+\epsilon )(2k-1)\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mo stretchy="false">(</mo> <mn>1</mn> <mo>+</mo> <mi>ϵ</mi> <mo stretchy="false">)</mo> <mo stretchy="false">(</mo> <mn>2</mn> <mi>k</mi> <mo>-</mo> <mn>1</mn> <mo stretchy="false">)</mo> </mrow> </math></EquationSource> </InlineEquation>-approximate distance between any pair of vertices <i>u</i> and <i>v</i> in <i>O</i>(1) additional rounds. The algorithm is for the near-linear memory MPC model with total memory of size <InlineEquation ID="IEq9"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="446_2025_482_Article_IEq9.gif" Format="GIF" Height="22" Rendition="HTML" Resolution="72" Type="Linedraw" Width="135" /> </InlineMediaObject> <EquationSource Format="TEX">\(\tilde{O}((m+n^{1+\rho })n^{1/k})\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mover accent="true"> <mi>O</mi> <mo stretchy="false">~</mo> </mover> <mrow> <mo stretchy="false">(</mo> <mrow> <mo stretchy="false">(</mo> <mi>m</mi> <mo>+</mo> <msup> <mi>n</mi> <mrow> <mn>1</mn> <mo>+</mo> <mi>ρ</mi> </mrow> </msup> <mo stretchy="false">)</mo> </mrow> <msup> <mi>n</mi> <mrow> <mn>1</mn> <mo stretchy="false">/</mo> <mi>k</mi> </mrow> </msup> <mo stretchy="false">)</mo> </mrow> </mrow> </math></EquationSource> </InlineEquation>, where <InlineEquation ID="IEq10"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="446_2025_482_Article_IEq6.gif" Format="GIF" Height="12" Rendition="HTML" Resolution="72" Type="Linedraw" Width="13" /> </InlineMediaObject> <EquationSource Format="TEX">\(\rho \)</EquationSource> <EquationSource Format="MATHML"><math> <mi>ρ</mi> </math></EquationSource> </InlineEquation> is a small constant. While our algorithms are for the near-linear MPC model, in fact they only use one machine with <InlineEquation ID="IEq11"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="446_2025_482_Article_IEq4.gif" Format="GIF" Height="22" Rendition="HTML" Resolution="72" Type="Linedraw" Width="37" /> </InlineMediaObject> <EquationSource Format="TEX">\(\tilde{O}(n)\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mover accent="true"> <mi>O</mi> <mo stretchy="false">~</mo> </mover> <mrow> <mo stretchy="false">(</mo> <mi>n</mi> <mo stretchy="false">)</mo> </mrow> </mrow> </math></EquationSource> </InlineEquation> memory, where the rest of machines can have sublinear memory of size <InlineEquation ID="IEq12"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="446_2025_482_Article_IEq12.gif" Format="GIF" Height="19" Rendition="HTML" Resolution="72" Type="Linedraw" Width="45" /> </InlineMediaObject> <EquationSource Format="TEX">\(O(n^{\gamma })\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mi>O</mi> <mo stretchy="false">(</mo> <msup> <mi>n</mi> <mi>γ</mi> </msup> <mo stretchy="false">)</mo> </mrow> </math></EquationSource> </InlineEquation> for a small constant <InlineEquation ID="IEq13"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="446_2025_482_Article_IEq13.gif" Format="GIF" Height="16" Rendition="HTML" Resolution="72" Type="Linedraw" Width="43" /> </InlineMediaObject> <EquationSource Format="TEX">\(\gamma &lt; 1\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mi>γ</mi> <mo>&lt;</mo> <mn>1</mn> </mrow> </math></EquationSource> </InlineEquation>. All previous algorithms for approximate shortest paths in the near-linear MPC model either required <InlineEquation ID="IEq14"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="446_2025_482_Article_IEq14.gif" Format="GIF" Height="19" Rendition="HTML" Resolution="72" Type="Linedraw" Width="59" /> </InlineMediaObject> <EquationSource Format="TEX">\(\Omega (\log {n})\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mi mathvariant="normal">Ω</mi> <mo stretchy="false">(</mo> <mo>log</mo> <mi>n</mi> <mo stretchy="false">)</mo> </mrow> </math></EquationSource> </InlineEquation> rounds or had an <InlineEquation ID="IEq15"> <InlineMediaObject> <ImageObject Color="BlackWhite" FileRef="446_2025_482_Article_IEq14.gif" Format="GIF" Height="19" Rendition="HTML" Resolution="72" Type="Linedraw" Width="59" /> </InlineMediaObject> <EquationSource Format="TEX">\(\Omega (\log {n})\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mi mathvariant="normal">Ω</mi> <mo stretchy="false">(</mo> <mo>log</mo> <mi>n</mi> <mo stretchy="false">)</mo> </mrow> </math></EquationSource> </InlineEquation> approximation. Our approach is based on fast construction of near-additive emulators, limited-scale hopsets and limited-scale distance sketches that are tailored for the MPC model. While our end-results are for the near-linear MPC model, many of the tools we construct such as hopsets and emulators are constructed in the more restricted sublinear MPC model.</p>

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Massively parallel algorithms for approximate shortest paths

  • Michal Dory,
  • Shaked Matar

摘要

We present fast algorithms for approximate shortest paths in the massively parallel computation (MPC) model. We provide randomized algorithms that take \(\textrm{poly}(\log {\log {n}})\) poly ( log log n ) rounds in the near-linear memory MPC model. Our results are for unweighted undirected graphs with n vertices and m edges. Our first contribution is a \((1+\epsilon )\) ( 1 + ϵ ) -approximation algorithm for Single-Source Shortest Paths (SSSP) that takes \(\textrm{poly}(\log {\log {n}})\) poly ( log log n ) rounds in the near-linear MPC model, where the memory per machine is \(\tilde{O}(n)\) O ~ ( n ) and the total memory is \(\tilde{O}(mn^{\rho })\) O ~ ( m n ρ ) , where \(\rho \) ρ is a small constant. Our second contribution is a distance oracle that allows to approximate the distance between any pair of vertices. The distance oracle is constructed in \(\textrm{poly}(\log {\log {n}})\) poly ( log log n ) rounds and allows to query a \((1+\epsilon )(2k-1)\) ( 1 + ϵ ) ( 2 k - 1 ) -approximate distance between any pair of vertices u and v in O(1) additional rounds. The algorithm is for the near-linear memory MPC model with total memory of size \(\tilde{O}((m+n^{1+\rho })n^{1/k})\) O ~ ( ( m + n 1 + ρ ) n 1 / k ) , where \(\rho \) ρ is a small constant. While our algorithms are for the near-linear MPC model, in fact they only use one machine with \(\tilde{O}(n)\) O ~ ( n ) memory, where the rest of machines can have sublinear memory of size \(O(n^{\gamma })\) O ( n γ ) for a small constant \(\gamma < 1\) γ < 1 . All previous algorithms for approximate shortest paths in the near-linear MPC model either required \(\Omega (\log {n})\) Ω ( log n ) rounds or had an \(\Omega (\log {n})\) Ω ( log n ) approximation. Our approach is based on fast construction of near-additive emulators, limited-scale hopsets and limited-scale distance sketches that are tailored for the MPC model. While our end-results are for the near-linear MPC model, many of the tools we construct such as hopsets and emulators are constructed in the more restricted sublinear MPC model.