\magnification \magstep1
\voffset = -5mm
\hsize=27 true cm
\nopagenumbers
\vsize=17 true cm
\parindent 0pt
\input german.sty
\def \zack {{\tt \char`\>}}
\def \kl {{\tt \char`\<}}
Maple V f�r Windows aufrufen% (in der Programmgruppe "`Mathematik"')
\smallskip

\zack {\tt with(simplex);  \# } Laden des Simplex-Paketes

\zack {\tt restr1 := 3*x1 + 4*x2 + 5*x3 \kl=6;}

\zack {\tt restr2 := 3*x1 - 4*x2 - 5*x3 \kl=26; \# } zwei Ungleichungen

\zack {\tt zi := x1 - 5*x3; \# } eine Zielfunktion

\zack {\tt c := setup( [restr1, restr2] ); \# } Aufstellen des
Anfangsverzeichnisses

\zack {\tt \#  } Schlupfvariablen werden automatisch erzeugt.
Es wird angenommen, dass die Nichtnegativit�tsrestiktionen gelten.


\zack {\tt ?setup \# } Hilfe

% \zack {\tt ??setup \# } Aufrufparameter

% \zack {\tt ???setup \# } ein Aufrufbeispiel
\smallskip

\zack {\tt x := pivotvar(zi); \# } w�hlt eine (die erstbeste) Pivotvariable aus

\zack {\tt ratios(c, x); \# } bestimme maximal m�gliche Zunahme von $x_1$

\zack {\tt min(\dq); \# } Die Anf�hrungszeichen {\tt \dq} bezeichnen den
voher berechneten Ausdruck.

\zack {\tt eqs := pivoteqn(c, x); \# } {\tt pivoteqn} bestimmt automatisch
die richtige(n) Pivot-Gleichung(en).

\zack {\tt eq1 := eqs[1];}

\zack {\tt x1neu := solve(eq1, x);}

\zack {\tt subs(x1=x1neu, c) \# } $x_1$ durch den neuen Ausdruck substituieren

\zack {\tt subs(x1=x1neu, zi); \# } \dots\ auch in der Zielfunktion

\zack {\tt cneu := pivot(c, x1, eq1); \# } So geht der Pivotschritt
automatisch.

\zack {\tt zineu := subs(cneu, zi); }

\zack {\tt x := pivotvar(zineu); \# } und so weiter \dots
\medskip

\zack {\tt print(pivot); \# } Was macht die Prozedur {\tt pivot} eigentlich?

\zack {\tt interface(verboseproc=2); }

\zack {\tt print(pivot); \# } \dots\ nur Bl�dsinn.

\zack {\tt print(\`{}simplex/do\_pivot{\`{}}); \# } Die eigentliche Arbeit
geschieht hier.


\medskip

\zack {\tt setup( [3*x1-2*x2\kl=4, 4*x1+5*x2=7], UNRESTRICTED, 'transf');
\#} {\tt setup} verwendet Gleichungen, um Variablen zu eliminieren.

\zack {\tt \#}
Jede unbeschr�nkte Variable wird als Differenz von zwei vorzeichenbeschr�nkten
Variablen ausgedr�ckt.

\zack {\tt transf; \# } Die Variable {\tt transf} enth�lt diese
Transformationen.

\zack {\tt setup( [3*x1-2*x2\kl=4, 4*x1+5*x2=7, x1\zack=0], UNRESTRICTED,
'transf'); transf;}

\zack {\tt setup( [3*x1-2*x2\kl=4, 4*x1+5*x2=7, x1\zack=0, x2\zack=0],
UNRESTRICTED, 'transf'); transf;      }

\zack {\tt setup( [3*x1-2*x2\kl=4, 4*x1+5*x2=7], NONNEGATIVE ); \# }
Das ist das gleiche.

\zack {\tt setup( [3*x1-2*x2\kl=4, 4*x1+5*x2=7]); \# }
Standardm��ig wird {\tt NONNEGATIVE} angenommen.

\smallskip

\zack {\tt c := standardize( [3*x1-2*x2\kl=4, 4*x1+5*x2=7]); \# }
{\tt standardize} ersetzt jede Gleichung durch zwei Ungleichungen.

\end
