Угорський алгоритм

Угорський алгоритм — алгоритм комбінаторної оптимізації, що розв'язує задачу про призначення за поліноміальний час і який передує пізнішому симплекс-методу (пряма і двоїста задачі).

Алгоритм був вперше запроваджений в 1955 році Гарольдом Куном[en] у його статті «Угорський метод для задачі про призначення» на основі праць угорських математиків Денеша Кьоніга та Ейгена Егерварі[en] (що і дало назву методу).[1][2]

В 1957 році Джеймс Манкрес[en] переглянув алгоритм і дійшов висновку, що він є (строго) поліноміальним.[3] З того часу алгоритм більш відомий як алгоритм Куна-Манкреса або задача про призначення Макреса. Часова складність оригінального алгоритму була O(n4), проте Джек Едмондс[en] та Річард Карп, а також незалежно від них Томізава, відмітили, що він може бути модифікований для отримання часу виконання O(n3). Лестер Рандольф Форд (молодший)[en] та Делберт Рей Фулкерсон[en] розширили метод до загальних транспортних задач. У 2006 році було відкрито, що Карл Густав Якобі розв'язав задачу про призначення в 19 сторіччі, а його розв'язок було опубліковано посмертно в 1890 році латинською мовою.[4]

Пояснення Леймана

Припустимо, що ми маємо 3 працівників: Джима, Стіва та Алана. Необхідно, щоб один з них прибрав у ванній, інший — підмів підлогу, а третій — помив вікна. Який найкращий (з найменшими витратами) шлях розподілити роботи між ними? Спершу нам необхідно побудувати матрицю витрат на виконання робіт нашими працівниками:

Прибрати у ванній Підмести підлогу Помити вікна
Джим $1 $2 $3
Стів $3 $3 $3
Алан $3 $3 $2

Угорський алгоритм, після застосування його до цієї таблиці, дасть нам мінімальні витрати, з якими можуть бути виконані роботи: Джим прибирає у ванній, Стів підмітає підлогу, а Алан миє вікна.

Постановка задачі

Дано невід'ємну матрицю nxn, де елемент в і-тому рядку та j-тому стовпці показує вартість призначення j-тої роботи і-тому працівникові. Необхідно знайти розподіл робіт між працівниками з найменшими загальними витратами. Якщо ціллю є знайти розподіл робіт, що максимізує витрати, в постановці задачі необхідно кожну вартість замінити на максимальну вартість мінус дану вартість.

Алгоритм простіше описати, якщо ми сформулюємо проблему використовуючи двочастковий граф. Ми маємо повний двочастковий граф G=(S, T; E) з вершинами для n працівників (S) та вершинами для n робіт (T), а кожна грань має невід'ємні витрати c(i, j). Нам необхідно знайти досконале паросполучення з мінімальними витратами.

Нехай функція є потенціалом, якщо для кожного та . Значенням потенціалу є . Витрати кожного досконалого паросполучення щонайменше дорівнюють потенціалу. Угорський метод знаходить досконале паросполучення та потенціал з однаковими витратами/значенням, що доводить оптимальність обох. Фактично, метод знаходить досконале паро сполучення для строгих граней: грань ij називається строгою для потенціалу якщо. Нехай позначає субграф строгих граней. Вартість досконалого паросполучення в (якщо таке існує) дорівнює вартості .

Алгоритм в переводі на двочасткові графи

Під час алгоритму ми маємо справу з потенціалом та напрямом який має властивість, що грані орієнтовані з T в S утворюють сполучення М. На початку, всюди , а всі грані орієнтовані з S в T (М порожній). На кожному кроці, ми або модифікуємо щоб значення зростало, чи модифікуємо напрям щоб отримати сполучення з якомога більшою кількістю граней. Ми маємо справу з випадком, де всі грані М є строгими. Якщо М є досконалим паросполученням, то задачу розв'язано.

В загальному, нехай і є вершинами не покритими М (тобто складається з вершин в S без вхідних граней, а складається з вершин в Т без вихідних граней). Нехай є множиною вершин, що є допустимими в з слідкуючи орієнтованою ціллю лише строгим граням. Це можна розрахувати за допомогою пошуку у ширину.

