Dinic 法は, 上で書いたように, (ちゃんと実装すれば) です.
しかし, 経験的にはもっと速く感じます.
速い. 体感計算量などという言葉を作りたくなるくらい. 体感計算量, 定数倍が重めな . (個人の感想です)
グラフの構築にかかる時間が無視できない感じ.
参考文献1 によれば,
で, こういうグラフなら速い保証があってよいです.
当然なんだけれども, 普段の Dinic からは信じられない遅さ.
最悪ケースについては, 次の二つ(参考文献の2と3)が参考になります.
一つ目は, その名の通りの論文で, ステップかかる
素疎グラフ(割と自明なケース)を挙げています.
素疎なので, ワーストケースってほどワーストじゃない気もしますが, ステップ数が 回かかるケースです. (平均的なケースではもっと滅茶苦茶少ない)
二つ目は, TopCoder の Tutorial ですが, 真ん中あたりにある密グラフがヤバいケースです.
探索順序は
S, a, b, a, e, a, S, b, e, b, f, b, S, c, g, T, g, c, h, T, h, c, S
ではないですか?最初に g に来たときに c に戻るのはなぜでしょうか.
私が理解していない/勘違いしていたら済みません.