最大濃度マッチングはグラフ理論における基本的な問題である。[1]グラフ G が与えられ、目標は可能な限り多くの辺を含むマッチングを見つけることである。つまり、各頂点がサブセットの辺の 1 つにしか隣接しないような、辺の最大濃度サブセットを見つけることである。各辺はちょうど 2 つの頂点をカバーするため、この問題は可能な限り多くの頂点をカバーするマッチングを見つけるタスクと同等である。
最大基数マッチング問題の重要な特殊なケースは、 Gが二部グラフであり、その頂点VがXの左頂点とYの右頂点に分割され、Eの辺が常に左頂点と右頂点を接続している場合です。 この場合、一般的な場合よりも単純なアルゴリズムで問題を効率的に解決できます。
二部グラフのアルゴリズム
フローベースのアルゴリズム
最大基数マッチングを計算する最も簡単な方法は、Ford-Fulkerson アルゴリズムに従うことです。このアルゴリズムは、最大フローを計算するというより一般的な問題を解決します。2 部グラフ( X + Y、E )は、次のように フロー ネットワークに変換できます。
- ソース頂点sを追加します。 sからXの各頂点にエッジを追加します。
- シンク頂点tを追加します。Y の各頂点からtへのエッジを追加します。
- 各エッジに容量 1 を割り当てます。
ネットワーク内の各エッジには整数容量があるため、すべてのフローが整数である最大フローが存在します。すべての容量が 1 であるため、これらの整数は 0 または 1 のいずれかでなければなりません。各整数フローは、フローが 1 の場合にのみエッジがマッチングに含まれるマッチングを定義します。これは次の理由でマッチングになります。
- X内の各頂点への入力フローは最大 1 であるため、出力フローも最大 1 であり、したがって、X内の各頂点に隣接するエッジは最大 1 つ存在します。
- Y内の各頂点からの出力フローは最大 1 であるため、入力フローも最大 1 であり、したがって、Y内の各頂点に隣接するエッジは最大 1 つ存在します。
Ford-Fulkerson アルゴリズムは、 x ∈ Xからy ∈ Yへの増加パスを繰り返し見つけ、そのパスとMの対称差を取ってマッチングM を更新することで進行します (そのようなパスが存在すると仮定)。各パスはO ( E )時間で見つけられるため、実行時間はO ( VE )であり、最大マッチングはXからYへのフローを運ぶEのエッジで構成されます。
高度なアルゴリズム
このアルゴリズムの改良版として、より複雑なホップクロフト-カープ アルゴリズムがあります。このアルゴリズムは、複数の増加パスを同時に検索します。このアルゴリズムは時間内に実行されます。
二部グラフに対するChandranとHochbaum [2]のアルゴリズムは、最大マッチングkの大きさに依存した時間で実行される。これは| X | < | Y |の場合、
ワードサイズに対するブール演算を使用すると、計算量はさらに[2]に改善されます。
特殊な種類の二部グラフには、より効率的なアルゴリズムが存在します。
- 疎な二部グラフの場合、最大マッチング問題は電流フローに基づくマドリのアルゴリズムで解くことができる。[3]
- 平面二部グラフの場合、複数のソースとシンクを持つ最大フローの問題に縮小することで、頂点の数をnとすると、 O ( nlog3n )の 時間で問題を解くことができます。 [ 4]
任意のグラフのアルゴリズム
ブロッサムアルゴリズムは、一般的な(必ずしも二部グラフではない)グラフの最大基数マッチングを見つけます。実行時間は です。一般的なグラフでは、二部グラフでのホップクロフト-カープアルゴリズムのパフォーマンスに匹敵するO ( √ V E )という優れたパフォーマンスが、ミカリとヴァジラニのはるかに複雑なアルゴリズムによって達成できます。[5]同じ上限は、ブルーム[6]のアルゴリズムとガボウとタージャンのアルゴリズムによって達成されました。[7]
代替アプローチはランダム化を使用し、高速行列乗算アルゴリズムに基づいています。これにより、複雑度 の一般的なグラフに対してランダム化アルゴリズムが得られます。[8]これは、十分に密なグラフに対しては理論的には優れていますが、実際にはアルゴリズムが遅くなります。[2]
このタスクの他のアルゴリズムは、DuanとPettie [9]によってレビューされています(表Iを参照)。近似アルゴリズムの観点から、彼らはまた、ブロッサムアルゴリズムとMicaliとVaziraniのアルゴリズムが、任意の固定誤差境界に対して線形時間で実行される 近似アルゴリズムと見なすことができると指摘しています。
応用と一般化
- 最大基数マッチングを見つけることで、完全マッチングが存在するかどうかを判断できます。
- 重み付きグラフで最大重みのマッチングを見つける問題は最大重みマッチング問題と呼ばれ、二部グラフへの制限は割り当て問題と呼ばれます。各頂点が一度に複数の頂点にマッチングできる場合、これは一般化された割り当て問題です。
- 優先度マッチングは、優先度の高い頂点が最初にマッチングされる特定の最大カーディナリティ マッチングです。
- ハイパーグラフにおける最大濃度マッチングの問題は、3-ユニフォームハイパーグラフの場合でもNP完全である。[10]
参考文献
- ^ ウェスト、ダグラス・ブレント(1999)、グラフ理論入門(第2版)、プレンティス・ホール、第3章、ISBN 0-13-014400-2
- ^ abc Chandran, Bala G.; Hochbaum, Dorit S. (2011), Practical and theory enhancements for bipartite matching using the pseudoflow algorithm , arXiv : 1105.1569 , Bibcode :2011arXiv1105.1569C、
上記の理論的に効率的なアルゴリズムは、実際にはパフォーマンスが低い傾向がある。
。 - ^ Madry, A (2013)、「電気フローによる中央パスのナビゲート: フローからマッチングへ、そしてその逆」、Foundations of Computer Science (FOCS)、2013 IEEE 54th Annual Symposium on、pp. 253–262、arXiv : 1307.2205、Bibcode :2013arXiv1307.2205M
- ^ Borradaile, Glencora; Klein, Philip N.; Mozes, Shay; Nussbaum, Yahav; Wulff–Nilsen, Christian (2017)、「ほぼ線形時間での有向平面グラフにおける複数ソース複数シンク最大フロー」、SIAM Journal on Computing、46 (4): 1280–1303、arXiv : 1105.2228、doi :10.1137/15M1042929、MR 3681377、S2CID 207071917
- ^ Micali, S. ; Vazirani, VV (1980)、「一般グラフで最大マッチングを見つけるアルゴリズム」、Proc. 21st IEEE Symp. Foundations of Computer Science、pp. 17–27、doi :10.1109/SFCS.1980.12、S2CID 27467816。
- ^ Blum, Norbert (1990)、「一般グラフにおける最大マッチングへの新しいアプローチ」(PDF)、Paterson, Mike (編)、『オートマトン、言語、プログラミング』、第 17 回国際コロキウム、ICALP90、ウォーリック大学、イングランド、英国、1990 年 7 月 16 ~ 20 日、議事録、Lecture Notes in Computer Science、第 443 巻、Springer、pp. 586 ~ 597、doi :10.1007/BFb0032060
- ^ Gabow, Harold N ; Tarjan, Robert E (1991-10-01). 「一般的なグラフマッチング問題に対する高速スケーリングアルゴリズム」(PDF) . Journal of the ACM . 38 (4): 815–853. doi :10.1145/115234.115366. S2CID 18350108.
- ^ Mucha, M.; Sankowski, P. (2004)、「ガウス消去法による最大マッチング」(PDF)、Proc. 45th IEEE Symp. Foundations of Computer Science、pp. 248–255
- ^ Duan, Ran; Pettie, Seth (2014-01-01). 「最大重みマッチングの線形時間近似」(PDF) . Journal of the ACM . 61 : 1–23. doi :10.1145/2529989. S2CID 207208641.
- ^ Karp, Richard M. (1972)、Miller, Raymond E.、Thatcher, James W.、Bohlinger, Jean D. (編)、「組み合わせ問題間の縮約可能性」、Complexity of Computer Computations: Proceedings of a symposium on the Complexity of Computer Computations、1972 年 3 月 20 ~ 22 日にニューヨーク州ヨークタウン ハイツの IBM Thomas J. Watson Research Center で開催され、Office of Naval Research、Mathematics Program、IBM World Trade Corporation、および IBM Research Mathematical Sciences Department がスポンサー、IBM Research Symposia Series、ボストン、MA: Springer US、pp. 85 ~ 103、doi :10.1007/978-1-4684-2001-2_9、ISBN 978-1-4684-2001-2
