隣接行列として実装したグラフがあります。これはこのように見えます。
v1 v2 v3 v4
v1 0 1 0 2
v2 1 0 3 0
v3 0 3 0 0
v4 2 0 0 0
私のコードでは、行列は int[][] 行列です。
今、列挙によってこのグラフの最小カットを取得したいと思います。しかし、これを行う方法がわかりません。私はすでにいくつかのランダム ミンカット アルゴリズムを知っていますが、小さなグラフの場合、Vertex < 6 のグラフの Karger と Stein のアルゴリズムのように、列挙によってミンカットを見つけたいと考えています。このアルゴリズムの疑似コードを次に示します。
mincut() {
if(V<6)
<return mincut by enumeration>
else
t=1+n/sqrt(2)
G1 = contract(G,t)
G2 = contract(G,t)
return min(mincut(G1),mincut(G2));
}
誰かが列挙によってミンカットを見つける方法を説明してもらえますか?
ありがとうございました。