Kann jemand den Simplex in all seinen schönen Facetten?

Dr Franke Ghostwriter
über Hilfsfunktionen, Basisvariablen und künstlichen Basisvariablen bis zum Starttableau?

und kann ihn auch erklären?

z.B.

max 2x1 − 4x2 − x3
unter −x1 − x2 + 3x3  <= 3
x1 − x2 − x3 = 1
x1 + 2x2 − x3 >= 1
x1,x2,x3 >= 0

Wann sind es Basisvariablen? Wann künstliche? Wie sieht die Hilfsfunktion aus?
 
max 2x1 - 4x2 - x3
unter
-x1 - x2 + 3x3 <= 3
x1 - x2 - x3 = 1
x1 + 2x2 - x3 >= 1
x1,x2,x3 >= 0
Erklären fällt mir schwer 🙂 aber ich versuche mal den Rechenweg ausführlich hinzuschreiben.

Für alle Ungleichungen müssen Schlupfvariablen eingefügt werden
max 2x1 - 4x2 - x3
unter
-x1 - x2 + 3x3 +s1 = 3
x1 - x2 - x3 = 1
x1 + 2x2 - x3 -s2 = 1
x1,x2,x3 >= 0

Daraus ergäbe sich das Tableau
x1...x2...x3...s1...s2..|.ZF
.2...-4...-1....0....0..|.0...(1)
-1...-1....3....1....0..|.3...(2)
.1...-1...-1....0....0..|.1...(3)
.1....2...-1....0...-1..|.1...(4)

Das Tableau enthält aber keine gültige Basis, also muss bei den Zeilen 3 und 4 noch eine künstliche Variable hinzugefügt werden
-> Phase I
x1...x2...x3...s1...s2...k1...k2..|.ZF
.0....0....0....0....0...-1...-1..|.0 (0)
.2...-4...-1....0....0....0....0..|.0 (1)
-1...-1....3....1....0....0....0..|.3 (2)
.1...-1...-1....0....0....1....0..|.1 (3)
.1....2...-1....0...-1....0....1..|.1 (4)

Dann die Spalten s1,k1 und k2 zu Basisvariablen machen
(0)+(3)+(4)
x1...x2...x3...s1...s2...k1...k2..|.ZF
.2....1...-2....0...-1....0....0..|.2 (0)
.2...-4...-1....0....0....0....0..|.0 (1)
-1...-1....3....1....0....0....0..|.3 (2)
.1...-1...-1....0....0....1....0..|.1 (3)
.1....2...-1....0...-1....0....1..|.1 (4)

Pivotelement x1 (3)
x1...x2...x3...s1...s2...k1...k2..|.ZF
.0....3....0....0...-1...-2....0..|.0 (0)
.0...-2....1....0....0...-2....0..|.-2 (1)
.0...-2....2....1....0....1....0..|.4 (2)
.1...-1...-1....0....0....1....0..|.1 (3)
.0....3....0....0...-1...-1....1..|.0 (4)

Pivotelement x2 (4)
x1...x2...x3...s1...s2...k1...k2..|.ZF
.0....0....0....0....0...-1...-1..|.0 (0)
.0....0....1....0.-2/3.-8/3..2/3..|.-2 (1)
.0....0....2....1.-2/3..1/3..2/3..|.4 (2)
.1....0...-1....0.-1/3..2/3..1/3..|.1 (3)
.0....1....0....0.-1/3.-1/3..1/3..|.0 (4)

Phase I erfolgreich gelöst
-> k1/k2 streichen und das verbleibende Tableau weiternutzen
-> Phase II

x1...x2...x3...s1...s2..|.ZF
.0....0....1....0.-2/3..|.-2 (1)
.0....0....2....1.-2/3..|.4 (2)
.1....0...-1....0.-1/3..|.1 (3)
.0....1....0....0.-1/3..|.0 (4)

Pivotelement x3 (2)
x1...x2...x3...s1...s2..|.ZF
.0....0....0.-1/2...-1..|.-4 (1)
.0....0....1..1/2.-1/3..|.2 (2)
.1....0....0..1/2.-2/3..|.3 (3)
.0....1....0....0.-1/3..|.0 (4)

Minimum ist 4 bei x1=3, x2=0 und x3=2

Jedenfalls wenn ich mich nicht wie so oft verrechnet habe
 
Warum muss ich denn überhaupt Hilfsvariablen einbauen, wenn ich stattdessen doch einfach die Ungleichung "drehen" kann?
Also wie hier bei einem Maximum die >= durch *(-1) in <= umwandeln?

Oder hab ich das mit den Hilfsvariablen völlig falsch verstanden, und sie erfüllen einen ganz anderen Zweck?
 
