Step 7 Varianten/Kombinationen Berechnung

Rauchegger

Level-2
Beiträge
377
Reaktionspunkte
22
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

ich bin auf der suche nach einer Berechnungsart (Auswertung) von 5 Produkten (Variabel) mit allen Varianten/Kombintionen für fünf,- vier,- drei,- zwei,- und ein Endprodukt!
z.b.

a:= Produkt 1
b:= Produkt 2
c:= Produkt 3
d:= Produkt 4
e:= Produkt 5

*Ergebnis 1 -> 5 Endprodukte
a+a+a+a+a
*Ergebnis 2
a+a+a+a+b
*Ergebnis 3
a+a+a+a+c
*Ergebnis 4
a+a+a+a+d
*Ergebnis 5
a+a+a+a+e
*Ergebnis 6
a+a+a+b+b
*Ergebnis 7
a+a+a+b+c
usw............

*Ergebnis 1 -> 4 Endprodukte
a+a+a+a
*Ergebnis 2
a+a+a+b
*Ergebnis 3
a+a+a+c
*Ergebnis 4
a+a+a+d
*Ergebnis 5
a+a+a+e
*Ergebnis 6
a+a+b+b
*Ergebnis 7
a+a+b+c
usw............

*Ergebnis 1 -> 3 Endprodukte
a+a+a
*Ergebnis 2
a+a+b
*Ergebnis 3
a+a+c
*Ergebnis 4
a+a+d
*Ergebnis 5
a+a+e
*Ergebnis 6
a+b+b
*Ergebnis 7
a+b+c
usw....... usw.... usw....

Ich muß das Optimale von einem Rohprodukt mit der Breite xxx das Beste Ergebnis mit dem geringsten Abfall raussuchen!
Ich habe es jetzt so wie oben ausprogrammiert aber es müsste doch eleganter mit einer Schleife (SCL) gmöglich sein oder?

Hat da jemand einen Ansatz dazu?

Danke im vorraus!
 
Zuletzt bearbeitet:
Ich muss zugeben ich habe die Problemstellung nicht verstanden. Kannst du bitte nochmal genauer erklären was das Ziel und der Ausgangspunkt sind ? Und vlt. den schon bestehenden Code posten ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich muss zugeben ich habe die Problemstellung nicht verstanden. Kannst du bitte nochmal genauer erklären was das Ziel und der Ausgangspunkt sind ? Und vlt. den schon bestehenden Code posten ?

zur Aufgabenbeschreibung:

z.b. die Produktrohbreite (variiert zwischen 45 und 600mm) und soll auf max. fünf Fertigprodukte aufgespalten werden! Die Fertigprodukte sollen die vordefinierten Breiten 45/75/125/180/205mm haben

jetzt gilt es mit diesen 5 Breiten das Optimum vom Rohprodukt rauszuholen

zb. Rohprodukt = 122mm = ergibt 2 Produkte 1x75 und 1x 45 2mm Rest
Rohprodukt = 249mm = ergibt 3 Produkte 1x125 und 1x 75 1x45 4mm Rest
Rohprodukt = 591mm = ergibt 3 Produkte 2x205 und 1x180 1mm Rest
Rohprodukt = 345mm = ergibt 5 Produkte 4x75 und 1x45 0mm Rest
usw.



bei 5 vorgaben auf 5 Fertigprodukte ergeben sich 120 Möglichkeiten -> bei 5 auf 4 -> 120 Möglichkeiten; bei 5 auf 3 -> 60 Möglichkeiten; bei 5 auf 2 -> 20 Möglichkeiten und 5 auf 1 :confused:;

soweit alles ok.. sind zusammen ca. 350 Möglichkeiten!

ich habe jetzt in SCL jede Möglichkeit ausgeschrieben so wie oben beschrieben (Var1:= a+a+a+a+a; Var2:= a+a+a+a+b) usw. Danach vergleiche Ich die Ergebnisse mit dem Rohprodukt in einer Schleife... funktioniert alles wunderbar!

Nur..wenn Ich jetzt die Vorgaben von 5 auf 6 erhöhe, erhöht sich die Anzahl der Möglichkeiten schon auf "1336"...

meine Frage dazu wäre jetzt:
Hat jemand einen Ansatz dafür wie alle Möglichkeiten per Schleife ausgerechnet werden können ......
 
Zuletzt bearbeitet:
Das dürfte das sog. Rucksackproblem sein:

https://de.wikipedia.org/wiki/Rucksackproblem

Um das Problem zu lösen gibt es keine Abkürzung, d.h. mit steigender Anzahl an Elementen wächst der Aufwand mit polynomialer Zeit.

Ich hatte so eine Aufgabe mal bei einem Lastabwurf bei Netzausfall, bei dem ca. 50 Verbraucher bei Netzausfall abgeschaltet werden müssen, um dann auf einen bestimmten Netzbezug zu kommen. Hinzu kam dann noch eine einstellbare Priorität pro Verbraucher, und das ganze musste jeden Zyklus berechnet werden. Ich habe damals die Lösungsvarianten einschränken müssen. D.h. es wird zwar eine Lösung gefunden, aber nicht unbedingt die optimale.
 
zur Aufgabenbeschreibung:

z.b. die Produktrohbreite (variiert zwischen 45 und 600mm) und soll auf max. fünf Fertigprodukte aufgespalten werden! Die Fertigprodukte sollen die vordefinierten Breiten 45/75/125/180/205mm haben

