diskrete optimierung - foswiki · 1.2. was ist ein algorithmus? 2 1.2 was ist ein algorithmus? de...
TRANSCRIPT
Diskrete Optimierung
Vorlesungsskript SS 2010, TU Munchen
Prof. Dr. Raymond Hemmecke
Version vom 11. Juli 2010
Inhaltsverzeichnis
1 Komplexitatstheorie 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 NP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.8 Die Klasse NP-vollstandig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.9 Komplexitat von Optimierungsproblemen . . . . . . . . . . . . . . . . . . . . . . . 8
2 Ganzzahlige Optimierung 9
2.1 Lineare diophantische Gleichungssysteme Ax = b,x ∈ Zn . . . . . . . . . . . . . . 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 Losung von Az = 0 . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.6 Ganzzahlige Losung von Az = b . . . . . . . . . . . . . . . . . . . . . . . . 14
2.1.7 Ganzzahliges Farkas-Lemma . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2 Ganzzahlige Hulle und ganzzahlige Polyeder . . . . . . . . . . . . . . . . . . . . . . 15
2.3 Hilbertbasen rationaler polyedrischer Kegel, TDI-Systeme und Chvatal-Gomory-
Abschluss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3.1 Hilbertbasen rationaler polyedrischer Kegel . . . . . . . . . . . . . . . . . . 26
2.3.2 TDI-Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
i
INHALTSVERZEICHNIS ii
2.3.3 Chvatal-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
Komplexitatstheorie
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)| fur alle n ≥ n0
Ω(g) = f : N→ R|∃C > 0, n ∈ N mit |f(n)| ≥ c · |g(n)| fur alle n ≥ n0
Θ(g) = f : N→ R|∃c, C > 0, n ∈ N mit c · |g(n)| ≤ |f(n)| ≤ C · |g(n)| fur alle n ≥ n0
Beispiel. f(n) = aknk + . . .+ a1n+ 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 fur die eine Losung oder Antwort gesucht wird.
Ein Problem ist dadurch definiert, dass alle seine Parameter beschrieben werden und dass genau
angegeben wird, welche Eigenschaften eine Antwort (Losung) 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 kurzesten Hamiltonischen Kreis.”
Offene Parameter: Graph G, Kantengewichte (Entfernungen)
1
1.2. Was ist ein Algorithmus? 2
1.2 Was ist ein Algorithmus?
Definition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen Losung eines Problems.
Wir sagen, ein Algorithmus Problem Π lost, wenn er fur jedes Problembeispiel I ∈ Π eine Losung
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 Losung des
Problembeispiels.
Forschungsschwerpunkte:
• Entwurf von Algorithmen
• Berechenbarkeit: Was kann durch Algorithmen berechnet werden?
• Komplexitat von Algorithmen
• Korrektheit von Algorithmen
1.3 Was ist Effizienz?
• Inhalt der Komplexitatstheorie
• Speicher- und Laufzeitkomplexitat
Bemerkung.
• Laufzeit eines Algorithmus hangt von der “Große” der Eingabedaten ab.
• Laufzeitanalyse erfordert eine Beschreibung, wie Problembeispiele dargestellt werden (Ko-
dierungsschema).
• Notwendigkeit exakter Definitionen → geeignetes Rechnermodell → Turing-Maschine
1.4 Kodierungsschema
Ganze Zahlen
Ganze Zahlen werden binar dargestellt, d.h. wir schreiben
n = ±k∑i=0
xi · 2i,
mit xi ∈ 0, 1 und k = blog2(|n|)c.
D.h. die Kodierungslange 〈n〉 einer ganzen Zahl n ist gegeben durch die Formel
〈n〉 = (k + 1) + 1 = blog2(|n|)c+ 2.
Kapitel 1. Komplexitatstheorie 3
Rationale Zahlen
Sei r ∈ Q. Dann existieren p ∈ Z und q ∈ Z, teilerfremd, mit r = pq .
〈r〉 = 〈p〉+ 〈q〉
Vektoren und Matrizen
Fur A ∈ Qm×n ist
〈A〉 =
m∑i=1
n∑j=1
〈aij〉.
1.5 Rechnermodell
Nach Festlegung der Kodierungsvorschrift muss ein Rechnermodell entworfen werden, auf dem un-
sere Speicher- und Laufzeitberechnungen durchgefuhrt werden. In der Komplexitatstheorie: Turing-
Maschine (ein ganz normaler Computer)
Ablauf eines Algorithmus auf der Turing-Maschine:
Algorithmus A soll Problembeispiel I des Problems Π losen. Alle Problembeispiele liegen in ko-
dierter Form vor. Die Anzahl der Speicherplatze, die notig sind, um I vollstandig anzugeben, heißt
Inputlange, 〈I〉. Der Algorithmus liest die Daten und beginnt dann, Operationen auszufuhren,
d.h. Zahlen zu berechnen, zu speichern, zu loschen.
Die Anzahl der Speicherplatze, die wahrend der Ausfuhrung des Algorithmus mindestens einmal
benutzt werden, nennen wir Speicherbedarf von A zur Losung von I. Die Laufzeit von A zur
Losung von I ist die Anzahl elementarer Operationen. Dazu zahlen +, −, ∗, /, Vergleich, Loschen,
Schreiben, Lesen von rationalen Zahlen.
Dies ist jedoch zu unprazise! Zur Darstellung der entsprechenden Zahlen werden mehrere Bits
benotigt. → Fur jede Operation mussen wir mehrere Bits zahlen.
Definition 1.5.1 Laufzeit von A zur Losung von I ist definiert durch die Anzahl elementarer
Operationen, die A ausgefuhrt hat, um I zu losen, multipliziert mit der großten Kodierungslange
der wahrend der Berechnung aufgetretenen ganzen oder rationalen Zahl.
Definition 1.5.2 (“worst-case Laufzeit”)
(a) Sei A ein Algorithmus zur Losung eines Problems Π. Die Funktion fA : N→ N,
fA(n) = maxLaufzeit von A zur Losung von I : I ∈ Π, 〈I〉 ≤ n
heißt Laufzeitfunktion von A.
1.6. Die Klasse P 4
(b) Die Funktion sA : N→ N definiert durch
sA(n) = maxSpeicherbedarf von A zur Losung von I : I ∈ Π, 〈I〉 ≤ n
heißt Speicherplatzfunktion von A.
(c) Der Algorithmus A hat eine polynomiale Laufzeit (kurz: A ist ein polynomialer Algorith-
mus), wenn es ein Polynom p : N→ N gibt mit
fA(n) ≤ p(n) fur alle n ∈ N.
Wir sagen fA ist von der Ordnung hochstens nk (geschrieben fA = O(nk)), falls das Poly-
nom 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) fur alle n ∈ N.
Bemerkung.
• fA(n) ist in Praxis kaum exakt berechenbar (zu aufwendig).
• fA(n) ist maschinenabhangig.
• Man kann aber a priori ein g bestimmen mit f ∈ O(g). → Man finde moglichst kleinstes
solches g.
1.6 Die Klasse P
Ein Entscheidungsproblem ist ein Problem, das nur zwei mogliche Antworten besitzt, “ja” oder
“nein”.
Beispiel. “Ist n eine Primzahl?”
Klasse P: Klasse aller Entscheidungsprobleme, fur die ein polynomialer Losungsalgorithmus exis-
tiert
Diese Definition ist informell: Gegeben ein Kodierungsschema E und ein Rechnermodell M . Π sei
ein Entscheidungsproblem, wobei jede Instanz aus Π durch Kodierungsschema E kodierbar sei. Π
gehort zur Klasse P (bzgl. E und M), wenn es einen auf M implementierbaren Algorithmus zur
Losung aller Problembeispiele aus Π gibt, dessen Laufzeitfunktion auf M polynomial ist.
1.7 Die Klasse NP
Motivation.
• Enthalt G einen Kreis? → “einfach” → P
• Enthalt G einen hamiltonischen Kreis? → “schwieriger” → NP
Kapitel 1. Komplexitatstheorie 5
Klasse NP
Definition 1.7.1 Ein Entscheidungsproblem Π gehort zu NP, wenn es die folgende Eigenschaften
hat:
(a) Fur jedes Problembeispiel I ∈ Π, fur das die Antwort “ja” lautet, gibt es mindestens ein
Objekt Q, mit dessen Hilfe die Korrektheit der “ja”-Antwort uberpruft werden kann.
(b) Es gibt einen Algorithmus, der Problembeispiele I ∈ Π und Zusatzobjekte Q als Input ak-
zeptiert und der in einer Laufzeit, die Polynomial in 〈I〉 ist, uberpruft, ob Q ein Objekt ist,
aufgrund dessen Existenz ein “ja”-Antwort fur I gegeben werden muss.
Beispiel. “Hat gegebenes System Ax = b,x ≥ 0 eine Losung?”
Zusatzobjekt Q: z.B. eine Losung x0
Uberprufungsalgorithmus: Teste, ob Ax0 = b,x0 ≥ 0.
“Ja.”: Die “ja”-Antwort fur I ist bestatigt.
“Nein.”: Q ist ungeeignetes Objekt. Die Antwort fur I bleibt offen.
1.7. Die Klasse NP 6
Bemerkung.
• Es wird keine Aussage uber die Berechenbarkeit eines geeigneten Q gemacht. → Q kann
geraten werden. → Nondeterministic Polynomial time
• Laufzeit des Algorithmus in (b) ist polynomial in 〈I〉. Da der Algorithmus Q lesen muss, ist
〈Q〉 polynomial in 〈I〉.
• Auf die Frage “Hat die Gleichung x2 + y2 = n eine Losung in ganzen Zahlen?” ist x = y =
n√
0.5 kein geeignetes Zusatzobjekt.
• Definition ist unsymmetrisch in “ja” und “nein”. NP impliziert nicht, dass auf die “nein”-
Antwort ein polynomialer Algorithmus zur Uberprufung der Korrektheit dieser Aussage exis-
tiert.
• Probleme, die Negationen von Problemen aus NP sind, gehoren zur Klasse coNP. Zum
Beispiel: “Hat G keinen Kreis?”, “Ist n ∈ N eine Primzahl?” Man weiß, dass beide Probleme
zur Klasse NP∩ coNP gehoren. Vom Problem “Hat G keinen hamiltonischen Kreis?” weiß
man nicht, ob es zu NP gehort.
• P ⊆ NP: Es ist kein Objekt Q notig, um die “ja”-Antwort in polynomiller Zeit zu uberprufen.
• Offene Fragen:
P = NP ∩ coNP
NP = coNP
P 6= NP
Beispiele. Die Probleme “Hat ein Graph G einen Kreis?”, “Hat ein Graph G einen hamiltonischen
Kreis?” sind somit in NP. Hat namlich G einen Kreis oder hamiltonischen Kreis, so wahlen wir
diesen als Objekt Q. Dann entwerfen wir einen polynomialen Algorithmus, der fur einen Graphen
G und eine zusatzliche Kantenmenge Q entscheidet, ob Q ein Kreis oder hamiltonischer Kreis von
G ist.
Auch die Frage “Ist n ∈ N eine zusammengesetzte Zahl?” ist in NP, denn liefern wir als “Objekt”
zwei Zahlen 6= 1, deren Produkt n ist, so ist n keine Primzahl. Die Uberprufung der Korrektheit
besteht somit in diesem Fall aus einer einzigen Multiplikation.
Kapitel 1. Komplexitatstheorie 7
1.8 Die Klasse NP-vollstandig
Nachster Schritt: Charakterisierung besonders schwieriger Probleme in NP.
Polynomiale Transformation von Problemen
Definition 1.8.1 Gegeben seien zwei Entscheidungsprobleme Π und Π′. Eine polynomiale Trans-
formation von Π in Π′ ist ein polynomialer Algorithmus, der, gegeben ein (kodiertes) Problembei-
spiel I ∈ Π, ein (kodiertes) Problembeispiel I ′ ∈ Π′ produziert, so dass folgendes gilt:
Die Antwort auf I ist genau dann “ja”, wenn die Antwort auf I ′ “ja” ist.
Wenn Π in Π′ polynomiell transformierbar ist und es einen polynomialen Algorithmus zur Losung
von Π′ gibt, dann kann jede Instanz von Π auch polynomial gelost werden.
Klasse NP-vollstandig
Definition 1.8.2 Ein Entscheidungsproblem Π heipt NP-vollstandig, falls Π ∈ NP und falls
jedes andere Problem aus NP polynomial in Π transformiert werden kann.
Jedes NP-vollstandige Entscheidungsproblem hat also folgende Eigenschaft. Falls Π in polynomia-
ler Zeit gelost werden kann, dann kann auch jedes andere Problem aus NP in polynomialer Zeit
gelost werden. Diese Eigenschaft zeigt, dass–bzgl. polynomialer Losbarkeit–kein Problem in NPschwieriger ist als ein NP-vollstandiges.
Existieren NP-vollstandige Probleme? Ja.
Beispiele:
• 3-SAT: “(x1 ∨ x2 ∨ x3) ∧ (. . .) ∧ . . . = TRUE?”
m 3er-Klauseln uber n bollschen Variablen
• “Hat Graph G einen Hamilton-Kreis?”
• “Hat gewichteter Graph G einen Hamilton-Kreis mit Lange ≤ B?”
• “Ist n ∈ N prim?”
∈ P?
∈ NP∩ coNP?
NP-vollstandig?
Diese Fragen wurden 2003 von drei Indern geklart. “Ist n ∈ N prim?” ist in P.
1.9. Komplexitat von Optimierungsproblemen 8
1.9 Komplexitat von Optimierungsproblemen
Definition 1.9.1 Ein Problem P heißt NP-schwer, falls alle Π ∈ NP polynomiall reduzierbar
(= transformierbar) auf bzw. in P sind.
Beispiel. Das Problem, in einem gewichteten Graphen einen kurzesten Hamilton-Kreis zu finden
(= Traveling Salesman Problem (= TSP)) is NP-schwer.
Beispiel. maxcᵀx : Ax = b,x ≥ 0,x ∈ Zn ist NP-schwer.
Kapitel 2
Ganzzahlige Optimierung
In diesem Kapitel werden wir uns mit dem Problem
maxcᵀx : Ax = b,x ≥ 0,x ∈ Zn bzw. maxcᵀx : Ax ≤ b,x ∈ Zn
beschaftigen. Zuerst machen wir uns mit der diskreten Natur der Menge x : Ax = b,x ∈ Znvertraut.
2.1 Lineare diophantische Gleichungssysteme Ax = b,x ∈ Zn
Unser Ziel wird es sein, eine Darstellung
x : Ax = b,x ∈ Zn =
v0 +
k∑i=1
λivi : λ1, . . . , λk ∈ Z
zu finden. Man vergleiche dies mit der allgemeinen Losungsdarstellung fur 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
L =
n∑i=1
λivi : λ1, . . . , λn ∈ Z
.
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 unabhangige Vektoren s1, . . . , sk ∈ L gibt mit
S =
k∑i=1
λisi : λ1, . . . , λk ∈ Z
.
In diesem Fall heißen S durch s1, . . . , sk (ganzzahlig) erzeugt und s1, . . . , sk Basis des
Untergitters S.
Beispiel. Das durch(
10
),(01
)erzeugte Gitter ist das Standardgitter Z2. Das durch
(21
),(12
)erzeugte Gitter ist ein Teilgitter von Z2. Das durch
(√21
),(
1√2
)erzeugte Gitter enthalt wie alle
Gitter den Nullpunkt 0, sonst aber keinen einzigen weiteren ganzzahligen Punkt des R2.
Beispiel. Seien v1 =(31
)und v2 =
(21
). Offenbar sind v1,v2 linear unabhangig und es gilt fur
(β1, β2) ∈ Z2:
(β1 − 2β2)
(3
1
)+ (−β1 + 3β2)
(2
1
)=
(β1β2
).
Somit lasst 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 Gleichungs-
system. Fur 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 Glei-
chung
a1x1 + . . .+ anxn = β
ist genau dann uber Z losbar, wenn g ein Teiler von β ist.
Beweis. Da g ein Teiler von a1x1 + . . . + anxn ist, muss g auch β teilen, damit eine Losung
existiert. Sei nun g ein Teiler von β. Da g = ggT(a1, . . . , an), existiert eine Linearkombination
g = y1a1 + . . . + ynan mit y1, . . . , yn ∈ Z. Setzen wir jetzt xi = βg yi ∈ Z, i = 1, . . . , n, so erhalten
wir
a1x1 + . . .+ anxn =β
g(y1a1 + . . .+ ynan) = β.
Damit haben wir also eine Losung fur 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 Glei-
chung losbar ist.
Kapitel 2. Ganzzahlige Optimierung 11
Beweis. O.B.d.A. konnen wir annehmen, dass a1, . . . , an ∈ Z>0. (Warum?) Wir wenden den
Euklidschen Algorithmus zunnachst auf a1, a2 an und erhalten g2 = ggT(a1, a2) in polynomieller
Zeit (in 〈a1, a2〉). (Ubungsaufgabe!) 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) ≤ maxa1, . . . , ak+1
bestimmt. Da die binare Große der auftretenden Komponenten nicht zunimmt, bleibt die Laufzeit
polynomiell (in 〈a1, . . . , an〉). 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 dio-
phantische Gleichung losbar 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 regular. Dann sind die folgenden Aussagen aquivalent:
(a) C ist unimodular.
(b) Fur jedes b ∈ Zn gilt C−1b ∈ Zn.
(c) Fur jedes b ∈ Zn ist das lineare diophantische Gleichungssystem Cx = b losbar.
(d) C−1 ∈ Zn×n
Beweis.
(a)→(b): Als Folgerung aus dem Entwicklungssatz von Laplace (s. Lineare Algebra) gilt
C−1 =1
det(C)adj(C).
Somit gilt wegen |det(C)| = 1:
C−1b =1
det(C)adj(C)b ∈ Zn.
(b)→(c): (c) ist nur eine Unformulierung von (b).
(c)→(d): Fur i = 1, . . . , n ist C−1ei der i-te Spaltenvektor von C−1, und nach Voraussetzung
gilt C−1ei ∈ 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) = 1det(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 fur
i = 1, . . . , d, j = 1, . . . , n, die folgenden Bedingungen erfullt sind:
(a) aij ≥ 0,
(b) aij = 0 falls j > i,
(c) aij < aii fur j < i.
Beispiel.
A =
2 0 0 0 0
0 4 0 0 0
1 2 9 0 0
Falls A ∈ Zd×n nicht in Hermite Normalform ist, kann man versuchen, A durch gewisse Spalten-
operationen 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 Nor-
malform HNF(A) uberfuhrt 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 〈A〉) berechnet werden.
• Ebenso kann eine (unimodulare) Transformationsmatrix U mit HNF(A) = AU in poly-
nomieller Zeit (in 〈A〉) berechnet werden. Dazu beachte man, dass sich jede unimodulare
Spaltenoperation auf A als Multiplikation von A mit einer unimodularen Matrix U schreiben
lasst. Damit ist HNF(A) = AU1U2 . . . Uk =: AU fur eine geeignete unimodulare Matrix U .
Beispiel. Wir bringen die Matrix A = ( 1 1 1 11 5 10 25 ) durch elementare Spaltenoperationen in Hermite
Normalform HNF(A) = (D|0).
( 1 1 1 11 5 10 25 ) → ( 1 0 0 0
1 4 9 24 ) → ( 1 0 0 01 4 1 0 ) → ( 1 0 0 0
1 1 4 0 ) → ( 1 0 0 00 1 0 0 )
Demnach ist
HNF(A) =
(1 0 0 0
0 1 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 := InU1 . . . Us, indem wir die gleichen Spaltenoperationen auf die Einheitsmatrix In
anwenden.
Beispiel fortgesetzt. Berechnen wir nun die Transformationsmatrix U mit HNF(A) = AU fur
obiges Beispiel. Wenn wir die gleichen Spaltenoperationen auf I4 (und nicht auf A) anwenden,
erhalten wir
U =
0 1 −5 5
2 −2 9 −6
−1 1 −4 0
0 0 0 1
.
Die Hermite Normalform von A ermoglicht es uns nun, die allgemeine Losung von Ax = b zu
finden. Zuerst finden wir eine Basis des homogenen Gleichungssystems Ax = 0.
2.1.5 Ganzzahlige Losung 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 fur 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−1z) = HNF(A)y = (D|0)y
mit y = U−1z. 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 unabhangig), ist das Gitter kerZn(HNF(A)) erzeugt durch die Basis
ed+1, . . . , en. Demnach ist z = Uy 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 Losung von Az = b
Bestimmen wir nun eine ganzzahlige Losung von Az = b. Aus
b = Az = (AU)(U−1z) = HNF(A)y = (D|0)y,y = U−1z,
bestimmen wir zuerst eine Losung y0 von HNF(A)y = b. Solch eine Losung y0 kann man schnell
finden, da D eine triangulare Matrix ist. Desweiteren, da D triangular (und insbesondere inver-
tierbar) ist, unterscheiden sich je zwei Losungenvon HNF(A)y = b nur in ihren letzten n − d
Komponenten durch eine ganzzahlige Linearkombination von ed+1, . . . , en. Demnach existiert eine
ganzzahlige Losung z von Az = b genau dann wenn eine ganzzahlige Losung y0 = U−1z0 von
HNF(A)y = b existiert. (Beachte, das U−1 eine ganzzahlige Matrix ist!) Sobald wir eine ganzzah-
lige Losung y0 mit HNF(A)y0 = b gefunden haben, konnen wir sofort eine ganzzahlige Losung
z0 = Uy0 von Az = b finden.
Beispiel fortgesetzt. Um eine ganzzahlige Losung von Az =
(10
110
)zu finden, losen wir
zuerst HNF(A)y =
(10
110
), was uns zum Beispiel y0 = (10, 110, 0, 0)ᵀ als ganzzahlige Losung
gibt. Danach berechnen wir z0 = Uy0 = (110,−200, 100, 0)ᵀ. Tatsachlich ist Az0 =
(10
110
).
Die allgemeine Losung von Ax = b ergibt sich nun aus der Summe einer speziellen Losung von
Ax = b und einer ganzzahligen Linearkombination einer Gitterbasis von kerZn(A).
Kapitel 2. Ganzzahlige Optimierung 15
Beispiel fortgesetzt. Die allgemeine Losung von Az =
(10
110
)ist
z =
110
−200
100
0
+ α1
−5
9
−4
0
+ α2
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 gelost
werden. Insbesondere kann zu jedem zulassigen System in polynomieller Zeit ein k ∈ N, eine
spezielle Losung v0 und linear unabhangige Vektoren v1, . . . ,vk bestimmen, so dass
x : Ax = b,x ∈ Zn =
v0 +
k∑i=1
λivi : λ1, . . . , λk ∈ Z
.
2.1.7 Ganzzahliges Farkas-Lemma
Abschließend beweisen wir noch einen Satz, der ahnlich wie das Farkas-Lemma fur lineare Gleichungs-
und Ungleichungssysteme die (Un-)Losbarkeit 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 wurde mit yᵀA ∈ Zn und yᵀb 6∈ Z, dann ware
yᵀAx = yᵀb mit yᵀAx ∈ Z und yᵀb 6∈ Z.
Andererseits, falls F = ∅, dann ist u = D−1b 6∈ Zd (fur HNF(A) = (D|0)). Das heißt, es existiert
ein i, so dass ui 6∈ Z. Wahlt 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 Hulle und ganzzahlige Polyeder
Durch I := (d, n,A,b, c) sei die ILP-Aufgabe maxcᵀx : Ax ≤ b,x ∈ Zn spezifiziert.
Die LP-Aufgabe maxcᵀx : Ax ≤ b,x ∈ Rn heißt LP-Relaxation von I.
Das Polyeder P = x ∈ Rn : Ax ≤ b wird das zu I zugehorige Polyeder genannt.
2.2. Ganzzahlige Hulle und ganzzahlige Polyeder 16
Bemerkung. Seien P ein Polyeder des Rn und c ∈ Rn. Dann gilt
supx∈P∩Zn
cᵀx = supx∈conv(P∩Zn)
cᵀx.
Dies folgt direkt aus der Definition der konvexen Hulle.
Definition 2.2.1 Sei P ein Polyeder des Rn. Dann heißt PI := conv(P ∩ Zn) die ganzzahlige
Hulle von P .
Beispiel. Sei P das durch die Ungleichungen
x1 − x2 ≤ 32
7x1 + 3x2 ≥ 212
x2 ≤ 72
gegebene Polytop. Es gilt
P ∩ Z2 =
(1
2
),
(1
3
),
(2
1
),
(2
2
),
(2
3
),
(3
2
),
(3
3
),
(4
3
).
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 erhalt. Es
gilt also PI = QI ( Q ( P . Desweiteren stimmen die Optima von Q und QI uberein, obwohl
Q 6= QI gilt.
PI besitzt die (irredundante) H-Darstellung
x1 − x2 ≤ 1
x1 + x2 ≥ 3
x1 ≥ 1
x2 ≤ 3,
ist also ein Polytop. Man beachte, dass der Optimalpunkt(43
)bzgl. PI bereits optimal bzgl. Q ist.
Kapitel 2. Ganzzahlige Optimierung 17
Beispiel. Gegeben seien die beiden ILP-Aufgaben
max x1 max x1
3x2 ≤ 4 −√
2x1 + x2 ≤ 0
4x2 ≥ 1√
2x1 − x2 ≤ 0
x1, x2 ∈ Z x1, x2 ∈ Z
Die zugehorigen Polyeder seien P bzw. Q.
P ist ein horizontaler Streifen. Die Zielfunktion ist uber P unbeschrankt. Da P ∩ Z2 = ∅ gilt, ist
das ILP nicht zulassig.
Q ist eine Gerade mit irrationaler Steigung√
2. Ihr einziger Gitterpunkt ist 0. Die ILP-Aufgabe
hat das Optimum 0, wahrend die zugehorige LP-Relaxation beliebig große Funktionswerte enthalt.
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.→ Ubungs-
aufgabe
• 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′) geschrieben, wenn
nur die Kegeleigenschaft von cone(E) + span(S) benotigt wird.
Definition 2.2.2 Eine H-Darstellung bzw. eine V-Darstellung von eines Polyeders P heißt ra-
tional 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 Hulle und ganzzahlige Polyeder 18
Definition 2.2.4 Ein Polyeder P heißt rational, falls P eine rationale H-Darstellung (bzw. V-
Darstellung) 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)
fur 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
v′ ∈ v + span(S). Naturlich gilt v + span(S) = v′ + span(S). Insgesamt erhalt man eine
Menge V ′ ⊆ Zn mit P = conv(V ′) + cone(E) + span(S), d.h., eine ganzzahlige V-Darstellung
von P .
Damit reicht es fur spitze Polyeder P zu klaren, wann alle Ecken von P ganzzahlig sind. Eine
Antwort darauf ist of schwierig zu erzielen und wir werden spater einige hinreichende Bedingungen
fur die Ganzzahligkeit von Polyedern kennenlernen.
Satz 2.2.7 Sei P ⊆ Rn ein rationales Polyeder. Dann sind folgende Aussagen aquivalent.
(a) P ist ein ganzzahliges Polyeder.
(b) Jede eigentliche Seite von P minimaler Dimension ist ein ganzzahliges Polyeder.
(c) Jede Stutzhyperebene an P enthalt einen Gitterpunkt.
(d) Fur jeden Vektor c ∈ Rn, fur den maxcᵀx : x ∈ P existiert, gibt es einen Maximalpunkt
x∗ ∈ Zn.
(e) Fur jeden Vektor c ∈ Rn, fur den maxcᵀ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 : AIx = bI.
Angenommen, F enthalt keinen ganzzahligen Punkt. Dann existiert nach dem Ganzzahligen Farkas-
Lemma, Lemma 2.1.9, ein y ∈ R|I| mit
AᵀIy ∈ Zn und bᵀ
Iy 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 konnen, 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 Stutzhyperebenen von F ). Das
Optimum von maxcᵀx : x ∈ P wird damit genau in allen Punkten von F angenommen. Damit
ist also
maxcᵀx : x ∈ P = maxcᵀ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) fur ein w ∈ F ∩ Zn gilt).
Bemerkung. Das Problem, fur ein gegebenes Polyeder P in H-Darstellung zu entscheiden, ob
P = PI gilt, ist NP-vollstandig.
Bezeichnung. Fur 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 aquivalent.
(a) Fur jede Teilmenge I ⊆ 1, . . . , d mit rang(AI) = k und jedes bI ∈ Zk besitzt AIx = bI
eine ganzzahlige Losung.
(b) Fur jedes b ∈ Zd ist P (A,b) ganzzahlig.
Beweis.
(a)⇒ (b). Seien b ∈ Zd und c ∈ Zn \ 0, so dass maxcᵀx : x ∈ P (A,b) existiert. Dann ist
F = argmaxcᵀx : x ∈ P (A,b)
eine Seite von P (A,b). Sei I die Menge der Indizes aller fur F aktiven Nebenbedingungen. Dann
gilt
aff(F ) = x ∈ Rn : AIx = bI.
2.2. Ganzzahlige Hulle und ganzzahlige Polyeder 20
Nach Voraussetzung enthalt aff(F ) ganzzahlige Punkte. Nach Satz 2.2.7 ist P (A,b) somit ganz-
zahlig.
(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 AIx = bI ist uber
R (oder Q) losbar. Seien
x∗ ∈ Rn, AIx∗ = bI , w := bAJx∗c, b :=
(bI
w + 1
).
(Dabei ist bAJx∗c naturlich wieder komponentenweise gemeint.) Dann ist b ganzzahlig und es gilt
AIx∗ = bI und AJx∗ < w + 1.
D.h., x∗ ∈ P (A,b) und fur 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, enthalt sie einen Punkt v ∈ Zn. Es folgt AIv = bI und damit die Behauptung.
Definition 2.2.9 Sei A ∈ Zd×n mit rang(A) = n. Die Matrix A heißt unimodular, wenn fur
jede Teilmenge B ⊆ 1, . . . , d mit |B| = n gilt det(AB) ∈ −1, 0, 1.
Beispiel. Die Matrix(
1 01 −1−2 1
)ist unimodular, denn die drei 2 × 2 Teilmatrizen haben Determi-
nanten −1, 1, bzw. −1.
Folgerung 2.2.10 Sei A ∈ Zd×n mit rang(A) = n. Dann sind die folgenden beiden Aussagen
aquivalent.
(a) A ist unimodular.
(b) Fur 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 fur 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, 1d×n. Ferner ist jede
Matrix A′, 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 A′ auch Teilmatrix von
A ist.
Beispiel. Die Matrix(
1 01 −1−2 1
)ist zwar unimodular aber nicht total unimodular, da nicht alle
Eintrage aus −1, 0, 1 sind.
Kapitel 2. Ganzzahlige Optimierung 21
Satz 2.2.13 Die Matrix A ∈ Zd×n ist genau dann total unimodular, wenn(AIn
)unimodular ist.
(In ist hierbei die n× n-Einheitsmatrix.)
Beweis.
=⇒ Sei C eine regulare n × n-Teilmatrix von(AIn
). Durch Entwicklung der Determinante nach
den zur Einheitsmatrix gehorenden Zeilen folgt |det(C)| = 1.
⇐= Sei A′ eine regulare quadratische Teilmatrix von A. Dann lasst sich A′ durch Hinzufugen von
Zeilen aus In und Spalten aus(AIn
)zu einer regularen n×n-Teilmatrix C von
(AIn
)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(A′)| = 1 gelten muss.
Folgerung 2.2.14 Die Matrix A ∈ Zd×n ist genau dann total unimodular, wenn fur jeden Vektor
b ∈ Zd alle Ecken von
P
((A
−In
),
(b
0
))= x ∈ Rn : Ax ≤ b,x ≥ 0
ganzzahlig sind.
Beweis.
=⇒ Nach Satz 2.2.13 und Folgerung 2.2.10 ist A genau dann total unimodular, wenn fur alle
b ∈ Zd und c ∈ Zn alle Ecken von
P
((A
−In
),
(b
−c
))= x ∈ Rn : Ax ≤ b,x ≥ c
ganzzahlig sind.
⇐= Wir zeigen noch, dass aus der Ganzzahligkeit der Ecken von
P
((A
−In
),
(b
0
))= x ∈ Rn : Ax ≤ b,x ≥ 0
fur alle b ∈ Zd die Ganzzahligkeit der Ecken von
P
((A
−In
),
(b
−c
))= x ∈ Rn : Ax ≤ b,x ≥ c
fur alle b ∈ Zd und c ∈ Zn folgt. Es gilt naturlich(A
−In
)x ≤
(b
−c
)⇐⇒
(A
−In
)(x− c) ≤
(b−Ac
0
).
Da die Ganzzahligkeit der Ecken eines Polyeders invariant unter Translation um einen ganz-
zahligen Vektor ist, folgt die Behauptung.
2.2. Ganzzahlige Hulle und ganzzahlige Polyeder 22
Lemma 2.2.15 Sei A ∈ Zd×n und sei A′ eine der folgenden Matrizen:
Aᵀ,−A, (A|Im),
(A
In
),
(A
−A
).
Dann ist A genau dann total unimodular, wenn A′ total unimodular ist.
Beweis.
=⇒ Diese Richtung ergibt sich direkt aus der Definition von A′ 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, 1d×n. Die Matrix A ist genau dann total uni-
modular, wenn es fur jede nichtleere Indexmenge I ⊆ 1, . . . ,m eine Partition (I1, I2) von I gibt
mit ∑i∈I1
ai −∑i∈I2
ai ∈ −1, 0, 1n.
Beweis.
=⇒ Sei I ⊆ 1, . . . , d, I 6= ∅ gegeben. Da wir zeigen wollen, dass fur die gesuchte Partition
(I1, I2) von I die beiden Summen∑i∈I1 ai und
∑i∈I2 ai fast ubereinstimmen, setzen wir
Q :=
y ∈ R|I| :
⌊1
2AᵀI1
⌋≤ Aᵀ
Iy ≤⌈
1
2AᵀI1
⌉,0 ≤ y ≤ 1
.
Nach Lemma 2.2.12 und Lemma 2.2.15 ist mit A auch die MatrixAᵀI
−AᵀI
In
−In
total unimodular und nach Folgerung 2.2.14 istQ ganzzahlig. Da der Vektor 1
21 inQ enthalten
ist, gilt Q 6= ∅. Damit ist Q konvexe Hulle 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 ⌊1
2AᵀI1
⌋≤∑i∈I2
ai = AᵀIv ≤
⌈1
2AᵀI1
⌉.
Wegen ∑i∈I1
ai −∑i∈I2
ai =∑i∈I
ai − 2∑i∈I2
ai = AᵀI1− 2Aᵀ
Iv
folgt somit
AᵀI1− 2
⌈1
2AᵀI1
⌉≤∑i∈I1
ai −∑i∈I2
ai ≤ AᵀI1− 2
⌊1
2AᵀI1
⌋und daher
∑i∈I1 ai −
∑i∈I2 ai ∈ −1, 0, 1n.
Kapitel 2. Ganzzahlige Optimierung 23
⇐= Wir zeigen die Determinantenbedingung fur jede k × k-Teilmatrix mittels vollstandiger In-
duktion nach k. Durch Anwendung der Partitionsbedingung auf alle Indexmengen I der
Kardinalitat 1 folgt A ∈ −1, 0, 1d×n. Also gilt die Aussage fur alle 1× 1-Teilmatrizen. Sei-
en nun k ≥ 2 und C eine beliebige k× k-Teilmatrix von A. Ist C singular, so ist det(C) = 0.
Sei daher im folgenden C regular. 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
cᵀ = eᵀl C−1 =
1
det(C)eᵀl adj(C).
und da nach Induktionsvoraussetzung alle Komponenten von adj(C) aus −1, 0, 1 sind, folgt
det(C) · c ∈ −1, 0, 1k.
Seien nun I := i ∈ [k] : ci 6= 0 und (I1, I2) eine Partition von I mit∑i∈I1
ai −∑i∈I2
ai ∈ −1, 0, 1n.
Nun gilt fur j ∈ [k] \ l naturlich
(det(C)) · cᵀCej = 0.
Da alle Eintrage 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 fur jedes j ∈ [k] \ l ∑i∈I1
aij −∑i∈I2
aij = 0.
Da C regular ist, gilt insbesondere ∣∣∣∣∣∑i∈I1
ail −∑i∈I2
ail
∣∣∣∣∣ = 1.
Sei nun b = (b1, . . . , bk)ᵀ definiert durch
bi :=
1 fur i ∈ I1,−1 fur i ∈ I2,
0 sonst,
fur alle i ∈ [k]. Dann folgt bᵀC ∈ −el, el, also
b ∈ −c, c.
Somit ist c ∈ −1, 0, 1k, und da l ∈ [k] beliebig war, folgt insbesondere C−1 ∈ Zk×k, also
auch |det(C)| = 1.
2.2. Ganzzahlige Hulle und ganzzahlige Polyeder 24
Folgerung 2.2.17 Sei A ∈ −1, 0, 1d×n und jede Spalte von A enthalte hochstens zwei von 0
verschiedene Eintrage. Die Matrix A ist genau dann total unimodular, wenn es eine Partition
(I1, I2) von [d] gibt, so dass fur 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∑i∈I1
ai −∑i∈I2
ai ∈ −1, 0, 1n.
Fur jede Spalte mit genau zwei von 0 verschiedenen Eintragen konnen bei gleichem Vor-
zeichen die zu diesen gehorigen Zeilenindizes nicht in derselben Partitionsmenge und bei
verschiedenen Vorzeichen nicht in verschiedenen Partitionsmengen liegen. (I1, I2) erfullt also
die behauptete Bedingung.
⇐= Sind (I1, I2) eine entsprechende Partition von [d] und I ⊆ [d] mit I 6= ∅, so gilt∑i∈I1∩I
ai −∑
i∈I2∩Iai ∈ −1, 0, 1n.
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 enthalt genau zwei von 0 verschiedene Eintrage. Da diese verschiedenes
Vorzeichen haben, setzen wir I1 := 1, 2, . . . , |V | und I2 := ∅. Dann erfullt (I1, I2) das Kriterium
aus Folgerung 2.2.17 und SG ist somit total unimodular.
Bemerkung. Dass Problem, fur gegebene Matrix A ∈ Zd×n zu entscheiden, ob A total unimodular
ist, kann in polynomieller Zeit gelost werden.
Bemerkung. Seien G = (V,E, c) ein gewichteter Graph, V := v1, . . . , vn, E := e1, . . . , emund c := (c(e1), . . . , c(em))ᵀ. Dann ist jeder zulassige Punkt des ILPs
maxcᵀx : SGx ≤ 1,x ≥ 0,x ∈ Zm
Inzidenzvektor eines Matchings in G und umgekehrt, und die Zielfunktionswerte stimmen uberein.
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 vollstandige Graph K3 mit 3 Knoten. Gesucht ist ein kardinalitatsma-
ximales Matching. Da K3 nur genau 4 verschiedene Matchings enthalt, namlich
M0 := ∅, M1 := e1, M2 := e2, M3 := e3,
ist die Aufgabe naturlich leicht zu losen: M1,M2,M3 sind kardinalitatsmaximal.
Bei geeigneter Nummerierung der Knoten und Kanten ist 1 1 0
0 1 1
1 0 1
die Inzidenzmatrix von K3. Ihre Determinante hat den Wert 2; die Matrix ist also nicht total
unimodular. Tatsachlich ist die (in diesem Fall eindeutig bestimmte) optimale Losung x∗ der
zugehorigen LP-Aufgabe
maxx1 + x2 + x3 : x1 + x2 ≤ 1, x1 + x3 ≤ 1, x2 + x3 ≤ 1, x1, x2, x3 ≥ 0
auch nicht ganzzahlig; es gilt
x∗ =
1/2
1/2
1/2
.
Das zugehorige Polyeder ist also nicht ganzzahlig.
Folgerung 2.2.20 Seien G ein bipartiter Graph und b ∈ Zn+. Die Ecken des durch
maxcᵀx : SGx ≤ 1,x ≥ 0,x ∈ Zm
gegebenen Polytops sind ganzzahlig.
2.3 Hilbertbasen rationaler polyedrischer Kegel, TDI-Systeme
und Chvatal-Gomory-Abschluss
In diesem Abschnitt erarbeiten wir Grundlagen fur Schnittebenenverfahren zur Losung linearer
ganzzahliger Optimierungsprobleme.
2.3. Hilbertbasen rationaler polyedrischer Kegel, TDI-Systeme und Chvatal-Gomory-Abschluss 26
2.3.1 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 lasst als
(nichtnegative ganzzahlige) Linearkombination
z =∑
λihi, λi ∈ Z+,hi ∈ H,
von Elementen aus H.
Lemma 2.3.2 Jeder rationale polyedrische Kegel C besitzt eine Hilbertbasis. Ist C zusatzlich spitz,
so existiert eine eindeutige inklusionsminimale Hilbertbasis von C.
Beweis. Sei C = cone(v1, . . . ,vk) mit v1, . . . ,vk ∈ Zn. Sei weiterhin
F :=
k∑i=1
λivi : 0 ≤ λi < 1, i = 1, . . . , k
.
Klar: F ∩Zn ist beschrankt und enthalt somit nur endlich viele Gitterpunkte. Sei jetzt z ∈ C ∩Zn.
Dann gilt insbesondere z =k∑i=1
λivi, λ1, . . . , λk ≥ 0. Damit ist
z =
k∑i=1
bλicvi +
k∑i=1
(bλic − λi)vi︸ ︷︷ ︸∈F
,
also lasst 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 zusatzlich 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 lasst, 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 Linearkom-
bination 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, lasst 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 Ele-
menten 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
spater als sehr nutzlich 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 fur jede Seite F = x ∈ P : AIx = 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
minbᵀy : yᵀA = cᵀ,y ≥ 0
beschrankt ist. Betrachte nun das Problem
maxcᵀx : x ∈ P = P (A,b).
Wenn cᵀx maximal auf einer Seite F = x ∈ P : AIx = 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 aquivalent dazu, dass cᵀ
geschrieben werden kann als cᵀ =∑i∈I yiAi. mit yi ∈ Z+. Der Vektor y ist dann eine ganzzahlige
duale Losung.
Satz 2.3.4 Seien A ∈ Zd×n und b ∈ Zd. Das System Ax ≤ b ist TDI genau dann, wenn das
Problem
minbᵀy : yᵀA = cᵀ,y ≥ 0
fur jeden Vektor c ∈ Zn, fur den das Minimum angenommen wird, eine Optimallosung y ∈ Zn
besitzt.
Total unimodulare Integritat impliziert Ganzzahligkeit des primal zulassigen 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 Chvatal-Gomory-Abschluss 28
Beweis. Sei c ∈ Zn, so dass maxcᵀx : Ax ≤ b angenommen wird. Nach Dualitatssatz gilt nun
maxcᵀx : Ax ≤ b = minbᵀ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 Ungleichun-
gen beschrieben werden kann, das TDI ist. Um ein solches System zu finden, braucht man nur fur
jede minimale Seite F = x ∈ P : AIx = 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 Ma-
trix A.
2.3.3 Chvatal-Gomory-Abschluss
Definition 2.3.7 Sei P ein Polyeder. Wir definieren
P0 = P
P1 = x ∈ Rn : cᵀx ≤ bγc, fur alle Stutzhyperebenen x ∈ Rn : cᵀx = γ von P mit c ∈ Zn.
P1 heißt der Chvatal-Gomory-Abschluss (engl.: Chvatal-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 Stutzhyperebene nehmen
konnen, gilt
P1 ⊆ x ∈ Rn : Ax ≤ bbc.
Sei nun x ∈ Rn : cᵀx = γ eine Stutzhyperebene von P mit P ⊆ x ∈ Rn : cᵀx ≤ γ und c ∈ Zn,
γ ∈ Q. Dualitat der linearen Optimierung ergibt
γ = maxcᵀx : Ax ≤ b,x ∈ Rn = minyᵀb : yᵀA = cᵀ,y ≥ 0.
Da Ax ≤ b TDI ist, existiert eine ganzzahlige optimale Losung y∗ von
minyᵀb : yᵀA = cᵀ,y ≥ 0.
Kapitel 2. Ganzzahlige Optimierung 29
Falls x das System Ax ≤ bbc erfullt, 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 ⊆⋂c,γ
x ∈ Rn : cᵀx ≤ bγc = P1,
wobei der Durchschnitt uber all jene Stutzhyperebenen x ∈ Rn : cᵀx = γ gebildet, wird fur die
c ∈ Zn und P ⊆ x ∈ Rn : cᵀx ≤ γ gilt.
Da P1 wieder ein Polyeder ist, konnen wir den Prozess iterieren.
Definition 2.3.9 Sei P ein rationales Polyeder. Fur 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 naturliche Zahl t ∈ Z+, so dass
Pt = PI .
Diese endliche Zahl wird auch der Chvatal-Gomory-Rang von P genannt.
Zusammenfassend kann man fur rationale Polyeder P das Auffinden einer linearen Ungleichungs-
beschreibung fur PI wie folgt beschreiben:
• Sei Ax ≤ b eine Ungleichungsbeschreibung fur P .
• Berechne eine TDI-Beschreibung Dx ≤ d fur 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 30
2.4 Schnittebenen-Verfahren
Wir betrachten das ganzzahlige Optimierungsproblem
maxcᵀ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 beschrankt ist und dass A Zeilenrang n hat. (P sei also ein
spitzes Polytop.)
Definition 2.4.1 Fur 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 Losung x∗ von maxcᵀx : Ax ≤ b,x ∈ Zn
1. Sei t := 0, b0 := b, A0 := A, P0 := x ∈ Rn : A0x ≤ b0.
2. Lose lexmaxcᵀx : x ∈ Pt.
(a) Falls Pt = ∅, dann ist das IP nicht losbar. STOP.
(b) Sonst, sei xt die eindeutige optimale Losung.
3. Falls xt ∈ Zn, return xt, STOP.
4. Sei I die Indexmenge der mit Gleichheit erfullten Ungleichungen, aᵀi x∗ = bi, i ∈ I.
5. Sei Ht = h1, . . . ,hk eine Hilbertbasis des Normalenkegels
C :=
x ∈ Rn : x =
∑i∈I
yiai, yi ≥ 0, 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 Unglei-
chungen: [At
Ht
]x ≤
[bt
(bhᵀ1xtc, . . . , bhᵀ
kxtc)ᵀ
].
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 Losung der LP-Relaxierung ist x∗ =(15/1025/10
). Die Ungleichungen−4x1+6x2 ≤ 9, x1+x2 ≤
4 sind mit Gleichheit erfullt. Der Normalenkegel an x∗ ist
C = (d1, d2)ᵀ = (−4y1 + y2, 6y1 + y2)ᵀ, y1, y2 ≥ 0
= (d1, d2)ᵀ : −d1 + d2 ≥ 0, 3d1 + 2d2 ≥ 0 ≥ 0.
Die Hilbertbasis von C ist H =(
01
),(−1
2
),(−2
3
),(11
). Die zugehorigen Ungleichungen hᵀx ≤
bhᵀx∗c sind
x2 ≤ 2, −x1 + 2x2 ≤ 3, −2x1 + 3x2 ≤ 4, x1 + x2 ≤ 4.
Fugen wir diese Ungleichungen zum Problem hinzu und losen das neue LP, erhalten wir die optimale
IP-Losung(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 Schrit-
ten.
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 R-
Schnitt eigentlich.
Notation. Fur α ∈ R sei 〈α〉 := α− bαc ∈ [0, 1).
Satz 2.5.2 Seien x∗ eine Basislosung der LP-Aufgabe maxcᵀx : Ax ≤ b, B eine zugehorige
Basis, N := [d] \B und v ∈ Zn. Ferner seien
y∗ ∈ Rd, y∗B :=⟨(A−1B )ᵀv
⟩, y∗N := 0, q∗ := Aᵀy∗.
Dann gilt
q∗ = v −AᵀB
⌊(A−1B )ᵀv
⌋∈ NP (B) ∩ Zn.
Die Ungleichung
(q∗)ᵀx ≤ b(q∗)ᵀx∗c
ist ein Rundungsschnitt und es gilt 〈(q∗)ᵀx〉 = 〈vᵀx∗〉. 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−1B bB = (y∗)ᵀb.
y erzeugt also den R-Schnitt
(q∗)ᵀx ≤ b(q∗)ᵀx∗c.
Ferner ist q∗ = Aᵀy∗ = AᵀBy∗B ∈ NP (B) sowie
q∗ = AᵀBy∗B = Aᵀ
B
((A−1B
)ᵀv −
⌊(A−1B
)ᵀv⌋)
= v −AᵀB
⌊(A−1B
)v⌋∈ Zn.
Da⌊vᵀA−1B
⌋bB ganzzahlig ist, gilt weiter
〈(q∗)ᵀx∗〉 =⟨(
v −AᵀB
⌊(A−1B
)ᵀv⌋)ᵀ
x∗⟩
=⟨vᵀx∗ −
⌊vᵀA−1B
⌋ABx∗
⟩=
⟨vᵀx∗ −
⌊vᵀA−1B
⌋bB⟩
= 〈vᵀx∗〉
Der Schnitt erhalt 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 Basislosung der LP-Aufgabe
maxcᵀx : Ax ≤ b, B eine zugehorige optimale Basis, N := [d] \ B und v ∈ Zn mit vᵀx∗ 6∈ Z.
Ferner seien y∗ definiert durch
y∗B :=⟨(A−1B )ᵀv
⟩, y∗N := 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 Basislosung
der LP-Aufgabe maxcᵀx : Ax ≤ b, B eine zugehorige 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−1B cAB(x∗ − x).
Ist v = ei, so gilt insbesondere
xi −⌊eᵀiA−1B
⌋ABx ≤ bxic −
⌊eiA
−1B
⌋bB .
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 Basislosung x∗ mit zugehoriger
Basis B von lexmaxcᵀx : Ax ≤ b
Output: Meldung “P ∩ Zn = ∅” oder eine optimale Losung von maxcᵀx : x ∈ P ∩ Zn
1. Ist x∗ ∈ Zn, gib x∗ als Optimallosung zuruck. STOP.
2. Ist cᵀx∗ 6∈ Z, setze v := c. Ansonsten setze v := ei fur ein minimales i ∈ [n] mit xi 6∈ Z.
3. q sei der Normalenvektor des Gomory-Schnittes zu u.
4. Setze
A :=
(A
qᵀ
), b :=
(b
bqᵀx∗c
).
5. P := x : Ax ≤ b
6. Ist P = ∅, melde “P ∩ Zn = ∅”. STOP.
7. Anonsten seien x∗ optimale Basislosung von lexmaxcᵀx : Ax ≤ b und B zugehorige Basis.
8. Springe zu 1.
Satz 2.5.4 Seien A ∈ Zd×n, b ∈ Zd, c ∈ Zn und P := x : Ax ≤ b beschrankt. Dann lost der
Gomory-Schnittebenen-Algorithmus das Problem
maxcᵀx : Ax ≤ b,x ∈ Zn
in endlich vielen Schritten.
2.6 Branch-and-Bound Algorithmus
Beginnen wir mit einem motivierenden Beispiel fur die Losung eines linearen ganzzahligen Opti-
mierungsproblems mittels des Branch-and-Bound Algorithmus.
Beispiel. Wir mochten das Problem
c∗ = max−x1 + 2x2 : −4x1 + 6x2 ≤ 9, x1 + x2 ≤ 4, x1, x2 ∈ Z+
losen. Die optimale Losung der LP-Relaxierung ist x0 =(3/25/2
). Wir teilen nun unser Originalpro-
blem mittels der Ungleichungen x2 ≥ 3 und x2 ≤ 2 in zwei neue (disjunkte) Teilprobleme F1 und
F2. Unsere gesuchte Optimallosung des Originalproblems ist nun die bessere der Optimallosungen
von F1 und F2.
2.6. Branch-and-Bound Algorithmus 34
max cᵀ x0 max cᵀ x0 max cᵀ x0
Die lineare Relaxierung von F1 hat einen leeren Losungsbereich. Wir konnen daher dieses Teilpro-
blem verwerfen.
Die lineare Relaxierung von F2 hat als optimale Losung x2 =(3/42
). Wir teilen daher F2 mittels
der Ungleichungen x1 ≥ 1 und x1 ≤ 0 weiter in zwei neue (disjunkte) Teilprobleme F3 und F4.
Die optimale Losung der LP-Relaxierung von F3 ist x3 =(12
)∈ Z2. Damit haben wir eine obere
Schranke fur unser originales Minimierungsproblem gefunden. Damit ist c∗ ≥ 3.
Die optimale Losung der LP-Relaxierung von F4 ist x4 =(
03/2
). Ihr Zielfunktionswert ist 3. Damit
hat eine optimale ganzzahlige Losung von F4 auch hochstens den Zielfunktionswert 3. Da wir bereits
eine ganzzahlige Losung mit Zielfunktionswert 3 kennen, brauchen wir F4 nicht weiter betrachten.
Die Liste der noch zu betrachtenden Teilprobleme ist nun leer. Unser IP hat als Optimallosung
x∗ = x3 =(12
).
Betrachten wir also das Problem
maxcᵀx : x ∈ F
wobei wir annehmen, dass F = x ∈ Zn : Ax ≤ b. Wir unterteilen F in eine Anzahl von
Teilmengen F1, . . . , Fk und losen die Teilprobleme
maxcᵀx : x ∈ Fi, i = 1, . . . , k,
und vergleichen die Optimallosungen, um die Optimallosung des Originalproblems zu finden. Wenn
notig, werden die Teilprobleme iterativ weiter unterteilt. Zu jedem Zeitpunkt haben wir also eine
Liste aktiver Teilprobleme, die noch zu losen sind.
Wir nehmen weiterhin an, dass wir fur einen effizienten Algorithmus kennen, der fur jedes Teil-
problem Fi eine obere Schranke u(Fi) fur den optimalen Zielfunktionswert des Teilproblems Fi
Kapitel 2. Ganzzahlige Optimierung 35
berechnet, d.h.,
maxcᵀx : x ∈ Fi ≤ u(Fi).
Von Zeit zu Zeit werden in Teilproblemen zulassige Losungen generiert, die uns eine untere Schranke
L fur den gesuchten optimalen Zielfunktionswert liefern, d.h.,
maxcᵀx : x ∈ F ≥ L.
Sollte fur ein Teilproblem Fi gelten u(Fi) ≤ L, so gilt
maxcᵀx : x ∈ Fi ≤ u(Fi) ≤ L ≤ maxcᵀx : x ∈ F,
und damit braucht dieses Teilproblem nicht weiter untersucht zu werden, da in diesem Teilproblem
keine bessere Losung als die bisher beste bekannte Losung gefunden werden kann.
Damit lasst sich der Branch-and-Bound Algorithmus wie folgt beschreiben. Am Anfang setzen wir
L = − inf.
Branch-and-Bound Algorithmus.
1. Wahle ein aktives Teilproblem Fi.
2. Falls das Teilproblem nicht losbar ist, losche es; ansonsten berechne u(Fi).
3. Falls u(Fi) ≤ L, losche das Teilproblem.
4. Falls u(Fi) < L, berechne entweder eine optimale Losung des Teilproblems oder teile Fi in
weitere Teilprobleme, die zur Liste der aktiven Teilprobleme hinzugefugt werden.
Diese recht allgemeine Darstellung des Algorithmus enthalt einige freie “Parameter”, deren beste
Wahl erfahrungs- und problemabhangig sind.
(a) Es gibt verschiedene Moglichkeiten, das nachste aktive Teilproblem auszuwahlen. Zwei ex-
tremale Moglichkeiten 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 losbar.
Nun fugen wir zu F2 den Schnitt −x1 + x2 ≤ 1 hinzu. Die optimale Losung der LP-Relaxierung
ist nun(12
)∈ Z2 und wir brauchen das Teilproblem F2 nicht weiter zu teilen.