Hongaars algoritme: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
BotOx (overleg | bijdragen)
k Robot: spelling
Ironicon (overleg | bijdragen)
Regel 17:
 
Vervolgens passen we rijoperaties toe op deze matrix. De laagste van alle <math>a_i</math> met <math>i</math> tussen 1 en 4 wordt gekozen. Deze waarde wordt afgetrokken van de andere elementen in die rij. Dit zorgt er voor dat er minstens één nul in deze rij komt te staan. Men krijg meerdere nullen wanneer er gelijke elementen met de laagste waarde in die rij staan. Deze procedure wordt herhaald voor elke rij. Nu hebben we dus een matrix met minstens één nul op elke rij. Nu proberen we de arbeiders toe te wijzen zodat elke arbeider slechts één taak doet en de kost voor elke taak nul is. Dit is hier onder geïllustreerd.
 
0 &nbsp;&nbsp;&nbsp; a2' &nbsp; 0'&nbsp;&nbsp; a4' <br/>
b1' &nbsp; b2' &nbsp; b3' &nbsp; 0' <br/>
Regel 32 ⟶ 33:
 
Merk op dat taak 1 efficiënt kan gedaan worden door zowel arbeider a en c. Beide kunnen echter niet toegewezen worden aan dezelfde taak. Merk ook op dat niemand taak 3 efficiënt doet.
Om dit te vermijden, herhalen we de bovestandebovenstaande procedure voor alle kolomenkolommen en kijken dan na of een toewijzing mogelijk is. In de meeste gevallen zal dit het resultaat geven, maar het is echter nog steeds mogelijk dat er geen toewijzing kan gemaakt worden. Dan moet de onsterstaandeonderstaande procedure gevolgd worden:
 
Probeer zoveel mogelijk taken toe te wijzen en doe dan het volgende (wijs taken toe in rijen 2, 3 en 4)
Regel 41 ⟶ 42:
d1' &nbsp; 0' &nbsp;&nbsp; d3'&nbsp; d4' <br/>
 
Markeer alle rijen die geen toewijzingen hebben (rij 1). Markeer vervolgens alle kolomenkolommen die een nul hebben in die rij (kolom 1). Markeer dan alle rijen die toewijzingen hebben in de gegeven kolom (rij 3). Markeer vervolgens alle kolomenkolommen die toewijzingen hebben in de gegeven rijen. Herhaal dit tot er een gesloten lus bekomen is.
 
&times;
Regel 59 ⟶ 60:
'''Merk op: omdat het hier onmogelijk is om een verticale lijn te trekken, wordt een horizontale lijn gebuikt om de eerste kolom te schrappen.'''
 
Uit de elementen die overblijven zoekt men de laagste waarde. Trek deze waarde af van alle elementen die niet geschrapt zijn. Tel deze waarde bij de elementen die op de kruising van twee lijnen liggen. Laat de andere elemtenelementen onveranderd. Wijs nu de taken toe a.d.h.v. bovenstaande regels. Herhaal deze procedure totdat een toewijzing mogelijk is.
 
[[Categorie:Algoritme]]