Constrained Maximize(expr, {x1(low1, up1), x2(low2, up2), ...}, messages)
説明
式exprを最大化する引数xの値を求める。引数はリストで指定すること。各引数に対して下限と上限を括弧で囲んで指定するか、オプションのSet Variable Limit()メッセージを使用します。x引数には、スカラーまたはベクトルを指定できます。
以下のメッセージで、Aは係数の行列です。x = [x1, x2, ...]は、引数のベクトルです。b は、式の右辺となるベクトルです。
メッセージ
<<Less than EQ({A, b})
指定された値以下に制約する(A*x <= b)。
<<Greater Than EQ({A, b})
指定された値以上に制約する(A*x >= b)。
<<Equal To({A, b})
指定された値に制約する(A*x = b)。
<<Starting Values([x1Start, x2Start, ...])
初期値を指定する。
<<Max Iter(int)
実行される反復の最大回数を指定する整数。
<<Tolerance(p)
pは収束基準値。デフォルト値は10-5。
<<Show Details("true")
結果のリスト(目標値、反復回数、勾配、ヘッセ行列)を戻す。最適化のステップごとの結果をログに出力する。
<<SetVariableLimit({low,high})
最適化変数の下限と上限のベクトルを指定する。
Constrained Minimize(expr, {x1(low1, up1), x2(low2, up2), ...}, messages)
説明
式exprを最小化する引数xの値を求める。引数はリストで指定すること。各引数に対して下限と上限を括弧で囲んで指定するか、オプションのSet Variable Limit()メッセージを使用します。x引数には、スカラーまたはベクトルを指定できます。
以下のメッセージで、Aは係数の行列です。x = [x1, x2, ...]は、引数のベクトルです。b は、式の右辺となるベクトルです。
メッセージ
<<Less than EQ({A, b})
指定された値以下に制約する(A*x <= b)。
<<Greater Than EQ({A, b})
指定された値以上に制約する(A*x >= b)。
<<Equal To({A, b})
指定された値に制約する(A*x = b)。
<<Starting Values([x1Start, x2Start, ...])
初期値を指定する。
<<Max Iter(int)
実行される反復の最大回数を指定する整数。
<<Tolerance(p)
pは収束基準値。デフォルト値は10-5。
<<Show Details("true")
結果のリスト(目標値、反復回数、勾配、ヘッセ行列)を戻す。最適化のステップごとの結果をログに出力する。
<<SetVariableLimit({low,high})
最適化変数の下限と上限のベクトルを指定する。
Desirability(yVector, desireVector, y)
説明
3点を通過するという条件のもと、応答変数(y)の満足度を決定する関数を定義する。yVectorとdesireVectorは、満足度関数を決定する3点に対応する行列です。実際の関数は、満足度値が大きい方が良いか、小さい方が良いか、目標値に合わせるか、または目標値がないかのいずれであるかによって異なります。
戻り値
満足度関数
引数
yVector
3つの入力値。
desireVector
対応する3つの満足度の値。
y
満足度を計算する値。
LPSolve(A, b, c, L, U, neq, nle, nge, <slackVars(Boolean)>)
説明
戻り値のリストの第1要素は、決定変数の値(slackVarsに1が指定された場合にはスラック変数の値も含む)。第2要素は、目的変数の最適値(存在する場合のみ)。
引数
A
制約式の係数を表す行列。
b
制約式の右辺値を列にした行列。
c
目的関数のコスト係数のベクトル。
L, U
下限値と上限値を表す行列。
neq
等号制約式の数。
nle
「以下」を示す不等号制約式の数。
nge
「以上」を示す不等号制約式の数。
slackVars(Boolean)
(オプション)決定変数に加えて、スラック変数も戻すかどうかを指定する。デフォルト値は0です。
ノート
制約式は、等号制約、「以下」を示す不等号制約、「以上」を示す不等号制約の順に指定しなければなりません。
Maximize(expr, {x1(low1, up1), x2(low2, up2), ...}, messages)
説明
式exprを最大化する引数xの値を求める。引数はリストで指定すること。各引数の下限および上限を、括弧内に指定できる。また、反復の最大回数、収束基準値、最適化の詳細表示を指定する引数もある。ヘッセ行列について解析的微分が行える場合は、Newton-Raphson法が使用される。それ以外の場合は、対称ランクワン法(SR1)に基づく準Newton法が使用される。
メッセージ
<<Max Iter(int)
実行される反復の最大回数を指定する整数。デフォルトの最大回数は250です。
<<Tolerance(p)
pは収束基準値。デフォルト値は10-8。
<<Details("both" | "displaySteps" | "returnDetails")
どの出力を戻すかを指定する。"displaySteps"を指定した場合、最適化のステップごとの結果がログに出力されます。"returnDetails"を指定した場合、関数は、結果のリスト(目標値、反復回数、勾配、ヘッセ行列)を戻します。"both"を指定した場合、戻り値とログへの出力の両方が取得できます。
<<Gradient(exprList)
最適化に使用する勾配を定義する式のリスト。リストに含まれる各式は、式exprを微分したものです。
<<Hessian(exprList)
最適化に使用するヘッセ行列を定義する式のリスト。リストに含まれる各式は、ヘッセ行列の上三角部分を行優先順に並べたものです。
<<Method(NR | SR1)
最適化をNewton-Raphson(NR)法と対称ランクワン(SR1)法のどちらで行うかを指定する。
<<UseNumericDeriv("true")
最適化で数値近似が使用されるよう指定する。
Minimize(expr, {x1(low1, up1), x2(low2, up2), ...}, messages)
説明
式exprを最小化する引数リストxの値を求める。各引数の下限および上限を、括弧内に指定できる。また、反復の最大回数、収束基準値、最適化の詳細表示を指定する引数もある。ヘッセ行列について解析的微分が行える場合は、Newton-Raphson法が使用される。それ以外の場合は、対称ランクワン法(SR1)に基づく準Newton法が使用される。
メッセージ
<<Max Iter(int)
実行される反復の最大回数を指定する整数。デフォルトの最大回数は250です。
<<Tolerance(p)
pは収束基準値。デフォルト値は10-8。
<<Details("both" | "displaySteps" | "returnDetails")
どの出力を戻すかを指定する。"displaySteps"を指定した場合、最適化のステップごとの結果がログに出力されます。"returnDetails"を指定した場合、関数は、結果のリスト(目標値、反復回数、勾配、ヘッセ行列)を戻します。"both"を指定した場合、戻り値とログへの出力の両方が取得できます。
<<Gradient(exprList)
最適化に使用する勾配を定義する式のリスト。リストに含まれる各式は、式exprを微分したものです。
<<Hessian(exprList)
最適化に使用するヘッセ行列を定義する式のリスト。リストに含まれる各式は、ヘッセ行列の上三角部分を行優先順に並べたものです。
<<Method(NR | SR1)
最適化をNewton-Raphson(NR)法と対称ランクワン(SR1)法のどちらで行うかを指定する。
<<UseNumericDeriv("true")
最適化で数値近似が使用されるよう指定する。