Ungari algoritm võimaldab leida “minimaalse sobivuse”. Seda saab kasutada juhtudel, kui tegevuste rühma kohta on mitu hinnapakkumist ja iga toimingu peab tegema erinev inimene, et leida kõigi tegevuste lõpuleviimiseks vajalik minimaalne kulu.
1
Järjestage oma teave maatriksis, kus “inimesed” on vasakul ja “tegevus” üleval, kusjuures iga paari “kulu” on keskel.
2
Veenduge, et maatriks oleks ruudukujuline, lisades vajaduse korral näivaid ridu/veerge. Tavaliselt on vale rea/veeru iga element sama, mis maatriksi suurim arv.
3
Vähendage ridu, lahutades sellest reast iga rea minimaalse väärtuse.
4
Kui on veerge ilma nullita, vähendage veerge, lahutades sellest veerust iga veeru minimaalse väärtuse.
5
Katke nullelemendid minimaalse arvu joontega, millega on võimalik neid katta. (Kui ridade arv on võrdne ridade arvuga, jätkake sammuga 9)
6
Lisage igale kaetud elemendile minimaalne katmata element. Kui element on kaetud kaks korda, lisage sellele kaks korda minimaalne element.
7
Lahutage maatriksi igast elemendist minimaalne element.
8
Katke nullelemendid uuesti. Kui nullelemente katvate ridade arv ei ole võrdne ridade arvuga, naaske 6. sammu juurde.
9
Valige sobivus, valides nullide komplekti, nii et igas reas või veerus on valitud ainult üks.
10
Rakendage sobitamine algsele maatriksile, jättes tähelepanuta näidised read. See näitab, kes millist tegevust peaks tegema, ja kulude liitmisel saadakse kokku minimaalne kulu.