10 8 AKF, UzL WS20 05 /06 Al go rit ... - tcs.uni-luebeck.de · reits im Ca che vor handen sein...

17
108 AKF, UzL WS2005/06 Algorithmus EARLIEST-DEADLINE-FIRST: EINGABE: Menge R von Jobs r i mit Laufzeiten τ (i) und Deadlines δ (i) ordne die Jobs bzgl. ihrer Deadlines, d.h. δ (1) ...δ (n) : t := 0 ; FOR i =1 TO n DO schedule Job r i ur den Zeitraum [t, t + τ (i)[ ; t := t + τ (i) ; OD. Abbildung 20: Greedy-Algorithmus EDF f¨ ur das Intervall-Scheduling-Problem mit Dead- lines Lemma 7.2 1.) Alle Schedules ohne Inversionen und ohne Leerzeiten besitzen die gleiche maximale Versp¨ atung. 2.) Es gibt ein optimales Schedule ohne Leerzeiten und ohne Inversionen. Aus diesen Eigenschaften ergibt sich unmittelbar, das das von EDF konstruierte Schedule optimal ist. 7.5 Online-Scheduling — Das Caching-Problem Wie bereits oben bemerkt, kann man bei vielen Anwendungsszenarien nicht davon aus- gehen, daß vor Beginn des Scheduling alle Jobs und ihre zeitlichen Daten bekannt sind. Bei unvollst¨ andiger Information ¨ uber die anfallenden Jobs kann nicht mehr garantiert werden, daß ein optimales Schedule generiert wird, selbst wenn man beliebig komplexe Berechnungsverfahren einsetzt. Die fehlenden Informationen ¨ uber die Zukunft verhin- dern zumindest in einem worst-case Szenario, daß die von einem Algorithmus getroffenen sukzessiven online-Entscheidungen zu einem optimalen Schedule vervollst¨ andigt werden onnen. Deshalb setzen wir uns als Ziel beim Entwurf eines effizienten online-Algorithmus A , den Verlust im Vergleich zu einem optimalen offline-Algorithmus OPT oglichst klein zu halten. Diesen Verlust messen wir durch die kompetitive Rate, das Verh¨ altnis der Kosten der L¨ osungen, die A bzw. OPT erzeugen. Lemma 7.3 ur ein gegebenes Minimierungsproblem Q und eine Eingabe X bezeichne A(X ) die Kosten der L¨ osung des online-Algorithmus A und OPT(X ) die Kosten einer optimalen L¨ osung. A heißt ρ -kompetitiv ur eine Zahl ρ 1 , falls f¨ ur alle Eingaben X gilt: A(X ) ρ · OPT(X )+ c,

Transcript of 10 8 AKF, UzL WS20 05 /06 Al go rit ... - tcs.uni-luebeck.de · reits im Ca che vor handen sein...

Page 1: 10 8 AKF, UzL WS20 05 /06 Al go rit ... - tcs.uni-luebeck.de · reits im Ca che vor handen sein oder es m u§ vor her eine Op erat ion LO AD (x i) durc hgef uhrt¬ w erden. B ei vollst¬andig

108 AKF, UzL WS2005/06

Algorithmus EARLIEST-DEADLINE-FIRST:

EINGABE: Menge R von Jobs ri mit Laufzeiten !(i) und Deadlines "(i)

ordne die Jobs bzgl. ihrer Deadlines, d.h. "(1) ! . . . "(n) :t := 0 ;FOR i = 1 TO n DO

schedule Job ri fur den Zeitraum [t, t + !(i)[ ;t := t + !(i) ;OD.

Abbildung 20: Greedy-Algorithmus EDF fur das Intervall-Scheduling-Problem mit Dead-lines

Lemma 7.21.) Alle Schedules ohne Inversionen und ohne Leerzeiten besitzen die gleiche maximaleVerspatung.2.) Es gibt ein optimales Schedule ohne Leerzeiten und ohne Inversionen.

Aus diesen Eigenschaften ergibt sich unmittelbar, das das von EDF konstruierte Scheduleoptimal ist.

7.5 Online-Scheduling — Das Caching-Problem

Wie bereits oben bemerkt, kann man bei vielen Anwendungsszenarien nicht davon aus-gehen, daß vor Beginn des Scheduling alle Jobs und ihre zeitlichen Daten bekannt sind.Bei unvollstandiger Information uber die anfallenden Jobs kann nicht mehr garantiertwerden, daß ein optimales Schedule generiert wird, selbst wenn man beliebig komplexeBerechnungsverfahren einsetzt. Die fehlenden Informationen uber die Zukunft verhin-dern zumindest in einem worst-case Szenario, daß die von einem Algorithmus getro!enensukzessiven online-Entscheidungen zu einem optimalen Schedule vervollstandigt werdenkonnen. Deshalb setzen wir uns als Ziel beim Entwurf eines e"zienten online-AlgorithmusA , den Verlust im Vergleich zu einem optimalen o#ine-Algorithmus OPT moglichst kleinzu halten. Diesen Verlust messen wir durch die kompetitive Rate, das Verhaltnis derKosten der Losungen, die A bzw. OPT erzeugen.

Lemma 7.3 Fur ein gegebenes Minimierungsproblem Q und eine Eingabe X bezeichneA(X) die Kosten der Losung des online-Algorithmus A und OPT(X) die Kosten eineroptimalen Losung.A heißt ! -kompetitiv fur eine Zahl # " 1 , falls fur alle Eingaben X gilt:

A(X) ! # · OPT(X) + c ,

Page 2: 10 8 AKF, UzL WS20 05 /06 Al go rit ... - tcs.uni-luebeck.de · reits im Ca che vor handen sein oder es m u§ vor her eine Op erat ion LO AD (x i) durc hgef uhrt¬ w erden. B ei vollst¬andig

R. Reischuk, ITCS 109

wobei c # IN eine beliebige, aber feste Konstante ist ( c erweist sich als sinnvoll, umgroßere prozentuale Ungleichgewichte zwischen den online- und o#ine-Losungen bei klei-nen Probleminstanzen auszugleichen, wenn man sich auf das asymptotische Verhaltnis furgroße Eingaben konzentriert).

Die kompetitive Rate eines online-Optimierungsproblems definieren wir dann als daskleinste # , fur das es einen online-Algorithmus gibt, der # -kompetitiv ist.

Bei einem Maximierungsproblem ist lautet die Ungleichung entsprechend

A(X) " #!1 · OPT(X)$ c .

