2017-01-10 7 views
1

私は、セットから別のセットへのリレーションからなるデータセットを持っています。次のように簡略化した例:データセット内の要素間の関係を見つけるアルゴリズム

{A、B、Cを} - > {1、2、3}#順序は変更することができる{1 2 3}も

{B、D}が可能です - > - > 1

A - {2、4}

{A、D}> {1,4}


Iは、その要素間の関係を見つける必要があります

B - > 2

C - > 3

D - > 4

タスクのこのタイプのための任意の既知のアルゴリズムはありますか?

答えて

1

これは、2つのグラフで最大の一致を使用してシミュレーションできます。例えば頂点の2つのセットを作る。 S_1 = {A、B、C、D}の頂点と、S_2 = {1,2,3,4}の要素を含む頂点があります。

S_1 [i] ∈ s'_1、S_2 [j] ∈ s'_2およびs'_1となるようなs'_1、s'_2がある場合は、S_1 [i]とS_2 [j] → s'_2。そして、周知のアルゴリズム(例えばハンガリアンアルゴリズム)の1つを用いて、対応する二部グラフの最大一致を見出す。

A,1 
A,2 
A,3 
A,4 
B,1 
B,2 
B,3 
B,4 
C,1 
C,2 
C,3 
D,2 
D,4 

そして、例えば:

は、例えば、あなたのケースで我々はエッジを持っていますあなたが提案した解決策は、そのグラフの最大のマッチングだけです。

関連する問題