2 * Introduction to simplex::
3 * Functions and Variables for simplex::
6 @node Introduction to simplex, Functions and Variables for simplex, simplex, simplex
7 @section Introduction to simplex
9 @code{simplex}はシンプレックスアルゴリズムを使った線形最適化のパッケージです。
15 @c minimize_lp(x+y, [3*x+2*y>2, x+4*y>3]);
18 (%i1) load("simplex")$
19 (%i2) minimize_lp(x+y, [3*x+2*y>2, x+4*y>3]);
21 (%o2) [--, [y = --, x = -]]
26 @category{Numerical methods}
27 @category{Optimization}
28 @category{Share packages}
29 @category{Package simplex}
32 @node Functions and Variables for simplex, , Introduction to simplex, simplex
33 @section Functions and Variables for simplex
35 @defvr {オプション変数} epsilon_lp
38 @code{linear_program}の数値計算で使われるイプシロン。
40 以下も参照してください: @code{linear_program}
43 @category{Package simplex}
48 @deffn {関数} linear_program (@var{A}, @var{b}, @var{c})
50 @code{linear_program}は
52 @code{linear_program(A, b, c)}は、
53 @code{A.x = b}かつ@code{x >= 0}を満たすベクトルの中で@code{c.x}が可能な最小となる
55 引数@var{A}は行列で、引数@var{b}と@var{c}はリストです。
57 @code{linear_program}は、
58 最小化ベクトル@var{x}と最小値@code{c.x}を含む
61 "Problem not bounded!"を返し、
63 "Problem not feasible!"を返します。
65 この関数を使うためには、最初に@code{load(simplex);}で@code{simplex}パッケージをロードしてください。
70 @c A: matrix([1,1,-1,0], [2,-3,0,-1], [4,-5,0,0])$
73 @c linear_program(A, b, c);
76 (%i2) A: matrix([1,1,-1,0], [2,-3,0,-1], [4,-5,0,0])$
79 (%i5) linear_program(A, b, c);
81 (%o5) [[--, 4, --, 0], - -]
85 以下も参照してください: @code{minimize_lp}, @code{scale_lp}, @code{epsilon_lp}
88 @category{Package simplex}
89 @category{Numerical methods}
94 @deffn {関数} maximize_lp (@var{obj}, @var{cond}, [@var{pos}])
96 いくつかの線形制約@var{cond}に従う線形目標関数@var{obj}を最大化します。
98 @code{minimize_lp}を参照してください。
101 以下も参照してください: @code{minimize_lp}.
104 @category{Package simplex}
105 @category{Numerical methods}
110 @deffn {関数} minimize_lp (@var{obj}, @var{cond}, [@var{pos}])
112 いくつかの線形制約@var{cond}に従う線形目標関数@var{obj}を最小化します。
113 @var{cond}は線形等式や不等式のリストです。
114 厳密な不等式では、@code{>}は@code{>=}に、
115 @code{<}は@code{<=}に置き換えられます。
121 目標関数の最小値と最小が得られる決定変数値のリスト
124 @code{minimize_lp}は"Problem not bounded!"を返し、
126 "Ploblem not feasible!"を返します。
128 決定変数はデフォルトでは非負とは仮定されません。
130 @code{nonegative_lp}を@code{true}に設定してください。
132 オプション引数@var{pos}の中でそれらをリストしてください。
133 (これは制約を足すより効率的だということに注意してください。)
136 Maximaの@code{linear_program}関数で実装された
139 この関数を使うためには、最初に@code{load(simplex);}で
140 @code{simplex}パッケージをロードしてください。
145 @c minimize_lp(x+y, [3*x+y=0, x+2*y>2]);
146 @c minimize_lp(x+y, [3*x+y>0, x+2*y>2]), nonegative_lp=true;
147 @c minimize_lp(x+y, [3*x+y=0, x+2*y>2]), nonegative_lp=true;
148 @c minimize_lp(x+y, [3*x+y>0]);
151 (%i1) minimize_lp(x+y, [3*x+y=0, x+2*y>2]);
153 (%o1) [-, [y = -, x = - -]]
155 (%i2) minimize_lp(x+y, [3*x+y>0, x+2*y>2]), nonegative_lp=true;
156 (%o2) [1, [y = 1, x = 0]]
157 (%i3) minimize_lp(x+y, [3*x+y=0, x+2*y>2]), nonegative_lp=true;
158 (%o3) Problem not feasible!
159 (%i4) minimize_lp(x+y, [3*x+y>0]);
160 (%o4) Problem not bounded!
164 いかも参照してください: @code{maximize_lp}, @code{nonegative_lp}, @code{epsilon_lp}。
167 @category{Package simplex}
168 @category{Numerical methods}
173 @defvr {オプション変数} nonegative_lp
176 もし@code{nonegative_lp}がtrueなら、
177 @code{minimize_lp}と@code{maximize_lp}の決定変数すべては正と仮定されます。
179 以下も参照してください: @code{minimize_lp}。
182 @category{Package simplex}