Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das...

52

Transcript of Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das...

Page 1: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Die Ungarische Methode für das AssignmentProblem von H. W. Kuhn (1955)

Seminar Kombinatorische Optimierung SS08: Christof Schulz

11.07.2008

Page 2: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

1 Harold William Kuhn

2 Das AssignmentproblemEinfaches AssignmentproblemDas allgemeine AssignmentproblemDuale ProgrammNachbesserungZusammenfassung

3 Ungarische MethodeStartSchritt 1Schritt 3Schritt 2

4 AufwandAufwandsanalyse

5 aktuelle Entwicklung

Page 3: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Harold William Kuhn

Geboren: 29.07.1925 in Santa Monica, Cali-fornien, USA

Bildung: California Institute of Technolo-gy(1947)Magister Artium(1948)Doktor der MathematikPrinceton University(1950)

Laufbahn: Dozent(1951-1952),Assistensprofessor(1952-1959),Junior-Professor(1959-1963),Professor(1963-1995)

Aktuell: Emeritus Professor(seit 1995)

UngarischeMethode:

1955, Vorarbeit von Dénes Königund Jeno Egerváry

Page 4: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Einfaches Assignmentproblem

Das Assignmentproblem

Page 5: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Einfaches Assignmentproblem

Das einfache Assignmentproblem

n Personen

n Jobs

n x n Quali�kationsmatrix Q

qij =

