Autor Beitrag
CarpeDiem
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 128

WIN XP
Borland C++ 2002, CodeGear C++ 2007, C# (VS 2008)
BeitragVerfasst: Di 11.03.08 11:38 
Hallo,

ich suche eine Möglichkeit um das Zuschnittproblem zu löschen.
Habe unter de.wikipedia.org/wiki/Zuschnittproblem
schon was gefunden, aber bin in Mathe nicht so fit, um das zu
kapieren.


Das Programm soll wie folgt funktionieren:

- Ich habe z. B. 10 Stangen mit je einer Länge von 9990mm
- Ich will diese Stangen so zerteilen, daß es möglichs wenig Verschnitt gibt
- Die Blattstärke der Säge muss berücksichtigt werden
- Ich will verschiedene Längen(mit Anzahl) vorgeben
z. B. 5x600mm, 12x720mm, 3x340mm, .... usw.


Vielleicht kennt jemand von Euch das Problem schon und hat
dafür auch schon einen Quellcode geschrieben.

Vielen Dank gleich mal.


Stefan
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 11.03.08 13:04 
Laut dem Wikipedia-Artikel ist das Problem NP-schwer (ich würde dann sogar tippen, dass es NP-vollständig ist). Grob gesagt heißt das heißt für einen Algorithmus, der das Problem löst: Einfach alles durchprobieren.

Pack deine Stangen, die du raushaben willst, in eine Liste und fange an, die Stangen aus den Rohlingen rauszuschneiden. Merke dir dann den Verschnitt.

Dann nimmst du eine Permutation der Liste und machst das gleiche nochmal und guckst, ob du damit weniger Verschnitt hast. Das wiederholst du, bis du alle Permutationen deiner Liste durch hast.

_________________
We are, we were and will not be.
CarpeDiem Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 128

WIN XP
Borland C++ 2002, CodeGear C++ 2007, C# (VS 2008)
BeitragVerfasst: Di 11.03.08 13:30 
Ok, danke.

Dann werd ich es wohl so machen müssen.
uko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 220
Erhaltene Danke: 1

Win XP, VISTA, WIndows 7
Delphi 2007/2010 Prof
BeitragVerfasst: Di 11.03.08 16:17 
Das hört sich ein bischen wie Bin-Packing Problem an. Schau mal nach Bin-Packing, First-Fit und genetischen Algorithmen

Grüße,
Uli
Reinhard Kern
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 591
Erhaltene Danke: 14



BeitragVerfasst: Di 11.03.08 16:24 
user profile iconstefan.gayr hat folgendes geschrieben:
Ok, danke.

Dann werd ich es wohl so machen müssen.


Nicht unbedingt: ich empfehle, eine Stange zu nehmen und davon soviele Abschnitte wie möglich (und natürlich wie gebraucht) mit dem längsten Mass abzuschneiden, dann soviele wie möglich mit dem 2längsten Mass usw. Das ist schreiend einfach und in der Praxis relativ nah am Optimum - umso näher, je mehr zuzuschneiden ist und je kleiner die Stücke sind im Vergleich zum Rohmaterial.

Falls es dich theoretisch interessiert, kannst du ja mal die Ergebnisse dieser und der Brute Force Methode vergleichen - ist natürlich in jedem konkreten Fall anders.

Gruss Reinhard
CarpeDiem Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 128

WIN XP
Borland C++ 2002, CodeGear C++ 2007, C# (VS 2008)
BeitragVerfasst: Di 11.03.08 19:02 
Danke uko und Reinhard,

sieht so aus, als ob die FirstFit-Methode am Besten wäre.
Wenn ich es ausprobiert habe, dann stelle ich den Quellcode
ins Forum.