• Nenhum resultado encontrado

Os problemas de programação linear inteira

No documento UM PEQUENO ESTUDO SOBRE OTIMIZAÇÃO LINEAR (páginas 45-51)

max f x x( ); ∈S = −min −f x x( ); ∈S .

Demonstração Seja x*S um maximizador global do problema

{ }

max f x x( ); ∈S .

Para todo xS temos, pela definição de x*, max{f(x)} = f(x*) > f(x), que é equivalente a, ( )

f x

− ≥ −f(x*) = min

{

f x( )

}

. Portanto, para todo xS, max{ ( )}f x = −min

{

f x( )

}

, finalizando a demonstração.

Agora, enunciamos o algoritmo fundamental da otimização combinatória. Considere o problema (OC). Avalie f(x), para todo xS. Escolha x*S tal que f(x*) < f(x), para todo

xS.

Na próxima seção vamos enunciar o problema de programação linear inteira que é um problema de otimização combinatória mais modesto. Daí, veremos a dificuldade de implementar esse algoritmo fundamental mesmo com o desempenho dos computadores atuais.

5.2 Os problemas de programação linear inteira

Consideremos os números inteiros m e n, tais que n > m > 0. Dados uma matriz numérica com coeficientes reais A, m×n, e vetores bRm e cRn, o problema de programação linear inteira é o seguinte problema de otimização, usualmente denominado problema primal:

( )

0 . T n P minimizar c x sujeito a: Ax b x x Z ≤ ≥ ∈

Por outro lado, o problema de programação linear inteira 0-1 (binário) é o seguinte problema de otimização:

( )

{ }

0, 1 . T n B minimizar c x sujeito a: Ax b x ≤ ∈

Em ambos os problemas (P) e (B), a função objetivo é definida pela função linear

T

xac x; o valor da função objetivo definido pelo número c xT ; o conjunto viável definido pelo conjunto

P =

{xZn;Axb x, ≥0}, ou

B =

{x∈{0, 1} ;n Axb};

um ponto viável definido como um elemento do conjunto viável; o conjunto de soluções ótimas definido pelo conjunto

P

* = {x*

P

; cTx*< cTx, para todo x

P

}, ou

B

* = {x*

B

; cTx*< cTx, para todo x

B

};

o minimizador global é chamado solução ótima; e o problema (P) é inviável quando

P

é vazio, e o problema (B) é inviável quando quando

B

é vazio.

A proposição a seguir mostra que os problemas de PLI (P) e (B) são equivalentes. A demonstração pode ser encontrada na página 2 em [4]. Denotamos o número   r como o

maior inteiro menor do que ou igual ao número real r.

Proposição 5.2 Suponha que no problema (P) cada xjuj, com uj >0, j = 1, ..., n. Então, o problema de PLI (P) é equivalente ao problema de PLI 0-1 (B).

Demonstração: considere j = 1, ..., n. Seja o problema (P) com o acréscimo de n restrições

j j

xu . Para cada x , ou substitua-os por j

1 1 ... 1 , {0, 1} j u j kj j j kj k x t u u t =   =

≤ + + = ≤ ∈ ,

retirando cada restrição xjuj, ou, como todo inteiro pode ser escrito na base 2, substitua-os por

0 2 j l k j kj k x t = =

, {0, 1} kj t e 1 0 min{ ; 2 2 1 } j j l l k j j k l z Z+ + u = = ∈

= − ≥ ,

com as novas restrições

0 2 j l k kj j k t u =

no lugar de cada xjuj. Portanto, por um lado obtemos (B) e, por outro, xj∈{0, 1, ...,   . Isto finaliza a demonstração. uj }

A proposição a seguir mostra que pensar em uma relaxação [0, 1] para o problema de PLI (B) pode ser mais interessante do que reescrevê-lo como um problema de PLI (P). a demonstração pode ser encontrada na página 457 em [9]. Denotamos o vetor de uma dimensão apropriada por e.

Proposição 5.3 Toda solução viável para o problema de PLI 0-1 (B) é um ponto extremo do

conjunto

{ n; , }.

T = ∈x R+ Axb xe

Demonstração: Suponha por contradição que x não é um ponto extremo de T. Então, por

definição de ponto extremo, para

1 2

1 1

2 2

x= x + x ,

com x x1, 2T e x1x2, segue-se que 0<xj <1 para algum j, j = 1, ..., n, isto é, x∉{0, 1}n; contradição. Isto finaliza a demonstração.

Na capa do livro de Les Foulds [5] tem uma figura (errada!) cujo enunciado é o seguinte, conforme página 83 de seu livro:

maximizar x1 + x2 sujeito a: 15x1 + 12x2 < 85

5x1 > 11

x1, x2 > 0

