Você está na página 1de 13

Programao Linear

Prof. Antnio Carlos Moretti

Aula 20 - Mtodo Simplex e Anlise de Complexidade


Conceitos de Complexidade Computacional
Complexidade do Mtodo Simplex
O Mtodo dos Elipsides
O Mtodo dos Elipsides para PL

1. Mtodo Simplex e Anlise de Complexidade


O Mtodo Simplex, descrito ao longo do curso, uma ferramenta
computacional extremamente eficiente. Para certos problemas, no entanto,
pelo menos na teoria, o mtodo tem se mostrado ineficiente. Isto nos leva
ao estudo da complexidade computacional da Programao Linear. A
anlise do pior dos casos mostra que o Mtodo Simplex e suas variantes
podem efetuar um nmero exponencial de trocas de bases para alcanar
uma soluo tima e o mtodo torna-se impraticvel para se resolver
problemas de Programao Linear de grande porte. Portanto, muito
trabalho foi feito para desenvolver um algoritmo polinomial para PPL.
O primeiro algoritmo polinomial para PL foi proposto por L.G. Khachian,
em 1979. Ele era baseado no Mtodo das Sees Centrais e no Mtodo de
Descida do Gradiente Generalizado com Espao de Dilatao, os quais
foram desenvolvidos para otimizao no-linear. Na teoria, o Mtodo de
Khachian, conhecido como o Mtodo dos Elipsides, tem um limitante
superior para o tempo de execuo melhor que o Mtodo Simplex, mas isto
parece ter pouco valor prtico, uma vez que na prtica a performance do
Mtodo Simplex muito melhor que a do Mtodo dos Elipsides.

2. Conceitos de Complexidade Computacional


O conceito de anlise de complexidade foi introduzido em 1970 para
avaliar a performance de um algoritmo. A anlise do pior dos casos mede o
grau de dificuldade na resoluo do problema sob a viso mais pessimista.
A complexidade computacional nos d um ndice de acessar o crescimento
do esforo computacional de um algoritmo como uma funo do tamanho
do problema na anlise do pior dos casos. A complexidade de um algoritmo
medida neste contexto pelo nmero de operaes elementares, tais como
adies, multiplicaes e comparaes, as quais dependem do algoritmo e
do tamanho total dos dados de entrada na representao binria.
Para um processo iterativo geral, sua complexidade determinada pelo
produto do nmero total de iteraes e do nmero de operaes em cada
iterao. O nmero total de iteraes certamente depende da preciso
desejada, enquanto o nmero de operaes elementares depende da
representao binria dos dados de entrada.
Considere o PPL abaixo:

(1 )
Ax = b
x 0

Min z = c t x
sa

mxn
com m, n 2
e seus elementos so todos inteiros
onde A
(possivelmente convertidos de algum dado racional para esta forma). Ao
especificar os valores de m, n, A, b, c, ns definimos um exemplar do PL.
Se alm disso, ns definimos o tamanho dos dados de entrada de m
exemplar como sendo o nmero de bits necessrios para codificar todos os
dados dados do problema, e o denotamos por L, ento o tamanho de um
exemplar do problema pode ser representado pela tripla (m, n, L).
Consequentemente, a complexidade de um algoritmo para resolver um PPL
torna-se funo de m, n e L , isto , f( m, n, L).

Suponha, agora, que exista uma constante > 0, tal que o nmero total de
operas elementares requerido pelo algoritmo para resolver qualquer
exemplar do problema no seja maior que f( m, n, L).Neste caso, ns
dizemos que o algoritmo da ordem de complexidade O ( f( m, n, L) ) .

Quando a funo f( m, n, L) uma funo polinomial de m, n e L, o


algoritmo dito ser limitado polinomialmente ou apenas de complexidade
polinomial. Caso contrrio, o algoritmo dito ser no-polinomial.
Note que no sistema binrio, precisamos de (r + 1) bits para representar
r
r +1
, onde r um inteiro no-negativo.
um inteiro positivo 2 , 2
Portanto, para um inteiro positivo , ns precisamos de log (1 + ) bits
para represent-lo. Adicionando mais um bit para o sinal, temos um total
de 1 + log (1 + ) dgitos binrios para codificar um inteiro arbitrrio.
Portanto, o tamanho dos dados de entrada do PL definido em (1) dado
por :

