ich habe ein Problem mit dem Solver, das mir keine Ruhe lässt.
Ziel von mir ist es eine Funktion zu minimieren, die von 3 Variablen abhängt. Für ein vorgegebenes Ergebnis, soll der Input minimiert werden…
Nun habe ich also 3 zu veränderbare Zellen und einige Nebenbedingungen (Ausprägung zwischen 0 und 1 als Auslastung). Wenn ich nun den Solver laufen lasse nähert er sich der Lösung an, gibt jedoch nicht immer genau den korrekten Wert an (Abweichung von ein paar Prozent). Dabei hängt es davon ab, welche Ausprägung in die Zellen vor Laufenlassen des Solvers eingegeben ist. Ich habe versucht über die Genauigkeit, Zeit etc gegenzusteuern, das hat aber nichts gebracht.
Ich habe irgendwie das gefühl, dass der Solver sich nur rechtseitig oder linksseitig annähert und damit nicht immer die richtige Lösung findet.
Ich hoffe ich habe das Problem einigermassen deutlich geschildert. Würde mich wirklich sehr freuen, wenn ihr ne Lösung hierfür hättet!
Eine ergänzende Frage hätte ich auch noch. Könnte man den Solver mit einer vorgegebenen Anzahl „Zielwerten“ füttern und ihn das Ergebnis gleich in eine Tabelle untereinander schreiben lassen? Wie müsste man hierzu vorgehen? Makros?
Ziel von mir ist es eine Funktion zu minimieren, die von 3
Variablen abhängt. Für ein vorgegebenes Ergebnis, soll der
Input minimiert werden…
Ich habe irgendwie das gefühl, dass der Solver sich nur
rechtseitig oder linksseitig annähert und damit nicht immer
die richtige Lösung findet.
Eine ergänzende Frage hätte ich auch noch. Könnte man den
Solver mit einer vorgegebenen Anzahl „Zielwerten“ füttern und
ihn das Ergebnis gleich in eine Tabelle untereinander
schreiben lassen? Wie müsste man hierzu vorgehen? Makros?
Hi Veltin,
lade mal eine Beispielmappe hoch, nicht im XL2007 Format, FAQ:2861 o.ä.
Ziel von mir ist es eine Funktion zu minimieren, die von 3
Variablen abhängt. Für ein vorgegebenes Ergebnis, soll der
Input minimiert werden…
Nun habe ich also 3 zu veränderbare Zellen und einige
Nebenbedingungen (Ausprägung zwischen 0 und 1 als Auslastung).
Wenn ich nun den Solver laufen lasse nähert er sich der Lösung
an, gibt jedoch nicht immer genau den korrekten Wert an
(Abweichung von ein paar Prozent). Dabei hängt es davon ab,
welche Ausprägung in die Zellen vor Laufenlassen des Solvers
eingegeben ist. Ich habe versucht über die Genauigkeit, Zeit
etc gegenzusteuern, das hat aber nichts gebracht.
Ich habe irgendwie das gefühl, dass der Solver sich nur
rechtseitig oder linksseitig annähert und damit nicht immer
die richtige Lösung findet.
Das hast Du IMO sehr gut beobachtet - der Solver sucht ‚nur‘ lokale Minima/Maxima, nicht aber etwa das globale.
Beim unsteten Funktionen hängt es von den Ausgangswerten ab welche Lösung gefunden wird, das kann dann durchaus auch ein lokales Minumum/Maximum sein.
Änder lässt dich dies nicht, da diese Funktionalität im Solver-AddIn integriert ist.
Eine Demo-Mappe kann, wie Reinhard schreibt, aber noch mehr Licht in die Sache bringen.
Hallo zusammen,
erstmal vielen Dank für eure Antworten!
Ihr habt sicherlich recht, dass man das am besten mit dem vorliegenden File sagen kann. Ich habe das ganze jetzt mal hochgeladen…Geht hier um Optimierung von Abluftgebläsen, wie ihr vielleicht feststellt.
Damit man sich einigermassen zurechfindet habe ich die Zellen mal mit Hintergrundfarben belegt.
Beispiel für Problem:
1.Ausprägung/ Auslastung (orange) wird mit 1,0,0 eingegeben --> Solver laufen lassen --> Ergebnis (rot) 347,54
2.Ausprägung/ Auslastung (orange) wird mit 1,0,1 eingegeben --> Solver laufen lassen --> Ergebnis (rot) 346,30
offentlichstlich ist die 2. Methode die bessere, da kleiner!
scheint sich also wirklich, um lokale maxima zu halten!? wie kann ich excel klar machen, dass er alles „durchsuchen“ soll?
zu meiner zweiten Frage mit der Automatisierung:
eigentlich soll er das Ganze für sämtlichen blau hinterlegten Zellen laufen lassen und das Ergebnis dann direkt in die lila hinterlegten Kästchen einfügen.
wär super, wenn ihr da ne Lösung hättet da erstes Problem eher unschön ist und das 2. wär halt eher ne Spielerei.
Vielleicht habt ihr ja auch ne Buchempfehlung, das sich mit solchen nützlichen Spielereien befasst.
Beispiel für Problem:
1.Ausprägung/ Auslastung (orange) wird mit 1,0,0 eingegeben
–> Solver laufen lassen --> Ergebnis (rot) 347,54
2.Ausprägung/ Auslastung (orange) wird mit 1,0,1 eingegeben
–> Solver laufen lassen --> Ergebnis (rot) 346,30
offentlichstlich ist die 2. Methode die bessere, da kleiner!
scheint sich also wirklich, um lokale maxima zu halten!? wie
kann ich excel klar machen, dass er alles „durchsuchen“ soll?
Das geht nicht - der Solver sucht, ausgehend von den Eingabewerten in den veränderbaren Zellen, das definierte Optimum. In deinem Falle findet er ein lokales Minimum an einer bestimmten Stelle und rechnet dann nicht mehr weiter.
So ist der Solver nun mal programmiert um Rechenzeit zu sparen - ein Modell komplett durchzurechnen setzt andere Algorithmen und vor allem Zeit voraus.
Schau dir mal die folgende Seite näher an, da ist ein ‚Nachfolger‘ des eingebauten Solvers vorhanden, der dann auch globale Minimmas ermittelt - ev. kannst Du mit der Demo-Version bereits etwas anfangen:
eigentlich soll er das Ganze für sämtlichen blau hinterlegten
Zellen laufen lassen und das Ergebnis dann direkt in die lila
hinterlegten Kästchen einfügen.
Da müsstest Du halt bloss in einer Schleife deine Datenzeilen durchlaufen, die Werte in die Eingabe-Zellen kopieren und den Solver laufen lassen. Dann das Endergebnis wieder in die entsprechende Zeile kopieren.
Mit freundlichen Grüssen
Thomas Ramel
–
MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2003 SP-3]
Danke Nochmal!
Werde mir Morgen mal den SUPERSOLVER ansehen ;o.
Bezüglich der Schleife hätte ich jetzt ehrlich gesagt keine Ahnung, wie ich vorgehen müsst. Solver ist praktisch das „anspruchvollste“ was ich kann ;O. Ginge das über Makros?
Hast du zufällig ne Buchempfehlung um sich solche Sachen anzueignen?
Bezüglich der Schleife hätte ich jetzt ehrlich gesagt keine
Ahnung, wie ich vorgehen müsst. Solver ist praktisch das
„anspruchvollste“ was ich kann ;O. Ginge das über Makros?
Hast du zufällig ne Buchempfehlung um sich solche Sachen
anzueignen?
Hallo,
ich heiße nicht Thomas und ich habe auch keine Buchempfehlung für Vba für Starter.
Aber evtl. Tipps.
Von der Fernuni Hagen gibt es zwei kostenlose downloadbare PDFs zu Vba, bei Interesse schua ich mal nach den Links oder suche selbst dort.
Wenn du wie ich bist und viel lieber ein Buch hast als da zu scrollen, gehe mal zu den mistigen Buchmultis Hugendubel oder so.
Am besten ausgehend von einem konkrten Problem, also die Umsetzung dessen was Thomas sagte.
Dann hol dir da die dicken Bücher zu VBa für Starter, setz dich aufs Sofa und trinke nen Kaffeee, dann prüfst du durch welcher der Bücher du am besten findest.
Notiere dir die Autoren, Verlage bei Serien.
Dann, natürlich nie bei so einem Multi was kaufen, die machen Buchhandlungen um die Ecke platt.
je nach Budget, kaufe dir das Buch, die Bücher in einem normalen Buchladen.
Oder kaufe vom gleichen Autor über ebay o.ä. sein Vba Buch zu XL97 o.ä.
PS: und freu dich daß sich Thomas eingeschaltet hat, er kriegt dein Solverproblem sicher hin sofern das möglich ist, wenn nicht, was nicht geht das geht halt nicht, dann zumindest einen praktikabelen workaround.
Fein - meldest Du dich bitte und gibst deine Erfahrungen preis?
…dann kann ich auch wieder was dazu lernen
Bezüglich der Schleife hätte ich jetzt ehrlich gesagt keine
Ahnung, wie ich vorgehen müsst. Solver ist praktisch das
„anspruchvollste“ was ich kann ;O. Ginge das über Makros?
Ja, das wären VBA-Makros.
Ich vermute Du willst/musst alle Kombinationen von Gebläsen (alt versus neu) durchrechnen und jeweils die besser Variante dann auswählen oder bestimmen.
Dazu müsste (per VBA) erstmal für den ersten Fall die entsprechenden ‚1-en‘ gesetzt werden, der Solver gestartet und das gefundene ergebnis dann in die Zeile übertragen.
Dann dasselbe mit dem nächten Fall usf.
Ob sich dies hier aber lohnt (wenn die Aufgabe nicht immer wieder bearbeitet werden muss) ist IMO wohl fraglich - von Hand bist Du da praktisch gleich schnell…
Hast du zufällig ne Buchempfehlung um sich solche Sachen
anzueignen?
Reinhard hat bereits auf die Broschüren der Fernuni Hagen hingewisen, diese eignen sich als Einstieg IMO recht gut.
Speziell für den Solver ist mir nun nichts bekannt, aber die grössten Erfahrungen machst Du wenn Du hier im Brett (oder anderen Foren) mitliest und die Probleme und Lösungen nachstellst.
Mit freundlichen Grüssen
Thomas Ramel
–
MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2003 SP-3]