Якщо є непорожнім, то слід обернути напрям орієнтованої цілі в з до . Таким чином, розмір відповідного сполучення зростає на 1. Якщо є порожнім, тоді нехай . є додатнім, оскільки строгі грані відсутні між та . зростає на на вершинах та зменшується на на вершинах . Результуючий все ще є потенціалом. Граф змінюється, але досі містить М. Ми орієнтуємо нові грані з S в Т. За означенням множина вершин Z, що досягається з , зростає (кількість строгих граней не обов'язково зростає).

Ці кроки повторюються поки М не є досконалим сполученням, тоді ми отримуємо мінімальну вартість виконання завдання. Час виконання цієї версії методу дорівнює . М доповнюється n разів, і у фазі, де М не змінюється, існує щонайбільше n потенційних змін (оскільки Z зростає щоразу). Час необхідний для потенційних змін дорівнює .

Матрична інтерпретація

Дано n працівників та m робіт, а також матриця nxm, що містить вартість виконання завдання кожним з працівників. Для того, щоб знайти розподіл обов'язків з мінімальними загальними витратами, необхідно виконати наступні кроки:

  1. Впорядкувати інформацію в матриці таким чином, щоб рядки матриці представляли «виконавців», а колонки — «завдання», тоді як кожен елемент матриці представляє витрати на виконання певним виконавцем певного завдання.
  2. Переконатися в тому, що матриця є квадратною; в протилежному випадку слід додати фіктивний рядок (виконавця) чи колонку (завдання), де кожен елемент буде дорівнювати найбільшому елементу початкової матриці.
  3. В кожному рядку від кожного елемента відняти найменше значення для даного рядка.
  4. В кожному стовпці від кожного елемента відняти найменше значення для даного стовпця.
  5. Викреслити всі нульові елементи з найменш можливою кількістю ліній (якщо кількість ліній дорівнює розмірності матриці, то слід перейти до кроку 9).
  6. Додати мінімальний з не викреслених елементів до кожного викресленого елементу (якщо елемент викреслено двома лініями, то додавати слід теж двічі)
  7. Від кожного елементу матриці відняти мінімальний елемент.
  8. Перейти до кроку 5.
  9. Вибрати розподіл «завдань» між «виконавцями» таким чином, щоб в кожному рядкові та стовпці був вибраний лише один нуль.
  10. Перенести розподіл на першопочаткову матрицю, ігноруючи фіктивні колонки і рядки. Цей розподіл покаже який «виконавець» яке «завдання» має виконати, а сума виділених елементів покаже загальну вартість виконання робіт.

Приклад розв'язання типової задачі

Дано 5 працівників (A, B, C, D, E) та 4 роботи (W, X, Y, Z), які необхідно розподілити між ними. Витрати на виконання кожним з працівників кожного із завдань представлені у наступній таблиці:

W X Y Z
A 10 19 8 15
B 10 18 7 17
C 13 16 9 14
D 12 19 8 19
E 14 17 10 19

Таким чином, ми отримуємо наступну матрицю:

10 19 8 15
10 18 7 17
13 16 9 14
12 19 8 19
14 17 10 19

Отримана матриця має, розмірність 5х4, що суперечить другій стадії вище наведеного алгоритму. Таким чином, маємо додати фіктивну колонку із завданням, кожен елемент якої дорівнює максимальному елементові матриці:

10 19 8 15 19
10 18 7 17 19
13 16 9 14 19
12 19 8 19 19
14 17 10 19 19

Виконаємо крок 3 (в кожному рядку віднімемо мінімальне значення) і крок 4 (в кожному стовпці віднімаємо мінімальне значення):

2 11 0 7 11
3 11 0 10 12
4 7 0 5 10
4 11 0 10 11
4 7 0 9 9

Викресливши всі нулі з використанням мінімальної кількості ліній, бачимо, що їх кількість (4) не відповідає розмірності матриці (5х5). Тому виконуємо кроки 6 (до кожного викресленого елементу додаємо найменший з невикреслених) і 7 (віднімаємо від усіх елементів матриці найменший з них):

1 5 2 3 3
1 4 1 5 3
3 1 2 1 2
2 4 1 5 2
3 1 2 5 1

Знову, викресливши всі нулі з використанням мінімальної кількості ліній, бачимо, що їх кількість (4) не відповідає розмірності матриці (5х5). Тому виконуємо ще одну ітерацію з кроками 6 і 7 алгоритму:

1 4 2 2 2
1 3 1 4 2
4 1 3 1 2
2 3 1 4 1
4 1 3 5 1

Викресливши всі нулі з використанням мінімальної кількості ліній, їх кількість (5) відповідає розмірності матриці (5х5). Переходимо до 9 кроку, де вибираємо розподіл завдань між виконавцями з урахуванням умови, що в кожному рядку і стовпчику має бути лише один виділений нуль:

0 3 1 1 1
0 2 0 3 1
3 0 2 0 1
1 2 0 3 0
3 0 2 4 0

Переносимо отриманий розподіл в оригінальну таблицю ігноруючи фіктивний стовпець:

W X Y Z
A 10 19 8 15
B 10 18 7 17
C 13 16 9 14
D 12 19 8 19
E 14 17 10 19

Таким чином, виконавець А робить завдання W, виконавець В виконує завдання У, виконавець С виконує завдання Z, виконавець Е виконує завдання Х, а виконавець D відпочиває. Сукупна вартість виконання цих робіт дорівнює 10+7+14+17=48, що є мінімальною вартістю виконання цих завдань наявними працівниками.

Література

  • R.E. Burkard, M. Dell'Amico, S. Martello: Assignment Problems (Revised reprint). SIAM, Philadelphia (PA.) 2012. ISBN 978-1-61197-222-1
  • M. Fischetti, «Lezioni di Ricerca Operativa», Edizioni Libreria Progetto Padova, Italia, 1995.
  • R. Ahuja, T. Magnanti, J. Orlin, «Network Flows», Prentice Hall, 1993.
  • S. Martello, «Jeno Egerváry: from the origins of the Hungarian algorithm to satellite communication». Central European Journal of Operations Research 18, 47–58, 2010

Примітки

  1. Harold W. Kuhn, «The Hungarian Method for the assignment problem», Naval Research Logistics Quarterly, 2: 83–97, 1955. Kuhn's original publication.
  2. Harold W. Kuhn, «Variants of the Hungarian method for assignment problems», Naval Research Logistics Quarterly, 3: 253—258, 1956.
  3. J. Munkres, "Algorithms for the Assignment and Transportation Problems", Journal of the Society for Industrial and Applied Mathematics, 5(1):32–38, 1957 March.
  4. http://www.lix.polytechnique.fr/~ollivier/JACOBI/jacobiEngl.htm

Посилання

Реалізації
Note that not all of these satisfy the time constraint.
C implementation with time complexity
Java implementation of time variant
Java implementation of time variant by Shawn T. O'Neil
Python implementation
Ruby implementation with unit tests
C# implementation with time complexity
D implementation with unit tests (port of the Java version)
Online interactive implementation
Graphical implementation with options (Java applet)
Serial and parallel implementations.
Matlab and C
Perl implementation
C++ (STL) implementation (multi-functional bipartite graph version)
C++ implementation
C++ implementation of the algorithm (BSD style open source licensed)
Java implementation with JUnit tests (Apache 2.0)[недоступне посилання з травня 2019]
MATLAB implementation
C implementation
JavaScript implementation with unit tests (port of the Java version)
Clue R package proposes an implementation, solve_LSAP
Node.js implementation on GitHub
Python implementation in scipy package

Read other articles:

American football player and sports coach (1869–1943) Eli AbbottBiographical detailsBorn(1869-04-01)April 1, 1869Chickasaw County, Mississippi, U.S.DiedFebruary 13, 1943(1943-02-13) (aged 73)Greenwood, Mississippi, U.S.Playing career1892Alabama Position(s)TackleCoaching career (HC unless noted)Football1893–1895, 1902AlabamaBaseball1896Alabama Head coaching recordOverall7–13 (football)5–5 (baseball) Eli Abbott (April 1, 1869 – February 13, 1943) was an American football player a...

 

Pour le film de Jean Epstein, voir L'Affiche. Des affiches à Istanbul en 1999. Une affiche est un support de publicité ou de propagande destiné à être vu dans la rue et plus généralement dans les espaces publics. Imprimée sur papier, du tissu ou des supports synthétiques, elle adopte des dimensions variables, pouvant aller jusqu'à plusieurs mètres. Jean-Alexis Rouchon est considéré comme le premier fabricant d'affiches en couleurs. Son activité disparaît un peu après 1870. L'...

 

ISO 3166-2:ID adalah sebuah standar ISO yang mendefinisikan kode internasional: kode ini merupakan bagian dari ISO 3166-2 yang ditujukan kepada negara Indonesia. Untuk Indonesia saat ini, kode ISO 3166-2 yang ditetapkan adalah untuk: 7 satuan geografis 35 provinsi (38 provinsi) 1 daerah ibu kota 1 daerah istimewa Kode terbaru Nama sub-bagian tercantum dalam standar ISO 3166-2 yang diterbitkan oleh Badan Pemeliharaan ISO 3166 (ISO 3166/MA). Kode Nama subbagian Varian lokal Jenis subbagian Subb...

Cet article fait partie de la série :Constitution des États-Unis PréambuleArticles de la Constitution I ∙ II ∙ III ∙ IV ∙ V ∙ VI ∙ VII Amendements Déclaration des droits I ∙ II ∙ III ∙ IV ∙ V ∙ VI ∙ VII ∙ VIII ∙ IX ∙ XAmendements additionnels XI ∙ XII ∙ XIII ∙ XIV ∙ XV XVI ∙ XVII ∙ XVIII ∙ XIX ∙ XX XXI ∙ XXII ∙ XXIII ∙ XXIV ∙ XXV XXVI ∙ XXVIIAmendements proposés Amendement Blaine Amendement Bricker Titres de noblesse Textes co...

 

Ion mobility spectrometry-mass spectrometry (IM-MS) workflowIon mobility spectrometry–mass spectrometry (IMS-MS) is an analytical chemistry method that separates gas phase ions based on their interaction with a collision gas and their masses. In the first step, the ions are separated according to their mobility through a buffer gas on a millisecond timescale using an ion mobility spectrometer. The separated ions are then introduced into a mass analyzer in a second step where their mass-to-c...

 

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus. Cet article est francocentré et nécessite une internationalisation (juin 2017). Merci de l'améliorer ou d'en discuter sur sa page de discussion ! Vous pouvez préciser les sections à internationaliser en utilisant {{section à internationaliser}}. Aéro-club de Côme. Un aéro-club ou aéroclub est une association à but non lucratif de type loi de 1901 ayant pour but de permettre et favoriser la pratiqu...

Fahrnicomune Fahrni – Veduta LocalizzazioneStato Svizzera Cantone Berna RegioneOberland CircondarioThun AmministrazioneLingue ufficialiTedesco TerritorioCoordinate46°47′50″N 7°40′13″E / 46.797222°N 7.670278°E46.797222; 7.670278 (Fahrni)Coordinate: 46°47′50″N 7°40′13″E / 46.797222°N 7.670278°E46.797222; 7.670278 (Fahrni) Altitudine850 m s.l.m. Superficie6,68 km² Abitanti788 (2017) Densità117,96 ab./km² Fr...

 

Questa voce sull'argomento calciatori congolesi (Rep. Dem. del Congo) è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti del progetto di riferimento. Serge Mputu Nazionalità  RD del Congo Altezza 178 cm Calcio Ruolo Attaccante Termine carriera 2012 Carriera Squadre di club1 1998-1999 Paulino? (?)1999-2000 Al-Hilal Omdurman? (?)2001 Lokeren2 (0)2001-2002 KRC Harelbeke29 (7)2002-2003 Lokeren10 (0)2003-200...

 

Voce principale: Cagliari Calcio. US CagliariStagione 1964-1965 Sport calcio Squadra Cagliari Allenatore Arturo Silvestri Presidente Enrico Rocca Serie A6º Coppa ItaliaQuarti di finale Maggiori presenzeCampionato: Cera (34)Totale: Cera (37) Miglior marcatoreCampionato: Riva (9)Totale: Riva (12) StadioAmsicora Abbonati3 964 Media spettatori18 092[1] 1963-1964 1965-1966 Si invita a seguire il modello di voce Questa voce raccoglie le informazioni riguardanti l'Unione...

ХристианствоБиблия Ветхий Завет Новый Завет Евангелие Десять заповедей Нагорная проповедь Апокрифы Бог, Троица Бог Отец Иисус Христос Святой Дух История христианства Апостолы Хронология христианства Раннее христианство Гностическое христианство Вселенские соборы Н...

 

2014 South Korean filmWe Are BrothersInternational posterDirected byJang JinWritten byBae Se-youngProduced byLee Eun-ha Cho Hyeon-seokStarringCho Jin-woong Kim Sung-kyunCinematographyKim Sung-anEdited byJang Jin Lee Yeon-jungMusic byKim Jung-wooDistributed byShowbox/MediaplexRelease date October 23, 2014 (2014-10-23) Running time102 minutesCountrySouth KoreaLanguageKoreanBox officeUS$6.7 million[1] We Are Brothers (Korean: 우리는 형제입니다; RR:...

 

A render of the Yushin Maru type whale catcher. History Japan NameYūshin Maru OwnerKyodo Senpaku Kaisha, Ltd. OperatorInstitute of Cetacean Research Port of registryTokyo, Japan BuilderHakata Zosen, Hakata Launched24 July 1998 Identification IMO number: 9197181[1] Call sign: JLZS[2] MMSI: 431439000[1] Statusin active service General characteristics TypeWhaler Tonnage1,025 gross tonnage (GT)[3] Length69.61 m (228.4 ft) o/a Beam11.5...

2020年夏季奥林匹克运动会马来西亚代表團马来西亚国旗IOC編碼MASNOC马来西亚奥林匹克理事会網站olympic.org.my(英文)2020年夏季奥林匹克运动会(東京)2021年7月23日至8月8日(受2019冠状病毒病疫情影响推迟,但仍保留原定名称)運動員30參賽項目10个大项旗手开幕式:李梓嘉和吳柳螢(羽毛球)[1][2]閉幕式:潘德莉拉(跳水)[3]獎牌榜排名第74 金牌 銀牌 銅�...

 

MenuetOSScreenshotPerusahaan / pengembangVille M. TurjanmaaDiprogram dalamFASM assembly languageStatus terkiniBetaModel sumberOpen source (32-bit)Closed source (64-bit)Rilis perdana16 Mei 2000; 23 tahun lalu (2000-05-16) (32-bit)Rilis stabil terkini32-bit: 0.86 / 20 Februari 2015; 9 tahun lalu (2015-02-20)64-bit: 1.26.20 / 9 Juli 2017; 6 tahun lalu (2017-07-09)Ketersediaan bahasaEnglish, Russian, Chinese, Czech, SerbianDukungan platformIA-32, x86-64Kernel typeMonolithicAnt...

 

War fought from 1918 to 1919 Hungarian–Romanian WarPart of the revolutions and interventions in HungaryRomanian cavalry in Budapest, August 1919Date13 November 1918 – 3 August 1919 (1918-11-13 – 1919-08-03)(8 months and 3 weeks)LocationTransylvaniaHungaryResult Romanian victoryBelligerents  Kingdom of Hungary (13 November 1918 – 16 November 1918)  Hungarian Republic (16 November 1918 – 21 March 1919)  Soviet Hungary (from 2...

2019 Hong Kong crime film This article needs a plot summary. Please add one in your own words. (August 2020) (Learn how and when to remove this message) IntegrityOfficial film posterTraditional Chinese廉政風雲Simplified Chinese廉政风云Hanyu PinyinLián Zhèng Fēng YúnJyutpingLim4 Zing3 Fung1 Wan4 Yin1 Mok6 Directed byAlan MakWritten byAlan MakProduced byFelix ChongRonald WongStarringSean LauNick CheungKarena LamProductioncompaniesEmperor Motion PicturesStellar Mega FilmsDistrib...

 

American alternative metal band For their self-titled studio album, see Deftones (album). DeftonesDeftones performing at the Shepherd's Bush Empire in 2011; from left to right: Carpenter, Cunningham, Moreno, and VegaBackground informationOriginSacramento, California, U.S.Genres Alternative metal art rock experimental rock shoegaze post-hardcore nu metal (early) DiscographyDeftones discographyYears active1988–presentLabels Maverick Warner Reprise Spinoffs Team Sleep Crosses Palms Phallucy So...

 

Timeline of theories about physical cosmology For a timeline of the cosmos (or universe), see Chronology of the universe. Part of a series onPhysical cosmology Big Bang · Universe Age of the universe Chronology of the universe Early universe Inflation · Nucleosynthesis Backgrounds Gravitational wave (GWB) Microwave (CMB) · Neutrino (CNB) Expansion · Future Hubble's law · Redshift Expansion of the universe FLRW metric · Friedmann equations Inhomogeneous cosm...

2019 Murcian regional election ← 2015 26 May 2019 2023 → elected members →All 45 seats in the Regional Assembly of Murcia23 seats needed for a majorityOpinion pollsRegistered1,057,978 3.0%Turnout659,437 (62.3%)1.3 pp   First party Second party Third party   Leader Diego Conesa Fernando López Miras Isabel Franco Party PSOE PP Cs Leader since 30 September 2017 3 May 2017 9 March 2019 Last election 13 seats, 23.9% 22 seats, 37.4% 4 seat...

 

American actress and singer (born 1960) Vicki LewisVicki Lewis in 2011Born (1960-03-17) March 17, 1960 (age 64)Cincinnati, Ohio, U.S.OccupationsActresssingerYears active1985–presentSpouse Philip Allen ​(m. 2008)​PartnerNick Nolte (1994–2003)Websitevickilewis.com Vicki Lewis (born March 17, 1960[1]) is an American actress and singer. She is best known for her role as Beth in the NBC sitcom NewsRadio. She is also well known for her roles as Deb...