Diskrete Optimierung

Transcrição

Diskrete Optimierung
Diskrete Optimierung
Vorlesungsskript SS 2010, TU München
Prof. Dr. Raymond Hemmecke
Version vom 11. Juli 2010
Inhaltsverzeichnis
1 Komplexitätstheorie
1
1.1
Was ist ein Problem? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2
Was ist ein Algorithmus? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.3
Was ist Effizienz? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.4
Kodierungsschema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.5
Rechnermodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.6
Die Klasse P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.7
Die Klasse N P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.8
Die Klasse N P-vollständig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.9
Komplexität von Optimierungsproblemen . . . . . . . . . . . . . . . . . . . . . . .
8
2 Ganzzahlige Optimierung
2.1
9
n
Lineare diophantische Gleichungssysteme Ax = b, x ∈ Z
. . . . . . . . . . . . . .
9
2.1.1
Gitter und Gitterbasen
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.1.2
Lineare diophantische Gleichungen . . . . . . . . . . . . . . . . . . . . . . .
10
2.1.3
Unimodulare Matrizen und Transformationen . . . . . . . . . . . . . . . . .
11
2.1.4
Hermite Normalform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
2.1.5
Ganzzahlige Lösung von Az = 0 . . . . . . . . . . . . . . . . . . . . . . . .
13
2.1.6
Ganzzahlige Lösung von Az = b . . . . . . . . . . . . . . . . . . . . . . . .
14
2.1.7
Ganzzahliges Farkas-Lemma . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.2
Ganzzahlige Hülle und ganzzahlige Polyeder . . . . . . . . . . . . . . . . . . . . . .
15
2.3
Hilbertbasen rationaler polyedrischer Kegel, TDI-Systeme und Chvátal-GomoryAbschluss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
2.3.1
Hilbertbasen rationaler polyedrischer Kegel . . . . . . . . . . . . . . . . . .
26
2.3.2
TDI-Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
i
INHALTSVERZEICHNIS
2.3.3
ii
Chvátal-Gomory-Abschluss . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
2.4
Schnittebenen-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
2.5
Gomory-Schnitte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
2.6
Branch-and-Bound Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
2.7
Branch-and-Cut Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
Kapitel 1
Komplexitätstheorie
Wiederholung: Notation
Wir setzen N = Z+ = {0, 1, 2, . . .}. Desweiteren sei g : N → R eine Funktion. Dann definieren wir:
O(g)
= {f : N → R|∃c > 0, n ∈ N mit |f (n)| ≤ c · |g(n)| für alle n ≥ n0 }
Ω(g)
= {f : N → R|∃C > 0, n ∈ N mit |f (n)| ≥ c · |g(n)| für alle n ≥ n0 }
Θ(g)
= {f : N → R|∃c, C > 0, n ∈ N mit c · |g(n)| ≤ |f (n)| ≤ C · |g(n)| für alle n ≥ n0 }
Beispiel. f (n) = ak nk + . . . + a1 n + a0 ∈ O(nk )
1.1
Was ist ein Problem?
Definition 1.1.1 Ein Problem ist eine allgemeine Fragestellung, bei der mehrere Parameter
offen gelassen sind und für die eine Lösung oder Antwort gesucht wird.
Ein Problem ist dadurch definiert, dass alle seine Parameter beschrieben werden und dass genau
angegeben wird, welche Eigenschaften eine Antwort (Lösung) haben soll.
Sind alle Parameter eines Problems mit expliziten Daten belegt, dann sprechen wir von einem
Problembeispiel (Instanz).
Beispiel. “Finde in einem gewichteten Graphen G einen kürzesten Hamiltonischen Kreis.”
Offene Parameter: Graph G, Kantengewichte (Entfernungen)
1
1.2. Was ist ein Algorithmus?
1.2
2
Was ist ein Algorithmus?
Definition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen Lösung eines Problems.
Wir sagen, ein Algorithmus Problem Π löst, wenn er für jedes Problembeispiel I ∈ Π eine Lösung
in einer endlichen Anzahl an Schritten findet. Ein Schritt ist eine elementare Opteration, z.B.
Addieren, Subtrahieren, Vergleichen, Multiplikation, Division.
Die Laufzeit eines Algorithmus ist die Anzahl der Schritte, die notwendig sind zur Lösung des
Problembeispiels.
Forschungsschwerpunkte:
• Entwurf von Algorithmen
• Berechenbarkeit: Was kann durch Algorithmen berechnet werden?
• Komplexität von Algorithmen
• Korrektheit von Algorithmen
1.3
Was ist Effizienz?
• Inhalt der Komplexitätstheorie
• Speicher- und Laufzeitkomplexität
Bemerkung.
• Laufzeit eines Algorithmus hängt von der “Größe” der Eingabedaten ab.
• Laufzeitanalyse erfordert eine Beschreibung, wie Problembeispiele dargestellt werden (Kodierungsschema).
• Notwendigkeit exakter Definitionen → geeignetes Rechnermodell → Turing-Maschine
1.4
Kodierungsschema
Ganze Zahlen
Ganze Zahlen werden binär dargestellt, d.h. wir schreiben
n=±
k
X
xi · 2 i ,
i=0
mit xi ∈ {0, 1} und k = blog2 (|n|)c.
D.h. die Kodierungslänge hni einer ganzen Zahl n ist gegeben durch die Formel
hni = (k + 1) + 1 = blog2 (|n|)c + 2.
Kapitel 1. Komplexitätstheorie
3
Rationale Zahlen
Sei r ∈ Q. Dann existieren p ∈ Z und q ∈ Z, teilerfremd, mit r = pq .
hri = hpi + hqi
Vektoren und Matrizen
Für A ∈ Qm×n ist
m X
n
X
hAi =
haij i.
i=1 j=1
1.5
Rechnermodell
Nach Festlegung der Kodierungsvorschrift muss ein Rechnermodell entworfen werden, auf dem unsere Speicher- und Laufzeitberechnungen durchgeführt werden. In der Komplexitätstheorie: TuringMaschine (ein ganz normaler Computer)
Ablauf eines Algorithmus auf der Turing-Maschine:
Algorithmus A soll Problembeispiel I des Problems Π lösen. Alle Problembeispiele liegen in kodierter Form vor. Die Anzahl der Speicherplätze, die nötig sind, um I vollständig anzugeben, heißt
Inputlänge, hIi. Der Algorithmus liest die Daten und beginnt dann, Operationen auszuführen,
d.h. Zahlen zu berechnen, zu speichern, zu löschen.
Die Anzahl der Speicherplätze, die während der Ausführung des Algorithmus mindestens einmal
benutzt werden, nennen wir Speicherbedarf von A zur Lösung von I. Die Laufzeit von A zur
Lösung von I ist die Anzahl elementarer Operationen. Dazu zählen +, −, ∗, /, Vergleich, Löschen,
Schreiben, Lesen von rationalen Zahlen.
Dies ist jedoch zu unpräzise! Zur Darstellung der entsprechenden Zahlen werden mehrere Bits
benötigt. → Für jede Operation müssen wir mehrere Bits zählen.
Definition 1.5.1 Laufzeit von A zur Lösung von I ist definiert durch die Anzahl elementarer
Operationen, die A ausgeführt hat, um I zu lösen, multipliziert mit der größten Kodierungslänge
der während der Berechnung aufgetretenen ganzen oder rationalen Zahl.
Definition 1.5.2 (“worst-case Laufzeit”)
(a) Sei A ein Algorithmus zur Lösung eines Problems Π. Die Funktion fA : N → N,
fA (n) = max{Laufzeit von A zur Lösung von I : I ∈ Π, hIi ≤ n}
heißt Laufzeitfunktion von A.
1.6. Die Klasse P
4
(b) Die Funktion sA : N → N definiert durch
sA (n) = max{Speicherbedarf von A zur Lösung von I : I ∈ Π, hIi ≤ n}
heißt Speicherplatzfunktion von A.
(c) Der Algorithmus A hat eine polynomiale Laufzeit (kurz: A ist ein polynomialer Algorithmus), wenn es ein Polynom p : N → N gibt mit
fA (n) ≤ p(n) für alle n ∈ N.
Wir sagen fA ist von der Ordnung höchstens nk (geschrieben fA = O(nk )), falls das Polynom p den Grad k hat.
(d) Der Algorithmus A hat polynomialen Speicherbedarf, falls es ein Polynom q : N → N gibt mit
sA (n) ≤ q(n) für alle n ∈ N.
Bemerkung.
• fA (n) ist in Praxis kaum exakt berechenbar (zu aufwendig).
• fA (n) ist maschinenabhängig.
• Man kann aber a priori ein g bestimmen mit f ∈ O(g). → Man finde möglichst kleinstes
solches g.
1.6
Die Klasse P
Ein Entscheidungsproblem ist ein Problem, das nur zwei mögliche Antworten besitzt, “ja” oder
“nein”.
Beispiel. “Ist n eine Primzahl?”
Klasse P: Klasse aller Entscheidungsprobleme, für die ein polynomialer Lösungsalgorithmus existiert
Diese Definition ist informell: Gegeben ein Kodierungsschema E und ein Rechnermodell M . Π sei
ein Entscheidungsproblem, wobei jede Instanz aus Π durch Kodierungsschema E kodierbar sei. Π
gehört zur Klasse P (bzgl. E und M ), wenn es einen auf M implementierbaren Algorithmus zur
Lösung aller Problembeispiele aus Π gibt, dessen Laufzeitfunktion auf M polynomial ist.
1.7
Die Klasse N P
Motivation.
• Enthält G einen Kreis? → “einfach” → P
• Enthält G einen hamiltonischen Kreis? → “schwieriger” → N P
Kapitel 1. Komplexitätstheorie
5
Klasse NP
Definition 1.7.1 Ein Entscheidungsproblem Π gehört zu N P, wenn es die folgende Eigenschaften
hat:
(a) Für jedes Problembeispiel I ∈ Π, für das die Antwort “ja” lautet, gibt es mindestens ein
Objekt Q, mit dessen Hilfe die Korrektheit der “ja”-Antwort überprüft werden kann.
(b) Es gibt einen Algorithmus, der Problembeispiele I ∈ Π und Zusatzobjekte Q als Input akzeptiert und der in einer Laufzeit, die Polynomial in hIi ist, überprüft, ob Q ein Objekt ist,
aufgrund dessen Existenz ein “ja”-Antwort für I gegeben werden muss.
Beispiel. “Hat gegebenes System Ax = b, x ≥ 0 eine Lösung?”
Zusatzobjekt Q: z.B. eine Lösung x0
Überprüfungsalgorithmus: Teste, ob Ax0 = b, x0 ≥ 0.
“Ja.”: Die “ja”-Antwort für I ist bestätigt.
“Nein.”: Q ist ungeeignetes Objekt. Die Antwort für I bleibt offen.
1.7. Die Klasse N P
6
Bemerkung.
• Es wird keine Aussage über die Berechenbarkeit eines geeigneten Q gemacht. → Q kann
geraten werden. → Nondeterministic Polynomial time
• Laufzeit des Algorithmus in (b) ist polynomial in hIi. Da der Algorithmus Q lesen muss, ist
hQi polynomial in hIi.
• Auf die Frage “Hat die Gleichung x2 + y 2 = n eine Lösung in ganzen Zahlen?” ist x = y =
√
n 0.5 kein geeignetes Zusatzobjekt.
• Definition ist unsymmetrisch in “ja” und “nein”. N P impliziert nicht, dass auf die “nein”Antwort ein polynomialer Algorithmus zur Überprüfung der Korrektheit dieser Aussage existiert.
• Probleme, die Negationen von Problemen aus N P sind, gehören zur Klasse coN P. Zum
Beispiel: “Hat G keinen Kreis?”, “Ist n ∈ N eine Primzahl?” Man weiß, dass beide Probleme
zur Klasse N P∩ coN P gehören. Vom Problem “Hat G keinen hamiltonischen Kreis?” weiß
man nicht, ob es zu N P gehört.
• P ⊆ N P: Es ist kein Objekt Q nötig, um die “ja”-Antwort in polynomiller Zeit zu überprüfen.
• Offene Fragen:
P
NP
P
= N P ∩ coN P
=
coN P
6= N P
Beispiele. Die Probleme “Hat ein Graph G einen Kreis?”, “Hat ein Graph G einen hamiltonischen
Kreis?” sind somit in N P. Hat nämlich G einen Kreis oder hamiltonischen Kreis, so wählen wir
diesen als Objekt Q. Dann entwerfen wir einen polynomialen Algorithmus, der für einen Graphen
G und eine zusätzliche Kantenmenge Q entscheidet, ob Q ein Kreis oder hamiltonischer Kreis von
G ist.
Auch die Frage “Ist n ∈ N eine zusammengesetzte Zahl?” ist in N P, denn liefern wir als “Objekt”
zwei Zahlen 6= 1, deren Produkt n ist, so ist n keine Primzahl. Die Überprüfung der Korrektheit
besteht somit in diesem Fall aus einer einzigen Multiplikation.
Kapitel 1. Komplexitätstheorie
1.8
7
Die Klasse N P-vollständig
Nächster Schritt: Charakterisierung besonders schwieriger Probleme in N P.
Polynomiale Transformation von Problemen
Definition 1.8.1 Gegeben seien zwei Entscheidungsprobleme Π und Π0 . Eine polynomiale Transformation von Π in Π0 ist ein polynomialer Algorithmus, der, gegeben ein (kodiertes) Problembeispiel I ∈ Π, ein (kodiertes) Problembeispiel I 0 ∈ Π0 produziert, so dass folgendes gilt:
Die Antwort auf I ist genau dann “ja”, wenn die Antwort auf I 0 “ja” ist.
Wenn Π in Π0 polynomiell transformierbar ist und es einen polynomialen Algorithmus zur Lösung
von Π0 gibt, dann kann jede Instanz von Π auch polynomial gelöst werden.
Klasse N P-vollständig
Definition 1.8.2 Ein Entscheidungsproblem Π heipt N P-vollständig, falls Π ∈ N P und falls
jedes andere Problem aus N P polynomial in Π transformiert werden kann.
Jedes N P-vollständige Entscheidungsproblem hat also folgende Eigenschaft. Falls Π in polynomialer Zeit gelöst werden kann, dann kann auch jedes andere Problem aus N P in polynomialer Zeit
gelöst werden. Diese Eigenschaft zeigt, dass–bzgl. polynomialer Lösbarkeit–kein Problem in N P
schwieriger ist als ein N P-vollständiges.
Existieren N P-vollständige Probleme? Ja.
Beispiele:
• 3-SAT: “(x1 ∨ x̄2 ∨ x3 ) ∧ (. . .) ∧ . . . = TRUE?”
m 3er-Klauseln über n bollschen Variablen
• “Hat Graph G einen Hamilton-Kreis?”
• “Hat gewichteter Graph G einen Hamilton-Kreis mit Länge ≤ B?”
• “Ist n ∈ N prim?”
∈ P?
∈ N P∩ coN P?
N P-vollständig?
Diese Fragen wurden 2003 von drei Indern geklärt. “Ist n ∈ N prim?” ist in P.
1.9. Komplexität von Optimierungsproblemen
1.9
8
Komplexität von Optimierungsproblemen
Definition 1.9.1 Ein Problem P heißt N P-schwer, falls alle Π ∈ N P polynomiall reduzierbar
(= transformierbar) auf bzw. in P sind.
Beispiel. Das Problem, in einem gewichteten Graphen einen kürzesten Hamilton-Kreis zu finden
(= Traveling Salesman Problem (= TSP)) is N P-schwer.
Beispiel. max{c| x : Ax = b, x ≥ 0, x ∈ Zn } ist N P-schwer.
Kapitel 2
Ganzzahlige Optimierung
In diesem Kapitel werden wir uns mit dem Problem
max{c| x : Ax = b, x ≥ 0, x ∈ Zn } bzw.
max{c| x : Ax ≤ b, x ∈ Zn }
beschäftigen. Zuerst machen wir uns mit der diskreten Natur der Menge {x : Ax = b, x ∈ Zn }
vertraut.
Lineare diophantische Gleichungssysteme Ax = b, x ∈ Zn
2.1
Unser Ziel wird es sein, eine Darstellung
(
n
{x : Ax = b, x ∈ Z } =
v0 +
k
X
)
λi vi : λ1 , . . . , λk ∈ Z
i=1
zu finden. Man vergleiche dies mit der allgemeinen Lösungsdarstellung für Ax = b, x ∈ Rn .
2.1.1
Gitter und Gitterbasen
Definition 2.1.1 Sei L ⊆ Rn .
(a) L heißt Gitter des Rn , wenn es eine Basis {v1 , . . . , vn } des Rn gibt, mit
( n
)
X
L=
λi vi : λ1 , . . . , λn ∈ Z .
i=1
{v1 , . . . , vn } heißt dann Basis des Gitters.
(b) Zn heißt Standardgitter des Rn .
9
2.1. Lineare diophantische Gleichungssysteme Ax = b, x ∈ Zn
10
(c) Seien L ein Gitter und S ⊆ L. S heißt Teilgitter oder Untergitter, wenn S = {0} ist,
oder wenn es ein k ∈ N und linear unabhängige Vektoren s1 , . . . , sk ∈ L gibt mit
( k
)
X
S=
λi si : λ1 , . . . , λk ∈ Z .
i=1
In diesem Fall heißen S durch s1 , . . . , sk (ganzzahlig) erzeugt und s1 , . . . , sk Basis des
Untergitters S.
erzeugte Gitter ist n
das Standardgitter
Z2 . Das durch 21 , 12
o
√ 2
√1
erzeugte Gitter enthält wie alle
erzeugte Gitter ist ein Teilgitter von Z2 . Das durch
2
1 ,
Beispiel. Das durch
1
0
,
0
1
Gitter den Nullpunkt 0, sonst aber keinen einzigen weiteren ganzzahligen Punkt des R2 .
Beispiel. Seien v1 =
(β1 , β2 ) ∈ Z2 :
3
1
und v2 =
(β1 − 2β2 )
2
1
. Offenbar sind v1 , v2 linear unabhängig und es gilt für
3
2
β1
+ (−β1 + 3β2 )
=
.
1
1
β2
Somit lässt sich jeder Gitterpunkt (β1 , β2 ) ∈ Z2 als ganzzahlige Linearkombination von v1 , v2
darstellen. Also bilden v1 , v2 eine Basis von Z2 .
2.1.2
Lineare diophantische Gleichungen
Sei A ∈ Zd×n und b ∈ Zd . Dann heißt Ax = b, x ∈ Zn lineares diophantisches Gleichungssystem. Für b = 0 heißt das Gleichungssystem homogen, andernfalls inhomogen.
Lemma 2.1.2 Seien a1 , . . . , an , β ∈ Z und g = ggT(a1 , . . . , an ). Die lineare diophantische Gleichung
a1 x1 + . . . + an xn = β
ist genau dann über Z lösbar, wenn g ein Teiler von β ist.
Beweis. Da g ein Teiler von a1 x1 + . . . + an xn ist, muss g auch β teilen, damit eine Lösung
existiert. Sei nun g ein Teiler von β. Da g = ggT(a1 , . . . , an ), existiert eine Linearkombination
g = y1 a1 + . . . + yn an mit y1 , . . . , yn ∈ Z. Setzen wir jetzt xi = βg yi ∈ Z, i = 1, . . . , n, so erhalten
wir
β
a1 x1 + . . . + an xn = (y1 a1 + . . . + yn an ) = β.
g
Damit haben wir also eine Lösung für unsere lineare diophantische Gleichung gefunden.
Bemerkung. Sei n ≥ 3 und a1 , . . . , an ∈ Z. Dann gilt
ggT(a1 , . . . , an ) = ggT(ggT(a1 , a2 ), a3 , . . . , an ).
Lemma 2.1.3 In polynomieller Zeit kann entschieden werden, ob eine lineare diophantische Gleichung lösbar ist.
Kapitel 2. Ganzzahlige Optimierung
11
Beweis. O.B.d.A. können wir annehmen, dass a1 , . . . , an ∈ Z>0 . (Warum?) Wir wenden den
Euklidschen Algorithmus zunnächst auf a1 , a2 an und erhalten g2 = ggT(a1 , a2 ) in polynomieller
Zeit (in ha1 , a2 i). (Übungsaufgabe!) Nach obiger Bemerkung gilt
ggT(a1 , . . . , an ) = ggT(g2 , a3 , . . . , an )
und wir wenden den Euklidschen Algorithmus nun auf g2 und a3 an. Analog ist nun nach k Schritten
gk+1 = ggT(a1 , . . . , ak+1 ) ≤ max{a1 , . . . , ak+1 }
bestimmt. Da die binäre Größe der auftretenden Komponenten nicht zunimmt, bleibt die Laufzeit
polynomiell (in ha1 , . . . , an i). Nach n − 1 Schritten ist somit g = ggT(a1 , . . . , an ) berechnet. Ein
einfacher Teilbarkeitstest von β durch g entscheidet nun nach Lemma 2.1.2, ob die lineare diophantische Gleichung lösbar ist oder nicht.
2.1.3
Unimodulare Matrizen und Transformationen
Definition 2.1.4 Sei C ∈ Zn×n mit | det(C)| = 1. Dann heißt C unimodular. Die mittels C
durch ψ(x) = Cx gegebene Abbildung ψ : Rn → Rn heißt unimodulare Transformation des Rn .
Lemma 2.1.5 Sei C ∈ Zn×n regulär. Dann sind die folgenden Aussagen äquivalent:
(a) C ist unimodular.
(b) Für jedes b ∈ Zn gilt C −1 b ∈ Zn .
(c) Für jedes b ∈ Zn ist das lineare diophantische Gleichungssystem Cx = b lösbar.
(d) C −1 ∈ Zn×n
Beweis.
(a)→(b): Als Folgerung aus dem Entwicklungssatz von Laplace (s. Lineare Algebra) gilt
C −1 =
1
adj(C).
det(C)
Somit gilt wegen | det(C)| = 1:
C −1 b =
1
adj(C)b ∈ Zn .
det(C)
(b)→(c): (c) ist nur eine Unformulierung von (b).
(c)→(d): Für i = 1, . . . , n ist C −1 ei der i-te Spaltenvektor von C −1 , und nach Voraussetzung
gilt C −1 ei ∈ Zn . Also ist C −1 ganzzahlig.
2.1. Lineare diophantische Gleichungssysteme Ax = b, x ∈ Zn
12
(d)→(a): Mit det(C), det(C −1 ) ∈ Z folgt det(C −1 ) =
1
det(C)
∈ {−1, 1}.
Bemerkungen.
• Sei C ∈ Rn×n und die Abbildung ψ : Zn → Rn sei definiert durch
Zn 3
x 7→ ψ(x) := Cx.
ψ ist genau dann ein Gruppenautomorphismus von (Zn , +), wenn C unimodular ist.
• Bzgl. der Matrixmultiplikation bilden die unimodularen Matrizen des Rn eine Gruppe.
2.1.4
Hermite Normalform
Definition 2.1.6 Sei A ∈ Zd×n mit rang(A) = d. A heißt in Hermite Normalform, wenn für
i = 1, . . . , d, j = 1, . . . , n, die folgenden Bedingungen erfüllt sind:
(a) aij ≥ 0,
(b) aij = 0 falls j > i,
(c) aij < aii für j < i.
Beispiel.

