本文提出了一種新的算法,用於近似計算有向圖中固定長度h的循環數量。該算法的核心思路如下:
首先使用一個黑盒子Find_Heavy找到圖中所有重點頂點(參與至少Λ個循環的頂點)的一個超集,並排除所有輕點頂點(參與少於Λ/polylog(n)個循環的頂點)。
然後使用另一個黑盒子Count_Heavy,計算出包含至少一個重點頂點的循環數量的近似值。
對於剩下的頂點,採用遞歸的方式,隨機採樣一個子圖,並遞歸地計算該子圖中循環的數量。
最終將第2步和第3步的結果相加,即可得到整個圖中循環數量的近似值。
作者還證明了,在一些流行的細粒度假設下,該算法的運行時間是最優的。
具體來說,對於長度為h的循環,算法的運行時間為O~(MM(n, n/t^(1/(h-2)), n)),其中t是圖中循環的數量,MM(a, b, c)表示a行b列和b行c列矩陣相乘的時間複雜度。這一運行時間優於之前的算法。
此外,作者還提出了一個條件下限,表明在某些流行的細粒度假設下,任何隨機算法都需要至少MM(n, n/t^(1/(h-2)), n)^(1-o(1))的時間來近似計算h循環的數量。這表明,本文提出的算法是最優的。
翻譯成其他語言
從原文內容
arxiv.org
深入探究