次の方法で共有


SolverOptions 関数

ソルバーの動作の詳細なオプションを設定します。 マウスを使った操作では、[ソルバー : オプション設定] ダイアログ ボックスで各オプションを指定することに相当します。

手記 ソルバー アドインは既定では有効になっていません。 この関数を使う前に、ソルバー アドインを有効にしてインストールしておく必要があります。 この方法については、「ソルバー関連の VBA 関数を使用する」を参照してください。 ソルバー アドインがインストールされたら、このアドインへの参照を設定する必要があります。 Visual Basic エディターでモジュールをアクティブにした状態で、[ツール] メニューの [参照設定] をクリックし、[使用できる参照][ソルバー] を選択します。 [ソルバー] チェック ボックスが [参照可能なライブラリ ファイル] に表示されない場合は、[参照] をクリックして \Program Files\Microsoft Office\Office14\Library\SOLVER サブフォルダーにある Solver.xlam を開きます。

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

MaxTime 省略可能 なバリアント型 (Variant)。 問題の解決にかかる時間の上限を秒単位で指定します。 値は正の整数である必要があります。

イテレーション 省略可能 なバリアント型 (Variant)。 問題を解決する際の最大反復回数を指定します。 値は正の整数である必要があります。

精度 省略可能 なバリアント型 (Variant)。 制約 (整数の制約を含む) を満たす精度を 0 ~ 1 の少数値で指定します。 既定の精度は、0.000001 です。 桁数が少ないと (0.0001 など)、精度は低くなります。 一般的に、指定する精度が高い (数値が小さい) ほど、解に到達するまでの時間が長くなります。

AssumeLinear 省略可能 なバリアント型 (Variant)。 True を指定すると、問題のモデルの関係が線形であると仮定して計算が行われるので、解決の速度を向上させることができます。 ただし、True を指定できるのは、モデルのすべての関係が線形である場合にのみです。 既定値は False です。 StepThru 省略可能 なバリアント型 (Variant)。 True を指定すると、1 回試行が行われるごとにソルバーが停止します。 SolverSolve 関数の ShowRef 引数を使用して、各一時停止で実行するマクロを ソルバー に渡すことができます。 False を指定すると、試行は連続して行われます。 既定値は False です。

見積もり 省略可能 なバリアント型 (Variant)。 一次探索ごとに変化する基本変数の初期推定値を取得するための方法を指定します。 1 を指定すると一次式、2 を指定すると二次式が設定されます。 一次式による方法では正接ベクトルによる線形外挿法が使われ、二次式による方法では二次外挿法が使われます。 既定値は 1 (一次式) です。

誘導 体 省略可能 なバリアント型 (Variant)。 目標関数と制約関数の部分派生関数の見積もりに対して前方差分または中央差分を指定します。1 は前方差分を表し、2 は中央差分を表します。 一元的な差分では、より多くのワークシート再計算が必要ですが、ソルバーではソリューションを改善できなかったというメッセージが生成される問題に役立つ場合があります。 値が制限の近くで急速に変化する制約では、一元的な差分を使用する必要があります。 既定値は 1 (前方差分) です。

SearchOption 省略可能 なバリアント型 (Variant)。 検索オプションを使用して、各イテレーションで使用される検索アルゴリズムを指定して、検索する方向を決定します。1 はニュートン検索メソッドを表し、2 は複合検索メソッドを表します。 Newton は、準ニュートンメソッドを使用する既定の検索メソッドです。

IntTolerance Optional Variant. A decimal number between 0 (zero) and 100 that specifies the Integer Optimality percentage tolerance. This argument applies only if integer constraints have been defined; it specifies that Solver can stop if it has found a feasible integer solution whose objective is within this percentage of the best known bound on the objective of the true integer optimal solution. A larger percentage tolerance would tend to speed up the solution process.

