1 @c /simplex.texi/1.2/Mon May 15 07:55:16 2006//
3 * Introdução a simplex::
4 * Definições para simplex::
7 @node Introdução a simplex, Definições para simplex, simplex, simplex
8 @section Introdução a simplex
10 @code{simplex} é um pacote para optimização linear usando o algoritmo simplex.
16 @c minimize_sx(x+y, [3*x+2*y>2, x+4*y>3]);
19 (%i1) load("simplex")$
20 (%i2) minimize_sx(x+y, [3*x+2*y>2, x+4*y>3]);
22 (%o2) [--, [y = --, x = -]]
26 @node Definições para simplex, , Introdução a simplex, simplex
27 @section Definições para simplex
29 @defvr {Variável de opção} epsilon_sx
30 Valor por omissão: @code{10^-8}
32 Epsilon usando para cálculos numéricos em @code{linear_program}.
34 Veja também: @code{linear_program}.
38 @deffn {Função} linear_program (@var{A}, @var{b}, @var{c})
40 @code{linear_program} é uma implementação do algoritmo simplex.
41 @code{linear_program(A, b, c)} calcula um vetor @var{x} para o qual @code{c.x} é o mínimo
42 possível entre vetores para os quais @code{A.x = b} e @code{x >= 0}. O argumento
43 @var{A} é uma matriz e os argumentos @var{b} e @var{c} são listas.
45 @code{linear_program} retorna uma lista contendo o vetor minimizado @var{x} e o
46 valor mínimo @code{c.x}. Se o problema for não associado, é retornado "Problem not bounded!" e
47 se o problema for não viável, é retornado "Problem not feasible!".
49 Para usar essa função primeiramente chame o pacote @code{simplex} com @code{load("simplex");}.
54 @c A: matrix([1,1,-1,0], [2,-3,0,-1], [4,-5,0,0])$
57 @c linear_program(A, b, c);
60 (%i2) A: matrix([1,1,-1,0], [2,-3,0,-1], [4,-5,0,0])$
63 (%i5) linear_program(A, b, c);
65 (%o5) [[--, 4, --, 0], - -]
69 Veja também: @code{minimize_sx}, @code{scale_sx}, e @code{epsilon_sx}.
73 @deffn {Função} maximize_sx (@var{obj}, @var{cond}, [@var{pos}])
75 Maximiza a função linear objetiva @var{obj} submetida a alguma restrição linear
76 @var{cond}. Veja @code{minimize_sx} para uma descrição detalhada de argumentos e valores de
80 Veja também: @code{minimize_sx}.
84 @deffn {Função} minimize_sx (@var{obj}, @var{cond}, [@var{pos}])
86 Minimiza uma função linear objetiva @var{obj} submetida a alguma restrição
87 linear @var{cond}. @var{cond} é uma lista de equações lineares ou
88 desigualdades. Em desigualdades estritas @code{>} é substituido por @code{>=}
89 e @code{<} por @code{<=}. O argumento opcional @var{pos} é uma lista de
90 variáveis de decisão que são assumidas como sendo positivas.
92 Se o mínimo existir, @code{minimize_sx} retorna uma lista que contém
93 o menor valor da função objetiva e uma lista de valores de variáveis de
94 decisão para os quais o mínimo é alcançado. Se o problema for não associado,
95 @code{minimize_sx} retorna "Problem not bounded!" e se o problema for
96 não viável, é retornado "Ploblem not feasible!".
98 As variáveis de decisão não são assumidas para serem não negativas por padrão. Se todas
99 as variáveis de dicisão forem não negativas, escolha @code{nonegative_sx} para @code{true}.
100 Se somente algumas das variáveis de decisão forem positivas, coloque-as então no argumento
101 opcional @var{pos} (note que isso é mais eficiente que adicionar
104 @code{minimize_sx} utiliza o algoritmo simplex que é implementado na função
105 @code{linear_program} do Maxima.
107 Para usar essa função primeiramente chame o pacote @code{simplex} com @code{load("simplex");}.
112 @c minimize_sx(x+y, [3*x+y=0, x+2*y>2]);
113 @c minimize_sx(x+y, [3*x+y>0, x+2*y>2]), nonegative_sx=true;
114 @c minimize_sx(x+y, [3*x+y=0, x+2*y>2]), nonegative_sx=true;
115 @c minimize_sx(x+y, [3*x+y>0]);
118 (%i1) minimize_sx(x+y, [3*x+y=0, x+2*y>2]);
120 (%o1) [-, [y = -, x = - -]]
122 (%i2) minimize_sx(x+y, [3*x+y>0, x+2*y>2]), nonegative_sx=true;
123 (%o2) [1, [y = 1, x = 0]]
124 (%i3) minimize_sx(x+y, [3*x+y=0, x+2*y>2]), nonegative_sx=true;
125 (%o3) Problem not feasible!
126 (%i4) minimize_sx(x+y, [3*x+y>0]);
127 (%o4) Problem not bounded!
131 Veja também: @code{maximize_sx}, @code{nonegative_sx}, @code{epsilon_sx}.
135 @defvr {Variável de opção} nonegative_sx
136 Valor por omissão: @code{false}
138 Se @code{nonegative_sx} for verdadeiro (true) todas as variáveis de decisão para @code{minimize_sx}
139 e @code{maximize_sx} são assumidas para serem positivas.
141 Veja também: @code{minimize_sx}.