最小化の問題に基づいて、アレイのパーティションを見つけるアルゴリズムがあるとします(nodes=[1:10]
)。アルゴリズムの出力は、特定のノードがどのパーティションに割り当てられているかを示すインデックスの配列になります。例:part=[1 1 1 1 3 3 2 2 2 2]
。アレイの同等のパーティションを見つける
このアルゴリズムには問題があります。それは確率的な成分を持ち、時々同じパーティションを返すことができますが、異なる番号を付けます。たとえば、part2=[2 2 2 2 3 3 1 1 1 1]
です。この場合、part1
とpart2
は事実上同じパーティションです。
パーティション分割アルゴリズムを5回実行する必要があるとします。出力は5x10の行列A
になります。最後に、アルゴリズムが見つけたパーティションの数を確認する必要があります。これは、A
にいくつの同等のパーティションが存在するかを知る必要があることを意味します。
これは、と書いてありますが、大きな入力に対してはと遅いですが、となります。
ここで入力の例:私は別のパーティションに、最も頻繁にパーティション、それはm
を発生する回数を取得
clusters=[ 1,1,2,2;
1,1,2,2;
2,2,1,1;
1,2,1,2;
2,1,2,1;
3,1,2,1;
2,1,2,1;
3,1,2,1;
1,2,1,2];
いる:
true_clusters =
1 1 2 2
1 2 1 2
3 1 2 1
frequest =
1 2 1 2
m =
4
誰もが知っています速い方法で問題を解決するには?