Einführung in Operations Research Modellierung Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 1 Optimierungsmodelle Allgemeines Optimierungsmodell: ▪ mindestens eine Menge von (Handlungs-) Alternativen bzw. Lösungen ausgedrückt durch Variablen, eingeschränkt durch Nebenbedingungen und allgemeine Parameter ("Buchstaben statt Zahlen") ▪ mindestens eine zu maximierende oder zu minimierende Zielfunktion ▪ unterteilbar in verschiedene Klassen in Abhängigkeit von der Art der verfügbaren Daten, der Eigenschaften und Anzahl der Zielfunktionen und der Struktur der Lösungsmenge Modellinstanz: ▪ Ausgestaltung eines allgemeinen Modells durch Vorgabe von Datenwerten für die Parameter ▪ Analoge Idee wie in der objektorientierten Programmierung (Klasse und Instanz) Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 2 Beispiel eines frühgeschichtlichen Optimierungsmodells Sieh, mein neues, verbessertes Rad! Es macht einen Hopser weniger pro Umdrehung. ▪ Variablen: Anzahl der Kanten bzw. Form des Rades ▪ Zielfunktion: Minimiere die Anzahl der Hopser pro Umdrehung ▪ Nebenbedingungen: Drehung des Rades muss möglich sein, mehr als zwei Kanten Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 3 Klassifikation von Optimierungsmodellen ▪ ▪ ▪ ▪ ▪ deterministisch – stochastisch einkriteriell – multikriteriell linear – ganzzahlig(-linear) – binär – nichtlinear – gemischt-ganzzahlig – ... polynomial lösbar – NP-schwer Deterministische einkriterielle Optimierungsmodelle ▪ deterministisch: Daten sind mit Sicherheit bekannt; daher fest definierte Lösungsmenge ▪ einkriteriell: eine optimale Lösung lässt sich anhand einer Zielfunktion eindeutig bewerten Deterministisches einkriterielles Optimierungsmodell Maximiere (oder Minimiere) F ( x ) unter den Nebenbedingungen gi ( x ) = 0 x W Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 4 für i = 1,..., m Klassifikation von Optimierungsmodellen Deterministisches einkriterielles Optimierungsmodell Maximiere (oder Minimiere) F ( x ) unter den Nebenbedingungen gi ( x ) = 0 für i = 1,..., m x W Legende: Variablenvektor mit n Komponenten (Lösung); x F ( x) Zielfunktion gi ( x ) Funktionen zur Beschreibung von Restriktionen W Wertebereiche der Variablen; Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 5 x = ( x1 , x2 ,..., xn ) W = W1 W2 ...Wn Klassifikation von Optimierungsmodellen Weitere Unterteilung: Verknüpfungen und Wertebereiche ▪ Lineares Optimierungsmodell (LP-Modell): F ( x ) und alle gi ( x ) linear; 𝑛 Variablen x1 , x2 ,..., xn reellwertig (und zumeist nichtnegativ, d.h. 𝑾 = ℝ≥0 ) ▪ Ganzzahliges lineares Optimierungsmodell: nur lineare Funktionen; Variablen auf ganzzahlige Werte beschränkt (d.h. 𝑾 = ℤ𝑛≥0 ) ▪ Gemischt-ganzzahliges lineares Optimierungsmodell: Ganzzahligkeit nur für einige Variablen ▪ (Gemischt-) binäres lineares Optimierungsmodell: alle bzw. einige Variablen dürfen nur die binären Werte 0 oder 1 annehmen ▪ Nichtlineares Optimierungsmodell: Zielfunktion(en) und/oder Restriktion(en) sind nichtlinear • Weitere Unterteilung: Lösungskomplexität ▪ polynomial lösbar ▪ NP-schwer Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 6 Beispiel: Produktionsprogrammplanung • • • • • In einer Stunde können 200 Tonnen Stahlblech oder 140 Tonnen Stahlcoils produziert werden. Der Deckungsbeitrag beträgt 25 € für eine Tonne Blech und 30 € für eine Tonne Coils. Es können wöchentlich max. 6000 Tonnen Blech und 4000 Tonnen Coils verkauft werden. Es stehen 40 Stunden Produktionszeit wöchentlich zur Verfügung. Wie lautet das Produktionsprogramm mit maximalem Deckungsbeitrag für eine Woche? Was sind hier die Entscheidungsvariablen, Restriktionen, Parameter, Zielfunktion? Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 7 Modellbildung Entscheidungsvariablen: Produktionsmengen pro Woche, Blech 𝑥𝐵, Coils 𝑥𝐶 Parameter: Produktionsmenge pro h (200 t Blech, 140 t Coils) Deckungsbeitrag (25 €/t Blech, 30 €/t Coils) maximale Nachfrage (6000 t Blech, 4000 t Coils) max. Produktionsdauer pro Woche (40 h) Restriktionen: Nicht mehr als die maximale Nachfrage produzieren: 𝑥𝐵 ≤ 6000 𝑥𝐶 ≤ 4000 Wöchentliche Produktionskapazität einhalten: 1 1 𝑥 + 𝑥 ≤ 40 200 𝐵 140 𝐶 Zielfunktion: Summe der Deckungsbeiträge maximieren: 𝑀𝑎𝑥𝑖𝑚𝑖𝑒𝑟𝑒 25𝑥𝐵 + 30𝑥𝐶 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 8 Mathematisches Modell Produktionsplanung als lineares Programm (LP): 𝑀𝑎𝑥𝑖𝑚𝑖𝑒𝑟𝑒 25𝑥𝐵 + 30𝑥𝐶 1 1 u.d.N. 𝑥𝐵 + 𝑥 ≤ 40 200 140 𝐶 Zielfunktion Kapazitätsbedingung 𝑥𝐵 ≤ 6000 max. Nachfrage Blech 𝑥𝐶 ≤ 4000 max. Nachfrage Coils 𝑥𝐵 , 𝑥𝐶 ≥ 0 Wie lautet ein allgemeines Modell für beliebig viele Produkte und beliebige Daten? Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 9 Beispiel: Produktionsprogrammplanung Kann man ein allgemeines Modell für beliebig viele Produkte und beliebige Daten aufstellen? Führe Mengen für Modellobjekte ein und benutze allgemeine Bezeichner für Parameter! Mengen: P = Menge der Produkte Parameter: aj = Anzahl Tonnen von Produkt j, die in einer Stunde produziert werden kann (für alle j P) b = die zur Verfügung stehende Anzahl von Produktionsstunden cj = Deckungsbeitrag des Produktes j (für alle j P) uj = Obergrenze der Produktion von Produkt j (für alle j P) Variablen: xj = Produktionsmenge von Produkt j in Tonnen (für alle j P) Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 10 Allgemeines Modell für einstufige Produktionsprogrammplanung 𝑥𝑗 ≥ 0 ∀𝑗 ∈ 𝑃 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 11 Beispiel eines etwas allgemeineren LPModells Standardansatz der mehrstufigen Produktionsprogrammplanung, gegeben: ▪ Herstellung von 𝑛 Produkten 𝑗 = 1, … , 𝑛 ▪ Absatzpreise j ; variable Herstellkosten k j ; Stück-Deckungsbeiträge db j = j − k j ▪ Bearbeitung auf 𝑚 verschiedenen Maschinen 𝑖 = 1, … , 𝑚 mit begrenzten Kapazitäten (Maschinenstunden) i ▪ Produktionskoeffizienten: Bearbeitung einer ME von Produkt 𝑗 auf Maschine 𝑖 benötigt a ij KE ▪ Absatzbeschränkung: maximale Absatzmengen B j ▪ Gesucht: Produktionsprogramm mit maximalem Gesamt-Deckungsbeitrag ▪ Zielsetzung: Maximierung des Gesamt-Deckungsbeitrages ▪ Variablen: Produktionsmengen der Produkte 𝑥𝑗 ≥ 0 ∀ 𝑗 = 1, … , 𝑛 ▪ Optimierungsmodell: linear, einkriteriell, deterministisch ▪ Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 12 Beispiel eines etwas allgemeineren LPModells Lineares Opt.-Modell: Prod.-Programmplanung Maximiere DB(x) = n j =1 db j x j unter den Nebenbedingungen n a x j i j =1 ij für i = 1,…,m x j Bj für j = 1,…,n xj 0 für j = 1,…,n Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 13 Beispiel einer LP-Modellinstanz • Daten der Entscheidungssituation: P1 P2 i Maschine Y (i=1) 1 1 100 Maschine Z (i=2) 1 2 160 Vorprodukt (i=3) 3 1 240 Stück-DB 6 3 80 70 aij max. Bedarfe bj Maximiere DB( x1 , x2 ) = 6 x1 + 3 x2 (1.8) unter den Nebenbedingungen x1 + x2 100 (1.9) x1 + 2 x2 160 (1.10) 3 x1 + x2 240 (1.11) x1 80, x2 70 (1.12) x1 , x2 0 Optimale Lösung: X* = (70,30) d.h. 70 ME von P1 und 30 ME von P2 DB* = 510 d.h. maximaler Gesamt-DB: 510 GE Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 14 Beispiel einer LP-Modellinstanz: graphische Optimierung 𝑥2 Maximiere 𝐷𝐵 𝑥1 , 𝑥2 = 6 𝑥1 + 3 𝑥2 (1.0) 150 u.d.N.: 𝑥1 + 𝑥2 ≤ 100 (1.1) 𝑥1 + 2 𝑥2 ≤ 160 (1.2) 3 𝑥1 + 𝑥2 ≤ 240 (1.3) 𝑥1 ≤ 80 (1.4) 𝑥2 ≤ 70 (1.5) 𝑥1 ≥ 0 (1.6) 𝑥2 ≥ 0 (1.7) 100 50 50 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 15 100 150 𝑥1 Beispiel einer LP-Modellinstanz: graphische Optimierung 𝑥2 Maximiere 𝐷𝐵 𝑥1 , 𝑥2 = 6 𝑥1 + 3 𝑥2 (1.0) 150 u.d.N.: 𝑥1 + 𝑥2 ≤ 100 (1.1) 𝑥1 + 2 𝑥2 ≤ 160 (1.2) 3 𝑥1 + 𝑥2 ≤ 240 (1.3) 𝑥1 ≤ 80 (1.4) 𝑥2 ≤ 70 (1.5) 𝑥1 ≥ 0 (1.6) 𝑥2 ≥ 0 (1.7) 100 50 50 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 16 100 150 𝑥1 Beispiel einer LP-Modellinstanz: graphische Optimierung 𝑥2 Maximiere 𝐷𝐵 𝑥1 , 𝑥2 = 6 𝑥1 + 3 𝑥2 (1.0) 150 u.d.N.: 𝑥1 + 𝑥2 ≤ 100 (1.1) 𝑥1 + 2 𝑥2 ≤ 160 (1.2) 3 𝑥1 + 𝑥2 ≤ 240 (1.3) 𝑥1 ≤ 80 (1.4) 𝑥2 ≤ 70 (1.5) 𝑥1 ≥ 0 (1.6) 𝑥2 ≥ 0 (1.7) 100 50 50 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 17 100 150 𝑥1 Beispiel einer LP-Modellinstanz: graphische Optimierung 𝑥2 Maximiere 𝐷𝐵 𝑥1 , 𝑥2 = 6 𝑥1 + 3 𝑥2 (1.0) 150 u.d.N.: 𝑥1 + 𝑥2 ≤ 100 (1.1) 𝑥1 + 2 𝑥2 ≤ 160 (1.2) 3 𝑥1 + 𝑥2 ≤ 240 (1.3) 𝑥1 ≤ 80 (1.4) 𝑥2 ≤ 70 (1.5) 𝑥1 ≥ 0 (1.6) 𝑥2 ≥ 0 (1.7) 100 50 50 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 18 100 150 𝑥1 Beispiel einer LP-Modellinstanz: graphische Optimierung 𝑥2 Maximiere 𝐷𝐵 𝑥1 , 𝑥2 = 6 𝑥1 + 3 𝑥2 (1.0) 150 u.d.N.: 𝑥1 + 𝑥2 ≤ 100 (1.1) 𝑥1 + 2 𝑥2 ≤ 160 (1.2) 3 𝑥1 + 𝑥2 ≤ 240 (1.3) 𝑥1 ≤ 80 (1.4) 𝑥2 ≤ 70 (1.5) 𝑥1 ≥ 0 (1.6) 𝑥2 ≥ 0 (1.7) 100 50 50 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 19 100 150 𝑥1 Beispiel einer LP-Modellinstanz: graphische Optimierung 𝑥2 Maximiere 𝐷𝐵 𝑥1 , 𝑥2 = 6 𝑥1 + 3 𝑥2 (1.0) 150 u.d.N.: 𝑥1 + 𝑥2 ≤ 100 (1.1) 𝑥1 + 2 𝑥2 ≤ 160 (1.2) 3 𝑥1 + 𝑥2 ≤ 240 (1.3) 𝑥1 ≤ 80 (1.4) 𝑥2 ≤ 70 (1.5) 𝑥1 ≥ 0 (1.6) 𝑥2 ≥ 0 (1.7) 100 50 50 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 20 100 150 𝑥1 Beispiel einer LP-Modellinstanz: graphische Optimierung 𝑥2 Maximiere 𝐷𝐵 𝑥1 , 𝑥2 = 6 𝑥1 + 3 𝑥2 (1.0) 150 u.d.N.: 𝑥1 + 𝑥2 ≤ 100 (1.1) 𝑥1 + 2 𝑥2 ≤ 160 (1.2) 3 𝑥1 + 𝑥2 ≤ 240 (1.3) 𝑥1 ≤ 80 (1.4) 𝑥2 ≤ 70 (1.5) 𝑥1 ≥ 0 (1.6) 𝑥2 ≥ 0 (1.7) 100 50 50 Iso-Linie Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 21 100 150 𝑥1 Beispiel einer LP-Modellinstanz: graphische Optimierung 𝑥2 Maximiere 𝐷𝐵 𝑥1 , 𝑥2 = 6 𝑥1 + 3 𝑥2 (1.0) 150 u.d.N.: 𝑥1 + 𝑥2 ≤ 100 (1.1) 𝑥1 + 2 𝑥2 ≤ 160 (1.2) 3 𝑥1 + 𝑥2 ≤ 240 (1.3) 𝑥1 ≤ 80 (1.4) 𝑥2 ≤ 70 (1.5) 𝑥1 ≥ 0 (1.6) 𝑥2 ≥ 0 (1.7) 100 50 50 100 Iso-Linie Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 22 150 𝑥1 Beispiel einer LP-Modellinstanz: graphische Optimierung 𝑥2 Maximiere 𝐷𝐵 𝑥1 , 𝑥2 = 6 𝑥1 + 3 𝑥2 (1.0) 150 u.d.N.: 𝑥1 + 𝑥2 ≤ 100 (1.1) 𝑥1 + 2 𝑥2 ≤ 160 (1.2) 3 𝑥1 + 𝑥2 ≤ 240 (1.3) 𝑥1 ≤ 80 (1.4) 𝑥2 ≤ 70 (1.5) 𝑥1 ≥ 0 (1.6) 𝑥2 ≥ 0 (1.7) 100 50 x* = (70,30) 30 50 100 70 𝐷𝐵 ∗ = 𝐷𝐵 𝑥 ∗ = 𝐷𝐵 70,30 = 6 ⋅ 70 + 3 ⋅ 30 = 510 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 23 Iso-Linie 150 𝑥1 Beispiel eines binären Optimierungsmodells Bin-Packing-Problem (Behälter-Problem): ▪ Es sollen Gegenstände in so wenige Behälter mit gegebener Kapazität gepackt werden wie möglich. • ▪ 𝑛 unterschiedliche Gegenstände 𝑗 = 1, . . , 𝑛: Gewichte 𝑔𝑗 ▪ Behältergröße 𝐵 1 , falls Gegenstand j in Behälter i gepackt wird ▪ (Binär-) Variablen 𝑥𝑖𝑗 mit 𝑥𝑖𝑗 = ቊ 0 , sonst ▪ (Binär-) Variablen 𝑦𝑖 mit 𝑦𝑖 = 1 , falls Behälter i benutzt wird; 0 sonst Modell des Bin-Packing-Problems Minimiere 𝑈(𝑥, 𝑦) =σ𝑛𝑖=1 𝑦𝑖 unter den Nebenbedingungen σ𝑛𝑗=1 𝑥𝑖𝑗 ⋅ 𝑔𝑗 ≤ 𝐵 ⋅ 𝑦𝑖 ∀ i = 1,…,n σ𝑛𝑖=1 𝑥𝑖𝑗 = 1 ∀ j = 1,…,n 𝑥𝑖𝑗 ∈ {0,1} ∀ i,j = 1,…,n 𝑦𝑖 ∈ {0,1} ∀ i = 1,…,n Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 24 Beispiel: Das eindimensionale Zuschnittproblem (Cutting-Stock Problem) Gegeben: ▪ Stahlblechrollen (Coils) der Breite r ▪ m Kundenbedarfe von bi Rollen der Breite wi Gesucht: Schnittplan, der Kundenbedarfe mit möglichst wenigen eingesetzten Coils erfüllt. r Schnittmuster: w1 w2 w3 Verschnitt Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 25 Das Zuschnittproblem als Bin Packing Problem Wie viele Bins (Coils) braucht man, um den Bedarf zu erfüllen? „Gesamtbreite“ der Kundenbedarfe = Triviale untere Schranke LB = Triviale obere Schranken ist σ𝑚 𝑖=1 𝑏𝑖 . Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 26 Eine (nicht so gute) IP-Modellierung als Bin Packing Problem Sei yj=1 wenn Bin j benutzt wird, sonst 0. xij gibt die Anzahl Rollen der Breite wi in Bin j an 𝐾 𝑀𝑖𝑛 𝑦𝑗 BIG M: „So groß wie nötig und so klein wie möglich“ hier: 𝑀 = 𝑟 (Bereite des Coils) 𝑗=1 𝑚 𝑢. 𝑑. 𝑁. 𝑤𝑖 𝑥𝑖𝑗 ≤ 𝑟 𝑦𝑗 ∀𝑗 = 1, … , 𝐾 𝑖=1 𝐾 𝑥𝑖𝑗 = 𝑏𝑖 ∀𝑖 = 1, … , 𝑚 𝑗=1 𝑦𝑗 ∈ 0,1 ∀𝑗 = 1, … , 𝐾 𝑥𝑖𝑗 ∈ ℕ0 ∀𝑖 = 1, … , 𝑚 ; 𝑗 = 1, … , 𝐾 Warum ist dieses Modell nicht so gut? Weil die LP-Relaxation nur die triviale untere Schranke liefert! Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 27 Was ist ein gutes Modell? ▪ ▪ ▪ ▪ i. ii. Es gibt viele verschiedene Arten, ein und dasselbe Problem zu modellieren. Manche Modelle sind besser als andere. Ein Modell sollte sich möglichst gut mit Standardwerkzeugen lösen lassen. Konkret bedeutet das: Ein kontinuierliches LP-Modell ist besser als ein ganzzahliges Modell. Das Modell sollte möglichst linear sein. • Die Zielfunktion und alle Nebenbedingungen sollten nur aus linearen Termen bestehen. iii. Für LP-Modelle: • • Je kleiner, desto besser. Möglichst wenige Variablen und Nebenbedingungen. iv. Für ganzzahlige Modelle: • • v. Die LP-Relaxation sollte möglichst scharf sein. Wenn man ein ganzzahliges Modell als LP-Modell löst, sollte die optimale LP-Lösung der optimalen ganzzahligen Lösung möglichst ähnlich sein. Beachte numerische Stabilität. • Vorsicht, wenn das Modell sehr große Zahlen und / oder Zahlen mit vielen Nachkommastellen enthält. Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 28 Alternatives Modell für das Zuschnittproblem Modellierungsidee: Zähle alle n möglichen Schnittmuster auf und ordne jedem Schnittmuster j eine Entscheidungsvariable xj zu, die aussagt, wie viele Coils nach diesem Schnittmuster geschnitten werden sollen. Beispiel: Breite der Coils 100 cm Kundenbedarfe: 97 R o llen d er B reit e 45cm 610 R ollen d er B reit e 36cm 395 R ollen d er B reit e 31cm 211 R ollen d er B reit e 14cm (w 1 = 45; b1 = 97) (w 2 = 36; b2 = 610) (w 3 = 31; b3 = 395) (w 4 = 14; b4 = 211) Mögliche Schnittmuster: j a1j a2j a3j a4j 1 2 0 0 0 2 1 1 0 1 3 1 1 0 0 4 1 0 1 1 5 1 0 1 0 6 1 0 0 3 7 1 0 0 2 8 1 0 0 1 9 1 0 0 0 10 0 2 0 2 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 29 … … … … … n = 37 0 aij : Anzahl Streifen der 0 Breite wi in Schnittmuster j 0 (vgl. Chvatal S. 197) 1 Alternatives Modell für das Zuschnittproblem 𝑛 (minimiere Anzahl Coils) 𝑀𝑖𝑛𝑖𝑚𝑖𝑒𝑟𝑒 𝑥𝑗 𝑗=1 𝑛 𝑢. 𝑑. 𝑁. 𝑎𝑖𝑗 𝑥𝑗 = 𝑏𝑖 ∀𝑖 = 1,2, … 𝑚 (erfülle Kundenbedarfe) 𝑗=1 𝑥𝑗 ∈ ℕ0 ∀𝑗 = 1,2, … , 𝑛 ▪ ▪ Vorteil des Modells: ▪ Die LP-Relaxation ist viel schärfer. Nachteil des Modells: ▪ Es können astronomisch viele Schnittmuster und damit Variablen entstehen ➔ Es ist aber möglich, neue Schnittmuster dynamisch während der Lösungsfindung zu generieren (sog. Column Generation, vgl. Mastervorlesung) Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 30 Fixkostenprobleme Beispiel: Warehouse Location-Problem ▪ Entscheidung über Einrichtung von Auslieferungslagern an potentiellen Standorten i=1,...,m mit maximaler Umschlagkapazität 𝑎𝑖 (ME pro Periode) ▪ Kunden j=1,...,n mit Bedarfen von 𝑏𝑗 ME pro Periode ▪ Errichtung, Betrieb und Belieferung eines Lagers am Standort i: fixe Kosten von 𝑐𝑖 GE pro Periode ▪ Belieferung eines Kunden j vom Lager i kostet 𝑑𝑖𝑗 GE pro ME ▪ Zielsetzung: Minimierung der Gesamtkosten pro Periode • • Variablen: xij yi Transportmenge von Lager i zu Kunde j Lagerwahl mit 1 falls an Standort i ein Lager eingerichtet wird yi = 0 sonst Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 31 Fixkostenprobleme Warehouse Location-Problem Minimiere F(x,y) = i =1 ci yi + i =1 j =1 dij xij m m n unter den Nebenbedingungen 𝒏 𝒙𝒊𝒋 ≤ 𝒂𝒊 ⋅ 𝒚𝒊 𝒋=𝟏 𝒎 𝒙𝒊𝒋 = 𝒃𝒋 ∀ 𝑖 = 1, … , 𝑚 ∀𝑗 = 1, … , 𝑛 𝒊=𝟏 𝒙𝒊𝒋 ≥ 𝟎 ∀𝑖 = 1, … , 𝑚; 𝑗 = 1, … , 𝑛 𝒚𝒊 ∈ 𝟎, 𝟏 ∀ 𝑖 = 1, … , 𝑚 Weiteres Beispiel: ▪ Losgrößenplanung: Wagner-Whitin-Modell Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 32 Fixkostenprobleme Unkapazitiertes Warehouse Location-Problem Minimiere F(x,y) = i =1 ci yi + i =1 j =1 dij xij m m n unter den Nebenbedingungen 𝒏 𝒙𝒊𝒋 ≤ 𝑴 ⋅ 𝒚𝒊 𝒋=𝟏 𝒎 𝒙𝒊𝒋 = 𝒃𝒋 ∀ 𝑖 = 1, … , 𝑚 ∀𝑗 = 1, … , 𝑛 𝒊=𝟏 𝒙𝒊𝒋 ≥ 𝟎 ∀𝑖 = 1, … , 𝑚; 𝑗 = 1, … , 𝑛 𝒚𝒊 ∈ 𝟎, 𝟏 ∀ 𝑖 = 1, … , 𝑚 Problematik der Big M Formulierung: ▪ M so wählen, dass… ▪ ▪ …keine Lösungen aufgrund von M ausgeschlossen werden („so groß wie nötig“). …das Modell numerisch stabil ist („so klein wie möglich“). Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 33 Modellierungstechniken und –tricks Implikationen und ">"-Bedingungen • Wenn Produkt A gefertigt wird, dann muss auch Produkt B gefertigt werden: x A 0 xB 0 • • • Weitere Anwendungsbeispiele für Implikationen: ▪ Nur wenn Maschine X angeschafft wird, kann Produkt A hergestellt werden. ▪ Fixkostenproblem ist Spezialfall: Nur wenn Standort geöffnet ist, kann er liefern. ▪ Wenn Einkommen > Existenzminimum, dann Steuer > 0. Abhilfe Einführung einer Binärvariable 𝑦 ∈ {0; 1} xA M y 𝑥𝐴 > 0 ⇒ 𝑦 = 1 𝑥𝐴 = 0 ⇒ 𝑦 ∈ {0; 1} xB y 𝑦 = 1 ⇒ 𝑥𝐵 ≥ 𝜀 ⇒ 𝑥𝐵 > 0 𝑦 = 0 ⇒ 𝑥𝐵 ≥ 0 mit hinreichend großer Zahl M und hinreichend kleiner Zahl ε Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 34 Modellierungstechniken und –tricks Unbeschränkte Variablen Unbeschränkte Variablen xj R für j = 1,…,n Beispiele: ▪ Veränderung des Kassenbestandes (positiv / negativ) ▪ Lagerbestand (negativ: Fehlmenge) ▪ Gewinn (negativ: Verlust) Problem: Nur nichtnegative Variablen erwünscht oder benötigt Abhilfe: x j = x +j − x −j für j = 1,…,n x +j , x −j 0 für j = 1,…,n x1 = −6 x1+ = 0, x1− = 6 x2 = 4 x2+ = 4, x2− = 0 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 35 Modellierungstechniken und –tricks Disjunktive Bedingungen 7 x1 + 2 x2 100 oder 2 x1 + 3 x2 200 Anwendungsbeispiele: ▪ Reihenfolge von Aufträgen auf Maschinen (Auftrag 1 vor 2 oder 2 vor 1) ▪ optionale Wünsche oder Produktmerkmale ▪ Zuordnung eines Kunden zum Lager A oder zum Lager B Abhilfe Einführen einer Binärvariable y 0,1 zwei Binärvariablen y1, y2 0,1 7𝑥1 + 2𝑥2 − 𝑀 ⋅ 𝑦 ≤ 100 7𝑥1 + 2𝑥2 − 𝑀 ⋅ (1 − 𝑦1 ) ≤ 100 2𝑥1 + 3𝑥2 − 𝑀 ⋅ (1 − 𝑦) ≤ 200 2𝑥1 + 3𝑥2 − 𝑀 ⋅ (1 − 𝑦2 ) ≤ 200 Mit hinreichend großer Zahl M Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 36 y1 + y2 = 1 exklusives oder (xor) bzw. y1 + y2 1 oder (or) Klausurvorbereitung • • Domschke, W. und A. Drexl (2015): Einführung in Operations Research. 9. Aufl., Springer-Verlag, Berlin et al., Kapitel 1 Zur Klausurvorbereitung sind die Aufgaben 1.2 bis 1.7 sowie 2.1 und 2.3 aus dem Übungsbuch „Übungen und Fallstudien zum Operations Research“ von Domschke, Drexl, Klein, Scholl und Voß sehr zu empfehlen. Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 37 Einführung in Operations Research Lineare Optimierung I Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 1 Definitionen Lineares Optimierungsmodell (LP-Modell): Maximiere (oder Minimiere) F ( x1 ,..., x p ) = c1 x1 + ... + c p x p (2.1) unter den Nebenbedingungen ai1 x1 + ... + aip x p bi für i = 1,..., m1 (2.2) ai1 x1 + ... + aip x p bi für i = m1 + 1,..., m2 (2.3) ai1 x1 + ... + aip x p = bi für i = m2 + 1,..., m (2.4) xj 0 für alle (oder einige) j = 1,..., p (2.5) ▪ Lösung des LP-Modells: jeder Vektor x = ( x1 ,..., x p ) R , der (2.2) - (2.4) erfüllt ▪ zulässige Lösung: jede Lösung x , die auch Nichtnegativitätsbedingungen (2.5) erfüllt; Menge der zulässigen Lösungen: X * * ▪ optimale Lösung: jede zulässige Lösung x , mit F ( x ) = max F ( x) : x X Menge der optimalen Lösungen: X * p Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 2 Formen und Analyse von LP-Modellen LP-Modelle in Ungleichungsform Maximierungsform: Maximiere Minimierungsform: F ( x1 ,..., x p ) = j =1 c j x j p Minimiere F ( x1 ,..., x p ) = j =1 c j x j p unter den Nebenbedingungen unter den Nebenbedingungen j =1 aij x j bi für i=1,…,m xj 0 für j=1,…,p xj 0 p p a x j bi j =1 ij für i=1,…,m für j=1,…,p ▪ jedes beliebige LP-Modell lässt sich in eine der Formen transformieren ▪ Umkehren der Optimierungsrichtung: Multiplikation der Zielfunktion mit -1 ▪ Umkehren der Ungleichungsrichtung: Multiplikation der Nebenbedingung mit -1 ▪ bei Gleichungen: Umwandeln in zwei Nebenbedingungen x1 + x2 = 100 x1 + x2 100 x1 + x2 100 Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 3 Formen und Analyse von LP-Modellen LP-Modelle in Ungleichungsform ▪ reellwertige Variablen x j R : x j = x +j − x −j mit x +j , x −j 0 für j=1,…,p Beispiel Ausgangsmodell: Maximierungsform: Min F ( x) = x1 + x2 + 3x3 Max − F ( x) = − x1 − x2 − 3x3 unter den Nebenbedingungen unter den Nebenbedingungen − x1 + x2 10 − x1 + x2 10 x1 − x3 12 − x1 + x3 −12 2 x1 − x2 + x3 2 x1 , x2 , x3 0 −2 x1 + x2 − x3 −2 x1 , x2 , x3 0 Achtung: Zur Überführung eines Minimierungs- in ein Maximierungsproblem und umgekehrt sind Änderungen im Nebenbedingungssystem nicht erforderlich!! Sie wurden oben nur beispielhaft vorgenommen. Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 4 Formen und Analyse von LP-Modellen Normalform eines LP-Modells Normalform: Maximiere 𝐹 𝑥1, … , 𝑥𝑛 = σ𝑛𝑗=1 𝑐𝑗 ∙ 𝑥𝑗 unter den Nebenbedingungen 𝑛 für 𝑖 = 1, … , 𝑚 𝑎𝑖𝑗 ∙ 𝑥𝑗 = 𝑏𝑖 𝑗=1 für 𝑗 = 1, … , 𝑛 𝑥𝑗 ≥ 0 Matrixschreibweise: Maximiere 𝐹 𝒙 = 𝒄𝑇𝒙 unter den Nebenbedingungen 𝐴𝒙 = 𝒃 𝒙≥0 mit: cT = (c1 ,..., cn ) 𝑎11 𝑎12 𝑎21 𝑎22 𝐴= … … 𝑎𝑚1 𝑎𝑚2 Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 5 x1 b1 … 𝑎1𝑛 b x … 𝑎2𝑛 2b = 2 x = … … ... ... … 𝑎𝑚𝑛 b x n m Transformation eines allgemeinen LPModells in Normalform 𝑝 Maximiere 𝐹 𝑥1, … , 𝑥𝑝 = σ𝑗=1 𝑐𝑗 ∙ 𝑥𝑗 + σ𝑛𝑗=𝑝+1 0 ∙ 𝑥𝑗 unter den Nebenbedingungen 𝑝 𝑎𝑖𝑗 ∙ 𝑥𝑗 + 𝑥𝑝+𝑖 = 𝑏𝑖 𝑗=1 𝑝 𝑎𝑖𝑗 ∙ 𝑥𝑗 − 𝑥𝑝+𝑖 = 𝑏𝑖 für 𝑖 = 1, … , 𝑚1 für 𝑖 = 𝑚1 + 1, … , 𝑚2 𝑗=1 𝑝 𝑎𝑖𝑗 ∙ 𝑥𝑗 = 𝑏𝑖 für 𝑖 = 𝑚2 + 1, … , 𝑚 𝑗=1 𝑥𝑗 ≥ 0 für 𝑗 = 1, … , 𝑛 ▪ Strukturvariablen: ursprüngliche Problemvariablen 𝑥1, … , 𝑥𝑝 ▪ Schlupfvariablen: Ausgleichsvariablen zur Überführung von Ungleichungen in Gleichungen mit Zielfunktionskoeffizient 0 Bedeutung: ungenutzte Kapazität, unbefriedigte Nachfrage, ... ▪ Anzahl der Variablen: 𝑛 = 𝑝 + 𝑚2 Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 6 Beispiel: Problem der Produktionsprogrammplanung In Ungleichungsform: Maximiere DB(𝑥1, 𝑥2) = 10𝑥1 + 20𝑥2 unter den Nebenbedingungen 𝑥1 + 𝑥2 ≤ 100 6𝑥1 + 9𝑥2 ≤ 720 𝑥2 ≤ 60 𝑥1, 𝑥2 ≥ 0 Wie lautet die Normalform (in Matrixschreibweise)? Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 7 Beispiel: Problem der Produktionsprogrammplanung Normalform: Maximiere 𝐺 𝑥1, 𝑥2, 𝑥3, 𝑥4, 𝑥5 = 10𝑥1 + 20𝑥2 + 0 ∙ 𝑥3 + 𝑥4 + 𝑥5 Unter den Nebenbedingungen x1 + x2 + x3 6 x1 + 9 x2 = 100 + x4 + x5 x1 , x2 , x3 , x4 , x5 0 x2 Matrixschreibweise: 𝑐 𝑇 = [10 20 0 0 0] = 720 = 60 1 A = 6 0 1 1 0 9 0 1 1 0 0 Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 8 0 0 1 x1 x 100 2 x = x3 b = 720 60 x4 x5 Kanonische Form eines LP-Modells Bedingungen: Normalform sowie ▪ b0 ▪ cT = (c1 ,..., cn − m ,0,...,0) a11 a 21 ▪ A= ... am1 ... a1,n − m ... a2,n − m ... ... ... am,n − m 0 ... 0 0 1 ... 0 ... ... ... ... 0 0 ... 1 1 ▪ n Variablen = n Spalten ▪ m Nebenbedingungen = m Zeilen ▪ n-m Strukturvariablen Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 9 → m Schlupfvariablen Analyse von LP-Modellen Konvexe Menge: 3 n ▪ Eine Menge K R ist konvex, wenn jeder Punkt x auf der 1 2 Verbindungsstrecke zwischen zwei beliebigen Punkten x und x der Menge ebenfalls in der Menge enthalten ist. Bedingung für Konvexität: Für alle x1 , x 2 K und [0,1] gilt x 3 = x1 + (1 − ) x 2 K ▪ Konvexe Hülle H: kleinste konvexe Menge, die K vollständig enthält ▪ Konvexkombination: y = r i =1 i x mit i 0 für i=1,…,r sowie i =1 i = 1 . i Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 10 r Analyse von LP-Modellen ▪ Konvexes Polyeder: Menge aller Konvexkombinationen von endlich vielen (Eck- bzw. Extrem-) Punkten 𝑥1, … , 𝑥 𝑟 Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 11 LP-Modelle und konvexe Mengen Nebenbedingungen: ▪ Menge der zulässigen Lösungen einer linearen Nebenbedingung ist konvex ▪ Durchschnitt konvexer Mengen ist ebenfalls konvex → Menge der zulässigen Lösungen eines LP-Modells ist konvex Zielfunktion: ▪ Annahme: Menge der zulässigen Lösungen ist konvexes Polyeder → lineare Funktion nimmt ihr Optimum in mindestens einem Eckpunkt an → optimale Lösung eines LP-Modells liegt immer in einem (oder mehreren) Eckpunkt(en) Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 12 LP-Modelle und konvexe Mengen M ▪ LP-Modell in Normalform (bzw. kanonischer Form): n > m (# Variablen > # Restriktionen) → Gleichungssystem mit Freiheitsgrad: n-m keine Schlupfvar ▪ Basislösung: ~ n-variabeln/n-spalten ~ n-m Variablen werden auf Null gesetzt → Nichtbasisvariablen (NBV) ↳m-Zeilen/m-schlupfvar. Gleichungssystem nach restlichen m Variablen auflösen → Basisvariablen (BV) maximale Anzahl möglicher Basislösungen: 𝑛 𝑚 kleines Modell mit n = 20 und m = 10 ergibt maximal Basislösungen * -> 20 10 15g. mitneg. ▪ zulässige Basislösung: alle Basisvariablen sind nichtnegativ Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 13 = 20! 10!∙10! = 184756 LP-Modelle und konvexe Mengen Beispiel: Gleichungssystem: 𝑥1 + 𝑥2 = 3 und −𝑥2 + 𝑥3 = −1 n m Basislösungen: X, - als 3 = n = 2 = - m = NBU NBV: X1 0 = => => x x 0 = 3 = 2 * * * ▪ 𝑁𝐵𝑉 = 𝑥1 : 𝑥2 = 3 und −3 + 𝑥3 = −1 ⟹ 𝑥3 = 2; 𝑥 = 0,3,2 ; zulässig -T ▪ 𝑁𝐵𝑉 = 𝑥2 : 𝑥1 = 3 und 𝑥3 = −1; 𝑥 = 3,0, −1 ; unzulässig ▪ 𝑁𝐵𝑉 = 𝑥3 : −𝑥2 = −1 ⟹ 𝑥2 = 1 und 𝑥1 + 1 = 3 ⟹ 𝑥1 = 2; 𝑥 = 2,1,0 ; zulässig Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 14 LP-Modelle und konvexe Mengen Behauptung: Jede zulässige Basislösung entspricht einem Eckpunkt der konvexen zulässigen Menge! Konsequenz: Man muss die optimale Lösung nur unter den zulässigen Basislösungen suchen! Beispiel: Produktionsplanungsproblem (n=5, m=3) auf der nächsten Folie. Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 15 LP-Modelle und konvexe Mengen NBV BV Eckpunkt Basislösung x1 , x2 x1 , x3 x1 , x4 x1 , x5 x3 , x4 , x5 x2 , x4 , x5 x2 , x3 , x5 x2 , x3 , x4 A=(0,0) (0,0,100,720,60) F=(0,100) (0,100,0,-180,-40) G=(0,80) (0,80,20,0,-20) B=(0,60) (0,60,40,180,0) x2 , x3 x2 , x4 x2 , x5 x3 , x4 x3 , x5 x4 , x5 x1 , x4 , x5 x1 , x3 , x5 x1 , x3 , x4 x1 , x2 , x5 x1 , x2 , x4 x1 , x2 , x3 E=(100,0) (100,0,0,120,60) J=(120,0) (120,0,-20,0,60) - nicht exist. D=(60,40) (60,40,0,0,20) H=(40,60) (40,60,0,-60,0) C=(30,60) (30,60,10,0,0) => Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 16 Was ist mit Punkt K = (80,20,0,60,40)? Zu viele positive Variablen, keine Basislösung und kein Eckpunkt LP-Modelle und konvexe Mengen Abb. aus Wikipedia: Möglicher Suchweg des Simplex-Algorithmus Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 17 Simplex-Algorithmus ▪ entwickelt von George B. Dantzig in den 40er Jahren ▪ wird in vielen Varianten angewendet ▪ Basis nahezu jeder Standardsoftware Allgemeine Idee ▪ Start mit zulässiger Basislösung ▪ falls nicht optimal: Übergang zu benachbarter Basislösung durch Austauschen einer Basisvariablen ▪ bei jedem Schritt: Verbesserung des Zielfunktionswertes (aufgrund der Konvexität der zulässigen Menge und der Linearität der Zielfunktion) ▪ Fortsetzung, bis keine bessere Nachbarlösung mehr existiert: optimale Lösung identifiziert Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 18 Simplex-Algorithmus bei bekannter zulässiger Basislösung Beispiel: Problem der Produktionsplanung Erste zulässige Basislösung: x = (0,0,100,720,60) ; Punkt A x3 = 100 − x1 − x2 x4 = 720 − 6 x1 − 9 x2 x5 = 60 − x2 x3 0 x2 100 x4 0 x2 720 / 9 = 80 x5 0 x2 60 F = 0 + 10 x1 + 20 x 2 mit x1 = x2 = 0 nächst =var 1) ZF verb. 2) nach a wie noch dass 3) alle Bulösen darf gl-0 werter war ist -> h1 ▪ F wächst bei ∆𝑥1 = 1 um 𝑐1 = 10 und bei ∆𝑥2 = 1 um 𝑐2 = 20 GE. ▪ (Spalten-) Regel: Als neue Basisvariable wird diejenige gewählt, die die größte Verbesserung pro Einheit der Erhöhung bringt. ▪ Auf welchen Wert kann maximal erhöht werden? 𝑥2 = min 100,80,60 = 60 wegen Nichtnegativität bisheriger Basisvariablen ▪ Welche Variable verlässt die Basis? Die Variable, die bei Erhöhung von 𝑥2 als erste zu 0 wird: 𝑥5 ~ Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 19 sein Simplex-Algorithmus bei bekannter zulässiger Basislösung Zweite zulässige Basislösung durch Umformen des Gleichungssystems: ▪ Einsetzen von 𝑥2 = 60 − 𝑥5 in übrige Gleichungen x3 = 100 − x1 − (60 − x5 ) = 40 − x1 + x5 x4 = 720 + 6 x1 − 9(60 − x5 ) = 180 − 6 x1 + 9 x5 x2 = 60 − x5 x3 0 x1 40 x4 0 x1 180 / 6 = 30 𝑥2 unbeeinflusst von 𝑥1 F = 0 + 10 x1 + 20(60 − x5 ) = 1200 + 10 x1 − 20 x5 mit x1 = x5 = 0 neue Basislösung: x = (0,60,40,180,0); Punkt B ▪ F wächst bei ∆𝑥1 = 1 um 10 GE und fällt bei ∆𝑥5 = 1 um 20 GE → 𝑥1 wird BV ▪ Erhöhung von 𝑥1 auf min 30,40 = 30 ▪ 𝑥4 verlässt die Basis (Austausch von 𝑥4 gegen 𝑥1) Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 20 Simplex-Algorithmus bei bekannter zulässiger Basislösung Dritte zulässige Basislösung: 1 3 ▪ Tausch: 𝑥4 = 180 − 6𝑥1 + 9𝑥5 ⟹ 𝑥1 = 30 − 6 𝑥4 + 2 𝑥5; Einsetzen in übrige Gleichungen 1 3 1 1 x3 = 40 − (30 − x4 + x5 ) + x5 = 10 + x4 + x5 6 2 6 2 1 3 x1 = 30 − x4 + x5 6 2 x2 = 60 − x5 5 30 5 F = 1200 + 300 − x4 + x5 − 20 x5 = 1500 − x4 − 5 x5 3 2 3 neue Basislösung: x = (30,60,10,0,0) ; F(x)=1500; Punkt C ▪ F fällt bei Erhöhung von 𝑥4 und 𝑥5 → aktuelle Basislösung ist optimal Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 21 Simplex-Algorithmus bei bekannter zulässiger Basislösung Der primale Simplex-Algorithmus ▪ für Handrechnungen anhand des Simplex-Tableaus ▪ für Maximierungsprobleme ▪ Einführen einer Variablen F für den aktuellen Zielfunktionswert 𝐹𝑎𝑘𝑡 (zu Beginn 0) ergibt: F = Fakt + c1 x1 + ... + cn−m xn−m −c1 x1 − ... − cn−m xn −m + F = Fakt ▪ Starttableau: LP in kanonischer Form Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 22 Simplex-Algorithmus bei bekannter zulässiger Basislösung ▪ Starttableau: LP in kanonischer Form Nichtbasisvariable x1 xn−m+1 a11 Basisvariable … xn −m xn−m+1 … xn F bi … a1,n−m 1 … 0 0 b1 … … … … … 1 … … … xn am1 … am ,n−m 0 … 1 0 bm − c1 … − cn − m 0 … 0 1 Fakt ▪ Weglassen der F-Spalte, da sie sich nie verändert Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 23 Beispiel: Produktionsproblem Maximiere 𝐹 𝑥1, 𝑥2, 𝑥3, 𝑥4, 𝑥5 = 10𝑥1 + 20𝑥2 + 0 ∙ 𝑥3 + 𝑥4 + 𝑥5 Unter den Nebenbedingunen x1 + x2 + x3 = 100 6 x1 + 9 x2 + x4 = 720 x2 + x5 = 60 x1 , x2 , x3 , x4 , x5 0 Zielfunktionszeile: −10𝑥1 − 20𝑥2 − 0𝑥3 − 0𝑥4 − 0𝑥5 + 𝐹 = 0 Starttableau: BV 𝑥1 𝑥2 𝑥3 𝑥4 𝑥5 𝑏𝑖 𝑥3 1 1 1 0 0 100 𝑥4 6 9 0 1 0 720 𝑥5 0 1 0 0 1 60 F -10 -20 0 0 0 0 Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 24 Ablauf einer Iteration Ablauf einer Iteration (Kochrezept; mit einem Strich unterscheiden wir die aktuellen Einträge des Tableaus von den Startwerten): ▪ Schritt 1: Wahl der Pivotspalte t keine negativen Eintragungen in F-Zeile: aktuelle Basislösung optimal → Ende des Verfahrens negative Eintragung in der F-Zeile: Verbesserung bei Aufnahme der Variable in die Basis, Auswahl der Variable mit kleinster ("negativster") Eintragung ▪ Schritt 2: Wahl der Pivotzeile s ′ Alle Koeffizienten 𝑎𝑖𝑡 in der Pivotspalte t nichtpositiv → unbeschränktes Modell; Abbruch bi' bs' ' Ansonsten wähle Pivotzeile s, für die gilt ' = min ' : i = 1,, m mit ait 0 ast ait ′ Pivotelement: 𝑎𝑠𝑡 Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 25 Ablauf einer Iteration ▪ Schritt 3: Berechnung der neuen Basislösung, Transformation des Tableaus Tausche bisherige BV in Pivotzeile s gegen bisherige NBV 𝑥𝑡 ′ Schaffe unter neuer BV 𝑥𝑡 einen Einheitsvektor mit 𝑎𝑠𝑡 = 1 durch Anwenden linearer Transformationen: ′ a) Dividiere die Pivotzeile durch das Pivotelement 𝑎𝑠𝑡 ′ b) Multipliziere die neue Pivotzeile mit −𝑎𝑖𝑡 und addiere sie zur Zeile i hinzu (für alle i ohne s) Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 26 Ablauf des Beispiels Ablauf des Beispiels: Erste Basislösung x = (0,0,100,720,60) BV 𝑥1 𝑥2 𝑥3 𝑥4 𝑥5 𝑏𝑖′ 𝑥3 1 1 1 0 0 100 𝑏𝑖′ ൘𝑎′ 𝑖𝑡 100/1 =100 𝑥4 6 9 0 1 0 720 720/9=80 -9(*) 𝑥5 0 1 0 0 1 60 60/1=60 (*) F -10 -20 0 0 0 0 ▪ Pivotspalte: t=2 ; Pivotzeile: s=3 ▪ Transformation: -(*) +20(*) ′ ; Pivotelement: 𝑎32 =1 a) Division der Pivotzeile durch 1 b) Addiere das –1fache der Pivotzeile zu Zeile 1, das –9fache zu Zeile 2, das 20-fache zur F-Zeile. Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 27 Ablauf des Beispiels Transformiertes Tableau: Zweite Basislösung x = (0,60,40,180,0) 𝑏𝑖′ ൘𝑎′ 𝑖𝑡 BV 𝑥1 𝑥2 𝑥3 𝑥4 𝑥5 𝑏𝑖′ 𝑥3 1 0 1 0 -1 40 40/1=40 -(**) 𝑥4 6 0 0 1 -9 180 180/6=30 :6=(**) (*) 𝑥2 0 1 0 0 1 60 unbeschränkt bleibt F -10 0 0 0 20 1200 ▪ Pivotspalte: t=1 ; Pivotzeile: s=2 ▪ Transformation: +10(**) ′ ; Pivotelement: 𝑎21 =6 a) Division der Pivotzeile durch 6 b) Addiere das –1fache der Pivotzeile zu Zeile 1, das 10-fache zu Zeile 4, Zeile 3 bleibt. Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 28 Ablauf des Beispiels Transformiertes Tableau: Dritte Basislösung x = (30,60,10,0,0) BV 𝑥1 𝑥2 𝑥3 𝑥4 𝑥5 𝑏𝑖′ 𝑥3 0 0 1 -1/6 1/2 10 (**) 𝑥1 1 0 0 1/6 -3/2 30 𝑥2 0 1 0 0 1 60 F 0 0 0 5/3 5 1500 ▪ Abbruch wegen ausschließlich nichtnegativer Einträge in der F-Zeile. ▪ aktuelle Basislösung mit F=1500 ist optimal Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 29 Methoden zur Bestimmung einer zulässigen Basislösung ▪ LP-Modell ist nicht in kanonischer Form wegen: Negative rechte Seiten und / oder Keine Einheitsmatrix unter Schlupfvariablen ▪ Methode: (Big-) M-Methode Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 30 M-Methode ▪ Voraussetzungen: Unzulässige Basislösung aufgrund von Koeffizienten – 1 in der "Einheitsmatrix" Rechte Seiten nichtnegativ ▪ Grundidee: Einführen zusätzlicher Variablen 𝒚𝟏 , 𝒚𝟐 , ... ("künstliche Variablen") in Zeilen mit "Einheitskoeffizient" – 1 Bestrafen der künstlichen Variablen mit hoher Zahl M in der Zielfunktion Anwenden des primalen Simplex-Algorithmus Künstliche Variablen werden aufgrund ihrer Bewertung bevorzugt aus der Basis eliminiert Entfernen der künstlichen Variablen, sobald sie die Basis verlassen ▪ Zulässige Lösung erreicht, sobald alle künstlichen Variablen entfernt sind; ggf. Fortsetzung mit primalem Simplex-Algorithmus Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 31 M-Methode Beispiel: Maximiere 𝐹 𝑥1 , 𝑥2 = 4𝑥1 + 5𝑥2 unter den Nebenbedingungen 6 x1 + 5 x2 120 3x1 + 5 x2 110 2 x1 + 4 x2 80 x1 , x2 0 Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 32 M-Methode Beispiel: Maximiere 𝐹 𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 , 𝑦1 , 𝑦2 = 4𝑥1 + 5𝑥2 + 0(𝑥3 + 𝑥4 + 𝑥5 ) − 𝑀𝑦1 − 𝑀𝑦2 unter den Nebenbedingungen 6 x1 + 5 x2 120 3x1 + 5 x2 110 2 x1 + 4 x2 80 x1 , x2 0 6𝑥1 + 5𝑥2 − 𝑥3 = 120 3𝑥1 + 5𝑥2 + 𝑥4 = 110 2𝑥1 + 4𝑥2 − 𝑥5 = 80 𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 ≥ 0 6 x1 + 5 x2 − x3 + y1 = 120 3x1 + 5 x2 + x4 = 110 2 x1 + 4 x2 − x5 + y2 = 80 x1 , x2 , x3 , x4 , x5 0 sowie y1 , y2 0 Umformung der Zielfunktion: ▪ ersetze künstliche Variablen (aktuelle BV) durch entsprechende Gleichungen (aktuelle NBV) Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 33 M-Methode Maximiere F ( x1 , x2 ) = 4 x1 + 5 x2 − M (120 − (6 x1 + 5 x2 − x3 )) − M (80 − (2 x1 + 4 x2 − x5 )) = 4 x1 + 5 x2 − 120M + 6Mx1 + 5Mx2 − Mx3 − 80M + 2Mx1 + 4Mx2 − Mx5 = (4 + 8M ) x1 + (5 + 9M ) x2 − Mx3 − Mx5 − 200M ▪ bilde zweite Zielfunktionszeile für alle M-Terme (M-Zeile) Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 34 M-Methode Starttableau der M-Methode: BV x1 x2 x3 x4 x5 y1 y2 y1 x4 y2 bi' 6 5 -1 0 0 1 0 120 3 5 0 1 0 0 0 110 2 4 0 0 -1 0 1 80 F-Zeile -4 -5 0 0 0 0 0 0 M-Zeile -8M -9M M 0 M 0 0 -200M Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 35 M-Methode 1. Iteration mit dem primalen Simplex-Algorithmus: BV x1 x2 x3 x4 x5 y1 y2 bi' y1 x4 7/2 0 -1 0 5/4 1 -5/4 20 1/2 0 0 1 5/4 0 -5/4 10 x2 1/2 1 0 0 -1/4 0 1/4 20 F-Zeile -3/2 0 0 0 -5/4 0 5/4 100 M-Zeile -7/2M 0 M 0 -5/4M 0 9/4M -20M Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 36 M-Methode 2. Iteration mit dem primalen Simplex-Algorithmus: BV x1 x2 x3 x4 x5 y1 bi' x1 x4 x2 1 0 -2/7 0 5/14 2/7 40/7 0 0 1/7 1 15/14 -1/7 50/7 0 1 1/7 0 -3/7 -1/7 120/7 F-Zeile 0 0 -3/7 0 -5/7 3/7 760/7 M-Zeile 0 0 0 0 0 M 0 Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 37 M-Methode 3. Iteration mit dem primalen Simplex-Algorithmus: BV x1 x2 x3 x4 x5 bi' x1 x5 x2 1 0 -1/3 -1/3 0 10/3 0 0 2/15 14/15 1 20/3 0 1 1/5 2/5 0 20 F-Zeile 0 0 -1/3 2/3 0 340/3 Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 38 M-Methode 4. Iteration mit dem primalen Simplex-Algorithmus: x1 x2 x3 x4 x5 bi' x1 x3 x2 1 0 0 2 5/2 20 0 0 1 7 15/2 50 0 1 0 -1 -3/2 10 F-Zeile 0 0 0 3 5/2 130 BV Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 39 M-Methode M-Methode bei Gleichungen: Maximiere F ( x1 , x2 ) = x1 + 2 x2 Maximiere F ( x1 , x2 , x3 , y ) = x1 + 2 x2 − My unter den Nebenbedingungen unter den Nebenbedingungen x1 + x2 + y = 100 6 x1 + 9 x2 + x3 = 720 x1 , x2 , x3 , y 0 x1 + x2 = 100 6 x1 + 9 x2 720 x1 , x2 0 Umformen der Zielfunktion: F ( x1 , x2 , x3 , y ) = x1 + 2 x2 − My = x1 + 2 x2 − M (100 − x1 − x2 ) = (1 + M ) x1 + (2 + M ) x2 − 100M BV x1 x2 x3 y bi bi / ait y 1 1 0 1 100 100 x3 6 9 1 0 720 80 F-Zeile -1 -2 0 0 0 M-Zeile -M -M 0 0 -100M Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 40 M-Methode 1. Iteration: t=2, s=2; Vertauschen von 𝑥3 und 𝑥2 BV x1 x2 x3 y bi' bi' / ai't y 1/3 0 -1/9 1 20 60 x2 2/3 1 1/9 0 80 120 F-Zeile 1/3 0 2/9 0 160 M-Zeile -M/3 0 M/9 0 -20M 2. Iteration: t=1, s=2; Vertauschen von 𝑦 und 𝑥1 BV x1 x2 x3 y bi' x1 x2 1 0 -1/3 3 60 0 1 1/3 -2 40 F-Zeile 0 0 1/3 -1 140 M-Zeile 0 0 0 M 0 Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 41 Optimale Lösung: 𝑥1 = 60 𝑥2 = 40 𝐹 ∗ = 140 Sonderfälle der linearen Optimierung (1) 1) Keine zulässige Lösung (Widerspruch im Nebenbedingungssystem): ▪ graphisch: zulässiger Bereich ist leer ▪ M-Methode: alle reduzierten Kosten nichtnegativ, jedoch noch künstliche Variablen mit positivem Wert in der Basis Beispiel: Maximiere 𝐹 𝑥1 , 𝑥2 = 2𝑥1 + 𝑥2 unter den Nebenbedingungen 3x1 + 4 x2 100 3x1 + 2 x2 80 2 x1 + x2 40 x1 , x2 0 Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 42 Sonderfälle der linearen Optimierung (1) Endtableau der M-Methode: BV x1 x2 x3 x4 x5 y1 bi' x2 y1 x1 0 1 2/5 0 -3/5 0 16 1 0 -1/5 -1 -6/5 1 12 0 0 -1/5 0 4/5 0 12 F-Zeile 0 0 0 0 6/5 0 40 M-Zeile 0 0 1/5M M 6/5M 0 -12M Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 43 Sonderfälle der linearen Optimierung (2) 2) Unbeschränktes Problem (zulässige, jedoch keine optimalen Lösungen): ▪ graphisch: zulässiger Bereich ist in Optimierungsrichtung offen ▪ primaler Simplex-Algorithmus: in der Pivotspalte t befinden sich keine positiven Koeffizienten Beispiel: Maximiere 𝐹 𝑥1 , 𝑥2 = 2𝑥1 + 4𝑥2 unter den Nebenbedingungen 2 x1 + x2 40 x1 + 2 x2 50 x1 , x2 0 Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 44 Sonderfälle der linearen Optimierung (2) Endtableau des Simplex-Algorithmus: BV x1 x2 x3 x4 bi' x3 x1 0 3 1 -2 60 1 2 0 -1 50 F 0 0 0 -2 100 Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 45 Sonderfälle der linearen Optimierung (3) 3) Parametrische Lösungen (mehr als eine Lösung ist optimal / duale Degeneration): ▪ ▪ graphisch: eine in Optimierungsrichtung gelegene Kante des zulässigen Bereichs (Polyeders) verläuft parallel zur Höhenlinie der Zielfunktion primaler Simplex-Algorithmus: im Optimaltableau besitzt mindestens eine NBV den F-Zeileneintrag 0, d.h. durch Aufnahme der NBV in die Basis verändert sich der (optimale) Wert F* nicht Beispiel: Maximiere 𝐹 𝑥1 , 𝑥2 = 2𝑥1 + 4𝑥2 unter den Nebenbedingungen 2 x1 + x2 40 x1 + 2 x2 50 x1 , x2 0 x * ( ) = x1 + (1 − ) x 2 mit 0 1 Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 46 Sonderfälle der linearen Optimierung (3) Endtableau des primalen Simplex-Algorithmus: BV x1 x2 x3 x4 bi' x3 x2 3/2 0 1 -1/2 15 1/2 1 0 1/2 25 F 0 0 0 2 100 Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 47 Sonderfälle der linearen Optimierung (4) 4) Redundante Nebenbedingungen: ▪ ≤-Nebenbedingung redundant, wenn Linearkombination anderer ≤Nebenbedingungen dieselbe linke Seite, jedoch eine kleinere rechte Seite aufweist. ▪ ≥-Nebenbedingung redundant, wenn Linearkombination anderer ≥Nebenbedingungen dieselbe linke Seite, jedoch eine größere rechte Seite aufweist. ▪ Gleichung redundant, wenn vollständig durch andere Gleichungen linear kombinierbar. Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 48 Sonderfälle der linearen Optimierung (4) Beispiel: NB1: 2 x1 + x2 40 1 ·NB1: 3 NB2: x1 + 2 x2 50 1 ·NB2 : 1/ 3x1 + 2 / 3x2 50 / 3 3 NB3: x1 + x2 32 1 1 ·NB1 + ·NB2 : 3 3 2 / 3x1 + 1/ 3x2 40 / 3 x1 + x2 30 • macht NB3 redundant Erkennen von Redundanzen: ▪ graphisch: Weglassen der Nebenbedingung verändert zulässigen Bereich nicht ▪ primaler Simplex-Algorithmus: Schlupfvariable der redundanten Bedingung bleibt stets mit positivem Wert in der Basis und kann nicht eliminiert werden, ohne dass Lösung unzulässig wird Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 49 Sonderfälle der linearen Optimierung (5) 5) (Primal) Degenerierte Basislösung: ▪ spezieller Fall der Redundanz: mehrere Basislösungen gehören zu einem Eckpunkt Gefahr des „Kreisens“ ▪ graphisch: es schneiden sich mehr als zwei Nebenbedingungen in einem Punkt ▪ primaler Simplex-Algorithmus: im Simplextableau besitzt mindestens eine BV den Wert 0 Beispiel: Maximiere 𝐹 𝑥1 , 𝑥2 = 3𝑥1 + 4𝑥2 unter den Nebenbedingungen 2 x1 + x2 40 x1 + 2 x2 50 x1 + x2 30 x1 , x2 0 Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 50 Sonderfälle der linearen Optimierung (5) Beispiel: Maximiere 𝐹 𝑥1 , 𝑥2 = 3𝑥1 + 4𝑥2 unter den Nebenbedingungen 2 x1 + x2 40 x1 + 2 x2 50 x1 + x2 30 x1 , x2 0 Optimale Lösung: x*=(10,20,0,0,0) mit F*=110 Dazu gehören 3 Basislösungen: 𝐵𝑉1 = {𝑥1 , 𝑥2 , 𝑥3 }, 𝐵𝑉2 = {𝑥1 , 𝑥2 , 𝑥4 } und 𝐵𝑉3 = {𝑥1 , 𝑥2 , 𝑥5 } Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 51 Sonderfälle der linearen Optimierung (5) Endtableau des primalen Simplex-Algorithmus bi' BV x2 x4 x3 x5 x1 x1 x2 x5 1 0 2/3 -1/3 0 10 0 1 -1/3 2/3 0 20 0 0 -1/3 -1/3 1 0 F 0 0 2/3 5/3 0 110 ▪ Vertausche 𝑥3 und 𝑥5 : ebenfalls optimale Lösung x2 x3 x4 x5 x1 bi' BV x1 1 0 0 -1 2 10 x2 0 1 0 1 -1 20 x3 0 0 1 1 -3 0 F 0 0 0 1 2 110 ▪ Vertausche 𝑥4 und 𝑥3 : Lösung bleibt erhalten, jedoch negativer Eintrag in F-Zeile (zur Übung) Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 52 Klausurvorbereitung Domschke, W. und A. Drexl (2015): Einführung in Operations Research. 9. Aufl., Springer-Verlag, Berlin et al., Kapitel 2 Zur Klausurvorbereitung sind die Aufgaben 2.5 und 2.7–2.12 aus dem Übungsbuch „Übungen und Fallstudien zum Operations Research“ von Domschke, Drexl, Klein, Scholl und Voß sehr zu empfehlen. Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 53 Einführung in Operations Research Lineare Optimierung II Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 1 Schranke für den optimalen Zielfunktionswert Maximiere 𝐹 𝑥1 , 𝑥2 = 10𝑥1 + 20𝑥2 ↳ wie hoch NB‘en w1 w2 w3 max x1 + x 2 100 6x1 + 9x 2 720 x 2 60 x1 , x 2 0 ZF-wert sein kann I II III Anhand der NB‘en (und bei nichtneg. 𝑥𝑗 ) erhält man obere Schranken für 𝐹 𝑥1 , 𝑥2 ! ▪ Durch Multiplikation von I mit 20 erhält man obere Schranke 2000 wie folgt: F(x1 , x 2 ) = 10x1 + 20x 2 20x1 + 20x 2 2000 ▪ Analog erhält man durch Multiplikation von II mit 20/9 obere Schranke 1600: F(x1 , x 2 ) = 10x1 + 20x 2 40 / 3x1 + 20x 2 1600 ▪ Niedrigere obere Schranken durch Linearkombination mehrerer (insb. aller) NB‘en eines LPs: ➢ I und III jeweils 10-fach: F(x1 , x 2 ) = 10x1 + 20x 2 1000 + 600 = 1600 Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 2 Dualität ▪ Mit Multiplikatoren 5, 5/6 bzw. 15/2 für I, II bzw. III: F(x1 , x 2 ) = 10x1 + 20x 2 = 5(x1 + x 2 ) + 5 / 6(6x1 + 9x 2 ) + 15 / 2·x 2 500 + 600 + 450 = 1550 Allgemein gilt mit nichtnegativen Faktoren 𝑤1 , 𝑤2 und 𝑤3 : F(x1 , x 2 ) = 10x1 + 20x 2 w1 (x1 + x 2 ) + w 2 (6x1 + 9x 2 ) + w 3 x 2 100w1 + 720w 2 + 60w 3 und F(x1 , x 2 ) = 10x1 + 20x 2 (w1 + 6w 2 )x1 + (w1 + 9w 2 + w 3 )x 2 100w1 + 720w 2 + 60w 3 Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 3 Dualität Ein Vergleich der Koeffizienten von 𝑥1 und 𝑥2 liefert die Bedingungen: 10x1 (w1 + 6w 2 )x1 bzw. 20x 2 (w1 + 9w 2 + w 3 ) x 2 Also: w1 + 6w 2 10 w1 + 9w 2 + w 3 20 Mit w1 , w 2 , w 3 0 Wenn wir also die schärfst-mögliche obere Schranke auf den optimalen Zielfunktionswert haben wollen, minimieren wir 𝐹𝐷 𝑤1 , 𝑤2 , 𝑤3 = 100𝑤1 + 720𝑤2 + 60𝑤3 unter Beachtung der NB w1 + 6w 2 10 w1 + 9w 2 + w 3 20 Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 4 w1 , w 2 , w 3 0 Dualität Primales Modell: Duales Modell: Maximiere 𝐹 𝒙 = 𝒄𝑇 ∙ 𝒙 Minimiere 𝐹𝐷 𝒘 = 𝒃𝑇 ∙ 𝒘 unter den Nebenbedingungen unter den Nebenbedingungen 𝐴∙𝒙≤𝒃 𝒙≥𝟎 𝐴𝑇 ∙ 𝒘 ≥ 𝒄 𝒘≥𝟎 ▪ zu jeder Nebenbedingung i=1,...,m des primalen Modells korrespondiert eine Dualvariable 𝑤𝑖 → rechte Seiten werden zu Zielfunktionskoeffizienten des dualen Modells ▪ zu jeder (Struktur-) Variable 𝑥𝑗 (j=1,...,n) korrespondiert eine Nebenbedingung j im dualen Modell → Zielfunktionskoeffizienten werden zu rechten Seiten des dualen Modells ▪ Maximierung im primalen Modell ↔ Minimierung im dualen Modell ▪ „≤“-Bedingungen im primalen Modell ↔ „≥“-Bedingungen im dualen Modell Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 5 Dualität Beispiel: Produktionsprogrammplanung Primale Modellinstanz: Duale Modellinstanz: ▪ Simplex-Algorithmus löst beide Modellinstanzen simultan optimal ▪ Für optimale Lösungen x* und w* gilt: F(x*)=FD(w*) ▪ Maximierung im primalen Modell: F(x) ≤ F(x*) ▪ Minimierung im dualen Modell: FD(w*)≤FD(w) → Einschließungssatz: F(x) ≤ F(x*) = FD(w*)≤FD(w) Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 6 Dualität Beispiel: Primale Modellinstanz: ▪ ▪ ▪ ▪ Duale Modellinstanz: F(x*) = FD(w*) F(x) = 640 < F(x*) = 720 FD(w*) = 720 < FD(w) = 1160 Einschließungssatz gilt! Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 7 Dualität Weitere Dualisierungsregeln: Primales Problem Duales Problem Zielfunktion: Max F(x) Zielfunktion: Min FD(w) Nebenbedingungen: Dualvariablen: i-te NB: wi 0 i-te NB: = wi R Variablen: xj 0 xj R Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 8 Nebenbedingungen: j-te NB: j-te NB: = Beziehungen zwischen den Variablen des primalen Modells (P) und des dualen Modells (D) ▪ Strukturvariablen von D korrespondieren mit den Nebenbedingungen, d.h. mit den Schlupfvariablen, von P ▪ analog: Strukturvariablen von P korrespondieren mit Schlupfvariablen von D ▪ Satz vom komplementären Schlupf: Von den miteinander korrespondierenden Variablen hat in der optimalen Lösung von P bzw. D mindestens eine den Wert 0. primales Modell duales Modell 𝑥1 80/9 𝑤3 0 𝑥2 40/3 𝑤4 0 𝑥3 0 𝑤1 6 𝑥4 0 𝑤2 2 Lösung zu Bsp. von Folie 6 Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 9 Beziehungen zwischen den Variablen des primalen Modells (P) und des dualen Modells (D) ▪ Werte der Dualvariablen 𝑤1 bis 𝑤𝑛 stehen in der F-Zeile des SimplexTableaus BV x1 x2 x3 x4 bi' 720 ⋱ F 0 0 6 2 w3 w4 w1 w2 Lösung zum Bsp. von Folie 6 ▪ 𝑥1 und 𝑥2 sind BV: 𝑤3 = 𝑤4 = 0 ▪ 𝑥3 und 𝑥4 sind NBV: 𝑤1 bzw. 𝑤2 = Verringerung des ZF-Werts bei Erhöhung von 𝑥3 bzw. 𝑥4 um 1 Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 10 Beispiel Beispiel von Folie 6: Erhöhung von 𝑥3 von 0 auf 1 BV x1 x2 x3 x4 bi' x2 0 1 2/3 -1/3 40/3 x1 1 0 -5/9 4/9 80/9 F 0 0 6 2 720 w3 w4 w1 w2 2 1 40 40 2 38 x 2 + x3 − x 4 = x2 = − = 3 3 3 3 3 3 5 4 80 80 5 85 x1 − x 3 + x 4 = x1 = + = 9 9 9 9 9 9 85 38 x' = , ,1,0 9 3 85 38 F(x') = 30· + 34· + 0·1 + 0·0 = 714 → d.h. Verringerung um 𝑤1 = 6 9 3 ▪ Erhöhung der Schlupfvariable 𝑥3 um 1: Verringerung der verwendeten Kapazität um 1 (z.B. Ausfall einer Maschinenstunde, die für andere Tätigkeit verwendet wird) ▪ Bedeutung des Dualvariablenwertes 𝑤1 = 6: alternative Verwendung einer Kapazitätseinheit kostet 6 GE → Opportunitätskosten (Schattenpreise) Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 11 Beispiel ▪ Schlussfolgerung I: Die Kapazität sollte nur dann für alternative Zwecke verwendet werden, wenn sie dabei mehr als (bzw. mindestens) 6 GE Deckungsbeitrag einbringt. ▪ Schlussfolgerung II: Wenn zusätzliche KE nicht mehr als 6 GE kostet, lohnt sich die Kapazitätsausweitung. Zum Nachdenken: Warum ist der Schattenpreis 0, wenn die zugehörige Schlupfvariable bereits in der Basis ist? Antwort: Kapazität ist nicht knapp, wird also ohnehin nicht voll benötigt. Die überzähligen Einheiten können kostenlos abgegeben werden. → Aussage gilt jedoch nur so lange, wie Kapazität nicht knapp wird! Fazit: Schattenpreise gelten nur für begrenzte Veränderung der Kapazitäten. Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 12 Beispiel Opportunitätskosten bei Strukturvariablen (Reduzierte Kosten): ▪ Kosten der Verdrängung anderer Produkte zugunsten des betrachteten ▪ negative Reduzierte Kosten: Zielfunktionswert lässt sich durch Aufnahme des Produkts in das Produktionsprogramm steigern → Basislösung ist noch nicht optimal Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 13 Beziehungen zwischen dem primalen und dem dualen Simplextableau (Primal) ▪ ▪ (Dual) Max u.d.N. 4x1+ x2+3x3 x1+ 4x2 3x1 – x2+ x3 x1, x2, x3 ≥ 0 Max u.d.N. F= 4x1 + x2 + 3x3 x4 = 1 – x1 – 4x2 x5 = 3 – 3x1 + x2 – x3 x1, x2, x3, x4, x5 ≥ 0 ≤1 ≤3 Min u.d.N. w1 + 3w2 w1 + 3w2 4w1 – w2 w2 w1, w2 ≥4 ≥1 ≥3 ≥0 Max – FD = – w1 – 3w2 u.d.N. w3 = – 4 + w1 + 3w2 w4 = – 1 + 4w1 – w2 w5 = – 3 + w2 w1, w2, w3, w4, w5 ≥ 0 Das duale Simplextableau entspricht (prinzipiell) dem transponierten negativen primalen Simplextableau. Die primale Basislösung ist zulässig, aber nicht optimal. Die duale Basislösung ist „optimal“, aber nicht zulässig. Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 14 Beziehungen zwischen dem primalen und dem dualen Simplextableau (Primal) ▪ ▪ ▪ (Dual) Max u.d.N. F = 9 – 5x1 + 4x2 – 3x5 x4 = 1 – x1 – 4x2 x3 = 3 – 3x1 + x2 – x5 x1, x2, x3, x4, x5 ≥ 0 Max u.d.N. Max u.d.N. F = 10 – 6x1– x4 – 3x5 x2 = 1/4 – 1/4x1 – 1/4x4 x3 = 13/4 – 13/4x1 – 1/4x4 – x5 x1, x2, x3, x4, x5 ≥ 0 Max – FD = – 10 – 1/4w4 – 13/4w5 u.d.N. w3 = 6 + 1/4w4 + 13/4w5 w1 = 1 + 1/4w4 + 1/4w5 w2 = 3+ w5 w1, w2, w3, w4, w5 ≥ 0 – FD = – 9 – w1 – 3w5 w3 = 5 + w1 + 3w5 w4 = – 4 + 4w1 – w5 w2 = 3+ w5 w1, w2, w3, w4, w5 ≥ 0 Das optimale duale Simplextableau entspricht (prinzipiell) dem transponierten negativen optimalen primalen Simplextableau. Die optimalen Werte der dualen Variablen entsprechen den negativen Koeffizienten der Zielfunktion im primalen Tableau. Dabei sind dualen Entscheidungsvariablen primale Schlupfvariablen und dualen Schlupfvariablen primale Entscheidungsvariablen zugeordnet. Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 15 Die duale Simplexmethode: erstes Beispiel Grundidee: Benutze die Pivotregeln des dualen Problems auf dem primalen Problem, ohne das duale Problem explizit abzuleiten. Beispiel: (Zur Veranschaulichung leiten wir doch noch einmal das duale Problem ab.) (Primales Problem) Max – x1 – x2 u.d.N. – 2x1 – x2 ≤ 4 – 2x1 + 4x2 ≤ – 8 – x1 + 3x2 ≤ – 7 x1, x2 ≥ 0 Max u.d.N. ▪ ▪ F= – x1 – x2 x3 = 4 + 2x1 + x2 x4 = – 8 + 2x1 – 4x2 x5 = – 7 + x1 – 3x2 x1, x2, x3, x4, x5 ≥ 0 Min u.d.N. Max u.d.N. (Duales Problem) 4w1 – 8w2 – 7w3 – 2w1 – 2w2 – w3 ≥ –1 – w1 + 4w2 + 3w3 ≥ – 1 w1, w2 ,w3 ≥ 0 – FD = – 4w1 + 8w2 + 7w3 w4 = 1 – 2w1 – 2w2 – w3 w5 = 1 – w1 + 4w2+ 3w3 w1, w2, w3, w4, w5 ≥ 0 Die Basislösung ist primal unzulässig, jedoch dual zulässig. Führe auf dem primalen Tableau Pivotschritte aus, die Simplexiterationen auf dem dualen Tableau entsprechen (verbessere duale Zielfunktion, erhalte duale Zulässigkeit) Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 16 Die duale Simplexmethode: erstes Beispiel (Primales Problem) ▪ ▪ (Duales Problem) F = – 4 – 0.5x4 – 3x2 x3 = 12 + x4 + 5x2 x1 = 4 + 0.5x4 + 2x2 x5 = – 3 + 0.5x4 – x2 x1, x2, x3, x4, x5 ≥ 0 – FD = 4 – 12w1 – 4w4 + 3w3 w2 = 0.5 – w1 – 0.5w4 – 0.5 w3 w5 = 3 – 5w1 – 2w4 + w3 w1, w2, w3, w4, w5 ≥ 0 F = – 7 – x5 – 4x2 x3 = 18 +2 x5 + 7x2 x1 = 7 + x5 + 3x2 x4 = 6 + 2x5 + 2x2 x1, x2, x3, x4, x5 ≥ 0 – FD = 7 – 18w1 – 7w4 – 6w2 w3 = 1 – 2w1 – w4 – 2w2 w5 = 4 – 7w1 – 3w4 – 2w2 w1, w2, w3, w4, w5 ≥ 0 Positive Koeffizienten in der Zielfunktion des dualen Tableaus entsprechen unzulässigen Werten von Basisvariablen im primalen Tableau. Die für den dualen Quotiententest benötigten Werte können im primalen Tableau in der Zielfunktion und der Pivotzeile abgelesen werden (mit umgedrehten Vorzeichen). Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 17 Die duale Simplexmethode: Zusammenfassung Max u.d.N. F= – x1 – x2 x3 = 4 + 2x1 + x2 x4 = – 8 + 2x1 – 4x2 x5 = – 7 + x1 – 3x2 x1, x2, x3, x4, x5 ≥ 0 F = – 4 – 0.5x4 – 3x2 x3 = 12 + x4 + 5x2 x1 = 4 + 0.5x4 + 2x2 x5 = – 3 + 0.5x4 – x2 x1, x2, x3, x4, x5 ≥ 0 F = – 7 – x5 – 4x2 x3 = 18 +2 x5 + 7x2 x1 = 7 + x5 + 3x2 x4 = 6 + 2x5 + 2x2 x1, x2, x3, x4, x5 ≥ 0 1. Bringe das LP in Gleichungsform. 2. Starte mit einem dual zulässigen Simplextableau (nicht-positive ZFs-Koeffizienten). 3. Wähle eine primal unzulässige Basisvariable xi, die die Basis verlassen soll. Falls es keine gibt, dann ist die aktuelle Basislösung primal zulässig. 4. Wähle diejenige primale Nichtbasisvariable xj als eintretende Variable, die zur größtmöglichen Verbesserung der dualen Zielfunktion führt, ohne dass eine Nichtbasisvariable dual unzulässig wird. Falls es keine solche Variable xj gibt, dann ist das Problem dual unbeschränkt (primal unzulässig). 5. Führe einen Pivotschritt durch, bei dem xi die Basis verlässt und xj in die Basis eintritt. Gehe zu Schritt 3. Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 18 Methoden zur Bestimmung einer zulässigen Basislösung ▪ LP-Modell ist nicht in kanonischer Form wegen: Negative rechte Seiten und / oder Keine Einheitsmatrix unter Schlupfvariablen ▪ Methode: Dualer Simplex (Big-) M-Methode Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 19 Ablauf einer Iteration des dualen Simplex-Algorithmus (Kochrezept) ▪ Schritt 1: Wahl der Pivotzeile s Keine negativen rechten Seiten (𝑏𝑖′ ≥ 0 für i = 1,…,m): aktuelle Basislösung ist zulässig → Abbruch (evtl. primalen Simplex zur Fortsetzung) Ansonsten wähle Zeile s mit kleinstem 𝑏𝑖′ (< 0) als Pivotzeile (Tie Breaker: beliebig) ▪ Schritt 2: Wahl der Pivotspalte t ′ Alle Koeffizienten 𝑎𝑠𝑗 in der Pivotzeile s nichtnegativ → Modell dual unbeschränkt, primal unzulässig/unlösbar, Abbruch Ansonsten wähle Pivotspalte t, für die gilt: 𝑐𝑡′ ′ 𝑎𝑠𝑡 = 𝑚𝑎𝑥 𝑐𝑗′ ′ 𝑎𝑠𝑗 ′ : 𝑗 = 1, … , 𝑛 𝑚𝑖𝑡 𝑎𝑠𝑗 <0 Pivotelement: 𝒂′𝑠𝑡 Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 20 Ablauf einer Iteration des dualen Simplex-Algorithmus (Kochrezept) ▪ Schritt 3: Berechnung der neuen Basislösung, Tableautransformation (wie bei primalem Simplex) Tausche bisherige BV in Pivotzeile s gegen bisherige NBV 𝑥𝑡 ′ Schaffe unter neuer BV 𝑥𝑡 einen Einheitsvektor mit 𝑎𝑠𝑡 = 1 durch Anwenden linearer Transformationen: ′ a) Dividiere die Pivotzeile durch das Pivotelement 𝑎𝑠𝑡 ′ b) Multipliziere die neue Pivotzeile mit −𝑎𝑖𝑡 und addiere sie zur Zeile i hinzu (für alle i ohne s) ▪ Fahre mit Schritt 1 fort, d.h. beginne eine neue Iteration Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 21 Dualer Simplex: Beispiel im Tableau Beispiel: Maximiere 𝐹 𝑥1 , 𝑥2 = 4𝑥1 + 5𝑥2 unter den Nebenbedingungen 6𝑥1 + 5𝑥2 ≥ 120 −6𝑥1 − 5𝑥2 ≤ −120 −6𝑥1 − 5𝑥2 + 𝑥3 = −120 3𝑥1 + 5𝑥2 ≤ 110 3𝑥1 + 5𝑥2 ≤ 110 3𝑥1 + 5𝑥2 + 𝑥4 = 110 2𝑥1 + 4𝑥2 ≥ 80 −2𝑥1 − 4𝑥2 ≤ −80 −2𝑥1 − 4𝑥2 + 𝑥5 = −80 𝑥1 , 𝑥2 ≥ 0 𝑥1 , 𝑥2 ≥ 0 𝑥1 , 𝑥2 ≥ 0 BV 𝑥3 𝑥4 𝑥5 F 𝑥1 -6 3 -2 -4 𝑥2 -5 5 -4 -5 𝑥3 1 0 0 0 Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 22 𝑥4 0 1 0 0 𝑥5 0 0 1 0 b -120 110 -80 0 Dualer Simplex: Beispiel im Tableau 𝑥2 -5 5 -4 -5 𝑥3 1 0 0 0 𝑥4 0 1 0 0 𝑥5 0 0 1 0 b 𝑥3 𝑥4 𝑥5 𝑥1 -6 3 -2 -4 𝑥2 1 0 0 0 𝑥3 -0,2 1 -0,8 -1 𝑥4 0 1 0 0 𝑥5 0 0 1 0 b 𝑥2 𝑥4 𝑥5 𝑥1 1,2 -3 2,8 2 𝑥2 1 0 0 0 𝑥3 0,2 -1/3 2/15 -1/3 𝑥4 0,4 -1/3 14/15 2/3 𝑥5 0 0 1 0 b 𝑥2 𝑥1 𝑥5 𝑥1 0 1 0 0 𝑥2 1 0 0 0 𝑥3 0 0 1 0 𝑥4 -1 2 7 3 𝑥5 -1,5 2,5 7,5 2,5 b 𝑥2 𝑥1 𝑥3 𝑥1 0 1 0 0 BV F Dualer Simplex BV F Dualer Simplex BV F Primaler Simplex BV F Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 23 -120 110 -80 0 24 -10 16 120 20 3 1/3 6 2/3 113 1/3 10 20 50 130 Klausurvorbereitung Domschke, W. und A. Drexl (2015): Einführung in Operations Research. 9. Aufl., Springer-Verlag, Berlin et al., Kapitel 2 Zur Klausurvorbereitung sind die Aufgaben 2.5, 2.7–2.12, 2.14 und 2.16 aus dem Übungsbuch „Übungen und Fallstudien zum Operations Research“ von Domschke, Drexl, Klein, Scholl und Voß sehr zu empfehlen. Version 1.2 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 24 Einführung in Operations Research Graphentheorie Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 1 Begriffe der Graphentheorie Ein Graph besteht aus Knoten, die mit Kanten (Pfeilen) verbunden sind. Wenn diese Kanten eine Orientierung besitzen, spricht man von gerichteten, ansonsten von ungerichteten Graphen. V: nichtleere Knotenmenge (vertex = Knoten; Knoten werden meist durch natürliche Zahlen i = 1,...,n bezeichnet E: Kanten-/Pfeilmenge (edge = Kante) ungerichteter Graph V = {1,2,3,4} E = {[1,2], [1,3], [2,3], [2,4]} gerichteter Graph V = {1,2,3,4} E = {(1,2), (1,3), (2,1), (2,3), (4,2)} Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 2 Begriffe der Graphentheorie ▪ ▪ ungerichteter Graph gerichteter Graph Schreibweise für G G = [V,E] G = (V,E) Elemente von E Kanten Pfeile Schreibweise für Knotenpaare [i,j] = [j,i] (i,j) Kante [i,j]: i und j werden Endknoten genannt Pfeil (i,j): i = Anfangsknoten, j = Endknoten ▪ zwei Pfeile mit identischen Anfangs- und Endknoten = parallele Pfeile, analog dazu: parallele Kanten ▪ Einen Pfeil (i,i) bzw. Kante [i,i] nennt man Schlinge. ▪ Graph ohne parallele Kanten bzw. Pfeile und ohne Schlingen = schlichter Graph Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 3 Vorgänger und Nachfolger in gerichteten Graphen ▪ Knoten j heißt Nachfolger eines Knotens i, wenn ein Pfeil (i,j) existiert. i wird als Vorgänger von j bezeichnet. Die Knoten i und j sind mit dem Pfeil inzident. ▪ Menge aller Nachfolger: N(i) ▪ Menge aller Vorgänger: V(i) ▪ Nachbarn eines Knotens: NB(i) = N (i) V (i) ▪ Ein Knoten i mit V(i) = Ø heißt Quelle, ein Knoten i mit N(i) = Ø Senke des Graphen. Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 4 Nachbarn in ungerichteten Graphen ▪ ▪ ▪ ▪ Knoten i und j heißen Nachbarn, wenn [i,j] eine Kante von G ist. Menge der Nachbarn eines Knotens i: NB(i) Anzahl der mit einem Knoten i inzidenten Kanten: Knotengrad 𝒈𝒊 in schlichten Graphen: 𝑔𝑖 = 𝑁𝐵(𝑖) für alle Knoten i Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 5 Digraphen schlichter, gerichteter Graph G = (V,E) mit endlicher Knotenmenge = Digraph Ein Digraph heißt vollständig, wenn für alle Knotenpaare i, j die Pfeile (i,j) und (j,i) existieren Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 6 Wege & Ketten Sei G = (V,E) ein gerichteter Graph ▪ Weg: Folge 𝑝1 , … , 𝑝𝑡 von Pfeilen, für die eine Folge 𝑗0 , … , 𝑗𝑡 von Knoten mit 𝑝ℎ = (𝑗ℎ−1 , 𝑗ℎ ) für alle h=1,...,t existiert. ▪ Ein Weg wird durch die in ihm enthaltenen Knoten dargestellt: 𝑤 = (𝑗0 , … , 𝑗𝑡 ) ▪ Kette: Folge 𝑝1 , … , 𝑝𝑡 von Pfeilen, für die eine Folge 𝑗0 , … , 𝑗𝑡 mit 𝑝ℎ = (𝑗ℎ−1 , 𝑗ℎ ) oder 𝑝ℎ = 𝑗ℎ , 𝑗ℎ−1 für alle h=1,...,t existiert. ▪ Richtungssinn der Pfeile hier beliebig ▪ Eine Kette wird dargestellt als: 𝑘 = 𝑗0 , … , 𝑗𝑡 ▪ analog dazu: Ketten in ungerichteten Graphen ▪ Weg bzw. Kette mit identischen Anfangs- und Endknoten 𝑗0 , … , 𝑗𝑡 heißt geschlossener Weg (= Zyklus) bzw. geschlossene Kette (= Kreis). Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 7 Bäume und 1-Bäume ▪ Ein Graph G heißt zusammenhängend, wenn jedes Knotenpaar von G durch mindestens eine Kette verbunden ist. ▪ zusammenhängender, kreisloser (ungerichteter) Graph = Baum ▪ zusammenhängender, ungerichteter Graph mit genau einem Kreis = 1-Baum Vorgegebener Knoten 𝑖0 gehört zum Kreis und besitzt den Knotengrad 2 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 8 Teilgraphen, spannende Bäume und 1-Bäume eines Graphen Sei G = [V,E] zusammenhängender, ungerichteter Graph mit |V| = n ▪ 𝐺 ′ = [𝑉 ′ , 𝐸 ′ ] mit 𝑉′ ⊆ 𝑉 und 𝐸′ ⊆ 𝐸 nennt man Teilgraph von G ▪ zusammenhängender, kreisfreier Teilgraph ത von G = spannender Baum von G 𝑇 = [𝑉, 𝐸] ത von G ▪ zusammenhängender Teilgraph 𝑇1 = [𝑉, 𝐸] mit 1-Baum-Eigenschaft = 1-Baum von G Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 9 Graphen mit Pfeil- bzw. Kantenbewertungen ▪ gerichteter bzw. ungerichteter Graph G, dessen Pfeile bzw. Kanten eine Bewertung c(i,j) bzw. c[i,j] besitzen = (pfeil- bzw. kanten-) bewerteter Graph ▪ c ist eine Abbildung 𝐸 → ℝ, die jedem Pfeil bzw. jeder Kante einen Kostenwert zuordnet.- gerichtet ungerichtet ▪ Notation: G = (V,E,c) bzw. G = [V,E,c] ▪ Für die Bewertung c(i,j) bzw. c[i,j] wird häufig die Indexschreibweise 𝒄𝑖𝑗 verwendet. Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 10 Kürzeste Wege & Entfernungen Gegeben: G = (V,E,c) bewerteter, gerichteter Graph, 𝑤 = (𝑗0 , … , 𝑗𝑡 ) Weg von G ▪ Länge des Weges w = Summe aller Pfeilbewertungen 𝑐 𝑤 = σ𝑡ℎ=1 𝑐𝑗ℎ−1𝑗ℎ ∗ ▪ Weg 𝑤𝑖𝑗 heißt kürzester Weg von Knoten i nach Knoten j, falls kein ∗ anderer Weg 𝑤𝑖𝑗 von i nach j mit 𝑐(𝑤𝑖𝑗 ) < 𝑐(𝑤𝑖𝑗 )existiert. ∗ ▪ 𝑐 𝑤𝑖𝑗 = kürzeste Entfernung von i nach j in G Weg 𝑤 = (1,2,3,5) ↳summe von hante Länge 𝑐 𝑤 = 20 + 20 + 10 = 50 has It günstig. Ist ∗ kürzester Weg 𝑤 = 𝑤15 ∗ kürzeste Entfernung 𝑐 𝑤15 = 50 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 11 Minimale spannende Bäume & 1-Bäume Sei G = [V,E,c] bewerteter, zusammenhängender, ungerichteter Graph ▪ spannender Baum 𝑇 ∗ = [𝑉, 𝐸 ∗ ] von G mit minimaler Summe der Kantenbewertungen = minimal spannender Baum von G ▪ 1-Baum T von G (mit ausgezeichnetem Knoten 𝑖0 ) heißt minimaler 1Baum von G (mit 𝑖0 ), wenn Summe der Kantenbewertungen ≤ der aller anderen 1-Bäume von G (mit 𝑖0 ) ist. (Problem der Bestimmung eines minimalen 1-Baums von G = 1-Baum-Problem) Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 12 Speicherung von Knotenmengen und Graphen Datenstrukturen zur Speicherung für die in Kap. 3.2, 3.3 und 5 beschriebenen Algorithmen ▪ Speicherung von Knotenmengen Schlange = Warteschlange = FIFO-Schlange = Queue ▪ Speicherung von Graphen Matrizen Standardliste Knotenorientierte Listen Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 13 Speicherung von Knotenmengen und Graphen warte schlang Schlange ▪ Folge von Elementen, bei der nur am Ende Elemente hinzugefügt und nur am Anfang entfernt werden können ▪ erstes Element = Schlangenkopf, letztes Element = Schlangenende ▪ symbolische Darstellung des Zustands einer Schlange: <Schlangenkopf,...,Schlangenende] ▪ Analogie: Kunden-Warteschlange vor Postschalter ▪ für den FIFO-Algorithmus (Kap. 3.2.1) benötigt Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 14 Implementierung der Schlange Implementierung der Schlange ▪ Speicherung in 1-dimensionalem Feld S[1...n] (n = Anzahl der Knoten des Graphen) ▪ SK = Anfangszeiger (Schlangenkopf) ▪ SE = Endzeiger (Schlangenende) vorgänge nachgege ▪ Zellen von S verweisen aufeinander; S[i] = j ist der Knoten, der auf Knoten i in der Schlange folgt Beispiel: Knotenmenge V = {1,...,8}, Schlange enthält <3,6,1,5] E Yps SK = 3 ; SE = 5 i under. sow S[i] 1 5 2 3 4 6 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 15 5 6 1 7 Ende 8 Implementierung der Schlange Beispiel: Knotenmenge V = {1,...,8}, Schlange enthält <3,6,1,5] SK = 3 ; SE = 5 i 1 S[i] 5 2 3 4 5 6 6 7 8 7 8 1 Um Knoten 2 hinzuzufügen: S[SE]:= 2 und SE := 2 Um Knoten 3 zu entfernen: SK := S[SK] Inever → neuer Zustand <6,1,5,2] sk istEintrag SK. bei SK = 6 ; SE = 2 i 1 2 S[i] 5 0 Si 3 4 (6) ↳ Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 16 5 6 2 1 Matrixspeicherung ▪ zur Speicherung eines bewerteten Digraphen G = (V,E,c) mit maximal n Knoten ▪ nur für schlichte Graphen geeignet ▪ Kostenmatrix (𝒏 × 𝒏-Matrix) ▪ Vorgängermatrix (𝒏 × 𝒏-Matrix) ▪ wird benötigt für Tripel-Algorithmus Vorgängermatrix VG(G) = (vgij ) Kostenmatrix C (G) = (cij ) & kanten =Diagonale 0 cij = C (i, j ) kosten falls i=j · went pfeilex. für alle (i,j) E sonst i vgij = 0 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 17 -> wenn kanteEcht falls i=j oder (i,j) E sonst Beispiel: Matrixspeicherung ~nach? cri (114) Kostenmatrix C (G) = (cij ) Vorgängermatrix VG(G) = (vgij ) 0 20 10 0 20 50 C (G ) = 0 10 20 0 50 20 0 11 12 13 14 15 21 31 41 51 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 18 -(1,2) 1 1 0 2 VG (G ) = 0 0 von Inger worg.y 0 4 0 0 2 0 2 3 0 5 (1,4) 1 0 0 4 0 15:3) 0 ↳ei_vorgänger 2 2 vorgänger 3 4 welche egal 5 von - ist 5 3,5) von 5 ist - vorgänger von 3 ist 5 3 Standardliste ▪ zur Speicherung eines bewerteten, gerichteten Graphen G = (V,E,c) ▪ für jeden Pfeil j = 1,...,m werden Anfangsknoten, Endknoten und Bewertung in einer Liste gespeichert ▪ Ein Graph mit n Knoten und m Pfeilen lässt sich durch Angabe von n, m und dieser Liste vollständig beschreiben Beispiel: Pfeil =O ⑧ Anfangsknoten Endknoten Bewertung 1 0 1 2 1 4 10 3 2 3 20 4 2 5 50 5 4 2 20 6 4 5 50 7 3 5 10 8 5 3 20 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 19 0 2 = 20 = Knotenorientierte Listen ▪ gegeben: unbewerteter, gerichteter Graph mit n Knoten und m Pfeilen ▪ Voraussetzung: Pfeile j sind so von 1,...,m nummeriert, dass von Knoten i ausgehende Pfeile kleinere Nummern besitzen als von Knoten i+1 ausgehende ▪ Felder zur Speicherung Feld mit Zeigern auf Endknoten ZEP[1...n+1] Endknotenfeld EK[1...m] ▪ Bedeutung der Felder EK[j] ist der Endknoten von Pfeil j ZEP[i] ist die Nummer des ersten von Knoten i ausgehenden Pfeils ▪ Anzahl der von Knoten i ausgehenden Pfeile = ZEP[i+1]–ZEP[i] ▪ Setzen ZEP[n+1] := m+1, damit keine Sonderbehandlung des letzten Knotens nötig ▪ für Pfeilbewertung kann weiteres Feld C[1...m] eingeführt werden Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 20 Knotenorientierte Listen Ausgeh. Liste d. Kanten von izacan Knote 1 . 2 - x(1,4) List. a plaile - 3 4 kanten kante, 5 8 6 8 kingent von 7 kanten kn. 1 => ↳n alle hanten kanten. alle dann hin. dann un 3. ↳ 17 - beschr. alle 1 + knoten (n) 5 => S kanten alle kanten kn. => kn5 kn6 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 21 von 5 u.6 8 - -> 9 5 anschauer 3 -> ernte = also(5,3) kuntert, zu C Kürzeste Wege in Graphen ▪ Baumalgorithmen Dijkstra-Algorithmus FIFO-Algorithmus kürz. Wege ▪ Tripel-Algorithmus Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 22 finden Baumalgorithmen ▪ Input Digraph G = (V,E,c) mit n Knoten und Bewertungen 𝒄𝑖𝑗 für alle Pfeile (i,j) Startknoten 𝒂 ∈ 𝑽 von dem ausgehend Entfernungen und Wege zu allen anderen Knoten von G bestimmt werden sollen ▪ Verwendete Datenstrukturen Feld D[1...n]: D[i] = kürzeste Entfernung von a nach i Feld R[1...n]: R[i] = unmittelbarer Vorgänger von i in einem kürzesten Weg von a nach i Menge markierter Knoten (bei Dijkstra: ungeordnete Menge MK; bei FIFO: Warteschlange S) ▪ Output kürzeste Entfernungen in D Baum kürzester Wege in R Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 23 Ablauf von Baumalgorithmen ▪ Start: D[a] := 0 und D[i] := ∞ für alle Knoten 𝒊 ≠ 𝒂; MK := {a} ▪ in jeder Iteration wähle nach einem bestimmten Verfahren einen Knoten h aus MK prüfe für alle Nachfolger j, ob Weg von a nach j über h kürzer als die kürzeste momentan bekannte Entfernung von a nach j falls kürzerer Weg von a nach j gefunden, wird j in MK aufgenommen entferne h aus MK ▪ Abbruch, wenn MK=Ø Auswahl des Knotens h: ▪ Dijkstra-Algorithmus: Knoten aus MK mit kleinster aktueller Entfernung von a ▪ FIFO-Algorithmus: Knoten am Kopf der Warteschlange S Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 24 E.W. Dijkstra Dijkstra-Algorithmus Start: Setze D[a] := 0 und D[i] := ∞ für alle Knoten 𝒊 ≠ 𝒂 ; MK := {a} while (𝑀𝐾 ≠ Ø) do begin wähle Knoten h aus MK mit 𝐷 ℎ = 𝑚𝑖𝑛{𝐷 𝑖 |𝑖 ∈ 𝑀𝐾} for each 𝑗 ∈ 𝑁(ℎ) do begin if 𝐷 𝑗 > 𝐷 ℎ + 𝑐ℎ𝑗 then begin 𝐷 𝑗 ≔ 𝐷 ℎ + 𝑐ℎ𝑗 ; 𝑅 𝑗 ≔ ℎ; füge Knoten j zu Menge MK hinzu end; end; eliminiere Knoten h aus MK end; Anmerkung: falls 𝒄𝒊𝒋 ≥ 𝟎 → 𝒘∗𝒂𝒋 liegt fest, sobald j aus MK entfernt ist Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 25 Beispiel: Dijkstra-Algorithmus Start: MK = {1} i D[i] 1 dist. zu 0 sich selbstrest - - 2 3 4 5 ∞ ∞ ∞ ∞ start R[i] → h = 1; Iteration 1 ergibt: MK = {2,4} i 1 2 3 4 5 D[i] 0 20 ∞ 10 ∞ R[i] 1 I nachfaim => → h = 4; Iteration 2 ergibt: MK = {2,5} nachfolger i D[i] R[i] 1 0 2 20 1 3 ∞ 4 4 2 und hier D[4] D[1] > 0 für 4 = 5 10 60 1 4 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 26 b(2] 20 [2]> D[1] B 1 en D[2] D[1]+212 20 = also = R[2] 214 von vörg. 1 = = ist 2 + 528 in 10 10 = + c1 = => also CreV + => D92) 20(D[4] (4 + 2 10 20 = = wurde + mark. 36 = bleibt b(53-b(43 445 + 10 = 50 + 60 = => D(5] => Mk 52,5 = 60 = 2 nicht = 5 => man geudatet, wurde bleibt gelblutet. E ↑ über 5 d erreicht als ersetzt 5 Beispiel: Dijkstra-Algorithmus → h = 2; Iteration 3 ergibt: MK = {3,5} i 1 2 3 4 5 D[i] 0 20 40 10 60 1 4 R[i] 1 ↓2 → h = 3; Iteration 4 ergibt: MK = {5} i 1 2 3 4 5 D[i] 0 20 40 10 50 1 2 1 3 R[i] Iteration 5 ergibt: keine Entfernungsänderung, MK=Ø → Abbruch Baum kürzester Wege: Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 27 nachfolger => 2 FIFO-Algorithmus (Ford-Moore Algorithmus) zusätzliche Voraussetzung hier: G ohne Zyklus negativer Länge, darf jedoch negative 𝒄𝑖𝑗 enthalten Start: Setze D[a] := 0 und D[i] := ∞ für alle Knoten 𝒊 ≠ 𝒂; S := <a] while (𝑆 ≠ Ø ) do begin wähle als Knoten h den Knoten am Kopf der Warteschlange S for each 𝑗 ∈ 𝑁(ℎ) do begin if 𝐷 𝑗 > 𝐷 ℎ + 𝑐ℎ𝑗 then begin 𝐷 𝑗 ≔ 𝐷 ℎ + 𝑐ℎ𝑗 ; 𝑅 𝑗 ≔ ℎ; füge Knoten j an Ende der Warteschlange S an, sofern nicht bereits enthalten end; end; entferne Knoten h vom Kopf der Warteschlange S end; Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 28 Beispiel: FIFO-Algorithmus Start: S := <1] i 1 2 3 4 5 D[i] 0 ∞ ∞ ∞ ∞ R[i] → h = 1; Iteration 1 ergibt: S = <2,4] i 1 2 3 4 5 D[i] 0 20 ∞ 10 ∞ R[i] 1 1 → h = 2; Iteration 2 ergibt: S = <4,3,5] i 1 2 3 4 5 D[i] 0 20 40 10 70 1 2 1 2 R[i] Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 29 => next Beispiel: FIFO-Algorithmus → h = 4; Iteration 3 ergibt: S = <3,5] i 1 2 3 4 5 D[i] 0 20 40 10 60 1 2 1 4 R[i] → h = 3; Iteration 4 ergibt: S = <5] i 1 2 3 4 5 D[i] 0 20 40 10 50 1 2 1 3 R[i] Iteration 5 ergibt: keine Entfernungsänderung, S = Ø → Abbruch Fifo:beiunvollst. Graph => Dikstra:bei => dichten, vollst. Graph. Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 30 Rekursive Entwicklung eines kürzesten Weges Baumalgorithmen: liefern Baum kürzester Wege in R b := x; while not 𝑅 𝑏 ∈ {0, 𝑎} do begin Print(R[b]); b := R[b]; end; gibt kürzesten Weg zwischen Knoten a und gegebenem Knoten x aus (rückwärts) i 1 D[i] 0 R[i] Tateseinen 2 3 4 5 20 40 10 50 1 2 1 3 Für a := 1 und b := 5 → R[5] = 3 → R[3] = 2 → R[2] = 1 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 31 Der Tripel-Algorithmus (Floyd-Warshall Algorithmus) ▪ Input: bewerteter Digraph G=(V,E,c) ohne Zyklus negativer Länge in Matrizenspeicherung Kostenmatrix 𝐶 𝐺 = (𝑐𝑖𝑗 ), eine (𝒏 × 𝒏-Matrix) Vorgängermatrix 𝑉𝐺 𝐺 = (𝑣𝑔𝑖𝑗 ), eine (𝒏 × 𝒏-Matrix) ▪ Ablauf für jeden Knoten j wird genau einmal geprüft, ob über ihn zwischen jedem Paar von Knoten i,k ein kürzerer Weg als der aktuell bekannte existiert ▪ Output: kürzeste Wege und Entfernungen zwischen jedem Knotenpaar i,j Entfernungsmatrix 𝐷 𝐺 = 𝑑𝑖𝑗 in 𝐶 𝐺 = 𝑐𝑖𝑗 Routenmatrix 𝑅 𝐺 = (𝑟𝑖𝑗 ) in 𝑉𝐺 𝐺 = (𝑣𝑔𝑖𝑗 ) falls i=j 0 dij = c( wij ) falls Weg von i nach j existiert sonst Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 32 h h ist Vorgänger von j in wij rij = 0 sonst Tripel-Algorithmus for 𝑗 ∶= 1 to n do for 𝑖 ∶= 1 to n do for 𝑘 ∶= 1 to n do begin 𝑠𝑢 ≔ 𝑐𝑖𝑗 + 𝑐𝑗𝑘 ; if 𝑠𝑢 < 𝑐𝑖𝑘 then begin 𝑐𝑖𝑘 ≔ 𝑠𝑢; 𝑣𝑔𝑖𝑘 ≔ 𝑣𝑔𝑗𝑘 ; end; end; Es wird systematisch für alle Tripel (𝑖, 𝑗, 𝑘) geprüft, ob 𝑐𝑖𝑘 durch den evtl. kleineren Wert 𝑐𝑖𝑗 + 𝑐𝑗𝑘 ersetzt werden kann. Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 33 Beispiel: Tripel-Algorithmus Kostenmatrix Vorgängermatrix 0 20 10 0 20 50 C (G ) = 0 10 20 0 50 20 0 𝑎13 = ∞ da(1,3) E 1 0 VG (G ) = 0 0 0 1 2 0 4 0 0 2 3 0 5 1 0 0 4 0 0 2 3 4 5 𝑣𝑔23 = 2 da 2 Vorgänger von 3 in G → Ergebnis: Entfernungsmatrix 0 20 40 10 0 20 D(G ) = 0 20 40 0 20 Routenmatix 50 30 10 50 0 𝑑13 ≤ ∞ da der Weg (1,2,3) existiert Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 34 1 0 R(G ) = 0 0 0 1 2 0 4 0 2 2 3 2 5 1 0 0 4 0 3 3 3 4 5 ∗ 𝑟13 = 2 → 2 ist Vorgänger von 3 in 𝑤13 Minimale spannende Bäume und minimale 1-Bäume ▪ Algorithmen zur Lösung von Relaxationen für symmetrische TravelingSalesman-Probleme (Kap. 6.5.2) weitere Anwendungsmöglichkeit: Bestimmung eines kostenminimalen Versorgungsnetzes als Problem der Bestimmung eines minimalen spannenden Baumes formuliert Bestimmung eines minimalen spannenden Baumes Der Kruskal-Algorithmus ▪ Voraussetzung: bewerteter, zusammenhängender, schlingenfreier, ungerichteter Graph 𝐺 = [𝑉, 𝐸, 𝑐] mit n Knoten und m Kanten ▪ 𝐸ത ist die zu bestimmende Kantenmenge des gesuchten MSB 𝑇 = 𝑉, 𝐸ത Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 35 Kruskal-Algorithmus Start: Sortiere die Kanten 𝑘𝑖 von G in einer Reihenfolge 𝑘1 , 𝑘2 , … , 𝑘𝑚 mit monoton steigenden 𝑐(𝑘𝑖 ) Setze 𝐸ത ≔ Ø und 𝑇 ≔ 𝑉, 𝐸ത (T zu Beginn: Teilgraph von G ohne Kanten) Iteration µ= 1,2,...,m: ▪ Wähle die Kante 𝑘µ aus ▪ Füge 𝑘µ zu 𝐸ത hinzu, wenn die Aufnahme der Kante in 𝑇 ≔ 𝑉, 𝐸ത keinen Kreis erzeugt 𝐸ത ≔ 𝐸ത ∪ 𝑘µ Abbruch: sobald 𝐸ത genau n–1 Kanten enthält → T ist zusammenhängend Ergebnis: 𝑇 ≔ 𝑉, 𝐸ത ist ein minimaler spannender Baum von G; Summe seiner Kantenbewertungen 𝑐 𝑇 = σ𝑘∈𝐸ത 𝑐(𝑘) Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 36 Beispiel: Kruskal-Algorithmus Tie-Breaker: bei gleicher Bewertung sind Kanten nach steigenden Nummern der mit ihnen inzidenten Knoten sortiert 𝑘1 , 𝑘2 , … , 𝑘𝑚 : [1,3], [2,5], [3,5], [1,2], [2,3], [3,4], [5,6], [1,4], [3,6], [4,6] bew. I bew: 3 4 Graph G 4 einzelne nach kanten der 6 5 Reihenfolge hinzufügen, ohne dass ein kreis entsteht minimal spannender Baum von G n n Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 37 5 4 4 eknoten = - 1 kunter = Bestimmung eines minimalen 1-Baumes ▪ Verfahren baut auf Kruskal-Algorithmus auf ▪ Voraussetzung: bewerteter, zusammenhängender, schlingenfreier, ungerichteter Graph 𝐺 = [𝑉, 𝐸, 𝑐] mit n Knoten und m Kanten ▪ vorgegeben: Knoten 𝑖0 ∈ 𝑉 mit Grad ≥ 2, der kein Artikulationsknoten ist (Artikulationsknoten = Knoten, durch dessen Entfernung der Graph unzusammenhängend wird) Ablauf: Schritt 1: Erzeuge Graphen 𝑮′, der durch Weglassen von Knoten 𝒊𝟎 und aller mit ihm inzidenten Kanten entsteht Schritt 2: Bestimme mit dem Kruskal-Algorithmus einen minimalen spannenden Baum 𝑇′ für 𝐺′ Schritt 3: Erweitere 𝑇′ um den Knoten 𝑖0 und die beiden niedrigstbewerteten mit 𝑖0 inzidenten Kanten Ergebnis: minimaler 1-Baum von 𝐺 zu 𝑖0 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 38 Beispiel: Minimaler 1-Baum (𝒊𝟎 = 𝟏) ① weg alle ↑ Kruskal unwerden minimal spannender Baum von 𝐺′ ihre hunter Weglassen von 𝑖0 = 1 → Graph 𝐺′ Graph G algorith und mit wieder der niedr z winzufügen bewe minimaler 1-Baum von 𝐺 (𝑖0 = 1) Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 39 Beispiel: Minimaler 1-Baum (𝒊𝟎 = 𝟓) Graph G minimal spannender Baum von 𝐺′ Weglassen von 𝑖0 = 5 → Graph 𝐺′ minimaler 1-Baum von 𝐺 (𝑖0 = 5) Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 40 Klausurvorbereitung Domschke, W. und A. Drexl (2015): Einführung in Operations Research. 9. Aufl., Springer-Verlag, Berlin et al., Kapitel 3 Zur Klausurvorbereitung sind die Aufgaben 3.2, 3.4b) (unter Anwendung des Dijkstra-Algorithmus), 3.8 und 3.9 zur Bestimmung kürzester Wege in Graphen sowie 3.7a) zum Thema kostenminimale Vernetzung aus dem Übungsbuch „Übungen und Fallstudien zum Operations Research“ von Domschke, Drexl, Klein, Scholl und Voß sehr zu empfehlen. Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 41 Einführung in Operations Research Lineare Programmierung mit spezieller Struktur Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 1 Das klassische Transportproblem (TPP) Problemstellung und Verfahrensüberblick ▪ Transport eines homogenen Gutes ▪ m Anbieter 𝐀𝐢 (𝑖 = 1, … , 𝑚) mit Angebotsmengen ▪ n Nachfrager 𝐁𝐣 (𝑗 = 1, … , 𝑛) mit Nachfragemengen ▪ Kosten 𝐜𝐢𝐣 für Transport einer ME von 𝐀𝐢 nach 𝐁𝐣 angebotsmenge=nachfrage e ▪ zur Vereinfachung: σ𝐢 𝐚𝐢 = σ𝐣 𝐛𝐣 ↳n acb =) a) istok. ▪ Gesucht: kostenminimaler Transportplan, durch den alle Bedarfe befriedigt werden ↳ -> - ⑬ne I alle überig gebliebe Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 2 a's Beispiel 3 m=3 Anbieter, n=4 Nachfrager 𝐜𝐢𝐣 𝐁𝟏 𝐁𝟐 𝐁𝟑 𝐁𝟒 𝐚𝐢 𝐀𝟏 7 𝐀𝟐 𝐀𝟑 𝐛𝐣 Transportkosten 2 4 7 10 9 5 3 3 8 7 7 6 4 7 6 25 F An -> 6 ↳> B1 5 8 nachfrage Menge Al nu ME => zai - 𝐁𝟏 𝐁𝟐 𝐁𝟑 𝐀𝟏 5 5 𝐀𝟐 Transport 3 menge 𝐀𝟑 6 𝐛𝐣 6 5 8 𝐁𝟒 Nachfrager 4 hat 10ME verfügbar zbi = zulässiger Transportplan (Lösung des TPP): 𝐗 𝐢𝐣 anbieter, 𝐚𝐢 Transportgraph ↑ 10 5 8 1 7 6 K=100 &- sie Gesamtkosten: K(x) = 2·5 + 4·5 + 3·3 + 3·5 + 6·7 + 4·1 = 100 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 3 9 transportmenge Mathematische Formulierung des klassischen Transportproblems (TPP) - n Minimiere F(x) = σm i=1 σj=1 cij x ij & unter den Nebenbedingungen ui σnj=1 xij = ai für i = 1, … , m vj σm i=1 x ij = bj für j = 1, … n xij ≥ 0 für alle i und j Erläuterung: 𝐱 𝐢𝐣 von Anbieter Ai zu Nachfrager Bj zu transportierende ME 𝐮𝐢 , 𝐯𝐣 mit den NB korrespondierende Dualvariablen 𝐜𝐢𝐣 Kosten des Transports einer ME von Ai zu Bj 𝐚𝐢 Angebotsmengen 𝐛𝐣 Nachfragemengen Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 4 Beispiel einer TPP-Instanz 7 2 4 7 Kostenmatrix C = (cij ) = 9 5 3 3 7 7 6 4 Angebotsmengen a = (10,8,7) Nachfragemengen b = (6,5,8,6) Struktur der Nebenbedingungen dieses TPPs: NB A1 x11Anbietenachfreixe12 ↓ 1 1 x13 x14 1 1 A2 A3 B1 B2 B3 B4 1 alle war auf die Ne sich bezieht 1 3 x21 3 1 x22 x23 1 1 x24 3 x31 1 1 3 x32 NB - x33 x34 Matrix a1 = 10 a2 = 8 1 1 1 1 1 1 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 5 b2 = 5 1 1 b3 = 8 1 1 a3 = 7 b1 = 6 1 1 ai Τbj 1 b4 = 6 Zulässige Basislösung eines TPP Jede zulässige Basislösung eines TPPs mit m Anbietern und n Nachfragern besitzt genau m+n–1 Basisvariablen. Begründung: eine redundante NB → nur m+n–1 echte Restriktionen und x31 Basisvariablen & x+Xxexen Beispiel: Nebenbedingung B4 = A1 + A2 + A3 − B1 − B2 − B3 xn - - x 21 X1z - - X - x an ↓ NB x11 x12 x13 x14 A1 1 1 1 1 A2 x21 x22 x23 x24 1 1 1 B2 B3 B4 1 1 x33 x34 ai Τbj a2 = 8 1 1 1 x32 a1 = 10 A3 B1 x31 1 1 1 b1 = 6 1 1 1 1 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 6 b2 = 5 1 1 b3 = 8 1 1 a3 = 7 1 b4 = 6 Verfahren zur Lösung des klassischen TPP TPP ist ein lineares Optimierungsproblem → mit Simplex (M-Methode) lösbar effiziente Lösungsverfahren für das TPP nutzen spezielle Struktur Nordweststreckenregel Vogel‘sche Approximationsmethode Spaltenminimum-Methode MODI-Methode Stepping-Stone-Methode TPPInstanz Eröffnungsverfahren (Heuristik) Zulässige Basislösung Optimierungsverfahren Optimale Lösung Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 7 Transporttableau Zur Beschreibung der TPP-Lösungsverfahren und für Handrechnungen: ▪ xij , die Basisvariablen sind, werden durch Kästchen umrandet ▪ nicht besetzte Tableaufelder gelten als = 0 gesetzt (Nichtbasisvariablen) ▪ F = Zielfunktionswert der aktuellen Lösung Nachfrager 1 2 … n x12 x 22 … 2 x11 x 21 … x1n x 2n ai a1 a2 … … … … … … m x m1 x m2 … x mn am bj b1 b2 … bn F= Anbieter 1 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 8 Eröffnungsverfahren Nordwestecken-Regel ohne Berücksichtigung der Transportkosten → i.d.R. schlechte Lösungen ermittelt im Transporttableau von links oben nach rechts unten gehend Basisvariablen Start: i := j := 1 while (true) do begin // mit x11 ("links oben") starten // Iteration 𝐱 𝐢𝐣 ≔ 𝐦𝐢𝐧{𝐚𝐢 ; 𝐛𝐣 }; // xij auf größtmöglichen Wert setzen 𝐚𝐢 ≔ 𝐚𝐢 − 𝐱 𝐢𝐣 ; // ai und bj auf Restmengen korrigieren 𝐛𝐣 ≔ 𝐛𝐣 − 𝐱 𝐢𝐣 ; if (i = m) and (j = n) then break; if 𝐚𝐢 = 𝟎 then i := i+1 else j := j+1; // Abbruch wenn xmn ("rechts unten") erreicht // Schritt in Transporttabl. nach "unten" o. "rechts" end; Ergebnis: Zulässige Basislösung mit m+n–1 Basisvariablen Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 9 Flussdiagramm: Nordwesteckenregel Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 10 Beispiel 1: Nordwesteckenregel Angebotsmengen a = (10,8,7) Nachfragemengen b = (6,5,8,6) Kostenmatrix 𝐶 = (𝑐𝑖𝑗 ) beliebig, da nicht berücksichtigt Transporttableau: Nachfrager desAnbieter 1 2 3 e nachersch. Anbieter 1 6 ↳ min San 101 4 = 6 2 b= 1 nbinektnachte X 22 -> 3 bj Ergebnis: 7 1 6 -o nachfrage befriedigt ↳ 5 -A 0 ai 4 10 YAngebote bev ~ 0 8 - 8- 6 õ_ 7 - 6 bi - xen minsda;bat 4 = x11 = 6, x12 = 4, x22 = 1, x23 = 7, x33 = 1, x34 = 6; xij = 0 sonst Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 11 S 0 II baXez Xea zulässige Basislösung mit m+n–1=3+4–1=6 Basisvariablen a Io - I übrig - am -X1an - x 12 Beispiel 2: Nordwesteckenregel Angebotsmengen a = (11,9,6) Nachfragemengen b = (6,5,8,7) Kostenmatrix 𝐶 = (𝑐𝑖𝑗 ) beliebig, da nicht berücksichtigt Anbieter Transporttableau: Nachfrager 1 1 2 6 5 -1 2 3 ↳ 0 -> 0 = eckpunkt 8 3 bj 6 ai 11 BV - 4 5 8 1 9 6 6 7 Ergebnis: Primal degenerierte Basislösung mit 6 Basisvariablen x11 = 6, x12 = 5, x22 = 0, x23 = 8, x24 = 1, x34 = 6; xij = 0 sonst Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 12 Vogel’sche Approximationsmethode berücksichtigt die Transportkosten cij liefert i.d.R. wesentlich bessere Lösungen als Nordwesteckenregel in jeder Iteration: ▪ Auswahl einer neuen Basisvariablen (Transportverbindung) xpq ▪ Markierung einer Zeile p oder Spalte q, deren Angebots-/Nachfragemenge durch die Fixierung erschöpft/befriedigt ist Auswahlkriterium basierend auf dem Regret-Prinzip: ▪ Bestimmung der Kostendifferenzen zwischen zweitbilligster und billigster Liefermöglichkeit (für alle unmarkierten Zeilen und Spalten) ▪ Wahl einer unmarkierten Zeile oder Spalte mit größter Kostendifferenz ▪ Realisierung der billigsten Liefermöglichkeit mit maximal möglicher Transportmenge Ergebnis: zulässige Basislösung mit m+n–1 Basisvariablen Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 13 Flussdiagramm: Vogel’sche Approximationsmethode Stop Start; alle Zeilen und Spalten unmarkiert Berechne Kostendifferenzen dzi ≔ cih − cik für alle unmarkierten Zeilen i dsj ≔ chj − ckj für alle unmarkierten Spalten j (Kostenelemente nur aus unmarkierten Spalten/Zeilen) Wähle unmarkierte Zeile/Spalte mit größter Differenz dzi oder dsj aus cpq : kleinstes Kostenelement der Zeile oder Spalte Nimm xpq ≔ min ap , bq in Basis auf Reduziere ap ≔ ap − xpq und bq ≔ bq − xpq Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 14 nein Restmengen zuordnen ja n–1 Spalten oder m–1 Zeilen markiert? Markiere Spalte q Markiere Zeile p ja nein ap = 0 ? → bq = 0 Beispiel: Vogel’sche Approximationsmethode nostermatrix Angebotsmengen a = (10,8,7) Nachfragemengen b = (6,5,8,6) 7 2 4 7 Kostenmatrix C = (cij ) = 9 5 3 3 7 7 6 4 dzi X 13 Transporttableau: Nachfrager Anbieter 1 2 1 2 3 etzkezeikrei - bj [6] 6 ↑ Rest 1. It. 0 ds j 2. It. 0 3. It. 2 7 - 7 -> spalte 3 5 & x13 5 x 12 s 4 einsetzen weil 3 5 8 [1] 7 8 6 0 3 1 1 4 5-2 regnet. e - spaltach wer - 3 Rest 5 ⑧ von 5 10 5 0 3 ai 1 4 3 - 1 1 3 1 2 2 Anb. 1 rest 0 5 = 2. It. 4 => 3 6 => 4 - - 3. It. 4. It. 0 0 6 2 2 3 1. It. 3 2 - => 2 4 e Lregretwert 2 kleinsteinerte (zeile) sub. 1. 2. 3. 4. 1) 2) 4.It. 1. It. ↳nach 1 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 15 It.: x12 = 5 Spalte 2 markiert It.: x13 = 5 Zeile 1 markiert It.: x23 = 3 Spalte 3 markiert It.: x24 = 5 Zeile 2 markiert min regret-werte spalte/zeile höchst. mit Zeile/spalte Wert. 3) 4) regr. - neu Wert ohne zeilelspalte 1. It. von a mitnieder. 5-5, Kosten. ↳ Xer 8 Flussdiagramm: SpaltenminimumMethode Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 16 Beispiel: Spaltenminimum-Methode 7 7 4 7 Nachfragemengen b = (6,5,8,6) Kostenmatrix C = (cij ) = 9 5 3 3 7 2 6 4 Nachfrager ai 1 2 3 4 1. It. 2. It. 3. It. 4. It. Anbieter Angebotsmengen a = (10,8,7) 1 6 0 2 8 3 bj 4 5 6 5 4 8 2 8 10 7 2 6 0 1. 2. 3. 4. It. (j=1): x11 = 6 It. (j=2): x32 = 5 It. (j=3): x23 = 8, Zeile 2 markiert, x13 = 0 It. (j=4): x34 = 2, Zeile 3 markiert, x14 = 4, Zeile 1 markiert → Stop, da j=n und m+n-1 BV Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 17 Darstellung zulässiger TPPBasislösungen als Baum Satz: Jede zulässige Basislösung eines TPPs ist als Baum darstellbar mit den m+n Anbietern und Nachfragern als Knoten und den m+n–1 Basisvariablen als Kanten. Baum-Darstellung für die mittels Spaltenminimum-Methode erhaltene Basislösung: x11 = 6, x 32 = 5, x 23 = 8, x13 = 0, x 34 = 2, x14 = 4 Bedeutung der Kanten: Kante zwischen 𝐀𝐢 und 𝐁𝐣 ↔ 𝐱 𝐢𝐣 ist Basisvariable Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 18 Die MODI-Methode (MOdifizierte DIstributions-Methode) verwendet Optimalitätsbedingungen, die sich aus dem Satz vom komplementären Schlupf (2.6) ergeben für Darstellung wird das zum TPP duale Problem benötigt für optimale Lösungen x des primalen und {u,v} des dualen Problems gilt xij ∙ cij − ui − vj = 0 bzw. xij > 0 → ui + vj = cij und ui + vj < cij → xij = 0 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 19 Klassisches Transportproblem (TPP) zu TPP duales Problem: Minimiere F(x) = i =1 j=1 cij x ij m n unter den Nebenbedingungen ui vj n x ij = a i für i=1,…,m x ij = b j für j=1,…n x ij 0 für alle i und j j=1 m i =1 Maximiere FD(u, v) = i=1 a i ui + j=1 b jv j m n unter den Nebenbedingungen x ij u i + v j cij für alle i und j u i , v j R\ für alle i und j Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 20 Beispiel: MODI-Methode – Dualisierung Maximiere FD(u, v) = 10u1 + 8u 2 + 7u 3 + 6v1 + 5v2 + 8v3 + 6v4 unter den Nebenbedingungen x11 u1 + v1 7 x12 x13 x14 u1 + v2 2 u1 + v3 4 u1 + v4 7 x 21 x 22 u 2 + v1 9 u 2 + v2 5 ui , v j R Angebotsmengen a = 10,8,7 x 23 x 24 u 2 + v3 3 u 2 + v4 3 x 31 u 3 + v1 7 u 3 + v2 7 Nachfragemengen b = 6,5,8,6 u 3 + v3 6 u 3 + v4 4 Kostenmatrix x 32 x 33 x 34 für alle i und j Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 21 7 2 4 7 (cij ) = 9 5 3 3 7 7 6 4 MODI-Methode: Überblick Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 22 Beispiel: MODI-Methode 7 2 4 7 Kostenmatrix C = (cij ) = 9 5 3 3 7 7 6 4 Angebotsmengen a = (10,8,7) Nachfragemengen b = (6,5,8,6) zulässige Basislösung durch Nordwesteckenregel Anbieter Nachfrager 1 1 2 6 4 2 1 3 bj 6 5 3 4 10 7 8 1 6 8 6 Basisvariablen x11 = 6, x12 = 4, x22 = 1, x23 = 7, x33 = 1, x34 = 6 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 23 ai 7 MODI-Methode – Bestimmung von Dualvariablenwerten bilde lineares Gleichungssystem (LGS) 𝐮𝐢 + 𝐯𝐣 = 𝐜𝐢𝐣 mit allen i, j, deren 𝐱 𝐢𝐣 Basisvariable ist ▪ LGS enthält m+n Variablen 𝐮𝐢 und 𝐯𝐣 sowie m+n–1 Gleichungen ▪ LGS hat einen Freiheitsgrad → setze eine Variable 𝐮𝐢 oder 𝐯𝐣 = 𝟎 ▪ Trick: setze diejenige Basisvariable 𝐮𝐢 oder 𝐯𝐣 = 𝟎, die am häufigsten im LGS vorkommt löse das LGS Beispiel: u1 + v1 = 7 u1 + v2 = 2 u 2 + v2 = 5 u 2 + v3 = 3 u 3 + v3 = 6 u 3 + v4 = 4 Setzen 𝐮𝟏 = 𝟎 → 6 Gleichungen, 7 Variablen → LGS besitzt eindeutige Lösung Lösung des LGS: u1 = 0, v1 = 7, v2 = 2, u 2 = 3, v3 = 0, u 3 = 6, v4 = −2 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 24 MODI-Methode – Berechnung von Reduzierten Kosten für Nichtbasisvariablen Berechnung Reduzierter Kosten alle cij cij := cij − u i − v j für alle NBV 0 → momentane Lösungen x und {u,v} sind bereits optimal ➔ Stop es gibt ein cij 0 → mindestens eine NB u i + v j cij ist verletzt (Lösung {u,v} ist unzulässig für duales Problem) ➔ Basistausch Beispiel: c21 := c21 − u 2 − v1 = 9 − 3 − 7 = −1 0 NB ist verletzt Anbieter Nachfrager 1 2 1 2 3 4 6 4 4 9 1 7 2 1 6 c21 = −1 3 -6 -1 vj v1 = 7 v2 = 2 v3 = 0 v4 = −2 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 25 ui u1 = 0 u2 = 3 u3 = 6 7 2 4 7 C = (cij ) = 9 5 3 3 7 7 6 4 MODI-Methode – Basistausch Aufnahme der NBV 𝐱 𝐩𝐪 mit den kleinsten negativen Reduzierten Kosten 𝐜𝐢𝐣 in die Basis Im Transporttableau (Transportbaum) entsteht durch Aufnahme von 𝐱 𝐩𝐪 genau ein Kreis Umverteilung der maximal zulässigen Transportmenge entlang des Kreises ▪ Ziel: möglichst große Erhöhung von xpq um den Wert ∆ ▪ abwechselnd Senkung/Erhöhung der BV um den Wert ∆ ▪ Zuweisung der kleinsten zu senkenden Menge ∆ zu xpq ▪ Korrektur der übrigen Variablen im Kreis durch +/–∆ mindestens eine durch Senkung betroffene BV erhält den Wert 0 und verlässt die Basis Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 26 Beispiel: MODI-Methode Basistausch 1. Iteration 𝑥22 = 1 − Δ = 0 = min x11 , x 22 , x 33 = 1 A1 A2 A3 vj B1 B2 5 5 B3 B4 ui 8 1 0 6 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 27 F=100 Beispiel: MODI-Methode Basistausch 2. Iteration 7 2 4 7 (cij ) = 9 5 3 3 7 7 6 4 = min x11 , x 33 = 0 A1 A2 A3 vj B1 B2 B3 5 5 0 B4 ui 8 1 6 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 28 F=100 u1 + v1 = 7 u1 + v2 = 2 u 2 + v3 = 3 u 3 + v1 = 7 u 3 + v3 = 6 u 3 + v4 = 4 u1 = 0 Beispiel: MODI-Methode Basistausch 3. Iteration B1 B2 B3 A1 5 5 0 A2 A3 vj 3 4 8 1 5 2 v1 = 7 v2 = 2 v3 = 4 u1 + v1 = 7 ui 7 2 4 7 3 u1 = 0 u1 + v2 = 2 (c ) = 9 5 3 3 ij u 2 = −1 u1 + v3 = 4 0 7 7 6 4 u 3 = 0 u 2 + v3 = 3 6 v4 = 4 F=100 u 3 + v1 = 7 u 3 + v4 = 4 u1 = 0 B4 keine negativen Reduzierten Kosten → optimale Basislösung gefunden Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 29 Das lineare Zuordnungsproblem n Arbeitern sollen n Tätigkeiten bei bekannten Kosten 𝐜𝐢𝐣 so zugeordnet werden, dass ▪ jeder Arbeiter genau eine Tätigkeit ausführt ▪ jede Tätigkeit genau einem Arbeiter zugeordnet wird ▪ die Gesamtkosten minimiert werden Spezialfall des klassischen TPP mit m = n und 𝐚𝐢 = 𝟏 sowie 𝐛𝐣 = 𝟏 für alle i und j Minimiere F(x) = n n i =1 j=1 ij c x ij unter den Nebenbedingungen n j=1 n i =1 x ij = 1 für i=1,…,n x ij = 1 für j=1,…n x ij 0,1 für alle i, j=1,…,n xij : Binärvariablen mit der Bedeutung: Arbeiter i führt Tätigkeit j aus cij : Kosten der Ausführung der Tätigkeit j durch Arbeiter i Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 30 Totale Unimodularität Satz: Jede Basislösung eines LPs ist dann ganzzahlig, wenn bei ganzzahligen (rechten Seiten) bi die Koeffizientenmatrix A = aij die Eigenschaft der totalen Unimodularität aufweist. Sie liegt dann vor, wenn die Determinante jeder quadratischen Teilmatrix von A nur die Werte –1, 0 oder +1 annehmen kann. Satz: Hinreichende, nicht notwendige Bedingung für totale Unimodularität: ▪ Jedes Element von A besitzt den Wert –1, 0 oder +1 und ▪ jede Spalte enthält maximal 2 Elemente ≠ 0 und ▪ die Zeilen von A lassen sich in 2 Teilmengen M1 und M2 unterteilen, so dass für jede Spalte mit 2 Elementen ≠ 0 gilt: ▪ gleiche Vorzeichen der Elemente → betroffene Zeilen in verschiedenen Teilmengen Mi ▪ ungleiche Vorzeichen der Elemente → betroffene Zeilen in der derselben Teilmenge Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 31 Totale Unimodularität Erkenntnis: ▪ Koeffizientenmatrix des klassischen TPP ist total unimodular ▪ Simplex-Algorithmus (Modi-Methode) liefert bei ganzzahligen bi stets ganzzahlige Lösungen ▪ gilt auch für das lineare Zuordnungsproblem (Spezialfall des TPP) Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 32 Totale Unimodularität – klassisches TPP Die Koeffizientenmatrix A jeder TPP-Instanz erfüllt die Bedingungen von Satz 2 auf F. 31 ▪ Elemente von A sind 0 oder 1 ▪ jede Spalte enthält genau 2 Elemente ≠ 0 ▪ die Zeilen von A lassen sich in 𝐌𝟏 = 𝐀𝟏 , … , 𝐀𝐦 und 𝐌𝟐 = 𝐁𝟏 , … , 𝐁𝐧 unterteilen, so dass sich in jeder Spalte die 1en in unterschiedlichen Teilmengen 𝐌𝟏 und 𝐌𝟐 befinden → wenn alle 𝐛𝐣 ganzzahlig sind, liefert der Simplex-Algorithmus bei TPPs stets ganzzahlige Lösungen NB x11 x12 x13 x14 A1 1 1 1 1 A2 x21 x22 x23 x24 1 1 1 B2 B3 B4 1 1 x34 ai Τbj a2 = 8 1 1 1 b2 = 5 1 1 1 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 33 b3 = 8 1 1 a3 = 7 b1 = 6 1 1 1 x33 1 1 1 x32 a1 = 10 A3 B1 x31 1 b4 = 6 Umladeprobleme Zusätzlich zum TPP existieren Umladeknoten, die weder Einheiten des Gutes nachfragen noch anbieten, über die jedoch Einheiten transportiert werden können Darstellung des Transportnetzes als bewerteter, gerichteter Graph G = (V, E, c) ▪ Knotenmenge V = Va Vb Vu = 1,, n (disjunkte Mengen Va , Vb und Vu) ▪ Menge Va von Anbieterknoten i Va mit Angebotsmengen a i ▪ Menge Vb von Nachfragerknoten i Vb mit Nachfragemengen bi ▪ Menge Vu von Umladeknoten ▪ die Kosten für den Transport einer ME von Knoten i nach j mit betragen cij GE zur Vereinfachung: iVa a i = iV bi b Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 34 (i, j) E Beispiel: Umladeprobleme Gesucht: kostenminimaler Transportplan, durch den alle Bedarfe befriedigt werden Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 35 Formulierung des Umladeproblems als LP Minimiere F(x) = (i, j)E cij x ij unter den Nebenbedingungen a i für alle i Va − (h,i)E x hi + (i, j)E x ij = −bi für alle i Vb 0 für alle i Vu x ij 0 für alle (i, j) E Erläuterung: xij : Variablen mit der Bedeutung: von Knoten i zu Knoten j zu transportierende Menge cij : Kosten des Transports einer ME von i zu j ai : Angebotsmenge eines Angebotsknotens i ∈ Va bi : Nachfragemenge eines Nachfrageknotens i ∈ Vb Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 36 Beispiel: Formulierung eines Umladeproblems als LP Va = 1 Vb = 4 Vu = 2,3 Minimiere F(x) = 1x12 + 4x13 + 2x 23 + 6x 24 + 3x 34 unter den Nebenbedingungen =3 −x 24 − x 34 = −3 =0 − x12 +x 23 + x 24 − x13 − x 23 +x 34 = 0 x ij 0 für alle x12 + x13 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 37 (i, j) E Klausurvorbereitung Domschke, W. und A. Drexl (2015): Einführung in Operations Research. 9. Aufl., Springer-Verlag, Berlin et al., Kapitel 4 Zur Klausurvorbereitung sind die Aufgaben 4.1 bis 4.5 sowie 4.8 bis 4.10 aus dem Übungsbuch „Übungen und Fallstudien zum Operations Research“ von Domschke, Drexl, Klein, Scholl und Voß sehr zu empfehlen. Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 38 Einführung in Operations Research Ganzzahlige und kombinatorische Optimierung I Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 1 Ganzzahliges LP-Modell (GLP-Modell) Maximiere F(x1 ,, x n ) = n j=1 c jx j unter den Nebenbedingungen n a ·x j = b j für i=1,…,m j=1 ij x j Z 0+ (bzw. für einige j : x j 0 ) für j=1,…,n Beispiel einer GLP-Instanz: Maximiere F 𝐱 = x1 + 2x2 (6.4) unter den Nebenbedingungen x1 + 3x2 ≤ 7 (6.5) 3x1 + 2x2 ≤ 10 (6.6) x1 , x 2 Z 0+ (6.7) Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 2 Ganzzahliges LP-Modell (GLP-Modell) LP-Relaxation: ersetze (6.7) durch x1 , x2 ≥ 0 Optimale Lösung der LP-Relaxation: 𝐱 ∗ = (2,29; 1,57) mit F ∗ = 5,43 x (2,1) (3,1) (2,2) (3,2) F(x) 4 unzulässig unzulässig unzulässig Optimale Lösung des ganzzahligen Modells (zunächst durch scharfes Hinsehen): 𝐱 ∗ = 1,2 mit F ∗ = 5 Was nun? alle zulässigen Lösungen aufzählen (enumerieren) und beste auswählen → hoher Rechenaufwand systematische Aufzählung mittels eines Baums → besser strukturiert, Rechenaufwand bleibt beschränkte Enumeration mit Hilfe von Branch & Bound → bei geschickter Vorgehensweise erhebliche Reduktion des Rechenaufwandes Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 3 Binäres LP-Modell Maximiere F(x1 ,, x n ) = n j=1 c jx j unter den Nebenbedingungen n a ·x j=1 ij j = b j für i=1,…,m x j 0,1 für j=1,…,n Beispiel einer Instanz eines binären Optimierungsproblems (KnapsackProblem): Maximiere F 𝐱 = 3x1 + 4x2 + 2x3 + 3x4 unter den Nebenbedingungen 3x1 + 2x2 + 4x3 + x4 ≤ 9 xk ∈ 0,1 für k = 1, … , 4 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 4 Kombinatorische Optimierung ▪ Viele praxisrelevante Probleme sind kombinatorischer Natur ▪ Lösungen entstehen durch Kombinieren von Lösungselementen (z.B. Knapsack-Problem) n n n n 0 1 2 3 n n theoretisch bis zu + + + + ... + = 2n Lösungen ▪ Anzahl der Lösungen steigt bei wachsender Problemgröße exponentiell (überproportional) ▪ Kombinatorische Optimierungsmodelle sind in der Regel schwer lösbar (NP-schwer) Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 5 Kombinatorische Optimierung – Zuordnungsprobleme Klassen kombinatorischer Optimierungsprobleme bzw. -modelle Zuordnungsprobleme ▪ lineares Zuordnungsproblem: Zuordnung von Arbeiterinnen und Arbeitern zu Tätigkeiten, so dass Gesamtqualifikation maximal ist; Zuordnung von Kindern zu Schulen; Zuordnung von Studierenden zu Seminarplätzen ▪ quadratisches Zuordnungsproblem: Zuordnung von Maschinen zu Stellplätzen; so dass Summe der Produkte aus Transportmengen und Entfernungen minimal ist ▪ Stundenplanprobleme: Zuordnung von Lehrerinnen und Lehrern zu Klassen und Räumen zu bestimmten Zeiten Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 6 Kombinatorische Optimierung – Reihenfolgeprobleme ▪ Traveling Salesman-Probleme: Besuchsreihenfolge für Handlungsreisenden bei seinen Kundinnen mit minimaler Gesamtstrecke ▪ Briefträger-Probleme (Chinese Postman-Probleme): Jede Straße des Zustellbezirks muss mindestens einmal durchlaufen werden. Bestimmung der streckenminimalen Route. ▪ Tourenplanungsprobleme: Ermittlung kosten- oder streckenminimaler Auslieferungs- oder Einsammlungstouren. Verschiedenste Problemvarianten: Möbel- oder Paketauslieferung, Straßenreinigung, Müllentsorgung, kombinierte Auslieferung/ Einsammlung ▪ Maschinenbelegungsprobleme: Reihenfolge der Auftragsbearbeitung auf einer oder mehreren Maschinen. Ziele: Minimiere die Summe der Terminüberschreitungen oder der Gesamtbearbeitungszeit aller Aufträge usw. Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 7 Kombinatorische Optimierung – Gruppierungsprobleme ▪ Fließbandabstimmung: Zusammenfassung und Zuordnung von Arbeitsvorgängen zu Bandstationen. Minimierung der Anzahl an Stationen oder der Taktzeit. ▪ Losgrößenplanung: Zusammenfassung periodenbezogener Nachfragen zu Beschaffungs- oder Fertigungslosen. Minimierung der Gesamtkosten. ▪ Clusteranalyse: Bildung von Kundengruppen, deren Elemente einander möglichst ähnlich sind. Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 8 Kombinatorische Optimierung Auswahlprobleme ▪ Knapsack-Probleme: Auswahl nützlicher Gegenstände, von Investitionsalternativen oder anzunehmenden Aufträgen ▪ Set Covering-Probleme: z.B. Auswahl und Positionierung von Feuerwehren, so dass jede mögliche Brandstelle in höchstens 10 Minuten erreichbar ist ▪ ... Grundproblem der Kombinatorik: ▪ exponentiell steigende Anzahl an Lösungen bei steigender Problemgröße Weitere Beispiele: ▪ Anzahl der möglichen Rundreisen bei n Kunden = n·(n -1)·…·2·1 = n! ▪ ein zusätzlicher Kunde: Erhöhung der Anzahl um Faktor n+1 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 9 Grundbegriffe der Komplexitätstheorie Rechenaufwand eines Algorithmus oder Lösungsverfahrens: ▪ Anzahl der abzuarbeitenden Elementarschritte (Grundrechenarten, Wertzuweisungen) ▪ nach oben durch ein Polynom beschränkt: polynomialer Rechenaufwand ▪ nicht durch ein Polynom beschränkbar: exponentieller Rechenaufwand ▪ Schreibweise: Aufwand ist von der (Größen-) Ordnung O(n2) oder O(2n) Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 10 Grundbegriffe der Komplexitätstheorie Klasse P der polynomial lösbaren Probleme ▪ Rechenaufwand ist auch für schwerste Instanz der Klasse polynomial ▪ Beispiele: LP-Modelle, Kürzeste-Wege-Probleme Klasse der NP-schweren Probleme ▪ Es ist kein Algorithmus bekannt, der alle Instanzen der Klasse mit polynomialem Aufwand optimal löst. ▪ Beispiele: Knapsack-, Traveling Salesman-, Tourenplanungsprobleme Anwendung von Heuristiken bei großen Instanzen NP-schwerer Probleme ▪ sinnvolle und erfolgversprechende Vorgehensregeln ▪ keine Garantie für das Finden einer optimalen Lösung ▪ zumeist schnelle und leichte Anwendung Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 11 Lösungsprinzipien Exakte Verfahren (1) Schnittebenenverfahren (2) Entscheidungsbaumverfahren (a) Vollständige Enumeration (b) Unvollständige (begrenzte) Enumeration (z.B. Branch&Bound-Verfahren, Branch&Cut-Verfahren) (c) Verfahren der dynamischen Optimierung (3) Kombinationen aus (1) und (2) Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 12 Lösungsprinzipien Heuristiken (1) Eröffnungsverfahren (a) Greedy-Verfahren (z.B. Spaltenminimummethode für TPP) (b) Vorausschauende Verfahren (z.B. Vogel‘sche Approximationsmethode) (c) Uninformierte Verfahren (z.B. Nordwesteckenregel) (2) Lokale Such- bzw. Verbesserungsverfahren (a) Reine Verbesserungsverfahren (z.B. 2-opt) (b) Metastrategien (z.B. Tabu Search, Simulated Annealing und Genetische Algorithmen) (3) Unvollständig exakte Verfahren (4) Kombinationen aus (1) – (3) Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 13 Branch & Bound-Verfahren Ansatzpunkte ▪ eine optimale Lösung reicht ▪ suboptimale Lösungen sollten – soweit möglich – von der Enumeration ausgeschlossen werden Grundprinzip Branching: Verzweigen des Problems (bzw. Modells) in Teilprobleme (bzw. -modelle) → Enumerationsbaum mit Teilproblemen als Knoten → Dekomposition Bounding: Beschränkung des Verzweigungsprozesses durch Berechnung von Schranken für die Zielfunktionswerte und Ausloten von Teilproblemen Logische Tests: Veränderung der Problemdaten sowie Ausnutzung logischer Überlegungen zur weiteren Einschränkung des Verzweigungsaufwandes → Mindestens eine optimale Lösung muss übrig bleiben! Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 14 Branching ▪ zu lösendes (Ausgangs-) Problem 𝐏𝟎 ▪ Menge der zulässigen (ganzzahligen) Lösungen eines (Teil-) Problems P: X(P) ▪ Verzweigung bzw. Zerlegung in k Teilprobleme 𝐏𝟏 , 𝐏𝟐 , … , 𝐏𝐤 mit: X(P0 ) = k i =1 X(Pi ) → alle zulässigen Lösungen erhalten → keine heuristische Dekomposition X(Pi ) X(Pj ) = → (mögl.) keine Doppelerfassung einer Lösung in mehreren Teilproblemen → 𝐏𝟎 kann durch seine Teilprobleme verlustfrei ersetzt werden jedes Teilproblem kann wieder verzweigt bzw. zerlegt werden (Enumerationsbaum) Teilprobleme werden immer kleiner und daher auch immer leichter zu lösen Fortsetzung der Zerlegung, bis optimale Lösung des Teilproblems (leicht) ermittelbar optimale Lösung = beste Lösung eines der Teilprobleme Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 15 Beispiel Ausgangsproblem 𝐏𝟎 : Maximiere F 𝐱 = x1 + 2x2 unter den Nebenbedingungen x1 + 3x 2 7 3x1 + 2x 2 10 x1 , x 2 Z 0+ X(P0 ) = (0,0),(0,1),(0, 2),(1,0),(1,1),(1, 2),(2,0),(2,1),(3,0) Verzweigung von P0: P1 : P0 und zusätzlich x1 ≤ 2; X P1 = 0,0 , 0,1 , … , 2,0 , 2,1 P2 : P0 und zusätzlich x1 ≥ 3; X P2 = 3,0 Effekt: nichtganzzahlige Lösungen mit x1 ∈ ]2; 3[ inklusive der optimalen Lösung der LP-Relaxation werden eliminiert, ganzzahlige Lösungen bleiben alle erhalten Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 16 Beispiel Verzweigung von 𝐏𝟏 : P3 : P1 und zusätzlich x2 ≤ 1; X P3 = 0,0 , 0,1 , … , 2,0 , 2,1 P4 : P1 und zusätzlich x2 ≥ 2; X P4 = 0,2 , (1,2) Optimale Lösung von P3 : 𝐱 ∗ (P3 ) = (2,1) mit F ∗ P3 = 4 Optimale Lösung von P4 : 𝐱 ∗ (P4 ) = (1,2) mit F ∗ P4 = 5 → Optimale Lösung von P1 : 𝐱 ∗ (P1 ) = (1,2) mit F ∗ P1 = 5 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 17 Beispiel Verzweigung von 𝐏𝟐 : P5 : P2 und zusätzlich x2 ≤ 0; X P5 = P6 : P2 und zusätzlich x2 ≥ 1; X P6 = 3,0 Verzweigung von 𝐏𝟓 : P7 : P5 und zusätzlich x1 ≤ 3; X P7 = P8 : P5 und zusätzlich x1 ≥ 4; X P8 = { } 3,0 → Optimale Lösung von P7 : 𝐱 ∗ (P7 ) = (3,0) mit F ∗ P7 = 3 → Optimale Lösung von P5 : 𝐱 ∗ (P5 ) = (3,0) mit F ∗ P5 = 3 → Optimale Lösung von P2 : 𝐱 ∗ (P2 ) = (3,0) mit F ∗ P2 = 3 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 18 Beispiel Vollständiger B&B-Baum: Optimale Lösung des Ausgangsproblems 𝐏𝟎 : 𝐱 ∗ = 𝐱 ∗ P0 = 𝐱 ∗ P1 = 𝐱 ∗ P4 = 1,2 mit F ∗ P0 = F ∗ P1 = F ∗ P4 = 5 wegen F ∗ P1 > F ∗ (P2 ) und F ∗ P4 > F ∗ (P3 ) Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 19 Bounding Beschränkung des Verzweigungsprozesses durch Schrankenberechnung und Ausloten (globale) untere Schranke 𝐅: Mindesthöhe des maximalen Zielfunktionswertes (bei Maximierungsproblemen) → aus jeder beliebigen zulässigen Lösung des Ausgangsproblems P0 → möglichst groß: F-Wert der besten bekannten Lösung Relaxation (Vereinfachung) 𝐏𝐢′ von 𝐏𝐢 : Lockerung oder Weglassen von Nebenbedingungen → X(Pi ) X(Pi' ) F*(Pi ) F* (Pi' ) Beispiel: LP-Relaxation → Weglassen der Ganzzahligkeitsbedingungen Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 20 Bounding (lokale) obere Schranke 𝐅ഥ𝐢 : ein nicht überschreitbarer F-Wert von Teilproblem 𝐏𝐢 ▪ Abschätzung durch Optimalwert der Relaxation: 𝐅ഥ𝐢 = 𝐅 ∗ (𝐏𝐢′ ) ▪ Schranke möglichst klein: Relaxation möglichst scharf (eng am unrelaxierten Problem) ▪ aber: Relaxation muss leicht lösbar sein für jedes Teilproblem 𝐏𝐢 gilt also: 𝐅 ∗ 𝐏𝐢 ≤ 𝐅ഥ𝐢 Ausloten eines Teilproblems 𝐏𝐢 : Eliminieren des Knotens 𝐏𝐢 und des zugehörigen Teilbaums Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 21 Auslotregeln Fall a: Es gibt schon etwas Besseres! Fi F F* (Pi ) F Optimalwert von Pi ist keinesfalls besser als der bislang beste bekannte F-Wert. Fall b: Eine bessere Lösung gefunden! Optimale Lösung der Relaxation ist zulässig (damit auch optimale Lösung von Pi) und hat höheren Wert als bisher beste Lösung; wird zu neuer bester Lösung. Fi F und x *(Pi' ) X(Pi ) ; neue beste Lösung als 𝐱 ∗ abspeichern und untere Schranke aktualisieren: Fall c: Unzulässig! X(Pi' ) = X(Pi ) = Relaxation besitzt keine zulässige Lösung und Pi damit ebenfalls nicht Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 22 F := Fi Beispiel (Ausgangsproblem P0) X P0 = Menge der ganzzahligen Punkte anfängliche untere Schranke? 𝐅 = 𝟎 wegen 𝐱 ∗ = (𝟎, 𝟎) ∈ 𝐗(𝐏𝟎 ) (oder z.B. 𝐅 = 𝟑 wegen (1,1) ∈ 𝐗(𝐏𝟎 )) LP-Relaxation: 𝐗 𝐏𝟎′ = schraffierter Bereich Gilt 𝐗(𝐏𝟎 ) ⊆ 𝐗(𝐏𝟎′ )? 𝐱 ∗ 𝐏𝟎′ = (𝟐, 𝟐𝟗; 𝟏, 𝟓𝟕) 𝐅ത𝟎 = 𝐅 ∗ 𝐏𝟎′ = 𝟓, 𝟒𝟑 Anwenden der Auslotregeln: Fall a: 𝐅ത𝟎 ≤ 𝐅 ? nicht erfüllt Fall b: 𝐅ത𝟎 > 𝐅 und 𝐱 ∗ 𝐏𝟎′ ∈ 𝐗(𝐏𝟎 ) ? nicht erfüllt Fall c: 𝐗 𝐏𝟎′ = ? nicht erfüllt → Verzweigen des Problems in 𝐏𝟏 und 𝐏𝟐 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 23 Beispiel Problem 𝐏𝟏 ഥ ഥ) ; 𝐅ത𝟏 = 𝐅 ∗ 𝐏𝟏′ = 𝟓, 𝟑 𝐱 ∗ 𝐏𝟏′ = (𝟐; 𝟏, 𝟔 Anwenden der Auslotregeln: Fall a: 𝐅ത𝟏 ≤ 𝐅 ? nein Fall b: 𝐅ത𝟏 > 𝐅 und 𝐱 ∗ 𝐏𝟏′ ∈ 𝐗(𝐏𝟏 ) ? nein Fall c: 𝐗 𝐏𝟏′ = ? nein →Verzweigen des Problems von 𝐏𝟏 in 𝐏𝟑 und 𝐏𝟒 Problem 𝐏𝟐 𝐱 ∗ 𝐏𝟐′ = (𝟑; 𝟎, 𝟓) ; 𝐅ത𝟐 = 𝐅 ∗ 𝐏𝟐′ = 𝟒 Anwenden der Auslotregeln: Fall a: 𝐅ത𝟐 ≤ 𝐅 ? nein Fall b: 𝐅ത𝟐 > 𝐅 und 𝐱 ∗ 𝐏𝟐′ ∈ 𝐗(𝐏𝟐 ) ? nein Fall c: 𝐗 𝐏𝟐′ = ? nein →Ablegen von 𝐏𝟐 in der Kandidatenliste; spätere Behandlung Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 24 Beispiel Problem 𝐏𝟑 𝐱 ∗ 𝐏𝟑′ = (𝟐; 𝟏) ; 𝐅ത𝟑 = 𝐅 ∗ 𝐏𝟑′ = 𝟒 Anwenden der Auslotregeln: Fall a: 𝐅ത𝟑 ≤ 𝐅 ? Nein (4 > 0) Fall b: 𝐅ത𝟑 > 𝐅 und 𝐱 ∗ 𝐏𝟑′ ∈ 𝐗(𝐏𝟑 ) ? ja 𝐅 ≔ 𝐅ത𝟑 = 𝟒 Fall c: 𝐗 𝐏𝟑′ = ? nein → neue beste Lösung 𝐱 ∗ ≔ 𝐱 ∗ 𝐏𝟑′ = 𝟐, 𝟏 mit 𝐅 = 𝟒 ; Ausloten Problem 𝐏𝟒 𝐱 ∗ 𝐏𝟒′ = (𝟏; 𝟐) ; 𝐅ത𝟒 = 𝐅 ∗ 𝐏𝟒′ = 𝟓 Anwenden der Auslotregeln: Fall a: 𝐅ത𝟒 ≤ 𝐅 ? nein Fall b: 𝐅ത𝟐 > 𝐅 und 𝐱 ∗ 𝐏𝟒′ ∈ 𝐗(𝐏𝟒 ) ? ja 𝐅 ≔ 𝐅ത𝟒 = 𝟓 Fall c: 𝐗 𝐏𝟒′ = ? nein → neue beste Lösung 𝐱 ∗ ≔ 𝐱 ∗ 𝐏𝟒′ = 𝟐; 𝟏 mit 𝐅 = 𝟓 ; Ausloten Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 25 Beispiel Problem 𝐏𝟐 (aus Kandidatenliste) 𝐱 ∗ 𝐏𝟐′ = 𝟑; 𝟎, 𝟓 ; 𝐅ത𝟐 = 𝐅 ∗ 𝐏𝟐′ = 𝟒 Anwenden der Auslotregeln: Fall a: 𝐅ത𝟐 ≤ 𝐅 = 𝟓 ? Ja, wegen 4 < 5 Fall b: 𝐅ത𝟐 > 𝐅 und 𝐱 ∗ 𝐏𝟐′ ∈ 𝐗(𝐏𝟐 ) ? nein Fall c: 𝐗 𝐏𝟐′ = ? nein → Ausloten, da keine verbesserte Lösung erzielbar (höchstens 𝐅𝟐 = 𝟒) Ende und Ergebnis alle Knoten voll verzweigt oder ausgelotet optimale Lösung: 𝐱 ∗ ≔ 𝐱 ∗ 𝐏𝟒′ = 𝟏; 𝟐 mit 𝐅 ∗ = 𝐅 = 𝟓 Erzeugungsreihenfolge: P0, P1, P2, P3, P4 Auslotreihenfolge: P0, P1, P3, P4, P2 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 26 Möglicher Ablauf von Branch & Bound Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 27 Komponenten von B&B-Verfahren (1) In der Regel zulässige Lösung durch eine Heuristik bestimmen: v.a. bei speziellen Problemstellungen (z.B. Knapsack-Problem) zumeist Prioritätsregelverfahren und Such- oder Verbesserungsverfahren (2) Bildung von Relaxationen: LP-Relaxation: Weglassen der Ganzzahligkeitsforderungen Weglassen von komplizierenden Nebenbedingungen Lagrange-Relaxation: Weglassen von Nebenbedingungen und Bewertung der NBVerletzung in der Zielfunktion (gewichtet mit Lagrange-Multiplikatoren) (3) Ausloten von Teilproblemen: Ausloten anhand von Schranken: Fälle a bis c (s. oben) Dominanzregeln: direkter Vergleich von Teilproblemen; falls ein Teilproblem Pi mit Sicherheit eine bessere Lösung liefert bzw. liefern wird als ein Teilproblem Pj , so wird Pj ausgelotet → Beispiel: später Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 28 Komponenten von B&B-Verfahren (4) Festlegung der Bearbeitungsreihenfolge der Teilprobleme: Ziel: Optimale (bzw. gute) Lösung(en) möglichst frühzeitig finden → kleiner Baum Kandidatenliste: Geordnete Liste der schon gebildeten, aber noch nicht ausgeloteten Teilprobleme LIFO-Regel (Last-In-First-Out-Regel, reine Tiefensuche): ▪ Kandidatenliste K als Stapel: Das zuletzt hinzugefügte Teilproblem wird als erstes verzweigt ▪ Verzweigung eines (Teil-) Problems: Bilden des ersten Teilproblem 𝐏𝐢𝟏 ▪ Weiterbearbeitung von 𝐏𝐢𝟏 ; 𝐏𝐢 bleibt in K ▪ nach Abarbeitung des zu 𝐏𝐢𝟏 gehörigen Teilbaums: 𝐏𝐢 steht wieder am Anfang von K; Bilden und Weiterbearbeitung des nächsten Teilproblems 𝐏𝐢𝟐 usw. ▪ Eliminierung von 𝐏𝐢 aus K, sobald vollständig verzweigt ▪ Ende, sobald K leer ist und kein aktuelles Problem mehr bearbeitet wird Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 29 Komponenten von B&B-Verfahren MUB-Regel (Maximum Upper Bound-Regel): ▪ beim Verzweigen: Bilden aller Teilprobleme und Berechnung der lokalen oberen Schranken ▪ Teilprobleme werden nach absteigenden Schranken in K einsortiert ▪ Auswahl des ersten Teilproblems aus der Liste (größte Schranke) zur Weiterbearbeitung ▪ Ende, sobald K leer ist Kombinationen und Varianten ... Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 30 LIFO-Regel (reine Tiefensuche) K = < P0 ] verzweige P0: bilde P1 und verwende es als aktuelles Problem; K = < P1 , P0 ] verzweige P1; bilde P2; K = < P2, P1, P0 ] verzweige P2; bilde P3; K = < P3, P2, P1, P0 ] lote P3 aus; verzweige P2; bilde P4; entferne P2; K = < P4, P1, P0 ] lote P4 aus; verzweige P1; bilde P5; entferne P1; K = < P5, P0 ] lote P5 aus; verzweige P0; bilde P6; entferne P0; K = < P6 ] verzweige P6; bilde P7; K = < P7 , P6 ] lote P7 aus; verzweige P6; bilde P8; entferne P6; K = < P8 ] lote P8 aus; K ist leer → Ende Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 31 MUB-Regel K = < P0 ]; (obere Schranken beispielhaft gewählt) entnimm P0 aus K und verzweige in P1 und P2 berechne Schranken; K = < P1, P2 ] entnimm P1 aus K und verzweige in P3 und P4 berechne Schranken; K = < P4, P2, P3 ] entnimm P4 aus K und lote aus; K = < P2, P3 ] entnimm P2 aus K und verzweige in P5 und P6 berechne Schranken; K = < P3, P5, P6 ] entnimm P3 aus K und verzweige in P7 und P8 berechne Schranken; K = < P7, P5, P8, P6 ] entnimm P7 aus K und lote aus; K = < P5, P8, P6 ] entnimm P5 aus K und lote aus; K = < P8, P6 ] entnimm P8 aus K und lote aus; K = < P6 ] entnimm P6 aus K und lote aus; K = < ] K ist leer → Ende Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 32 Komponenten von B&B-Verfahren (5) Verzweigungsoperation: Wahl der Verzweigungsvariablen: ▪ ▪ ▪ ▪ Variable Regel 1: Regel 2: Regel 3: mit nichtganzzahligem Wert in Lösung der LP-Relaxation Wähle Variable mit dem größten nichtganzzahligen Anteil. Wähle Variable mit dem größten Abstand zur nächsten ganzen Zahl. ... Art der Bildung von Teilproblemen: ▪ zwei Teilprobleme: xi ≤ 3 und xi ≥ 4 bzw. bei Binärvariablen: xi = 0 und xi = 1 ▪ mehr als zwei Teilprobleme: alle Möglichkeiten einzeln (z.B. xi = 0, xi = 1, … , xi = 5) Reihenfolge der Teilprobleme (bei LIFO): ▪ erst xi ≤ 3, später xi ≥ 4 oder ▪ erst xi ≥ 4, später xi ≤ 3 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 33 Komponenten von B&B-Verfahren (6) Logische Tests: Modifikationen an Problemdaten Zweck: Berechnung schärferer Schranken oder Entdecken von Widersprüchen Beispiel: s. unten Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 34 Branch & Bound für ein binäres Modell Beispiel: Knapsackproblem Maximiere F(x) = n j=1 u jx j unter den Nebenbedingungen n j=1 g jx j G x j 0,1 für j=1,…,n Branching: Auswahl einer Verzweigungsvariablen xj (z.B. nichtganzzahliger Wert in der LPRelaxation) Bilden von zwei Teilproblemen durch Setzen von xj = 0 bzw. xj = 1 (Reihenfolge je nach Gestaltung der übrigen Komponenten) Gute Reihenfolge der Kandidatenwahl z.B. nach der MUB-Regel führt meistens zu schneller Lösung Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 35 Branch & Bound für ein binäres Modell Bounding: obere Schranken mit Hilfe der LP-Relaxation; untere Schranke 𝐅 = 𝟎, besser (höher) durch Anwendung einer Heuristik Anwenden der üblichen Auslotregeln vereinfachtes Lösen der LP-Relaxation aufgrund der speziellen Problemstruktur: 1. Sortieren der Gegenstände nach fallenden relativen Nutzen 𝑢𝑗′ 𝑢𝑗 =𝑔 𝑗 2. Einplanen der Gegenstände in dieser Reihenfolge solange Kapazität ausreicht. 3. Nicht voll passender Gegenstand k wird anteilig aufgenommen, so dass Gesamtkapazität genau erschöpft ist. Anteilige Berücksichtigung des Nutzens von k im Schrankenwert. Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 36 Branch & Bound für ein binäres Modell Logische Tests: "Rucksack voll": keiner der noch freien (nicht durch Branching fixierten) Gegenstände passt mehr hinein → Ausloten (evtl. neue beste Lösung) "Nur noch einer": es passt nur noch ein Gegenstand in den Rucksack → Einplanen desjenigen mit dem höchsten Nutzen "Ganzzahlige Nutzen": Abrunden nichtganzzahliger Schrankenwerte bei u j Z + für alle j "Zu groß": Jeder nicht mehr passende freie Gegenstand j kann verboten werden (xj = 0) → braucht bei Schrankenberechnung nicht mehr berücksichtigt zu werden Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 37 Zusatzfolien zum Problem des Konsuls Herbert [Scholl et al. (1997) Besser beschränkt. c‘t, (10), 336–345] Ausprägung des B&B-Verfahrens "Kunos erster Versuch": obere Schranken ja 𝐅ത𝐢 mittels LP-Relaxation; Lösung durch relative Gewinnsortierung; 𝐅 = 𝟎, besser 𝐅 = 𝟑𝟑 mit den ersten drei Gegenständen LIFO-Regel Verzweigen nach Variable mit größtem Gewicht; Einpacken vor Verbieten Probleminstanz: Höchstgewicht G = 20 kg Berechnung relativer Nutzen und Sortierung nach abnehmenden Werten Maske Barren Amulett Schnaps Zigaretten Schmetterl. Gewicht [kg] 6 7 5 8 5 3 Gewinn [E] 9 10 14 11 8 8 relativer Gewinn 1,5 1,43 2,8 1,38 1,6 2,67 Rang 4 5 1 6 3 2 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 38 Ausgangsproblem P0 (Koffer 1) LP-Relaxation: Gewicht Restkapazität kum. Gewinn Amulett (x 3 = 1) 5 15 14 Schmetterl. (x 6 = 1) 3 12 22 Zigaretten (x 5 = 1) 5 7 30 Maske (x1 = 1) 6 1 39 7/7=1 0 39+10/7=40,43 Barren (x 2 = 1/ 7) 𝟏 𝐅ത𝟎 = 𝟒𝟎, 𝟒𝟑 mit 𝐱 = (𝟏, , 𝟏, 𝟎, 𝟏, 𝟏) 𝟕 kein Ausloten möglich Verzweigen nach dem schwersten Gegenstand Schnaps Zerlegung in P1 (x4=1) und später P? (x4=0) Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 39 Teilproblem P1 (Koffer 2): P0 und 𝐱𝟒 = 𝟏 LP-Relaxation: Gewicht Restkapazität kum. Gewinn Schnaps (x 4 = 1) 8 12 11 Amulett (x 3 = 1) 5 7 25 Schmetterl.(x 6 = 1) 3 4 33 (4*5)/5=4 0 33+4/5*8=39,4 Zigaretten (x 5 = 4 / 5) 𝟒 𝐅ത𝟏 = 𝟑𝟗, 𝟒 mit 𝐱 = (𝟎, 𝟎, 𝟏, 𝟏, , 𝟏) 𝟓 kein Ausloten möglich, da: a) nicht 𝐅ത𝟏 ≤ 𝐅 b) nicht zulässig; c) nicht leere Menge Verzweigen nach zweitschwerstem Gegenstand → Barren (x2) Problem P2 durch x2 = 1, zweites Teilproblem P? später durch x2 = 0 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 40 Teilproblem P2 (Koffer 3): P1 und 𝐱𝟐 = 𝟏 LP-Relaxation: Gewicht Restkapazität kum. Gewinn Schnaps (x 4 = 1) 8 12 11 Barren (x 2 = 1) 7 5 21 Amulett (x 3 = 1) 5 0 35 Lösung der Relaxation: 𝐅ത𝟐 = 𝟑𝟓 mit 𝐱 = (𝟎, 𝟏, 𝟏, 𝟏, 𝟎, 𝟎) Ausloten nach Fall b, da zulässig: 𝐅 = 35 und 𝐱 ∗ = (𝟎, 𝟏, 𝟏, 𝟏, 𝟎, 𝟎) Teilproblem P3 (Koffer 4): P1 und x2 = 0 LP-Relaxation: Lösung wie bei P1 𝟒 𝐅ത𝟑 = 𝟑𝟗, 𝟒 mit 𝐱 = (𝟎, 𝟎, 𝟏, 𝟏, , 𝟏) 𝟓 kein Ausloten möglich, wegen 𝐅ത𝟑 > 𝐅 Verzweigen nach drittschwerstem Gegenstand → Maske (x1) …usw. Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 41 B&B für das Knapsack-Problem Beispiel mit alternativen Verzweigungsregeln Obere Schranken 𝐅ത𝐢 mittels LP-Relaxation; Lösung durch Sortierung nach abnehmenden relativen Nutzenwerten 𝐅 = 𝟎, besser z.B. 𝐅 = 𝟑𝟑 wie oben LIFO-Regel Verzweigen nach dem Gegenstand, der bei der LP-Relaxation gerade nicht mehr passt; Verbieten vor Einpacken Probleminstanz: Höchstgewicht G = 20 kg Daten der Probleminstanz: Maske Barren Amulett Schnaps Zigaretten Schmetterl. Gewicht [kg] 6 7 5 8 5 3 Gewinn [E] 9 10 14 11 8 8 relativer Gewinn 1,5 1,43 2,8 1,38 1,6 2,67 Rang 4 5 1 6 3 2 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 42 B&B für das Knapsack-Problem Beispiel mit alternativen Verzweigungsregeln Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 43 Klausurvorbereitung Domschke, W. und A. Drexl (2015): Einführung in Operations Research. 9. Aufl., Springer-Verlag, Berlin et al., Kapitel 6 Zur Klausurvorbereitung sind die Aufgaben 6.1, 6.2 6.9 und 6.12 aus dem Übungsbuch „Übungen und Fallstudien zum Operations Research“ von Domschke, Drexl, Klein, Scholl und Voß sehr zu empfehlen. Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 44 Einführung in Operations Research Ganzzahlige und kombinatorische Optimierung II Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 1 Branch & Cut Von einer Branch & Cut - Vorgehensweise spricht man, wenn lokale untere oder obere Schranken (erhalten durch Relaxationsbildung und -lösung) durch das Hinzufügen von Schnittebenen (Cuts) verbessert werden. Cuts verbieten nicht-ganzzahlige (zulässige) Lösungen von Relaxationen. Beispiel einer Schnittebene beim Knapsack-Problem: Besitzt eine LP-Relaxation z.B. die optimale Lösung x1 = x2 = x3 = 1, x4 = 1/3 und xj = 0 für alle sonstigen Güter, so ist x1 + x2 + x3 + x4 3 eine Schnittebene, welche die obige nicht-ganzzahlige Lösung verbietet. Diese Art von Schnittebenen nennt man Cover Cuts. Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 2 Cover Cuts Sei N={1,…,n} die Menge der Indizes der Variablen eines binären KnapsackProblems. Eine Indexmenge C N nennt man Cover, wenn a jC j b gilt. Ein Cover ist minimal, wenn für jedes j C gilt, dass C \ {j} kein Cover darstellt. Bezeichnen wir mit x den Vektor der Binärvariablen und ist C ein Cover, so stellt x jC j C −1 eine gültige Ungleichung (Schnittebene) dar. Diese wird als Cover-Ungleichung (Cover-Cut) bezeichnet. Sie besagt, dass nicht alle Variablen des Cover gleichzeitig den Wert 1 annehmen können. Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 3 Beispiel Branch-and-Cut Maximiere u.d.N. ▪ F 𝐱 = 10x1 + 9x2 + 12x3 + 5x4 + 9x5 5x1 + 6x2 + 12x3 + 10x4 + 12x5 ≤ 25 xk ∈ 0,1 für 𝑘 = 1, … , 5 1 Lösung der LP-Relaxation: x = (1, 1, 1, 0, 6) mit 𝐅ത𝟎 = 𝟑𝟐, 𝟓 Ableitung des Cover-Cuts (weil 5 + 6 + 12 + 12 > 25): x1 + x 2 + x 3 + x 5 ≤ 3 ▪ 1 Erneute Lösung der LP-Relaxation: x = (1, 1, 1, 5 , 0) mit 𝐅ത𝟎 = 𝟑𝟐 Ableitung des Cover-Cuts (weil 5 + 6 + 12 + 10 > 25): x1 + x 2 + x 3 + x 4 ≤ 3 ▪ 7 1 1 Erneute Lösung der LP-Relaxation: x = (1, 8 , 1, 8 , 8) mit 𝐅ത𝟎 = 𝟑𝟏, 𝟔𝟐𝟓 Abrunden, da Zielfunktionskoeffizienten ganzzahlig → 𝐅ത𝟎 = 𝟑𝟏 Wie lautet die optimale Lösung? Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 4 Traveling Salesman-Problem (TSP) ▪ Bestimmung der Rundreise mit minimaler Dauer bzw. Strecke ▪ Start und Ziel im Knoten 1 ▪ jeder andere Knoten wird genau einmal besucht ▪ cij Entfernung von i nach j (hier: asymmetrisch, kann auch symmetrisch sein) cij 1 2 3 4 5 6 1 ∞ 4 3 4 4 7 2 5 ∞ 2 6 3 5 3 3 3 ∞ 4 1 3 4 5 6 5 ∞ 5 5 5 4 3 1 4 ∞ 2 6 6 5 3 4 3 ∞ Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 5 Traveling Salesman-Problem (TSP) Modellformulierung: ▪ Entscheidungsvariablen: 1 falls Knoten j direkt nach Knoten i besucht wird x ij = 0 sonst für Bsp: x12 = x 23 = x 34 = x 45 = x 56 = x 61 = 1; x ij = 0 sonst ▪ Zielfunktion: Minimiere F(x) = i=1 j=1 cij x ij n n ▪ Nebenbedingungen: n x ij = 1 für j = 1,..., n x =1 j=1 ij für i = 1,..., n i =1 n [Bedingungen zur Vermeidung von Kurzzyklen] x ij 0,1 für i, j = 1,..., n Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 6 cij 1 2 3 4 5 6 1 ∞ 4 3 4 4 7 2 5 ∞ 2 6 3 5 3 3 3 ∞ 4 1 3 4 5 6 5 ∞ 5 5 5 4 3 1 4 ∞ 2 6 6 5 3 4 3 ∞ Beispiel einer Kurzzyklusbedingung Lösung, welches alle anderen Bedingungen erfüllt: Vermeidung des Kurzzyklus [1,2,6,1]: x12 + x 26 + x 61 2 Vermeidung des Kurzzyklus [5,3,4,5]: x 53 + x 34 + x 45 2 Idee identisch zu Cover Cuts große Anzahl solcher Bedingungen verhindern alle Kurzzyklen Anmerkung: Formulierung für asymmetrisches TSP (für symmetrisches TSP s. unten) Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 7 Das Traveling Salesman-Problem (symmetrisch & asymmetrisch) Minimiere F 𝐱 = σni=1 σnj=1 cij xij unter den Nebenbedingungen σni=1 xij = 1 für j = 1, … , n σnj=1 xij = 1 für i = 1, … , n σi∈Q σj∈Q xij ≤ Q − 1 für Q ⊂ 1, … , n , 2 ≤ Q ≤ xij ∈ 0,1 für i, j = 1, … , n n 2 Formulierung nach Dantzig–Fulkerson–Johnson Es gibt noch weitere Fomulierungen z.B. mit den Miller–Tucker–Zemlin Nebenbedingungen Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 8 TSP-Lösungen Größte exakt gelöste Instanzen für das TSP (Optimalität bewiesen): 1954: 49 Städte 1971: 64 Städte 1975: 100 Städte 1977: 120 Städte 1980: 318 Städte 1987: 2.392 Städte 1994: 7.397 Städte 1998: 13.509 Städte 2001: 15.112 Städte (Deutschland) 2004: 24.978 Städte (Schweden) 2006: 85.900 Städte (eigentlich Chip-Design) Aber: Schon in den 70er Jahren entwickelten Lin und Kernighan eine Heuristik, die Instanzen mit hunderttausenden von Städten in wenigen Sekunden fast optimal lösen kann (Abweichung vom Optimum < 0,1%). Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 9 Deutschlandrundreise aus Gritzmann und Brandenberg (2003, S. 351), mit 15.112 Orten Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 10 Branch & Bound-Verfahren für symmetrische TSP (mgl. Variante) ▪ bewerteter, schlichter, zusammenhängender, ungerichteter Graph G = [V, E, c] mit n Knoten ▪ mathematische Formulierung (Folie 9) ▪ Anwendung der MLB-Regel zur Auswahl von Problemen aus der Kandidatenliste ▪ in P0: freie Variablen xij, die die Werte 0 oder 1 annehmen dürfen ▪ in P1, P2, ...: z.T. fixierte Variablen xij mit Wert 1 zu 1 fixierte Variable xij wird als einbezogene Kante [i,j] bezeichnet Relaxation, Ermittlung unterer Schranken: ▪ Ermittlung unterer Schranken Fv für die Probleme (v = 0,1, …) mit dem Kruskal-Algorithmus (s. Vorlesung „Graphentheorie“) ▪ Berücksichtigung von Variablenfixierungen Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 11 Symmetrisches TSP: Beispiel aus: Thonemann, U. (2010): Operations Management: Konzepte, Methoden und Anwendungen, Kap. 7.3 Von/Nach Do E Köln Dortmund Düsseldorf Essen Frankfurt Köln ∞ 92 40 72 191 Dortmund 92 ∞ 68 36 222 Düsseldorf 40 68 ∞ 36 228 Essen 72 36 36 ∞ 254 191 222 228 254 ∞ Frankfurt Dü K F Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 12 Lösungsbaum (Auszug) Startknoten K 1. Ziel Dü E Do 2. Ziel Dü Do F 3. Ziel Dü 4. Ziel F Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 13 F F Initiale Upper Bound per Verfahren des nächsten Nachbarn E 36 36 Do 68 Dü 92 40 72 228 222 254 K 191 F UB= 40 + 36 + 36 + 222 + 191 = 525 Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 14 Ermittlung einer Lower Bound: Grundlagen Kreis: Eine Kette (=direkte Kantenfolge) w= [j, j+1,…,g] mit j=g Do E Dü K Spannender Baum: Jeder Knoten ist durch eine Kante verbunden, ohne dass ein Kreis entsteht. (minimaler Spannbaum = derjenige aller Spannbäume mit der geringsten Summe der Kantengewichte) Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 15 E Do Dü F K Zusammenhang zwischen minimaler Tour und minimalem Spannbaum 1. Jede Tour kann in einen Spannbaum umgewandelt werden, indem eine beliebige Kante entfernt wird Do E Dü F K 2. Der minimale Spannbaum ist höchstens so lang wie jeder aus der kürzesten Tour zu gewinnende Spannbaum Do E Dü F K 3. Lower Bound ergibt sich aus der Länge des minimalen Spannbaums zuzüglich der Länge der kleinsten im Spannbaum nicht enthaltenen Kante Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 16 E Do Dü F K Wiederholung: Bestimmung eines minimalen spannenden Baumes (MSB) Der Kruskal-Algorithmus Der Kruskal-Algorithmus ▪ Voraussetzung: bewerteter, zusammenhängender, schlingenfreier, ungerichteter Graph 𝐺 = [𝑉, 𝐸, 𝑐] mit n Knoten und m Kanten ▪ 𝐸ത ist die zu bestimmende Kantenmenge des gesuchten MSB 𝑇 = 𝑉, 𝐸ത Start: Sortiere die Kanten 𝑘𝑖 von G in einer Reihenfolge 𝑘1 , 𝑘2 , … , 𝑘𝑚 mit monoton steigenden 𝑐(𝑘𝑖 ) Setze 𝐸ത ≔ Ø und 𝑇 ≔ 𝑉, 𝐸ത (T zu Beginn: Teilgraph von G ohne Kanten) Iteration µ= 1,2,...,m: ▪ Wähle die Kante 𝑘µ aus ▪ Füge 𝑘µ zu 𝐸ത hinzu, wenn die Aufnahme der Kante in 𝑇 ≔ 𝑉, 𝐸ത keinen Kreis erzeugt 𝐸ത ≔ 𝐸ത ∪ 𝑘µ Abbruch: sobald 𝐸ത genau n–1 Kanten enthält → T ist zusammenhängend Ergebnis: 𝑇 ≔ 𝑉, 𝐸ത ist ein minimaler spannender Baum von G; Summe seiner Kantenbewertungen 𝑐 𝑇 = σ𝑘∈𝐸 𝑐(𝑘) Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 17 Bestimmung der Lower Bound von Teilproblemen 1. Bereits fixierte Kanten und die damit inzidenten Knoten vorübergehend aus dem Graphen entfernen 2. Minimalen Spannbaum des verbliebenen Graphen bestimmen 3. Beide Teilgraphen zusammenfügen, indem sowohl dem Start- als auch dem Endknoten der fixierten Tour die Kanten mit der geringsten Länge zu einem Knoten des minimalen Spannbaums hinzugefügt wird Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 18 E Do Dü K F Bestimmung der Lower Bound des Wurzelknotens im Beispiel E 36 36 Do 68 Dü 92 40 72 228 222 254 K 191 F LB= 36 + 36 + 40 + 191+68 = 371 Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 19 Lösungsbaum mit Lower Bounds (Auszug) im Beispiel UB: 525 K 1: 371 3: 406 2: 432 Do Dü E F 4: 438 7: 426 6: 444 13: 563 E Do F 14: 630 E Do F F 11: 525 Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 20 8: 624 12: 618 5: 525 Lower Bound für Knoten 2 im Beispiel E 36 36 Do 68 Dü 92 40 72 228 222 254 K 191 F LB= 36 + 36 + 40 + 92 + 228 = 432 Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 21 Heuristiken am Beispiel des TSP Eröffnungsverfahren: Ermittlung einer ersten zulässigen Lösung Verbesserungsverfahren: sukzessive Veränderung der Lösung mit dem Ziel, verbesserte Lösungen zu erzielen. Häufig in Kombination mit modernen Metastrategien wie Tabu Search und Sintflut-Algorithmus zur Überwindung der "Falle" der lokalen Optimalität Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 22 Eröffnungsverfahren Verfahren des nächsten Nachbarn (oder des besten Nachfolgers, engl. Nearest Neighbor) ▪ Greedy-Verfahren: in jedem Schritt möglichst gute Ergänzung der Lösung vornehmen; keine Vorausschau ▪ Beginn bei Startknoten 1 ▪ in jeder Iteration: Erweiterung um denjenigen Knoten, dessen Entfernung vom derzeit letzten Knoten der Rundreise möglichst klein ist ▪ Ende, sobald alle Knoten in der Rundreise enthalten sind Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 23 Beispiel cij 1 2 3 4 5 6 1 ∞ 4 3 4 4 6 2 4 ∞ 2 6 3 5 3 3 2 ∞ 4 1 3 4 4 6 4 ∞ 5 4 5 4 3 1 5 - 2 6 6 5 3 4 2 ∞ Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 24 Eröffnungsverfahren Verfahren der sukzessiven Einbeziehung (Cheapest Insertion) ▪ Start: Kurzzyklus [t0, t1, t0]; t 0 und t1 möglichst weit auseinander ▪ Iteration (i=2,...,n–1): Einfügen eines zusätzlichen Knotens an der für ihn günstigsten Stelle (geringste Verlängerung der Rundreise). Auswahl des einzufügenden Knotens: Wähle jeweils den noch nicht in der Rundreise befindlichen Knoten, dessen kürzeste Entfernung zu einem Knoten der Rundreise am größten ist. Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 25 Beispiel Begründung für Wahl von t 0 und t1 und des einzufügenden Knotens: möglichst frühzeitig die grundlegende Struktur der Rundreise festlegen Beispiel: cij 1 2 3 4 5 6 1 ∞ 4 3 4 4 6 t 0 = 1; t1 = 6 2 4 ∞ 2 6 3 5 r = [1, 6,1] 3 3 2 ∞ 4 1 3 4 4 6 4 ∞ 5 4 5 4 3 1 5 ∞ 2 6 6 5 3 4 2 ∞ 4 3 4 4 6 min Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 26 Startzyklus: Beispiel Iteration 2: Welcher Knoten hat die größte Entfernung zur Rundreise? Knoten 2 oder 4: z.B. Wahl von t2=2; r=[1,2,6,1] Einfügeposition noch beliebig wegen Symmetrie neue Länge der Rundreise: c(r)=12–6+5+4=15 cij 1 2 3 4 5 6 1 ∞ 4 3 4 4 6 2 4 ∞ 2 6 3 5 3 3 2 ∞ 4 1 3 4 4 6 4 ∞ 5 4 5 4 3 1 5 ∞ 2 6 6 5 3 4 2 ∞ 4 3 4 2 min Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 27 Beispiel Iteration 3: Auswahl von Knoten t3=4 Bestimmung der Einfügeposition: r = [1, 4, 2, 6, 1]: c(r) = 15 - 4 + 4 + 6 = 21 r = [1, 2, 4, 6, 1]: c(r) = 15 - 5 + 6 + 4 = 20 r = [1, 2, 6, 4, 1]: c(r) = 15 - 6 + 4 + 4 = 17 * → neue Rundreise ist r = [1, 2, 6, 4, 1] mit c(r)=17 cij 1 2 3 4 5 1 3 4 4 2 2 6 3 6 3 4 2 min 2 4 2 6 … Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 28 Beispiel Iteration 4: Auswahl von Knoten t 4 = 3 Bestimmung der Einfügeposition: r = [1, 3, 2, 6, 4, 1]: c(r) = 17 - 4 + 3 + 2 = 18 r = [1, 2, 3, 6, 4, 1]: c(r) = 17 - 5 + 2 + 3 = 17 * r = [1, 2, 6, 3, 4, 1]: c(r) = 17 - 4 + 3 + 4 = 20 r = [1, 2, 6, 4, 3, 1]: c(r) = 17 - 4 + 4 + 3 = 20 → neue Rundreise ist r = [1, 2, 3, 6, 4, 1] mit c(r)=17 cij 1 2 3 4 5 1 3 4 2 2 3 4 4 5 6 3 2 min 2 2 6 Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 29 Beispiel Iteration 5: Auswahl von Knoten t 5 = 5 Bestimmung der Einfügeposition: r = [1, 5, 2, 3, 6, 4, 1]: c(r) = 17 - 4 + 4 + 3 = 20 r = [1, 2, 5, 3, 6, 4, 1]: c(r) = 17 - 2 + 3 + 1 = 19 r = [1, 2, 3, 5, 6, 4, 1]: c(r) = 17 - 3 + 1 + 2 = 17 * cij 2 3 4 5 1 4 2 3 3 1 4 5 6 2 min 1 r = [1, 2, 3, 6, 5, 4, 1]: c(r) = 17 - 4 + 2 + 5 = 20 r = [1, 2, 3, 6, 4, 5, 1]: c(r) = 17 - 4 + 5 + 4 = 22 → neue Rundreise ist r = [1, 2, 3, 5, 6, 4, 1] mit c(r)=17 Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 30 1 6 Verbesserungsverfahren ▪ in der Regel Tauschverfahren ▪ Start mit zulässiger Lösung ▪ sukzessive Veränderung der Lösung durch Vertauschen von Lösungselementen 2-opt-Verfahren für das TSP ▪ Start: eine zulässige Rundreise ▪ in jeder Iteration: systematische Untersuchung aller Möglichkeiten der Vertauschung von zwei Kanten innerhalb der Rundreise mit zwei nicht enthaltenen Kanten Realisierung der besten Tauschmöglichkeit ▪ Abbruch, falls keine Vertauschung zu einer Verbesserung führt Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 31 Beispiel cij 1 2 3 4 5 6 1 ∞ 4 3 4 4 6 2 4 ∞ 2 6 3 5 3 3 2 ∞ 4 1 3 4 4 6 4 ∞ 5 4 5 4 3 1 5 ∞ 2 6 6 5 3 4 2 ∞ Start: z.B. mit der Lösung des "besten Nachbarn" Tauschmöglichkeiten: (1,3) und (5,6) gegen (1,5) und (3,6): c(r) = 20 - 3 - 2 + 4 + 3 = 22 (1,3) und (6,4) gegen (1,6) und (3,4): c(r) = 20 - 3 - 4 + 6 + 4 = 23 (1,3) und (4,2) gegen (1,4) und (3,2): c(r) = 20 - 3 - 6 + 4 + 2 = 17 * ... Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 32 Klausurvorbereitung Domschke, W. und A. Drexl (2015): Einführung in Operations Research. 9. Aufl., Springer-Verlag, Berlin et al., Kapitel 6 Zur Klausurvorbereitung sind die Aufgaben 6.5 und 6.6 a)–c) aus dem Übungsbuch „Übungen und Fallstudien zum Operations Research“ von Domschke, Drexl, Klein, Scholl und Voß sehr zu empfehlen Version 1.1| Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 33 Einführung in Operations Research Dynamische Optimierung Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 1 Einführung in die Dynamische Optimierung (DO) Anwendungsbedingungen ▪ Entscheidungsprobleme, bei denen eine Folge von (Teil-) Entscheidungen zu treffen ist → Einteilung des Problems in Entscheidungsstufen ▪ Entscheidungen sind nur von vorgelagerten Entscheidungen abhängig (einseitige Kopplung) → Anwendungsbedingungen einer Sukzessivplanung ▪ typisch und namensgebend: zeitliche Aufeinanderfolge von Entscheidungen: Stufen = Perioden → mehrperiodiges bzw. dynamisches Entscheidungsmodell ▪ Entscheidungen überführen das Problem/ System von einem Zustand in einen anderen ▪ Kenntnis des aktuellen Systemzustands sowie der aktuellen Rahmenbedingungen ausreichend zur Festlegung der nachfolgenden Entscheidungen → vergangene Entwicklung unwichtig ▪ Erfolgsbeiträge der Teilentscheidungen sind separat ermittelbar (additiv oder multiplikativ verknüpft) Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 2 Einführung in die Dynamische Optimierung (DO) Beispiele realer Probleme mit DO-Struktur ▪mehrperiodige Bestellmengen- und Losgrößenprobleme ▪Gestaltung mehrstufiger Distributionsnetze ▪Routenprobleme ▪Personaleinsatzplanung über mehrere Perioden ▪mehrperiodige Investitionsplanung ▪Zuordnung von Arbeitsgängen zu Stationen eines Fließbandes ▪Ressourcenaufteilung auf mehrere Projekte, Aufträge, Produkte, etc Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 3 Das Postkutschen-Problem Problemstellung: Wyatt Earp möchte anno 1865 mit der Postkutsche von Virginia nach New Mexico reisen. Die Zeiten sind unsicher, seit Billy the Kid und andere Desperados auf Raubzüge gehen. Daher möchte er die sicherste Reiseroute finden. Es bestehen die in der Karte eingezeichneten Postkutschenverbindungen; jede der möglichen Routen enthält 4 Teilstrecken (Stufen, Tagesfahrten). Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 4 Das Postkutschen-Problem Zielsetzung: ▪ Maß für die Sicherheit einer Teilstrecke: Höhe der Versicherungsprämie, die Reisenden von Lloyds angeboten wird ▪ Je geringer die Prämie ist, desto höher wird die Sicherheit der Strecke durch Lloyds eingeschätzt. ▪ Ersatzziel für die Maximierung der Sicherheit: Minimiere die Gesamtversicherungsprämie Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 5 Wyatt Earp circa 1869, at about age 21 (public domain) Das Postkutschen-Problem Daten: Versicherungsprämie cij für Tagesfahrt von Staat i nach Staat j 1 2 3 4 2 5 3 5 6 7 2 8 4 6 3 3 2 4 4 2 10 8 9 5 1 4 8 3 4 6 6 3 9 4 5 7 3 3 Lösung mittels Greedy-Heuristik: "Immer der günstigsten Police nach!" Route: 1 → 2 → 6 → 9 → 10 mit Gesamtprämie: Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 6 2+4+3+4=13$ Das Postkutschen-Problem Daten: Versicherungsprämie cij für Tagesfahrt von Staat i nach Staat j 1 2 3 4 2 5 3 5 6 7 2 8 4 6 3 3 2 4 4 2 10 8 9 5 1 4 8 3 4 6 6 3 9 4 5 7 3 3 Lösung mittels DO: ▪ Rückwärtsschreitend → Rückwärtsrekursion ▪ Beginn mit einstufigem Teilproblem (Übergang von vorletzter Stufe zum Endzustand) → einstufige Teilpolitik von jedem Zustand der vorletzten Stufe aus ▪ sukzessive Erweiterung des Problems und der optimalen Teilpolitiken um eine frühere Stufe ▪ Abbruch, wenn Startzustand erreicht Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 7 Das Postkutschen-Problem Einige Bezeichnungsweisen: ▪ Stufe k = 1,..., n: k-te Teilstrecke der Route; Stufe 0 enthält nur den Startknoten 𝑧0 = 1 (Virginia) ▪ Auswahl der k-ten Tagesstrecke → Variable xk Übergang: Entscheidung 𝑥4 ▪ Darstellung der Gesamtroute: z0 = 1 → 𝑧1 → z2 → z3 → z4 = 10 ▪ Versicherungsprämien der Strecke bei Wahl von xk und Start in zk−1 ∶ fk zk−1 , xk = czk−1 ,j (mit 𝑗 als Ziel der Tagesstrecke 𝑥𝑘 ) ▪ minimale Versicherungsprämie einer Route von Staat zk nach zn (New Mexico): Fk∗ zk Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 8 Das Postkutschen-Problem Zahlenbeispiel: Stufe 4: Reise fast beendet, nur noch eine Teilstrecke Wyatt ist entweder in Staat 8 oder 9 optimale Ergänzung d. jeweiligen Strecken: z3 x4 z4 f4 (z3 ,x 4 ) F3* (z3 ) 8 (8,10) 10 3 3 9 (9,10) 10 4 4 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 9 Das Postkutschen-Problem Stufe 3: Wyatt ist in Staat z2 = 5, 6 oder 7 optimale Ergänzung der jeweiligen Strecken: für jedes z2 ist eine Weiterfahrt x3 zu finden, so dass gilt: F2* (z2 ) = minf3 (z2 ,x3 ) + F3* (z3 ) für alle möglichen x3 von jedem z3 aus ist die beste Weiterfahrmöglichkeit schon bekannt → Länge der billigsten Strecke F3∗ z3 z2 5 6 7 * f3 (z2 ,x 3 ) + F3* (z3 ) F2 (z2 ) x3 z3 f3 (z2 , x 3 ) F3* (z3 ) (5,8) 8 1 3 4 (5,9) 9 4 4 8 (6,8) 8 6 3 9 (6,9) 9 3 4 7 (7,8) 8 3 3 6 (7,9) 9 3 4 7 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 10 4 7 6 Das Postkutschen-Problem Stufe 2: Wyatt ist in Staat z1 = 2, 3 oder 4 optimale Ergänzung der jeweiligen Strecken: für jedes z1 ist eine Weiterfahrt x2 zu finden, so dass gilt: F1* (z1 ) = minf2 (z1 ,x2 ) + F2* (z2 ) für alle möglichen x2 von jedem z2 aus ist beste Fortsetzung mit Länge F2∗ z2 bekannt Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 11 Das Postkutschen-Problem Stufe 2: z1 2 3 4 x2 z2 f2 (z1 ,x2 ) F2* (z2 ) f2 (z1 ,x2 ) + F2* (z2 ) (2,5) 5 8 4 12 (2,6) 6 4 7 11 (2,7) 7 6 6 12 (3,5) 5 3 4 7 (3,6) 6 2 7 9 (3,7) 7 4 6 10 (4,5) 5 4 4 8 (4,6) 6 2 7 9 (4,7) 7 5 6 11 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 12 F1* (z1 ) 11 7 8 Das Postkutschen-Problem Stufe 1: Wyatt ist in Staat z0 = 1 (Startstaat Virginia) optimale Ergänzung der Strecke von z0 aus → Finde x1 mit: F0* (z0 ) = minf1 (z0 ,x1 ) + F1* (z1 ) für alle x1 von jedem z1 aus ist beste Fortsetzung mit Länge F1∗ z1 bekannt z0 1 x1 z1 f1 (z0 ,x1 ) F1* (z1 ) (1,2) 2 2 11 13 (1,3) 3 5 7 12 (1,4) 4 3 8 11 f1 (z0 ,x1 ) + F1* (z1 ) F0* (z0 ) Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 13 11 Das Postkutschen-Problem Optimale Lösung: minimale Gesamtprämie: F0∗ z0 = 11 optimale Route: stufenweise optimale Fortsetzung ermitteln 1 → 4 → 5 → 8 → 10 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 14 Ein allgemeines Modell der DO ▪ keine Standardformulierung vorhanden ▪ DO ist allgemeines Prinzip, das problemspezifisch ausgestaltet werden muss ▪ Probleme müssen sich auf folgende allgemeine Art modellieren lassen Minimiere F(x1 ,… ,xn ) = k=1 fk (zk-1 ,xk ) n unter den Nebenbedingungen zk = tk (zk-1 ,xk ) für k=1,…,n z0 = α, zn = ω zk Zk für k=1,…,n xk Xk (zk-1 ) für k=1,…,n Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 15 Erläuterungen n n Anzahl der Stufen Minimiere F(x1 ,… ,xn ) = zk Zustandsvariable (Zustand des Problems in Stufe k = 1,...,n) unter den Nebenbedingungen zk = tk (zk-1 ,xk ) f (zk-1 ,xk ) k=1 k für k=1,…,n z0 = α Anfangszustand z0 = α, zn = ω zn = ω Endzustand zk Zk für k=1,…,n Zk Zustandsmenge in Stufe k xk Xk (zk-1 ) für k=1,…,n xk Entscheidungsvariable → Teilentscheidung in Stufe k (Übergang von k-1 nach k) X k zk−1 Entscheidungsmenge → Menge aller Entscheidungen, um von einem Vorgängerzustand zk−1 zu einem Zustand zk überzugehen t k (zk−1 , xk ) Transformationsfunktion → Zielzustand zk bei Entscheidung xk in 𝑧𝑘−1 fk zk−1 , xk Stufenzielfunktion → Zielbeitrag der Entscheidung xk in Zustand zk−1 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 16 Im Postkutschen-Problem n = 4 Stufen; Anfangszustand z0 = α = 1 (VA); Endzustand zn = ω = 10 (NM) zk : Aufenthaltsort in Stufe k; Z1 = 2,3,4 ; Z2 = 5,6,7 ; Z3 = 8,9 ; Z4 = {10} xk : Teilstrecke auf Stufe k; z.B. X1 z0 = 1,2 , 1,3 , 1,4 zk = t k (zk−1 , xk ) : Variable bestimmt gleichzeitig Endzustand fk zk−1 , xk = czk−1 ,j : Versicherungsprämie bei Reisestrecke zk−1 → j Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 17 Variationen des allgemeinen DOModells ▪ Maximierung statt Minimierung ▪ Multiplikative Verknüpfung der Stufenzielfunktionen: Minimiere F(x1 … ,xn ) = k=1 fk (zk-1 ,xk ) n ▪ kontinuierliche Variablen xk → Entscheidungsmengen und Zustandsmengen unendlich (auf jeder Stufe ein „kleineres“ Optimierungsmodell anstelle der Tabellenform) ▪ unbekannter Anfangszustand: gewünschter Zielzustand des Systems/ Problems bekannt, dafür benötigte Voraussetzungen sind unbekannt, d.h. zu ermitteln (z.B. Gesamtbudget) → Rückwärtsrekursion zwingend ▪ unbekannter Endzustand: "So weit wie mit begrenztem Reisebudget möglich!" → Vorwärtsrekursion zwingend ▪ mehrwertige Zustände: Zustandsvektoren zk z.B. Restkapazitäten von 3 Ressourcen: → zk = R1 , R 2 , R 3 ▪ stochastische Daten → beeinflussen v.a. die Transformationsfunktion z.B. stochastische Nachfragen, die den Lagerbestand der folgenden Periode beeinflussen Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 18 Politik und Bellmansches Optimalitätsprinzip (Teil-) Politik: Folge xh , xh+1 , … , xk von Entscheidungen, die das System von Zustand zh−1 ∈ Zh−1 in zk ∈ Zk überführt Optimale (Teil-) Politik: ∗ Folge xh∗ , xh+1 , … , xk∗ , die von zh−1 ∈ Zh−1 in zk ∈ Zk überführt und σkj=h fj zj−1 , xj minimiert (bei Minimierungsproblem) Bellmansches Optimalitätsprinzip: Zerlegt man eine optimale Gesamtpolitik 𝐱 ∗ = (x1∗ , x2∗ , … , xn∗ ), die z0 = α in zn = ω ∗ ∗ überführt, in zwei Teilpolitiken 𝐱 ′∗ = (x1∗ , x2∗ , … , xk−1 ) und 𝐱 ′′∗ = (xk∗ , x𝑘+1 , … , xn∗ ) mit "Zwischenzustand“ zk−1 , so gilt: 𝐱 ′∗ ist eine optimale Teilpolitik für das Teilproblem z0 → zk−1 𝐱 ′′∗ ist eine optimale Teilpolitik für das Teilproblem 𝑧𝑘−1 → 𝑧𝑛 Erkenntnis: optimale Politik lässt sich durch stufenweise Ermittlung optimaler Teilpolitiken generieren → Rückwärtsrekursion Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 19 Rückwärtsrekursion (Kochrezept) Bezeichnungen: Ausgangsproblem P z0 = α : Bestimmung einer optimalen Gesamtpolitik 𝐱 ∗ z0 für z0 → zn Teilproblem P(zk ): Bestimmung einer optimalen Teilpolitik 𝐱 ∗ zk für zk → zn k = 1, … , n − 1 Start: Löse jedes einstufige Teilproblem P(zn−1 ) für alle z𝑛−1 ∈ Zn−1 wie folgt: Wähle optimale Politik 𝐱 ∗ zn−1 = (xn ), sodass t n zn−1 , xn = zn gilt. ∗ Setze Fn−1 zn−1 = fn zn−1 , xn . Iteration 𝐤 = 𝐧 − 𝟏, 𝐧 − 𝟐, … , 𝟏: Bestimme für alle P zk−1 mit z𝑘−1 ∈ Zk−1 optimale Entscheidung xk : ∗ Fk−1 zk−1 = min fk zk−1 , xk + Fk∗ zk = t k zk−1 , xk xk ∈ Xk zk−1 Ergebnis: optimale Gesamtpolitik 𝐱 ∗ z0 und optimale Teilpolitiken 𝐱 ∗ zk für k = 1, … , n − 1 und z𝑘 ∈ Zk zugehörige optimale Zielfunktionswerte F0∗ (z0 ) und Fk∗ (zk ) Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 20 Bestellmengenproblem Problembeschreibung: Beschaffung eines Rohstoffs n=4 Perioden → Stufen k=1,…,4 Periode k 1 2 3 4 𝑞𝑘 7 9 12 10 𝑏𝑘 1 1 1 1 keine Lagerkosten, keine fixen Bestellkosten, zeitlich veränderliche StückEinkaufspreise 𝐪𝐤 , Periodenbedarfe 𝐛𝐤 zu Beginn von Periode k, Lieferung von maximal zwei ME pro Periode; Lieferzeit vernachlässigbar, Lager zu Beginn und am Ende des Planungszeitraums leer → z0 = 0, zn = 0 Formulierung als DO-Modell: zk Zk Lagerbestand am Ende von Periode k Menge möglicher Lagerbestände am Ende von k: Z 0 = 0 ,Z1 = 0,1 ,Z2 = 0,1,2 ,Z 3 = 0,1 ,Z 4 = 0 (siehe Lösung) xk Bestellmenge zu Beginn von Periode k (gleichzeitig auch verfügbar) Xk (zk-1 ) mögliche Bestellmengen in k (eingeschränkt durch Lager- und Lieferbeschränkungen) Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 21 Bestellmengenproblem Minimiere F(x1 ,x 2 , x 3 ,x 4 ) = k=1 fk (zk-1 ,xk ) = k =1 qk ·xk 4 4 unter den Nebenbedingungen zk = tk (zk-1 ,xk ) = zk-1 + xk - bk für k=1,…,4 [Lagerbilanzgleichung: EB=AB+Zu-Ab] zk 0,1,2 für k=1,2,3 z0 = 0, z4 = 0 xk 0,1,2 für k=1,…,4 Anmerkung: Weitere Einschränkungen der Werte für zk und xk bei genauer Analyse möglich! Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 22 Bestellmengenproblem Graphische Darstellung: Knoten = Zustände = Lagermengen Pfeile = mögliche Bestellungen Stufenzielfunktionen = variable Bestellkosten Anfangs- und Endzustand = leeres Lager Periode k 1 2 3 4 𝑞𝑘 7 9 12 10 𝑏𝑘 1 1 1 1 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 23 Anwendung der Rückwärtsrekursion Start: z3 x4 z4 f4 (z3 ,x 4 ) F3* (z3 ) x *(z3 ) 1 0 0 0 0 (0) 0 1 0 10 10 (1) Iteration k=3: Wegen 𝑧4 = 0 gilt: 𝑧2 = 2 ⇒ 𝑥3 = 0 𝑧2 = 1 ⇒ 𝑥3 ≤ 1 𝑧2 = 0 ⇒ 𝑥3 ≥ 1 f3 (z2 ,x 3 ) F3* (z3 ) f3 (z2 ,x 3 ) + F3* (z3 ) F2* (z 2 ) x *(z2 ) z2 x3 z3 2 0 1 0 0 0 1 1 12 0 12 0 0 0 10 10 2 1 24 0 24 1 0 12 10 22 1 0 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 24 0 (0,0) 10 (0,1) 22 (1,1) Anwendung der Rückwärtsrekursion Iteration k=2: Wegen z0 = 0 und x1 2 gilt z1 1 z1 1 0 Iteration k=1: Wegen z0 = 0 gilt x1 1 z0 0 f2 (z1 ,x 2 ) F2* (z 2 ) f2 (z1 ,x 2 ) + F2* (z2 ) F1* (z1 ) x *(z1 ) x2 z2 2 2 18 0 18 1 1 9 10 19 0 0 0 22 22 2 1 18 10 28 1 0 9 22 31 x1 z1 2 1 14 18 32 1 0 7 28 35 18 (2,0,0) 28 (2,0,1) f1 (z0 ,x1 ) F1* (z1 ) f1 (z0 ,x1 ) + F1* (z1 ) F0* (z0 ) x *(z0 ) Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 25 32 (2,2,0,0) Optimale Lösung Optimale Gesamtpolitik: 𝐱 ∗ z0 = 2,2,0,0 Minimale Gesamtkosten: F0∗ z0 = 32 Optimale Teilpolitiken 𝐱 ∗ zk von allen Zwischenzuständen zk aus → fett markiert Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 26 Ein stochastisches, diskretes Problem Bestellmengenmodell mit n = 3 Perioden; Bedarf bk, jeder gleich 1 mit Wahrscheinlichkeit p1 = 0,7 und 0 mit Wahrscheinlichkeit p0 = 0,3. Liefermenge pro Periode wie bisher auf 2 ME beschränkt. Periode k 1 2 3 Preis qk 7 9 12 Bedarf bk Wahrscheinlichkeit 1 0 1 0 1 0 0,7 0,3 0,7 0,3 0,7 0,3 Bei nicht ausreichendem Bestand Fehlmengenkosten von 15 GE/ME. Am Ende des Planungszeitraumes Restmenge nicht verwertbar. Zustands- oder Entscheidungsknoten: In Abb. Rechtecke; deterministische Knoten. Stochastische Knoten: Die von ihnen ausgehenden Pfeile entsprechen einer zufallsabhängigen Nachfrage (Rauten). Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 27 Ein stochastisches, diskretes Problem 1 F (zk−1 ) = min qk xk + pi fk (zk−1 ,xk ,i) + Fk* (zk = tk (zk−1 ,xk ,i)) xk Xk (zk−1 ) i=0 * k −1 mit fk ( zk-1,xk ,bk ) = 15 falls zk-1 = xk = 0 und bk = 1 0 sonst Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 28 Ein stochastisches, diskretes Problem z2 x 3 F2* (z 2 ) 2 0* 0* 1 0* 0* 0 1 0* 12 0,7 ∙ 15 = 10,5* z1 x 2 z0 x1 0 2* 1 0 F1* (z1 ) 2 0* 0* 1 1 0* 9 0,7 ∙ 10,5 = 7,35* 0 2 1* 0 2 ∙ 9 = 18 9 + 0,7 ∙ 10,5 = 16,35* 0,7 ∙ 15 + 10,5 = 21 Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 29 F0* (z0 ) 2 ∙ 7 + 0,7 ∙ 7,35 = 19,145* 7 + 0,3 ∙ 7,35 + 0,7 ∙ 16,35 = 20,65 0,7 ∙ 15 + 16,35 = 26,85 Klausurvorbereitung Domschke, W. und A. Drexl (2015): Einführung in Operations Research. 9. Aufl., Springer-Verlag, Berlin et al., Kapitel 7 Zur Klausurvorbereitung sind die Aufgaben 7.2 und 7.4 bis 7.6 aus dem Übungsbuch „Übungen und Fallstudien zum Operations Research“ von Domschke, Drexl, Klein, Scholl und Voß sehr zu empfehlen. Version 1.1 | Einführung in Operations Research | Prof. Dr. Felix Weidinger | Folie 30