私がよく実装する多くの最大フローアルゴリズム、ダイニックのアルゴリズム、プッシュ再ラベルなどでは、動的ツリー(リンクカットツリーとも呼ばれます)を使用することで漸近的な時間コストを改善できます。
- プッシュ再ラベルは、通常またはまたはますが、動的ツリーO (V 3)O (V 2 √O(VElog(V2/E))
- Dinicのアルゴリズムはで実行されますが、動的ツリーO (V E log (V ))
ただし、ほとんどのライブラリでのmax-flowアルゴリズムの実用的な実装では、このデータ構造を使用していないようです。ダイナミックツリーは、実際には最大フロー計算に使用されていますか?または、実際の問題のサイズに役立つにはオーバーヘッドが大きすぎますか?
リンクカットツリーが使用される他の問題ドメインはありますか?
この質問は、cstheoryで私が尋ねた質問に関連しています。最先端のMaximum Flowアルゴリズムは実用的ですか?