Quantitative Methoden der BWL * Lineare Programmierung

Report
Quantitative Methoden der BWL
– Lineare Programmierung
Prof. Dr. Steffen Fleßa
Universität Greifswald
Gliederung
1.
2.
3.
4.
5.
6.
Grundlagen
Modellierung in LINGO
Fallstudie 1: Produktionsprogrammplanung
Komplexere Modelle
Fallstudie 2: Personaleinsatzplanung
Ausblick
1. Grundlagen
• Planungs- und Entscheidungmodelle
– Optimierende Modelle
– Prognostizierende Modelle
– Simulationsmodelle
• Arten von Optimierenden Modellen
– Infinitesimalrechnung
– Lineare Programmierung
– Entscheidungsbaumverfahren
– Spielmodelle
Grundmodell der mathematischen
Programmierung
• Variablendefinition
x Vektor der Strukturvariablen
• Zielfunktion
Z  g ( x)  Opt!
• Nebenbedingungen
f i ( x)  K i
für i  1,.., m
Spezialfall: Lineare Programmierung
• Zielfunktion
– g(x) als lineare Funktion
n
Z   d j x j  Max!
j 1
• Nebenbedingungen
– Alle fi als lineare Funktionen
n
c x
j 1
ij
j
 Ki
für i  1,.., m
– Nicht-Negativitäts-Bedingung
Beispiel: Produktionsprogrammplanung
• Inhalt: Festlegung der Menge der zu produzierenden
Produkte.
• Krankenhaus:
– Festlegung des Fallklassenprogramms
– Gebräuchlicher: Leistungsprogrammplanung
Beispiel
• Entgelt
– Hüftoperation: 1600 € Deckungsbeitrag
– Knieoperation: 1000 € Deckungsbeitrag
• Restriktionen
– OP-Kapazität: 6 Stunden/Tag
– Aufwachraumkapazität: 8 Stunden/Tag
• Spezifischer Bedarf
– Hüftoperation: 2 Stunden OP-Kapazität, 2 Stunden
Aufwachraumkapazität
– Knieoperation: 1 Stunde OP-Kapazität, 2 Stunden
Aufwachraumkapazität
Optimale Lösung
• Produktionsprogramm
– Zwei Hüftoperationen (benötigt 4 Stunden OPKapazität, vier Stunden Aufwachraumkapazität)
– Zwei Knieoperationen (benötigt 2 Stunden OPKapazität, 4 Stunden Aufwachraumkapazität)
• Deckungsbeitrag:
2*1600 € + 2*1000 € = 5200 €
Charakteristika der
Produktionsprogrammplanung
• Ressourcen: gegeben, unveränderlich
• Produktionsmöglichkeitsbereich,
Lösungsraum: durch Restriktionen
eingeschränkt
• Ziel: Deckungsbeitragsmaximierung
• Ergebnis ist die Zahl der zu produzierenden
Einheiten
Lösung durch Lineare Programmierung
• Variablendefinition:
X1 = Anzahl der Knieoperationen
X2 = Anzahl der Hüftoperationen
• Nebenbedingungen
2 X1 + 2 X 2 < 8
1 X1 + 2 X 2 < 6
X1 > 0
X2 > 0
• Zielfunktion
Z = 1000 X1 + 1600 X2 Max!
Graphische Lösung
X2
4
2X1+2X2<=8
3
2
1X1+2X2<=6
1
1
2
3
4
5
6
X1
Konvexes Lösungspolyeder
X2
4
2X1+2X2<=8
3
2
1X1+2X2<=6
1
1
2
3
4
5
6
X1
Zielfunktion und Optimierung
X2
4
2X1+2X2<=8
3
Z=1000X1+1600X2
2
1X1+2X2<=6
1
1
2
3
4
5
6
X1
2. Modellierung in LINGO
• Modell:
• Solve
Zielfunktionswert
Zahl der
Iterationen
Ergebnis
Endliche, zulässige Lösung
Zielfunktionswert
X1=2
X2=2
Zielfunktionswert
Variablen in der Basislösung haben
immer „reduced cost“ von 0
Um wie viel würde der
Zielfunktionswert sinken, wenn
man die Variable in die Basislösung
aufnehmen würde (wenn sie nicht
in der Basislösung ist)
Schlupfvariable:
0: Restriktion voll erfüllt
(links=rechts)
>0: ungenutzte Kapazität (Schlupf
zwischen linker und rechter Seite)
Schattenpreis: Um wie viel würde
der Zielfunktionswert steigen,
wenn man die Kapazität um eine
Einheit erhöhen würde.
Fallstudie 1:
Produktionsprogrammplanung
• Lösung der Arbeitsaufgabe (Fallstudie 1)
– LINGO
– Interpretation der Ergebnisse
Ansatz
Solver Status
Ergebnisse
Analyse
• Entscheidungsvariable:
– 50 Patienten von Klasse 3
– 100 Patienten von Klasse 4
– 25 Patienten von Klasse 7
• Restriktionen:
–
–
–
–
–
–
Pflegetage:
50 unterausgelastet
Labor:
0: Engpass
Röntgen:
1000: unterausgelastet
Operationssaal: 0: Engpass
Pflegekräfte: 0: Engpass
Ärzte:
4000: unterausgelastet
Analyse
•
•
•
•
•
•
•
•
•
Variable
X1
X2
X3
X4
X5
X6
X7
X8
Value
0.000000
0.000000
50.00000
100.0000
0.000000
0.000000
25.00000
0.000000
Reduced Cost
438.2833
866.2750
0.000000
0.000000
1126.700
1850.000
0.000000
515.7000
Analyse:
• Aufgabe: Zwingen Sie das Modell, mindestens
einen Patienten mit Fallklasse 1 zu behandeln.
Wie verändert sich der Zielfunktionswert?
• dZ= 459710.0 - 459271.7=438,3
– Vgl. reduced cost des Ausgangsmodells!
Analyse
•
•
•
•
•
•
•
•
Row
1
2
3
4
5
6
7
Slack or Surplus
459710.0
50.00000
0.000000
1000.000
0.000000
0.000000
4000.000
Dual Price
1.000000
0.000000
39.12750
0.000000
18.62500
0.4776667
0.000000
Analyse
• Aufgabe: Sie öffnen den OP eine Minute
länger länger. Wie wirkt sich das auf den
Zielfunktionswert aus?
– OP-Zeit = 9001 min.
• LP: … <=9001
• dZ=459728,6 – 459710 = 18,6
– Vgl. Schattenpreis!
Komplexere Modelle
• Ganzzahlige Variable (General Integer):
0,1,2,3,…
– @GIN(X)
• Binäre Variable (Binary Integer): 0,1
– @BIN(X)
• Nicht-Vorzeichenbeschränkte Variable
– @FREE(X)
SETS
• Ziel: Zusammenfassung von Objekten zu einer
Menge, z.B. indizierte Variable
– X={x1, x2, x3, …, xn}
• SET-Section: Wir müssen die Sets definieren
SETS:
Set1: attribute;
Set2: attribute;
ENDSETS
DATA
• Inhalt: Liste der Konstanten für einzelne Sets
• DATA-Section: Definition der Konstanten
DATA:
Set1
Attribut
ENDDATA
= S1, S2,
= a1, a2,
…, Sn;
…, an;
Summen
• Inhalt: Summierung über alle Elemente einer
Menge
–

