グラフでmaxflowを見つけるために、Goldberg&Raoアルゴリズムを実装したいと思います。私の問題は、すべての論文とレポートが「結果のグラフで、ブロッキングフローまたは値デルタのフローを見つける」と述べている更新手順です。彼らはすべて、ブロッキングフローを見つけるためにGoldberg&Tarjanを参照しています。理解できないことが2つあります。
- デルタの価値の流れを見つけるにはどうすればよいですか?
- しかし、より重要なのは、どのようにしてブロッキングフローを見つけることができるかです。
質問2に関して、私は2つの論文(Goldberg&Tarjanによる「最大フロー問題への新しいアプローチ」と動的ツリーに関するもの)を読みました。どちらもそれほど難しくありませんでした。Goldberg&Raoに関するすべての論文/レポート/本は、Goldberg&Tarjanによる論文を参照しており、Goldberg&Raoはプッシュ/再ラベル付けアルゴリズムを使用せず、ブロッキングフローを見つけていることを強調しています。しかし、私の意見では、Tarjanはプッシュ/リラベルアルゴリズムのみを説明しており、フローのブロックについては何も見つかりません。
T.コーメン、「アルゴリズムの概要」、第3版
ゴールドバーグとラオによって最大フロー問題の日付に漸近最速アルゴリズム、時間に実行、ここでC = max c (u 、v )。このアルゴリズムは、push-relabelメソッドを使用しませんが、代わりにブロッキングフローの検出に基づいています。
A. Goldberg&S. Rao、「Beyond the Flow Decomposition Barrier」(オリジナルペーパー)