Hongaars algoritme: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Kwiki (overleg | bijdragen)
k gebuikt => gebruikt
RudolphousBot (overleg | bijdragen)
-htmlentities, brfix
Regel 18:
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 />
0' &nbsp;&nbsp; c2' &nbsp; c3' &nbsp; c4' <br />
d1' &nbsp; 0' &nbsp;&nbsp; d3'&nbsp; d4' <br />
 
De nullen die aangeduid zijn door 0' zijn de toegewezen taken.
Regel 27:
In sommige gevallen kan het zijn dat er geen toewijzing mogelijk is:
 
0 &nbsp;&nbsp;&nbsp; a2' &nbsp; a3'&nbsp; a4' <br />
b1' &nbsp; b2' &nbsp; b3' &nbsp; 0 <br />
0 &nbsp;&nbsp;&nbsp; c2' &nbsp; c3' &nbsp; c4' <br />
d1' &nbsp; 0 &nbsp;&nbsp;&nbsp; d3'&nbsp; d4' <br />
 
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.
Regel 37:
Probeer zoveel mogelijk taken toe te wijzen en doe dan het volgende (wijs taken toe in rijen 2, 3 en 4)
 
0 &nbsp;&nbsp;&nbsp; a2' &nbsp; a3'&nbsp; a4' <br />
b1' &nbsp; b2' &nbsp; b3' &nbsp; 0' <br />
0' &nbsp;&nbsp; c2' &nbsp; c3' &nbsp; c4' <br />
d1' &nbsp; 0' &nbsp;&nbsp; d3'&nbsp; d4' <br />
 
Markeer alle rijen die geen toewijzingen hebben (rij 1). Markeer vervolgens alle kolommen 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 kolommen die toewijzingen hebben in de gegeven rijen. Herhaal dit tot er een gesloten lus bekomen is.
 
×
&times;
 
0 &nbsp;&nbsp;&nbsp; a2' &nbsp; a3' &nbsp; a4' &nbsp;&nbsp; &times; ×<br />
b1' &nbsp; b2' &nbsp; b3' &nbsp; 0' &nbsp;&nbsp; <br />
0' &nbsp;&nbsp; c2' &nbsp; c3' &nbsp; c4' &nbsp;&nbsp; &times; ×<br />
d1' &nbsp; 0' &nbsp;&nbsp; d3' &nbsp; d4' &nbsp; <br />
 
Trek nu lijnen door alle gemarkeerde kolomen en ongemarkeerde rijen.
 
<s>0</s> &nbsp;&nbsp;&nbsp; a2' &nbsp; a3' &nbsp; a4' <br />
<s>b1' &nbsp; b2' &nbsp; b3' &nbsp; 0'&nbsp;&nbsp;</s> <br />
<s>0'</s> &nbsp;&nbsp; c2' &nbsp; c3' &nbsp; c4' <br />
<s>d1' &nbsp; 0' &nbsp;&nbsp; d3' &nbsp; d4'</s> <br />
 
'''Merk op: omdat het hier onmogelijk is om een verticale lijn te trekken, wordt een horizontale lijn gebruikt om de eerste kolom te schrappen.'''