=1
 ∙ 
• Funktion: @SUM
– @SUM(Index(i): c(i)*x(i));
• Voraussetzung: X und c wurden vorher als Set
Index definiert, d.h.
SETS:
Index: c, x;
ENDSETS
Personaleinsatzplanung
Schichten
N
S8
S7
S6
S5
S4
S3
S2
S1
7
8
9 10
11 12
13 14
15 16 17 18
19 20 21
22 23 24 1
2
3
4
5
6
7
8
Zeit
[Stunden]
Personaleinsatzplanung
Bedarf bt [Vollkräfte]
9
8
7
6
5
4
3
2
1
7
8
9 10
11 12
13 14
15 16 17 18
19 20 21
22 23 24 1
2
3
4
5
6
7
8
Zeit
[Stunden]
Kosten
•
•
•
•
•
•
•
•
•
•
Schicht
1
2
3
4
5
6
7
8
N
Kosten pro Mitarbeiter
1500 €
1000 €
1000 €
1000 €
1000 €
1200 €
1200 €
1500 €
1800 €
Einfacher Ansatz
Ergebnis Einfacher Ansatz
Ansatz mit
SET
Ansatz mit
SET
Summen
• ZIELFUNKTION
Summen
• Nebenbedingungen
• #LE#: less or
equal to
• #GE#: greater or
equal to
Ausblick
• For-Schleifen
– For i=1..n
– Beispiel: @FOR( Schichten(I): @GIN(X(I)));
• Einbindung von Excel
– Eingabe
– Ausgabe

similar documents