この問題は次のように与えられます: DAG と number が与えられた場合、ソースからシンクへのパスの0 < p ≤ 1
少なくとも一部を切断する (つまり、入ってくるアークがない) (つまり、出るアークがない) 頂点のカーディナリティが最小のセットを返します。 p
)。の場合p = 1
、問題は最小カットに相当します。ただし、の他の値についてはp
、答えがどうなるかわかりません。
私が考えているアルゴリズムは、最初に DAG の最小カット セットを計算し、次に基準を満たすように刈り込むことです。これ自体、見つけたサブセットが実際にp
与えられた特定の最小カットセットであるかどうかを確認するのは興味深いことです。このアルゴリズムの問題は、最終的な答えで必要のない多くのノードを計算し、実際には最初に「より大きな」問題を解決しているため、無駄が多いことです。
この問題の解決策へのポインタはありますか? min-cut の一部のアルゴリズムでは、この追加の制約を早期停止基準として設定することは可能ではないでしょうか?
削除されたパスの数を確認するために、削除によって切断されたパスの数がわかるように、各頂点にインデックスを付けて (必要に応じて更新し続ける) とします。更新中のインデックスの複雑さについて心配しないでください。最後にもう 1 つ、サイズなどに関して、結果のコンポーネントに制約はありません。