フローネットワークの2番目に小さい -カットについて何か知られていますか?または、より一般的に、この問題について:
入力:ネットワークおよび数値(すべてバイナリ)。 出力:番目に小さい -カット。k k s t
最小番目 -カットいずれかである -カット、正確にあるように、 -その容量削減がs t (S 、T )s t k − 1 s t
- ペアごとに異なり、
- 容量よりも本当に小さい。
私はそれがどのように計算され、これがケースに関して効率的に行われるかどうかを知りたいです。
最小カットのすべてのエッジにウェイトを追加してから、新しい最小カットを計算することにより、2番目に小さいカットを見つけることができます。これはおそらく、が単項でエンコードされている限り機能します(定数については確かです)。k k
—
ユヴァルフィルマス
どのように役立つかわかりません。2つのエッジおよびのみを持つ3つのノード、、構成されるパスネットワークを想像してください。さらに、容量をおよびます。明らかに、最小カットカットと2番目に小さいカットカットです。説明したように容量を増やすと、容量最小カットとしてが再び得られます。それから2番目に小さいカットをどのように推測するのですか?
—
オリバーウィット
カットの上限に下限を追加することは線形不等式です。最小の上限よりも大きいイプシロンを1つ追加してLPを実行します。必要なものを取得するためにk回繰り返すことができます。これはおそらくネットワーク上の変更として再構築できますが、私はそれを解決していません。
—
カベ
が単項エンコーディングの場合の動作を確認します。バイナリの場合はどうですか?この場合、ネットワークの変更は回の繰り返しで実行できません。
—
オリバーウィット
kがバイナリの場合、簡単な解決策があるとは思わない。説明したように、キャップcの切れ目があるかどうかを確認できます。本質的に可能なcの数を数えているように思えますが、一致数の数え上げに関連して提供され、おそらく#P-completeです。(これは私の直観であり、議論ではありません。)
—
Kaveh