Ganzzahlige Optimierung

Werbung
Ganzzahlige
Optimierung
Ganzzahlige Lineare Optimierung
Branch & Bound Verfahren
TABU-Suche
Genetische Algorithmen
Prof. Dr. Dr. J. Hansohm
Ganzzahlige Optimierung
Mit Mi seien f, gj: Mn 
(j=1,...,m)
(i=1,...,n)
min f(x)
u.d.N. gj (x) 0 (j=1,...,m)
xi Mi
a) Sind alle Mi = {0,1,...}: rein ganzzahliges Problem
b) Sind einige Mi = {r 0  r } und die anderen wie
unter a): gemischt ganzzahliges Problem
c) Sind alle Mi = {0,1}: binäres Optimierungsproblem
Prof. Dr. Dr. J. Hansohm
Anwendungsbeispiele
Produktionsproblem mit nichtteilbaren Gütern
 Versorgungsproblem mit Errichtung von
Zwischenlagern
 Fixkostenproblematik
 Stundenplanproblem
 Verschnittproblem, Knapsack-Problem
 Maschinenbelegung
 Reihenfolgeprobleme, Zuordnungsprobleme
 Ablaufplanung
 Rundreiseproblem, Tourenplanung
 Clusteranalyse

Prof. Dr. Dr. J. Hansohm
Ganzzahlige lineare Optimierung
max cTx
Ax  b
x0
xi ganzzahlig (= 0,1,2 ...)
(G)
Relaxation: Problem ohne Ganzzahligkeitsbedingung (R)
Satz: Ist Lösung von (R) ganzzahlig, so auch diese
auch Lösung von (G). Hat (R) keine Lösung, hat auch
(G) keine Lösung
Lösung von (R) mit anschließender Rundung i.a. nicht
Lösung von (G)
Wenn A, b ganzzahlig, so ist u.U. Lösung von (R)
ganzzahlig (bei unimodalen Problemen)
Prof. Dr. Dr. J. Hansohm
Ganzzahlige lineare Optimierung - Gomory (1)
1) Löse die Relaxation (R) des ganzzahligen
Problems (G)
 Lösung ganzzahlig, optimale Lösung
gefunden
 keine Lösung, Problem (G) nicht lösbar
2) Führe zusätzliche Restriktion ein, die die
relaxierte Lösung verletzt aber keine zulässige
Lösung von (G)
3) Löse das erweiterte Problem; d.h. Fortsetzung
mit Schritt 1
Alternative Bezeichnung: Schnittebenenverfahren
Prof. Dr. Dr. J. Hansohm
Ganzzahlige lineare Optimierung - Gomory (2)
x2
optimale Lösung
(2, 3) mit z = 13
5
4
3
2
1
max 2x1 + 3x2
x1 + 2x2  8
2x1 + x2 9
x1, x2 {0, 1,...}
relaxierte Lösung (3 1/3, 2 1/3) mit z = 13 2/3
gerunde Lösung (3, 2) mit z = 12
1 2 3
4
5
x1
Prof. Dr. Dr. J. Hansohm
Ganzzahlige lineare Optimierung - Gomory (3)
Im optimalen Tableau sei Lösung
xi = bi - jaijwj mit wj ganzzahlig, bi nicht ganzzahlig
Sei bi = [bi] + fi, aij = [aij] + rij ([a] = max {i = ganzzahlig, i a})
 fi - jrijwj = xi - [bi] + j[aij]wj ganzzahlig
 fi - jrijwj fi < 1  fi - jrijwj 0
 Schlupfvariable jrijwj - fi = Si  0
wegen wj = 0 (Nichtbasis) ist Si = -fi nicht zulässig
 aktuelle Lösung wird abgeschnitten, ganzzahlige zulässige
Lösungen bleiben erhalten
 neues Problem durch Hinzufügen von -jrijwj + Si = -fi und der
Variablen Si
Iterationsvorgang bis Lösung ganzzahlig oder LP nicht lösbar
Prof. Dr. Dr. J. Hansohm
Ganzzahlige lineare Optimierung - Gomory (4)
Probleme:
Problem immer komplexer, ev. bis zu n + m
neue Schnitte im Tableau (n = Anzahl variabler,
m = Anzahl Nebenbedingungen)
 Aus Effizienzgründen nur dualer SimplexAlgorithmus sinnvoll
 Rundungsfehler durch die komplexeren
