*** Simplexverfahren für Casio CFX-9850G *** Programme: "PRI SV" ... Primales Simplexverfahren (auch mit kuenstlichen Variablen) "DUAL SV" ... Duales Simplexverfahren "AV" ... fuehrt einen Austauschschritt mit dem Austauschverfahren durch "SV LOES" ... gibt Loesung des SV aus "AV MANU" ... manuell Austauschschritte durchfuehren (ohne Pivotsuche) Variablen: M,N ... gewaehltes Pivot, fuer "AV" G,H ... aktuelles Pivot bei Pivot-Suche I,J ... Laufvariablen in der Matrix P,Q ... Dimension der Matrix V ... Bei "PRI SV": V=1 bedeutet SV mit kuenstlichen Variablen E ... Fehlerstatus O ... Modus: Kontrolliert oder Automatisch R ... fuer Pivot-Bewertung S ... Wert des aktuellen Pivots (G,H) T ... Wert des bisher besten Pivots (M,N) U ... Debug-Ausgabe bei U=1 Matrizen: A ... Eingabe der Aufgabe, wird nicht geaendert B ... hier drin wird gerechnet Ans ... temporaere Matrix Listen: 5,6 ... Variablen-Indizes der Zeilen und Spalten, wird nicht geaendert 2,3 ... Kopie von 5,6. Wird bei jedem Austauschschritt geaendert. Beispiel: z = x1 + x2 -> min bei: -x1 + x2 <= 2 -x1 + 2*x2 >= 2 x1 - 3*x2 <= 4 x1 >= 0 x2 >= 0 Normalform (NF) aufstellen: (Schlupfvariblen hinzufuegen damit Gleichungen entstehen) -x1 + x2 + x3 = 2 -x1 + 2*x2 - x4 = 2 x1 - 3*x2 + x5 = 4 Fuer die zweite Bedingung wird eine kuenstliche Variable benoetigt: -x1 + x2 + x3 = 2 -x1 + 2*x2 - x4 + y1 = 2 x1 - 3*x2 + x5 = 4 Die Starttabelle sieht also so aus: T1 x1 x2 x4 1 x3 1 -1 0 2 y1 1 -2 1 2 x5 1 -3 0 4 z 1 1 0 0 s M -2M M 2M Nun kann es los gehen. Folgendes in Matrix A eintragen: ( 1 -1 0 2 ) ( 1 -2 1 2 ) Mat A = ( 1 -3 0 4 ) ( 1 1 0 0 ) ( 1 -2 1 2 ) Die Zeilen- und Spaltenbezeichnungen werden in List 5 und 6 eingetragen: (die Indizes der xi und yi) entspricht Variable List 5: 3 x3 -1 y1 5 x5 List 6: 1 x1 2 x2 4 x4 Dabei steht eine Positive Zahl fuer eine normale Variable (Variablen des Ausgangsproblems und Schlupfvariablen, also x1 .. x5) und negative Zahlen fuer kuenstliche Varibalen (also y1). Null ist nicht erlaubt. Nun "PRI SV" starten. Es sollte keinen Fehler melden. Modus "Automatisch" waehlen. (Im Modus "Kontrolliert" kann man sich die Matrizen der Zwischenergebnisse ansehen) Kurze Zeit spaeter wird das Ergebnis praesentiert: zmin = 1 bei xopt = ( 0 | 1 | 1 )T Nun sollte man mal Matrix B ansehen, ob in der Endtabelle nicht zu erkennen ist, ob es vielleicht mehrere Loesungen gibt. (Das ueberprueft das Programm nicht) ( 0.5 0 -0.5 1 ) ( 0.5 0 0.5 1 ) Mat B = ( -0.5 0 -1.5 1 ) ( 1.5 0 0.5 1 ) ( 0 0 0 0 ) Die letzte Zeile und 2. Spalte sind Null, weil sie nach Vernichten der kuenstlichen Variable y1 gestrichen wurden, ihnen muss keine Beachtung mehr geschenkt werden. Zusammen mit Liste 2 und 3 kann man die Endtabelle aufstellen: (Zeile s und Spalte y1 kann man streichen) TE x1 x4 1 x3 0.5 -0.5 1 x2 0.5 0.5 1 x5 -0.5 -1.5 1 z 1.5 0.5 1 Da weder x1 noch x4 geändert werden können, ohne dass z wächst, ist dies also die einzige Lösung.