L = 1 + log (1 + m ) + 1 + log (1 + n ) +

{1 + 1 + log (1 + |c ) }
j

j =1

{1 + log (1 + |aij |) } + {1 + log ( 1 + |bi |) }


i =1 j =1

i =1

Em nossa anlise de complexidade, como precisamos apenas de um


limitante superior no esforo computacional, ns no precisamos definir
de maneira exata o tamanho L do exemplar do problema.
Uma estimativa comum dada por :
n

1 + log ( 1 + |c j |)

1 + log ( m ) + log ( n ) +

j =1
L =

m n
m

{1 + log (1 + |bi |) }
1 + log ( 1 + |a ij |) +
+
i =1

i =1 j =1

ou ainda
n

L =

1 + log ( 1 + |c |) + 1 + log ( 1 + |a |) + 1 + log (1 + |b |)


j

j =1

ij

i =1 j =1

i =1

3. Complexidade do Mtodo Simplex

A complexidade computacional do Mtodo Simplex depende do nmero


total de iteraes e do nmero de operaes elementares necessrias em
cada iterao. Implementaes diferentes resultam em complexidades
diferentes. Variantes do Mtodo Simplex foram feitas para conseguir
melhores performances computacionais. No difcil estimar que o Mtodo
2
Simplex Revisado efetua m ( n m ) + ( m + 1 ) multiplicaes e m ( n + 1 )
adies em cada iterao. O ponto chave que ambas operaes so da
ordem de O ( m, n).

Quantas iteraes so necessrias? Cada iterao do Mtodo Simplex vai


de um ponto extremo para outro ponto extremo adjacente. Para um PPL na
sua forma padro tem-se
m

n!
n
2m
m ! ( n m )!
m

C ( n ,m ) =

para n 2m

pontos extremos, logo, possvel que para um determinado problema, ns


tenhamos que visitar um nmero exponencial de pontos extremos, antes
de alcanarmos a soluo tima.
O medo do esforo exponencial foi confirmado por exemplos especialmente
"desenhados" para a anlise do pior dos casos. O primeiro destes exemplos
foi dado por V. Klee e G.L. Minty em 1971, para mostrar que o Mtodo
n
Simplex de Dantzig deveria percorrer todos os 2 1 pontos extremos
antes de alcanar a soluo tima.

Exemplo 1 : (Klee & Minty : Ver artigo "How good is the Simplex
Algorithm?" em Inequalities III , editor O. Shisha, Academic Press, NY, pags.
154-179, 1972).

Para 0 < <

Maximize x n
sa
0 x1 1
x i 1 x i 1 x i 1

, i = 2 , 3 , ..., n

xi 0
Obviamente, a origem uma SBF. Se ns comearmos com a origem e
aplicarmos como regra de entrada na base, a regra do melhor custo
n
reduzido, ento temos que o Mtodo Simplex precisa de 2 1 iteraes
para visitar cada ponto extremos da regio factvel.

Para n = 2, temos:

2
Para n = 2, precisamos de 2 1 = 3
iteraes para alcanarmos o ponto
timo.

Variantes do Mtodo Simplex podem trocar as regras de entrada na base


par evitar precorrer todos os pontos extremos. Mas, diferentes exemplos
"patolgicos" foram reportados para diferentes variantes. Assim, numa
anlise do pior dos casos, o Mtodo Simplex tem complexidade
exponencial.
Contudo, exemplos "patolgicos" raramente ocorrem na maioria dos
problemas reais. Tm sido observado que problemas reais de tamanhos
moderados requerem de 4m 6m iteraes do Mtodo Simplex para
serem resolvidos.

4. O Mtodo dos Elipsides

Depois que o exemplo de Klee & Minty mostrou que o Mtodo Simplex
tinha uma complexidade exponencial no pior dos casos, ficou a pergunta:
"Existe um algoritmo polinomial para resolver um PPL ? "
Uma resposta afirmativa foi dada por Khachian, em 1979. Ele mostrou
como o Mtodo dos Elipsides usado para resolver problemas de
Programao Convexa (da qual PL um caso especial) pode ser adaptado
para resolver um PPL em tempo polinomial.
Considere um sistema linear com n incgnitas e m inequaes (estritas),
isto ,

j =1

a ij x j < bi

, i = 1, 2 , ..., m

