Hi,
vielleicht haben einige von euch schon mein ersten Thread gelesen der zur Ideensammlung meines Problemes diente.
Für alle die das nicht gemacht haben Hier noch mal der Link.
Wir sind zu der erkenntniss gekommen, dass der Algorhitmus wohl das Hauptproblem ist. Nun möchte ich ein wenig konkreter werden und anfangen einen Algorhitmus zu entwickeln der mein Problem löst. Dazu hab ich mich mal mit dem Rucksack problem beschäftigt. Nun, die Texte zum Rucksackproblem die man in Google findet behandeln das Problem meistens nur mit ein beziehung des Volumens oder des Gewichts. Bei meinem Problem spielt die Form aber noch eine große Rolle. Ich fang einfach mal mit dem Pseudecode den ich mir so gedacht habe an und hoffe ihr ergänzt was euch einfällt.
Problemdefinition: Wie verteile mach ich aus den Platten (Quader) die Zielplatten (Quader mit einer Schrägen) mit mäglichst wenig Verschnitt.
Mäglicher Lösungsweg: Ich denke das sinnvollste wird hier Iteration sein also einfach alle Objektekonstalitionen ausprobieren und die mit dem wenigsten Verschnitt ausgeben.
Pseudocode:
1. Als erstes sollten die Werte auf ihr Zulässigkeit geprüft werden. Also ob es überhaupt möglich ist aus den Platten die Zuschnitte zu erstellen
2. Als ersten Optimierungsschritt wird die Fläche optimiert normalerweiße ist die Fläche des Zuschnittes gleich der Fläche der Orginalplatte. Falls nicht wird die Platte zugeschnitten und ein Schnittplan ausgegeben
3.Nun wird die Dicke optimiert:
3.1 Als erstes sollte man ausprobieren ob eine Platte durch bespielsweiße 2 oder 4 oder mehr beschnitte Komplett ausgenutzt werden kann.
3.2 Dannach sollten die restlichen Platten aufgeteilt werden. Das sollte wie folgt ablaufen
3.3 Er versucht in welche Platten die erste Zielplatte passt
3.3.1 Dann versucht er die erste Platte mit der zweiten in die erste passende ganze Platte
3.3.2 wenns passt versucht er die erste, die zweite und die dritte
3.3.3 wenns passt noch die vierte dazu usw. bis der maximal wert erreicht ist und speicher den verschnitt
3.3.4 dannach macht er den gleichen Vorgang nochmal mit der nächsten Platte die gültig für den ersten Verschnitt war
...
3.4 Sobald er die ganzen Werte überprüft hat versucht er das gleiche mit der zweiten usw. bis alle Platten untergebracht sind
3.5 Am Ende werden die Werte verglichen und die besten Ergebnisse heraus gesucht.
3.6 Dann werden die Werte und die entsprechenden Schnittpläne ausgegeben
So, ich hoffe mal ein paar von euch interessieren sich für dieses Projekt und helfen mir ein bisschen, den Ihr wisst ja ein guter Pseudecode ist die Grundlage für ein guten Algorhitmus
und ein guter Algorhitmus ist die Grundlage für ein gutes Programm :wink:
Ich bin dankbar für jeden Ratschlag, verbesserungsvorschlag, Erfahrung und Idee. Vielleicht findet einer von euch ja auch noch ein Text zum Rucksackproblem der die Form der objekte noch berücksichtigt.
MfG Scripper
vielleicht haben einige von euch schon mein ersten Thread gelesen der zur Ideensammlung meines Problemes diente.
Für alle die das nicht gemacht haben Hier noch mal der Link.
Wir sind zu der erkenntniss gekommen, dass der Algorhitmus wohl das Hauptproblem ist. Nun möchte ich ein wenig konkreter werden und anfangen einen Algorhitmus zu entwickeln der mein Problem löst. Dazu hab ich mich mal mit dem Rucksack problem beschäftigt. Nun, die Texte zum Rucksackproblem die man in Google findet behandeln das Problem meistens nur mit ein beziehung des Volumens oder des Gewichts. Bei meinem Problem spielt die Form aber noch eine große Rolle. Ich fang einfach mal mit dem Pseudecode den ich mir so gedacht habe an und hoffe ihr ergänzt was euch einfällt.
Problemdefinition: Wie verteile mach ich aus den Platten (Quader) die Zielplatten (Quader mit einer Schrägen) mit mäglichst wenig Verschnitt.
Mäglicher Lösungsweg: Ich denke das sinnvollste wird hier Iteration sein also einfach alle Objektekonstalitionen ausprobieren und die mit dem wenigsten Verschnitt ausgeben.
Pseudocode:
1. Als erstes sollten die Werte auf ihr Zulässigkeit geprüft werden. Also ob es überhaupt möglich ist aus den Platten die Zuschnitte zu erstellen
2. Als ersten Optimierungsschritt wird die Fläche optimiert normalerweiße ist die Fläche des Zuschnittes gleich der Fläche der Orginalplatte. Falls nicht wird die Platte zugeschnitten und ein Schnittplan ausgegeben
3.Nun wird die Dicke optimiert:
3.1 Als erstes sollte man ausprobieren ob eine Platte durch bespielsweiße 2 oder 4 oder mehr beschnitte Komplett ausgenutzt werden kann.
3.2 Dannach sollten die restlichen Platten aufgeteilt werden. Das sollte wie folgt ablaufen
3.3 Er versucht in welche Platten die erste Zielplatte passt
3.3.1 Dann versucht er die erste Platte mit der zweiten in die erste passende ganze Platte
3.3.2 wenns passt versucht er die erste, die zweite und die dritte
3.3.3 wenns passt noch die vierte dazu usw. bis der maximal wert erreicht ist und speicher den verschnitt
3.3.4 dannach macht er den gleichen Vorgang nochmal mit der nächsten Platte die gültig für den ersten Verschnitt war
...
3.4 Sobald er die ganzen Werte überprüft hat versucht er das gleiche mit der zweiten usw. bis alle Platten untergebracht sind
3.5 Am Ende werden die Werte verglichen und die besten Ergebnisse heraus gesucht.
3.6 Dann werden die Werte und die entsprechenden Schnittpläne ausgegeben
So, ich hoffe mal ein paar von euch interessieren sich für dieses Projekt und helfen mir ein bisschen, den Ihr wisst ja ein guter Pseudecode ist die Grundlage für ein guten Algorhitmus
und ein guter Algorhitmus ist die Grundlage für ein gutes Programm :wink:
Ich bin dankbar für jeden Ratschlag, verbesserungsvorschlag, Erfahrung und Idee. Vielleicht findet einer von euch ja auch noch ein Text zum Rucksackproblem der die Form der objekte noch berücksichtigt.
MfG Scripper