Damit du eine zulässige Basis erhältst. Wenn du die Ungleichung umdrehst, steht in der rechten Spalte etwas negatives. Du hast aber Vorzeichenrestriktionen (x1,x2,x3 usw. >= 0), d.h. deine Basis bezeichnet einen Punkt außerhalb des zulässigen Bereiches.
Für die Gleichung müsstest du aber trotz allem eine Hilfsvariable einführen.

In der Phase 1 versuchst du, die Hilfsvariablen auf 0 zu kriegen. Wenn das klappt, kann man sie streichen und mit der gefundenn Basis in Phase II weitermachen.
 
Erklären fällt mir schwer 🙂 aber ich versuche mal den Rechenweg ausführlich hinzuschreiben.
Du erklärst immer mathematisch und nicht auf einfache Weise oder bildlich (ok das bietet sich hier weniger), da liegt das Problem 🙂

Für alle Ungleichungen müssen Schlupfvariablen eingefügt werden
max 2x1 - 4x2 - x3
unter
-x1 - x2 + 3x3 +s1 = 3
x1 - x2 - x3 = 1
x1 + 2x2 - x3 -s2 = 1
x1,x2,x3 >= 0

Einfacher ist es sich folgendes zu merken:
Es muss immer ein Maximierungsproblem vorliegen, sonst *(-1) der Zielfunktion
- Bei "<=": +Si
- bei ">=": -Si +Ki
- bei "=" : +Ki
Wobei S eine Schlupfvariable und K eine Kunstvariable.
Die Kunstvariablen sind denn für die gültige Basis notwendig.
Wenn du die Gleichung direkt mit den Kunstvariablen aufstellst kannst du denn auch direkt dein Tableau daraus erstellen.

Also :
Aus deiner Aufgabenstellung ergibt sich :

max 2x1 - 4x2 - x3
unter
-x1 - x2 + 3x3 +s1 = 3
x1 - x2 - x3 + k1 = 1
x1 + 2x2 - x3 -s2 +k2= 1
x1,x2,x3,s1,s2,k1,k2 >= 0

und das ist wiederrum das Tableau:

x1...x2...x3...s1...s2...k1...k2..|.ZF
.0....0....0....0....0...-1...-1..|.0 (0) Hilfszielfunktion
.2...-4...-1....0....0....0....0..|.0 (1) Zielfunktion
-1...-1....3....1....0....0....0..|.3 (2) Nebenbedingung 1
.1...-1...-1....0....0....1....0..|.1 (3) Nebenbedingung 2
.1....2...-1....0...-1....0....1..|.1 (4) Nebenbedingung 3


Sobald du Nebenbedingungen hast bei denen du Kunstvariablen einführen musst ist die Anwendung von Phase I des Simplex Pflicht.
Die Hilfsfunktion hat denn überall Nullen, außer bei deinen Ki da ist denn eine "-1".

Der erste Schritt damit du beginnen kannst ist denn du musst die "-1" aus der Hilfsfunktion wegbekommen.
Du musst also jede Zeile in deinem Tableau die bei den Ki eine 1 hat addieren und diese denn zur Hilfszielfunktion addieren.

Das ist denn dieser Schritt:

Dann die Spalten s1,k1 und k2 zu Basisvariablen machen
(0)+(3)+(4)
x1...x2...x3...s1...s2...k1...k2..|.ZF
.2....1...-2....0...-1....0....0..|.2 (0)
.2...-4...-1....0....0....0....0..|.0 (1)
-1...-1....3....1....0....0....0..|.3 (2)
.1...-1...-1....0....0....1....0..|.1 (3)
.1....2...-1....0...-1....0....1..|.1 (4)


Dabei verschwinden denn deine -1 dafür hast denn aber wahrscheinlich viele positive Ziffern in der Hilfsfunktion die du denn wie in Phase 2 mittels Gauß umformen musst.


Und einfach die Nebenbedingungen * (-1) geht nicht.
Es müssen ja alle Variablen größer Null sein.
Wenn du nun einfach die Nebenbedingungen umstellt müssten deine Variablen x1 bis x3 ja auch negative Werte annehmen aber das dürfen sie ja nicht, da man sonst dieses Optmierungssystem so nicht anwenden kann.
 
Hm, ich verstehe es mit den Hilfsvariablen immer noch nicht.
Ich habe das Tableau mit der Umformung der Ungleichung gerechnet und komme auch auf x1=3, x2=0 und x3=2, mit einem Zielwert von 4.

Wenn ich die komplette Gleichung mit -1 multipliziere verletze ich doch die Nichtnegativitätsbedingung nicht:
x1 + 2x2 - x3 >= 1
-x1-2x2+x3<=-1
"Beide" sind für x=(3, 0, 2) gleichermaßen erfüllt.
 