(2)

mxn
, b m e x n .
ou simplesmente Ax < b , com A

Nosso objetivo achar uma soluo de (2), se ela existir. O Mtodo dos
Elipsides comea com uma esfera cujo raio grande o suficiente para
incluir a regio factvel (se ela existir) de (2). Denotando por P o conjunto
de ponto factveis de (2) que interseccionam o elipside inicial, o algoritmo
prossegue construindo uma srie de elipsides, Ek, tais que P Ek .Os
elipsides so construdos de tal maneira que os seus volumes decrescem
geometricamente. Como o volume de P positivo quando P , ns
podemos provar que depois de um nmero polinomial de iteraes, o
centro do elipside atual pertence a P ou concluiremos que no existe
uma soluo factvel para P.
6

Descrio do Mtodo dos Elipsides em termos algbricos:


n
Dado um nmero no-negativo r e um ponto z , uma esfera centrada
em z com raio r definida por:

S ( z , r ) = x n :

( xi
i =1

z i )2 r 2 = x n : (x z )t ( x z ) r 2

O volume de S ( z, r ) ser denotado por Vol( S ( z, r ) ).


n
Dada uma matriz A n x n no-singular, e um ponto c , uma
n
transformao afim T (A, c) transforma todo ponto x em um novo
n
ponto A ( x c ) .

Um elipside a imagem da esfera unitria S(0,1)


transformao afim, isto ,

(x

E = x n :

c )t A t A ( x c ) 1

O ponto c o centro de E e o volume de E dado por:

Vol ( E

)=

det A 1 .Vol ( S (0 ,1) )

E alm disso, vamos definir um semi-elipside como:

1
E = x E : a t x a tc
2

sob alguma

Exemplo :

Na figura abaixo, E = S(0,1) uma esfera unitria no plano, a rea


hachurada 1/2E dada pela interseco de E com o semi-plano
( x1 , x 2 ) 2 : x1 0 .

Agora ns construmos um elipside E , tal que E seja o elipside de


volume mnimo que contm 1/2EI.

E = x 2 : 94 x1

Vol ( E ) =

4 3
9

1 2
3

+ 34 x 22 1

Vol ( S ( 0 ,1) )

O centro de E est em (1/3 , 0) e a matriz que define o elipside


3
A = 2
0

0
3
2

Ns podemos generalizar o resultado do exemplo acima para o caso ndimensional.


Para E = S ( 0 ,1) n

com

1
2

E = { x E : x1 0 }

um novo elipside

podemos construir


E = x n :

cujo centro est em

Vol ( E ) =

( ) (x
n +1 2
n

1
, 0 , ... , 0
n +1

( )
n
n +1

2
1
n +1

2
x
1

i =2 i

n2 1
n2

) e tem volume

n2

n 2 1

( n 1 )

