40
Diskrete Optimierung Vorlesungsskript SS 2010, TU M¨ unchen Prof. Dr. Raymond Hemmecke Version vom 11. Juli 2010

Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

  • Upload
    doxuyen

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

Diskrete Optimierung

Vorlesungsskript SS 2010, TU Munchen

Prof. Dr. Raymond Hemmecke

Version vom 11. Juli 2010

Page 2: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems
Page 3: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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

Page 4: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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

Page 5: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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

Page 6: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.

Page 7: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.

Page 8: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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

Page 9: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.

Page 10: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.

Page 11: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.

Page 12: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.

Page 13: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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

Page 14: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.

Page 15: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.

Page 16: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.

Page 17: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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).

Page 18: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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).

Page 19: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.

Page 20: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.

Page 21: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.

Page 22: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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

Page 23: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.

Page 24: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.

Page 25: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.

Page 26: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.

Page 27: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.

Page 28: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.

Page 29: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.

Page 30: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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

Page 31: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.

Page 32: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.

Page 33: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.

Page 34: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.

Page 35: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.

Page 36: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.

Page 37: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.

Page 38: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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

Page 39: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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+

Page 40: Diskrete Optimierung - Foswiki · 1.2. Was ist ein Algorithmus? 2 1.2 Was ist ein Algorithmus? De nition 1.2.1 Ein Algorithmus ist eine Anleitung zur schrittweisen L osung eines Problems

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.