Freigeben über


SolverOptions-Funktion

Ermöglicht Ihnen das Angeben erweiterter Optionen für das Solver-Modell. Diese Funktion und ihre Argumente entsprechen den Optionen im Dialogfeld Solver-Optionen.

Hinweis Das Löser-Add-In ist standardmäßig nicht aktiviert. Bevor Sie diese Funktion verwenden können, muss das Solver-Add-In aktiviert und installiert werden. Informationen hierzu finden Sie unter Verwenden der Solver VBA-Funktionen. Nach der Installation des Solver-Add-Ins müssen Sie einen Verweis auf das Solver-Add-In erstellen. Klicken Sie im Visual Basic-Editor mit einem aktiven Modul auf Verweise im Menü Extras, und wählen Sie dann Solver unter Verfügbare Verweise aus. Wenn Solver nicht unter Verfügbare Verweise angezeigt wird, klicken Sie auf Durchsuchen, und öffnen Sie dann "Solver.xlam" im Unterordner "\Programme\Microsoft Office\Office14\Library\SOLVER".

SolverOptions(MaxTime, Iterations, Precision, AssumeLinear, StepThru, Estimates, Derivatives, SearchOption, IntTolerance, Scaling, Convergence, AssumeNonNeg, PopulationSize, RandomSeed, MultiStart, RequireBounds, MutationRate, MaxSubproblems, MaxIntegerSols, SolveWithout, MaxTimeNoImp)

MaxTime Optional Variant. Die maximale Zeitspanne (in Sekunden), die Solver mit dem Lösen des Problems verbringt. Der Wert muss eine positive ganze Zahl sein.

Iterations Optional Variant. Die maximale Anzahl der Iterationen, die Solver zur Lösung des Problems verwendet. Der Wert muss eine positive ganze Zahl sein.

Precision Optional Variant. Eine Zahl zwischen 0 (null) und 1, die den Grad der Genauigkeit angibt, mit der Einschränkungen (einschließlich ganzzahligen Nebenbedingungen) erfüllt werden müssen. Die Standardgenauigkeit beträgt 0,000001. Eine kleinere Anzahl von Dezimalstellen (z. B. 0,0001) gibt einen niedrigeren Grad der Genauigkeit an. Im Allgemeinen gilt: Je höher der Grad der Genauigkeit (je kleiner die Zahl), desto länger braucht Solver, um Lösungen zu finden.

AssumeLinear Optional Variant. True, damit Solver annimmt, dass das zugrunde liegende Modell linear ist. Dies beschleunigt den Lösungsprozess, sollte aber nur verwendet werden, wenn alle Beziehungen im Modell linear sind. Der Standardwert ist False. StepThru Optional Variant. True, wenn Solver bei jedem Zwischenergebnisse anhalten soll. Sie können ein Makro an Löser übergeben, das in jeder Pause mit dem ShowRef-Argument der SolverSolve-Funktion ausgeführt wird. False, wenn Solver nicht bei jedem Zwischenergebnisse anhalten soll. Der Standardwert ist False.

Schätzungen Optional Variante. Gibt die Methode an, mit der anfängliche Schätzungen der Basisvariablen in jeder eindimensionalen Suche ermittelt werden: 1 steht für Tangentenschätzungen, 2 für quadratische Schätzungen. Tangentschätzungen verwenden eine lineare Extrapolation aus einem Tangentvektor. Quadratische Schätzungen verwenden eine quadratische Extrapolation; dies kann die Ergebnisse bei stark nichtlinearen Problemen verbessern. Der Standardwert ist 1 (Tangensschätzungen).

Derivatives Optional Variant. Gibt die Vorwärtsdifferenzierung oder zentrale Differenzierung für Schätzungen von partiellen Ableitungen der Ziel- und Einschränkungsfunktionen an: 1 steht für Vorwärtsdifferenzierung, 2 steht für zentrale Differenzierung. Zentrale Differenzierung erfordert mehr Tabellenneuberechnungen, kann aber bei Problemen hilfreich sein, die eine Meldung generieren, dass Solver die Lösung nicht verbessern konnte. Bei Einschränkungen, deren Werte sich in der Nähe ihrer Grenzwerte schnell ändern, sollten Sie die zentrale Differenzierung verwenden. Der Standardwert ist 1 (Vorwärtsdifferenzierung).

SearchOption Optional Variant. Verwenden Sie die Suchoptionen, um den Suchalgorithmus anzugeben, der bei jeder Iteration verwendet wird, um zu entscheiden, in welche Richtung durchsucht wird: 1 stellt die Newton-Suchmethode und 2 die Gradient-Suchmethode. Die Newton-Methode, die eine Quasi-Newton-Methode verwendet, ist die Standardmethode für die Suche.

IntTolerance Optional Variante. Eine Dezimalzahl zwischen 0 (null) und 100, die die prozentuale Toleranz für die Optimalität des Integers angibt. Dieses Argument gilt nur, wenn Integereinschränkungen definiert wurden; es gibt an, dass der Löser beendet werden kann, wenn eine praktikable Integerlösung gefunden wurde, deren Ziel innerhalb dieses Prozentsatzes der am besten bekannten Grenze für das Ziel der optimalen Lösung für echte Integer liegt. Eine größere prozentuale Toleranz beschleunigt in der Regel den Lösungsprozess.

Skalierung Optional Variante. Wenn sich das Ziel oder die Einschränkungen durch mehrere Größenordnungen unterscheiden, z. B. beim Maximieren des prozentualen Gewinns auf Grundlage von Investitionen in Höhe von Millionen US-Dollar, legen Sie diese Option auf True fest, damit Solver die Ziel- und Einschränkungswerte während der Berechnung intern auf ähnliche Größenordnungen skaliert. Wenn diese Option False ist, führt Solver die Berechnungen mit den ursprünglichen Werten des Ziels und der Einschränkungen durch. Der Standardwert ist True.