Tableaus
 Lösung bleibt nicht zulässig (für das ganzzahlige
Problem) bis optimale Lösung gefunden
 Im allgemeinen nur sehr kleine Schritte; deshalb
viele Iterationen notwendig

Prof. Dr. Dr. J. Hansohm
Literatur:

Neumann/Morlock: Operations Research
München 1993, Hanser-Verlag, Kapitel 3
Abschnitt 3.1.3. Seite 386 ff
Prof. Dr. Dr. J. Hansohm
Knapsack-Problem
(1)
Gegeben seien n Gegenstände, beschrieben durch
Gewicht gi und Wert wi (i=1,...,n). Welche Gegenstände
sollen in einen Rucksack mit dem maximalen Fassungsvermögen von einem Gesamtgewicht G, damit der Gesamtwert W der mitgenommenen Gegenstände möglichst
groß ist.
Mit
xi {0,1}
und xi = 0, wenn der Gegenstand i nicht im Rucksack
und xi =1, wenn der Gegenstand i im Rucksack
folgt:
max W = iwixi
igixi G
Binäres lineares Optimierungsproblem
Prof. Dr. Dr. J. Hansohm
Knapsack-Problem
(2)
Betriebswirtschaftliche Anwendungen
 Investitionsentscheidungen bei sich nicht
ausschließenden Investitionsalternativen und
einem max. Budget. Der Wert der
Investitionsalternative i entspricht dem
Kapitalwert.
 Verschnittproblem. Ein Stab mit einer
Gesamtlänge G ist so in Teile der Länge gi zu
zerschneiden, daß der Gesamtwert der Teile
möglichst groß wird.
 Viele Auswahlprobleme lassen sich auf
Knapsack-Probleme zurückführen
Prof. Dr. Dr. J. Hansohm
Knapsack-Problem - Beispiel
Gewichtslimit G = 37
Gegenstände
A
Wert
8
Gewicht
8
B
7
12
C
14
16
D
11
17
E
16
21
max 8x1 + 7x2 + 14x3 + 11x4 + 16x5 (=W)
8x1 + 12x2 + 16x3 + 17x4 + 21x5 37
xi {0,1}
Optimale Lösung: x1 = x2 = x4 = 0, x3 = x5 = 1, W = 30
(Gegenstände C, E in Rucksack und Gesamtgewicht 37)
Prof. Dr. Dr. J. Hansohm
Greedy-Algorithmus
a) Starte mit einer beliebigen zulässigen Lösung
b) Wähle unter den möglichen Alternative die jeweils beste
und wiederhole b) solange noch eine mögliche Alternative
vorhanden ist.
Beispiel:
Ausgangslösung: leerer Rucksack
Einfüllen des Gegenstands mit höchstem Wert
E, C = optimale Lösung
(nicht immer: wi = 10, 10, 11 und gi = 9, 9, 12 bis G = 20)
Einfüllen des Gegenstands mit dem höchsten spezifischen
Wert
Reihenfolge: A, C, E, D, B A, C, B mit W = 29 und
Gesamtgewicht = 36
Prof. Dr. Dr. J. Hansohm
Vollständige Enumeration
Jede der 2n Möglichkeiten, xi = 0 oder = 1 zu setzen wird
überprüft (i=1,...,n). Die beste zulässige ist die
Optimallösung.
Bei Problemen praktischer Größenordnung nicht rechenbar
aufgrund der exponentiellen Steigerung.
Methode, gewisse Möglichkeiten im Laufe der
Enumeration auszuschließen, sei es,
daß der bisher gefundene Zielfunktionswert durch
diese Möglichkeiten nicht verbessert werden kann
oder daß diese Möglichkeiten alle auf unzulässige
Lösungen führen, führt zu den
 Branch & Bound-Verfahren
