Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Aufteilungs und Gruppierungsproblem
#11
Hallo Gast...

Dominics Beispieldaten sind in der letzten "Aufteilung..." Datei.
Es sollen aus Rohren/Stangen in zwei verschiedenen Längen je 48 Stücke in 7 Längen (= 336 Stücke geschnitten werden).

In der Datei "Optimaler Zuschnitt" habe ich nur eine Berechnung (recursiv), die für ich einmal für eine andere Anfrage erstellt habe, auf Dominics Daten angepasst. 
In der Ausgabe sind in den ersten 3 Spalten die Stangen mit ursprünglicher Länge, Restlänge und Preis ausgewiese, in den nächsten 2 Spalten die Länge der Stücke und die Nummer der Stange, aus der dieses Stück geschnitten wurde.
Optimiert wurde das Minimum der Preise der angeschnittenen Stangen.

Da dieses Programm alle Variationen der Stücke berücksichtigt (mit meines Erachtens geschickter Kürzung), ist es für 336 Stücke (=336!/(48!*48!*48!*48!*48!*48!*48!) Variationen nicht geeignet.)

In dem Beispiel habe ich die optimale Aufteilung
einmal für 28 Stücke (= 28!/(4!*4!*4!*4!*4!*4!*4!) = 6,6E+19 Variationen) in 10 Sekunden und
einmal für 42 Stücke (= 42!/(6!*6!*6!*6!*6!*6!*6!) = 1,4E+31 Variationen) in 16 Minuten berechnet.



Die Anzahl der möglichen Variationen für 336 Stücke kann mein Excel gar nicht berechnen.  Bei 168 Stücken müsten 7,1E+135 Variationen berechnet werden. 
Das ist mehr als die Anzahl der Atome im Universum. Aber vielleicht hast du ja einen Ansatz, der nicht soviel Berechnungen benötigt. (Siehe Fenneks Lösung in der Verteilung der Spieler in einem Tournier.)
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#12
Hallo Ego

als erstes bedanke ich mich für deine Mitteilung zu dem Programm, was mir von der Sprache her zu hoch ist, wo ich nicht durchblicke. Aber ich werde mir die Sache nach deiner Beschreibung in Ruhe ansehen.  Ernüchternd ist dann die Zeit, wenn alle Kombinationen durchgerechnet werden, wenn man sieht wie Unendlich das werden kann. Danke für den Hinweis.

Von der Mathematik fehlen mir sicher die Kenntnisse solche Aufgaben zu lösen, bin ein einfacher Elektroniker mit Volksschulbildung  Aber ich sehe solche Aufgaben gerne als Herausforderung an es wenigstens mal zu versuchen sie mit einfacher Denklogik zu lösen. Die hat aber ganz klar ihre Grenzen.

Ich bin ein alter Mann, nicht mehr berufstaetig, und es mache mir Spass über solche Aufgebn nachzudenken. Gelingt mir eine Lösung freue ich mich sehr, ansonsten habe ich es wenigstens mal versucht. Ohne Garantie das mir eine Lösung einfaellt. Das schöne aöm Fporum ist ja, das unsere Arbeit freiwillig ist, uns kein Chef in Nacken sitzt, der undedingt ein Ergebnis haben will!  Dann kann man locker arbeiten, und wenns nicht klappt, ist es auch nicht schlimm ...

mfg  Gast 123
Antworten Top
#13
Hallo. erstmal entschuldigung das meine Antworten solange dauern. Mir hats den PC zerschossen..

(22.01.2017, 01:35)Gast 123 schrieb: Frage:  gibt es immer zwei Rohre die zusammen die gesamt Laenge erreichen oder können es auch mehr sein?  Ist die Stückzahl auch immer gleich oder können sie verschieden sein? Ein Makro ist in Arbeit, aber ich weiss noch nicht wie gross der gesamte Berechnungs Umfang ist

Es müssen nicht immer zwei Rohre ein ganzes ergeben. Es kann sein das auch z.B. fünf Rohre ein ganzes ergeben. Es könnte aber auch sein das man eben nur eins rausbekommt und es bleiben 1,5m über. Die Stückzahl ist auch immer verschieden. Das ist ja leider das Problem. Ausgangslänge, Stücklänge, Anzahl der Positionen und Länge der einzelnen sind komplett variabel. Damit steh ich vor einer Monsteraufgabe  :92:
Antworten Top
#14
Hallo

Zitat:Damit steh ich vor einer Monsteraufgabe
kann ich gut verstehen, sitze zur Zeit aber noch an einem anderen kniffligen Thread. Wird noch 1-2 Tage dauern bis ich an diese Aufgabe gehen kann. 
Eine Garantie das ich eine Lösung finde kann ich nicht geben. Versuch macht Klug!!

