Escolar Documentos
Profissional Documentos
Cultura Documentos
O primeiro algoritmo de programao linear em tempo polinomial no pior caso foi proposto
por Leonid Khachiyan em 1979. Foi baseado no [mtodo do elipside] da nonlinear
optimization de Naum Shor, que uma generalizao do mtodo da elipside da [optimizao
convexa] de Arkadi Nemirovski, uma dos ganhadores do John von Neumann Theory
Prize 2003, e D. Yudin.
Em 1984, Narendra Karmarkar props seu mtodo projetivo, que tornou-se o primeiro
algoritmo a apresentar um bom desempenho tanto na teoria como na prtica: seu pior caso de
complexidade polinomial e os problemas prticos de experincia mostram que ele
razoavelmente eficiente em comparao com o algoritmo simplex. Desde o mtodo de
Karmarkar, muitos outros mtodos de pontos interiores tm sido propostos e analisados. Um
mtodo bastante popular o Mtodo Preditor-corretor de Mehrotra, cuja atuao possui bom
desempenho na prtica, ainda que pouco se saiba sobre ele na teoria.
1
A opinio mais recente entre os estudiosos que a eficincia das boas implementaes dos
mtodos baseados em simplex e dos pontos interiores so similares para a aplicao de rotina
no programa linear.
2
Algoritmos Particulares Em Programao Linear
x 0, Ax = b e c x mnimo.
5 x1 14 x2 + 32 x3 + 2 x4 97 x5 + 8 x6 + 3 x7 + 4 x8 = 832
22 x1 + 4 x2 + 0 x3 77 x4 + 3 x5 + 8 x6 + 0 x7 + 4 x8 = 13
0 x1 + 0 x2 + 1 x3 + 11 x4 + 0 x5 66 x6 + 0 x7 + 22 x8 = 33
1 x1 2 x2 3 x3 + 0 x4 + 0 x5 + 0 x6 + 0 x7 + 33 x8 = 555
3 x1 + 4 x2 5 x3 + 6 x4 + 0 x5 + 0 x6 + 1 x7 + 0 x8 .
3
O presente trabalho mais algbrica que geomtrica. O enfoque algortmico: toda a teoria
derivada dos algoritmos, particularmente do Simplex.
O universo natural da programao linear o dos nmeros racionais. O livro supe, portanto,
que dispomos de um agente computacional capaz de executar aritmtica racional exata. Uma
das verses do Simplex manipula os numeradores e denominadores dos nmeros racionais em
separado e portanto s usa aritmtica inteira. Segue da uma verso do Teorema da Dualidade
que especifica delimitaes superiores para o nmero de dgitos das solues do problema de
programao linear.
A hiptese de que nossas matrizes tm posto pleno e a hiptese de que dispomos de uma
"soluo vivel" ao iniciar a execuo do Simplex). Tais hipteses pouco contribuem para
simplificar a discusso.
O objectivo que queira compreender as interconexes lgicas entre as vrias peas desse
quebra-cabeas que a programao linear. .
1.3 Produtos
Matrizes e vetores podem ser multiplicados entre si. A verso mais bsica dessa operao de
multiplicao envolve dois vetores.
4
x y = x[Q] y[Q] + x[NQ] y[NQ] .
a b c d e
11 22 33 44 55
E b d c a
35 41 37 39 43
para cada m em M. claro que A x um vetor sobre M. Analogamente, para qualquer vetor y sobre
M, o produto de y por A o vetor y A definido pela expresso
Para cada n em N. fcil verificar que, para qualquer parte P de M e qualquer parte Q de N,
5
Produto matriz-por-matriz. Para qualquer matriz A sobre L M e qualquer matriz B sobre
MN, o produto de A por B a matriz AB sobre LN, A B definida pela expresso
(A B)[l, n] = A[l, ] B[ , n]
Para cada l em L e cada n em N. fcil verificar que, para qualquer parte P de L e qualquer
parte Q de N,
1Algoritmo de Gauss-Jordan
Uma matriz E sobre M N escalonada se existem uma parte P de M e uma parte Q de N tais
que
1
Referncias ao clebre Carl Friedrich Gauss (17771855) e ao (menos clebre)Wilhelm Jordan
(18421899), que popularizou o algoritmo [Jor20].
6
E[P,Q] uma matriz de bijeo e E[MP,N] = O . matriz escalonada
Q
00001
00010
00100 P Figura 2.1: Matriz escalonada.
01000
10000
00000000000000
0 1 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 -2 1 44 66 1
0 0 0 0 0 0 0 1 1 33 0 55 77 0
0 0 0 0 0 0 0 0 0 0
Exemplos de matrizes escalonadas. A primeira tem bases ; e ;. A segunda tem base de linhas 1, 2,
3, 4 e base de colunas 1, 2, 3, 4. Na ltima, a base de linhas {2, 3} e h duas bases de colunas
distintas: {1, 3} e {1, 6}.
2. Esboo do algoritmo
CASO 1: E[MP, ] 6= O .
CASO 2: E[MP, ] = O .
7
Devolva E e pare. 2
2 1 5 1
2 2 4 0
1 1 3 1
0 1/2 1/2
1 5/2 1/2
0 1 1 1
0 3/2 1/2 1/2
0 1 1 1
1 0 3 1
0 0 0 0
0 0 1 1
0 1 0 0
1 0 0 2
0 0 0 0
0 0 1 1
1 1 0 2 1 1 0 1 1 1 2 0
1 2 0 5 8 5 0 3 2 1 5 1
2 2 1 4 2 0 1 0 2 2 4 0
1 1 0 3 3 2 0 1 1 1 3 1
8
Figura 2.4: A figura define matrizes F , G e D. Verifique que FG a identidade e que GD
escalonada.
1 0 0 0 1 0 2 3 4 1 0 2 3 4.
0 1 0 0 0 1 4 5 6 0 1 4 5 6
0 0 0 0 6 7 8 9 0 0 0 0 0 0
0 0 0 0 9 8 7 6 5 0 0 0 0 0
Figura 2.5: A figura define matrizes G e D e exibe GD. Observe que GD escalonada mas no
existe F tal que FG = I .
3.0 Algoritmo
Para dizer, exatamente, o que o algoritmo faz preciso especificar a relao entre as matrizes E e
D. A matriz E equivalente matriz D no seguinte sentido: existe uma matriz inversvel G tal
que E = GD.
O esboo da seo anterior no devolve G, o que impede o usurio de conferir a equivalncia
entre E e D. A verso do algoritmo que descreveremos abaixo devolve G e sua inversa F ; o
usurio pode ento, ao preo de duas multiplicaes de matrizes, verificar que G inversvel e
que GD escalonada.
Seja F0,G0,E0 o resultado da pivotao de F,G,E em torno de h, k. Comece nova iterao com
F0 , G0 , E0 e P + h nos papis de F , G, E e P .
CASO 2: E[MP, ] = O .
Devolva F , G e pare. 2
9
A operao de pivotao a que se refere o texto do algoritmo definida da seguinte maneira:
dados elementos h de M e k de N, o resultado da pivotao de F,G,E em torno de h, k o
terno F0,G0,E0 de matrizes definido pelas equaes.
F0 [ , h] = D[ , k] , F0 [ , i] = F[ , i]
A chave para entender como e por que o algoritmo funciona est na seguinte lista de
propriedades. As propriedades valem no incio de cada iterao e so por isso mesmo,
chamadas invariantes.
(i2) FG = I e
(i3) GD = E ,
Q
0 0 1
P 0 1 0
1 0 0
0 0 0
0 0 0
0 0 0
Figura 2.8: Matriz E no incio de uma iterao do algoritmo de Gauss-Jordan.
10
Essas propriedades valem, em particular, no incio da ltima iterao, quando ocorre o caso 2.
Nesse caso, E escalonada em virtude de (i1) e da definio do caso 2; alm disso, FG = I em
virtude de (i2). Portanto, ao devolver F e G o algoritmo estar se comportanto como prometeu.
nos papis de F , G, E, P e Q. Para demonstrar esta afirmao basta verificar que no fim do caso
1 tem-se
E [ ,Q] = E[ ,Q] , (2.a)
E[ , k] = I[ , h] , (2.b)
FG`= I , (2.c)
E` = G`D. (2.d)
11
Concluso
O algoritmo de Gauss-Jordan transforma qualquer matriz dada em uma matriz escalonada
equivalente. O algoritmo, juntamente com sua anlise, constitui prova do seguinte teorema:
Para toda matriz D, existem matrizes F e G tais que FG = I e GD escalonada. Vale tambm o
seguinte adendo: se os componentes de D so nmeros racionais ento existem matrizes
racionais F e G com as propriedades citadas. O algoritmo de Gauss-Jordan muitas vezes
executado de modo apenas aproximado: os nmeros so representados em ponto flutuante,
com um nmero fixo de dgitos, e as operaes aritmticas so executadas com erro de
arredondamento.
Os erros podem mascarar completamente os resultados; nmeros que deveriam ser nulos, por
exemplo, podem se apresentar como diferentes de zero, e o algoritmo pode deixar de
reconhecer o caso 2. H uma grande coleo de truques que visam controlar, em alguma
medida, tais erros de arredondamento
12
Referencias bibliograficas
13