Prof. Dr. Dr. J. Hansohm
Backtracking
Sub Durchsuche(I as Integer)
If I <= GesamtAnzahl Then
‘packe Teil Nr. I in den Rucksack
Durchsuche(I+1)
‘packe Teil Nr. I aus dem Rucksack wieder aus
Durchsuche(I+1)
End If
End Sub
Leer
Durchsuche(1)
Nr. 1 drin
Leer
Durchsuche(2)
Durchsuche(2)
Prof. Dr. Dr. J. Hansohm
Knapsack-Baum
Prof. Dr. Dr. J. Hansohm
Branch & Bound
Ermitteln einer zulässigen Lösung (z.B. durch
Heuristik)
 Zerlegung in Teilprobleme, generieren des Baumes
 Ermittlung des Bound
 Durchlaufen des Baumes unter Abschneiden
(Branch) von Teilbäumen aufgrund des Bound und
gegebenenfalls Anpassen des Baumes
 Boundermittlung durch Relaxation und bisher gefundener Lösung
 Teilproblemgenerierung (problemspezifisch)
 Verzweigungsregeln (Backtracking, breath first
search)

Prof. Dr. Dr. J. Hansohm
Durchlauf: Branch & Bound Verfahren
Prof. Dr. Dr. J. Hansohm
Literatur:
Neumann/Morlock: Operations Research
München 1993, Hanser-Verlag, Kapitel 3
Abschnitt 3.3. Seite 406 - 422
 Domschke/Drexl: Einführung in Operations
Research 3. erw. verb. Auflage, SpringerVerlag 1995, Kapitel 6 Abschnitt 6.5.
Seiten 120-126