Melde mich wieder wenn ich eine Lösung habe. Kann aber ein paarTage dauern!  bis dahin herzliche Grüsse, abwarten, Tee trinken ... 

mfg  Gast 123
Antworten Top
#15
Hallo,

anbei eine Beispieltabelle mit dem ersten Entwurf einer Lösung.  Ein vollautomatisches Programm wird es m.E. nicht geben, denn irgendwann gibt es mehrere Kombimöglichkeiten, wo der Mensch sich entscheiden muss welche Lösung man bevorzugt.  Ich bin in meinem Beispiel beim Versuch einer Automatischen Auswertung an so eine Grenze gestossen. In der Auswertung hellblau markiert.  Da muss ein Makro aufgeben, da muss der Mensch entscheiden.

Bei der blauen Markierung sieht man zwei gültige Lösungen, aber für eine muss man sich entscheiden. Solange kann ich dann auch keine Daten in die Produktionsliste und in den Kunden Auftrag schreiben.  Hierzu habe ich auch die naechste Frage:  wie sollen die Daten im Kundenauftrag und für die Produktion aussehen??  Ich habe mich darauf konzentriert herauszufinden wieviele Rohre man bei kleinster Restmenge braucht?  Das war die Basis meiner Überlegung.

Mein Makro erfordert das die Rohrlaengen von Links nach rechts absteigend sortiert sind. Dann kann man am besten logisch auswerten. Sonst werden die erorderlichen For Next Schleifen unendlich. Deshalb benutze ich ja auch seperate Blaetter zum Berechnen und Auswerten. In  der Auswertung sortiere ich alle Daten nach dem kleinsten Restwert!!  Am besten die Makros selbst mal durchlaufen lassen, dann erkennt man die Struktur nach der ich zur Zeit berechne.  Ob man das noch optimieren kann muss ich mal sehen.

Ein Gedanke zu unterschiedlichen Stückzahlen, der zur Zeit -noch ungeprüft ist-, ist die Überlegung die Kunden Stückzahl bei unterschiedlichen Werten in mehrere Teilgruppen aufzuteilen, indem ich bei jedem Rohr die verbleibende Reststückzahl erfasse, und in einer separaten Zeile notiere. Wenn dort nicht alles Null ist muss ich weiter berechnen. Dieses Nachfolgeberechnen ist noch in Arbeit. Soweit bin ich noch nicht.

Mir geht es darum den Erstentwurf vorzustellen, mit der bitte das Makro in der Beispieldatei mit alten Kundendaten, wo Ergebnisse vorliegen, mal zu testen wie gut die erste Auswertung ist?? Steckt ja alles noch in den "Kinderschuhen".  Mir waere es lieb selbst mal 5-10 alte Beispieldaten mit unerschiedlichen Stückzahlen zu bekommen, damit man sieht wo mein Makor an seine Grenzen stösst. Bei den Ergebnissen reicht mir eine kurze Tabelle für welchen Auftrag wieviele Rohre je Laenge notwendig waren. Das einzelne Rohr interessiert zum Berechnen nicht!

Frage:  Was ist mit den Restlaengen?  Kurze Stücke wirft man in den Schrott. Was ist mit Laengen über 1-2 Metern?? Habt ihr da kein Lager für Reststangen, wo man noch Rohre draus schneiden kann. Zu überlegen ist bei dem konkreten Beispiel ob ich bei 6609 mm Zuschnitt ein Rohr von 8900mm nehmen soll, oder ein anderer Kunde Rohre benötigt, wo es sich rendiert lieber 11000mm zu nehmen, und den Rest für einen zweiten Kundenauftrag zu verwenden.  Wenn ich Lagerdaten von Restbestaenden haette könnte man das evtl. im Programm mit berücksichtigen. ıst aber noch Zukunfsmusik, wo ich auch nicht weiss ob das erwünscht ist???  Solche Gednaken kommen mir, weil ich selbst mal eine Elektronik Produktion geleitet habe.

Bis alles so laeuft wie es machbar ist wird sicher noch eine Weile dauern. Schauen wir mal wie es klappt ....

mfg  Gast 123


Angehängte Dateien
.xlsm   Aufteilung 2 Forum.XLSM (Größe: 233,59 KB / Downloads: 5)
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • HelloweenKeeper
Antworten Top
#16
Hallo Gast...,


a) zum Ansatz:
Dein Ansatz die möglichen Verteilungen der Stücke  auf einzelne Stangen zu ermitteln und anhand des kleinstes Restes die Verteilung durchzuführen ist gut.
Es liefert höchstwahrscheinlich nicht immer das optimale aber in vertretbaren Zeiten ein sehr gutes Ergebnis.

