Forum: PC-Programmierung Zuschnittoptimierung Heuristik oder Permutation


von Alexander (alecxs)


Lesenswert?

Ich habe ein mathematisches Problem und weiß nicht wie ich das 
programmtechnisch umsetzen soll.

Ich habe Holz im Baumarkt, Fasebrett Fichte gehobelt 27,5 x 146 mm (DB 
136 mm) in Längen: 450, 510, 540 cm. Verkauf nur im 4er Pack. Ich möchte 
den Zuschnitt optimieren, längstes Brett 16 x 2,8 m kürzestes Brett 16 x 
1 m, dazwischen noch 10 x 1,8 m u.a.

Im Moment komme ich auf 5 Packs in verschiedenen Längen. Der Abfall 
beträgt ca. 13 % macht ungefähr 50 €.

Wie würde man das programmatisch angehen? Erstmal längsten und kürzesten 
Zuschnitt gegeneinander laufen lassen, und dann gegen die Baumarktlängen 
iterieren, und dann auf ganze Packs aufrunden? Es sind ca. 50 x Bretter 
zu sägen. Mit Permutation wird das Programm wohl ewig laufen.

Andere Ideen?

: Bearbeitet durch User
von Micha E. (Firma: privat) (bmsr-techniker)


Lesenswert?

Hallo,

ich hatte letztens auch ein ähnliches Problem gehabt.
Gefunden habe ich https://www.cutlistoptimizer.com/ .
Funktioniert einwandfrei. Probier es aus.

Gruß Micha

von Udo S. (urschmitt)


Lesenswert?

ALles mathematisch optimiert, aber leider haben dann 3 oder 4 Bretter an 
ungünstigen Stellen große Äste oder sind längs ein Stück gerissen.

von Alexander (alecxs)


Angehängte Dateien:

Lesenswert?

Micha E. schrieb:
> Gefunden habe ich https://www.cutlistoptimizer.com

Cool, geile Sache! Ich bin mit programmieren nicht weit gekommen, aber 
das hat sich damit erledigt. Hat 5,5 m Abfall gespart, immerhin 20 €

Ich denke ich werde das mit in den Baumarkt nehmen, da sollen die dort 
ihre Restbestände mit eintragen.

von Thomas F. (igel)


Lesenswert?

Alexander schrieb:
> Hat 5,5 m Abfall gespart, immerhin 20 €
>
> Ich denke ich werde das mit in den Baumarkt nehmen, da sollen die dort
> ihre Restbestände mit eintragen.

Wenn man miserable Qualität zu überhöhten Preisen haben will dann kauft 
man Holz im Baumarkt.

Gute Qualität zu günstigerem Preis bekommt man beim lokalen Sägewerk.
Die Einsparung ist bestimmt deutlich höher als 20€.

von .● Des|ntegrator ●. (Firma: FULL PALATINSK) (desinfector) Benutzerseite


Lesenswert?

Thomas F. schrieb:
> Gute Qualität zu günstigerem Preis bekommt man beim lokalen Sägewerk.
> Die Einsparung ist bestimmt deutlich höher als 20€.

dann müsste allerdings auch ein Sägewerk in der Nähe sein.

von Alexander (alecxs)


Lesenswert?

Hier ging es ja aber nicht um Holzpreise, sondern wie man sowas 
programmieren kann.

von Rolf (rolf22)


Lesenswert?

Alexander schrieb:
> Mit Permutation wird das Programm wohl ewig laufen.

Ja, algorithmisch ist das gar nicht so simpel.
Der Fachbegriff ist "Lineare Optimierung", ein Thema für Doktorarbeiten.

https://www.mansci.ovgu.de/mansci_media/publikationen/2008/FestschriftGehring.pdf

von Alexander (alecxs)


Lesenswert?

Hab es mal überflogen. Sportliche Laufzeiten. Meine Hoffnung war dass es 
sowas schon fertig gibt, so wie es verschiedene Sortieralgorithmen schon 
fertig gibt (Bubblesort usw.) Dann muss man das Rad nicht neu erfinden.

Das Webtool aus Post #2 läuft auch fast 2 min. Findet aber nicht immer 
alles, manches kann man anschließend noch optimieren. Das zeigt mir dass 
wohl nicht alle möglichen Kombinationen durchprobiert werden, das 
funktioniert eher nach dem Prinzip was zuerst kommt malt zuerst.

von Rbx (rcx)


Lesenswert?

Alexander schrieb:
> Meine Hoffnung war dass es
> sowas schon fertig gibt, so wie es verschiedene Sortieralgorithmen schon
> fertig gibt

Lineare Regression kann man wohl schon in aktuellen Taschenrechnern 
hinbekommen. Abgesehen davon gibt es dazu bestimmt irgendwo auch was in 
BASIC :)

von Andras H. (andras_h)


Lesenswert?

Aspire Vectric kann so etwas. Vectoren zeichnen. Größe angeben und es 
gibt da einen Optimierer. Nesting heißt er. Aber es gibt da vermutlich 
andere Vector basierte Programme die so etwas machen können. Prinzipiell 
ist das ein bekanntes Problem. Wurde vermutlich schon 100 fach gelöst. 
Besser oder schlechter.

Allerdings ist die Frage, wie gut der Algorithmus ist. Denn darauf kommt 
es an. Man hat ja nicht ewig Zeit, soll ja in absehbarer Zeit eine 
Ergebnis liefern. Das heißt ja auch, die Algorithmen werden nicht alle 
mögliche Varianten durchprobieren. Dafür gebe es keine Zeit. Hast ja 
auch schon geschrieben. Die Ergebnis wird dann halt etwas was, was 
relativ gut optimiert ist, aber nicht garantiert das beste. Man muss da 
irgendwelche Regeln setzten, uns sagen ich Probiere nicht alles durch, 
sondern versuche nur eine kleine Schnittmenge. Zum Beispiel Vectoren 
sortieren nach grösse und dann immer 1 Stück rein schieben und schauen 
dass der gut sitzt. Dann nächste. Man kann auch sagen, dass man die 
Schritte begrenzt wie lange man versucht zu optimieren.

Man kann irgendwie verstehen dass man 0.0001% mehr optimieren möchte, 
denn 1 Cent pro 1 Million Stücke sind dann doch viel Geld. Aber ich 
persönlich finde es einfach übertrieben. Man muss leider akzeptieren, 
dass es immer Abfall geben wird. Mit optimieren kommt man eventuell 
nicht mehr weiter, es muss da eher ein Technologiewechsel kommen. Zum 
Beispiel, anstatt Holz schneiden, eher Holz in Form gießen (Gussholz :) 
). Ist ja nur reine Phantasie. Realistischer ist , du versucht aus den 
Abfall wieder etwas zu machen, da entsteht wieder Abfall. Am ende hast 
du Holz zum heizen.

von Klaus P. (kpi6288)


Lesenswert?

Alexander schrieb:
> Meine Hoffnung war dass es
> sowas schon fertig gibt, so wie es verschiedene Sortieralgorithmen schon
> fertig gibt (Bubblesort usw.) Dann muss man das Rad nicht neu erfinden.

Meine erste Anlaufstelle wären die Google OR-Tools. Darin gibt es 
verschiedene Solver. Ob etwas für diesen Anwendungfall enthalten ist, 
weiß ich aber nicht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.