[i][b]Qb[/b][/i](Pivotzeile des Tableaus berechnen: DIV Element der Pivotspalte, EE Element der b-Vektor-Spalte: EE/[i]DIV[/i])[br][i](Muss ggf. bei Abweichungen der Nebenbedingungen von den Standard-Simplex-Vorgaben angepasst werden)[/i][br][i][b]PIVOT[/b][/i](Liste {Pivotzeile, Pivotspalte} berechnen)[br][i][b]GAUS[/b][/i](Gauß'sche Elimiationsschritte mit der Pivotzeile ausführen)[br][i][b]maxIL[/b][/i](Auslesen des End-Tableaus eines Max Programm)[br][i][b]minIL[/b][/i](Auslesen des dualen End-Tableaus für Min-Programme) [br][b]Zmin[/b]:={First(Flatten(Last(Transpose(Start))), n)} - [br]Letzte Zeile im Start-Tableau = (-1)Koeffizienten der Ziel-Funktion (Zmin/Zmax).[br]Last Row in Start-Tableau = (-1)*Coefficients of Target/Objective-Function(Zmin/Zmax) .[br]Terminate LP all Coefficients of line of Target/Objective-Function positiv.[br][br]Beispiel:[br][br][math]\textcolor{blue}{\large\mathcal{Maxima-Link}\nearrow[/math] [br]https://sagecell.sagemath.org/?q=uiivwn[br][br]load("simplex");[br]maximize_lp( 22*x+28*y+19*z, [[br] x<=300, y<=300, z<=250, 3*x+4*y+2*z<=2100 ]), nonegative_lp=true;[br][16250,[z=250,y=175,x=300]][br][br]Start:={{3,4,2,1,0,0,0,2100},{1,0,0,0,1,0,0,300},{0,1,0,0,0,1,0,300},{0,0,1,0,0,0,1,250},{-22,-28,-19,0,0,0,0,0}}
[table][tr][td]minimize_lp([br]35*x1+30*x2+20*x3+15*x4+20*x5+25*x6, [[br]x1+x4>=80, [br]x2+x5>=40, [br]x3+x6>=45, [br]x1+x2+x3[color=#ff0000]<=[/color]90, [br]x4+x5+x6[color=#ff0000]<=[/color]75[br]]), nonegative_lp=true; [br][br][3400,[x6=0,x3=45,x5=0,x2=40,x4=75,x1=5]][br][br][math]\textcolor{blue}{\large\mathcal{Maxima-Link}\nearrow[/math] [br]https://sagecell.sagemath.org/?q=rptevc[br][/td][td][br][math]\large\Longrightarrow\quad Z \;\vec{x}[/math][br][math]\large\Longrightarrow\quad A \;\vec{x} \geq \vec{b}[/math][br][br]DUALTAB[br][math]\Longrightarrow\left(\begin{array}{rrr}A^{T}&id_{dimA}&Z^{T}\\-b^{T}&0&0\\\end{array}\right)[/math][br][br][br][br][br][br][br][/td][/tr][/table][br][br]Tablo:={ x1+x4=80, x2+x5=40, x3+x6=45, -(x1+x2+x3)=-90, -( x4+x5+x6)=-75, 35*x1+30*x2+20*x3+15*x4+20*x5+25*x6=0}[br][br][i]DUALTAB:=Append(Transpose(Join(First(A,Length(A)-1),Identity(Length(Element(A, 1))),Last(A))),Join(-b,Sequence(0,j,1,Length(Element(A,1)))));[/i][br][br]
tab max[br]((3 * x1) + (2 * x2) + (2 * x3), [br][x1 + x3 + x4 <= 8, [br]x1 + x2 + x5 <= 7, [br]x1 + (2 * x2) <= 12])[br]Start:={{1,0,1,1,0,0,8},{1,1,0,0,1,0,7},{1,2,0,0,0,1,12},{-3,-2,-2,0,0,0,0}};[br][br]((2 * x1) + (2 * x2) + (6 * x3),[br][(-2 * x1) + (2 * x2) + x4 <= 20, [br](-2 * x1) + (2 * x3) >= 24, [br](2 * x1) - (2 * x2) - (2 * x3) <= 16, [br](4 * x1) - (2 * x2) + (2 * x3) <= 12])[br]Start:={{-2, 2, 0, 1, 0, 0, 0,20}, {2, 0, -2, 0, -1, 0, 0,24}, {2, -2, -2, 0, 0, 1, 0,16}, {4, -2, 2, 0, 0, 0, 1,12},{-2,-2,-6,-0,0,0,0,0}}[br][br](x1 + (3 * x2) + (2 * x3), [br][x1 + (4 * x2) + (2 * x3) <= 200, [br]x1 + (3 * x2) + (4 * x3) <= 160, [br](2 * x1) + x2 + (6 * x3) <= 300]), [br]{{1, 4, 2, 1, 0, 0, 200}, {1, 3, 4, 0, 1, 0, 160}, {2, 1, 6, 0, 0, 1, 300}, {-1, -3, -2, 0, 0, 0, 0}};[br][br]((20 * x1) + (15 * x2) + (7 * x3),[br][x1 - (2 * x2) <= 30, [br](3 * x1) + x2 - (5 * x3) <= 47, [br](3 * x2) + x3 <= 20, x3 <= 5])[br]{{1,-2,0,1,0,0,30}, {3,1,-5,0,1,0,47}, {0,3,1,0,0,0,20},{0,0,1,0,0,1,5}, {-20,-15,-7,0,0,0,0}};[br][br]dualtab min [br]35*x1+30*x2+20*x3+15*x4+20*x5+25*x6, [[br]x1+x4>=80,[br]x2+x5>=40,[br]x3+x6>=45,[br](x1+x2+x3)<=90,[br](x4+x5+x6)<=75])[br]{{1,0,0,−1,0,1,0,0,0,0,0,35},{0,1,0,−1,0,0,1,0,0,0,0,30},{0,0,1,−1,0,0,0,1,0,0,0,20},{1,0,0,0,−1,0,0,0,1,0,0,15},{0,1,0,0,−1,0,0,0,0,1,0,20},{0,0,1,0,−1,0,0,0,0,0,1,25},{−80,−40,−45,90,75,0,0,0,0,0,0,0}};[br][br][br][br][br]