* Diese Datei zeigt Ihnen ein Beispiel zu klassischen Reihenfolgeplanungsproblemen. Dabei sollen zwei Aufträge auf drei Maschinen eingeplant werden * Zunächst ist es erforderlich, die Indizes zu definieren. Sets i Auftrag / 1*2 / j Maschine / 1*3 / ; * Wir benötigen einen weiteren Auftragsindex. alias(i, l) ; * Jetzt die Parameter. Parameter M hinreichend große Zahl / 1000 / ; Table d(i,j) Bearbeitungszeiten 1 2 3 1 40 10 20 2 70 40 50 ; * Nun die Deklaration der Variablen. Variables x(i,j) Startzeitpunkt von Auftrag i auf Maschine j z Zielfunktion g letzter Fertigstellungszeitpunkt u(i,l,j) Dummy-Variable für die Übergänge ; Positive Variables x ; Binary Variables u ; x.lo(i,0 10) = 1 ; * Es folgt die Definition der (Un-)Gleichungen. Equations Ziel Bezeichner der Zielfunktion Restriktgruppe1(i) Bezeichner für die erste Restriktionengruppe Restriktgruppe2(i) Bezeichner für die zweite Restriktionengruppe Restriktgruppe3(i) Bezeichner für die dritte Restriktionengruppe Restriktgruppe4(j) Bezeichner für die vierte Restriktionengruppe mit M Restriktgruppe5(j) Bezeichner für die fünfte Restriktionengruppe mit M ; Ziel .. z =e= g ; Restriktgruppe1(i) .. x(i,'1') + d(i,'1') - x(i,'2') =l= 0 ; Restriktgruppe2(i) .. x(i,'2') + d(i,'2') - x(i,'3') =l= 0 ; Restriktgruppe3(i) .. x(i,'3') + d(i,'3') - g =l= 0 ; Restriktgruppe4(j) .. x('1',j) + d('1',j) - (M*u('1','2',j)) - x('2',j) =l= 0 ; Restriktgruppe5(j) .. x('2',j) + d('2',j) - (M*(1-u('1','2',j))) - x('1',j) =l= 0 ; * Am Ende noch die Abschlussklausel. Model Reihenfolge /all/ ; Solve Reihenfolge using MIP minimizing z ;