\parindent 0pt
\def\g {\char`>}
\def\l {\char`<}
\def\{{\char`\{{}}
\def\}{\char`\}{}}

{\it Modell:}

\tt\frenchspacing

model;

param n; \# {\rm gegebene Daten}

set Perioden := 1..n;

set Produkte;

set Maschinen;

param Bedarf \{Produkte\}\ \g= 0;

param maxBedarf \{p in Produkte\}\ \g= Bedarf[p];

param Erloes \{Produkte\};

param Herstellung \{Produkte, Maschinen\}\ \g= 0;

param Kapazitaet \{Maschinen\}\ \g= 0, integer;

\smallskip
\# {\rm gesuchte Variablen:}

var Produktion \{Produkte\}\ \g= 0, integer;

\smallskip \hrule \smallskip

maximize Gewinn: sum \{p in Produkte\}

\quad Produktion[p] * Erloes[p] \# {\rm Zielfunktion}
\smallskip

subject to Kap \{m in Maschinen\}: \# {\rm Nebenbedingungen}

\quad sum \{p in Produkte\}\ Produktion[p] * Herstellung[p,m]

\qquad \qquad     \l= Kapazitaet[m];

Bedarfsdeckung \{p in Produkte\}:
Bedarf[p] \l= Produktion[p] \l= maxBedarf[p];


\smallskip \hrule \smallskip

{\it Daten:}

data;

param n := 12;

set Produkte := Zimtsterne Vanillekipferln;
\smallskip


{\obeyspaces
param:\                Bedarf,  maxBedarf :=

\   Zimtsterne         30.5     200.9

\   Vanillekipferln    79        82 ;}

param: Maschinen: Kapazitaet :=

{\obeyspaces
\         Mixer   10  \# {\rm Indexmenge wird gleichzeitig}

\         Herd    20;} \# {\rm mit den Werten definiert.}



\smallskip
{\obeyspaces
param Herstellung := \# {\rm zweidimensionale Tabellen}

\   :                Herd  Mixer :=

\   Zimtsterne       12.3    4

\   Vanillekipferln   9.5    5 ;}

{\it oder:}

{\obeyspaces
param Herstellung :=

\   (tr)  Zimtsterne Vanillekipferln :=

\   Herd        12.3    9.5

\   Mixer          4      5 ;}

{\it oder:}

{\obeyspaces
param Herstellung :=

\   Zimtsterne Herd         12.3

\   Zimtsterne Mixer         4

\   Vanillekipferln Herd     9.5

\   Vanillekipferln Mixer    5 ;}

\smallskip \hrule \smallskip

{\it Befehle:}

solve;

display Gewinn, \{p in Produkte\}\ Produktion[p];

include {\it Dateiname\/};
model {\it Datei}.mod;
%
data {\it Datei}.dat;
commands {\it Datei}.run;

let Kapazitaet["Herd"] := 30;

reset; reset model; reset data;

drop {\it Bedingung\/};
restore {\it Bedingung\/};

fix {\it Variable\/};
unfix {\it Variable\/};

\bye
