Zusammenstellung errechnen

Ich weiß nicht, ob exel das richtige Programm dafür ist. Aber ist das einzige, das mir auf der Arbeit zur Verfügung steht.

Ich habe eine Kiste mit Endmassen. - Für nicht Metaller: Das sind super genaue Metallklötze, die auf 1/1000 mm genau geschliffen sind.
Für ein Maß, das ich brauche, muss ich mir die Endmaße zusammenstellen. Um z.B. auf 32,3mm zu kommen, nehme ich ein 20,2 + 10,0 + 2,1. Macht 32,3.
Für manche werte muss man ziemlich rechnen und probieren, weil man unmögliche Zusammenstellungen suchen muss.

FRAGE:
Wie schaffe ich es, in einer Tabelle alle zur Verfügung stehenden Endmaße einzugeben, so dass mir nach Eingabe eines Wertes, mir Vorschläge für eine Zusammenstellung errechnet werden. Am besten mehrere Vorschläge (könnten ja welche gerade nicht vorhanden sein) und in einer Reihenfolge, der am wenigsten zu nutzenden Teile.

Schönen Dank schon mal.
Gruß, Lopaca

Hi Lopaca!
Wenn du das Problem löst, hast du eins der ewigen Probleme der Mathematik gelöst.
Das, wovon du sprichst nennt der Mathematiker Partitionieren.
Es ist z.B. P(4)= 5 weil man 4 mit folgenden Summen beschreiben kann:

  1. 1+1+1+1
  2. 1+1+2
  3. 2+2
  4. 3+1
  5. 4

Die Anzahl der Partitionen ist noch relativ leicht berechnen. Schwierig wirds, wenn man auch noch die verschiedenen Kombinationen (sprich die Summanden jeder einzelnen Partition) wissen will.
Hinzu kommt noch, dass du keine Natürlichen zahlen verwendest und auch nur gewisse Zahlen als Summanden (nähmlich deine Endmaße) vorkommen sollen.

Als einzige Möglichkeit, auf die verschiedenen Summanden zu kommen sehe ich in der Verwendung eines Programms, welches per Brute-Force-Methode alle Möglichkeiten durchcheckt und die passenden ausgibt.

Als Anhang ein Artikel zu Partitionen (Wikipedia)
http://de.wikipedia.org/wiki/Partition_%28Mengenlehr…

Besten Gruß.Timo

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Doch eine Lösung
Hi nochmal!
Habe doch eine Lösung gefunden.
Du musst halt deine ganzen vorhandenen Endmaße in die Tabelle eintragen.
Du kannst dann je nach Situation bestimmte Maße als „nicht vorhanden“ definieren.
Die Tabelle berechnet dir dann, welche du verwenden musst.
Hast du von einem Maß mehrere Klötze, trag sie einfach doppelt (bzw. in der vorhandene Anzahl) in die Tabelle ein.
Die Tabelle kannste dir von meiner Homepage laden.
http://www.1-q.de/endmasse.xls

Gruß.Timo

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

WOW …

einfach nur genial. Hab recht schönen Dank.
Werde es die Woche mal mit den richtigen werten probieren.

Liebe Grüße, Lopaca

HI Timo,

nicht schlecht was du da gebaut hast! Funktioniert aber leider nicht 100%tig. Der Wert 12 könnte mit 3*3 erreicht werden!

Endmaße in µm vorhanden zu benutzen
1 x 1
1 2
1 2
2 2
2 2
3 x 2
3 x 2
3 x 2
10 x 2
gewünschter Wert 12 Maß kann mit vorhandenen Endmaßen nicht erreicht werden

Hi Timo
Danke für die STERNSTUNDE! Superschlauer und einfacher Algorithmus, der in abgewandelter Form für andere Probleme wegleitend ist.
Erich

Hallo lieber Lopaca!

Ich habe für Sie eine sehr einfache Lösung die wenigstens funktioniert und die in der Praktik angewendet wird.