Eine sehr einfach zu beschreibende Scheduling-Aufgabe ist das Caching-Problem. Daten-elemente mussen, wenn sie vom Prozessor verarbeitet werden sollen, in einem lokalenCache gehalten werden. Dessen Kapazitat k , die Anzahl der Speicherplatze, ist typi-scherweise wesentlich kleiner als die Zahl der Datenelemente. Soll ein Datenelement xverwendet werden, das nicht im Cache vorhanden ist, so spricht man von einem Cache-Miss.

Die Aufgabenstellung kann folgendermaßen modelliert werden. Gegebenen eine Anfrage-sequenz X = x1, x2, . . . uber einem Universum U und einen Cache C der Große k ,konstruiere ein Schedule, d.h. eine Verwaltungsstrategie fur die k Cacheplatze, so daßmoglichst wenig Cache-Misses auftreten. Genauer stehen als atomare Operationen zurVerfugung:

LOAD(x) : Datenelement x wird in einen freien Cacheplatz eingelagert – dieseOperation verursacht Kosten 1;EJECT(x) : x wird aus dem Cache entfernt – Kosten 0.

Wird das i -te Element der Anfragesequenz verarbeitet, dann muß also xi entweder be-reits im Cache vorhanden sein oder es muß vorher eine Operation LOAD(xi) durchgefuhrtwerden. Bei vollstandiger Belegung von C muß jedoch zunachst durch EJECT(y) fur einDatenelement y aus C freier Platz gescha!en werden.

Aufgabenstellung des Caching-Problems ist es, die Kosten, d.h. die Anzahl der LOAD-Operationen, so gering wie moglich zu halten. Ein Algorithmus muß entscheiden, wanner ein LOAD(x) fur ein Element in x durchfuhrt und welches Element er fur eine EJECT-Operation auswahlt. Das erste kann einfach dadurch gelost werden, daß LOAD(x) erstzu dem Zeitpunkt erfolgt, wenn x in X erscheint – solche Strategien nennen wir lazy.Zusatzlich wollen wir von einer lazy Strategie verlangen, daß ein EJECT(y) nur dannausgefuhrt wird, wenn freier Platz im Cache gescha!en werden muß, d.h. also unmittelbarvor einem notwendigen LOAD. Man kann leicht einsehen:

Lemma 7.4 Zu einer beliebigen Caching-Strategie A gibt es immer eine lazy StrategieB , die keine hoheren Kosten als A verursacht.

Page 3: 10 8 AKF, UzL WS20 05 /06 Al go rit ... - tcs.uni-luebeck.de · reits im Ca che vor handen sein oder es m u§ vor her eine Op erat ion LO AD (x i) durc hgef uhrt¬ w erden. B ei vollst¬andig

110 AKF, UzL WS2005/06

Kennt man die Anfragesequenz X vorab, so kann man eine optimale Greedy-Strategiemit folgender Uberlegung entwerfen. Fur die Entscheidung, welches Element ausgelagertwird, wahlt der Algorithmus evict-furtherst-in-future (EFIF, siehe Abbildung 21).ein Element aus, auf das in den nachfolgenden Schritten am spatestens zugegri!en wird.Falls ein Element uberhaupt nicht mehr verwendet wird, so sei !(c) im obigen Programmals +% definiert.

Algorithmus EVICT-FURTHERST-IN-FUTURE:

EINGABE: Menge X = x1, x2, . . . , xn von Datenelementen

C := & ;FOR i = 1 TO n DO

IF xi /# C THEN DOFOR ALL c # C berechne !(c) := min{j > i | xj = c} ;wahle fur y ein c # C mit !(c) maximal;EJECT(y) ;LOAD(xi)OD

OD.

Abbildung 21: Optimaler o#ine-greedy-Algorithmus EFIF fur das Caching-Problem

Lemma 7.5Fur jede Zugri!ssequenz X besitzt das von EFIF konstruierte Schedule S minimaleKosten.

Beweis: Die Optimalitat kann man durch ein Exchange-Argument zeigen: Ein beliebigesSchedule S " soll durch eine Folge von Austauschoperationen, bei denen die Kosten nichtsteigen, umgewandelt werden in das von EFIF generierte S . Dies geschieht induktiv uberdie Prafixe von X . Genauer zeigen wir:

Ist S " ein lazy Schedule, das bis zum Schritt t dieselben EJECT -Entscheidungentri!t wie S , dann gibt es ein lazy Schedule S "" , das bis zum Schritt t + 1dieselben EJECT -Entscheidungen tri!t wie S und nicht mehr Cache-Missesbesitzt als S " .

Es genugt den Fall zu betrachten, daß es im Schritt t + 1 zwei Elemente e '= f gibt,so daß S ein EJECT(e) und S " ein EJECT(e") ausfuhrt. Wir modifizieren S " zu S "" ,indem anstelle von EJECT(e") ein EJECT(e) ausgefuhrt wird. Dadurch unterscheiden sichdie Cachebelegungen von S " und S "" ab Schritt t + 1 , so daß es zu unterschiedlichenCache-Misses kommen kann. Unser Ziel ist es, S "" noch weiter so zu modifizieren, daß dieCache-Inhalte in S " und S "" moglichst schnell wieder identisch sind.

Auf Grund der EFIF-Strategie, !(e) maximal zu wahlen, kann in der verbleibenden Folgext+2, xt+3, . . . der nachste Cache-Miss von e nur nach einem Cache-Miss vonr e" passieren.

Page 4: 10 8 AKF, UzL WS20 05 /06 Al go rit ... - tcs.uni-luebeck.de · reits im Ca che vor handen sein oder es m u§ vor her eine Op erat ion LO AD (x i) durc hgef uhrt¬ w erden. B ei vollst¬andig

R. Reischuk, ITCS 111

Die nachsten Cache-Misses LOAD(x) sind daher entweder von der Form x /# {e, e"} oderx = e" . Im ersten Fall besitzen sowohl S " als auch S "" einen Miss. S "" lagert bei solcheinen Miss dasselbe Element wie S " aus (und damit unterscheiden sich die Caches von S "

und S "" weiterhin nur um die Elemente e, e" ), es sei denn, dies ist e , welches im Cachevon S "" nicht vorkommt. In diesem Fall lagert S "" das Element e" aus, und damit besitzenS " und S "" wieder gleiche Cache-Inhalte.

