Next: simplification, Previous: romberg [Contents][Index]
Next: Functions and Variables for simplex, Previous: simplex, Up: simplex [Contents][Index]
simplex
はシンプレックスアルゴリズムを使った線形最適化のパッケージです。
例:
(%i1) load("simplex")$ (%i2) minimize_lp(x+y, [3*x+2*y>2, x+4*y>3]); 9 7 1 (%o2) [--, [y = --, x = -]] 10 10 5
Previous: Introduction to simplex, Up: simplex [Contents][Index]
デフォルト値: 10^-8
linear_program
の数値計算で使われるイプシロン。
以下も参照してください: linear_program
linear_program
は
シンプレックスアルゴリズムの実装です。
linear_program(A, b, c)
は、
A.x = b
かつx >= 0
を満たすベクトルの中でc.x
が可能な最小となる
ベクトルxを計算します。
引数Aは行列で、引数bとcはリストです。
linear_program
は、
最小化ベクトルxと最小値c.x
を含む
リストを返します。
もし問題が有界でないなら、
"Problem not bounded!"を返し、
もし問題が実現可能でないなら、
"Problem not feasible!"を返します。
この関数を使うためには、最初にload("simplex");
でsimplex
パッケージをロードしてください。
例:
(%i2) A: matrix([1,1,-1,0], [2,-3,0,-1], [4,-5,0,0])$ (%i3) b: [1,1,6]$ (%i4) c: [1,-2,0,0]$ (%i5) linear_program(A, b, c); 13 19 3 (%o5) [[--, 4, --, 0], - -] 2 2 2
以下も参照してください: minimize_lp
, scale_lp
, epsilon_lp
いくつかの線形制約condに従う線形目標関数objを最大化します。
引数と戻り値の詳細な記述に関しては、
minimize_lp
を参照してください。
以下も参照してください: minimize_lp
.
いくつかの線形制約condに従う線形目標関数objを最小化します。
condは線形等式や不等式のリストです。
厳密な不等式では、>
は>=
に、
<
は<=
に置き換えられます。
オプションの引数posは
正と仮定される決定変数のリストです。
もし最小が存在するなら、
minimize_lp
は
目標関数の最小値と最小が得られる決定変数値のリスト
を含むリストです。
もし問題が有界でないなら、
minimize_lp
は"Problem not bounded!"を返し、
もし問題が実現可能でないなら、
"Ploblem not feasible!"を返します。
決定変数はデフォルトでは非負とは仮定されません。
もし決定変数すべてが正なら、
nonegative_lp
をtrue
に設定してください。
もし決定変数のいくつかだけが正なら、
オプション引数posの中でそれらをリストしてください。
(これは制約を足すより効率的だということに注意してください。)
minimize_lp
は
Maximaのlinear_program
関数で実装された
シンプレックスアルゴリズムを使います。
この関数を使うためには、最初にload("simplex");
で
simplex
パッケージをロードしてください。
例:
(%i1) minimize_lp(x+y, [3*x+y=0, x+2*y>2]); 4 6 2 (%o1) [-, [y = -, x = - -]] 5 5 5 (%i2) minimize_lp(x+y, [3*x+y>0, x+2*y>2]), nonegative_lp=true; (%o2) [1, [y = 1, x = 0]] (%i3) minimize_lp(x+y, [3*x+y=0, x+2*y>2]), nonegative_lp=true; (%o3) Problem not feasible! (%i4) minimize_lp(x+y, [3*x+y>0]); (%o4) Problem not bounded!
いかも参照してください: maximize_lp
, nonegative_lp
, epsilon_lp
。
デフォルト値: false
もしnonegative_lp
がtrueなら、
minimize_lp
とmaximize_lp
の決定変数すべては正と仮定されます。
以下も参照してください: minimize_lp
。
Next: simplification, Previous: romberg [Contents][Index]