最先端の最大流量アルゴリズムは実用的ですか?


30

最大流量の問題については、非常に高度なアルゴリズムがいくつかあり、少なくとも1つは昨年と同様に開発されたようです。O(mn)時間以上の Orlinの最大フローは、O(VE)で実行されるアルゴリズムを提供します。

一方、私が最もよく実装していると思われるアルゴリズムは次のとおりです(徹底的な検索を行ったとは主張していません;これは単なる観察からです)。

  • エドモンズ・カープ:O(VE2)
  • プッシュラベル:またはO V 3 FIFO頂点選択を使用して、O(V2E)O(V3)
  • ディニックのアルゴリズム:O(V2E)

漸近的な実行時間の優れたアルゴリズムは、現実の問題のサイズに対して実際的ではありませんか?また、「動的ツリー」はかなりの数のアルゴリズムに関係していると思います。これらは実際に使用されていますか?

注:この質問はもともと、ここでスタックオーバーフローについて尋ねられましたが、ここでより適切だと言われました。

編集cs.stackexchange関連する質問、特に動的ツリー(別名リンクカットツリー)を使用するアルゴリズムについて質問しました。これは、この質問をフォローしている人々にとって興味深いものです。


1
一般的に言えば、アルゴリズムが「実用的」か「実装」されているかは少し異なります。理想的には、著者は独自のアルゴリズムの実装をリリースします。その場合、通常はそれらを使用するのが「実用的」です。TCSの文献では、これは多くの場合例外です。しかし、その多くの場合、「実用的」ではないが、他の著者アルゴリズムだけ時々かなりまたは非常に複雑な擬似コードで書かれた論文、...成功の実装は正当性の良いテスト、時々気力をくじくプロセスを...含んで説明を与えられた「実施」する
vznを

3
Andrew Goldbergは、プッシュ再ラベルの作業に基づいて、max flowのさまざまなバリアント用の非常に優れたコードベースを使用していました。私は過去にコードを使用しましたが、とてもきれいでした。残念ながら、このサイトは機能していないようです。
Suresh Venkat

3
@vznアルゴリズムが実際の実装に役立つかどうかに興味があります。そうでないアルゴリズムがあり、これらの「銀河アルゴリズム」と呼ぶ人もいます。なぜなら、それらは優れた漸近的な振る舞いを持っていますが、現在のところそれらを実装することは実用的利益がないためです。(結局、低次の項が重要です。)行列乗算は、漸近的に最良のソリューションが実際に使用されることは決してない、考えられる最良の例です。Max flowが同様の状況であるかどうかについて興味があります。
ロブラクラン

5
アルゴリズムが「実用的」か「実装済み」かは少し異なります。- それは正しいです。アルゴリズムは実用的ではなく実装できますが、その逆はできません。
ジェフ

回答:


22

私は上記リンクの論文の著者の一人です。

コンピュータービジョンで発生するmax-flowインスタンスで良好に機能するアルゴリズム(公開されている実装を使用)を意味するために、「最先端」を使用したことに言及したいだけです。

また、その狭い(まだ実用的な)コンテキスト内に追加したいと思います。多くの場合、パフォーマンスの良いアルゴリズムは理論上の保証が不十分なものです。たとえば、私たちの論文(Boykov-Kolmogorovアルゴリズム)のref [5]はコンピュータービジョンコミュニティで広く使用されていますが、強力なポリタイムランタイムバウンドはありません。

最後に、誰かが興味を持っている場合、私たちの実験からのデータはここから入手できます:http : //ttic.uchicago.edu/~dbatra/research/mfcomp/index.html

コードもまもなく利用可能になります。


あなたがグループに参加したことはとてもきれいです!ようこそ!論文に関する1つの質問[最初に見つけてから]。論文で使用されているアルゴリズムの選択プロセスについてもっと聞くのは非常に興味深いでしょう。それについて完全に詳しく述べているようには見えませんでした。多分あなたはどこかでいくつかの「舞台裏」の背景ノートを共有することができます[例えばウェブページ?]どのアルゴリズムが選択されたのか、省略された理由Orlins最近のものなどのアルゴリズムと、最終的な実装などの見通し。
vzn

7

この質問に答える方法はいくつかありますが、必ずしもコンセンサスの答えではありません。一般に、公開配布用に実装およびリリースされたアルゴリズムは「実用的」です。ただし、考案されたがまだ実装されていない一部のアルゴリズムは実用的かもしれませんが、いわば「審査員が出ています」**

実用的な目的のための良い戦略は、調査を探すことです。また、実用的なアルゴリズムに興味のある人にとって、現実世界のデータに対するベンチマークは、彼らの予想される「現実世界」の振る舞いに関する優れたガイドラインになります。

ベンチマーク調査で十分な場合もありますが、実行可能なアルゴリズムの側では誤りがあります。これは、経験的にベンチマークされた14の「最先端」の最大流量アルゴリズムと、視覚処理インスタンスの最近の徹底的な実証分析です。最大流量には多くの用途があります。「最先端」とは、「実装された」アルゴリズムを指すと解釈されます。

[1] MaxFlowの再訪: VermaとBatraによる高密度ビジョン問題のMaxflowアルゴリズムの経験的比較、2012年

**一部の理論的アルゴリズムは、非公式に「銀河」と呼ばれているTCSコミュニティのカテゴリに追加されていますが、残念ながら、TCSの著者は現在、このカテゴリでアルゴリズムに直接ラベルを付けていません。 「銀河」アルゴリズム。ただし、ブログには参照があります。

この意味での実用性は、おそらく理論研究の新たな新たな次元です。理想的には、この「実用的な」軸/基準に特化した最大流量アルゴリズムの調査があるでしょうが、おそらく執筆時点では存在していません。TCSで最近認識/承認された概念であり、まだ完全に形式化されていない(たとえば、Pアルゴリズムが「効率的」として広く受け入れられているなど)。


3
+1。これがなぜ投票されたのかはわかりません。私はあなたがリンクした論文を読んでいますが、少なくともその問題の領域では、実用的なアプローチが何であるかを見るのに非常に役立ちました。
ロブラクラン

3
ロバート・セッジウィックは、かなり最近の講演で、実験を行わないアルゴリズム設計者は抽象化で失われるリスクがあると述べまし話はグラフ内のパスを見つけることについてであり、maxflowにもいくらか関連しています。質問には答えませんが、誰かにとって興味深いかもしれません。
ジュホ

5
@Rob、この答えの唯一の関連部分は論文へのリンクであり、その論文がまったくリンクされている理由を説明する答えはあまりありません。OPはGoogleによるリンクを見つけたが、それを読んでいないと思います。残りの答えは、OPが専門家ではなく、ここではあまり関係のない問題についてのOPの個人的な見解を述べる一般的な発言と解説です。回答はブログ投稿ではありません。関連する論文へのリンクはコメントとしては良いかもしれませんが、答えにはなりません。これは1つの場合、悪い答えです。それが私がそれを下票した理由です。
カベ

2
@Kaveh公平。この論文は、人々が実際に有用なアルゴリズムと考えるものの有用な指標であることがわかりました。私は多くが答えられていないことに同意します。
ロブラクラン

3
私も下票を理解していません。ポスターがリンクされた記事を読まなかったと信じる理由はなく、関連性があるようです。私は、賛成票を投じたくないが、反対票を投じたいという欲求を見ることができます。
スレシュヴェンカト

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.