Im zweiten Fall LOAD(e") besitzt nur S " einen Miss und muß ein Element f auslagern.Falls f = e , verandert S "" seinen Cache-Inhalt nicht, so daß beide Caches wieder gleichsind. Falls f '= e vollfuhrt S "" ein EJECT(e") und ein LOAD(f) . Dadurch werden beideCaches identisch, S "" verursacht ebenfalls eine Kosteneinheit, obwohl dies zu diesem Zeit-punkt nicht unbedingt notwendig ware. S "" ist damit kein lazy Schedule, kann aber ohneZusatzkosten in ein solches transformiert werden.

Im online-Fall sind zum Zeitpunkt t nur die Vergangenheit x1, . . . , xt!1 und die aktuelleOperation LOAD(xt) bekannt. Damit kann man die EFIF-Strategie nicht implementieren.Als Alternativen bieten sich an:

1. LEAST-RECENTLY-USED (LRU): die zeitliche Umkehrung von EFIF, bei der das Ele-ment ausgelagert wird, das am weitesten in der Vergangenheit zum letzten Malbenutzt worden ist;

2. STATISTIC: es werden die Zugri!shaufigkeiten aller Elemente in der Vergangenheitberechnet und ein Element ausgewahlt, fur das dieser Wert minimal ist;

3. RANDOM: zufallig und gleichverteilt wird ein Element des Caches ausgewahlt undausgelagert.

Der Aufwand, um diese Strategien zu implementieren, ist sehr unterschiedlich. Fur dieprobabilistische Strategie braucht man sich keine zusatzliche Information zu merken. BeiLRU muß fur jedes Element im Cache die Zeitpunkt des letzten Zugri!s gespeichertwerden, bei der anderen probabilistischen Strategie mussen die Zugri!shaufigkeiten furjedes Element des Universums vorratig gehalten werden.

Theorem 7.6 Fur das online-Caching-Problem mit Cachegroße k besitzt jeder determi-nistische Algorithmus eine kompetitive Rate mindestens k .Ist der Algorithmus lazy, dann ist die Rate nicht großer als k .RANDOM erreicht eine kompetitive Rate der Ordnung O(log k) .

Aus diesen Ergebnissen folgt somit daß LRU ein bezuglich der kompetitiven Rate bestmogli-cher deterministischer online-Algorithmus ist und daß die kompetitive Rate fur das de-terministische k -Caching-Problem k ist. Durch Zufallsentscheidungen kann man diesenWert auf logarithmische Große reduzieren.

Page 5: 10 8 AKF, UzL WS20 05 /06 Al go rit ... - tcs.uni-luebeck.de · reits im Ca che vor handen sein oder es m u§ vor her eine Op erat ion LO AD (x i) durc hgef uhrt¬ w erden. B ei vollst¬andig

112 AKF, UzL WS2005/06

8 Das Flußproblem fur Netzwerke

8.1 Netzwerke mit Kapazitatsbeschrankungen

In diesem Abschnitt wollen wir ein Transportproblem betrachten, namlich moglichst vieleEinheiten einer Ware von einem Absender zu einem Empfanger zu schicken, wobei gewisseKapazitatsbeschrankungen auf den Transportwege gegeben sind.

Definition 8.1 Ein Netzwerk ist ein gerichteter Graph G = (V, E, $, q, s) mit 2 aus-gezeichneten Knoten q , der Quelle und s , der Senke, sowie einer Kapazitatsfunktion$ : E ( IR+

0 . Wie ublich bezeichnen wir die Anzahl der Kanten und Knoten mit n := |V |und m := |E| .

Ein Fluß in G ist eine Funktion f : E ( IR+0 mit folgenden Eigenschaften:

• f(e) ! $(e) ) e # E , d.h. die Kapazitatsbeschrankung der Kanten ist zubeachten,

•!

(u!,v)#E

f(u", v) =!

(v,w!)#E

f(v, w) ) v # V $ {q, s}

was in einen Knoten hineinfließt, muß auch wieder herausfließen, die sogenannteKirchho!sche Regel. Quelle und Senke sind dabei ausgenommen, intern geht somitkeine Ware verloren.

Als den Wert eines Flusses definieren wir

W (f) :=!

(q,v)#E

f(q, v) =!

(v,s)#E

f(v, s)

Ein Fluß heißt maximal, falls sein Wert großtmoglich ist unter allen Flussen in G ;MAXFLOW(G) bezeichne diesen Wert.

Daß der Ausfluß aus der Quelle,"

(q,v)#E f(q, v) , identisch sein muß mit dem Abfluß indie Senke,

"(v,s)#E f(v, s) , folgt unmittelbar aus der 2. Bedingung, da im Netzwerk kein

Fluß verloren geht.

Beispiele fur Flußprobleme in der Praxis: Lenkung von Verkehrsstromen (Eisenbahn, Pkw)oder Nachrichtenstromen (Telefonverkehr, Datenverkehr im Internet).

Der maximal mogliche Fluß ist sicherlich beschrankt durch die Kapazitat der Quelle,d.h. die Summe der Kapazitaten aller Kanten, die die Quelle verlassen, sowie die Kapazitatder Senke, die Summe der Kapazitaten aller Kanten, die in der Senke enden. Es bezeichne"max := maxe#E $(e) die maximale Kapazitat einer Kante. Da die Quelle hochstens|V | $ 1 ausgehende Kanten zu den ubrigen Knoten besitzen kann, ist der maximaleAusfluß aus der Quelle und damit auch der maximale Fluß auf jeden Fall beschranktdurch MAXFLOW(G) ! |V | · $max .

Page 6: 10 8 AKF, UzL WS20 05 /06 Al go rit ... - tcs.uni-luebeck.de · reits im Ca che vor handen sein oder es m u§ vor her eine Op erat ion LO AD (x i) durc hgef uhrt¬ w erden. B ei vollst¬andig

R. Reischuk, ITCS 113

b

a c

s

d

q

Abbildung 22: Netzwerk mit Kapazitatsfunktion und einen Fluß mit Wert 3

q

G

s

!(e2)

!(er)

!(e1)

SQ

!(Q,S)

Abbildung 23: q|s -Schnitt (Q, S) mit Schnittkapazitat $(Q,S)

Definition 8.2 Allgemein nennen wir eine Zerlegung der Knoten in zwei TeilmengenV = Q * S einen q|s -Schnitt, falls q # Q und s # S . Die Schnittkapazitat einesq|s -Schnittes definieren wir als

$(Q, S) :=!

(v,u)#E, v#Q, u#S

$(v, u) .

Ein minimaler Schnitt von G ist ein q|s -Schnitt (Q,S) , so daß $(Q,S) minimal istunter allen q|s -Schnitten. Diese Zahl bezeichnen wir auch mit MINCUT(G) .

Fur einen Fluß f sei der Nettofluß von f uber einen Schnitt (Q,S) definiert als

f(Q,S) :=!

v#Q,u#S

f(v, u) $!

v#Q,u#S

f(u, v) ! $(Q,S) .

Lemma 8.1 Fur jeden q|s -Schnit gilt: f(Q,S) = W (f) .

Beweis: Per Induktion uber die Machtigkeit |Q| eines q|s -Schnittes. Fur |Q| = 1 giltQ = {q} und wir erhalten somit die Definition von W (f) .Fur großere Q betrachte einen Knoten v # Q verschieden von der Quelle. Nach Voraus-setzung gilt: f(Q\{v}, S*{v}) = W (f) . Es sei f1 der Gesamteinfluß nach v von Knoten

Page 7: 10 8 AKF, UzL WS20 05 /06 Al go rit ... - tcs.uni-luebeck.de · reits im Ca che vor handen sein oder es m u§ vor her eine Op erat ion LO AD (x i) durc hgef uhrt¬ w erden. B ei vollst¬andig

114 AKF, UzL WS2005/06

v

sf3q

f1 f2

f4

SQ

Abbildung 24: Flußveranderung bei Vergroßerung eines q|s -Schnittes

in Q\{v} aus und f2 der von Knoten in S . Analog sei f3 der Ausfluß von v zu Knotenin Q \ {v} und f4 der Ausfluß nach S . Die Flußbedingung garantiert f1 + f2 = f3 + f4

oder f4 $ f2 + f3 $ f1 = 0 . Andererseits laßt sich f(Q, S) darstellen als

f(Q,S) = f(Q\{v}, S*{v}) + f4$f2+f3$f1 = f(Q\{v}, S*{v}) = W (f) .

Als nachstes wollen wir den sogenannten Restgraphen fur einen gegebenen Fluß f de-finieren. Jede Kante e = (u, v) mit Fluß f(e) < $(e) unterhalb der Kapazitat wird imRestgraphen durch eine Vorwartskante mit Kapazitat $(e)$f(e) reprasentiert. Zu jedempositiven Fluß uber eine Kante e gibt es außerdem eine Ruckwartskante e von v nachu mit Kapazitat f(e) (siehe Abb. 25).

b

a c

s

d

q

Abbildung 25: Restgraph fur den Fluß in Abb. 22

Definition 8.3 Der Restgraph REST(G, f) eines Graphen G mit Fluß f ist ein Netz-werk uber der Knotenmenge V mit Kapazitatsfunktion r gegeben durch

r(u, v) :=#

$(u, v)$ f(u, v) falls (u, v) # E und $(u, v) > f(u, v),f(v, u) falls (v, u) # E und f(v, u) > 0.

Ein Weg von der Quelle zur Senke im Restgraphen heißt zunehmender Weg.

Page 8: 10 8 AKF, UzL WS20 05 /06 Al go rit ... - tcs.uni-luebeck.de · reits im Ca che vor handen sein oder es m u§ vor her eine Op erat ion LO AD (x i) durc hgef uhrt¬ w erden. B ei vollst¬andig

R. Reischuk, ITCS 115

8.2 Das MAXFLOW-MINCUT-Theorem

Das folgende Resultat, das beruhmte MAXFLOW-MINCUT-Theorem wurde 1956 vonFord und Fulkerson bewiesen.

Theorem 8.1 Fur jedes Netzwerk gilt: MAXFLOW(G) = MINCUT(G) .

Beweis: MAXFLOW(G) ! MINCUT(G) folgt direkt aus dem obigen Lemma. Istnamlich f ein maximaler Fluß in G und (Q, S) ein minimaler Schnitt, so erhaltenwir:

MAXFLOW(G) = W (f) = f(Q, S) ! $(Q,S) = MINCUT(G) .

Fur die Ungleichung in der anderen Richtung betrachten wir einen maximalen Fluß fund den q|s -Schnitt (Q,S) von G , fur den Q alle Knoten enthalt, die im zugehorigenRestgraphen fur f von der Quelle aus erreichbar sind. Auf Grund der Maximalitat von fgibt es im Restgraphen keinen Weg von q nach s , d.h. die Menge S := V $Q enthalts . Alle Kanten (v, u) , die von Q nach S verlaufen, mussen gesattigt sein, d.h. f(v, u) =$(v, u) , und alle Kanten (u, v) von S nach Q durfen keinen Fluß tragen, d.h. f(u, v) =0 . Daher konnen wir schließen

MINCUT(G) ! $(Q,S) = f(Q,S) = W (f) = MAXFLOW(G) .

Dies Ergebnis impliziert, daß man einen maximalen Fluß auf folgende Weise konstruierenkann.

procedure General-MAXFLOW (G, $)initialisiere f mit dem Nullfluß, d.h. f(e) := 0 fur alle e # Ewhile im Restgraph gibt es zunehmende Wege do

wahle solch einen Weg % = e1, . . . , ek aus# := min{r(ei) | ei # %}erhohe f auf % um #enddo

end General-MAXFLOW.

Terminiert die while-Schleife, d.h. gibt es keinen zunehmenden Weg mehr, so erhalten wir– wie im obigen Beweis skizziert – einen q|s -Schnitt, dessen Kapazitat gerade dem Wertdes Flusses entspricht. Das MAXFLOW-MINCUT-Theorems impliziert, daß dieser Wertmaximal ist.

Fur eine e"ziente Umsetzung dieser allgemeinen Strategie ist die Auswahl des zunehmen-den Weges von entscheidender Bedeutung. Sind die Kapazitaten ganzzahlig, so erfolgteine Flußerhohung immer um mindestens den Wert 1. Der maximale Fluß ist damit nachhochstens

MAXFLOW(G) ! (|V |$ 1) · $max

Page 9: 10 8 AKF, UzL WS20 05 /06 Al go rit ... - tcs.uni-luebeck.de · reits im Ca che vor handen sein oder es m u§ vor her eine Op erat ion LO AD (x i) durc hgef uhrt¬ w erden. B ei vollst¬andig

116 AKF, UzL WS2005/06

Iterationen gefunden. Der Graph in Abbildung 26 zeigt, daß diese Anzahl an Flußerhohun-gen bei ungunstiger Wahl der zunehmenden Wege auch benotigt werden kann. Treten beiden Kapazitaten auch irrationale Werte auf, so ist noch nicht einmal garantiert, daß einmaximaler Fluß nach endlich vielen Iterationen konstruiert worden ist. Hierfur gibt esentsprechende Beispiele.

Lemma 8.2 Ganzzahligkeit des optimalen Flusses. ———–

M

1

M

M M

q

b

s

a

Abbildung 26: Netzwerk, bei dem bei ungunstiger Wahl der zunehmenden Wege uber dieKante (a, b) bzw. die Ruckwartskante (b, a) insgesamt 2M Flußvergroßerungen benotigtwerden bis zum Erreichen von MAXFLOW

8.3 E!ziente Wahl der Flußerhohungen

Die folgenden Verbesserungen fur die Wahl der Flußerhohungen bieten sich an.

1. Wahle unter allen zunehmenden Wegen einen mit maximaler Flußerhohung.Dies reduziert die Anzahl der Iterationen auf hochstens 2 |E| · log $max , denn mankann zeigen, daß sich nach 2 |E| Flußerhohungen die maximal noch zu erzielen-de Flußerhohung mindestens halbiert hat. Einen maximal zunehmenden Weg kannman mit Hilfe eines SSSP-Algorithmus finden, so daß wir eine Gesamtlaufzeit vonO((|E| + |V | log |V |) · |E| · log $max) erhalten.

2. Vergroßere den Fluß entlang eines kurzesten Weges,wobei hier Weglange im gewohnliche Sinne gemeint ist, d.h. die Anzahl der Kantendes Weges. Ein kurzester Weg kann durch Breitensuche in Zeit O(|E|) gefundenwerden.

Jede Flußvergroßerung sattigt mindestens eine Kante des Restgraphens. Man kanndann zeigen, daß nach |E| vielen Flußvergroßerungen der Abstand zwischen Quelleund Senke um mindestens 1 wachst. Der Abstand zwischen Quelle und Senke kannmaximal |V |$1 betragen; somit erhalten wir einen Gesamtlaufzeit von O(|E|2·|V |) .

Page 10: 10 8 AKF, UzL WS20 05 /06 Al go rit ... - tcs.uni-luebeck.de · reits im Ca che vor handen sein oder es m u§ vor her eine Op erat ion LO AD (x i) durc hgef uhrt¬ w erden. B ei vollst¬andig

R. Reischuk, ITCS 117

3. Betrachte alle kurzesten Wege gleichzeitig und vergroßere den Flußwert entlang die-ser Wege.Wir teilen den Restgraphen auf in eine Folge von Stufen, wobei die i -te Stufe ausallen Knoten besteht, deren Entfernung von der Quelle (gemessen in der minimalenAnzahl von Kanten eines Weges) exakt i betragt. Wir betrachten zunachst den Teil-graphen des Restgraphen, der nur die Kanten beinhaltet, die aufeinanderfolgendeStufen verbinden. Dieser Teilgraph heiße Niveaugraph. Die Flußvergroßerung wirdentlang zunehmender Wege in diesem Niveaugraphen solange durchgefuhrt, bis qvon s getrennt ist. Derartige Wege kann man durch Breitensuche mit linearem Auf-wand finden. Da jede Flußvergroßerung mindestens eine Kante sattigt, gibt es fureinen Niveaugraphen maximal |E| viele Iterationen, wobei eine Iteration AufwandO(|V |) verlangt.

Konstruieren wir dann den neuen aktuellen Niveaugraphen, so wachst die Entfer-nung zwischen Quelle und Senke um mindestens 1, d.h. es gibt hochstens |V | vieleNiveaugraphen. Somit laßt sich der Gesamtaufwand abschatzen durch O(|E| · |V |2) .

8.4 Laufzeitverbesserungen fur das MAXFLOW-Problem

Referenz Laufzeit

0 Ford, Fulkerson [1956] O(n m $max)1 Edmonds, Karp [1972] O(n m2)2 Dinic [1970] O(n2m)3 Karzanov [1974] O(n3)4 Cherkasky [1977] O(n2+m)5 Malhotra, Kumar, Maheshwari [1978] O(n3)6 Galil [1980] O(n5/3m2/3)7 Galil, Naamad [1980]; Shiloach [1978] O(n m log 2n)8 Shiloach, Vishkin [1982] O(n3)9 Sleator, Tarjan [1983) O(n m log n)

10 Tarjan [1984] O(n3)11 Gabow [1985] O(n m log $max)12 Goldberg [1985] O(n3)13 Goldberg, Tarjan [1986] O(n m log (n2/m))14 Bertsekas [1986] O(n3)15 Cheriyan, Maheshwari [1987] O(n2+m)16 Ahuja, Orlin [1987] O(n m + n2 log $max)17 Ahuja, Orlin, Tarjan [1988] O(n m + n2 log $max / llog $max)18 Cheriyan, Hagerup [1989] O(min{n m log n, n m + n2 log 2n})

probabilistischer Algorithmus erwartete Laufzeit19 King, Rao, Tarjan [1994] O(n m log n / log m

n log n) fur m " 2n log n20 Cheriyan, Hagerup, Mehlhorn [1996] O(n3/ log n)

Tabelle 2: Verbesserungen der Laufzeiten fur das Flußproblem

Page 11: 10 8 AKF, UzL WS20 05 /06 Al go rit ... - tcs.uni-luebeck.de · reits im Ca che vor handen sein oder es m u§ vor her eine Op erat ion LO AD (x i) durc hgef uhrt¬ w erden. B ei vollst¬andig

118 AKF, UzL WS2005/06

Es gibt noch eine Vielzahl weiterer Verbesserungen, deren Analyse zum Teil recht auf-wendig ist. Wir listen in Tabelle 4 nur die wichtigsten Algorithmen auf.

Eine Verallgemeinerung des MAXFLOW-Problems auf Netzwerke mit mehreren Quellenund Senken laßt sich auf einfache Weise auf den singularen Fall zuruckfuhren. Man fugt2 neue Knoten hinzu, die als alleinige Quelle bzw. Senke fungieren, und verbindet dieneue Quelle mit allen Quellen des gegebenen Netzwerkes sowie alle deren Senken mit derneuen Senke uber jeweils eine Kante mit unbeschrankter Kapazitat (oder mit einem Wert,der die Ausflußkapazitat der einzelnen Quellen, bzw. die Einflußkapazitat der jeweiligenSenke, ubersteigt).

Zum Abschluß noch ein Beispiel, welches zeigt, daß die Annahme der Ganzzahligkeitder Kapazitaten notwendig ist, wenn man im Basis-Algorithmus General-MAXFLOWkeine besonderen Anforderungen an die zunehmenden Wege stellt. Die Abb. 27 zeigt einNetzwerk, dessen Kapazitaten durch die Zahl & =

$5!12 , 0, 618 · · · definiert werden.

& steht in enger Beziehung zu der Fibonacci-Folge und ergibt sich aus der Losung desgoldenen Schnitt-Problems der Geometrie. Es gilt die Gleichung &2 + & = 1 , welcheimpliziert &k+2 = &k $ &k+1 fur alle k " 0 . In diesem Netzwerk haben 2 Kanten dieKapazitat & , eine die Kapazitat 1 und alle ubrigen Kapazitat ' := 1 + & .

q

v1 1"

""

""

"

" "

#

""

"

v2

#

v5

s

"

v6

"

v4

v3

Abbildung 27: Netzwerk mit irrationalen Kapazitaten, bei dem bei ungunstiger Wahl derzunehmenden Wege der optimale Fluuß nicht mit endlich vielen Flußerhohungen erreichtwird

Wir betrachten eine Folge von Phasen k = 0, 1, 2, . . . , wobei jede Phase aus 6 Fluß-erhohungen besteht. Diese bestehenden aus den folgenden zunehmenden Pfaden und er-zielen in Abhangigkeit von der Stufenzahl k die in der letzten Spalte angegebenen Fluß-erhohungen.

Page 12: 10 8 AKF, UzL WS20 05 /06 Al go rit ... - tcs.uni-luebeck.de · reits im Ca che vor handen sein oder es m u§ vor her eine Op erat ion LO AD (x i) durc hgef uhrt¬ w erden. B ei vollst¬andig

R. Reischuk, ITCS 119

Flußerhohung

1. Pfad: q $ v1 $ v2 $ v3 $ v6 $ s &1+3k

2. Pfad: q $ v2 $ v1 $ v3 $ v6 $ v5 $ s &2+3k

3. Pfad: q $ v1 $ v2 $ v4 $ v6 $ s &2+3k

4. Pfad: q $ v2 $ v1 $ v4 $ v6 $ v3 $ s &3+3k

5. Pfad: q $ v1 $ v2 $ v5 $ v6 $ s &3+3k

6. Pfad: q $ v2 $ v1 $ v5 $ v6 $ v4 $ s &4+3k

Da jedesmal der Fluß um einen Wert großer als 0 erhoht wird, bricht das Verfahren nieab. Es kann bestenfalls gegen den maximalen Fluß, der, wie man sofort sieht, die Große 2'besitzt, konvergieren. Fugen wir zu diesem Netzwerk noch eine weitere Kante hinzu, etwaeine direkte Verbindung von der Quelle zur Senke mit einer beliebig hohen Kapazitat µ ,so kann es passieren, daß entlang dieser Kante nie eine Flußerhohung durchgefuhrt wird,so daß der in endlich vielen Schritten generierte Fluß noch beliebig weit entfernt ist vomOptimum 2' + µ .

Als nachstes wollen wir den Spezialfall betrachten, daß alle Kanten Kapazitat 1 besitzen,d.h. ein maximaler Fluß kann allein durch die Angabe der Kanten spezifiziert werden,uber die ein Fluß gefuhrt wird.

9 Matching-Probleme

9.1 2-dimensionales Matching

Definition 9.1 G = (V, E) sei ein ungerichteter Graph. Eine Teilmenge E " - E vonKanten heißt (2-dimensionales) Matching von G , falls fur alle Kantenpaare e1 '= e2 #E " gilt: e1 . e2 = & , mit anderen Worten, kein Knoten aus V inzidiert mit mehr alseiner Kante aus E " .E " heißt maximal oder nicht-erweiterbar, wenn es keine echte Obermenge E "" / E "

gibt, die ebenfalls die Matching-Bedingung erfullt. E " heißt Maximum-Matching oderoptimales Matching, falls die Kardinalitat von E " großtmoglich ist in der Menge allerMatchings fur G . Schließlich sprechen wir von einem perfekten Matching, falls jederKnoten von G mit einer Kante aus E " inzidiert.

Mit einer Greedy-Strategie kann man ein maximales Matching auf einfache Weise ge-nerieren. Dies wird im allgemeinen jedoch kein Maximum-Matching sein. Ein perfektesMatching ist ein Maximum-Matching der Große |V |/2 .

Ein Graph heißt bipartit oder 2-farbbar, falls man seine Knotenmenge in zwei TeileV = V1 * V2 zerlegen kann, so daß Kanten nur zwischen den beiden Teilen verlaufen,mit anderen Worten E - V1 0 V2 . Das Matching Problem ist fur deratige Graphenvon besonderem Interesse. Es modelliert beispielsweise das Problem, Ressourcen optimal

Page 13: 10 8 AKF, UzL WS20 05 /06 Al go rit ... - tcs.uni-luebeck.de · reits im Ca che vor handen sein oder es m u§ vor her eine Op erat ion LO AD (x i) durc hgef uhrt¬ w erden. B ei vollst¬andig

120 AKF, UzL WS2005/06

zuzuordnen, Prozesse zu Prozessoren, Clients zu Servern, Lehrer zu Schulklassen oderauch die Aufgabe, Personen einander zuzuordnen – aus diesem Grunde findet man auchdie Bezeichnung Heiratsproblem.

Ist zusatzlich eine Kosten- oder Gewinnfunktion ( : E ( IR fur die Kanten gegeben,so ergibt sich das gewichtete Matching-Problem: gesucht ist ein Matching E " - E ,welches den Wert des Matchings maximiert, wobei dieser in definiert ist als

W (E ") :=!

e#E!((e) .

Theorem 9.1 [Heiratssatz]Ein bipartiter Graph G = (V1 * V2, E) besitzt genau dann ein perfektes Matching,wenn |V1| = |V2| und fur alle Teilmengen U - V1 und deren Korrespondenz auf deranderen Seite des bipartiten Graphen $(U) := {v # V2 | 1 u # U mit {u, v} # E} dieGroßenbeziehung |$(U)| " |U | erfullt ist.

Beweis: Daß |V1| = |V2| eine notwendige Voraussetzung fur die Existenz eines perfektenMatchings ist, durfte klar sein. Sei daher k := |V1| = |V2| .

Die Notwendigkeit der zweiten Bedingung ist ebenfalls einsichtig, denn ein perfektes Mat-ching kreiert fur jede Teilmenge U - V1 eine Partnermenge W der Große |U | in V2 undfur diese gilt W - $(U) .

Daß sie auch hinreichend ist, zeigen wir mit Hilfe des MAXFLOW-MINCUT-Theorems.Denn das Matching-Problem fur bipartite Graphen laßt sich auf einfach Weise auf dasFlußproblem reduzieren, indem man zu G ein Netzwerk H konstruiert. Wir fugen eineQuelle q und eine Senke s hinzu und verbinden q mit allen Knoten in V1 und s mitallen Knoten in V2 , wobei die Kanten von der Quelle in Richtung Senke gerichtet werden.Jede Kante erhalt die Kapazitat 1 (siehe Abb. 28). Zu einem Matching E " in G derGroße w korrespondiert eindeutig ein Fluß f in H gleicher Große w , wenn man uberdie Kanten in H , deren Urbilder in G zu E " gehoren, jeweils eine Einheit fließen laßt;Analoges gilt auch in umgekehrter Richtung.

Angenommen, ein bipartiter Graph G mit |V1| = |V2| besitzt kein perfektes Matching.Der maximale Fluß in H ist damit kleiner als k . Betrachte einen minimalen q|s -Schnitt(Q,S) in H . Die Schnittkapazitat $(Q,S) ist gerade die Anzahl der Kanten, die von Qnach S fuhren. Es seien Q1 := Q . V1 und S1 := $(Q1) - V2 . Da die Quelle q mitjedem Knoten in V1 \ Q1 durch eine Kante verbunden ist, gilt

k > MAXFLOW(H) = $(Q,S) " |V1 \ Q1| + |$(Q1)| = k $ |Q1| + |$(Q1)| .

Dies impliziert jedoch |Q1| > |$(Q1)| , d.h. die zweite Bedingung ist verletzt.

Obwohl uns dieser Satz ein einfaches Kriterium fur die Existenz eines perfekten Matchingsangibt, gewinnen wir daraus kein e"zientes Entscheidungsverfahren, da die Anzahl derzu untersuchenden Teilmengen U exponentiell groß ist.

Page 14: 10 8 AKF, UzL WS20 05 /06 Al go rit ... - tcs.uni-luebeck.de · reits im Ca che vor handen sein oder es m u§ vor her eine Op erat ion LO AD (x i) durc hgef uhrt¬ w erden. B ei vollst¬andig

R. Reischuk, ITCS 121

Wir benutzen daher einen Flußalgorithmus, um ein optimales Matching zu finden. Fuhrtman fur ein Matching E " mit korrespondierendem Fluß f in H im Restgraphen vonH eine Flußerhohung durch, so besitzt dieser zunehmende Weg die folgende Gestalt.Gestartet mit (q, u1) fur ein u1 # V1 wird eine Folge von Kanten

(u1, w1), (w1, u2), (u2, w2), . . . , (ul, wl) mit ui # V1 und wi # V2

zwischen V1 und V2 durchlaufen, bis der Weg schließlich mit der Kante (wl, s) endet.Diese Kantenfolge besteht abwechselnd aus Kanten (ui, wi) , die eine Kante in E \E " re-prasentieren, und Ruckwartskanten (wi, ui+1) , die zu einer Kante in E " korrespondieren.Einen derartigen Kantenzug bezeichnet man dann als einen alternierenden Weg

V2

sq

V1

Abbildung 28: Netzwerk H , das sich aus einem Graphen G fur das Matching-Problemableitet: die Kanten mit dickerer Strichstarke beschreiben einen aktuellen Fluß; gestricheltist ein alternierender Weg zur Flußerhohung und damit zur Vergroßerung des Matchingdurch Umordnung der Paare eingezeichnet.

Da die Kantenkapazitat in diesen Graphen 1 ist, d.h. $max = 1 , erreicht der einfacheFlußalgorithmus von Ford-Fulkerson die Laufzeit O(n m) . Fur diese Graphen ist seineLaufzeitschranke somit besser als die der nachfolgenden Verfahren. In dem Spezialfallbipartiter Netzwerke, bei denen jeder interne Knoten entweder nur eine eingehende undbeliebig viele ausgehende oder nur eine ausgehende Kante und beliebig viele eingehendeKanten besitzt und Kapazitat dieser eingehenden bzw. ausgehenden Kanten daruber-hinaus durch 1 beschrankt ist, kann man die Laufzeit des Flußalgorithmus verbessern

zu O($|V | · |E|) ! O(n2,5) . Dies ist damit gleichzeitig eine Laufzeitschranke fur das

Matching-Problem in bipartiten Graphen.

Beim Matching-Problem fur beliebige Graphen verursacht das Finden alternierender Wegegroßere Schwierigkeiten. Es gelang jedoch, auch hier die selbe Laufzeit wie im bipartitenFall zu erreichen.

Page 15: 10 8 AKF, UzL WS20 05 /06 Al go rit ... - tcs.uni-luebeck.de · reits im Ca che vor handen sein oder es m u§ vor her eine Op erat ion LO AD (x i) durc hgef uhrt¬ w erden. B ei vollst¬andig

122 AKF, UzL WS2005/06

Theorem 9.2 Fur einen Graphen G = (V, E) kann in Zeit O($|V | · |E|) ein maximum-

Matching berechnet werden.

9.2 3-dimensionales Matching und Uberdeckungsprobleme

Das Matching-Problem kann somit in polynomialer Zeit gelost werden. Betrachten wir nundie naheliegende Verallgemeinerung des Matching-Problems auf Tripel, das 3-dimensionaleMatching-Problem.

Definition 9.2 Gegeben sei eine Menge M von Tripeln uber einer Grundmenge A0B0C paarweise disjunkter Komponenten A, B, C . Ein Matching von M ist eine TeilmengeM " von Tripeln, so daß jedes Element aus A*B*C in hochstens einem Tripel vorkommt.

Eine Matching M " , bei dem jedes Element vertreten ist (und damit genau einmal), istein perfektes 3-dimensionales Matching. Notwendige Voraussetzung dafur ist dieGleichmachtigkeit der Komponenten A, B, C .

Neben dem konstruktiven Problem, ein moglichst großes Matching zu finden, betrachtenwir das simple Entscheidungsproblem 3-DIM-MATCHING, die Frage, ob eine gegebene Men-ge M von Tripeln ein perfektes Matching besitzt.

Zwischen der 2- und der 3-dimensionalen Variante liegt ein gewaltiger Komplexitats-sprung.

Theorem 9.3 3-DIM-MATCHING # NPC .

Beweis: Daß dies Problem in NP liegt, ist leicht einzusehen.Es bleibt damit die Harte zu zeigen. Zur Reduktion benutzen wir das Problem 3-SAT.

Sei F = K12 . . .2Km eine Formel in 3-CNF mit den Variablen x1, . . . , xr und KlauselnKj = x

!j1

j1 3 x!j2

j2 3 x!j3

j3 . Es bezeichne I = [1..r] die Variablen-Indizes und J = [1..m]die Klausel-Indizes.

Uber einer Grundmenge Y1 0 Y2 0 Y3 konstruieren wir eine Menge M = M(F ) vonTripeln, die zu den Variablen und Klauseln in F korrespondieren.Es sei K := [1..(r $ 1) · m] und

Y1 := {u[i, j, 0], u[i, j, 1] | i # I, j # J} ,

Y2 := {a[i, j], sj, gk | i # I, j # J, k # K} ,

Y3 := {b[i, j], rj, hk | i # I, j # J, k # K} .

Die Elemente u[i, j, &] ( & = 0, 1 ) dienen dazu, das Vorkommen der Variablen xi in derKlausel Kj zu beschreiben, genauer das Element mit & = 0 , falls Kj das Literal xi

enthalt, sowie das mit & = 1 , falls xi in Kj vorkommt.

Page 16: 10 8 AKF, UzL WS20 05 /06 Al go rit ... - tcs.uni-luebeck.de · reits im Ca che vor handen sein oder es m u§ vor her eine Op erat ion LO AD (x i) durc hgef uhrt¬ w erden. B ei vollst¬andig

R. Reischuk, ITCS 123

u[i, 1, 0]

a[i, 3]

a[i, 2]

u[i, 3, 1]

b[i, 3]

u[j1, j,"j1 ]

u[i, 2, 1]

a[i, 1] b[i, 1]

b[i, 2] u[j3, j,"j3 ]u[i, 3, 0]

u[i, 1, 1]

u[i, 2, 0]

sj rju[j2, j,"j2 ]

Abbildung 29: Variablen-Tripel Ti, Fi und Klausel-Tripel Dj einer Reduktion auf3-DIM-MATCHING

Zu jeder Variablen xi generieren wir zunachst die Tripel

Ti := {(u[i, j, 0], a[i, j], b[i, j]) | j # J} ,

Fi := {(u[i, j, 1], a[i, j + 1], b[i, j]) | j # J} ,

wobei der Index j + 1 des Elements a[i, j + 1] im Fall j = m als 1 interpretiert wird.

Weitere Tupel mit den Elementen a[i, j], b[i, j] gibt es nicht, d.h. in einem perfekten Mat-ching kann jedes a[i, j] und jedes b[i, j] nur mit einem Tripel aus Ti oder Fi uberdecktwerden Da Uberschneidungen zwischen Tripeln im Matching nicht vorkommen durfen,konnen wir folgern:

Fakt 1: Ein perfektes Matching M " - M muß fur ein jedes i entweder alle Tripel ausTi oder alle Tripel aus Fi enthalten.

Den ersten Fall interpretieren wir als die Belegung von xi mit dem Wert 1, den anderenals xi = 0 . Somit ist sichergestellt, daß alle Vorkommnisse einer Variablen xi die gleicheBelegung erhalten.

Fur jede Klausel Kj generieren wir die Tripel

Dj := {(u[j1, j,'j1 ], sj, rj), (u[j2, j,'j2 ], sj, rj), (u[j3, j,'j3 ], sj, rj), } .

Weitere Tupel mit den Elementen sj, rj gibt es nicht. Daher gilt

Fakt 2: Ein perfektes Matching M " besitzt fur jedes j # J genau einen Index k # [1..3] ,so daß das Tripel (u[jk, j,'jk

], sj, rj) in M " vertreten ist.

In M " kommt daher das Element u[jk, j,'jk] nicht in einem der Tripel aus Ti * Fi vor.

Kommt also beispielsweise die Variable xi negativ in Kj vor und erfullt damit xi = 0

Page 17: 10 8 AKF, UzL WS20 05 /06 Al go rit ... - tcs.uni-luebeck.de · reits im Ca che vor handen sein oder es m u§ vor her eine Op erat ion LO AD (x i) durc hgef uhrt¬ w erden. B ei vollst¬andig

124 AKF, UzL WS2005/06

diese Klausel, so enthalt M " das Element u[i, j, 0] in dem Tripel (u[i, j, 0], j, 0) sowie dasTripel (u[i, j, 1], , a[i, j + 1], b]i, ]) aus Fi . Umgekehrt laßt sich folgern:

Fakt 3: Gibt es fur jedes j # J einen Index k # [1..3] , so daß das Tripel (u[jk, j,'jk], sj, rj)

in M " vertreten ist, so ist F erfullbar.

Wir erhalten damit, daß die Existenz eines perfekten Matching fur M(F ) die Erfullbar-keit von F garantiert. Um umgekehrt aus der Erfullbarkeit von F ein perfektes Matchingabzuleiten, fugen wir noch einige Tripel hinzu, um auch die restlichen Elemente der Formu[i, j, &] einsammeln zu konnen. Gemaß Fakt 1 konnen wir von diesen 2 r m vielen Ele-menten maximal die Halfte durch Tripel aus

%i Ti * Fi auswahlen. Nach Fakt 2 und 3

konnen weitere m ausgewahlt werden durch Tripel aus%

j Dj , falls F eine erfullende Be-legung besitzt, indem wir namlich die Belegung der Variablen xi durch die entsprechendeAuswahl der Tripel aus Ti oder Fi widerspiegeln. Es verbleiben also (r $ 1) · m vieleElemente, falls F erfullbar ist, andernfalls sind es mehr. Fur diese Garbage Collectiondefinieren wir die Menge

G = {(u[i, j, 0], gk, hk), (u[i, j, 1], gk, hk) | i # I, j # J, k # K} .

O!ensichtlich konnen aus G maximal |K| = (r $ 1) · m viele Tripel gewahlt werden,ohne daß die Elemente gk, hk mehrfach verkommen. Ordnen wir die noch nicht gewahltenu[i, j, &] in beliebiger Reihenfolge an, so konnen wir fur maximal (r$1)·m viele ein Tripel(u[i, j, &], gk, hk) auswahlen. Somit gibt es ein perfektes Matching, falls F eine erfullendeBelegung besitzt, andernfalls bleibt mindestens eins der Elemente u[i, j, &] ungematched.

Verzichtet man auf die Disjunktheit der Komponenten A0B 0C - M , d.h. betrachtenwir anstatt geordneter Tripel 3-elementige Mengen, so erhalten wir das Problem exakte3-Uberdeckung, abgekurzt X3C.

Die Menge M kann in diesem Fall auch als die Kantenmenge eines Hypergraphen be-schrieben werden, wobei eine Hyperkante eines solchen Graphen eine beliebige Teilmengeseiner Knoten ist. Gewohnliche ungerichtete Graphen sind somit der Spezialfall, daß Kan-ten aus jeweils 2 Knoten bestehen. Beim X3C Problem sind alle Hyperkanten 3-elementigeTeilmengen. Da dies Problem eine Verallgemeinerung von 3-DIM-MATCHING darstellt, istX3C ebenfalls NP –vollstandig.