b) zu deinem Beispiel:
Wenn man sich in deinem Beispiel für eine Variante entscheidet erhält man Reststücke mit einer Gesamtlänge von über 220 Metern.
Eine Mögliche günstigere Verteilung kommt aber mit Reststücken mit einer Gesamtlänge von unter 50 Metern aus (siehe meine Datei).
Nach genauer Prüfung habe ich festgestellt, dass die von mir in diesem Beispiel ermittelten Zuschnittsvarianten in deiner Berechnung auch schon vorhanden sind. (In Blatt "Berechnen" Zeilen 14;15;19;28;31).
Die Funktion "Rest berechnen" wertet also nicht die richtigen Zeilen aus.

c)unterschiedliche Stückzahlen:
Bevor die die Funktion "Rest berechnen" überarbeitest, solltest du dir über die Konsequenzen bei unterschiedlichen Stückzahlen Gedanken machen. Wahrscheinlich ist es besser direkt eine Schleife um die Berechnung der möglichen Schnittkombinationen zu setzen.

While "noch nicht alle Zuschnitte realisiert"
   mögliche Verteilungen ermitteln
   Verteilung mit minimaler Restmenge so oft wie möglich realisieren.
Wend
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#17
Hallo,

@ Gast...
Ich hatte mich in meinen letzten Ausssagen vertan.
a) Diese Verteilung liefert  nicht immer ein sehr gutes Ergebnis. (Siehe das aktuelle Beispiel).
b) Deine Funktion "Rest berechnen" scheint mit deinen Verteilungsmöglichkeiten richtig zu arbeiten. Das bessere Ergebnis mit den benannten Verteilungszeilen wird nicht ausgegeben wenn man immer zuerst die Verteilungen mit der geringsten Restlänge zuerst aufnimmt.

@Helloween...
In der Anlage habe ich einmal Gast...s Idee für unterschiedliche Anzahl von Stücken und Rohren umgesetzt.
Dieses Vorgehen liefert zwar nicht eine optimale Verteilung, aber bestimmt häufiger eine bessere Verteilung als die bisherigen Aufteilungen mit Formeln. Ausserdem sind im Ergebnis die gleichartigen Zuschnitte schon wie von dir gewünscht zusammengefasst.


Angehängte Dateien
.xlsm   AufteilungNeu.xlsm (Größe: 623,72 KB / Downloads: 19)
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





[-] Folgende(r) 1 Nutzer sagt Danke an Ego für diesen Beitrag:
  • HelloweenKeeper
Antworten Top
#18
Wow. Schonmal vielen vielen Dank für eure Mühen. Das sieht schon super aus und die Berechnungszeit ist ja quasi zu vernachlässigen! Ich bin begeistert. Ich werde in nächster Zeit mal ein bisschen prüfen wie sich das im Arbeitseinsatz verhält. Von den fiktiven Tests zuhause sieht es schonmal vielversprechend aus. Werde auch mal die "händische" Lösung, mit den Werten aus meinem Beispiel die Woche mal mit der neuen Liste vergleichen.


Zitat:Frage:  Was ist mit den Restlaengen?  Kurze Stücke wirft man in den Schrott. Was ist mit Laengen über 1-2 Metern?? Habt ihr da kein Lager für Reststangen, wo man noch Rohre draus schneiden kann. Zu überlegen ist bei dem konkreten Beispiel ob ich bei 6609 mm Zuschnitt ein Rohr von 8900mm nehmen soll, oder ein anderer Kunde Rohre benötigt, wo es sich rendiert lieber 11000mm zu nehmen, und den Rest für einen zweiten Kundenauftrag zu verwenden.  Wenn ich Lagerdaten von Restbestaenden haette könnte man das evtl. im Programm mit berücksichtigen. ıst aber noch Zukunfsmusik, wo ich auch nicht weiss ob das erwünscht ist???  Solche Gednaken kommen mir, weil ich selbst mal eine Elektronik Produktion geleitet habe.

Wieviel Material vorhanden ist bzw. was genommen wird, wird vorab entschieden. In diesem Fall war es Lohnarbeit und alles was übrig bleibt geht zurück zum Kunden. Es kann sein das wir aus Vorratsmaterial fertigen. In der Regel werden allerdings nur Handelslängen auf Lager gelegt. Allgemeine Handelslänge sind 6m. Bei Wiederholaufträgen auch mitunter kürzere Stücke. Alles in allem wäre das wohl eher unrelevant für meine Zwecke.
Antworten Top
#19
Hallo Dominic,

ich hab beim kopieren der Formeln ins Blatt "Formel 3" zwei Fehler gemacht:

a) Bereich G11:U11
richtig: $F$5 statt falsch: $B$5
hab ja 4 Spalten eingefügt.

2) Zelle W10
richtig: =SUMMENPRODUKT(E13:E100;W13:W100)
hatte zuerst nur für kleiner Beispiele getestet.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#20
Hallo Helmut

habe mir deine Lösung angesehen, gute Arbeit, gefaellt mir. Da kann ich nicht mithalten!

mfg  Gast 123
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste