Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Solver-Lösung mit Runden

Solver-Lösung mit Runden
26.07.2006 11:23:26
Marc
Hallo zusammen,
ich habe folgendes Problem mit dem Solver:
Es sind drei veränderbare Zellen definiert. Deren Werte werden jeweils durch einen korrespondierenden (fixen) Wert dividiert. Die Multiplikation der drei Ergebnisse dieser Divisionen ist meine Zielzelle. Deren Wert soll maximiert werden. (Es gibt noch weitere Verschachtelungen durch Formeln, die jedoch außer Acht gelassen werden können müssten)
Der Solver gibt mir jedoch nie die drei passenden Werte für ein Maximum wieder, sondern stagniert bei irgendwelchen drei Werten.
Das Problem habe ich bereits identifiziert. Die Ergebnisse der Divisionen werden abgerundet auf ganze Zahlen und dann erst für die Berechnung der Zielzelle weiterverwendet. Wenn ich richtig informiert bin, dann "denkt" der Solver wahrscheinlich an einer bestimmten Stelle, dass er das Maximum bereits erreicht hat, weil sich das Endergebniss so lange nicht ändert.
Hat jemand eine Idee, wie ich beispielsweise die "Prüfintervalle" größer setzen kann? In den Solveroptionen habe ich bereits alles versucht.
Vielen Dank im Voraus,
Marc
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Solver-Lösung mit Runden
27.07.2006 10:39:17
Uwe
Hallo, Marc,
so recht kann ich Dein geschildertesw Problem noch nicht mit EXCEL nachvollziehen. Das liegt wohl daran, dass ich die geschilderte Eingangsaufgabe mathematisch nicht so formulieren kann, dass hier ein wirkliches Variationsproblem auftaucht.
Es seien die Inhalte der Zellen A, A2 und A3: [A1], [A2], [A3]Die Fixwerte [B1], [B2], [B3], die Inhalte von B1 bis B3 können auch gleich sein, sind aber jeder für sich verschieden von Null. Das Produkt ist eine endliche Zahl
[C4] = ([A1]/[B1]) * ([A1]/[B1]) * ([A1]/[B1])
In algebraischer Form: c = ( a1*a2*a3 ) / ( b1*b2*b3 )
Hier kann doch aber, sofern der Nenner ungleich Null ist, nur das Ergebnis sein, dass das Produkt im Zähler ein Maximumwert erreicht, es gibt also immer nur eine Lösung, a1*a2*a3 = UNENDLICH GROSS oder eben einer oder mehrere der Multiplikatoren des Zählers sind selbst unendlich Groß.
Sobald aber einer der Nennerglieder unendlich groß ist, dann ist die Lösung für die übrigen Glieder beliebig, solange sie nur größer als Null sind. Wie kann ich also daraus eine sinnvolle Aufgabe für den SOLVER gestallten, unabhängig vom Problem der großen Zahl in der EXCEL-Umgebung selbst?
Vielleicht kannst Du, Marc, mir zeigen, wo ich Deine Aufgabe nicht richtig verstanden habe und ergänzende Erläuterungen geben, so sich Dein Problen nicht schon erledigt hat.
Gruß,
Uwe
Anzeige
AW: Solver-Lösung mit Runden
27.07.2006 10:54:38
Marc
Hallo Uwe,
bitte entschuldige. Der Einfachheit halber habe ich den Rechenweg nicht komplett dargestellt. Selbstverständlich hast Du bei dem oben erwähnten Fall Recht.
Ich denke, dass es besser ist, wenn Du die Datei siehst. Deshalb habe ich sie hochgeladen. Die 3 rot markierten Zellen sind die Variablen, die gelbe die Zielzelle. Wie Du sehen wirst sind in dieser Version die Zahlen begrenzt.
Mein Problem ist jetzt nur, dass der Solver, sofern ich die "Ganzzahl" Funktion bei meinen Divisionsergebnissen bestehen lasse, nicht richtig rechnet. (Er denkt, dass durch Beispielwerte bereits das Maximum erreicht ist, da sich auf Grund des Rundens für längere Zeit die Zielzelle nicht verändert.) Leider kann ich die "Ganzzahl" Funktion auch nicht entfernen, da es sich um eine logistische Fragestellung handelt, und ich nicht z.B. noch passende 0,932 Teile in meine Gesamtausbeute (Zielzelle) mit einrechnen kann.
Ich hoffe, dass ich es einigermaßen verständlich geschildert habe. :)
Auf jeden Fall schon vorab vielen herzlichen Dank, dass Du Dir Zeit genommen hast!
Viele Grüße,
Marc
Anzeige
AW: Solver-Lösung mit Runden
27.07.2006 11:04:45
Marc
Hallo Uwe,
bitte entschuldige. Der Einfachheit halber habe ich den Rechenweg nicht komplett dargestellt. Selbstverständlich hast Du bei dem oben erwähnten Fall Recht.
Ich denke, dass es besser ist, wenn Du die Datei siehst. Deshalb habe ich sie hochgeladen. Die 3 rot markierten Zellen sind die Variablen, die gelbe die Zielzelle. Wie Du sehen wirst sind in dieser Version die Zahlen begrenzt.
Mein Problem ist jetzt nur, dass der Solver, sofern ich die "Ganzzahl" Funktion bei meinen Divisionsergebnissen bestehen lasse, nicht richtig rechnet. (Er denkt, dass durch Beispielwerte bereits das Maximum erreicht ist, da sich auf Grund des Rundens für längere Zeit die Zielzelle nicht verändert.) Leider kann ich die "Ganzzahl" Funktion auch nicht entfernen, da es sich um eine logistische Fragestellung handelt, und ich nicht z.B. noch passende 0,932 Teile in meine Gesamtausbeute (Zielzelle) mit einrechnen kann.
Ich hoffe, dass ich es einigermaßen verständlich geschildert habe. :)
Auf jeden Fall schon vorab vielen herzlichen Dank, dass Du Dir Zeit genommen hast!
Viele Grüße,
Marc
Anzeige
AW: Solver-Lösung mit Runden
27.07.2006 16:09:12
Uwe
Hallo, Marc,
ich kann eigentlich bei Deinen Vorgaben nicht entdecken, was da falsch laufen sollte oder anders ermittelt werden kann, vorausgesetzt, dass die Orientierungsrichtung der Boxen immer gleich mit den der Teile und des Containers laufen, also eine verdrehung der Box innerhalb des Kontainers nicht statfinden soll (Volumenmaximierung!).
Das Problem mit der Umwandlung in eine Gannzzahl kannst Du m.E umgehen, wenn Du den Bereich C2:C4 als Vorgabe-/Veränderliche erklärst und die Bedingung der Ganzzahligkeit beim Solver-Dialog hinzufügst.
In G stehen damit zeilenweise die Formel für die Boxseitenlänge einschließlich der Verpackungs und Zwischenschichtdicken: G2 = 2*F2+C2*(B2+D2)-D2. Mit diesem Ansatz ohne einer Division und der Nebenbedingung im Solver wird sichergestellt, dass auch in den G-Zellen ganzzahlige Werte berechnet werden.
Ferner sollten Die Nebenbedingungen angegeben werden, das die Werte der Spalte G größer gleich der kleinsten Boxeinheit ist und nicht größer werden, als eine logistisch sinnvolle Größe. Beide Werte könnten als zusätzliche Spalte in der Tabelle aufgenommen werden.
Vielleicht ist der Hinweis bereits hilfreich, bei meinem Versuch mit dem Solver mußte ich allerdings entdecken, dass die Nebenbedingungen bei einem Wiederholungslauf nicht ordnungsgemäß beachtet werden. Erst nachdem im Dialog die internen Werte des Solvers zurückgesetzt wurden und der Dialog erneut ausgefüllt wurde, lieferte der Solver das erwartete Ergebnis. Eine tiefere Untersuchung dieses Problem muß ich mir für die Wintertage aufheben ;)
Viel Erfolg,
Uwe
Anzeige
AW: Solver-Lösung mit Runden
28.07.2006 06:55:28
Marc
Hallo Uwe,
vielen herzlichen Dank für Deine Antwort!
Dies ist auf jeden Fall eine sehr gute Möglichkeit. Leider bin ich nu auf ein weiteres Problem gestoßen. Ich kann die veränderbaren Zellen leider nicht tauschen. In der Erweiterung dieser Excel-Kalkulation sollen meherer Teile (also im Prinzip z.B. 5x die vorhandene Tabelle) hinzugefügt werden. Alle diese Tabellen greifen bei den Größen der "Primary Box" auf die (einmaligen) veränderbaren Zellen zu und es entsteht so eine unterschiedliche Teilekapazität für jede Palette mit unterschiedlichem Teil. Ziel ist es eine möglichst optimale Standardgröße zu finden, mit der eine durschnittliche Auslastung der Pallete mit Teilen maximiert wird.
Trotzdem jedoch nochmals vielen lieben Dank!
Marc
Anzeige
AW: Solver-Lösung mit Runden
28.07.2006 07:42:11
Uwe
Hallo, Marc,
auch wenn Du die Zellen Tauschen könttest, so bleibt dennoch zwei mathematische Probleme, die der Solver bei dierer Aufgabenstellung nicht lösen kann und die die Ursache für das Verharren auf einer Lösung ist:
1. Die fehlende Eindeutigkeit der Lösung bei gegenen Randbedingungen
2. Die Eingangsgrößenabhängige Ausgangslage zum Suchen eines Lokalen Extremwertes
Die vier Bilder, die alle Lösungen der Einzelschrittberechnungen darstellen, sollen dieses veranschaulichen:

(zum Vergrößern auf Bild klicken)
Bild 1 stellt die gesammtheit aller Lösungen dar, wie sie sich ergibt, wenn die Stückanzahl der Spalte C alle möglichen Werte durchlaufen kann (Bedingung: Boxanzahl je Pallets nicht größer als 30, Gesamtlängen der zusammengestellten Boxkanten einer Richtung nicht größer als entsprechnene Palletsabmessung; "Leersäulen" erfüllen diese oder zumindest eine dieser Bedingungen nicht)
Es wird Deutlich, dass das Maximum 6720 von mehrere Zahlentriplen (C1:C3) erreicht wird.
Der rotumrandete Bereich ist im Bild 2 vergrößert dargestellt. Hier wir die der Einfuß der Anfangsgrößen erkennbar. Liegt diese auf einem lökalen Extrem (z.B. 4800) so bewirkt die veränderung der Werte in Spalte C um jeweils 1, dass Nachbarpunkte mit kleinen Ergebniswerten ermittelt werden, so dass diese Veränderungsrichtung für die weitere Untersuchung verwirfen wird (Es wird nicht nach höheren Gipfeln gesucht, wenn erst einaml ein Gipfel erreicht ist und sei er in seiner Erhebung aus der Umgebung auch noch so unbedeutend). Bild 3 bietet hier nochmals einen Vergrößerungsauschnitt.
Das Bild 4 stellt die nach der Größe der Lösung sortierten Säulen dar. Als Rubrikbeschriftung sind wie in Bild 3, die Werte der Tabellenspalte C2 bis C3 (Länge, Weite, Höhe) angeschrieben.
Sofern nicht weitere Bedingung (z.B. Minimum des Umhüllungsmaterials der Boxen bei größt möglichem Volumen oder soetwas ähnliches) hinzukommt, wird man keine eindeutige Lösung erhalten.
Gruß,
Uwe
Anzeige
AW: Solver-Lösung mit Runden P.S.
28.07.2006 08:51:58
Uwe
Hallo, Marc,
das ganze sollte m.E. als VBA-Programm erstellt werden, denn da erhält man mit einer dreifachverschaftelten Scheliche über dei Veränderlichen alle Lösungen, die man dann nach weiteren Zusatzkriterien filtern kann. Dieser Fall ist ein einfaches Beispiele in VBA, so dass man hiermit durchaus starten kann.
Gruß,
Uwe
P.S. zu meinem vorherigen Beitrag: für Bild 4 wurde ein nicht aktuelles Bild eingebunden, daher sind die Lösungen gem. Bild 3 darauf nicht vertreten.
Anzeige
AW: Solver-Lösung mit Runden P.S.
28.07.2006 15:50:52
Marc
Hallo Uwe,
die Sache scheint sich doch als erheblich komplex darzustellen.
Da ich von VBA leider nur (ganz) geringe Kenntnisse habe, arbeite ich gerade an einer Vereinfachung der manuellen Lösung.
Viele Grüße und nochmals herzlichen Dank dafür, dass Du Dich so ins Thema "reingekniet" hast!!
Beste Grüße,
Marc
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Solver-Lösung mit Runden im Excel


