状況: ユーザーが、プロジェクトの可能なパートナーとして他の複数のユーザーを選択します。ユーザーは、自分が選んだユーザーを別のユーザーより優先することはありません (つまり、リスト内のユーザーはパートナーとして十分です)。例:
| user_id | preferred_partners |
| 1 | 2 4 |
| 2 | 3 1 |
| 3 | 4 2 1 |
| 4 | 1 |
実際のリストはもっと大きくなります。
私の質問: ユーザーとその優先パートナー (上記のリストなど) の配列が与えられた場合、最終的なパートナー ペアの配列を生成したいと考えています。最終的にパートナーになるペアの数を最大化する必要があります (できるだけ多くの人をペアにしたい)。
これは私が必要だと思うアルゴリズムです: Edmonds's matching algorithmですが、私は数学のバックグラウンドを持っていないため、解釈と実装に問題があります。
どんな助けでも大歓迎です。前もって感謝します。