Die vordefinierten Breiten sind aber fest oder können die auch variieren bei verschiedenen chargen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also ich habe mir da mal gedanken gemacht. Habe auch was kleines in SCL geschrieben (TIA).
Mir machen deine Kombinationsmöglichkeiten aber etwas zu schaffen. ich komme da auf eine andere Anzahl an Kombinationen. Habe ich da was falsch verstanden oder evtl habe ich ja auch einen Denkfehler.

Du schreibst:
bei 5 vorgaben auf 5 Fertigprodukte ergeben sich 120 Möglichkeiten -> bei 5 auf 4 -> 120 Möglichkeiten; bei 5 auf 3 -> 60 Möglichkeiten; bei 5 auf 2 -> 20 Möglichkeiten und 5 auf 1 :confused:;

Bei 5 auf 2 bekomme ich z.B. 15 raus, nicht 20.

a
a
a
b
a
c
a
d
a
e
b
b
b
c
b
d
b
e
c
c
c
d
c
e
d
d
d
e
e
e


so verhält es sich bei den anderen Kombinationen auch. Habe das nur als Beispiel genommen, da es nicht zu lange ist.

5 auf 3 = 30
5 auf 4 = 70
5 auf 5 = 126

Bitte korrigiere mich erst einmal, fals ich falsch liege.
Wenn das doch stimmen sollte, hätte ich einen FC für dich.


Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was für ein Programm habt ihr da denn per PN ausgebrütet wenn man fragen darf? Weiterhin alle Möglichkeiten, wenn auch eingeschränkt, durchprobieren?

Ich habe mich da mal etwas weiter eingelesen, da gibt es noch weitere Lösungsverfahren welche ohne Durchprobieren zu einer Lösung kommen (z.B. Branch and Bound). Zumindest der Solver in Open Office Calc mit dem ich gerade mal etwas getestet habe arbeitet (zumindest den möglichen Einstellungen nach) nach diesem Verfahren.
Das Thema ist ja eh gerade aktuell, da es vermutlich einen Beweis für P != NP zu geben scheint. D.h. es gibt keine Abkürzung um zur optimalen Lösung zu gelangen.
 
ich bin auf der suche nach einer Berechnungsart (Auswertung) von 5 Produkten (Variabel) mit allen Varianten/Kombintionen für fünf,- vier,- drei,- zwei,- und ein Endprodukt!
usw....... usw.... usw....
Ich muß das Optimale von einem Rohprodukt mit der Breite xxx das Beste Ergebnis mit dem geringsten Abfall raussuchen!
Ich habe es jetzt so wie oben ausprogrammiert aber es müsste doch eleganter mit einer Schleife (SCL) gmöglich sein oder?

Hat da jemand einen Ansatz dazu?
Ja, aber ganz anders. Habe für alle Fälle noch die Breite der "Sägeschnitte" hinzugefügt - kann man zu 0 setzen, wenn sie nicht gebraucht werden.
Desweiteren habe ich mich davon gelöst, dass das Rohmaterial immer 5 Stücke - egal in welcher Breite - ergeben muss.
Und ich habe je TeileArt (Breite) eine Eingabe der SollStückzahl vorgesehen, so dass nicht von einer TeileArt Tausende heraus kommen und von einer anderen nur Unikate.
Darum bin ich mir jetzt ganz unsicher, ob ich Deine Aufgabenstellung nicht grob fahrlässig fehlinterpretiert habe.

Zerstückelung.jpg

Das ist leider nicht in SCL programmiert und kommt mit einer einzigen Schleife auch nicht aus.
Es ist in VBA mit Excel realisiert.
Die TeilErgebnisse sind in TextForm ausgegeben (z.B. "1x205 + 1x125 + 1x75 + 4x45" besagt, dass sich aus 1 Stck Rohmaterial 1 Stck à 205mm, ..., 4 Stck à 45mm ergeben.
Bin zu faul, die ganze Tabelle zu erklären - vielleicht blickst Du trotzdem durch?!
Mich würde auf jeden Fall interessieren, ob mein Ansatz Deinen Anforderungen gerecht wird.
Gruss, Heinileini
 
Also Excel und Open Office Calc bringen fertige Funktionen mit um solche Problemstellungen zu lösen. Bei Excel muss dazu das Solver Plugin nachinstalliert werden.
Nur so als Information, aber eine vorausberechnete Lösung bringt hier ja nicht weiter.
 
@Thomas_v2.1
Habe in Excel bisher nur mit "Zielwertsuche" gearbeitet, das war - glaube ich - noch im letzten JahrTausend.
Den Solver kenne ich nur dem Namen nach. aBär: ich habe mir am WE mal Excel inkl. VBA vorgeknöpft und mir etwas überlegt, das Jürgen vielleicht hilft - er will es sich näher ansehen.
Mir gefällt es schon ganz gut, zumal ich auch eine Anwendung dafür habe, aber ich schiesse damit sozusagen mit Spatzen auf Kanonen - egal - war eine ganz interessante Aufgabe.
Wenn ich die Zeit dazu finde, will ich das VBA-Listing noch mit Kommentaren versehen.
Gegenüber dem ScreenShot, den ich gestern Morgen hochgeladen hatte, ist der jetzige Stand auf max. 10 verschiedene TeileArten (Breiten) erweitert und ich habe eine Vereinfachung hinzugefügt, für den Fall, dass man bei allen (oder den meisten) "Anzahl Soll"-Eingaben denselben Wert eingeben möchte.
Ich warte noch mit Spannung auf Jürgens Reaktion, ob mein Ansatz mit seiner Anwendung "kompatibel" ist, oder, ob ich ihn gründlich missverstanden habe ;o)
Gruss, Heinileini
 
Zurück
Oben