Schreiben Sie in die Zelle A1 den gesuchten Endmaßwert, z.B. 82,462;
in B1: =SUMME(A2:A22);
in C1 eine Differenzformel: =A1-B1
Nun zum Ablauf:
Man sollte so wenig wie möglich Endmaßpaarungen zusammenstellen.
Man beginnt immer mit dem kleinsten Endmaß, welches die Tausendstel enthält: 1,002
Dann mit den Hundertstel: 1,06
Dann mit den Zehntel: 1,4
Und so weiter.

Das Summenfeld zeigt Ihnen die bisherige Zusammenstellung. Das Differenzfeld, was Ihnen noch fehlt oder einen Minuswert bei einer Überschreitung.
Die Zelle C1 sollte noch auf 3 Nachkommastellen formatiert werden

Liebe Grüße
Fablonow a.D.

Hi Fablonow,
ich sehe leider keine Arbeitsersparniss bei deinem Beispiel.
Ich kann das ganze genauso gut mit einem Taschenrechner machen.
Du subtrahierst ja einfach nur die zu benutzenden Maße vom Endmaß.
Ein Algorithmus, der den Anwender auf diese zu benutzenden Maße bringt, lieferst du nicht.
Funktioniert zwar, bringt aber nichts.
Also Bravo und nächstes Mal die Fragestellung beachten.
Gruß.Timo

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

HI Timo,

Hi Witten

nicht schlecht was du da gebaut hast! Funktioniert aber leider
nicht 100%tig. Der Wert 12 könnte mit 3*3 erreicht werden!

Stimmt, das Excel-Dokument tut folgendes.
Es geht vom größten zur Verfügung stehenden Maß aus nach oben durch bis zum kleinsten zur Verfügung stehendes Maß und prüft, ob dieses kleiner ist, als das Endmaß bzw. der noch verbleibende Rest des Endmaßes.

Wenn jetzt das Endmaß 16mm sein soll, und man die Maße 15,10,6 und 2mm zur Verfügung hat, nimmt die Logik den Wert 15, da kleiner als 16 und berechnet den Rest 1.
Danach sucht es weiter nach Maßen kleiner gleich 1. Findet aber keine.

Lösungsansatz:
Entweder sind die zur Verfügung stehenden Maße so bemessen, dass alle
„Untermaße“ zusammenaddiert kleiner sind als das zu Grunde gelegte Maß.
Gäbe es z.B. die binäre Reihe 1mm, 2mm , 4mm, 8mm, 16mm usw. wäre das Problem nicht existent, da die einzelnen Werte immer auf den unter ihnen liegenden Werten aufbauen.

Andere Lösung:
Mit den Verfügarkeit „spielen“.
Sollte einem bei einem Endmaß gesagt werden, es sei nicht verfügbar, so kann man testweise das größte Maß, welches noch kleiner ist als das Endmaß, als nicht verfügbar deklarieren.Sollte dies keinen Effekt bewirken, dann mit dem nächstkleineren Maß fortführen.

Andere Lösung fällt mir im Moment nicht ein, werde aber noch mal drüber nachdenken.

Besten Gruß.Timo

Endmaße in µm vorhanden zu benutzen
1 x 1
1 2
1 2
2 2
2 2
3 x 2
3 x 2
3 x 2
10 x 2
gewünschter Wert 12 Maß kann mit vorhandenen Endmaßen nicht
erreicht werden

Lieber Herr Engel,

verzeihen Sie mir bitte, wenn ich etwas zu banal an dieses Problemchen herangegangen bin.
Ein Algorithmus war nicht gefordert, den haben Sie ins Spiel gebracht.
Lassen wir doch unseren Klienten entscheiden welcher Variante er zu seinem Ziel verwendet.
Wie so oft im Leben sind es die einfachsten Dinge, die so schwer zu bewältigen sind.
Außerdem unterschätzen Sie die Kombinationsmöglichkeiten der Modifikationen die hier bestehen.
Er übersteigt Ihren und meinen mathematischen Horizont um etwa 10^43

Mit freundlichen Grüßen
Fablonow a. D.

Lieber Herr Engel,

JaJa Hola

verzeihen Sie mir bitte, wenn ich etwas zu banal an dieses
Problemchen herangegangen bin.
Ein Algorithmus war nicht gefordert, den haben Sie ins Spiel
gebracht.

