Cutting Stock Stefan Nolting Andreas Goebels Larissa Timajev Cutting Stock Problembeschreibung: geg.: Länge W des Rohmaterials Länge wi der benötigten Teilstücke und die erforderliche Mindestmenge bi (1 i n) ges.: Ein Produktionsprogramm, daß mit einer minimalen Anzahl von Elementen der Länge W den Bedarf der Teilstücke deckt. Idee Wir bestimmen alle Schnittmuster und rufen damit CPLEX auf. CPLEX liefert uns eine Kombination der Schnittmuster, für die die Kosten, d.h. die Anzahl der verwendeten Stücke der Länge W, minimal sind. Und schon sind wir fertig,... ...aber Alle Schnittmuster zu bestimmen ist viel zu aufwendig!!! Idee Wir bestimmen daher nur einige Startschnittmuster. Für diese ausgewählten Schnittmuster berechnen wir mit CPLEX eine optimale Lösung. CPLEX liefert uns nicht nur die optimale Lösung, sondern auch die dualen Variablen i. Mit Hilfe der dualen Variablen können wir ein neues LP bestimmen, mit dem wir verbessernde Schnittmuster ermitteln können. (Column Generation) Restriktionen (erster Aufruf) min x c i i i u.d.N. j : xij bj i i : ci 1 Restriktionen (zweiter Aufruf) min xi ( i) i u.d.N. i : wi xi W i Algorithmus 1) Wir bestimmen n Schnittmuster. Um diese einfach zu berechnen, fertigen wir von jedem Teilstück die maximale Anzahl. W i : xii wi 2) i j : xij 0 Wir übergeben dieses Problem (Originalproblem) an CPLEX. Algorithmus 3) Aus der CPLEX-Lösung werden die dualen Variablen (i) ausgelesen. 4) Mit Hilfe der dualen Variablen definieren wir das zweite Optimierungsproblem, das wir wiederum an CPLEX übergeben. 5) Durch die CPLEX-Lösung haben wir ein verbesserndes Schnittmuster. Wir fügen dieses Schnittmuster dem ursprünglichen Optimierungsproblem hinzu. Algorithmus 6) Die Schritte 2) bis 5) werden solange wiederholt, bis kein verbesserndes Schnittmuster mehr gefunden wird. Das ist der Fall, wenn der Zielfunktionswert des zweiten Optimierungsproblems nicht mehr negativ ist. 7) Die letzte Lösung des Originalproblems ist optimal. Sie wird als Lösung des Cutting Stock Problems ausgegeben. Der Zielfunktionswert des Originalproblems gibt an wie viele Stücke vom Rohmaterial verbraucht wurden, um die benötigten Menge der Teilstücke herzustellen.