Schritt-für-Schritt-Anleitung

  1. Definiere die veränderbaren Zellen: Wähle die Zellen aus, deren Werte der Solver optimieren soll. In deinem Fall sind das die Zellen A1, A2 und A3.

  2. Formuliere die Zielzelle: Erstelle eine Zelle, die das Produkt der Divisionen berechnet. Zum Beispiel:

    = (A1/B1) * (A2/B2) * (A3/B3)

    Setze diese Zelle als Zielzelle im Solver.

  3. Öffne den Solver: Gehe zu Daten > Solver.

  4. Setze die Zielzelle: Wähle die Zelle aus, die das Produkt berechnet, und stelle ein, dass sie maximiert werden soll.

  5. Füge die Nebenbedingungen hinzu: Stelle sicher, dass die Zellen A1, A2 und A3 als ganze Zahlen definiert sind, indem du die Option für Ganzzahlen auswählst.

  6. Optimiere die Solver-Parameter: Passe die Parameter und Prüfintervalle an, um eine bessere Lösung zu finden. Experimentiere mit den Einstellungen, um zu sehen, ob der Solver die optimale Lösung findet.

  7. Starte den Solver: Klicke auf Lösen und überprüfe die Ergebnisse.


Häufige Fehler und Lösungen

  • Solver stagniert bei Werten: Wenn der Solver keine neuen Werte findet, kann das an der Rundungsfunktion liegen. Überprüfe, ob du die Ganzzahl-Funktion korrekt implementiert hast. Eine Möglichkeit ist, die Ganzzahligkeit im Solver-Dialog zu aktivieren.

  • Falsche Ergebnisse: Wenn die Ergebnisse unlogisch erscheinen, stelle sicher, dass die Divisionen korrekt sind und dass die Nenner ungleich Null sind.

  • Maximierung funktioniert nicht: Überprüfe die Nebenbedingungen. Möglicherweise gibt es Einschränkungen, die der Solver nicht überwinden kann.