Nach Ende von Phase 1, das Ende ist denn erreicht wenn du in der Hilfszielfunktion keine positiven Ziffern mehr hast und der Zielfunktionswert sollte 0 sein (falls dieser nicht 0 so ist dieses Gleichungssystem nicht lösbar, bzw. entartet wie es so schön heißt), kannst du die Spalten mit den Kunstvariablen sowie die Zeile mit der Hilfszielfunktion streichen und denn "wie gewohnt" weiter machen.

-x1-2x2+x3<=-1
"Beide" sind für x=(3, 0, 2) gleichermaßen erfüllt.
Das wäre schon eine Lösung aber stelle dir vor du musst diese Nebenbedingung zeichnen.

Sagen wir mal einfacher damit es vorstellbar ist die Ungleichung ist -x+y<=-1 Eine Lösung dafür wäre x,y = (1, 1) also 0 <= 1 stimmt also.
Aber bestimme mal die Achsenschnittpunkte.
Erst y = 0 und x ausrechnen und denn andersrum.
Damit ist:
x= 1
y = -1
Diese Gerade eingezeichnet in ein Koordinatensystem ist eine Gerade die bei -1 die y Achse schneidet und bei + die x Achse.
Deine Gerade verläuft also im negativem Bereich, sie geht zwar auch oberhalb durch aber der negative ist schon verboten.
Und Sie !muss! in den negativen Bereich da sie bei y = -1 einen Schnittpunkt hat.
Und das darf halt so nicht sein.
EInfach merken auf der rechten Seite der Ungleichungen nichts negativen, wenn da was negatives steht denn mal minus 1.

Hoffe das hilft
 
Das liegt jetzt aber an der Gleichung selbst 😉 Jede Gerade mit positiver Steigung muss entweder auf der x-oder y-Achse einen "negativen Schnittpunkt" haben (ausser sie geht durch den Nullpunkt).
(Wobei ich die Achsenabschnitte normalerweise bestimme, indem ich den Wert rechts durch den Faktor meiner x/y-Werte teile)
Und bei -x+y<=-1 kommt bei (1, 1) 0<= -1 raus
bei x-y>=1 kommt 0>=1 raus
Sie ist somit für x=y=1 nicht erfüllt ("beide", da es eigentlich doch die selbe Bedingung ist).

Kannst du mir mal bitte das Tableau nach Eliminierung der Kunstvariablen und Hilfszielfunktion posten?
 
Kannst du mir mal bitte das Tableau nach Eliminierung der Kunstvariablen und Hilfszielfunktion posten?

Das ist dieses hier wie sangrick schon gepostet hat:
Phase I erfolgreich gelöst
-> k1/k2 streichen und das verbleibende Tableau weiternutzen
-> Phase II

x1...x2...x3...s1...s2..|.ZF
.0....0....1....0.-2/3..|.-2 (1)
.0....0....2....1.-2/3..|.4 (2)
.1....0...-1....0.-1/3..|.1 (3)
.0....1....0....0.-1/3..|.0 (4)
 
Das liegt jetzt aber an der Gleichung selbst 😉 Jede Gerade mit positiver Steigung muss entweder auf der x-oder y-Achse einen "negativen Schnittpunkt" haben (ausser sie geht durch den Nullpunkt).
(Wobei ich die Achsenabschnitte normalerweise bestimme, indem ich den Wert rechts durch den Faktor meiner x/y-Werte teile)
Und bei -x+y<=-1 kommt bei (1, 1) 0<= -1 raus
bei x-y>=1 kommt 0>=1 raus
Sie ist somit für x=y=1 nicht erfüllt ("beide", da es eigentlich doch die selbe Bedingung ist).
ja da hast du recht 0 ist natürlich nicht kleiner oder gleich -1 🙂
sorry hatte es genau andersrum gesehen.
Aber versuch das mal mit der Gerade zeichnen in deinem Beispiel
Denn wäre ja x1 = 1, x2 = 1/2, x3 = -1
Wenn du nun wie üblich annimmst das x3 auch gerne mit z und damit die Höhe im 3D Raum ist so wäre die "Höhe" negativ der Bereich geht also ins negative.
 
Ja, das stimmt. Was mich daran nur so wurmt, ist, dass es bei beiden Gleichungen der Fall ist...
I) x1 + 2x2 - x3 >= 1
II) -x1-2x2+x3<=-1

Ob ich es nun I oder II nehme, es ändert sich nichts. Die Werte bleiben gleich, die Erfüllung/Nichterfüllung bleibt gleich...