Relaxando esse problema para obtermos um problema de programação linear, isto é, substituímos as variáveis de valores inteiros por valores reais, obtemos a solução ótima para o problema de programação linear

(

1 2

)

11 13 , , , 5 3 x x   =   

com valor da função objetivo igual a 98

15. Observe que se conseguíssemos uma solução inteira teríamos resolvido o problema de programação linear inteira em tempo polinomial (o que seria uma maravilha!). Uma pergunta natural, mas não intuitiva: por que não arredondar? Porque se assim o fizermos obteremos as possíveis soluções, baseadas em

1 11 2, 2 5 x = = e 2 13 4, 3 3 x = = , que são (2, 4), (3, 4), (2, 5) ou (3, 5), mas as soluções ótimas são

(3, 3) e (4, 2),

com valor ótimo da função objetivo igual a 6. Quer dizer, arredondamento nem sempre funciona.

A propósito, para esse problema simples, mas bastante ilustrativo, temos oito soluções viáveis para duas variáveis. Tudo bem, testá-las de acordo com o algoritmo fundamental não é nem difícil e nem demorado, mas imagine um número bem maior, de acordo com problemas práticos, utilizando um computador atual. Definitivamente não é operacional.

CAPÍTULO VI CONCLUSÕES

Neste trabalho apresentamos um estudo sobre programação linear contínua e inteira. Vimos que o método simplex, para solução de problemas de programação linear apresenta complexidade de tempo exponencial para o pior caso, e portanto não é um “bom” algoritmo. Todavia, não nos atentamos à complexidade de tempo média deste algoritmo. Por isso, geralmente, na prática, o método simplex efetua um número de iterações menor do que o efetuado no exemplo de Klee e Minty. Para demonstração que o método simplex não tem tempo polinomial no pior caso usamos três lemas e um teorema, conforme Papadimitriou e Steiglitz.

Problemas de programação linear inteira e programação linear inteira 0-1 também são difíceis de serem resolvidos, mesmo com o desempenho dos computadores atuais.

Este estudo contribuiu não apenas para o meu aprendizado, enquanto estudante, mas também para o meu amadurecimento como pesquisador, mesmo que ainda nos primeiros passos.

Finalmente, a banca para defesa deste trabalho foi composta pelos professores: professor Dr. Marco Antonio Figueiredo Menezes (Orientador), professor Esp. Jeová Martins Ribeiro e a professora Ma. Bercholina Honorato Alves.

REFERÊNCIAS BIBLIOGRÁFICAS

1. BLAND, R.G. New finite pivoting rules for simplex method. Mathematics of Operations Research, 1977. vol. 2, n. 2, p.103-107.

2. BREGALDA, P. F.; OLIVEIRA, A. A. F. e BORNSTEIN, C. T. Introdução à Programação Linear. Rio de Janeiro: Campus, 3a edição, 329 p., 1988.

3. DANTZIG, G.B. Maximization of a linear function of variables subject to linear inequalities. Activity Analysis of Production and Allocation, ed. T. C.Koopmans, John Wiley, New York, p.339-347, 1951.

4. FANG, S. C. and PUTHENPURA, S. Linear Optimization and Extensions: theory and algorithms. Prentice Hall, 1993.

5. FOULDS, L. R. Combinatorial Optimization for Undergraduates. New York: Springer-Verlag, 222 p., 1984.

6. GOLDBARG, M. C. e LUNA, H. P. L. Otimização Combinatória e Programação Linear: Modelos e Algoritmos. Rio de Janeiro: Campus, 2a edição, 536 p., 2005.

7. KLEE, V. and Minty, G. How Good Is The Simplex Algorithm? Inequalities III, O. Sisha, ed., Academic Press, New York, NY, 1972.

8. MENEZES, M. A. F. Programação Linear. Goiânia, 2006. Disponível em: <http://www.ucg.br/Institu- tos/LabPL/Index.html>.

9. NEMHAUSER, G. L and WOLSEY, L. A. Integer and Combinatorial Optimization. New York: John Wiley & Sons, 777 p., 1988.

10. PAPADIMITRIOU, C. H. and STEIGLITZ, L. Combinatorial Optimization: Algorithms and Complexity. New Jersey: Prentice-Hall, 1982.

11. RAVINDRAN, A.; PHILLIPS, D.T. and SOLDBERG, J.J. Operations research: principles and practice. 2. ed. John Wiley and Sons, 1987.

12. SALKIN, H. M. and MATHUR, K. Foundations of Integer Programming. New York: Elsevier, 775 p., 1989.

13. TOSCANI, Laira V. e VELOSO, P. A. S. Complexidade de Algoritmos. Porto Alegre: Sagra-Luzzato, 1a edição, 2001.

No documento UM PEQUENO ESTUDO SOBRE OTIMIZAÇÃO LINEAR (páginas 45-51)

Documentos relacionados