Prof. Dr. Dr. J. Hansohm
Tabu - Suche (1)
Idee: Bei der iterativen Lösungssuche auch Lösungen
zulassen, die die Zielfunktion verschlechtern
(Überwindung lokaler Optima), eine bisher schon
gefundene Lösung aber durch sogenannte TabuListen verbieten (Verhinderung des Kreisens)
Bezeichnungen:
f : X  , gesucht s* mit f(s*)=
min {f(s) s  X}
Übergang von s zu s' durch Modifikation m : s' = m(s)
Nachbarschaft N(s) = {s' = m(s)  m ist
akzeptable Modifikation}
Prof. Dr. Dr. J. Hansohm
Tabu-Suche (2)
Start : s  X (zulässige Lösung, T = {s}, s* = s)
generiere V N (s) - T
wähle s' mit f(s') = min { f(r)  r  V }
aktualisiere T (z.B. T = T  {s')}
J
f (s') < f (s*) ?
N
s* = s'
s = s'
wiederhole bis Abbruchkriterium erfüllt (z.B. V = 
Prof. Dr. Dr. J. Hansohm
Tabu-Suche Beispiel (1)
6 1
18
9 3
2 2
0
4
8
5
6
7
Gesucht: Minimal aufspannender Baum
bzgl. der Bewertung
Zahlen in Kreisen = Kantennummer
12
Binäres Optimierungsproblem mit Binärvariablen x1, ..., x7
min 6x1 + 9x2 + 18x3 + 2x4 + 8x6+ 12x7
xi {0, 1}
{xi  xi = 1} bildet "spanning tree"
x1 + x2 + x6 1
zusätzliche Bedingungen
x1  x3
Prof. Dr. Dr. J. Hansohm
Tabu-Suche Beispiel (2)
Optimale Lösung ohne zusätzliche Bedingungen durch
Greedy Algorithmus
6
2
0
Zielwert = 16
zusätzliche Bedingungen verletzt
x1 + x2 + x6 - 1 = 1
x1 - x3 = 1
8
Berücksichtigung der zusätzlichen Bedingungen durch
Penalty-Funktionen
z = 6x1 + 9x2 + 18x3 + 2x4 + 8x6 + 12x7
+ 50 (x1 + x2 + x6 - 1)+ + 50 (x1 - x3)+
Prof. Dr. Dr. J. Hansohm
Tabu-Suche Beispiel (3)
Modifikation:
Wahl einer Variablen aus {xi xi = 0}
und setzen dieser Variablen auf 1.
Wahl einer Variablen aus {xi xi = 1
und xi bildet mit der auf 1 gesetzten
Variablen einen Zyklus }
und setzen dieser Variablen auf 0.
akzeptable Modifikationen:
Modifikationen, die zu
Lösungen führen, die
die zusätzlichen Bedingungen erfüllen.
Prof. Dr. Dr. J. Hansohm
Tabu-Suche Beispiel (4)
x2 = 1 x1 = 0 z = 19 + 50 =
x4 = 0 z = 23 + 150 =
x3 = 1 x1 = 0 z = 28 + 0 =
x4 = 0 z = 32 + 50 =
x5 = 0 z = 34 + 50 =
x7 = 1 x4 = 0 z = 26 + 100 =
x5 = 0 z = 28 + 100 =
x6 = 0 z = 20 + 50 =
69
173
28*
82
84
126
128
70
18
2
0
8
Tabuliste T = {(1, 0, 0, 1, 1, 1, 0), (0, 0, 1, 1, 1, 1, 0)}
Prof. Dr. Dr. J. Hansohm
Tabu-Suche Beispiel (5)
x1 = 1 x3 = 0 z = 16 + 100 = 116 TABU
x4 = 0 z = 32 + 50 = 82
x5 = 0 z = 34 + 50 = 84
2
x2 = 1 x3 = 0 z = 19 + 50 = 69
x5 = 0 z = 37 + 50 = 87
x7 = 1 x4 = 0 z = 38 + 0 = 38
x5 = 0 z = 40 + 0 = 40
x6 = 0 z = 32 + 0 = 32*
18
0
12
Tabuliste:
T = {(1,0,0,1,1,1,0), (0,0,1,1,1,1,0),(0,0,1,1,1,0,1)}
Prof. Dr. Dr. J. Hansohm
Tabu-Suche Beispiel (6)
x1 = 1 x3 = 0
x4 = 0
x5 = 0
x2 = 1 x3 = 0
x5 = 0
x6 = 1 x4 = 0
x5 = 0
x7 = 0
z = 20 + 50 = 70
z = 36 + 0 = 36
z = 38 + 0 = 38
z = 23 + 0 = 23*
z = 41 + 0 = 41
z = 38 + 0 = 38
z = 40 + 0 = 40
z = 28 + 0 = 28 TABU
9
2
0
12
Tabuliste:
T = {(1,0,0,1,1,1,0), (0,0,1,1,1,1,0),(0,0,1,1,1,0,1),
(0,1,0,1,1,0,1)}
Prof. Dr. Dr. J. Hansohm
Tabu-Suche Beispiel (7)
x1 = 1 x2 = 0 z = 20 + 50 = 70*
x4 = 0 z = 27 + 50 = 77*
x3 = 1 x2 = 0 z = 32 + 0 = 32 TABU
x5 = 0 z = 41 + 0 = 41 unsinnig, da keine 0-Kante
x6 = 1 x4 = 0 z = 29 + 50 = 79*
x5 = 0 z = 31 + 50 = 81*
x7 = 0 z = 19 + 50 = 69*
*) unzulässige (nicht akzeptable) Modifikation
Prof. Dr. Dr. J. Hansohm
Tabu-Suche Probleme, Modifikationen




Vollständige Tabuliste benötigt viel Speicherplatz
Liste der letzten n Lösungen verhindert u.U. nicht das
Kreisen
min {f(r)  r V  N(s)-T} i.a. kein einfaches Problem
Abhilfe durch Tabubedingungen (z.B. gewählte
Verbindung darf nicht wieder entfernt werden)


kann sinnvolle Lösungen verbieten bevor sie
untersucht wurde
letzteres wird abgemildert durch Einführung
eines sogenannten "Aspiration level" zur
Aufhebung das Tabustatus
Prof. Dr. Dr. J. Hansohm
Literatur:

Domschke/Drexl: Einführung in Operations
Research 3. erw. verb. Auflage, SpringerVerlag 1995, Kapitel 6 Seiten 119/120
Prof. Dr. Dr. J. Hansohm
Genetische Algorithmen
Versuch, die Evolutionsstrategie zur Problemlösung
einzusetzen
a) Generierung verschiedener "Lösungen" (Population),
dargestellt durch einen Informationsvektor
b) Bewertung jedes Individuums der Population durch eine
Bewertungsfunktion und/oder Fitnessfunktion
c) Selektiere Paare (oder größere Gruppen) per Heiratschema
und erzeuge mittels Rekombination der
Informationsvektoren (crossover) Nachkommen
d) Mutiere die Nachkommen durch Veränderung des
Informationsvektors (Mutation)
e) Ersetze Individuen der aktuellen Generation durch die
Nachkommen gemäß Ersetzungsschema und erzeuge so
eine neue Generation
f) Falls Abbruchbedingungen noch nicht erfüllt, fahre mit
Schritt b) fort
Prof. Dr. Dr. J. Hansohm
Genetische Algorithmen - Fragestellungen
Codierungsproblem des Informationsvektors
Bewertung: Güte bzgl. des Problems
Fitness: Güte bzgl. Nachkommenerzeugung
Heiratsschema: Wer darf wieviel Nachkommen mit
wem erzeugen?
Crossover: Nachkomme möglichst besser als Eltern
Mutation: Verhinderung von zu verengter Population
Ersetzungsschema: Nur Nachkommen?, Nur die
besten?
Abbruchbedingung: Anzahl Generationen,
Lösungsgüte
Prof. Dr. Dr. J. Hansohm
Genetische Algorithmen - Ersetzungsschema
Generational Replacement: Population komplett ersetzt durch
Nachkommen
Elitismus: beste in der Population unverändert übernommen
schwacher Elitismus: Elitismus mit Mutation
delete-m: m zufällige Elemente der Population ersetzt durch
Nachkommen
delete-m mit Elitismus: delete-m, wobei die Elite ausgenommen ist
Ersetzungsschemata mit „Altersheim“ und „Kindergarten“
„Altersheim“: Teil der zu ersetzenden Elemente in einem extra
Pool
„Kindergarten“: Teil der nicht in die Population aufgenommenen Elemente in einen extra Pool
Extra Pool wird mit mutiert („Kindergarten“) oder reproduziert
(„Altersheim“), gegebenenfalls Übernahme in die Population
Prof. Dr. Dr. J. Hansohm
Genetische Algorithmen - Knapsack (1)
Codierung: Binärvektor (x1, ..., xn) (n = Anzahl Elemente) mit
xi = 1, wenn Element i im Rucksack, sonst = 0
Bewertung: iwixi, wenn igixi  G, sonst = 0
Fitness:
Bewertung + (G - igixi) * min {wi/gi  i = 1, ..., n}
Heiratsschema: Roulette-Wheel: Wahrscheinlichkeit einer Heirat
= Fitness/Summe aller Fitness Werte
Crossover:
Eltern a und b, ganzzahlige Zufallszahl 1 j < n,
Nachkommen c und d mit
ci = ai (i j), = bi (i > j), di = bi (i  j), = ai (i > j)
Mutation:
ganzzahlige Zufallszahl 1  j n,
wenn vorher xi = 0, dann = 1, sonst = 0
Abbruchbedingung: Bewertung nah an relaxierter Lösung,
in der dritten Generation unverändert
Prof. Dr. Dr. J. Hansohm
Genetische Algorithmen - Knapsack (2)
Element
Wert
Gewicht
A
8
8
B
7
12
C
14
16
D
11
17
E
16
21
Population
I I 0 I 0 =a
I 0 I 00 =b
Bewertung (a) = 26, Gewicht (a) = 37, Fitness (a) = 26
Bewertung (b) = 22, Gewicht (b) = 24, Fitness (b) = 22 + 13 x 7/12 =29.58
crossover nach 2. Ziffer: Nachkommen I I I 0 0 = c
I 0 0 I 0=d
Bewertung (c) = 29, Gewicht (c) = 36, Fitness (c) = 29 7/12
Bewertung (d) = 19, Gewicht (d) = 25, Fitness (d) = 19 + 12 x 7/12 = 26
Übernahme der zwei fittesten aus {a, b, c, d} {b, c}
Folge: 5. Ziffer = 0 in der ganzen Population
Ohne Mutation E nie im Rucksack
Prof. Dr. Dr. J. Hansohm
Herunterladen