2

A= 0
1
0
4
2
0
0
9
0
0
0

0

0 
0
Falls A ∈ Zd×n nicht in Hermite Normalform ist, kann man versuchen, A durch gewisse Spaltenoperationen in Hermite Normalform zu bringen. Die folgenden Operationen heißen elementare
(unimodulare) Spaltenoperationen:
(a) Vertauschung von zwei Spalten von A,
(b) Multiplikation einer Spalte von A mit −1,
(c) Addition eines ganzzahligen Vielfachen einer Spalte von A zu einer anderen.
Bemerkung.
• Jede ganzzahlige Matrix A kann durch unimodulare Spaltenoperationen in Hermite Normalform HNF(A) überführt werden. HNF(A) wird auch Hermite Normalform von A
genannt.
• Die Hermite Normalform HNF(A) von A ist eindeutig bestimmt.
Kapitel 2. Ganzzahlige Optimierung
13
• HNF(A) kann in polynomieller Zeit (in hAi) berechnet werden.
• Ebenso kann eine (unimodulare) Transformationsmatrix U mit HNF(A) = AU in polynomieller Zeit (in hAi) berechnet werden. Dazu beachte man, dass sich jede unimodulare
Spaltenoperation auf A als Multiplikation von A mit einer unimodularen Matrix U schreiben
lässt. Damit ist HNF(A) = AU1 U2 . . . Uk =: AU für eine geeignete unimodulare Matrix U .
1 1 ) durch elementare Spaltenoperationen in Hermite
Beispiel. Wir bringen die Matrix A = ( 11 15 10
25
Normalform HNF(A) = (D|0).
1 1 ) → (1 0 0 0 ) → (1 0 0 0) →
( 11 15 10
25
1 4 9 24
1410
( 11 01 04 00 ) →
( 10 01 00 00 )
Demnach ist
HNF(A) =
1
0
0
1
0
0
0
0
!
.
Bemerkung. Man beachte, dass HNF(A) = AU1 . . . Us mit unimodularen n × n Matrizen Ui ,
die die einzelnen Spaltenoperationen kodieren, die wir auf A angewendet haben. Wir erhalten die
Matrix U := In U1 . . . Us , indem wir die gleichen Spaltenoperationen auf die Einheitsmatrix In
anwenden.
Beispiel fortgesetzt. Berechnen wir nun die Transformationsmatrix U mit HNF(A) = AU für
obiges Beispiel. Wenn wir die gleichen Spaltenoperationen auf I4 (und nicht auf A) anwenden,
erhalten wir


0
1 −5
5
 2 −2
9 −6 


U =
.
 −1
1 −4
0 
0
0
0
1
Die Hermite Normalform von A ermöglicht es uns nun, die allgemeine Lösung von Ax = b zu
finden. Zuerst finden wir eine Basis des homogenen Gleichungssystems Ax = 0.
2.1.5
Ganzzahlige Lösung von Az = 0
Im folgenden sei A ∈ Zd×n mit rang(A) = d.
Lemma 2.1.7 Seien HNF(A) = AU und u1 , . . . , un die Spalten von U . Dann bilden die letzten
n − d Spalten von U , ud+1 , . . . , un , eine Basis des Gitters kerZn (A) = {z ∈ Zn : Az = 0}.
Beweis. Aus AU = HNF(A) = (D|0) schlussfolgern wir bereits, dass Aui = 0 für i = d + 1, . . . , n,
und damit ud+1 , . . . , un ∈ kerZn (A).
2.1. Lineare diophantische Gleichungssysteme Ax = b, x ∈ Zn
14
Sei nun z ∈ kerZn (A). Wir betrachten die Gleichung
0 = Az = (AU )(U −1 z) = HNF(A)y = (D|0)y
mit y = U −1 z. Nach Konstruktion von U ist | det(U )| = 1, und nach Lemma 2.1.5 ist damit U −1
ganzzahlig. Demnach ist y ∈ kerZn (HNF(A)). Wegen der speziellen Struktur von HNF(A) (die
Spalten von D sind linear unabhängig), ist das Gitter kerZn (HNF(A)) erzeugt durch die Basis
ed+1 , . . . , en . Demnach ist z = U y eine ganzzahlige Linearkombination der Spalten ud+1 , . . . , un
von U .
Beispiel fortgesetzt. Extrahieren wir nun aus U eine Gitterbasis von kerZ4 (A). Die letzten zwei
Spalten von HNF(A) sind Nullspalten. Also bilden die letzten zwei Spalten von U ,
{(−5, 9, −4, 0)| , (5, −6, 0, 1)| },
eine Gitterbasis von kerZ4 (A).
2.1.6
Ganzzahlige Lösung von Az = b
Bestimmen wir nun eine ganzzahlige Lösung von Az = b. Aus
b = Az = (AU )(U −1 z) = HNF(A)y = (D|0)y, y = U −1 z,
bestimmen wir zuerst eine Lösung y0 von HNF(A)y = b. Solch eine Lösung y0 kann man schnell
finden, da D eine triangulare Matrix ist. Desweiteren, da D triangular (und insbesondere invertierbar) ist, unterscheiden sich je zwei Lösungenvon HNF(A)y = b nur in ihren letzten n − d
Komponenten durch eine ganzzahlige Linearkombination von ed+1 , . . . , en . Demnach existiert eine
ganzzahlige Lösung z von Az = b genau dann wenn eine ganzzahlige Lösung y0 = U −1 z0 von
HNF(A)y = b existiert. (Beachte, das U −1 eine ganzzahlige Matrix ist!) Sobald wir eine ganzzahlige Lösung y0 mit HNF(A)y0 = b gefunden haben, können wir sofort eine ganzzahlige Lösung
z0 = U y0 von Az = b finden.
!
10
Beispiel fortgesetzt. Um eine ganzzahlige Lösung von Az =
zu finden, lösen wir
110
!
10
zuerst HNF(A)y =
, was uns zum Beispiel y0 = (10, 110, 0, 0)| als ganzzahlige Lösung
110
!
10
gibt. Danach berechnen wir z0 = U y0 = (110, −200, 100, 0)| . Tatsächlich ist Az0 =
. 110
Die allgemeine Lösung von Ax = b ergibt sich nun aus der Summe einer speziellen Lösung von
Ax = b und einer ganzzahligen Linearkombination einer Gitterbasis von kerZn (A).
Kapitel 2. Ganzzahlige Optimierung
15
Beispiel fortgesetzt. Die allgemeine Lösung von Az =
10
110





z=

110
−200
100
0






 + α1 


−5
9
−4
0




 + α2 


!
ist
5
−6
0
1



,

mit α1 , α2 ∈ Z.
Zusammenfassend erhalten wir folgende wichtige Aussage.
Satz 2.1.8 Das lineare diophantische System Ax = b, x ∈ Zn kann in polynomieller Zeit gelöst
werden. Insbesondere kann zu jedem zulässigen System in polynomieller Zeit ein k ∈ N, eine
spezielle Lösung v0 und linear unabhängige Vektoren v1 , . . . , vk bestimmen, so dass
(
)
k
X
n
{x : Ax = b, x ∈ Z } = v0 +
λi vi : λ1 , . . . , λk ∈ Z .
i=1
2.1.7
Ganzzahliges Farkas-Lemma
Abschließend beweisen wir noch einen Satz, der ähnlich wie das Farkas-Lemma für lineare Gleichungsund Ungleichungssysteme die (Un-)Lösbarkeit von Ax = b, x ∈ Zn durch ein Zertifikat beschreibt.
Satz 2.1.9 (Ganzzahliges Farkas-Lemma)
Sei A ∈ Zd×n , b ∈ Zd und F = {x : Ax = b, x ∈ Zn }. Es gilt F = ∅ genau dann, wenn ein y ∈ Qd
mit y| A ∈ Zn und y| b 6∈ Z existiert.
Beweis. Sei F 6= ∅. Falls ein y ∈ Qd existieren würde mit y| A ∈ Zn und y| b 6∈ Z, dann wäre
y| Ax = y| b mit y| Ax ∈ Z und y| b 6∈ Z.
Andererseits, falls F = ∅, dann ist u = D−1 b 6∈ Zd (für HNF(A) = (D|0)). Das heißt, es existiert
ein i, so dass ui 6∈ Z. Wählt man nun y := (D−1 )i. (i-te Zeile von D−1 ), dann ist y| A ∈ Zn , aber
y| b = ui 6∈ Z.
Um y| A ∈ Zn einzusehen, beachte man, dass y| A ∈ Zn genau dann gilt, wenn y| AU ∈ Zn mit
HNF(A) = (D|0) = AU . (U ist unimodular!) Es ist aber y| AU = (D−1 )|i. (D|0) = ei ∈ Zn .
2.2
Ganzzahlige Hülle und ganzzahlige Polyeder
Durch I := (d, n, A, b, c) sei die ILP-Aufgabe max{c| x : Ax ≤ b, x ∈ Zn } spezifiziert.
Die LP-Aufgabe max{c| x : Ax ≤ b, x ∈ Rn } heißt LP-Relaxation von I.
Das Polyeder P = {x ∈ Rn : Ax ≤ b} wird das zu I zugehörige Polyeder genannt.
2.2. Ganzzahlige Hülle und ganzzahlige Polyeder
16
Bemerkung. Seien P ein Polyeder des Rn und c ∈ Rn . Dann gilt
sup c| x =
x∈P ∩Zn
c| x.
sup
x∈conv(P ∩Zn )
Dies folgt direkt aus der Definition der konvexen Hülle.
Definition 2.2.1 Sei P ein Polyeder des Rn . Dann heißt PI := conv(P ∩ Zn ) die ganzzahlige
Hülle von P .
Beispiel. Sei P das durch die Ungleichungen
x1
7x1
−
x2
+ 3x2
x2
≤
≥
≤
3
2
21
2
7
2
gegebene Polytop. Es gilt
1
1
2
2
2
3
3
4
,
,
,
,
,
,
.
P ∩Z =
,
2
3
1
2
3
2
3
3
2
Links im Bild sind P und PI zu sehen. Es sind jeweils die Maximalpunkte bzgl. der Zielfunktion
c| x = x1 + x2 zu sehen. Rechts im Bild sieht man ein anderes Polyeder Q mit QI = PI , das man
durch geeignetes Auf- bzw. Abrunden der rechten Seite im Ungleichungssystem von P erhält. Es
gilt also PI = QI ( Q ( P . Desweiteren stimmen die Optima von Q und QI überein, obwohl
Q 6= QI gilt.
PI besitzt die (irredundante) H-Darstellung
x1
x1
x1
− x2
+ x2
x2
≤ 1
≥ 3
≥ 1
≤ 3,
ist also ein Polytop. Man beachte, dass der Optimalpunkt
4
3
bzgl. PI bereits optimal bzgl. Q ist.
Kapitel 2. Ganzzahlige Optimierung
17
Beispiel. Gegeben seien die beiden ILP-Aufgaben
max
3x2
4x2
x1 , x2
x1
≤
≥
∈
4
1
Z
√
− 2x1
√
2x1
x1 ,
max
+
−
x1
x2
x2
x2
≤ 0
≤ 0
∈ Z
Die zugehörigen Polyeder seien P bzw. Q.
P ist ein horizontaler Streifen. Die Zielfunktion ist über P unbeschränkt. Da P ∩ Z2 = ∅ gilt, ist
das ILP nicht zulässig.
√
Q ist eine Gerade mit irrationaler Steigung 2. Ihr einziger Gitterpunkt ist 0. Die ILP-Aufgabe
hat das Optimum 0, während die zugehörige LP-Relaxation beliebig große Funktionswerte enthält.
Bemerkungen.
• Sei P ein Polytop im Rn . Dann ist auch PI ein Polytop.
• Sei P ein Polyeder im Rn . Dann ist PI nicht notwendigerweise wieder ein Polyeder. → Übungsaufgabe
• Falls P ein rationales Polyeder ist, so ist PI wieder ein Polyeder.
Wiederholung.
• P = {x ∈ Rn : Ax ≤ b} heißt H-Darstellung und P = conv(V ) + cone(E) + span(S) heißt
V-Darstellung von P .
• Der Kegel cone(E) + span(S) ist der Rezessionskegel, rec(P ), von P .
• Mit ls(P ) meinen wir span(S), wenn eine V-Darstellung von P nicht explizit angegeben ist.
• Oft wird cone(E) + span(S) einfach nur als cone(E, S, −S) = cone(E 0 ) geschrieben, wenn
nur die Kegeleigenschaft von cone(E) + span(S) benötigt wird.
Definition 2.2.2 Eine H-Darstellung bzw. eine V-Darstellung von eines Polyeders P heißt rational bzw. ganzzahlig, falls alle Komponenten von A und b bzw. alle Vektoren aus V , E und S
rational bzw. ganzzahlig sind.
Bemerkung. Sei P ein Polyeder mit rationaler H-Darstellung. Gilt PI 6= ∅, so folgt rec(P ) =
rec(PI ) und ls(P ) = ls(PI ).
Satz 2.2.3 Sei P ⊆ Rn . P besitzt genau dann eine rationale H-Darstellung, wenn P eine rationale
V-Darstellung besitzt.
2.2. Ganzzahlige Hülle und ganzzahlige Polyeder
18
Definition 2.2.4 Ein Polyeder P heißt rational, falls P eine rationale H-Darstellung (bzw. VDarstellung) besitzt. Ein Polyeder P heißt ganzzahlig, falls P eine ganzzahlige V-Darstellung
besitzt.
Lemma 2.2.5 Sei P = conv(V ) + cone(E) + span(S) eine irredundante V-Darstellung von P . Ist
P 6= ∅, so sind die eigentlichen Seiten von P kleinster Dimension genau die Polyeder v + span(S)
für v ∈ V .
Satz 2.2.6 Sei P ein rationales Polyeder. P ist genau dann ganzzahlig, wenn P = PI gilt.
Beweis.
=⇒ Seien V, E endliche Teilmengen von Zn mit P = conv(V ) + cone(E). Dann gilt
P = conv(V ) + conv([0, ∞)E) = conv(V + [0, ∞)E) = conv(V + Z+ E) = PI .
⇐= Sei P = conv(V ) + cone(E) + span(S) eine irredundante rationale V-Darstellung von P .
O.B.d.A. seien P 6= ∅ und E, S ⊆ Zn . Sei v ∈ V . Nach Lemma 2.2.5 ist v + span(S)
eine Seite von P . Da nach Voraussetzung P = PI ist, gibt es einen ganzzahligen Punkt
v0 ∈ v + span(S). Natürlich gilt v + span(S) = v0 + span(S). Insgesamt erhält man eine
Menge V 0 ⊆ Zn mit P = conv(V 0 ) + cone(E) + span(S), d.h., eine ganzzahlige V-Darstellung
von P .
Damit reicht es für spitze Polyeder P zu klären, wann alle Ecken von P ganzzahlig sind. Eine
Antwort darauf ist of schwierig zu erzielen und wir werden später einige hinreichende Bedingungen
für die Ganzzahligkeit von Polyedern kennenlernen.
Satz 2.2.7 Sei P ⊆ Rn ein rationales Polyeder. Dann sind folgende Aussagen äquivalent.
(a) P ist ein ganzzahliges Polyeder.
(b) Jede eigentliche Seite von P minimaler Dimension ist ein ganzzahliges Polyeder.
(c) Jede Stützhyperebene an P enthält einen Gitterpunkt.
(d) Für jeden Vektor c ∈ Rn , für den max{c| x : x ∈ P } existiert, gibt es einen Maximalpunkt
x∗ ∈ Zn .
(e) Für jeden Vektor c ∈ Rn , für den max{c| x : x ∈ P } existiert, ist der Maximalwert in Z.
Beweis. Die Aussagen (a) ⇒ (b) ⇒ (c) ⇒ (e) und (b) ⇒ (d) ⇒ (c) sind klar, und es reicht
(b) ⇒ (a) und (e) ⇒ (b) zu beweisen. Letztere Implikation ist der eigentliche Kern der Aussage.
(b) ⇒ (a). Sei P = conv(V ) + cone(E) + span(S) eine irredundante V-Darstellung von P mit
E, S ∈ Zn . Nach Lemma 2.2.5 sind v + span(S) genau die Seiten von P kleinster Dimension. Sei
Kapitel 2. Ganzzahlige Optimierung
19
wv ∈ {v + span(S)} ∩ Zn . Dann gilt v + span(S) = wv + span(S) und wir erhalten als ganzzahlige
V-Darstellung P = conv({wv : v ∈ V ) + cone(E) + span(S).
(e) ⇒ (b). Sei P = {x ∈ Rn : Ax ≤ b} eine ganzzahlige H-Darstellung von P , F eine eigentliche
Seite von P kleinster Dimension und I die Menge der Indizes der in F aktiven Nebenbedingungen.
Dann gilt
F = aff(F ) = {x ∈ Rn : AI x = bI }.
Angenommen, F enthält keinen ganzzahligen Punkt. Dann existiert nach dem Ganzzahligen FarkasLemma, Lemma 2.1.9, ein y ∈ R|I| mit
A|I y ∈ Zn und b|I y 6∈ Z.
Da AI und bI ganzzahlig sind, besitzt auch jeder Vektor y + α1 mit α ∈ Z diese Eigenschaft, so
dass wir o.B.d.A. annehmen können, dass y > 0 gilt. Seien nun
c| := y| AI und γ := y| bI .
Dann gilt
c ∈ relint(NP (F )) ∩ Zn und F = P ∩ {x ∈ Rn : c| x = γ}.
Dabei ist NP (F ) der Normalenkegel von F an P (= Normalen der Stützhyperebenen von F ). Das
Optimum von max{c| x : x ∈ P } wird damit genau in allen Punkten von F angenommen. Damit
ist also
max{c| x : x ∈ P } = max{c| x : x ∈ F } = γ ∈ Z,
im Widerspruch zu γ 6∈ Z. Also gilt F ∩ Zn 6= ∅, und insgesamt folgt die Behauptung (da jetzt
F = w + span(S) für ein w ∈ F ∩ Zn gilt).
Bemerkung. Das Problem, für ein gegebenes Polyeder P in H-Darstellung zu entscheiden, ob
P = PI gilt, ist N P-vollständig.
Bezeichnung. Für A ∈ Rd×n und b ∈ Rd sei P (A, b) := {x ∈ Rn : Ax ≤ b}.
Satz 2.2.8 Seien A ∈ Zd×n und k = rang(A). Dann sind die folgenden Aussagen äquivalent.
(a) Für jede Teilmenge I ⊆ {1, . . . , d} mit rang(AI ) = k und jedes bI ∈ Zk besitzt AI x = bI
eine ganzzahlige Lösung.
(b) Für jedes b ∈ Zd ist P (A, b) ganzzahlig.
Beweis.
(a) ⇒ (b). Seien b ∈ Zd und c ∈ Zn \ {0}, so dass max{c| x : x ∈ P (A, b)} existiert. Dann ist
F = argmax{c| x : x ∈ P (A, b)}
eine Seite von P (A, b). Sei I die Menge der Indizes aller für F aktiven Nebenbedingungen. Dann
gilt
aff(F ) = {x ∈ Rn : AI x = bI }.
2.2. Ganzzahlige Hülle und ganzzahlige Polyeder
20
Nach Voraussetzung enthält aff(F ) ganzzahlige Punkte. Nach Satz 2.2.7 ist P (A, b) somit ganzzahlig.
(b) ⇒ (a). Seien I ⊆ {1, . . . , d} mit |I| = k und rang(AI ) = k sowie bI ∈ Zk . Wir nehmen o.B.d.A.
an, dass I = {1, . . . , k} ist und setzen J := {1, . . . , d} \ I. Das Gleichungssystem AI x = bI ist über
R (oder Q) lösbar. Seien
bI
x∗ ∈ Rn , AI x∗ = bI , w := bAJ x∗ c, b :=
.
w+1
(Dabei ist bAJ x∗ c natürlich wieder komponentenweise gemeint.) Dann ist b ganzzahlig und es gilt
AI x∗ = bI und AJ x∗ < w + 1.
D.h., x∗ ∈ P (A, b) und für die Seite F (x∗ ) von x∗ in P (A, b) gilt F (x∗ ) = x∗ + ls(P (A, b)).
Somit ist x∗ + ls(P (A, b)) eine eigentliche Seite minimaler Dimension von P (A, b) und da P (A, b)
ganzzahlig ist, enthält sie einen Punkt v ∈ Zn . Es folgt AI v = bI und damit die Behauptung. Definition 2.2.9 Sei A ∈ Zd×n mit rang(A) = n. Die Matrix A heißt unimodular, wenn für
jede Teilmenge B ⊆ {1, . . . , d} mit |B| = n gilt det(AB ) ∈ {−1, 0, 1}.
1 0 Beispiel. Die Matrix 1 −1 ist unimodular, denn die drei 2 × 2 Teilmatrizen haben Determi−2 1
nanten −1, 1, bzw. −1.
Folgerung 2.2.10 Sei A ∈ Zd×n mit rang(A) = n. Dann sind die folgenden beiden Aussagen
äquivalent.
(a) A ist unimodular.
(b) Für jedes b ∈ Zd ist jede Ecke von P (A, b) ganzzahlig.
Beweis. Die Aussage folgt direkt aus Satz 2.2.8.
Definition 2.2.11 Eine Matrix A ∈ Zd×n heißt total unimodular, wenn für jede quadratische
Teilmatrix C von A gilt: det(C) ∈ {−1, 0, 1}.
Lemma 2.2.12 Sei A ∈ Zd×n total unimodular. Dann gilt A ∈ {−1, 0, 1}d×n . Ferner ist jede
Matrix A0 , die aus A durch Streichen von (bis zu d − 1) Zeilen und (bis zu n − 1) Spalten entsteht,
total unimodular.
Beweis. Die erste Aussage folgt direkt aus der Definition angewandt auf die 1 × 1-Teilmatrizen
von A. Die zweite Aussage folgt aus der Tatsache, dass jede Teilmatrix von A0 auch Teilmatrix von
A ist.
1 0 1 −1
Beispiel. Die Matrix
ist zwar unimodular aber nicht total unimodular, da nicht alle
−2 1
Einträge aus {−1, 0, 1} sind.
Kapitel 2. Ganzzahlige Optimierung
Satz 2.2.13 Die Matrix A ∈ Zd×n ist genau dann total unimodular, wenn
(In ist hierbei die n × n-Einheitsmatrix.)
21
A
In
unimodular ist.
Beweis.
=⇒ Sei C eine reguläre n × n-Teilmatrix von IAn . Durch Entwicklung der Determinante nach
den zur Einheitsmatrix gehörenden Zeilen folgt | det(C)| = 1.
⇐= Sei A0 eine reguläre quadratische Teilmatrix von A. Dann lässt sich A0 durch Hinzufügen von
Zeilen aus In und Spalten aus IAn zu einer regulären n × n-Teilmatrix C von IAn erweitern.
Nach Voraussetzung ist | det(C)| = 1. Wenn man nun die Determinante von C nach den
Teilen in In entwickelt, sieht man, dass auch | det(A0 )| = 1 gelten muss.
Folgerung 2.2.14 Die Matrix A ∈ Zd×n ist genau dann total unimodular, wenn für jeden Vektor
b ∈ Zd alle Ecken von
A
b
P
,
= {x ∈ Rn : Ax ≤ b, x ≥ 0}
−In
0
ganzzahlig sind.
Beweis.
=⇒ Nach Satz 2.2.13 und Folgerung 2.2.10 ist A genau dann total unimodular, wenn für alle
b ∈ Zd und c ∈ Zn alle Ecken von
A
b
P
,
= {x ∈ Rn : Ax ≤ b, x ≥ c}
−In
−c
ganzzahlig sind.
⇐= Wir zeigen noch, dass aus der Ganzzahligkeit der Ecken von
A
b
P
,
= {x ∈ Rn : Ax ≤ b, x ≥ 0}
−In
0
für alle b ∈ Zd die Ganzzahligkeit der Ecken von
A
b
P
,
= {x ∈ Rn : Ax ≤ b, x ≥ c}
−In
−c
für alle b ∈ Zd und c ∈ Zn folgt. Es gilt natürlich
A
b
A
b − Ac
x≤
⇐⇒
(x − c) ≤
.
−In
−c
−In
0
Da die Ganzzahligkeit der Ecken eines Polyeders invariant unter Translation um einen ganzzahligen Vektor ist, folgt die Behauptung.
2.2. Ganzzahlige Hülle und ganzzahlige Polyeder
22
Lemma 2.2.15 Sei A ∈ Zd×n und sei A0 eine der folgenden Matrizen:
A
A
A| , −A, (A|Im ),
,
.
In
−A
Dann ist A genau dann total unimodular, wenn A0 total unimodular ist.
Beweis.
=⇒ Diese Richtung ergibt sich direkt aus der Definition von A0 und aus der Definition einer total
unimodularen Matrix.
⇐= Der nichttriviale Teil der Behauptung folgt mit Hilfe von Lemma 2.2.12.
|
Satz 2.2.16 Sei A = (a1 |a2 | . . . |am ) ∈ {−1, 0, 1}d×n . Die Matrix A ist genau dann total unimodular, wenn es für jede nichtleere Indexmenge I ⊆ {1, . . . , m} eine Partition (I1 , I2 ) von I gibt
mit
X
X
ai −
ai ∈ {−1, 0, 1}n .
i∈I1
i∈I2
Beweis.
=⇒ Sei I ⊆ {1, . . . , d}, I 6= ∅ gegeben. Da wir zeigen wollen, dass für die gesuchte Partition
P
P
(I1 , I2 ) von I die beiden Summen i∈I1 ai und i∈I2 ai fast übereinstimmen, setzen wir
1 |
1 |
|
|I|
A 1 ≤ AI y ≤
A 1 ,0 ≤ y ≤ 1 .
Q := y ∈ R :
2 I
2 I
Nach Lemma 2.2.12 und Lemma 2.2.15 ist mit A auch die Matrix


A|I
 −A| 

I 


 In 
−In
total unimodular und nach Folgerung 2.2.14 ist Q ganzzahlig. Da der Vektor 12 1 in Q enthalten
ist, gilt Q 6= ∅. Damit ist Q konvexe Hülle seiner Ecken. Sei v = (v1 , . . . , v|I| )| eine Ecke von
Q. Dann gilt v ∈ {0, 1}|I| und wir setzen I1 := {i ∈ I : vi = 0} und I2 = I \ I1 . Dann gilt
nach Voraussetzung
X
1 |
1 |
|
A 1 ≤
ai = AI v ≤
A 1 .
2 I
2 I
i∈I2
Wegen
X
ai −
i∈I1
X
i∈I2
ai =
X
i∈I
ai − 2
X
ai = A|I 1 − 2A|I v
i∈I2
folgt somit
X
X
1 |
1 |
|
− 2 AI 1 ≤
ai −
ai ≤ AI 1 − 2 AI 1
2
2
i∈I1
i∈I2
P
P
und daher i∈I1 ai − i∈I2 ai ∈ {−1, 0, 1}n .
A|I 1
Kapitel 2. Ganzzahlige Optimierung
23
⇐= Wir zeigen die Determinantenbedingung für jede k × k-Teilmatrix mittels vollständiger Induktion nach k. Durch Anwendung der Partitionsbedingung auf alle Indexmengen I der
Kardinalität 1 folgt A ∈ {−1, 0, 1}d×n . Also gilt die Aussage für alle 1 × 1-Teilmatrizen. Seien nun k ≥ 2 und C eine beliebige k × k-Teilmatrix von A. Ist C singulär, so ist det(C) = 0.
Sei daher im folgenden C regulär. O.B.d.A. setzen wir voraus, dass C = (aij )i,j∈[k] gilt.
Wir zeigen nun, dass C −1 ganzzahlig ist. Sei l ∈ [k] beliebig und c| = (c1 , . . . , ck ) die l-te
Zeile von C −1 . Es gilt
1
c| = e|l C −1 =
e| adj(C).
det(C) l
und da nach Induktionsvoraussetzung alle Komponenten von adj(C) aus {−1, 0, 1} sind, folgt
det(C) · c ∈ {−1, 0, 1}k .
Seien nun I := {i ∈ [k] : ci 6= 0} und (I1 , I2 ) eine Partition von I mit
X
X
ai −
ai ∈ {−1, 0, 1}n .
i∈I1
i∈I2
Nun gilt für j ∈ [k] \ {l} natürlich
(det(C)) · c| Cej = 0.
Da alle Einträge von det(C) · c und C aus {−1, 0, 1} sind und c| C = el gilt, folgt
|{i ∈ I : aij 6= 0}| ≡ 0
(mod 2).
Somit gilt für jedes j ∈ [k] \ {l}
X
aij −
i∈I1
X
aij = 0.
i∈I2
Da C regulär ist, gilt insbesondere
X
X ail −
ail = 1.
i∈I1
i∈I2
Sei nun b = (b1 , . . . , bk )| definiert durch


 1
bi :=
−1


0
für i ∈ I1 ,
für i ∈ I2 ,
sonst,
für alle i ∈ [k]. Dann folgt b| C ∈ {−el , el }, also
b ∈ {−c, c}.
Somit ist c ∈ {−1, 0, 1}k , und da l ∈ [k] beliebig war, folgt insbesondere C −1 ∈ Zk×k , also
auch | det(C)| = 1.
2.2. Ganzzahlige Hülle und ganzzahlige Polyeder
24
Folgerung 2.2.17 Sei A ∈ {−1, 0, 1}d×n und jede Spalte von A enthalte höchstens zwei von 0
verschiedene Einträge. Die Matrix A ist genau dann total unimodular, wenn es eine Partition
(I1 , I2 ) von [d] gibt, so dass für alle i1 , i2 ∈ [d] mit i1 6= i2 und j ∈ [d] mit Ai1 ,j , Ai2 ,j 6= 0 gilt
sign(Ai1 ,j ) 6= sign(Ai2 ,j ) ⇐⇒ {i1 , i2 } ∈ I1 ∨ {i1 , i2 } ∈ I2 .
Beweis.
=⇒ Ist A total unimodular, so gibt es nach Satz 2.2.16 eine Partition (I1 , I2 ) von [d] mit
X
ai −
i∈I1
X
ai ∈ {−1, 0, 1}n .
i∈I2
Für jede Spalte mit genau zwei von 0 verschiedenen Einträgen können bei gleichem Vorzeichen die zu diesen gehörigen Zeilenindizes nicht in derselben Partitionsmenge und bei
verschiedenen Vorzeichen nicht in verschiedenen Partitionsmengen liegen. (I1 , I2 ) erfüllt also
die behauptete Bedingung.
⇐= Sind (I1 , I2 ) eine entsprechende Partition von [d] und I ⊆ [d] mit I 6= ∅, so gilt
X
i∈I1 ∩I
ai −
X
ai ∈ {−1, 0, 1}n .
i∈I2 ∩I
Nach Satz 2.2.16 ist A somit total unimodular.
Satz 2.2.18 Sei G = (V, A) ein Digraph. Dann ist seine (Knoten-Kanten-) Inzidenzmatrix SG
total unimodular.
Beweis. Jede Spalte von SG enthält genau zwei von 0 verschiedene Einträge. Da diese verschiedenes
Vorzeichen haben, setzen wir I1 := {1, 2, . . . , |V |} und I2 := ∅. Dann erfüllt (I1 , I2 ) das Kriterium
aus Folgerung 2.2.17 und SG ist somit total unimodular.
Bemerkung. Dass Problem, für gegebene Matrix A ∈ Zd×n zu entscheiden, ob A total unimodular
ist, kann in polynomieller Zeit gelöst werden.
Bemerkung. Seien G = (V, E, c) ein gewichteter Graph, V := {v1 , . . . , vn }, E := {e1 , . . . , em }
und c := (c(e1 ), . . . , c(em ))| . Dann ist jeder zulässige Punkt des ILPs
max{c| x : SG x ≤ 1, x ≥ 0, x ∈ Zm }
Inzidenzvektor eines Matchings in G und umgekehrt, und die Zielfunktionswerte stimmen überein.
Satz 2.2.19 Sei G = (V, E) ein ungerichteter Graph. Die Inzidenzmatrix SG von G ist genau
dann total unimodular, wenn G bipartit ist.
Kapitel 2. Ganzzahlige Optimierung
25
Beispiel. Gegeben sei der vollständige Graph K3 mit 3 Knoten. Gesucht ist ein kardinalitätsmaximales Matching. Da K3 nur genau 4 verschiedene Matchings enthält, nämlich
M0 := ∅,
M1 := {e1 },
M2 := {e2 },
M3 := {e3 },
ist die Aufgabe natürlich leicht zu lösen: M1 , M2 , M3 sind kardinalitätsmaximal.
Bei geeigneter Nummerierung der Knoten und Kanten ist

1

 0
1
1
1
0

0

1 
1
die Inzidenzmatrix von K3 . Ihre Determinante hat den Wert 2; die Matrix ist also nicht total
unimodular. Tatsächlich ist die (in diesem Fall eindeutig bestimmte) optimale Lösung x∗ der
zugehörigen LP-Aufgabe
max{x1 + x2 + x3 : x1 + x2 ≤ 1, x1 + x3 ≤ 1, x2 + x3 ≤ 1, x1 , x2 , x3 ≥ 0}
auch nicht ganzzahlig; es gilt


1/2


x∗ =  1/2  .
1/2
Das zugehörige Polyeder ist also nicht ganzzahlig.
Folgerung 2.2.20 Seien G ein bipartiter Graph und b ∈ Zn+ . Die Ecken des durch
max{c| x : SG x ≤ 1, x ≥ 0, x ∈ Zm }
gegebenen Polytops sind ganzzahlig.
2.3
Hilbertbasen rationaler polyedrischer Kegel, TDI-Systeme
und Chvátal-Gomory-Abschluss
In diesem Abschnitt erarbeiten wir Grundlagen für Schnittebenenverfahren zur Lösung linearer
ganzzahliger Optimierungsprobleme.
2.3. Hilbertbasen rationaler polyedrischer Kegel, TDI-Systeme und Chvátal-Gomory-Abschluss
2.3.1
26
Hilbertbasen rationaler polyedrischer Kegel
Definition 2.3.1 Sei C = {x ∈ Rn : Ax ≤ 0} ein polyedrischer Kegel. Eine endliche Menge
H ⊆ C ∩ Zn heißt Hilbertbasis von C, falls sich jeder Punkt z ∈ C ∩ Zn darstellen lässt als
(nichtnegative ganzzahlige) Linearkombination
X
z=
λi hi , λi ∈ Z+ , hi ∈ H,
von Elementen aus H.
Lemma 2.3.2 Jeder rationale polyedrische Kegel C besitzt eine Hilbertbasis. Ist C zusätzlich spitz,
so existiert eine eindeutige inklusionsminimale Hilbertbasis von C.
Beweis. Sei C = cone(v1 , . . . , vk ) mit v1 , . . . , vk ∈ Zn . Sei weiterhin
( k
)
X
F :=
λi vi : 0 ≤ λi < 1, i = 1, . . . , k .
i=1
Klar: F ∩ Zn ist beschränkt und enthält somit nur endlich viele Gitterpunkte. Sei jetzt z ∈ C ∩ Zn .
k
P
Dann gilt insbesondere z =
λi vi , λ1 , . . . , λk ≥ 0. Damit ist
i=1
z=
k
k
X
X
(bλi c − λi )vi ,
bλi cvi +
i=1
i=1
|
{z
∈F
}
also lässt sich ein beliebiges z ∈ C ∩ Zn darstellen als nichtnegative ganzzahlige Linearkombination
von Elementen aus H := {v1 , . . . , vk } ∪ F . H ist also eine Hilbertbasis von C.
Sei C nun zusätzlich spitz. Es existiert also ein c ∈ Rn , so dass C ⊆ {x ∈ Rn : c| x ≥ 0} und
C ∩ {x ∈ Rn : c| x = 0} = {0}. Sei weiterhin
R := {x ∈ C ∩ Zn \ {0} :6 ∃ y, z ∈ C ∩ Zn \ {0} mit x = y + z}
die Menge aller nicht-zerlegbaren Gitterpunkte in C. Da sich kein Punkt aus R auf nichttriviale
Weise als Summe zweier Gitterpunkte aus C darstellen lässt, muss R in jeder Hilbertbasis von C
enthalten sein. Insbesondere gilt also R ⊆ {v1 , . . . , vk } ∪ F . R ist also eine endliche Menge. Es
bleibt zu zeigen, dass R selbst schon Hilbertbasis von C ist.
Angenommen, nicht alle Gitterpunkte aus C ließen sich als nichtnegative ganzzahlige Linearkombination von Elementen aus R darstellen. Sei x ∈ C ∩ Zn ein solcher Punkt mit minimalem Wert
Kapitel 2. Ganzzahlige Optimierung
27
c| x > 0. Da x 6∈ R, lässt sich x schreiben als x = y + z mit y, z ∈ C ∩ Zn \ {0}. Es folgt
c| y, c| z < c| x. Damit sind y und z als nichtnegative ganzzahlige Linearkombinationen von Elementen aus R darstellbar und somit auch x = y + z. Widerspruch. Also ist R Hilbertbasis von C
und damit die eindeutige inklusionsminimale Hilbertbasis von C.
2.3.2
TDI-Systeme
Wir nutzen nun Hilbertbasen, um spezielle Darstellungen von Polyedern zu definieren, die sich
später als sehr nützlich herausstellen werden.
Definition 2.3.3 Sei A ∈ Zd×n , b ∈ Qd und P = {x ∈ Rn : Ax ≤ b}. Das System Ax ≤ b
heißt total dual integral oder kurz TDI, falls für jede Seite F = {x ∈ P : AI x = bI } von P die
Menge der Zeilenvektoren {Ai. : i ∈ I} eine Hilbertbasis des rationalen Kegels cone({Ai. : i ∈ I})
ist.
Bemerkung. Die Hauptidee hinter diesem Begriff ist der folgende. Sei c ein ganzzahliger Vektor,
der in dem Kegel liegt, der von den Zeilen von A erzeugt wird, so dass das Problem
min{b| y : y| A = c| , y ≥ 0}
beschränkt ist. Betrachte nun das Problem
max{c| x : x ∈ P = P (A, b)}.
Wenn c| x maximal auf einer Seite F = {x ∈ P : AI x = bI } von P ist, dann ist
c| ∈ C = cone(Ai. : i ∈ I).
Die Bedingung, dass H = {Ai. : i ∈ I} eine Hilbertbasis von C ist, ist äquivalent dazu, dass c|
P
geschrieben werden kann als c| = i∈I yi Ai. mit yi ∈ Z+ . Der Vektor y ist dann eine ganzzahlige
duale Lösung.
Satz 2.3.4 Seien A ∈ Zd×n und b ∈ Zd . Das System Ax ≤ b ist TDI genau dann, wenn das
Problem
min{b| y : y| A = c| , y ≥ 0}
für jeden Vektor c ∈ Zn , für den das Minimum angenommen wird, eine Optimallösung y ∈ Zn
besitzt.
Total unimodulare Integrität impliziert Ganzzahligkeit des primal zulässigen Bereichs.
Lemma 2.3.5 Seien A ∈ Zd×n und b ∈ Zd . Falls das System Ax ≤ b TDI ist, dann ist P (A, b)
ganzzahlig.
2.3. Hilbertbasen rationaler polyedrischer Kegel, TDI-Systeme und Chvátal-Gomory-Abschluss
28
Beweis. Sei c ∈ Zn , so dass max{c| x : Ax ≤ b} angenommen wird. Nach Dualitätssatz gilt nun
max{c| x : Ax ≤ b} = min{b| y : y| A = c| , y ≥ 0}.
Da Ax ≤ b TDI ist und b ∈ Zd gilt, ist das Minimum der rechten Seite ganzzahlig. Nach Satz
2.2.7 gilt somit P = PI .
Abschließend sei angemerkt, dass jedes rationale Polyeder P durch ein System linearer Ungleichungen beschrieben werden kann, das TDI ist. Um ein solches System zu finden, braucht man nur für
jede minimale Seite F = {x ∈ P : AI x = bI } von P eine Hilbertbasis des Kegels cone(Ai. : i ∈ I)
zu berechnen und die entsprechenden Ungleichungen der Hilbertbasis-Elemente aufzusammeln.
Satz 2.3.6 Jedes rationale Polyeder besitzt eine TDI-Beschreibung Ax ≤ b mit ganzzahliger Matrix A.
2.3.3
Chvátal-Gomory-Abschluss
Definition 2.3.7 Sei P ein Polyeder. Wir definieren
P0
=
P
P1
=
{x ∈ Rn : c| x ≤ bγc, für alle Stützhyperebenen {x ∈ Rn : c| x = γ} von P mit c ∈ Zn }.
P1 heißt der Chvátal-Gomory-Abschluss (engl.: Chvátal-Gomory closure) von P .
Klar ist zwar PI ⊆ P1 , aber es ist auf den ersten Blick nicht klar, ob P1 wieder ein Polyeder ist.
Satz 2.3.8 Sei P = {x ∈ Rn : Ax ≤ b} ein nichtleeres rationales Polyeder mit A ∈ Zd×n und
Ax ≤ b TDI. Dann ist
P1 = {x ∈ Rn : Ax ≤ bbc},
d.h., P1 ist ein Polyeder.
Beweis. Sei P 6= ∅. Da wir insbesondere {x ∈ Rn : Ai. x = bi } als Stützhyperebene nehmen
können, gilt
P1 ⊆ {x ∈ Rn : Ax ≤ bbc}.
Sei nun {x ∈ Rn : c| x = γ} eine Stützhyperebene von P mit P ⊆ {x ∈ Rn : c| x ≤ γ} und c ∈ Zn ,
γ ∈ Q. Dualität der linearen Optimierung ergibt
γ = max{c| x : Ax ≤ b, x ∈ Rn } = min{y| b : y| A = c| , y ≥ 0}.
Da Ax ≤ b TDI ist, existiert eine ganzzahlige optimale Lösung y∗ von
min{y| b : y| A = c| , y ≥ 0}.
Kapitel 2. Ganzzahlige Optimierung
29
Falls x das System Ax ≤ bbc erfüllt, dann gilt
c| x = ((y∗ )| A)x = (y∗ )| (Ax) ≤ (y∗ )| bbc ≤ b(y∗ )| bc = bγc.
Dies impliziert
{x ∈ Rn : Ax ≤ bbc} ⊆ {x ∈ Rn : c| x ≤ bγc}
und somit
{x ∈ Rn : Ax ≤ bbc} ⊆
\
{x ∈ Rn : c| x ≤ bγc} = P1 ,
c,γ
wobei der Durchschnitt über all jene Stützhyperebenen {x ∈ Rn : c| x = γ} gebildet, wird für die
c ∈ Zn und P ⊆ {x ∈ Rn : c| x ≤ γ} gilt.
Da P1 wieder ein Polyeder ist, können wir den Prozess iterieren.
Definition 2.3.9 Sei P ein rationales Polyeder. Für t ∈ Z+ , t ≥ 1, definieren wir
Pt+1 = (Pt )1 .
Es ist klar, dass
P = P0 ⊇ P1 ⊇ P2 ⊇ . . . ⊇ PI .
Aber existiert auch immer ein endliches t, so dass Pt = PI gilt?
Satz 2.3.10 Sei P ein rationales Polyeder. Dann existiert eine natürliche Zahl t ∈ Z+ , so dass
Pt = PI .
Diese endliche Zahl wird auch der Chvátal-Gomory-Rang von P genannt.
Zusammenfassend kann man für rationale Polyeder P das Auffinden einer linearen Ungleichungsbeschreibung für PI wie folgt beschreiben:
• Sei Ax ≤ b eine Ungleichungsbeschreibung für P .
• Berechne eine TDI-Beschreibung Dx ≤ d für P .
• Setze P1 = {Dx ≤ bdc} und iteriere, um P2 , P3 , . . . zu erhalten.
• Sobald Pt = Pt+1 gilt, haben wir PI = Pt gefunden.
2.4. Schnittebenen-Verfahren
2.4
30
Schnittebenen-Verfahren
Wir betrachten das ganzzahlige Optimierungsproblem
max{c| x : Ax ≤ b, x ∈ Zn }
mit A ∈ Zd×n , b ∈ Zd und c ∈ Zn . Es sei
P = {x ∈ Rn : Ax ≤ b} =
6 ∅.
Desweiteren nehmen wir an, dass P beschränkt ist und dass A Zeilenrang n hat. (P sei also ein
spitzes Polytop.)
Definition 2.4.1 Für x, y ∈ Rn ist x ≺lex y, falls ein j ∈ [n] existiert mit xi = yi , i = 1, . . . , j − 1
und xj < yj .
Schnittebenen-Algorithmus.
Input: Matrix A ∈ Zd×n mit Zeilenrang n, Vektoren b ∈ Zd und c ∈ Zn
Output: Eine optimale Lösung x∗ von max{c| x : Ax ≤ b, x ∈ Zn }
1. Sei t := 0, b0 := b, A0 := A, P0 := {x ∈ Rn : A0 x ≤ b0 }.
2. Löse lexmax{c| x : x ∈ Pt }.
(a) Falls Pt = ∅, dann ist das IP nicht lösbar. STOP.
(b) Sonst, sei xt die eindeutige optimale Lösung.
3. Falls xt ∈ Zn , return xt , STOP.
4. Sei I die Indexmenge der mit Gleichheit erfüllten Ungleichungen, a|i x∗ = bi , i ∈ I.
5. Sei Ht = {h1 , . . . , hk } eine Hilbertbasis des Normalenkegels
(
)
X
C := x ∈ Rn : x =
yi ai , yi ≥ 0, i ∈ I
i∈I
an xt . Sei Ht ∈ Zk×n eine Matrix, dessen Zeilen gerade die Vektoren hi , i = 1, . . . , k, sind.
6. Seien At+1 und bt+1 die Matrix und rechte Seite des folgenden Systems von linearen Ungleichungen:
"
#
"
#
At
bt
x≤
.
Ht
(bh|1 xt c, . . . , bh|k xt c)|
7. Setze t := t + 1 und gehe zu Schritt 2.
Kapitel 2. Ganzzahlige Optimierung
31
Beispiel. Wenden wir diesen Algorithmus auf das folgende IP an:
max{−x1 + 2x2 : −4x1 + 6x2 ≤ 9, x1 + x2 ≤ 4, x1 , x2 ∈ Z+ }.
Optimale Lösung der LP-Relaxierung ist x∗ = 15/10
. Die Ungleichungen −4x1 +6x2 ≤ 9, x1 +x2 ≤
25/10
4 sind mit Gleichheit erfüllt. Der Normalenkegel an x∗ ist
C
= {(d1 , d2 )| = (−4y1 + y2 , 6y1 + y2 )| , y1 , y2 ≥ 0}
= {(d1 , d2 )| : −d1 + d2 ≥ 0, 3d1 + 2d2 ≥ 0 ≥ 0}.
0 −1 −2 1
|
Die Hilbertbasis von C ist H =
1 , 2 , 3 , 1 . Die zugehörigen Ungleichungen h x ≤
| ∗
bh x c sind
x2 ≤ 2,
−x1 + 2x2 ≤ 3,
−2x1 + 3x2 ≤ 4,
x1 + x2 ≤ 4.
Fügen wir diese Ungleichungen zum Problem hinzu und lösen das neue LP, erhalten wir die optimale
IP-Lösung 12 .
Der Schnittebenen-Algorithmus erzeugt eine Familie von Polyedern Pt mit der Eigenschaft
P0 ⊃ P1 ⊃ P2 ⊃ . . . ⊃ P0 ∩ Zn .
Insbesondere ist P1 das im Schnittebenen-Algorithmus erzeugte Polyeder.
Satz 2.4.2 Der Schnittebenen-Algorithmus termininiert nach einer endlichen Anzahl an Schritten.
2.5
Gomory-Schnitte
Definition 2.5.1 Jede Ungleichung der Form
y| Ax ≤ by| bc
heißt (von y erzeugter) Rundungsschnitt oder kurz R-Schnitt. Ist y| b 6∈ Z, so heißt der RSchnitt eigentlich.
Notation. Für α ∈ R sei hαi := α − bαc ∈ [0, 1).
Satz 2.5.2 Seien x∗ eine Basislösung der LP-Aufgabe max{c| x : Ax ≤ b}, B eine zugehörige
Basis, N := [d] \ B und v ∈ Zn . Ferner seien
|
∗
∗
| ∗
y∗ ∈ Rd , y∗B := (A−1
B ) v , yN := 0, q := A y .
Dann gilt
|
n
q∗ = v − A|B (A−1
B ) v ∈ NP (B) ∩ Z .
Die Ungleichung
(q∗ )| x ≤ b(q∗ )| x∗ c
ist ein Rundungsschnitt und es gilt h(q∗ )| xi = hv| x∗ i. Ist v| x∗ 6∈ Z, so ist der R-Schnitt eigentlich.
2.5. Gomory-Schnitte
32
Beweis. Es gilt y∗ ≥ 0 sowie
∗ |
(q∗ )| x = (y∗ )| Ax, (q∗ )| x∗ = (q∗ )| A−1
B bB = (y ) b.
y erzeugt also den R-Schnitt
(q∗ )| x ≤ b(q∗ )| x∗ c.
Ferner ist q∗ = A| y∗ = A|B y∗B ∈ NP (B) sowie
j
|
| k
q∗ = A|B y∗B = A|B A−1
v − A−1
v = v − A|B A−1
v ∈ Zn .
B
B
B
Da v| A−1
bB ganzzahlig ist, gilt weiter
B
=
j
| k| ∗ E
v − A|B A−1
v
x
B
| ∗ | −1 v x − v AB AB x ∗
| ∗ | −1 v x − v AB bB
=
hv| x∗ i
h(q∗ )| x∗ i =
=
D
Der Schnitt erhält also den fraktionalen Anteil von v| x∗ und ist somit genau dann eigentlich, wenn
v| x∗ 6∈ Z gilt.
Definition 2.5.3 Seien A ∈ Zd×n , b ∈ Zd , c ∈ Zn , x∗ eine optimale Basislösung der LP-Aufgabe
max{c| x : Ax ≤ b}, B eine zugehörige optimale Basis, N := [d] \ B und v ∈ Zn mit v| x∗ 6∈ Z.
Ferner seien y∗ definiert durch
|
∗
y∗B := (A−1
B ) v , yN := 0
und q∗ := A| y∗ . Dann heißen
(q∗ )| x ≤ b(q∗ )| x∗ c bzw. (y∗ )| Ax ≤ b(y∗ )| Ax∗ c
Gomory-Schnitt und q∗ Gomory-Schnittvektor zu v. Sind i ∈ [n] und x∗i 6∈ Zn , so heißt der
Gomory-Schnitt zum Vektor v := ei auch Gomory-Schnitt zur i-ten Komponente. Ist c| x∗ 6∈
Z, so heißt der Gomory-Schnitt zum Vektor v := c auch Gomory-Schnitt zur Zielfunktion.
Bemerkung. Seien A ∈ Zd×n , b ∈ Zd , c ∈ Zn , P := {x : Ax ≤ b}, x∗ eine optimale Basislösung
der LP-Aufgabe max{c| x : Ax ≤ b}, B eine zugehörige optimale Basis, N := [d] \ B und v ∈ Zn
mit v| x∗ 6∈ Z. Der Gomory-Schnitt zu v hat die Form
∗
v| x ≤ bv| x∗ c − bv| A−1
B cAB (x − x).
Ist v = ei , so gilt insbesondere
xi − e|i A−1
AB x ≤ bxi c − ei A−1
bB .
B
B
Diese Aussage folgt direkt aus Satz 2.5.2.
Kapitel 2. Ganzzahlige Optimierung
33
Gomory-Schnittebenen-Algorithmus.
Input: A ∈ Zd×n , b ∈ Zd , c ∈ Zn , P := {x : Ax ≤ b}, optimale Basislösung x∗ mit zugehöriger
Basis B von lexmax{c| x : Ax ≤ b}
Output: Meldung “P ∩ Zn = ∅” oder eine optimale Lösung von max{c| x : x ∈ P ∩ Zn }
1. Ist x∗ ∈ Zn , gib x∗ als Optimallösung zurück. STOP.
2. Ist c| x∗ 6∈ Z, setze v := c. Ansonsten setze v := ei für ein minimales i ∈ [n] mit xi 6∈ Z.
3. q sei der Normalenvektor des Gomory-Schnittes zu u.
4. Setze
A :=
A
b
,
b
:=
.
q|
bq| x∗ c
5. P := {x : Ax ≤ b}
6. Ist P = ∅, melde “P ∩ Zn = ∅”. STOP.
7. Anonsten seien x∗ optimale Basislösung von lexmax{c| x : Ax ≤ b} und B zugehörige Basis.
8. Springe zu 1.
Satz 2.5.4 Seien A ∈ Zd×n , b ∈ Zd , c ∈ Zn und P := {x : Ax ≤ b} beschränkt. Dann löst der
Gomory-Schnittebenen-Algorithmus das Problem
max{c| x : Ax ≤ b, x ∈ Zn }
in endlich vielen Schritten.
2.6
Branch-and-Bound Algorithmus
Beginnen wir mit einem motivierenden Beispiel für die Lösung eines linearen ganzzahligen Optimierungsproblems mittels des Branch-and-Bound Algorithmus.
Beispiel. Wir möchten das Problem
c∗ = max{−x1 + 2x2 : −4x1 + 6x2 ≤ 9, x1 + x2 ≤ 4, x1 , x2 ∈ Z+ }
lösen. Die optimale Lösung der LP-Relaxierung ist x0 = 3/2
. Wir teilen nun unser Originalpro5/2
blem mittels der Ungleichungen x2 ≥ 3 und x2 ≤ 2 in zwei neue (disjunkte) Teilprobleme F1 und
F2 . Unsere gesuchte Optimallösung des Originalproblems ist nun die bessere der Optimallösungen
von F1 und F2 .
2.6. Branch-and-Bound Algorithmus
max c|
x0
34
max c|
x0
max c|
x0
Die lineare Relaxierung von F1 hat einen leeren Lösungsbereich. Wir können daher dieses Teilproblem verwerfen.
Die lineare Relaxierung von F2 hat als optimale Lösung x2 = 3/4
2 . Wir teilen daher F2 mittels
der Ungleichungen x1 ≥ 1 und x1 ≤ 0 weiter in zwei neue (disjunkte) Teilprobleme F3 und F4 .
Die optimale Lösung der LP-Relaxierung von F3 ist x3 = 12 ∈ Z2 . Damit haben wir eine obere
Schranke für unser originales Minimierungsproblem gefunden. Damit ist c∗ ≥ 3.
0
Die optimale Lösung der LP-Relaxierung von F4 ist x4 = 3/2
. Ihr Zielfunktionswert ist 3. Damit
hat eine optimale ganzzahlige Lösung von F4 auch höchstens den Zielfunktionswert 3. Da wir bereits
eine ganzzahlige Lösung mit Zielfunktionswert 3 kennen, brauchen wir F4 nicht weiter betrachten.
Die Liste der noch zu betrachtenden Teilprobleme ist nun leer. Unser IP hat als Optimallösung
x∗ = x3 = 12 .
Betrachten wir also das Problem
max{c| x : x ∈ F}
wobei wir annehmen, dass F = {x ∈ Zn : Ax ≤ b}. Wir unterteilen F̄ in eine Anzahl von
Teilmengen F̄1 , . . . , F̄k und lösen die Teilprobleme
max{c| x : x ∈ Fi }, i = 1, . . . , k,
und vergleichen die Optimallösungen, um die Optimallösung des Originalproblems zu finden. Wenn
nötig, werden die Teilprobleme iterativ weiter unterteilt. Zu jedem Zeitpunkt haben wir also eine
Liste aktiver Teilprobleme, die noch zu lösen sind.
Wir nehmen weiterhin an, dass wir für einen effizienten Algorithmus kennen, der für jedes Teilproblem Fi eine obere Schranke u(Fi ) für den optimalen Zielfunktionswert des Teilproblems Fi
Kapitel 2. Ganzzahlige Optimierung
35
berechnet, d.h.,
max{c| x : x ∈ Fi } ≤ u(Fi ).
Von Zeit zu Zeit werden in Teilproblemen zulässige Lösungen generiert, die uns eine untere Schranke
L für den gesuchten optimalen Zielfunktionswert liefern, d.h.,
max{c| x : x ∈ F} ≥ L.
Sollte für ein Teilproblem Fi gelten u(Fi ) ≤ L, so gilt
max{c| x : x ∈ Fi } ≤ u(Fi ) ≤ L ≤ max{c| x : x ∈ F},
und damit braucht dieses Teilproblem nicht weiter untersucht zu werden, da in diesem Teilproblem
keine bessere Lösung als die bisher beste bekannte Lösung gefunden werden kann.
Damit lässt sich der Branch-and-Bound Algorithmus wie folgt beschreiben. Am Anfang setzen wir
L = − inf.
Branch-and-Bound Algorithmus.
1. Wähle ein aktives Teilproblem Fi .
2. Falls das Teilproblem nicht lösbar ist, lösche es; ansonsten berechne u(Fi ).
3. Falls u(Fi ) ≤ L, lösche das Teilproblem.
4. Falls u(Fi ) < L, berechne entweder eine optimale Lösung des Teilproblems oder teile Fi in
weitere Teilprobleme, die zur Liste der aktiven Teilprobleme hinzugefügt werden.
Diese recht allgemeine Darstellung des Algorithmus enthält einige freie “Parameter”, deren beste
Wahl erfahrungs- und problemabhängig sind.
(a) Es gibt verschiedene Möglichkeiten, das nächste aktive Teilproblem auszuwählen. Zwei extremale Möglichkeiten sind “breadth-first search” und “depth-first search”.
(b) Neben der linearen Relaxierung gibt es weitere Wege, obere Schranken u(Fi ) zu finden.
(c) Es gibt diverse Wege, ein Problem in Teilprobleme zu zerlegen.
2.7
Branch-and-Cut Algorithmus
Eine Variante des Branch-and-Bound Algorithmus verwendet Schnitte, um Formulierungen und
damit die Schranken u(Fi ) in Teilproblemen zu verbessern. Wir verdeutlichen dies an obigem
Beispiel.
Beispiel. Wie oben zerlegen wir das Ausgangsproblem
max{−x1 + 2x2 : −4x1 + 6x2 ≤ 9, x1 + x2 ≤ 4, x1 , x2 ∈ Z+ }
2.7. Branch-and-Cut Algorithmus
36
in Teilprobleme F1 (mit x1 ≥ 3) und F2 (mit x1 ≤ 2) und verwerfen Teilproblem F1 als nicht lösbar.
Nun fügen wir zu F2 den Schnitt −x1 + x2 ≤ 1 hinzu. Die optimale Lösung der LP-Relaxierung
ist nun 12 ∈ Z2 und wir brauchen das Teilproblem F2 nicht weiter zu teilen.