Угорський алгоритм - це комбінаторний алгоритм оптимізації, який вирішує задачу співвідношення максимальної ваги за двома частинами в поліноміальний час та передбачає подальший розвиток важливого первинно-подвійного методу . Алгоритм був розроблений та опублікований Гарольдом Куном у 1955 році, який дав назву "Угорський алгоритм", оскільки алгоритм був заснований на попередніх роботах двох угорських математиків: Денеса Кьоніга та Дженő Егерварі. Манкрес переглянув алгоритм у 1957 році і зауважив, що він дійсно є багаточасним. Відтоді алгоритм також відомий як алгоритм Куна-Манкреса.
Хоча угорська містить основну ідею первинно-подвійного методу, він вирішує проблему співвідношення максимальної ваги двостороннього співвідношення безпосередньо, не використовуючи механізмів лінійного програмування (LP). Так, відповідаючи на наступне запитання , Юкка Суомела прокоментував це
Звичайно, ви можете вирішити будь-який LP за допомогою вирішувача LP загального призначення, але спеціалізовані алгоритми, як правило, мають значно кращі показники. [...] Ви також можете часто уникати таких питань, як використання точних раціональних чисел проти чисел з плаваючою комою; все можна легко зробити цілими числами.
Іншими словами, вам не потрібно турбуватися про те, як округлити раціональну / плаваючу крапку з розв'язувача LP, щоб отримати максимальну вагу, ідеальну відповідність даному двосторонньому графіку.
Моє запитання таке:
Чи є узагальнення угорського алгоритму, який працює на загальний непрямий графік без використання LP-механізмів, аналогічно духу оригінального угорського алгоритму?
Я б віддав перевагу сучасній та легкій для читання експозиції замість якоїсь оригінальної складної роботи. Але будь-який вказівник буде дуже вдячний!
Заздалегідь дякую та з Різдвом Христовим !!!
Оновлення: Arman нижче відповідає на це питання. Я просто хочу зазначити, що ще одним приємним джерелом вивчення алгоритму цвітіння Едмонда (для зваженого випадку) є глава 11 комбінаторної оптимізації Корте та Вігена . Книга Google фактично показує майже всі частини, які мені потрібні для розуміння алгоритму.