FRAGE:
Wie schaffe ich es, in einer Tabelle alle zur Verfügung stehenden Endmaße einzugeben, so dass mir nach Eingabe eines Wertes, mir Vorschläge für eine Zusammenstellung errechnet werden"

Lassen wir doch unseren Klienten entscheiden welcher Variante
er zu seinem Ziel verwendet.

Jenau

Wie so oft im Leben sind es die einfachsten Dinge, die so
schwer zu bewältigen sind.

Du sagst es

Außerdem unterschätzen Sie die Kombinationsmöglichkeiten der
Modifikationen die hier bestehen.

Nicht unterschätzt, nur in den Hintergrund gestellt, um Problem mit Excel ansatzweise zu lösen.

Er übersteigt Ihren und meinen mathematischen Horizont um etwa
10^43

Ihren ganz sicher, meinen vielleicht :wink:

Mit freundlichen Grüßen
Fablonow a. D.

In Hoffnung bald wieder Ihre Meinung zu hören
verbleibe ich
mit freundlichem Gruß
Timo i.D.
Hannover, den 01.06.2005

Hallo Lopaca,

mE ist das ein Problem, das als „Traveling Salesman“ bekannt ist. Theoretisch kann man solange die vorhandenen „Klötze“ kombiniern, bis man alle Möglichkeiten hat, und dann das Optimum, also die gesuchte Dicke, heraussuchen. Das können aber sehr viele Kombinationen sein, abhängig von der Anzahl der Klötze.

Excel-Sheets dürften da keine Lösung bieten (Zielwertsuche?). Wenn VBA, falls es schnell genug ist. Letzlich mußt du einen Baum aufbauen, der alle möglichen Kombinationen enthält. Abbrechen kannst du aber schon, wenn du eine Lösung gefunden hast (der Salesman sucht ein Optimum der Strecke, es sind also eigenlich alle möglichen Lösungen zu prüfen!)

so ungefähr:

Alle Klötze nach Art, also Dicke, (zu dicke direkt raus) gruppieren, von jeder Art eins in je ein „Töpfchen“. Damit hast du n Töpfe. Die nun verwendeten Klötze „abziehen“. Aus jedem dieser Töpfe mit je einer der noch vorhandenen Arten einen „SubTopf“ bilden, sofern die nicht dicker die „Restdicke“ sind. Dann zu jedem dieser SubTöpfe ein SubSub, dann ein SubSubSub etc. Wenn keine möglichen Arten/ Klötze über sind und keine Lösung gefunden wurde, kann der Ast sterben.

Sofern eine Lösung gefunden wurde kann man eh abbrechen.

Das ganze kann man sicherlich optimieren, ich nicht.

Etwas zum Lesen:
http://www.jochen-pleines.de/
http://www.coding-board.de/board/showthread.php?p=70187

Es würde mich interssieren, ob du das weiter verfoolgen möchtest. Wenn würde mich das interessieren und ggfs. helf aich auch gerne (Hab jetzt keine Lust zu hacken).

mfg

Dirk

alle Möglichkeiten ausgeben
Hi Lopaca!
Hier nun noch eine Möglichkeit, das ganze mittels Excel VBA zu lösen.
Es werden nun alle Möglichkeiten gefunden, das Endmaß zu erreichen.
Nachteil : Tierisch langsam ab ca. 15 zur Verfügung stehenden Maßen.
Sicherlich kann man den Algo noch optimieren.
http://www.1-q.de/endmasse2.xls
Gruß.Timo

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

DANKE
Schönen Dank. Ist klasse.
Leider mir zu fortgeschritten. Ich kann es mir nicht abändern. Vielleicht kann ich mir von jemanem erklären lassen, wie du das gemacht hast und ich es erweitern kann.
Aber danke für die Mühe…

Liebe Grüße, Lopaca

Hi Lopaca!
Hier nun noch eine Möglichkeit, das ganze mittels Excel VBA zu
lösen.
Es werden nun alle Möglichkeiten gefunden, das Endmaß zu
erreichen.
Nachteil : Tierisch langsam ab ca. 15 zur Verfügung stehenden
Maßen.
Sicherlich kann man den Algo noch optimieren.
http://www.1-q.de/endmasse2.xls
Gruß.Timo