1)DAGの各頂点の子孫の数を計算するために、単純なO(| E |。| V |)よりも優れたアルゴリズムはありますか?
2)ノードが1つずつ追加され、既存のノードの空でないサブセットに接続すると想定して、これを行うオンラインアルゴリズムはありますか?
コンテキスト:m = O(n)、何百万もの頂点、通常は数千万のエッジの場合に興味があります。または、シンクでもある子孫の数を数えると便利です。
すべてのノードの子孫のセットを表す方法として、確率論的アプローチはmin-hashingです。min-hash構造の和集合は取るに足らないものであり、un-hashの一致の数から和集合の基数を推定できます。
ただし、DAGを伝播するときの動作がどの程度かはわかりませんが、直感的には、エラーがかなり速く複合するように見えます。
非常に関連:https : //cstheory.stackexchange.com/questions/553/what-bounds-can-be-put-on-counting-reachable-nodes-in-a-dag そして実際には:https:// cstheory.stackexchange.com/questions/18787/what-is-the-fastest-deterministic-algorithm-for-incremental-dag-reachability