スケーリング 省略可能 なバリアント型 (Variant)。 億単位の投資についての最大の利益をパーセント単位で求めるときなど、目的セルと制約で単位が数桁も違う値を扱うとき、計算中に目的セルと制約の値の桁数が同じになるように内部で調節する場合は、このオプションを True に設定します。 このオプションを False に設定した場合、ソルバーでは、目的セルと制約の本来の値を使用して計算が実行されます。 既定値は True です。

収束 省略可能 なバリアント型 (Variant)。 GRG 非線形解法および進化的解法の収束の交差を示す 0 ~ 1 の小数値を指定します。 GRG 解法の場合、目的セルの値の相対的な変化量が、直前の 5 回の反復計算でこの収束値よりも小さいと、ソルバーが停止します。 進化的解法の場合、母集団のメンバーの 99% 以上において、その "適合" 値の相対的な差異 (パーセンテージ) がこの収束値よりも小さいと、ソルバーが停止します。 どちらの場合も、"解が見つかりました。 制約条件は満たされました" というメッセージが表示されます。

AssumeNonNeg 省略可能 なバリアント型 (Variant)。 True を 指定すると、[ 制約 ] リスト ボックスに明示的な下限がないすべてのデシジョン変数セルの下限が 0 (ゼロ) と仮定されます (セルには負でない値が含まれている必要があります)。 [制約] ボックスの一覧で指定した制限値のみを使用する場合は False を指定します。

PopulationSize Optional Variant. True を 指定すると、[ 制約 ] リスト ボックスに明示的な下限がないすべてのデシジョン変数セルの下限が 0 (ゼロ) と仮定されます (セルには負でない値が含まれている必要があります)。 False to have Solver use only the limits specified in the Constraint list box.

RandomSeed Optional Variant. A positive integer specifies a fixed seed for the random number generator used by the Evolutionary Solving method and the multistart method for global optimization. This means that Solver will find the same solution each time it is run on a model that has not changed. A zero value specifies that Solver should use a different seed for the random number generator each time it runs, which may yield different solutions each time it is run on a model that has not changed.

MultiStart 省略可能 なバリアント型 (Variant)。 True の場合、SolverSolve が呼び出されたときに、GRG 非線形解析メソッドを使用してグローバル最適化にマルチスタートメソッドを使用します。 False を指定すると、SolverSolve が呼び出されたときにGRG Solving メソッドを 1 回だけ実行し、マルチスタートなしで実行できます。

RequireBounds 省略可能 なバリアント型 (Variant)。 True を指定すると、いずれかの変数に下限と上限の両方が定義されていない場合に、 SolverSolve の呼び出しからすぐに値 18 が返されます。 False を指定すると、これらの解法では、すべての変数で上限値と下限値を使用せずに問題の解決を試行します。

MutationRate Optional Variant. A number between 0 (zero) and 1 that specifies the rate at which the Evolutionary Solving method will make "mutations" to existing population members. A higher Mutation rate tends to increase the diversity of the population, and may yield better solutions.

MaxSubproblems Optional Variant. The maximum number of subproblems Solver will explore in problems with integer constraints, and problems solved via the Evolutionary Solving method. The value must be a positive integer.

MaxIntegerSols Optional Variant. The maximum number of feasible (or integer feasible) solutions Solver will consider in problems with integer constraints, and problems solved via the Evolutionary Solving method. The value must be a positive integer.

SolveWithout 省略可能 なバリアント型 (Variant)。 ソルバーで整数の制約を無視し、問題の "緩和" を解決するには、True を指定します。 問題の解決に整数の制約を使用するには、False を指定します。

MaxTimeNoImp 省略可能 なバリアント型 (Variant)。 進化解法を使用すると、母集団に追加する大幅に改善された解を見つけずに、ソルバーの最大時間 (秒単位) が引き続き解決されます。 値は正の整数である必要があります。

次の使用例は、精度を 0.001 に指定します。

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")

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。