Wie funktioniert der Solver?

Bild

Betrifft: Wie funktioniert der Solver?
von: Sebastian
Geschrieben am: 04.12.2003 10:33:42

Hallo,

irgendwie kriege ich den Solver nicht zum Laufen. Ich habe probeweise an einem abgespeckten Problem gearbeitet, um zu sehen, ob der dort läuft, tut er aber auch nicht. Ich weiß nicht, wo ich etwas falsch mache. Ich beschreibe mal, wie bei mir das abgespeckte Problem aussieht:

Die Zellen A1 und B1 sowie C1 lege ich fest (Zahlen von 0 bis 10 in den Zellen A1 und B1 sowie von 0 bis 20 in Zelle C1, wobei nie C1 > A1+B1 sein darf). Die Zellen A2 und B2 sind die vom Solver verwendeten variablen Zellen.

C2 ist die Ergebniszelle mit C2=KOMBINATIONEN(A1;A2)*KOMBINATIONEN(B1;B2).

Dann habe ich noch die Prüfzellen A3, B3 und C3 eingerichtet: A3=WENN(UND(A1>=A2;A2>=0);1;0) und B3=WENN(UND(B1>=B2;B2>=0);1;0) und C3=WENN(A2+B2=C1;1;0).

Schließlich habe ich im Solver folgende Nebenbedingungen definiert:
A2 und B2 ganzzahlig
A2 und B2 >=0
A2 und B2 <=10
A3 bis C3 =1
Maximum gesucht (Max)

Die Varianz habe ich auf 0 gesetzt (weil dies in der Excel-Hilfe für ganzzahlige Probleme empfohlen wird).

Beim Lösen findet Solver gar keine Lösung. Weshalb nicht?

Gruß,
Sebastian

Bild


Betrifft: AW: Wie funktioniert der Solver?
von: Hans W. Hofmann
Geschrieben am: 05.12.2003 08:37:24

Vielleicht weils keine gibt.
Und dann kann es latürnich nix werden, wenn man Nebenbedingungen an das Solvermodell in WENN-Abfragen im Blatt versteckt.
In Deinem Modell fehlt auf jeden Fall die Zielzelle - C2?.
Wenn es die ist, dann hat Dein Rechenmodell nix mit Optimierung zu tun.
Da wird wohl das Maximum 2er Binominalkoeffizienten gesucht, was soll da optimiert werden? Also wozu der Aufwand?


Gruß HW


Bild


Betrifft: AW: Wie funktioniert der Solver?
von: Sebastian
Geschrieben am: 05.12.2003 10:52:53

Hallo,

das hatte ich vergessen zu erwähnen: Ja, C2 ist die Zielzelle die optimiert werden soll. Und Solver soll jene Zahlen A2 und B2 finden, die das Produkt zweier Binomialkoeffizienten maximieren. Wie schon erwähnt, habe ich das mit den zwei Binomialkoeffizienten nur testweise gemacht, um zu sehen, ob der Solver damit läuft. Diese Exceltabelle habe ich also nur probeweise geschrieben. In Wirklichkeit ist mein Problem viel größer und besteht aus sehr vielen kombinatorischen Formeln, die ich mittels VBA im Modul definiert habe. Insgesamt wird ein Erwartungswert basierend auf vielen mittels der Kombinatorik errechneten Wahrscheinlichkeiten und den dazugehörigen Punktwerten bestimmt. Dabei wird auf eine Menge von 15 veränderlichen Zahlen (entsprechend 15 Zellen) zugegriffen sowie 15 weiteren "Zuständen" (es gibt jeweils drei Zustände, die ich mit den Ziffern 1 bis 3 beschreibe). Insgesamt gibt es also 30 ganzzahlige Veränderliche, wobei bei den Ziffern auch jeweils nur 4 Ziffern in Frage kommen. Die Veränderlichen habe ich auch alle als ganzzahlig definiert und es ist klar, dass viele Lösungen existieren, von denen der Wert mit dem maximalen Erwartungswert bestimmt werden soll.

Um auf das "kleine" Probeproblem zurückzukommen: Ich habe das Problem so ausgelegt, dass es viele Lösungen für die Berechnung des Binomialkoeffizienten-Produkts gibt. Von diesen soll das Maximum bestimmt werden. Ich wollte so testen, ob der Solver auch unstetige Funktionen mit ganzen Zahlen packt. Und eben da liegt mein Problem: Der Solver tuts nicht, und ich weiß nicht wieso bzw. welche Einstellungen ich vornehmen muss, damit er`s macht. Für jede Hilfe wäre ich dankbar.

Gruß,

Sebastian


Bild


Betrifft: AW: Wie funktioniert der Solver?
von: Sebastian
Geschrieben am: 05.12.2003 11:01:06

Eines hatte ich vergessen:

Ich habe die Nebenbedingungen in WENN_Formulierungen versteckt, weil sie recht komplex sind, sie lassen sich nicht einfach in Form <= oder so formulieren, sondern enthalten eine Kombination von Bedingungen (zumindest im "großen" eigentlichen Problem), die man nur über WENN-Anweisungen beschreiben kann. Wenn diese Bedingungen erfüllt sind, gibt`s eine 1 als Ergebnis, sonst eine 0.

Ich dachte, dass Solver durch systematisches Probieren aufgrund der im Solver definierten Nebenbedingungen (dass diese Prüfzellen nur eine 1 aufweisen dürfen) nur solche Lösungen zulässt, wo alle Prüfzellen eine 1 aufweisen (und davon gibt es viele, das weiss ich) und von diesen Lösungen das Maximum ausgibt.

Gruß,

Sebastian


Bild


Betrifft: AW: Wie funktioniert der Solver?
von: Hans W. Hofmann
Geschrieben am: 05.12.2003 16:37:36

Mich wundert sowieso, was man an den Solver alles verfüttern kann.
Aber er ist ja auch nicht besonders leistungsfähig, was die Optimiererei betrifft.
"Richtige" OR wie z.B. What's Best unterstützen nur einen Bruchteil von XL-Funktionen. Nach meiner Meinung kann das mit Binomialkoeffizienten nicht funktionieren, schon gar nicht mit dem Solver, der nur lokale Extrema findet.
Bei mehreren Binomialkoeffizienten wird sich Dein Problem schnell zur NP-Vollständigkeit auswachsen und in endlicher Rechenzeit garnet zu lösen sein, jedenfalls nicht in XL...


Gruß HW


Bild

Beiträge aus den Excel-Beispielen zum Thema " Wie funktioniert der Solver?"