Convergence Optional Variant. Eine Zahl zwischen 0 (null) und 1, die die Konvergenztoleranz für die GRG Nonlinear Solving - und Evolutionary Solving -Methoden angibt. Wenn für die GRG-Methode die relative Änderung in der Zielzelle kleiner als diese Toleranz für die letzten fünf Iterationen ist, hält Solver an. Wenn bei der Evolutionary-Methode 99 % oder mehr der Mitglieder der Bevölkerung "Fitness"-Werte haben, deren relativer Unterschied (Prozentsatz) kleiner als diese Toleranz ist, hält Solver an. In beiden Fällen wird die Meldung "Solver konvergiert zur aktuellen Projektmappe. Alle Nebenbedingungen wurden eingehalten" angezeigt.

AssumeNonNeg Optional Variant. True, wenn Löser einen unteren Grenzwert von 0 (null) für alle Entscheidungsvariablenzellen annehmen soll, die keine expliziten unteren Grenzwerte im Listenfeld Einschränkung haben (die Zellen müssen nicht negative Werte enthalten). False, wenn Solver nur die im Listenfeld Einschränkung angegebenen Grenzwerte verwenden soll.

PopulationSize Optional Variant. True, wenn Löser einen unteren Grenzwert von 0 (null) für alle Entscheidungsvariablenzellen annehmen soll, die keine expliziten unteren Grenzwerte im Listenfeld Einschränkung haben (die Zellen müssen nicht negative Werte enthalten). False, wenn Solver nur die im Listenfeld "Einschränkung" angegebenen Grenzwerte verwendet soll.

RandomSeed Optional Variant. Eine positive ganze Zahl gibt einen festen Ausgangswert für den Zufallszahlengenerator an, der von der Evolutionary Solving -Methode und der Mehrfachstartmethode für die globale Optimierung verwendet wird. Das bedeutet, dass Solver die gleiche Lösung jedes Mal findet, wenn sie für ein Modell ausgeführt wird, das nicht geändert wurde. Der Wert 0 gibt an, dass Solver bei jeder Ausführung einen anderen Ausgangswert für den Zufallszahlengenerator verwenden soll, was jedes Mal zu anderen Lösungen führen kann, wenn er für ein Modell ausgeführt wird, das nicht geändert wurde.

MultiStart Optional Variant. True, wenn Löser zur globalen Optimierung die Mehrfachstartmethode mit der GRG Nonlinear Solving-Methode verwenden soll, wenn SolverSolve aufgerufen wird. False to have Solver run the GRG Solving method only once, without multistart, when SolverSolve is called.

RequireBounds Optional Variant. True, wenn die Evolutionary Solving-Methode und die Mehrfachstartmethode sofort nach einem Aufruf von SolverSolve mit einem Wert von 18 zurückgegeben werden sollen, wenn für die Variablen keine unteren und oberen Grenzen definiert wurden. False, wenn diese Methoden versuchen sollen, das Problem ohne Grenzen für alle Variablen zu lösen.

MutationRate Optional Variant. Eine Zahl zwischen 0 (null) und 1, die die Rate angibt, mit der die Evolutionary Solving -Methode "Mutationen" für vorhandene Grundgesamtheitsmitglieder der Grundgesamtheit erstellt. Eine höhere Mutationsrate neigt dazu, die Vielfalt der Population zu erhöhen und bessere Lösungen zu liefern.

MaxSubproblems Optional Variant. Die maximale Anzahl Teilprobleme, die Solver bei Problemen mit ganzzahligen Einschränkungen und bei Problemen, die über die Evolutionary Solving -Methode gelöst werden, untersucht. Der Wert muss eine positive ganze Zahl sein.

MaxIntegerSols Optional Variant. Die maximale Anzahl von machbaren (oder ganzzahlig machbaren) Lösungen, die Solver bei Problemen mit ganzzahligen Einschränkungen und bei Problemen, die über die Evolutionary Solving -Methode gelöst werden, berücksichtigt. Der Wert muss eine positive ganze Zahl sein.

SolveWithout Optional Variant. True, wenn Solver alle ganzzahligen Einschränkungen ignorieren und die "Relaxation" des Problems lösen soll. False, wenn Solver die ganzzahligen Einschränkungen bei der Problemlösung verwenden soll.

MaxTimeNoImp Optional Variante. Wenn die Evolutionary Solving -Methode verwendet wird, die maximale Zeitdauer (in Sekunden), während der Solver die Lösung fortsetzen soll, ohne deutlich verbesserte Lösungen zum Hinzufügen zur Grundgesamtheit zu finden. Der Wert muss eine positive ganze Zahl sein.

Beispiel

In diesem Beispiel wird die Precision-Option auf 0,001 festgelegt.

Worksheets("Sheet1").Activate 
SolverReset 
SolverOptions Precision:=0.001 
SolverOK SetCell:=Range("TotalProfit"), _ 
    MaxMinVal:=1, _ 
    ByChange:=Range("C4:E6") 
SolverAdd CellRef:=Range("F4:F6"), _ 
    Relation:=1, _ 
    FormulaText:=100 
SolverAdd CellRef:=Range("C4:E6"), _ 
    Relation:=3, _ 
    FormulaText:=0 
SolverAdd CellRef:=Range("C4:E6"), _ 
    Relation:=4 
SolverSolve UserFinish:=False 
SolverSave SaveArea:=Range("A33")

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.