Alternative Methoden

  • VBA-Nutzung: Eine VBA-Lösung kann die Probleme mit der Ganzzahl-Funktion umgehen, indem sie eine umfassende Suche nach möglichen Lösungen ermöglicht. Das Skript kann alle Kombinationen durchlaufen und die besten Ergebnisse filtern.

  • Manuelle Berechnungen: Wenn der Solver nicht die gewünschten Ergebnisse liefert, kannst du die Berechnungen manuell durchführen, um die besten Werte zu ermitteln. Dies kann zeitaufwendig sein, aber es gibt dir auch mehr Kontrolle über den Prozess.


Praktische Beispiele

  • Beispiel mit drei Variablen: Angenommen, du hast die Werte in den Zellen A1, A2 und A3. Setze die Fixwerte in B1, B2 und B3 und benutze die Formel für die Zielzelle. Achte darauf, dass du die Ganzzahl-Bedingung aktivierst.

  • Komplexere Aufgaben: Wenn du mehrere Zielzellen optimieren möchtest (z.B. mit excel solver mehrere zielzellen), kannst du die Zielzellen nacheinander anpassen und jeweils den Solver verwenden.


Tipps für Profis

  • Verwende die Solver-Funktion optimal: Setze Prüfintervalle und Toleranzen strategisch, um die Effizienz des Solvers zu verbessern.

  • Dokumentation: Halte eine Dokumentation der Schritte und Ergebnisse, um die Analyse zu erleichtern und Trends zu erkennen.

  • Teste verschiedene Ansätze: Manchmal kann das Experimentieren mit verschiedenen Formeln und Einstellungen im Solver zu besseren Ergebnissen führen.


FAQ: Häufige Fragen

1. Wie kann ich die Ergebnisse der Solver-Funktion analysieren?
Du kannst die Ergebnisse in Excel grafisch darstellen oder in eine neue Tabelle exportieren, um Muster zu erkennen.

2. Was tun, wenn der Solver keine Lösung findet?
Überprüfe die Nebenbedingungen und die Eingabewerte. Experimentiere auch mit anderen Startwerten oder der Maximierungsrichtung.

3. Gibt es eine Möglichkeit, die Effizienz des Solvers zu verbessern?
Ja, indem du die Prüfintervalle erhöhst und die Anzahl der Iterationen reduzierst, kannst du die Rechenzeit verkürzen.

4. Kann ich den Solver für komplexe Probleme nutzen?
Ja, der Solver kann für verschiedene mathematische Probleme verwendet werden, solange die Eingaben korrekt sind und die Bedingungen klar definiert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige