01
I. Lineare Optimierung
Die Lineare Optimierung ist dadurch gekennzeichnet, daß sowohl die Zielfunktion wie auch die
Funktionen der Entscheidungsparameter linear sind, d.h. Geraden in einem Koordinatensystem
bilden.
Beispiele:
- Produktionsplanung: Wie optimiere ich bei beschränkter Faktoreinsatzmenge und mehreren
Outputs meinen Gewinn?
- Transportproblem: Welches Lager beliefert welchen Kunden mit welcher Menge?
- Verkehrsnetze: Welches ist der kürzeste / schnellste Weg durch das Netz?
- Tourenplanungsproblem: Wie erreiche ich auf kürzestem Weg in kürzester Zeit meine Kunden?
- Zuordnungsproblem: Welche Bewerber soll ich auch welche Stelle setzten und wonach
auswählen?
- Verschnittproblem: Wie wähle ich mein Schnittmuster, so daß möglichst wenig Verschnitt
entsteht?
1/1
© A. Jacob
Ver. 1.0 24.07.01
Inhaltsverzeichnis
Zusammenfassung „Einführung in die Operations Research I/II“ bei Prof. Neumann ............................ 1
I. Lineare Optimierung ......................................................................................................................... 1
II. Nichtlineare Optimierung .............................................................................................................. 1
III. Dynamische Optimierung.............................................................................................................. 1
Inhaltsverzeichnis................................................................................................................................. 2
Lineare Optimierung ................................................................................................................................ 3
Formulierung eines linearen Optimierungsproblems........................................................................ 3
Lösung des Problems ....................................................................................................................... 3
Typische Eigenschaften linearer Optimierungsprobleme................................................................. 3
Standardproblem der Linearen Optimierung .................................................................................... 3
Die entartete oder degenerierte Ecke............................................................................................... 4
Das Simplexverfahren ...................................................................................................................... 4
Kleinste-Index-Regel ........................................................................................................................ 5
Der Austauschschritt der Simplexmethode ...................................................................................... 6
Dualität.............................................................................................................................................. 6
Modifikationen des Standardproblems und Sonderformen des Simplex ......................................... 8
Sensitivitätsanalyse und parametrische Optimierung .................................................................... 10
Vektoroptimierung und Goal-Programming .................................................................................... 10
Zwei-Personen-Nullsummenspiele................................................................................................. 11
Graphen und Netzwerke .................................................................................................................... 12
Graphen und Digraphen auf Rechnern .......................................................................................... 13
Minimalgerüste ............................................................................................................................... 13
Kürzeste Wege in Netzwerken ....................................................................................................... 14
Kürzeste Wege zwischen allen Knoten .......................................................................................... 15
Elemente der Netzplantechnik........................................................................................................ 15
Das Gantt-Diagramm .................................................................................................................. 16
Flüsse in Netzwerken ..................................................................................................................... 16
Das Transportproblem .................................................................................................................... 17
Ganzzahlige und kombinatorische Optimierung ................................................................................ 18
Ganzzahlige Optimierungsprobleme mit total unimodularer Koeffizientenmatrix .......................... 19
Verfahren von Gomory zur Lösung eines rein ganzzahligen Optimierungsproblems.................... 19
Die Branch-and-Bound-Methode zur Lösung kombinatorischer Probleme.................................... 19
Branch-and-Cut-Verfahren ............................................................................................................. 20
Nichtlineare Optimierung ....................................................................................................................... 22
Spezialfall der nicht-linearen Optimierung: konvexe Optimierungsprobleme ............................. 22
Lagrange-Funktion und Karush-Kuhn-Tucker-Bedingung .......................................................... 22
Dynamische & stochastische Modelle und Methoden ........................................................................... 24
Problemstellung der allgemeinen dynamischen Optimierung .................................................... 25
Bellmansches Optimalitätsprinzip................................................................................................... 25
Bellmansche Funktionalgleichung .................................................................................................. 25
Bellmansche Funktionalgleichungsmethode .................................................................................. 25
Lagerhaltung................................................................................................................................... 27
EOQ-Modell (economic order quantity........................................................................................ 27
Deterministisches dynamisches Modell ...................................................................................... 28
Warteschlangen ................................................................................................................................. 29
Das Wartesystem M|M|1............................................................................................................. 29
Das Wartesystem M|M|s ............................................................................................................. 31
2/2
© A. Jacob
Ver. 1.0 24.07.01
Lineare Optimierung
Formulierung eines linearen Optimierungsproblems
a) Spezifikation der gesuchten Größen bzw. Entscheidungsvariablen
b) Formulierung aller Nebenbedingungen des Problems als lineare Gleichungen oder Ungleichungen
für die Entscheidungsvariablen (inkl. Nichtnegativitätsbedingung)
c) Spezifikation der Zielfunktion in Form einer linearen Funktion der Entscheidungsvariablen, die zu
minimieren oder maximieren ist.
Jedes Optimierungsproblem muß zunächst auf die Standardform gebracht werden, um die optimalen
Lösungen zu bestimmen. Die Menge jener optimalen Lösungen ist konvex. x = ( x1 ,..., xn ) r ∈ M ist
j
genau dann Extrempunkt, wenn diejenigen Spaltenvektoren a von A linear unabhängig sind, deren
n
j
Koeffizienten x in der Darstellung ∑x a
j =1
j
j
= b positiv sind.
Graphisch ist der zulässige Bereich M vom LP ein konvexes Polyeder. Konvexität liegt vor, wenn die
Verbindungslinie zweier beliebiger in der Menge liegenden Punkten ebenfalls in der Menge enthalten
ist. Die Extrempunkte von M sind die Ecken des zulässigen Bereichs.
Die meisten Probleme liegen nicht in der Standardform vor. Dann ist wie folgt vorzugehen:
3/3
© A. Jacob
Ver. 1.0 24.07.01
Max 2 x1 + 5 x2 Min − 2 x1 − 5 x2
u.d .N . 4 x1 + x2 ≤ 24 ' '
u.d .N . 4 x1 + x2 + x3 = 10
x1 + x2 ≤ 9 ' '
Beispiel: x1 + x2 + x4 = 4
− x1 + 2 x2 ≤ 5 ' '
− x1 + 2 x2 + x5 = 4
x1 ≥ 3
'
x2 ≥ 2 x1 ,..., x5 ≥ 0
(vgl. Tutorium Aufgabe 9.b)
Jede Ecke x besitzt eine dazugehörige Basis, wobei diese bei einer entarteten Ecke nicht eindeutig
T
ist. Dabei gilt: x := ( x1 ,..., x m ,0,...,0) ist Basislösung mit x1 ,..., xm Basisvariablen (BV)
0,...,0 Nichtbasisvariablen (NBV)
x Ecke von M ⇒ x gehört zum zulässigen Bereich
Im Simplex: Wie später zu sehen sein wird, macht sich die entartete Ecke im Simplex dadurch
kenntlich, dass ein xk aus Feld 5 Null ist und die Zeile weniger als m positive Komponenten hat. Im
dualen Simplex müssen es mehr als m positive Komponenten sein.
Das Simplexverfahren
Das Prinzip: Durch das Simplexverfahren erhält man eine endliche Folge von Ecken des zulässigen
Bereichs M. Von einer Ecke ausgehende erhält man die benachbarte Ecke durch einen Austausch-
schritt. Dazu wird eine bisherige NBV zu einer BV und eine BV zu einer NBV. Ausgegangen wird
immer vom Standardoptimierungsproblem.
Anschaulich: Einer in der Matrix A befindlichen Spaltenvektoren, der noch nicht zur Basis gehört, wird
gegen einen aus der Basis ausgetauscht. Man gelangt somit zur nächsten Ecke.
Das Ziel: Alle NBV müssen in der Zielfunktion (ZF) positiv sein, so daß eine Vergrößerung einer NBV
auf jeden Fall einen größeren ZF-Wert ergeben würde, der zu minimieren ist.
4/4
© A. Jacob
Ver. 1.0 24.07.01
4 1 1 0 0 10
1. Standardform: A = 1 1 0 1 0 b = 4 cT = (−2,−5,0,0,0)
−1 2 0 0 1 4
T ' '
Die erste Ecke ergibt sich somit zu x = (0,0,10,4,4) mit N = (1 ,2 ), B = (3,4,5)
2. Nun muß man die aktuelle Basis als Funktion der NBV darstellen:
' '
ξ = −2 x1 − 5 x2 − 16 ( ZF )
' '
x3 = −4 x − x + 10
1 2
x4 = − x1' − x2' + 4
x5 = x1' − 2 x2' + 4
dabei gilt: 1. Die ZF ist nur Funktion der NBV
2. Jede NB enthält genau eine BV mit Koeffizient 1, die in keiner anderen NB auftritt.
3. Die NBV müssen nun in die Basis aufgenommen und die BV aus der Basis entfernt werden. Es
wird immer diejenige NBV hinzu genommen, welche die ZF am stärksten minimiert (hier x2' , da
-5 < -2 in der ZF).
4. Jetzt stellt sich die Frage, wie weit x2' erhöht werden darf, ohne den zulässigen Bereich zu
'
verlassen ( x1 = 0 und x3 ,..., x5 ≥ 0 ):
x3 = −4 x1' − x2' + 10 ≥ 0 x2' ≤ 10
x4 = − x1' − x2' + 4 ≥ 0 x2' ≤ 4
x5 = x1' − 2 x2' + 4 ≥ 0 x2' ≤ 2 ⇐
Kleinste-Index-Regel
Damit ein Kreisen im Simplex bei einer entarteten Ecke verhindert wird, wählt man als
Pivotspaltenindex l‘ und als Pivotzeilenindex k‘ jeweils den kleinstmöglichen Index:
5/5
© A. Jacob
Ver. 1.0 24.07.01
Das Simplextableau
Jede Ecke im Simplexverfahren kann in folgendem Simplextableau dargestellt werden:
1. Gilt:ζ l > 0 ∀l ∈ N die aktuelle Ecke x ist die optimale Lösung des Problems. Sonst: Wähle
das kleinste ζ l aus (bei mehreren: kleinster Index). Jene Spalte wird zur Pivotspalte l‘. Ist x eine
entartete Ecke, d.h. mindestens ein xk in 4. ist gleich 0, bestimmt l‘ gemäß der kleinsten
Indexregel.
2. Gilt: γ kl ' ≤ 0 , d.h. hat die Pivotspalte keine positiven Elemente keine optimale Lösung! Sonst:
Berechne Feld 7. für alle γ kl ' > 0 !
3. Wähle aus Feld 7. den kleinsten Wert aus. Die zugehörige Zeile heißt Pivotzeile k‘.
4. Vertausche in den Feldern 1. und 2. die Indizes k‘ und l‘.
5. Verfahre mit den übrigen Feldern nach folgenden Regeln:
I. Pivotelement: a 1/a
II. Pivotzeile ohne Pivotelement: b b/a
III. Pivotspalte ohne Pivotelement: c -c/a =: c (Wird oftmals in einer Hilfsspalte rechts neben
dem Tableau ausgeschrieben)
IV. Übrige Elemente: d d – bc/a = d+b c
Anschaulich: altes Element + (Altes Zeilenelement ⋅ neues Spaltenelement)
Zum optimalen Ergebnis kommt man, wenn alle Elemente in 5. größer als Null sind.
Dualität
Zu jedem linearen Optimierungsproblem (P), auch primäres Problem genannt, gibt es ein duales
lineares Problem (P). Würde man das duale Problem wiederum dualisieren, erhielte man wieder das
Ausgangsproblem (P). Diese Form des Optimierungsproblems wird bei Strategien in der Spieltheorie,
Flüsse in Netzwerken, Kostenplanung im Rahmen der Netzwerktechnik und weiteren Anwendungen
benötigt. Die Aufstellung des dualen Problems folgt folgenden Regeln, welche für beide Seiten gültig
sind:
6/6
© A. Jacob
Ver. 1.0 24.07.01
Minimumproblem Maximumproblem
Dualitätstheorem: Haben beide Probleme (L) und ( L ) zulässige Lösungen, so besitzen beide
Probleme optimale Lösungen mit identischen ZF-Werten! Dies kann bei der Lösung eines Problems
ausgenutzt werden, da es reicht, das Einfachere per Simplex zu lösen.
Min F ( x) := cT x Max G (u ) := bT u
Beispiel: L u.d .N . Ax = b ⇒ L u.d .N . AT u ≤ c
x≥0 u ∈ Rm
Bei einer optimalen Lösung beider Probleme müssen die folgenden Optimalitätsbedingungen
zutreffen:
m
x*j ∑ aij ui* − c j = 0 j = (1,..., q)
i =1
q
u *j ∑ aij xi* − b j = 0 j = (1,..., m)
i =1
Satz vom komplementären Schlupf: Hat dabei eine NB von primalen Problem im Optimum Schlupf
(< oder >), dann hat die entsprechende NB vom dualen Problem keinen Schlupf ( = )!
Anwendung: Meistens ist man aus Bequemlichkeit geneigt, eine Lösung des dualen Problems
anzugeben, indem man das primale Problem mit der dualen Simplexmethode löst und sich danach
den Satz den komplementären Schlupfes zunutze macht, um auch die duale Lösung zu erhalten.
Beispiel: Es soll eine Entscheidung darüber gefällt werden, ob die vorhandenen Rohstoffe verkauft
werden sollen oder ob es rentabler ist, damit zu produzieren. Es seien:
xj := Anzahl der produzierten ME des Produktes Pj
cj := Durch Fertigung einer ME von Pj erzielbarer Gewinn
aij := Benötigte ME des Rohstoffs i zur Herstellung einer ME von Pj
yi := Verkaufspreis einer ME des Rohstoffs
m m
x*j ∑ aij yi* − c j = 0 ⇒ ∑a ij yi* > c j (Verkauf der Rohstoffe besser als Produktion)
i=1 i =1
In diesem Fall muß, damit die erste Gleichung erfüllt wird, xj = 0 sein, also keine produzierte ME.
Das duale Problem kann es einem erleichtern, einen optimalen ZF-Wert zu finden, da bei bekannten
zulässigen Lösungen für x und u das ursprünglich Problem eingeschlossen werden kann:
G(u) ≤ F* ≤ F(x)
7/7
© A. Jacob
Ver. 1.0 24.07.01
Opportunitätskosten, Knappheitskosten oder Schattenpreise vi* ist derjenige Betrag, den man
mehr einnimmt, wenn man die verfügbare Menge eines Produktionsfaktors Ri um eine Einheit von bi
auf bi+1 erhöht. Ist vi*>0, so ist der Faktor knapp (mehr von dem Faktor bringt mehr Gewinn).
Knappheit erkennt man daran, dass die in die entsprechende NB eingesetzte optimale Lösung nicht
zur vollen Ausreizung der NB führt.
Bei der Optimierung im Simplex werden Fall a. und Fall b. folgendermaßen behandelt:
a) Falls ζl‘ <0, wenn xl‘ = αl‘ Wert der NBV anwachsen lassen, um den ZF-Wert zu verkleinern. Im
Simplextableau wird die entsprechende Spalte mit – markiert.
b) Falls ζl‘ >0, wenn xl‘ = βl‘ Wert der NBV verringern, um den ZF-Wert zu verkleinern. Im
Simplextableau wird die entsprechende Spalte mit + markiert.
Ziel: Im Simplex müssen alle mit + markierten Spalten einen negativen, alle mit – markierten Spalten
einen positiven ZF-Wert haben optimale Lösung.
Vorgehen:
1. Zunächst sollte man sich der Grenzen der Variablen bewußt werden, indem man obere und
untere Grenze beispielsweise in eine Tabelle einträgt.
2. Wähle für die Pivotspalte den kleinsten Index, falls nicht schon Fall a) oder b) durch ein
angebrachtes + oder – erfüllt ist.
3. Nun muß man die „Luft“ ermitteln, die die entsprechende Variable zu ihrer unteren bzw. oberen
Schranke hat. Dieser Spielraum wird hier durch δ1 (untere Schranke) und δ2 (obere Schranke)
dargestellt:
8/8
© A. Jacob
Ver. 1.0 24.07.01
Gilt δ‘= xl‘ - αl‘, so ist keine Austauschschritt nötig. Markiere die Spalte mit – und erhöhe die Werte
xk in Feld 4 um δ‘γkl‘ und den Wert in Feld 6 um δ‘ζl‘ und gehe wieder zu Schritt 1.
Gilt δ‘= βl‘ - xl‘, so ist keine Austauschschritt nötig. Markiere die Spalte mit + und verringere die
Werte xk in Feld 4 um δ‘γkl‘ und den Wert in Feld 6 um δ‘ζl‘ und gehe wieder zu Schritt 1.
Ansonsten wähle für k‘ den kleinsten Index k, für den das Minimum δ‘ angenommen wird. Diese
Zeile ist Pivotzeile.
Gilt hierbei δ‘= δ1, so markiere k‘ mit – und ersetze in Feld 4 xk‘ durch xk‘ - αk‘.
Gilt hierbei δ‘= δ2, so markiere k‘ mit + und ersetze in Feld 4 xk‘ durch xk‘ - βk‘.
6. Vertausche in den Feldern 1 und 2 die Indizes k‘ und l‘.
7. Forme die Felder 3 bis 6 nach den Simplextransformationsregeln um. Addiere zum Wert der
neuen BV nach der Transformation den Wert der entsprechenden NBV vor der Transformation.
Ziel: Alle xk in Feld 4 müssen größer als Null sein. Sind jedoch zudem alle Elemente der Pivotzeile
positiv, so existiert keine optimale Lösung.
4. Die Dreiphasemethode
Warum?: Dieses Verfahren wird benötigt, um ganz allgemein gehaltene Lineare Optimierungspro-
bleme zu lösen, nicht nur solche vom Typ (L), z.B.:
Min c T x Min c T x
1 1 1 1
u.d .N . A x ≤ b u.d .N . A x + y = b
⇒
A2 x = b 2 A2 x + w = b 2
x≥0 x, y ≥ 0, w = 0
9/9
© A. Jacob
Ver. 1.0 24.07.01
Dabei muß man in sog. echt Schlupfvariablen, wie x und y, und sog. Hilfsvariablen, hier w,
unterscheiden. Abgesehen von w=0 entspricht das Optimierungsproblem der Standardform (L). Dies
wird in folgendem Simplextableau der Dreiphasenmethode ersichtlich:
Im oberen Abschnitt stehen die echten NB’s, im unteren die NB’s mit Hilfsvariablen.
Lösung: Die Lösung des Problems wird in folgenden drei Phasen abgebildet:
1. In jedem Austauschschritt dieser Phase wird als Pivotzeile eine Zeile gewählt, die einer der
Hilfsvariablen wi einspricht. Bei der Wahl der Pivotspalte ist lediglich zu beachten, daß das
Pivotelement nicht gleich Null ist. Nach der Transformation des Tableaus kann die entsprechende
Spalte gestrichen werden. Die Phase ist beendet, sobald alle Hilfsvariablen NBV’s geworden sind.
2. Ziel dieser Phase ist es, eine zulässige Basislösung zu finden, d.h. zu erreichen, daß alle Inhalte
von Feld 4 nichtnegativ sind. Vorgehen: Wähle ein xk < 0 aus, wähle aus dieser Spalte κ unter den
negativen γkl das Kleinste und nimm jene Spalte als Pivotspalte. Sollten alle γkl > 0 sein, so hat das
Problem keine zulässige Lösung. Sind alle γkl < 0, setze δ = wahr, sonst δ = falsch.
+
δ = falsch: Berechne xi/γil‘ für alle j ∈ B mit γil‘ > 0 und wähle die Kleinste. Die Zeile k‘ dieser Zahl
ist die Pivotzeile. Führe den Austauschschritt durch.
δ = wahr: Beginne Phase 2 von Neuem.
3. Benutze die primale Simplexmethode zur endgültigen Lösung.
10 / 10
© A. Jacob
Ver. 1.0 24.07.01
Zwei-Personen-Nullsummenspiele
In der Spieltheorie werden Entscheidungssituationen untersucht, an denen mehrere Akteure, die
Spieler genannt werden, beteiligt sind. Hier werden im speziellen nur Spielsituationen betrachtet, an
denen zwei Spieler beteiligt sind, deren optimale Entscheidungen auf der Lösung von zwei dualen
linearen Optimierungsproblemen beruhen. Dies alles unter der Voraussetzung, daß der Gewinn des
einen Spielers den Verlust des anderen Spielers ausmacht.
Zunächst ein paar Begriffsdefinitionen:
- Strategie: Vollständige Handlungsanweisung, die für alle auftretenden nicht beeinflußbaren Fälle
definiert ist; Spieler 1 verfolgt Strategie S und Spieler 2 Strategie T
- Reine Strategie: Die Spieler bleiben während der gesamten Partie bei einer Strategie
- Gemischte Strategie: Die Spieler wechseln während einer Partie ihre Strategie
- Optimale Gegenstrategie: Strategie des einen Spielers dominiert die Strategie des anderen.
Vorsicht: Auszahlungsmatrix immer aus Vorteilssicht des einen Spielers, daher ist beim zweiten
Spieler der Vorteil in den kleineren Werten!
- Partie: Einmalige Ausführung des betrachteten Spiels
- Gewinn (Auszahlung): Gewinn oder Verlust abhängig von der gewählten Strategie s∈S bzw. t∈T
- Nullsummenspiele: Summe aller Gewinne ist gleich Null, z.B. Papier-Stein-Schere-Knobeln
- Sattelpunktspiele: Es gibt ein optimales Strategiepaar, welches eine optimale Lösung des Spiels
ist; für diese Spielvariante gilt: min max f ( x, y ) = max min f ( x, y ) gleichbedeutend mit
y x x y
Min(Max(Spalten))=Max(Min(Zeilen)). Demnach ist es bei dieser Spielvariante sinnvoll, eine reine
Strategie zu verfolgen, nämlich die Optimale.
- Auszahlungsmatrix: A bestehend aus aij := a(si,tj) (i=1,...,m; j=1,...,n) mit aij = Auszahlung an
Spieler 1 bei Strategie si, wenn Spieler 2 Strategie tj wählt.
- Faires Spiel: Ein Sattelpunktspiel ist fair, wenn obige Bedingung für beide Fälle 0 ist. Ein Spiel mit
gemischten Strategien ist fair, wenn w=0 ist.
gemischte Strategie der jeweiligen Spieler genannt. X(S) und Y(T) sind Strategiemengen, die alle
möglichen Strategien enthalten.
- Binärer Baum: Gerichteter Baum, bei dem jeder Knoten höchstens zwei Söhne hat.
- Bipariter Graph (Digraph): Die Knotenmenge ist so in zwei Teile teilbar, daß nur Verbindungen
zwischen den beiden Teilen, nicht jedoch innerhalb eines Teils realisiert ist. Vollständig ist er,
wenn sämtliche Knoten der anderen Seite von sämtlichen dieser Seite erreicht werden.
- Gerüst: Zusammenhängender Teilgraph mit allen Knoten und minimaler Kantenanzahl, d.h.
überflüssige Kanten werden weggelassen.
- Bewerteter Graph: Jeder Kante des Graphen wird ein Element c zugewiesen, welches diesen
Weg bewertet.
- Planarer Graph: Ein Graph, der sich in der zweidimensionalen Ebene zeichnen läßt, heißt planar.
Symbolik:
Pfeil über Buchstaben ist ein Hinweis auf gerichtete Graphen
[i,j] := spezifiziert den Anfangsknoten i und den Endknoten j im Graphen
<i,j> := spezifiziert den Anfangsknoten i und den Endknoten j im Digraphen
[V,E] ist das Symbol für einen Graphen mit der Knotenmenge V und der Kantenmenge E
<V,E> ist das Symbol für einen Digraphen mit der Knotenmenge V und der Kantenmenge E
N(i) := Menge der Nachbarn von i im Graphen
P(i) := Menge der Vorgänger von i im Digraphen
S(i) := Menge der Nachfolger von i im Digraphen
δ(i) := Grad von i; gibt die Anzahl der Nachbarn im Graphen an
+
δ (i) := positiver Grad (Ausgangsgrad) von i; gibt die Anzahl der Nachfolger im Digraphen an
-
δ (i) := negativer Grad (Eingangsgrad) von i; gibt die Anzahl der Vorgänger im Digraphen an
R(i) := Menge der vom Knoten i erreichbaren Knoten im Digraphen
2(i) := Menge derjenigen Knoten, die i im Digraphen erreichen können
∧(i) := Menge der vom Knoten i erreichbaren Knoten ohne i im Digraphen
Minimalgerüste
Die beiden folgenden Verfahren stellen einen Greedy-Algorthmus dar. Durch eine lokal optimale
Entscheidung wird sukzessive Teil um Teil die Lösung festgelegt.
Verfahren von Prim:
1. Wähle Kante (mit beiden Endknoten) mit kleinstem Gewicht (bei mehreren beliebig)
2. Mit jedem weiteren Schritt Kante mit kleinstmöglichem Gewicht hinzufügen, so daß der
entstehende Teilgraph ein Baum ist (d.h. kreisfrei und zusammenhängend).
13 / 13
© A. Jacob
Ver. 1.0 24.07.01
Bellmansches Optimalitätsprinzip: Teilwege kürzester Wege sind selbst wieder kürzeste Wege. Dies
kann man sich bei der Suche eines kostenminimalen Weges zunutze machen.
Bellmansche Gleichung: d j = min ( d i + cij ) für j ∈ ∧(r)
i∈P ( j )
Notation:
px := Vorgänger von Knoten x
dx := Distanz zum Knoten x
cij := Bewertung der Strecke i – j
Q := Speicher des Algorithmus (z.B. Heap, Schlange)
14 / 14
© A. Jacob
Ver. 1.0 24.07.01
Die Tripeloperation besagt, daß das Matrixelement dij mit der Summe der „dij entsprechenden“
Elemente der Spalte ν und Zeile ν, diν+dνj, verglichen und der kleinste der beiden Werte ausgewählt
wird. Falls ein Wert in der Diagonale von links oben nach rechts unten kleiner als Null wird, so breche
das Verfahren ab, da ein Zyklus negativer Länge existiert.
Definition: Ein Vorgang i ist genau dann kritisch, wenn gilt: GPi = min GPk mit k = 0,..., n+1
15 / 15
© A. Jacob
Ver. 1.0 24.07.01
Das Gantt-Diagramm
Hier werden alle Vorgänge der Zeitplanung als Balken über der Zeitachse dargestellt, wobei der
Balken von FAZi bis FEZi reicht. Puffer GPi werden gestrichelt gezeichnet, kritische Vorgänge werden
stark ausgezeichnet.
Flüsse in Netzwerken
Solche Flüsse treten beispielsweise auf, wenn der kostengünstigste Durchfluß von Öl, Gas, Wasser
o.ä. durch ein Leitungsnetz gesucht sind. Generell gilt bei solchen Flüssen das Kirchhoffsche Gesetz:
Die Summe aller an einem Knoten anliegenden Flüsse ist Null.
Notation:
V Knotenmenge (wie bei Graphen)
E Kantenmenge (wie bei Graphen)
λij Minimalkapazität von i nach j
κij Maximalkapazität von i nach j
N = <V,E;λ,κ> Netzwerk mit Kapazitäten
ω Flußstärke
ϕ ij zulässiger Fluß von i nach j, wenn gilt: λij ≤ ϕ ij ≤ κij
S Semiweg in N, d.h. Teilweg im Netz N, der nicht unbedingt die gleiche Orientierung aller Pfeile
haben muß. Er beginnt bei Knoten r (Flußquelle) und endet bei Knoten k. Hat ein Pfeil die
gleiche Orientierung wie S, d.h. er weißt von r nach s, dann wird er Vorwärtspfeil genannt,
andernfalls Rückwärtspfeil.
ω, i = r
Flußbedingung: ∑ ϕ ij − ∑ ϕ ki = − ω , i = s
j∈S ( i ) k∈P ( i ) 0, i ∈ V \ {r , s}
κ ij − ϕ ij falls < i, j > Vorwärtspfeil
∈ij :=
ϕ ij − λij falls < i, j > Rückwärtspfeil
Falls ∈ij>0 für alle Pfeile <i,j> von S, dann heißt S flußvergrößernder (r,k)-Semiweg für den Fluß ϕ.
1. Markiere alle Knoten von der Quelle ausgehend nach folgender Regel (Quelle markiere mit (+,∞)):
2. Wenn die Senke markiert worden ist, führe eine Flußvergrößerung durch. Starte bei der Senke s
und arbeite weiter in Richtung Quelle r. Erhöhe den Fluß genau um die noch ausstehende
Maximalkapazität der Senke. Dabei ändern sich nur Werte auf dem gefundenen Semiweg <r,s>.
3. Wenn die Senke nicht mehr zu erhöhen ist, hat man den maximalen Fluß gefunden.
Definition Inkrementnetzwerk: Enthält für eine Verbindung zwischen zwei Knoten einen hingerichteten
Pfeil, der den noch möglichen Fluß über diesen Weg ausweist und einen rückwärts gerichteten Pfeil,
der die Differenz zum minimal möglichen Fluß darstellt.
16 / 16
© A. Jacob
Ver. 1.0 24.07.01
Voraussetzung: Das Netzwerk N ist antisymmetrisch, d.h. es enthält keine Paare entgegengesetzt
gerichteter Pfeile.
Vorgehen:
1. Suche im Netzwerk einen Semiweg von der Quelle zur Senke mit freien Kapazitäten und den
dazugehörigen Engpaß
2. Reize den Engpaß aus und erhöhe den Durchsatz um die Kapazität des Engpasses
3. Suche neuen Semiweg und suche wiederum den Engpaß; Erhöhe Kapazität.
4. Breche ab, wenn kein Semiweg auffindbar.
Im Gegensatz zu maximalen Flüssen muß bei dieser Variante auch der Kostenaspekt berücksichtigt
werden. Cij sind demnach die Kosten für den Transport einer ME durch den Pfeil <i,j>. ω+≥0 ist in
diesem Fall eine Konstante, sonst wäre die beste Lösung immer die 0.
Anfangsbedingungen:
1. N ist antisymmetrisch
2. Alle Kosten nichtnegativ
3. Alle Minimalkapazitäten sind gleich 0
Vorgehen:
1. Suche den kostenminimalen (kürzesten) Weg von der Quelle zur Senke anhand des LC A-
Algorithmus.
2. Führe eine Flußvergrößerung anhand der minimalen Maximalkapazität aller Flüsse des
gefundenen Weges durch.
3. Verfahre nach 1, 2 so lange, bis gewünschte Kapazität übertragen wird.
Inkrementnetzwerk
Um zu überprüfen, ob man einen kostenminimalen Fluß erhalten hat, sollte man ein
Inkrementnetzwerk anfertigen, in dem der „Hinpfeil“ die Kosten angibt, wenn noch Kapazität frei ist
(sonst wird er nicht eingezeichnet), und der „Rückpfeil“ die negativen Kosten angibt, wenn schon
etwas über diesen Weg läuft (sonst wird er nicht eingezeichnet).
Sollte es in diesem Netzwerk einen Zyklus negativer Länge geben, so ist der aktuelle Weg noch nicht
optimal. Wenn zudem kein Weg mehr von der Quelle zur Senke existiert, so ist der gefundene Weg
maximal.
Das Transportproblem
Als klassisches Transportproblem bezeichnet man jenes, welches keine Umladepunkte zu beachten
hat und dessen transportierte Mengen nicht nach oben beschränkt sind. Es sieht folgendermaßen
aus:
Setzt man im Transportproblem die produzierte Menge gleich der verbrauchten Menge, so erhält man
das Zuordnungsproblem.
Solch ein Transportproblem kann anhand des Algorithmus von Busaker-Gowen gelöst werden.
Um eine zulässige Anfangslösung des Transportproblems zu finden, bedient man sich des X-
Schemas, d.h. in der Waagerechten des Tableaus werden die produzierten Einheiten ai angetragen
17 / 17
© A. Jacob
Ver. 1.0 24.07.01
und an der Senkrechten die verbrauchten Einheiten bj. Sorge mit fiktiven Variablen (=0) dafür, daß
gleiche Anzahl von Zeilen und Spalten herrscht. In das Tableau trage nun die Kosten für den
Transport ein. Sollte die Summe der benötigten Güter nicht gleich der der produzierten Güter sein,
füge einen fiktiven Verbraucher oder Produzenten mit Kosten 0 und der entsprechenden Differenz an
Produkten ein.
Zwecks Ermittlung einer zulässigen Anfangslösung wähle durch später erwähnte Verfahren ein
Anfangspaar (i,j) aus dem Tableau aus. Jetzt unterscheide in folgende drei Fälle:
1. ai < bj: xij = ai, d.h. die Gesamtproduktion wird zu einem Verbraucher transportiert. Trage an der
Position (i,j) im X-Schema den Wert xij = ai ein, eliminiere die i-te Zeile für die weiteren
Verfahrensschritte und ersetze bj durch den Restbedarf bj - ai.
2. ai > bj: xij = bj, d.h. der Gesamtbedarf von einem Verbraucher wird von einem Lieferanten gedeckt.
Trage an der Position (i,j) im X-Schema den Wert xij = bj ein, eliminiere die j-te Zeile für die
weiteren Verfahrensschritte und ersetze ai durch die Restproduktion ai – bj.
3. ai = bj: Suche eine Vorgehensweise nach Fall 2. oder 3. aus.
Jetzt nur noch die besagten Regeln zur Ermittlung des Index für einen Verfahrensschritt:
- Nordwestecken-Regel: Wähle den linken oberen Index, d.h. fange in der linken oberen Ecke an
und nutze nach Streichen wieder den linken oberen Index.
- Zeilenminimum-Regel: Wähle die Spalte mit den geringsten Kosten und die Zeile mit dem
kleinsten Index.
- Spaltenminimum-Regel: Wähle die Zeile mit den geringsten Kosten und die Spalte mit dem
kleinsten Index.
- Matrixminimum-Regel: Wähle die Zeile und die Spalte mit den geringsten Kosten.
Nachdem nun eine zulässige Anfangslösung mit einer der Regeln gefunden wurde, kann man anhand
folgender Methode das Problem lösen:
18 / 18
© A. Jacob
Ver. 1.0 24.07.01
Das Prinzip: Diese Methode macht sich das Prinzip der impliziten Enumeration zunutze, d.h. man
versucht, sukzessive Teilmengen vom zulässigen Bereich M zu finden, in denen keine optimale
Lösung des Problems liegt. Dies geschieht mit Hilfe eines sog. Suchbaumes, d.h. eines
Wurzelbaumes, dessen Knoten gewissen Teilmengen von M entsprechen.
Vom Namen der Methode bezieht sich „Branch“ auf das Verzweigen des Suchbaumes, wodurch man
neue Teilmengen von M generiert. „Bound“ weist auf die Verwendung unterer und oberer Schranken
für den ZF-Wert hin, mit deren Hilfe man „uninteressante“ Teilmengen von M eliminieren kann.
Zudem werden noch Schrankenfunktionen b eingeführt, welche die Menge aller Knoten darstellt, die
den folgenden drei Bedingungen zu genüge kommt:
I. b(s) ist eine untere Schranke für den optimalen ZF-Wert von P(s)
II. Sind alle Variablen für den Knoten s fixiert, so gibt b(s) den Zielfunktionswert für den
entsprechenden Verktor x und damit die kleinste untere Schranke an.
III. Bei Einschränkung des zulässigen Bereichs „verbessert“ sich die untere Schranke; d.h. die
Schrankenfunktion b(.) verhält sich wie die Funktion F*(.).
B sei der Zielfunktionswert der bisher besten gefundenen Lösung. Anfangs gilt B:=∞, falls man keine
andere Obergrenze ausmachen kann.
Anschaulich:
19 / 19
© A. Jacob
Ver. 1.0 24.07.01
Versuche sukzessive Teilmengen von M durch binäre Unterscheidung zu finden, in denen keine
optimale Lösung von P liegt und folglich ausgesondert werden können. Zum Aussondern oder
Auffinden der Lösungen dienen die Regeln I, II und III. Das Vorgehen ist wiefolgt:
Das Verfahren:
T
Zu Beginn des Verfahrens besteht der Suchbaum nur aus der Wurzel, die dem Vektor s=(-1,...,-1)
entspricht (alle Variablen sind frei), und ein aktiver Knoten ist (d.h. noch nicht untersucht). In jedem
Schritt wir ein aktiver Knoten untersucht. Folgende Fälle können dabei eintreten:
1. b(s) ≥ B: Knoten aus dem Suchbaum entfernen, da er nur über zulässige, nicht jedoch über
optimale Lösungen verfügt. Hat der Vorgängerknoten nur diesen einen Nachfolger, so kann
der Vorgängerknoten auch eliminiert werden.
2. b(s) < B: Folgende 2 Fälle werden nochmals unterschieden:
2a. Alle Variablen des Knotens sind fixiert (sj={0,1}), also ist x=s eindeutig festgelegt. Setze
B:=F(x) als neue beste optimale Lösung. Ist zudem der Wert des Vorgängers ebenso groß wie
der von s, so können alle von s verschiedenen Knoten eliminiert werden.
2b. Es ist sj=-1 für mindesten ein j, d.h. mindestens eine Variable ist frei. Dann erzeugt man
Nachfolger, indem man eine oder mehrere freie Variablen fixiert.
In den Fällen 1 und 2a spricht man von einem ausgeloteten Problem, in 2b von einem verzweigten
Problem. Das Verfahren bricht ab, sobald keine Knoten mehr aktiv sind.
Erhält man am Ende eines Verfahrensschrittes mehr als ein Element als aktiven Knoten, so muß
entschieden werden, welcher aktive Knoten im nächsten Schritt betrachtet wird:
FIFO-Strategie (first in first out): Die Knoten werden als Schlange gespeichert, d.h. am Ende wird
angefügt und am Kopf entnommen.
LIFO-Strategie (last in first out): Die Knoten werden als Keller gespeichert, d.h. was zuletzt reinkommt,
wird als erstes wieder herausgenommen.
LLB-Strategie (least lower bound): Es wird derjenige Knoten mit dem kleinsten Wert b(s) gewählt.
Effizienz: Die Effizienz dieses Verfahrens wird stark von der frühzeitigen Eliminierung von Knoten ab,
die durch die Auslotungsregeln abgeschnitten werden können. Damit dies passiert, benötigt man
große untere bzw. kleine obere Schranken. Eine gute Anfangsschranke ist also von sehr großem
Nutzen. Diese kann mit einem heuristischen Verfahren näherungsweise bestimmt werden.
Branch-and-Cut-Verfahren
Idee: Finde einen Bereich Π, der den zulässigen Bereich des relaxierten Problems so einschränkt,
dass zum einen der zulässige Bereich M des ganzzahligen Problems vollständig in Π enthalten ist und
zum anderen sämtliche (ausreichend viele) Ecken von Π ganzzahlige Lösungen repräsentieren. Dann
kann das ganzzahlige Problem durch die Lösung des relaxierten Problems auf Π gelöst werden.
Eigenschaften:
T
• Eine Ungleichung α x≤β heißt gültig für P, wenn sie für alle x ∈ P erfüllt ist.
• Eine Ungleichung heißt stützend, wenn sie mit P mindestens einen Punkt gemeinsam hat,
also nicht überflüssig ist.
• S heißt echte Seite von P, wenn S≠0 und S≠P ist. Eine Facette ist die maximale Seitenfläche
T
bzgl. Mengeninklusion. Seite ist sie durch S={x∈P| α x=β}. Hat P die Dim d≤q, so hat jede
Facette die Dim d-1.
• conv(X) bezeichnet die konvexe Hülle einer Menge X. Allgemein gilt folgende Beziehung für
den Bereich M eines ganzzahligen Problems: M⊆conv(M)⊆P. Wenn M endlich ist, so stellt
conv(M) ein konvexes Polytop dar, dessen Ecken eine Teilmenge von M bilden. Alle Werte,
die die Zielfunktion auf conv(M) annehmen kann, sind ganzzahlig.
Mit dieser Hilfestellung lässt sich folgendes Problem G vereinfacht durch G’ darstellen:
20 / 20
© A. Jacob
Ver. 1.0 24.07.01
Min. c T x
Min. cT x
u.d .N . Ax ≤ b ⇒
x ∈ Z +q u.d .N . x ∈ conv( M )
Verfahren: Konstruktion von Polyedern Qi mit P⊃Qi⊃Π; dabei scharfe Schnitte (d.h. es werden nicht
nur Ecken wie bei Gomory weggeschnitten, sondern Seiten oder Facetten) durchführen; falls optimale
Ecke im Qi ganzzahlig: STOP; falls keine Qi mehr erzeugt werden können: Branch&Bound.
21 / 21
© A. Jacob
Ver. 1.0 24.07.01
Nichtlineare Optimierung
In diesem Kapitel handelt es sich um Optimierungsprobleme, deren Zielfunktion und Nebenbeding-
ungen nicht mehr linearen Funktionen entsprechen. Dies kann in der Realität z.B. durch Material-
bilanzgleichungen bei technischen Prozessen auftreten, wenn die Endprodukten nichtlinear von den
Ausgangsproduktmengen abhängen. Eine besondere Schwierigkeit besteht darin, dass bei der
Optimierung in globale bzw. absolute Minima (Maxima) unterschieden werden muß.
Es lässt sich grundsätzlich in zwei verschiedene Arten der Optimierungsaufgaben unterscheiden:
n n
Restringierte auf einer echten Teilmenge des R und Unrestringierte auf dem gesamten R .
Definitionen:
• globaler Minimalpunkt x*: F(x*)≤F(x) für alle x∈M
• globales Minimum: F*:=minx∈M F(x)
• lokaler Minimalpunkt : F(x**)≤F(x) für alle x∈M ∩ U∈(x**) ;d.h. es existiert zumindest eine ∈-
Umgebung >0 um den Punkt x**, für die er ein Minimalpunkt darstellt.
• Lokales Minimum: F(x**)
• Zulässige Richtung: ein Vektor von x∈M heißt zulässige Richtung, wenn man sich δ-weit in
diese Richtung bewegen kann, ohne M zu verlassen. Ist x innerer Punkt von M, so ist natürlich
jede Richtung zulässig.
• Gradient von F g(x**) in einem Punkt x**: Partielle Ableitung von F nach allen xi in
einem Vektor. D.h. er zeigt in die Richtung des stärksten Anstieges von F.
Min. F ( x)
Das konvexe Optimierungsproblem sieht so aus: u.d .N . f i ( x ) ≤ 0 (i = 1,..., m)
F , f i konvex
Zunächst gilt es zu beweisen, dass das Optimierungsproblem überhaupt konvex ist. Dabei müssen die
ZF und die NBs auf Konvexität überprüft werden. Dies kann man mit folgenden Verfahren
nachweisen:
1. Positiv definiete Hessematrix: Alle Determinanten der Hessematrix sind positiv
2. Eigenwerte sind ≥0
3. Nordwest-Determinanten ≥0
4. linear konvex
Jetzt ist nur noch die zulässige Richtung aus Vorr. 2 zu überprüfen. Dann kann man sich längs eines
solchen Weges auf die Suche nach einer optimalen Lösung machen.
22 / 22
© A. Jacob
Ver. 1.0 24.07.01
Als Voraussetzung, um das Problem überhaupt lösen zu können, benötigen wir die Konvexität des
Optimierungsproblems sowie die Slaterbedingung.
Slaterbedingung: Es gebe ein x’, so dass für alle nichtlinearen fi die Bedingung fi(x’)<0 erfüllt ist. Somit
impliziert die Slaterbedingung, dass der zulässige Bereich innere Punkte besitzt.
Somit ergibt sich: Ist die Slaterbedingung erfüllt und sind die Funktionen F, f1,...,fm stetig
differenzierbar und konvex, so ist x genau dann optimale Lösung für das Optimierungsproblem, wenn
die folgenden Karush-Kuhn-Tucker-Bedingungen gelten:
Lx ( x, u ) =
δL
δx
( )
x, u ≥ 0
Lu ( x, u ) =
δL
δu
( )
x, u ≤ 0
T
x Lx ( x , u ) = 0
T
u Lu ( x, u ) = 0
x≥0
u≥0
Um die globale Minimalstelle x* einer zweimal stetig differenzierbaren, streng konvexen Funktion F zu
ermitteln, kann man sich mit dem Newton-Verfahren durch Iterationsschritte der optimalen Lösung
annähern. Es ergibt sich eine Iterationsvorschrift der folgenden Art:
F ' ( xυ )
xυ +1 := x υ −
F ' ' ( xυ )
23 / 23
© A. Jacob
Ver. 1.0 24.07.01
Setzt man statt sνTg(xν)<0 die Abstiegsrichtung auf sν := -gν, so spricht man vom klassischen
Gradientenverfahren.
Den Abstand zu einem anderen Punkt (evtl. ist ein optimaler Punkt gegeben) kann man mit Hilfe des
euklidischen Abstandes berechnen.
Die Zulässigkeit der Schrittweite kann man überprüfen, indem man die gewonnenen Werte in die ZF-
Funktion einsetzt und die Ergebnisse miteinander vergleicht. Das Ergebnis muß sich mit höherem ν
verkleinern.
Beispiel Transportproblem:
Folgende Faktoren spielen im weiteren in unser Problem mit hinein:
uj : Zu beginn der Periode j gelieferte Menge
rj : Nachfrage in Periode j
xj : Lagerbestand unmittelbar vor Belieferung
Da eine Minimierung der Lagerkosten angestrebt wird und Material im Lager kosten verursacht, muß
gelten: x1 = xn+1 = 0
Falls eine Bestellung eintritt, so fallen folgende Bestellkosten abhängig von der bestellten Menge an:
B(uj) := K + cuj (K = fixer Kostenanteil und c = Kosten pro Stück)
Somit sind die gesamten während dem Planungszeitraum anfallenden Kosten:
∑ [Kδ (u ]
n
Beispiel Rucksackproblem:
In obigem Problem waren die „Stufen“ eines dynamischen Optimierungsproblems in Zeitabschnitte
gegliedert, was nicht notwendigerweise der Fall ist. Wesentlich für die Optimierung ist jedoch nur die
Einteilbarkeit in einzelne Stufen, auch künstliche Dynamisierung genannt. Hierzu als Beispiel das
Rucksackproblem, in dem die künstliche Dynamisierung darin besteht, dass in jedem
Optimierungsschritt darüber entschieden werden muß, welcher Gegenstand als nächstes in den
Rucksack kommt.
24 / 24
© A. Jacob
Ver. 1.0 24.07.01
uj : Gegenstand
cj : Wert des Gegenstandes
aj : Gewicht des Gegenstandes
A: Nicht überschreitbares Gesamtgewicht des Rucksacks
xj : das für Ausrüstungsgegenstände noch verfügbare Restgewicht im Rucksack
- xj ist eine Zustandsvariable, die den Beginn des Systems zu Periode j beschreibt. Zu Beginn gilt x1
= xa, also gleich dem Anfangszustand.
- Pj sei das Problem, welches es zu lösen gilt.
- uj sind Entscheidungs- oder Steuervariablen. Eine Folge von Entscheidungen heißt Politik oder
Steuerung. Durch eine gefällt Entscheidung verändert sich der Zustand des Systems.
- Somit ist der Anfangszustand einer Periode beschrieben durch eine Funktion der
Vorgängerperiode; xj+1 = fj(xj,uj) ist die Funktion, die den Zustandsbereich beschreibt, d.h. unter
deren NB die Kosten zu minimieren sind.
- gj(xj,uj) ist die Kostenfunktion, die die entstandenen Kosten beschreibt und somit minimiert
werden muß (oder den Gewinn beschreibt und maximiert werden muß).
- Xj+1 beinhaltet als Zustandsbereich die möglichen Zustände von einer Periode j.
- Uj(xj) ist der Steuerbereich, in dem alle möglichen Entscheidungen uj der Periode j liegen
- vj*(xj) seien hier die minimalen Kosten, die bei Realisierung von xj entstehen. Für j=(1|1|n) wird vj*
auch Wertfunktion genannt.
- zj*(xj) ist die optimale Einsatzmenge, um zu den minimalen Kosten zu gelangen.
Bellmansches Optimalitätsprinzip
Dieses Prinzip beruht auf der Tatsache, dass bei gegebener optimaler Politik (u1*, ..., un*) eine
Entscheidung für die Perioden j,...,n unabhängig von der Entscheidung in den Perioden 1,...,,j-1 ist,
falls der Ausgangszustand des Problems fixiert ist.
Man sieht leicht, dass diese Verfahren Ähnlichkeit zur Suche nach optimalen Wegen in Netzwerken
hat.
Wichtig beim Aufstellen eines dynamischen oder dynamisierten Optimierungsproblems:
1. Suche zunächst nach Stufen, in welches das Problem unterteilt werden kann (z.B. in einem
Netzwerk alle Knoten auf einer Höhe).
2. Suche nach möglichen Steuermöglichkeiten, welche im Problem die Auswahlmöglichkeit
beinhalten (z.B. Netzwerk: Welcher Weg wird von einem Knoten ausgehend gewählt).
3. Suche nach einer Übergangsfunktion, welche die Übergänge von einer Stufe in eine andere
beschreibt (z.B. Netzwerk: f(x,u)=xj+1=uj, d.h. erreiche die nächste Stufe).
4. Suche nach einer Kostenfunktion, die die Kosten von einer Stufe zu einer anderen erfasst.
Erstelle Bellmansche Funktionalgleichung
Bellmansche Funktionalgleichung
{ [
v * j ( x j ) = min g j ( x j , u j ) + v * j +1 f j ( x j , u j )
u j ∈U j ( x j )
]}
Mit dieser Gleichung wird eine Beziehung zwischen zwei aufeinander folgenden Wertfunktionen vj*
und vj+1* hergestellt, die es erlaubt, bei bekanntem vj+1* die Funktion vj* und damit jeweils für eine
Vorperiode die Wertfunktion zu bestimmen, allerdings rückwärts. Wie aus obiger Gleichung ersichtlich,
sind die minimalen Kosten von der zu Periodenanfang verfügbaren Menge, der Entscheidung in dieser
Periode und der in der nachfolgenden Periode minimalen Kosten abhängig.
Das Problem muß nicht notwendiger Weise ein Minimierungsproblem sein, auch Maximierung z.B.
des Gewinns unter Einhaltung einer bestimmten Anlageform sind denkbar.
Bellmansche Funktionalgleichungsmethode
Mit dieser Methode gelangt man durch sukzessive Auswertung der Bellmanschen Funktionalgleichung
von j=n, n-1, ... zum Anfang des Problems, beginnend „am Ende“ mit vn+1*(xn+1) := 0. Somit gelangt
man zu v1*(x1*), also den minimalen Kosten des Optimierungsproblems P1(x1). Es ist auch ersichtlich,
dass wenn man in der ersten Periode nach dem Planungszeitraum von 0 Kosten ausgeht, da man hier
25 / 25
© A. Jacob
Ver. 1.0 24.07.01
nicht mehr vor hat, zu investieren, und sich dann sukzessive zu den Kosten der Vorperioden
durcharbeitet.
Beispiel:
1. Rückwärtsrechnung: Man weiß am Anfang des Optimierungsverfahrens, dass man einen
Geldbetrag so anlegen möchte, dass der gesamte Betrag möglichst gewinnbringend auf eine
Menge von unterschiedlichen Anlagealternativen verteilt werden soll. Somit ist vj+1*(xn+1) = 0 als
Ausgangsbasis gesichert, da in n+1 schon alles angelegt ist. Nun geht man rückwärts jede
Entscheidung über eine Anlageform j durch und ermittelt mit Hilfe der Bellmanschen Funktional-
gleichung den optimalen Gewinn vj in Abhängigkeit von der Ausgangssituation xj am Anfang der
Periode j. Jener wird dann durch die optimale Investitionsmenge zj*(xj) beschrieben, d.h. wenn vj*
= 4 für xj = 2 das Maximum ist, so wird zj*(xj) = 2 sein, falls zwei Einheiten zur Verfügung stehen.
Dies macht man, bis man bei j = 1 angekommen ist. Für diese letzte Alternative ist natürlich nur x1
= n zu überprüfen, da man anfangs noch den vollen Investitionsbetrag zur Verfügung hat.
1. Vorwärtsrechnung: Setze x1* = xa, also gleich dem anfangs verfügbaren Kapital. Gehe nun jede
Entscheidung über die Anlagealternative durch und ordne die entsprechenden Beträge aus der
Rückwärtsrechnung den einzelnen Entscheidungen zu. Ziehe dabei von x1 die optimal verwendete
Menge ab, bis die 0 erreicht ist.
Zusammenfassend:
- Es wird zunächst eine Rückwärtsrechnung durchgeführt, d.h. man beginnt bei n+1 und geht davon
aus, dass in n+1 nichts optimiert werden muß, da dies hinter unserem Zeithorizont liegt (vj+1*(xn+1)
= 0).
- Nun kann man mit der Bellmanschen Funktionalgleichung den möglichen Gewinn der letzten
Periode (vn) in Abhängigkeit von der eingesetzten Menge (xn) ausrechnen. Dies macht man für
alle Alternativen.
- Nun geht man auf j = n-1 und rechnet wiederum alle möglichen Gewinne für alle eingesetzten
Faktoren aus.
- Dies macht man bis j=1. Für diesen Punkt braucht man nicht mehr alle verschiedenen
Einsatzmengen durchzurechnen, da man in der ersten Periode noch alles zur Verfügung hat.
- Nun folgt die Vorwärtsrechnung: Suche für x1 den optimalen Betrag, der zu investieren ist.
Realisiere. Suche für z2 = (x1 – u1) den optimalen Betrag. Verfahre, bis keine Möglichkeit zum
Investieren mehr gegeben ist.
Anwendungsformen
Die Bellmansche Funktionalgleichungsmethode kann auf viele Probleme der dynamischen
Optimierung angewendet werden. Im folgenden seien weitere wichtige Anwendungen und die damit
verbundenen Änderungen an der Gleichung aufgelistet:
1. Binäres Rucksackproblem:
Hier geht es, wie schon vorangegangen erwähnt, um die Frage, ob ein bestimmter Gegenstand in
den Rucksack eingepackte werden soll oder nicht. Um dies mit der Bellmanschen Funktionalglei-
chungsmethode zu lösen, verwendet man folgende speziell auf dieses Problem zugeschnittene
Form:
{ }
v * j ( x j ) = max c j u j + v * j +1 (x j − a j u j )
u j ∈U j ( x j )
Das Prinzip beruht darauf, dass für jeden Gegenstand geschaut wird, ab wann im Rucksack
genug Platz ist und ab wann ein weiterer vorangegangener Gegenstand auch noch hinzugefügt
werden kann. Dies erfolgt mit cj + v*j+1(xj-aj) für xj ≥ aj. Dieser Wert wird dann mit v*j+1(xj+1)
verglichen. Der größere Wert wird in v*j(xj) übernommen. Ist man letztlich bei v1(x1) angelangt, so
hat man den optimalen Inhalt des Rucksacks gefunden.
2. Umkehrung des Rechenverlaufs:
Das Bellmansche Verfahren kann in dem Fall zunächst mit der Vorwärtsrechnung eingesetzt
werden, wenn in Periode j der Anfangszustand xj durch den Endzustand xj+1 und der Entscheidung
26 / 26
© A. Jacob
Ver. 1.0 24.07.01
uj eindeutig gegeben ist, also etwa xj = fj (xj+1,uj) gilt. Die entsprechenden Summanden der ZF
angepasst ergibt sich:
*
v j ( x j +1 ) = min
u j ∈U j ( x j +1)
{g ( x
j j +1 ,u j ) + v
*
j −1 [f j ( x j +1 , u j ) ]}
In der anschließenden Rückwärtsrechnung bestimmt man dann eine optimale Politik und die
zugehörige (optimale) Zustandsfolge.
Lagerhaltung
Ein Lager dient grundsätzlich der Pufferung von Gütern an verschiedenen Stellen im Produktions- und
Vertriebsablauf. Zentrale Frage der Lagerhaltung ist, wann und wie viel bestellt werden soll. Schwierig
ist hierbei, dass viele Größen wie die Lieferzeit oder der Verbrauch nicht genau vorhersagbar sind und
somit als stochastische Größen angesehen werden müssen. Folgende Begriffe sind im Zuge der
Problematik zu definieren:
- Bestellpunkt: Derjenige Lagerbestand, bei dessen Unterschreitung bestellt wird
- Bestellgrenze oder -niveau: Lagerbestand, auf den das Lager bei der Lieferung wieder
aufgefüllt wird
- Fehlmenge: tritt auf, wenn Lager nicht lieferbereit, aber Nachfrage vorhanden
27 / 27
© A. Jacob
Ver. 1.0 24.07.01
Jetzt kommt noch die Annahme hinzu, dass wir eine Lieferzeit λ>0 einkalkulieren müssen. Soll also
die Bestellung eintreffen, wenn s* erreicht ist, so muß λ früher bestellt werden. Somit erhält man die
optimale Bestellzeitpunkt zu nT*-λ mit n = Periode.
Der optimale Bestellpunkt ist s*+λr für λr<Q*, d.h. λ<T*. Sonst bestimme lT*≤λ≤(l+1)T* und setze in
s*+λr-lQ* ein.
Deterministisches dynamisches Modell
Zu Begin der dynamischen Optimierung schon erwähntes Lagerhaltungsmodell sei an dieser Stelle
nochmals aufgegriffen. Die minimalen Kosten erhält man aufgrund der Bellmanschen Funktional-
gleichung: Cˆ j ( x j +1 ) min {Kδ (u j ) + hx j +1 + Cˆ *j −1 ( x j +1 − u j + r j )} mit Cˆ 0* ( x1 ) := 0
*
=
0 ≤ u j ≤ x j +1 + r j
Wagner und Whitin haben einen Algorithmus zur Bestimmung der optimalen Bestellpolitik entwickelt,
der wesentlich weniger Rechenaufwand erfordert als die Auswertung obiger Funktionalgleichung.
Die variablen Bestellkosten sind in diesem Modell zu vernachlässigen, da sie bei 0 Anfangs- und
Endbestand und konstantem Verbrauch zwischen Anfang und Ende fix sind und somit nicht zu
optimieren.
Betrachten wir abschließend den Fall, dass wir keine konstanten bestellfixen sowie variablen Kosten
haben, sondern diese z.B. saisonal bedingt schwanken. Somit werden auch die variablen Kosten
wieder interessant für die Optimierung, da jene jetzt ebenfalls nicht mehr als konstant angesehen
werden können. Generell ist es von Vorteil, wenn man sich zu Anfang des Optimierungsproblems klar
macht, welche Kosten als konstant betrachtet werden können und somit rausfallen, und welche bei
der Optimierung berücksichtigt werden müssen.
Um es optisch anschaulicher zu machen, sollte man tabellarisch vorgehen und sukzessive alle
Bestellmöglichkeiten durchrechnen: Wenn ich in der 1.Periode für alle Perioden bestelle, wenn ich in
der ersten Periode nur für n-1 Perioden bestelle, usw. Die macht man, bis man bei n angekommen ist.
Nun braucht man sich nur noch in der Rückwärtsrechnung von der letzten Spalte zur ersten
durcharbeiten und den minimalen Betrag der Spalte zu ermitteln.
28 / 28
© A. Jacob
Ver. 1.0 24.07.01
Warteschlangen
Die Grundlegende Systematik ist bei allen betrachteten Wartenschlangenproblemen die obige.
Lediglich die Ausgestaltung kann unterschiedliche Formen annehmen.
Weitere Charakteristika von Warteschlangen sind die Größe des Warteraums, die Anzahl der
Bedienschalter, der Abfertigungsmodus (einzeln oder schubweise) und die Auswahlordnung (im
weiteren nur first come first serve betrachtet).
Außerdem werden im weiteren die Zwischenankunftszeiten und die Bedienungszeit nicht nur statisch
sein, sondern auch stochastischen Prozessen unterliegen.
Aus den oben eingeführten Kennzahlen ergibt sich die Verkehrs- oder Auslastungsintensität ρ := λ/µ,
für die im Gleichgewichtszustand ρ<1 gilt (d.h. Ankunftsrate ist kleiner als die Bedienrate).
29 / 29
© A. Jacob
Ver. 1.0 24.07.01
Problem: Wie erhalten wir die durchschnittliche Anzahl von Kunden, die auf ihre Abfertigung warten?
j
πj = (1-δ)δ Diese Beziehung ist genau dann zulässig, wenn konvergentes Verhalten
vorliegt. π0 ist genau die Wahrscheinlichkeit, dass kein Kunde im System ist.
j+1
πj+1 =πj δ Sehr nützliche, wenn man die Wahrscheinlichkeit von 0, 1, 2,… Kunden im
System ausrechnen soll und als Basis π0 gegeben hat.
j j-1 2
L = ∑j (1-δ)δ = (1-δ)δ ∑j δ = (1-δ)δ 1/(1-δ) = δ / (1-δ) = λ / (µ-λ)
Das ganze ist abgeleitet aus einer Reihenentwicklung. Wichtig sind die letzten beiden Beziehungen,
die vermehrt in praktischen Anwendungen benötigt werden.
Diesen Erwartungswert kann man auch für die Anzahl der Kunden in der Warteschlange entwickeln.
q 2 2
Man kommt dann zu: L = δ / (1-δ) = λ / µ(µ-λ)
q q
Ein weiteres wichtiges Instrument ist die Littles Formel L = λW bzw. L = λW , die es erlaubt, auf die
q
durchschnittliche Wartezeit zu berechnen, die ein Kunde in der Schlange (W ) bzw. im kompletten
q
System (W ) warten muß.
Diese Formel lässt sich mit den zuvor abgeleiteten Beziehungen für L so kombinieren, dass man zu
q q
einer Wartezeit in der Schlange von W = L / λ bzw. Wartezeit bin zu Abarbeitung von W = L / λ
kommt.
In den Knoten steht der Zustand des Wartesystems, an den Pfeilen die möglichen Übergänge. Die
obige Abbildung zeigt den Fall von einem Wartesystem, bei dem sich die Wahrscheinlichkeit, dass
sich ein Kunde anstellt, mit zunehmender Länge der Warteschlange abnimmt. In diesem Fall könnten
die stationären Wahrscheinlichkeiten über folgende Formel berechnet werden:
(1 − ρ ) ρ j
πj =
1 − ρ r +1
Es kann nun auch passieren, dass sich ein ungeduldiger Kunde j bei einer gewissen Länge der
Warteschlange nur zu einer gewissen Wahrscheinlichkeit aj anstellt.
Für die Bedienungsrate wird sich kaum etwas ändern, da die vorhandene Schlange auch noch
abzuarbeiten ist, wenn ein Kunde wieder geht. Aber die Rate der Warteschlange verändert sich ab
dem Punkt, ab dem sich ein neuer Kunde entschließt, lieber wieder zu gehen (λj =λaj). Somit ist bis zu
dieser Rate und ab der Rate getrennt zu sehen.
Es kommt jetzt noch ein Größe hinzu, die man als „Erfassungsgrad der Kunden“ bezeichnen kann,
d.h. es ist die Wahrscheinlichkeit, dass sich ein ankommender Kunde in die Schlange einreiht:
α = 1-πr (also 1-W’keit, dass Schlange schon voll)
Daraus ergibt sich dann die effektive Ankunftsrate, also um α korrigiert: λeff = λα = λ(1-πr) = µ (1-π0).
30 / 30
© A. Jacob
Ver. 1.0 24.07.01
i -1
Die stationären W’keiten berechnen sich jetzt nach: π0 = (1 + ∑ δ )
j
πj = δ π0
31 / 31
© A. Jacob