1 @c Language: Brazilian Portuguese, Encoding: iso-8859-1
2 @c /simplex.texi/1.3/Sat Jun 2 00:13:30 2007//
4 * Introdução a simplex::
5 * Funções e Variáveis Definidas para simplex::
8 @node Introdução a simplex, Funções e Variáveis Definidas para simplex, simplex, simplex
9 @section Introdução a simplex
11 @code{simplex} é um pacote para otimização linear usando o algorítmo simplex.
17 @c minimize_sx(x+y, [3*x+2*y>2, x+4*y>3]);
20 (%i1) load("simplex")$
21 (%i2) minimize_sx(x+y, [3*x+2*y>2, x+4*y>3]);
23 (%o2) [--, [y = --, x = -]]
27 @node Funções e Variáveis Definidas para simplex, , Introdução a simplex, simplex
28 @section Funções e Variáveis Definidas para simplex
30 @defvr {Variável de opção} epsilon_sx
31 Valor padrão: @code{10^-8}
33 Epsilon usando para cálculos numéricos em @code{linear_program}.
35 Veja também: @code{linear_program}.
39 @deffn {Função} linear_program (@var{A}, @var{b}, @var{c})
41 @code{linear_program} é uma implementação do algorítmo simplex.
42 @code{linear_program(A, b, c)} calcula um vetor @var{x} para o qual @code{c.x} é o mínimo
43 possível entre vetores para os quais @code{A.x = b} e @code{x >= 0}. O argumento
44 @var{A} é uma matriz e os argumentos @var{b} e @var{c} são listas.
46 @code{linear_program} retorna uma lista contendo o vetor minimizado @var{x} e o
47 valor mínimo @code{c.x}. Se o problema for não associado, é retornado "Problem not bounded!" e
48 se o problema for não viável, é retornado "Problem not feasible!".
50 Para usar essa função primeiramente chame o pacote @code{simplex} com @code{load("simplex");}.
55 @c A: matrix([1,1,-1,0], [2,-3,0,-1], [4,-5,0,0])$
58 @c linear_program(A, b, c);
61 (%i2) A: matrix([1,1,-1,0], [2,-3,0,-1], [4,-5,0,0])$
64 (%i5) linear_program(A, b, c);
66 (%o5) [[--, 4, --, 0], - -]
70 Veja também: @code{minimize_sx}, @code{scale_sx}, e @code{epsilon_sx}.
74 @deffn {Função} maximize_sx (@var{obj}, @var{cond}, [@var{pos}])
76 Maximiza a função linear objetiva @var{obj} submetida a alguma restrição linear
77 @var{cond}. Veja @code{minimize_sx} para uma descrição detalhada de argumentos e valores de
81 Veja também: @code{minimize_sx}.
85 @deffn {Função} minimize_sx (@var{obj}, @var{cond}, [@var{pos}])
87 Minimiza uma função linear objetiva @var{obj} submetida a alguma restrição
88 linear @var{cond}. @var{cond} é uma lista de equações lineares ou
89 desigualdades. Em desigualdades estritas @code{>} é substituido por @code{>=}
90 e @code{<} por @code{<=}. O argumento opcional @var{pos} é uma lista de
91 variáveis de decisão que são assumidas como sendo positivas.
93 Se o mínimo existir, @code{minimize_sx} retorna uma lista que contém
94 o menor valor da função objetiva e uma lista de valores de variáveis de
95 decisão para os quais o mínimo é alcançado. Se o problema for não associado,
96 @code{minimize_sx} retorna "Problem not bounded!" e se o problema for
97 não viável, é retornado "Ploblem not feasible!".
99 As variáveis de decisão não são assumidas para serem não negativas por padrão. Se todas
100 as variáveis de dicisão forem não negativas, escolha @code{nonegative_sx} para @code{true}.
101 Se somente algumas das variáveis de decisão forem positivas, coloque-as então no argumento
102 opcional @var{pos} (note que isso é mais eficiente que adicionar
105 @code{minimize_sx} utiliza o algorítmo simplex que é implementado na função
106 @code{linear_program} do Maxima.
108 Para usar essa função primeiramente chame o pacote @code{simplex} com @code{load("simplex");}.
113 @c minimize_sx(x+y, [3*x+y=0, x+2*y>2]);
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, x+2*y>2]), nonegative_sx=true;
116 @c minimize_sx(x+y, [3*x+y>0]);
119 (%i1) minimize_sx(x+y, [3*x+y=0, x+2*y>2]);
121 (%o1) [-, [y = -, x = - -]]
123 (%i2) minimize_sx(x+y, [3*x+y>0, x+2*y>2]), nonegative_sx=true;
124 (%o2) [1, [y = 1, x = 0]]
125 (%i3) minimize_sx(x+y, [3*x+y=0, x+2*y>2]), nonegative_sx=true;
126 (%o3) Problem not feasible!
127 (%i4) minimize_sx(x+y, [3*x+y>0]);
128 (%o4) Problem not bounded!
132 Veja também: @code{maximize_sx}, @code{nonegative_sx}, @code{epsilon_sx}.
136 @defvr {Variável de opção} nonegative_sx
137 Valor padrão: @code{false}
139 Se @code{nonegative_sx} for verdadeiro (true) todas as variáveis de decisão para @code{minimize_sx}
140 e @code{maximize_sx} são assumidas para serem positivas.
142 Veja também: @code{minimize_sx}.