{1 Person i ist für Job j quali�ziert

0 sonst

Q=

1 1 1 00 0 1 10 0 0 10 0 0 1

gesucht:Maximale Anzahl unabhängiger einsen

Page 6: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Einfaches Assignmentproblem

komplettes Assignment

Personen werden Jobs zugeordnet

De�nition (komplett)

Es kann keine weitere Person mehr einem Job zugeordnet werden.

1 1 1∗ 00 0 1 1∗

0 0 0 10 0 0 1

kann nur noch durch Transfer verbessert werden.

Page 7: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Einfaches Assignmentproblem

Transfer

ändert die Zuordnung von r verschiedenen Personen i1..ir undJobs j1..jrordnet i1 freien Job j0 zu und Person ik Job jk−1 für k=2..r.

i1 i2 . . . ir↙ ↙ ↙j0 j1 . . . jr−1 jr

Page 8: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Einfaches Assignmentproblem

Wesentlich

De�nition (wesentliche Person)

Person kann in einen Transfer involviert werden

De�nition (wesentlicher Job)

Job ist einer unwesentlichen Person zugeordnet

Für eine gegebene Zuordnung (i,j) ist entweder i oder jwesentlich, aber nicht i und j.

#(Personen haben Job)=#(wesentliche Personen) + #(wesentliche Jobs)

Page 9: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Das allgemeine Assignmentproblem

Das allgemeine Assignmentproblem

n Personen, n Jobs

n x n Matrix R=(rij) mit rij ∈ NDen n Personen wird eine Permutation der n Jobs zugeordnet.

Person 1 2 . . . n

Job j1 j2 . . . jn

Maximiere: ∑ni=1

riji

über allen Permutationen J = (ji ) von 1 - n.

Page 10: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Das allgemeine Assignmentproblem

allg. Assignmentproblem als LP

Variablen: xij =

{1 Person i erledigt Job j

0 sonst

Maximiere∑n

i=1

∑nj=1

xij ∗ rij

s.t. ∑ni=1

xij = 1 , für j=1..n∑nj=1

xij = 1 , für i=1..n

xij ≥ 0

xij ∈ Z

Page 11: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Duale Programm

Dualisieren

Minimiere∑n

i=1ui +

∑ni=1

vi

s.t.ui + vj ≥ rij

ui ≥ 0

vi ≥ 0

ui , vi ∈ Z

Page 12: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Duale Programm

Für jedes Assignment Z=((1, ji ); (2, j2); ...; (n, jn)) gilt:

u1 + ...+ un + v1 + ...+ vn ≥ r1j1 + ...+ rnjn

opt Lösung Dual = opt Lösung Primal (Dualitätssatz)

Konstruiere ein einfaches Assignmentproblem:

Person i ist für Job j quali�ziert, wenn ui + vj = rij

Page 13: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Duale Programm

Theorem

Wenn allen n Personen ein Job, für den sie quali�ziert sind, im

konstruierten einfachen Assignmentproblem zugeordnet werden

kann, dann löst dieses Assignment(Z) das allgemeine Problem

optimal.

Beweis.

ui + vj = rij ∀(i , j) ∈ Z

⇒∑i ui + vi =

∑(i ,j)∈Z rij

Page 14: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Nachbesserung

Nachbesserung

Kann nicht allen n Personen ein Job zugeordnet werden, muÿ�nachgebessert� werden.

Folgende Bedingungen gelten:

rij > 0

ui + vj ≥ rij ⇒ ui > 0 oder vi > 0Es können nur m < n Personen zugeordnet werden und dasAssignment ist komplett nach jedem Transfer

r wesentliche Personens wesentliche Jobs

m=r+s

Page 15: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Nachbesserung

Nachbesserungsregeln

oBdA alle ui > 0

Theorem

u′1

= u1, ..., u′r = ur , u

′r+1

= ur+1 − 1, ..., u′n = un − 1

v′1

= v1 + 1, ..., v′s = vs + 1, v

′s+1

= vs+1, ..., v′n = vn

Die neue Zuordnung ist eine zulässige Lösung für das duale LP.

Page 16: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Nachbesserung

Beweis.

z.z. u′i + v

′j ≥ rij

kann nur verletzt werden, wenn ui + vj = rij und u′i = ui − 1,

v′j = vj

⇒ i und j sind unwesentlich

Aber: da ui + vj = rij ⇒ Person i für Job j quali�ziert (qij = 1)3 Fälle:

1 i ist j zugeordnet:nach De�nition entweder i oder j wesentlich.

2 i ist einem anderen Job zugeordnet:i ist wesentlich(i kann j durch einen Transfer zugeordnetwerden).

3 i ist keinem Job zugeordnet:j ist wesentlich (j kann durch keinen Transfer i zugeordnetwerden, da Z komplett nach jedem Transfer ist)

Page 17: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Nachbesserung

Beweis.

z.z. u′i + v

′j ≥ rij

kann nur verletzt werden, wenn ui + vj = rij und u′i = ui − 1,

v′j = vj

⇒ i und j sind unwesentlich

Aber: da ui + vj = rij ⇒ Person i für Job j quali�ziert (qij = 1)3 Fälle:

1 i ist j zugeordnet:nach De�nition entweder i oder j wesentlich.

2 i ist einem anderen Job zugeordnet:i ist wesentlich(i kann j durch einen Transfer zugeordnetwerden).

3 i ist keinem Job zugeordnet:j ist wesentlich (j kann durch keinen Transfer i zugeordnetwerden, da Z komplett nach jedem Transfer ist)

Page 18: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Nachbesserung

Beweis.

z.z. u′i + v

′j ≥ rij

kann nur verletzt werden, wenn ui + vj = rij und u′i = ui − 1,

v′j = vj

⇒ i und j sind unwesentlich

Aber: da ui + vj = rij ⇒ Person i für Job j quali�ziert (qij = 1)

3 Fälle:1 i ist j zugeordnet:

nach De�nition entweder i oder j wesentlich.2 i ist einem anderen Job zugeordnet:

i ist wesentlich(i kann j durch einen Transfer zugeordnetwerden).

3 i ist keinem Job zugeordnet:j ist wesentlich (j kann durch keinen Transfer i zugeordnetwerden, da Z komplett nach jedem Transfer ist)

Page 19: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Nachbesserung

Beweis.

z.z. u′i + v

′j ≥ rij

kann nur verletzt werden, wenn ui + vj = rij und u′i = ui − 1,

v′j = vj

⇒ i und j sind unwesentlich

Aber: da ui + vj = rij ⇒ Person i für Job j quali�ziert (qij = 1)3 Fälle:

1 i ist j zugeordnet:nach De�nition entweder i oder j wesentlich.

2 i ist einem anderen Job zugeordnet:i ist wesentlich(i kann j durch einen Transfer zugeordnetwerden).

3 i ist keinem Job zugeordnet:j ist wesentlich (j kann durch keinen Transfer i zugeordnetwerden, da Z komplett nach jedem Transfer ist)

Page 20: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Nachbesserung

Beweis.

z.z. u′i + v

′j ≥ rij

kann nur verletzt werden, wenn ui + vj = rij und u′i = ui − 1,

v′j = vj

⇒ i und j sind unwesentlich

Aber: da ui + vj = rij ⇒ Person i für Job j quali�ziert (qij = 1)3 Fälle:

1 i ist j zugeordnet:nach De�nition entweder i oder j wesentlich.

2 i ist einem anderen Job zugeordnet:i ist wesentlich(i kann j durch einen Transfer zugeordnetwerden).

3 i ist keinem Job zugeordnet:j ist wesentlich (j kann durch keinen Transfer i zugeordnetwerden, da Z komplett nach jedem Transfer ist)

Page 21: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Nachbesserung

Beweis.

z.z. u′i + v

′j ≥ rij

kann nur verletzt werden, wenn ui + vj = rij und u′i = ui − 1,

v′j = vj

⇒ i und j sind unwesentlich

Aber: da ui + vj = rij ⇒ Person i für Job j quali�ziert (qij = 1)3 Fälle:

1 i ist j zugeordnet:nach De�nition entweder i oder j wesentlich.

2 i ist einem anderen Job zugeordnet:i ist wesentlich(i kann j durch einen Transfer zugeordnetwerden).

3 i ist keinem Job zugeordnet:j ist wesentlich (j kann durch keinen Transfer i zugeordnetwerden, da Z komplett nach jedem Transfer ist)

Page 22: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Nachbesserung

Die u′i und v

′j sind also eine zulässige Lösung

Neuer Zielfunktionswert(NW) < Alter Zielfunktionswert (AW), da :

NW= AW − (n − r) ∗ 1 + s ∗ 1

= AW -n + r +s

= AW -n + m < AW, da -n+m <0

Neuer Zielfunktionswert < Alter Wert

optimaler Zielfunktionswert >0

endliches Verfahren

Page 23: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Nachbesserung

Die u′i und v

′j sind also eine zulässige Lösung

Neuer Zielfunktionswert(NW) < Alter Zielfunktionswert (AW), da :

NW= AW − (n − r) ∗ 1 + s ∗ 1

= AW -n + r +s

= AW -n + m < AW, da -n+m <0

Neuer Zielfunktionswert < Alter Wert

optimaler Zielfunktionswert >0

endliches Verfahren

Page 24: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Nachbesserung

Die u′i und v

′j sind also eine zulässige Lösung

Neuer Zielfunktionswert(NW) < Alter Zielfunktionswert (AW), da :

NW= AW − (n − r) ∗ 1 + s ∗ 1

= AW -n + r +s

= AW -n + m < AW, da -n+m <0

Neuer Zielfunktionswert < Alter Wert

optimaler Zielfunktionswert >0

endliches Verfahren

Page 25: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Nachbesserung

Die u′i und v

′j sind also eine zulässige Lösung

Neuer Zielfunktionswert(NW) < Alter Zielfunktionswert (AW), da :

NW= AW − (n − r) ∗ 1 + s ∗ 1

= AW -n + r +s

= AW -n + m < AW, da -n+m <0

Neuer Zielfunktionswert < Alter Wert

optimaler Zielfunktionswert >0

endliches Verfahren

Page 26: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Zusammenfassung

Zusammenfassung

Primal:

gegeben: n x n Matrix R= (rij)

gesucht : Permutation j1, .., jn die∑n

i=1riji maximiert

Dual:

gegeben: n x n Matrix R= (rij)

gesucht : u1, .., un v1, .., vn so dass∑n

i=1ui + vi minimal und

ui + vj ≥ rij

Page 27: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Der Algorithmus

Page 28: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Ungarische Methode

Gestartet wird mit einer zulässigen Lösung für das dualeProblem

Erzeuge Matrix A=(aij)=ui + vj − rij

Suche n unabhängige Nullen in A

Page 29: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Start

Start-Lösung

ui = maxj rij (Zeilenmaxima)

vj = 0 für j=1..n

Beispiel: R =

8 7 9 95 2 7 86 1 4 92 3 2 6

u1 = 9 u2 = 8 v1 = 0 v2 = 0u3 = 9 u4 = 6 v3 = 0 v4 = 0

Page 30: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Start

Beispiel

A =

1 2 0 03 6 1 03 8 5 04 3 4 0

Vor Start noch das Minimum in jeder Spalte ermitteln und von derganzen Spalte abziehen

A =

0 0 0 02 4 1 02 6 5 03 1 4 0

Page 31: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Start

Page 32: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Schritt 1

Vorher: Markiere unabhängige Nullen und die jeweilige Spalte in A

↓ ↓0 0 0∗ 02 4 1 0∗

2 6 5 03 1 4 0

Schritt 1Suche nicht markierte Null (keine vorhanden → Schritt 3)

keine 0∗ in der Zeile → Schritt 20∗ in der Zeile und Spalte k: Zeile wird markiert, Spalte kMarkierung löschen

Bis alle Nullen in markierter Zeile/Spalte → Schritt 3

Im Bsp:unmarkierte Null in Zeile 1 → Zeile 1 markieren, Spalte 3Markierung löschenDanach alle Nullen markiert → Schritt 3

Page 33: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Schritt 3

↓→ 0 0 0∗ 0

2 4 1 0∗

2 6 5 03 1 4 0

Schritt 3h=min aij Zeile i, Spalte j unmarkiertaij = aij + h ∀aij in markierter Zeileaij = aij − h ∀aij in unmarkierter Spalte→ Schritt 1

Im Bsp: h=1

↓→ 0 0 0∗ 1

1 3 0 0∗

1 5 4 02 0 3 0

Page 34: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Schritt 3

↓→ 0 0 0∗ 0

2 4 1 0∗

2 6 5 03 1 4 0

Schritt 3h=min aij Zeile i, Spalte j unmarkiertaij = aij + h ∀aij in markierter Zeileaij = aij − h ∀aij in unmarkierter Spalte→ Schritt 1

Im Bsp: h=1

↓→ 0 0 0∗ 1

1 3 0 0∗

1 5 4 02 0 3 0

Page 35: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Schritt 3

Schritt 1:

↓→ 0 0 0∗ 1

1 3 0 0∗

1 5 4 02 0 3 0

Unmarkierte Null in Zeile 2, Zeile 2 markieren, Spalte 4 Markierunglöschen

→ 0 0 0∗ 1→ 1 3 0 0∗

1 5 4 02 0 3 0

unmarkierte 0 in Zeile 3, keine 0∗ in Zeile 3 → Schritt 2

Page 36: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Schritt 2

→ 0 0 0∗ 1→ 1 3 0 0∗

1 5 4 02 0 3 0

Schritt 2Starte mit unmarkierter 0 bei (i1,j1)

1 Suche 0∗ in Spalte j1 (gefunden bei (i2,j1))2 Suche 0 in Zeile i2 (gefunden bei (i2,j2))

Weiter bei 1 bis keine 0∗ mehr in der Spalte

Ändere jede 0 in Sequenz in eine 0∗ und jede 0∗ in eine 0

Alle Markierungen löschen, alle Spalten mit 0∗ markieren

Wenn alle Spalten markiert → Lösung gefundensonst Schritt 1

Page 37: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Schritt 2

↓ ↓ ↓0∗ 0 0 11 3 0∗ 01 5 4 0∗

2 0 3 0

unmarkierte 0 in Zeile 1 → Zeile 1 markieren, Spalte 1 Markierunglöschen

↓ ↓→ 0∗ 0 0 1

1 3 0∗ 01 5 4 0∗

2 0 3 0

unmarkierte 0 in Zeile 4, keine 0∗ in Zeile 4 → Schritt 2

Page 38: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Schritt 2

Schritt 2:keine 0∗ in Spalte 2, nur eine 0 in der Sequenz:

↓ ↓ ↓ ↓0∗ 0 0 11 3 0∗ 01 5 4 0∗

2 0∗ 3 0

Lösung gefunden: (1,1) ; (2,4) ; (3,2) ; (4,3)

Page 39: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Aufwand

Page 40: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Aufwandsanalyse

Aufwand

Maximale Anzahl Operationen im Worst-Case

Operationen sind

Zeile/Spalte scannen

Zeile/Spalte markieren bzw. Markierung löschen

Zu einer Zeile/Spalte addieren/subtrahieren

Null auswählen bzw. Auswahl löschen

Page 41: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Aufwandsanalyse

Start mit m 0∗

Aufwand bis m+1 0∗ vorhanden sind

Schritt 11 Jede Zeile scannen: n Operationen2 genau eine markierte Zeile erzeugen: 2 Operationen

(Jede unmarkierte Spalte enthält mind. eine 0)

Aufwand: n+2

Schritt 31 Minimum suchen: n Operationen2 Zu markierten Zeilen addieren: m Operationen3 Von unmarkierten Spalten subtrahieren: n Operationen

Aufwand: 2n + m

Page 42: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Aufwandsanalyse

beide Schritte werden höchstens m-Mal wiederholt(bis alle Zeilen markiert sind)Aufwand: m ∗ (3n + m))

Danach Schritt 2

1 Suche 0∗: m ∗ 1 Operation (Spalte scannen)2 Suche 0: m ∗ 1 Operation (Zeile scannen)3 0/0∗ in 0∗/0 ändern: 2 ∗m + 1 Operationen4 alle Markierungen löschen: m Operationen5 alle 0∗ suchen: m+1 Operationen6 jeweilige Spalte markieren: m+1 Operationen

Aufwand: 7m + 3

Page 43: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Aufwandsanalyse

Im Worst-Case Start mit einer 0∗ (m=1)Obige Schritte müssen n- Mal ausgeführt werden:

Gesamtaufwand

O(∑n

m=17m + 3 + m ∗ (3n + m))

=O(

∑nm=1

m ∗ (3n + m))=

O(∑n

m=1m ∗ 3n + m2)=

O(3n ∗∑n

m=1m +

∑nm=1

m2)=

O(n3)

Vergleiche und Addition als Operationen: Aufwand von O(n4)

Page 44: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

aktuelle Entwicklung

Page 45: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Vor Kuhn

Erster Algorithmus 1946 von Easter�eld in O(2n ∗ n2)

1950 drei Heuristiken von Thorndike

seit 1952 als Assignmentproblem bekannt (Votaw und Orden)

Page 46: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

nach Kuhn

1960 erster Computercode von Sylver

Beste Implementation der ungarischen Methode O(n3) Lawler1976

erster O(n3) Algorithmus von Dinic und Kronrod 1969

Auktionsalgorithmen O(n1/2m ∗ log(nC ) ) von Orlin undAhuja

Cost Scaling Technik O(n1/2m ∗ log(nC ) ) von Gabow 1989

C: maximale Kosten, m: Anzahl Kanten

Page 47: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Transportproblem

n Startknoten und m ZielknotenStartknoten liefern Einheiten an ZielknotenJede Kante hat Kosten und KapazitätFinde minimale Kosten um alle Zielknoten zu beliefern

Page 48: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Transportproblem

Umwandlung von Assignmentproblem in Transportproblem

bipartiter Digraph G=(V=X ∪Y,E)X: n Knoten für PersonenY: n Knoten für Jobs

Kosten der Kante (i,j): c(i,j)=-rij

Kapazität jeder Kante: u(i,j)=1

alle Knoten v ∈ X senden 1 Einheit Fluÿ (d(v)=1), alle Knotenw ∈ Y empfangen 1 Einheit Fluÿ (d(w)=-1)

Für einen Fluÿ f muÿ für jeden Knoten v ∈ V gelten:d(v) +

∑(u,v)∈E f (u, v)−

∑(v ,w)∈E f (v ,w) = 0

Page 49: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Cost Scaling Algorithmen

ResidualkantenmengeEf= {(v ,w) : (v ,w) ∈ E mit f (v ,w) < u(v ,w)} ∪{(v,w) : (w,v) ∈ E} (c(v,w)=-c(w,v))

Preisfunktion p: V → R:cp(u, v) = c(v ,w) + p(v)− p(w)

Ein Fluÿ heiÿt ε - optimal wenn

∀(u, v) ∈ Ef

{cp(u, v) ≥ 0 (u,v) ∈ E

cp(u, v) ≥ −ε (v,u) ∈ E

Wenn alle Kantenkosten ganzzahlig sind, ist ein ε - optimaler Fluÿmit ε < 1/N ein optimaler Fluÿ.

Page 50: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Cost Scaling Algorithmen

Vor Start: p(v)=0 ∀ v, ε = max |c(ij)|

Solange ε ≥ 1/n tue:ε = ε/ap(v)= -min(v ,w)∈E c(v,w) - p(w) ∀ v ∈ X

(cp(v ,w) ≥ 0)

f(v)=0 ∀ vErzeuge zulässigen, ε- optimalen Fluÿ(durch push- und relabel Operationen)

Wenn ε< 1/n ist der Fluÿ optimal und die Lösung gefunden

Page 51: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Push/Relabel

Push(v,w): Sendet Fluÿ von v nach w

Relabel(v): Modi�ziert die Preisfunktion p(v)

Laufzeit hängt von der Auswahl der Knoten v und w ab

Beste Laufzeit O(n1/2m ∗ log(nC ) )

Page 52: Die Ungarische Methode für das Assignment Problem von H. W ... · Harold William Kuhn Das Assignmentroblemp Ungarische Methode Aufwandaktuelle Entwicklung Die Ungarische Methode

Harold William Kuhn Das Assignmentproblem Ungarische Methode Aufwand aktuelle Entwicklung

Quellen

The Hungarian Method for the assignment problem (Kuhn[1955])

Algorithms for the Assignment and Transportation Problems(Munkres [1957])

ADM 2 Skript

http://www.blackwell-synergy.com/

Assignment Problems, by Rainer Burkard, Mauro Dell'Amico,Silvano Martello

An e�cient cost scaling algorithm for the assignment problemAndrew v. Goldberg und Robert Kennedy 1995