Versuche mir dank dieses Threads das 2-Phasenmodell anzueignen (da schon mal vielen Dank für deine Hilfe, und natürlich auch an sangrick 🙂 ), aber es fällt mir schwer, da ich noch nicht von der Sinnhaftigkeit überzeugt bin :-(

Bisher konnte ich alles durch Umdrehen der Ungleichungen lösen (Maximum heißt alles muss <= sein, Minimum heißt alles muss >= sein), aber wenn in der Prüfung explizit nach Hilfsvariablen (und damit meine ich nur die "k"s, nicht die Schlupfvariablen, die sind mir klar) gefragt wird hab ich echt ein Problem *seufz*
 
Wenn ich die komplette Gleichung mit -1 multipliziere verletze ich doch die Nichtnegativitätsbedingung nicht:
x1 + 2x2 - x3 >= 1
-x1-2x2+x3<=-1
"Beide" sind für x=(3, 0, 2) gleichermaßen erfüllt.
Du hast da jetzt einfach mal die Optimallösung (3,0,2) eingesetzt, aber um die geht es ja gar nicht. Entscheidend ist die jeweilige Basislösung! Die kann man jederzeit in der rechten Flügelspalte ablesen. Und wenn da negative Werte drinstehen, dann ist die Basislösung eben unzulässig.
Ich nehme an, dass das in der Praxis bedeutet, dass du nicht unbedingt durch normale Pivotoperationen wieder zurück in den zulässigen Bereich findest und somit auch am Optimum vorbeiläufst, da der Simplexalgorithmus nur für zulässige Basen funktioniert (dh bewiesen ist). Außerdem gibt es normalerweise sehr viel mehr unzulässige Basen als zulässige Basen, so dass du quasi ohne Orientierung im Niemandsland umherirrst. Nur bei diesen Miniproblemen, die man noch mit Papier und Bleistift ausrechnen kann, geht das vielleicht hin und wieder mal gut.
 
Der Simplex geht ja alle "Ecken" ab und sucht dort die Optimalelösung, mit jedem Gaußumformung wird die Ecke gewechselt.
Wahrscheinlich springt man sonst in eine ungültige Ecke, aus der man nicht wieder rausfindet.
Man verschiebt ja denn grafisch die Zielfunktion auf eben solche Ecke, ich denke mal wenn man denn so eine "ungültige" Ecke hat und die Zielfunktion darauf verschiebt wäre deine berechnete Lösung optimal, aber in Wirklichkeit ist es eben doch nicht optimal.

In Wirtschaftsmathe konnte man einfach die Ungleichungen immer umformen, allerdings macht man da auch nur Phase 2 und man hat ein Minimierungsproblem zu lösen, wenn ich mich recht erinnere.
 
Hm, Chris, das war ein Knackpunkt: Über die Allgemeingültigkeit kann ich keine Aussage treffen.
Ich dachte, eine negative Zielzahl wäre nur dann unzulässig, wenn sie in der Basislösung auftauchen würde, also z.B. bei (1, 0, 0, -3, 2).
Wenn sie bei einer NBV auftaucht erscheint sie ja nicht in der Basislösung (->0).

Was ich jetzt gefunden habe, ist, dass es zur Lösung bei nicht-zulässigen Startlösungen mehrere Verfahren gibt:

- Den dualen Simplexalgorithmus (mit *-1 etc),
- die Dummikodierung (m.E. gehört hierzu die hier besprochene 2-Phasenmethode)
- und die 3-Phasenmethode.

Aber es hilft ja alles nichts. Ich eigne mir jetzt weiter die 2-Phasenmethode für die Prüfung an. Das Vorgehen habe ich dank euren Posts ja verstanden (glaube ich zumindest 🙂 ).
 
kann mir jemand nochmal erklären was ich genau machen muss wenn ich Zeile mit Kunstvariable (Hilfsfunktion) zwar schon verarbeitet habe (also Addition aller anderen Zeilen wo die Variable auftaucht) aber es noch positive Elemente gibt. Woher weiß ich wie ich das Umformen muss? Wird dies auch über das Pivotelement gemacht?

Sitze gerade ratlos an Aufgabe 12 aus WS07 Klausur 🙁

Wäre sehr dankbar für eure Hilfe.

MfG

Lars
 
Vielleicht könnt Ihr mir auch helfen: Also angenommen ich habe ein Maximierungsproblem, bei dem ich keine Anfangslösung habe und deshalb Phase I mit dem Hilfsproblem starte. Dieses wäre nun optimal, allerdings wäre in dieser optimalen Lösung auch noch künstliche Variablen ungleich 0 enthalten. Jetzt darf ich diese ja nicht einfach streichen, sondern müsste sie 'hinauspivotisieren'. Mein Problem ist nun, dass die Pivotelemente , die ich nutzen könnte, alle negativ sind, was zur Folge hat, dass der Wert der Originalvariable negativ würde, womit die Lösung nicht mehr zulässig wäre... Was kann/ muss ich da machen? Vielen lieben Dank schon im Voraus für die Hilfe! Bei bedarf schreibe ich auch gerne die Aufgabe auf...
 
Oben