Довідка та теорія
Двочасткове паросполучення з'єднує вершини з двох непересічних множин — L (кандидати) та R (вакансії) — ребрами, що йдуть лише між цими множинами. Паросполучення — це набір ребер без спільних кінців; мета — знайти паросполучення максимального розміру.
Збільшувальні шляхи
Збільшувальний шлях починається і закінчується в незіставлених вершинах і чергується: незіставлене ребро, зіставлене ребро, незіставлене ребро, … Оскільки він починається і закінчується незіставленим ребром, у ньому завжди рівно на одне незіставлене ребро більше, ніж зіставлених.
Чому переключення допомагає
Заміна статусу зіставлене/незіставлене для кожного ребра на збільшувальному шляху перетворює обидва його кінці на зіставлені вершини, залишаючи кожну внутрішню вершину зіставленою (лише з іншим сусідом). Чистий ефект — +1 до розміру паросполучення. Паросполучення є максимальним точно тоді, коли жодного збільшувального шляху не існує — це лема Берже.
Складність Хопкрофта–Карпа
Пошук одного збільшувального шляху одним DFS з кожної незіставленої вершини коштує O(E), а може знадобитися до V пошуків, що дає загалом O(V·E). Хопкрофт–Карп натомість знаходить максимальний пакет найкоротших, вершинно-неперетинних збільшувальних шляхів за кожну фазу (один BFS для визначення довжини найкоротшого шляху, потім DFS для видобування неперетинних шляхів), потребуючи лише O(√V) фаз — загалом O(E√V).
Теорема Кеніга
У будь-якому двочастковому графі розмір максимального паросполучення дорівнює розміру мінімального вершинного покриття (найменшої множини вершин, що торкається кожного ребра). Ця двоїстість, відома як теорема Кеніга, безпосередньо пов'язує паросполучення з покриттям і лежить в основі багатьох результатів комбінаторної оптимізації.