.Vol ( E

A matriz A associada uma matriz diagonal n x n cujos elementos so

( n + 1 )/n como primeiro elemento diagonal e


elementos restantes.

{( n

+ 1 )/n

so os

Na figura abaixo, o elipside E determinado por trs parmetros:

= 1/ ( n + 1 )
= 2 /( n + 1 )
= n 2 /( n 2 1 )

Comparando E E, temos que E move seu centro da origem para


( ( 1 r ) )12 = n / ( n + 1 ) e se
( , 0 , ..., 0 ) , reduz na direo x1 pelo fator
expande em todas as direes ortogonais pelo fator = n / n 2 1 .
Portanto, ns chamamos , e como coeficientes de passo, dilatao e
expanso, respectivamente.
9

Note que as transformaes afins preservam as propores de volumes e


todo elipside pode ser transformado numa esfera unitria se usarmos
uma transformao afim apropriada.
Agora, ns vamos enunciar os seguintes lemas:
Lema 1: Todo elipside 1/2E est contido em um elipside E cujo volume
e

12 ( n

+ 1)

vezes menor que o volume de E.

Para um conjunto polidrico P que est contido em E, se o centro de E


est fora de P, ento P
estaria contido e, algum elipside 1/2E e,
consequentemente, em um elipside menor E .
Lema 2: O menor elipside E que contm um conjunto polidrico P tem
seu centro em P .

O Lema 2 sugere um esquema iterativo para resolver um sistema de


inequaes lineares. Se o conjunto polidrico P definido pelo sistema de
inequaes est contido em um elipside Ek na k-sima iterao, ento
ns podemos checar se o centro de Ek pertence a P ou no. Se pertencer a
P, ento paramos o processo dando como resposta o centro de Ek ; caso
contrrio, substituimos Ek por um elipside menor Ek + 1 = E k e repetimos o
processo. O Lema 1 nos diz que o volume de Ek se reduz por no mnimo
1

e 2 ( n + 1 ) depois de cada iterao, portanto, este esquema iterativo requer


apenas um nmero polinomial de iteraes para encontrar em ponto
factvel o nos dar uma indicao de que tal ponto no existe.

Para comear com o processo iterativo, considere o seguinte resultado:


Lema 3: Se o sistema de inequaes Ax < b tem soluo, ento existe
x n tal que
2L x j 2L

j = 1, 2 , ... , n

onde L o nmero de bits necessrios para codificar os dados de


entrada, com cj = 0 para todo j.

10

Portanto, ns podemos definir E0 = S( 0,2l ) como uma esfera n-dimensional


2L
de raio igual a 2 . Neste caso, o conjunto polidrico P estar contido em
E0 e podemos comear o processo iterativo.

Para terminar o processo iterativo, usamos o seguinte resultado:


Lema 4: Se o sistema de inequaes Ax < b tem uma soluo, ento o
n
L
volume de suas solues dentro do cubo x : |x i | 2 , i

(n
no mnimo e

+ 1)L

Assim sendo, ns podemos terminar o processo iterativo quando


Vol ( Ek ) < 2 ( n + 1 )L . Neste caso, o sistema Ax < b no tem soluo.

5. O Mtodo dos Elipsides para PL

Considere o sistema linear Ax < b descrito da seguinte maneira:


a it x < bi

, i = 1, 2 , ..., m

()

Alm disso, seja Ek um elipside definido por

{x

: ( x x k )t B k1( x x k ) 1

1
t
k
onde x o centro de Ek e B k = Ak Ak .

t
k
Se x no soluo de (*), ento existe um ndice i tal que a i x bi e a
soluo est contida em
1
2

E k = x E k : a it x a it x k

} = {x E

11

: a it x a it x k

Baseado nos parmetros de passo, dilatao e expanso, temos que o novo


elipside E k da forma:
xk

+1

Bk

+1

= x k Bk a i / a it Bk a i

(1 )

) (

= Bk Bk a j Bk a j t / a it Bk a i

)))

(2)

1
1
Como B k simtrica e definida positiva, podemos mostrar que B k + 1

tambm ser e o conjunto

{x

: ( x x k )t B k 1 ( x x k ) 1 , a it x < bi

est contido no elipside

E k + 1 = x n : ( x x k + 1 )t B k 1+ 1 ( x x k + 1 ) 1

E, o volume de E k + 1 ser dado por

n n2

2
n 1
n
1
+

( n + 1)/ 2

Vol ( E k )

Algoritmo Passo a Passo


Passo 1: Faa k = 0
E k = S ( 0 , 2 2L )
B k = 22L I
xk = 0

12

k
Passo 2: Se x satisfaz Ax < b, ento pare.
t k
Caso contrrio, identifique um ndice i tal que a i x bi , calcule

x k + 1 e Bk +1 de acordo com (1) e (2).


Faa k = k + 1.
( n + 1 )L
Passo 3: Se Vol (Ek ) < 2
, ento pare, com a concluso de que Ax < b
no tem soluo.
Caso contrrio, volte ao Passo 2.

Lembre-se que depois de cada iterao, o volume de Ek reduzido, no


1

mnimo, por um fator de e 2 ( n + 1 ) . Como o volume inicial de S0


Vol ( S ( 0 , 22L ) ) e o volume do elipside final 2 ( n + 1 )L , temos que o
2
nmero total de iteraes no mximo O ( n L ) .

Como observamos ao longo deste texto, o Mtodo dos Elipsides resolve


um problema de factibilidade linear, portanto, para se resolver um PPL ns
precisamos resolver o sistema linear formado pelas condies de
otimalidade de KKT:
Ax b
x 0
At w c
w 0
c t x bt w 0

Se existe uma soluo x * factvel para este sistema, ento x * soluo


tima do problema
Min z = c t x
sa
Ax b
x 0

13