71855
Post on 04-Jan-2016
15 Views
Preview:
DESCRIPTION
TRANSCRIPT
1
MINICURSO MINISTRADO NO DINCON’2010
INTRODUÇÃO AOS MÉTODOS PRIMAL-DUAL DE PONTOS INTERIORES E APLICAÇÕES
AUTORES: Prof. Dr. Antonio Roberto Balbo – email: arbalbo@fc.unesp Profa. Dra. Edméa Cássia Baptista – email: baptista@fc.unesp.br Departamento de Matemática – FC – Unesp – Campus de Bauru
Márcio Augusto da Silva Souza – email: mass20@fc.unesp.br Maria Cláudia Savio Masiero – claudiamasiero@hotmail.com Programa de Pós-Graduação em Engenharia Elétrica FEB – UNESP – Campus de Bauru
Unesp – Bauru, Março de 2010
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1419
2
��������1. Introdução ................................................................................................................. 3�2. Os problemas restritos ............................................................................................... 5�3. Os métodos de Penalidade e de Barreira .................................................................... 6�
3.1 O método de penalidade ...................................................................................... 6�3.1.2 Dificuldades computacionais ........................................................................ 8�3.1.3 Algoritmo do Método de Penalidades ........................................................... 8�
3.2 O método de barreira ........................................................................................... 9�3.2.2 Dificuldades computacionais .................................................................... 11�3.2.3 Algoritmo do Método de Barreira ............................................................... 11�
4. Métodos (algoritmos) Afins de Pontos Interiores ..................................................... 13�4.1 - Algoritmo Primal – Afim ................................................................................ 13�
4.1.1 Idéias Básicas do Algoritmo Primal – Afim ................................................ 13�4.1.2 Algoritmo Primal – Afim. .......................................................................... 18�4.1.3 Implementando o Algoritmo Primal – Afim ................................................ 24�4.1.4 Complexidade Computacional .................................................................... 26�
4.2 O Método Dual-Afim para o Problema Primal ................................................... 28�4.2.1 O Algoritmo Dual-Afim para o PPL em Formato Primal ............................ 30�
5. O Algoritmo Primal-Dual de Pontos Interiores ....................................................... 33�5.1 Idéias básicas do Algoritmo Primal – Dual ........................................................ 33�5.2 - Direção e Comprimento do Passo de Movimento. ........................................... 35�5.3 Algoritmo Primal – Dual ................................................................................... 39�5.4 Término do Algoritmo em Tempo Polinomial ................................................... 40�5.5. Iniciando o Algoritmo Primal – Dual ............................................................... 41�5.6 Implementação Prática ...................................................................................... 42�5.6. Método Primal – Dual para Variáveis Canalizadas ......................................... 48�
5.6.1 - Direções de Busca .................................................................................... 49�5.6.2 Comprimento do Passo de Movimento ....................................................... 52�5.6.3. Critério de Parada ..................................................................................... 53�5.6.4 Algoritmo de Pontos Interiores Primal – Dual para Variáveis Canalizadas . 54�5.6.5 Variáveis Limitadas Inferiormente ............................................................. 58�
6. O Algoritmo Primal-Dual de Pontos Interiores para Programação Quadrática Convexa com variáveis canalizadas ............................................................................ 59�
6.1 Problema de Programação Quadrática .............................................................. 59�6.2 Direções de busca – Tipo Previsor ................................................................... 60�6.3 Direções de Busca -Tipo Corretor..................................................................... 61�6.4 Comprimento do passo ..................................................................................... 62�6.5 Critério de Parada ............................................................................................. 63�
6.5.1 Atualização do parâmetro de barreira ......................................................... 64�6.6 Algoritmo Primal-Dual para Variáveis Canalizadas com Procedimento Previsor-Corretor e Busca Unidimensional. (PDPCBU) ........................................................ 64�
7. O Modelo de Despacho Econômico (PDE) .............................................................. 65�7.1 Aplicação ao Modelo de Despacho Econômico ................................................. 65�
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1420
3
7.2 - Adaptação do Problema de Despacho Econômico ao algoritmo proposto. ....... 66�7.3. PDE com 3 Geradores ...................................................................................... 66�
8. Considerações Finais ............................................................................................... 67�9. Agradecimentos ...................................................................................................... 67�10. Bibliografia ........................................................................................................... 68�
1. Introdução
Em matemática, o termo otimização, ou programação matemática, refere-se ao estudo de problemas em que se busca minimizar ou maximizar uma função através da escolha sistemática dos valores de variáveis reais ou inteiras dentro de um conjunto viável.
Assim, tornar algo ótimo é buscar o que é excelente, o melhor possível, "o grau, quantidade ou estado que se considera o mais favorável, em relação a um determinado critério”.
Otimizar é melhorar até onde pudermos. No ideal, melhorar até o máximo. Até aquela situação ideal na qual, como vulgarmente se diz, "se mexer mais, piora". Melhorar só é possível se temos escolha. Escolher uma dentre várias alternativas. Se uma alternativa houver, capaz de introduzir alguma melhoria, ficamos com ela. Caso contrário, o que temos em mãos já é a escolha ótima.
Otimizar é selecionar algo melhor. Mas, quase sempre, ficamos restritos a escolhê-lo dentre um conjunto limitado de alternativas. Obviamente, o desejo de otimizar não basta. Sem critério de escolha, por exemplo, nem adianta conhecer o universo de alternativas. Por outro lado, desconhecendo-se este, não adianta ter critério. Informação, portanto, é fundamental. Quanto mais, melhor; mais depressa chegamos às alternativas ótimas.
As aplicações da Otimização encontram-se presentes em todas as modalidades de Engenharia, na Economia, na Biologia, na Agronomia, entre outras áreas distintas. Como exemplos podemos citar:
� Como cortar placas de vidro de forma a atender aos pedidos que nos chegam, com um
mínimo de desperdício possível de material? � Como distribuir mascates em uma determinada praia de modo que eles terminem suas
vendas o mais perto possível dos pontos de resgate? � Como controlar injeção de combustível num motor a explosão de modo a maximizar
rendimento minimizando vibrações? � Como distribuir energia elétrica minimizando as perdas e satisfazendo o sistema? � Como distribuir enegia elétrica minimizando o custo de produção e satifazendo o
sistema?
Muitos desses problemas podem ser modelados como problemas de maximizar (ou minimizar) uma função cujas variáveis devem obedecer certas restrições: (1.1)
Encontrar soluções ótimas, ou mesmo aproximadas, para esses tipos de problemas é um desafio nem sempre fácil de ser vencido. A construção de bons algoritmos é a principal vocação da otimização. Algoritmos gerais e confiáveis, que, se possível, resolvam classes de problemas de otimização independentemente da dimensão e dos parâmetros envolvidos.
Antes de 1940, relativamente, muito pouco tinha sido desenvolvido sobre métodos para otimização numérica de muitas variáveis. A maioria dos métodos de otimização foram desenvolvidos após o surgimento do computador. Durante a Segunda Grande Guerra Mundial (década de 40), com o objetivo de alocar recursos escassos, desenvolveu-se o método Simplex (Dantizig) para problemas
i
jmin max
M inimizar ( M ax imizar ) f ( x )sujeito a : g ( x ) 0, i 1, ,m
h ( x ) 0, j 1, ,r
x x x
= =≤ =
≤ ≤
��
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1421
4
lineares. O sucesso e credibilidade ganhos durante a guerra foram tão grandes que, terminado o conflito, esses grupos de cientistas e a sua nova metodologia de abordagem dos problemas se transferiram para as empresas que, com o "boom" econômico que se seguiu, se viram também confrontadas com problemas de decisão de grande complexidade.
A aplicação de um determinado método a um problema real depende, basicamente, das características do problema, isto é, o problema ser linear, não-linear, convexo, inteiro, dinâmico, entre outras. Em Programação Não-Linear os primeiros métodos eram bastantes restritos. Tornaram-se significativos no final da década de 50 com a introdução dos métodos de métrica variável por Davidon, capazes de solucionar problemas de muitas variáveis.
Uma classe de métodos de Otimização muito explorada nos dias de hoje é denominada de métodos de Pontos interiores. Os métodos de Pontos Interiores têm sido amplamente investigados e utilizados principalmente na resolução de problemas de Programação Linear e, mais recentemente, em problemas de Programação Quadrática e Não-Linear, com bom desempenho em problemas de grande porte.
Ainda que não fossem conhecidos na literatura com esta denominação, a estratégia de Pontos Interiores foi introduzida inicialmente por FRISCH (1955) e por CARROL (1961) e popularizada por FIACCO & McCORMICK (1968) através da utilização da função Barreira para problemas não-lineares. Ressalta-se que, o entusiasmo no uso da função Barreira diminuiu sensivelmente na década de 70 devido a alguns problemas apresentados por esta, tais como, o mal condicionamento da matriz Hessiana quando seu fator de Barreira tende a zero; a dificuldade na escolha do fator de Barreira e na escolha de uma solução inicial; a não-existência da derivada na solução e o aumento ilimitado da função Barreira na vizinhança da fronteira.
O interesse pela utilização da metodologia de Pontos Interiores para a busca de soluções ótimas de problemas de Otimização reapareceu quando, em 1984, KARMARKAR (1984) publicou o seu método Projetivo para Programação Linear. Este trabalho provocou uma agitação nas atividades de pesquisa nesta área.
Após a introdução feita por Karmarkar, métodos variantes de seu algoritmo original foram apresentados. Entre eles citamos: o algoritmo Primal-Afim utilizado na resolução de problemas de Programação Linear com restrições de igualdade, o qual foi apresentado por BARNES (1986) e por VANDERBEI et al. (1986); o algoritmo Dual-Afim proposto por ADLER el al. (1989) para resolver problemas de Programação Linear na forma de desigualdade; a contribuição de MEGIDDO & SHUB (1989) com a indicação que a trajetória que conduz à solução ótima fornecida pelos algoritmos Afins dependem da solução inicial; a incorporação da função Barreira Logarítmica ao problema de Programação Linear e a resolução deste através da metodologia de Pontos Interiores Primal-Afim e Dual-Afim, onde destacamos os trabalhos de MEGIDDO (1987), RENEGAR (1988), VAIDYA (1990) e YE (1986); os métodos de trajetória central, propostos por GONZAGA (1989, 1990) e MONTEIRO & ADLER (1989); o algoritmo Primal-Dual de Pontos Interiores proposto por MONTEIRO et al. (1990) e também por KOJIMA et al. (1989), os quais exploram uma função potencial Primal-Dual variante da função Barreira Logarítmica e o método da Barreira Logarítmica Primal-Dual Previsor-Corretor, em que a cada iteração é dado um passo previsor e um passo corretor, determinando direções de busca melhores que as apresentadas por MONTEIRO & ADLER (1989), o qual foi apresentado por MEHROTRA (1992), entre outros.
Seguindo o avanço dos métodos de Pontos Interiores destaca-se a teoria de métodos da função Barreira Modificada desenvolvida por POLYAK (1992). Estes métodos combinam as melhores propriedades da função Lagrangiana Clássica e da função Barreira Clássica, evitando os problemas que ambas enfrentam. Segundo POLYAK (1992) a finalidade que o método da função Barreira Modificada tem para os métodos de Pontos Interiores é a mesma que o método da função Lagrangiana Aumentada tem para os métodos de Penalidade: ajudá-los a “driblar” suas dificuldades. O método da função Barreira Modificada transforma o problema restrito em um outro problema equivalente, o qual é irrestrito e resolve uma seqüência de problemas irrestritos até atingir a solução ótima. Em seu trabalho POLYAK (1992) apresenta três tipos de função Barreira Modificada: uma para a função Barreira de CARROL (1961), outra para a função Barreira de FRISCH (1955) e a terceira denominada função Barreira Shift. Estas funções são definidas através da relaxação do conjunto de restrições factíveis. Variantes do método de Barreira Modificada podem ser encontrados em BREITFELD & SHANNO (1996), VASSILIADIS & FLOUDAS (1997) e CHEN & VASSILIADIS (2003).
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1422
5
Extensões dos métodos de Pontos Interiores para problemas não-lineares e não convexos são encontrados em CARPENTER et al. (1990), VANDERBEI & SHANNO (1999), SHANNO & VANDERBEI (2000), LUKSAN et al. (2004), BAPTISTA et al. (2006 a,b), entre outros.
É preciso destacar que os métodos de Pontos Interiores têm sido utilizados para a resolução de problemas reais nas mais diversas áreas.
Neste minicurso abordaremos: os problemas restritos, os métodos de Penalidade e Barreira, os métodos de Pontos Interiores afins e inseridos na metodologia primal-dual, com uma aplicação destes métodos ao problema de Despacho Econômico, BALBO et al..(2008), estudado na área de Sistemas de Energia em Engenharia Elétrica. 2. Os problemas restritos
Um problema de otimização pode ser denominado irrestrito quando apenas uma função é minimizada ou maximizada dentro de um conjunto pré-determinado. Matematicamente representamos por:
( )n
Minimizar ( Maximizar ) f x
x S R∈ ⊆
(2.1)
em que x nR∈ .
Quando restrições são adicionadas ao problema (2.1), este passa a ser denominado problema restrito. Matematicamente representamos por:
( )
( )( )
n
Minimizar ( Maximizar ) f x
sujeito a : g x 0restrições funcionais
h x 0
x S R restrições do conjunto
�= � ��≤ ��
∈ ⊆ �
(2.2) onde,
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
1 2
1 2
, , ,
, , , .
T rm
T mp
h x h x h x h x R
g x g x g x g x R
� �= ∈� �
� �= ∈� �
�
�
Os problemas (2.1) e (2.2) serão classificados como linear, não-linear , quadrático, inteiro,
convexo, entre outros, de acordo com as características das funções envolvidas.
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1423
6
3. Os métodos de Penalidade e de Barreira
Os métodos apresentados a seguir têm por objetivo resolver problemas de programação não-
linear restritos da forma:
Minimizar f(x) sujeito a: g(x) = 0
(3.1) h(x) ≤ 0
onde: x nR∈ , g(x) mR∈ , h(x) rR∈ , e as funções são de classe C2.
3.1 O método de penalidade
Seguindo a “idéia” de associar ao problema (3.1) uma seqüência de problemas irrestritos, a
estratégia do método da função penalidade consiste na utilização de uma função auxiliar onde as restrições são introduzidas na função objetivo através de um fator de penalidade, o qual penaliza alguma violação destas. Esse método gera uma seqüência de pontos infactíveis, cujo limite é a solução ótima do problema original. A função auxiliar tem a forma f(x) + c P(x), sendo c denominado fator de penalidade, e P(x), função penalidade associada a (3.1), dada por:
P(x) = ( )( ) ( )( )m r
i ji 1 j 1
g x h x= =
+� �Θ Λ ,
(3.2) onde ΛΘ e são funções contínuas de uma variável y, tais que:
( )yΘ = 0 , se y = 0 e ( )yΘ > 0 , se y ≠ 0;
(3.3)
( )yΛ = 0, se y ≤ 0 e ( )yΛ > 0, se y > 0.
(3.4) As funções (3.3) e (3.4) podem assumir as seguintes formas:
( )yΘ = p
y ,
(3.5)
( )yΛ = [max {0,y}]p
(3.6) onde p é um inteiro positivo. Para p = 2, em (3.5) e (3.6) a função P(x) é denominada função penalidade quadrática.
O problema penalizado consiste em:
Minimizar { x ∈ℜn tal que ( x )θ = f(x) +c P(x )
(3.7)
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1424
7
para .0c≥ Temos que, à medida que ∞→c e P(x) 0→ , a solução do problema penalizado converge
para a solução do problema original. Exemplo 3.1: Considere o seguinte problema:
M in imizar x
sujeito a : x 2 0− + ≤
Encontrado a função penalidade: ( ) ( ){ }2
P x M ax imizar 0, x 2� �= − +� �
( )( )
2
0 se x 2P x
x 2 se x 2
≥��= �
− + ≤��
Temos que : ( )( )
2
0 se x 2x x c
x 2 se x 2θ
≥��= + �
− + ≤��
Aplicando as condições de otimalidade:
( )( )
2
0 se x 2P x0 1 c 0
x x 2 se x 2
≥�∂ �= � + =�
∂ − + ≤��
( )1
1 2c x 2 0 x 22c
− − + = � = −
Fazendo c tender a infinito, temos:
limc
1x 2 x 2
2c→∞= − � =
Exemplo 3.2: Considere o seguinte problema
2 21 2
1 2
1 2
M inimizar x x
sujeito a : x x 1 0
x ,x R
+
+ − =
∈
Reformulando para um problema irrestrito:
( )2 21 2 1 2
1 2
M in imizar x x c x x 1
s.a. x ,x R
+ + + −
∈
Aplicando a condição necessária e suficiente para a otimalidade:
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1425
8
( )( ) ( )
( )( ) ( )
1 1 2 1 1 2
1
2 1 2 2 1 2
2
P x2x 2c x x 1 0 x c x x 1
x
P x2x 2c x x 1 0 x c x x 1
x
∂= + + − = � = − + −
∂
∂= + + − = � = − + −
∂
Temos então que x1 = x2 = 2c1
c
+. Fazendo c tender a infinito:
lim lim limc c
c c 1 1x x
1 11 2c 2c 2 2
c c
μ→∞ →∞ →∞= = = � =
+ � � � �+ +� � � �
� � � �
3.1.2 Dificuldades computacionais
Escolhendo-se c suficientemente grande, a solução do problema penalizado será próxima à
solução do problema (3.1); porém, para valores muito grandes do fator de penalidade, teremos algumas problemas de mal condicionamento. Para valores grandes de c, há uma maior ênfase sobre a factibilidade; e a maioria dos métodos de otimização irrestrita move-se rapidamente na direção de um ponto factível. Esse ponto pode estar longe do ótimo, causando um término prematuro do método. Um outro problema é o mal condicionamento da matriz Hessiana devido à sua dependência de c. Assim, a análise de convergência do método pode ficar prejudicada. Ressaltamos que a escolha inicial do fator de penalidade e do parâmetro de penalidade afeta a convergência do método.
3.1.3 Algoritmo do Método de Penalidades
1. Estabelecer o erro de convergência ( )0ξ > , o ponto inicial kx , o parâmetro de penalidade
kc 0> e o fator de incremento da penalidade 0β > , k = 0.
2. Resolver o problema utilizando um método de minimização irrestrita para kμ fixo:
( ) ( )nx R
Minimizar f x c P xk∈
+
obtendo então k 1x + .
3. Se ( )k 1kc P x ξ+ < ,pare, a solução ótima foi encontrada. Senão vá para o passo 4
4. Fazer k 1 kc cβ+ =
5. k k 1= + , voltar para o passo 2.
Exemplo 3.3: Implementamos o algoritmo da função utilizando o software Matlab e aplicamos na resolução do problema:
( ) ( )4 2
1 1 2
21 2
2
M inimizar x 2 x 2x
sujeito a: x x 0
x R
� − + −��
− =��
∈��
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1426
9
Sendo 0 2x
1
� �= � �� �
, ,0c 0 1= , 10β = , a tolerância do problema principal 51 10ξ −= e a tolerância do
sub-problema (solução por Newton) 22 10ξ −= .
Utilizando o método de Newton para encontrar o ponto ótimo do subproblema tem-se:
TABELA 3.1: Convergência do método de penalidade Iteração
kc 1+ =kk cx x ( )1+k
f x ( )θ kx
1 0,1 (1,45545;0,76135) 0,09246 0,27640 2 1 (1,16916;0,74071) 0,57401 0,96617 3 10 (0,99072;0,84248) 1,51961 1,71295 4 100 (0,95078;0,88748) 1,89117 1,91840 5 103 (0,94611;0,89344) 1,94051 1,94335 6 104 (0,94564;0,89406) 1,94674 1,94590 7 105 (0,94559;0,89412) 1,94611 1,94616 8 106 (0,94558;0,89413) 1,94621 1,94629 9 107 (0,94558;0,89413) 1,94621 1,94629
Podemos observar que a cada iteração o valor da função aproxima-se do valor da função auxiliar, mostrando que o método está convergindo e que a função penalidade tende a zero.
3.2 O método de barreira
Da mesma forma que os métodos de penalidade, os métodos de barreira transformam o problema restrito em um problema irrestrito. Eles introduzem as restrições na função objetivo através de um fator de barreira, que penaliza a aproximação de um ponto factível à fronteira da região factível. Trabalhando no interior dessa região, tais fatores geram barreiras que impedem os pontos de sair dela. Logo, parte-se de um ponto factível e geram-se novos pontos factíveis. Uma das vantagens desse método é a obtenção de, pelo menos, uma solução factível, caso ocorra uma parada prematura dele. Ele trabalha somente com problemas de desigualdade cujo interior é não-vazio. Assim, assume-se o problema (3.1) obedecendo a essa condição. Com o objetivo de garantir a permanência no interior da região factível, podemos gerar o seguinte problema de barreira:
Minimizar { f(x) + δ B(x): h(x) < 0}, (3.8)
x onde 0≥δ é denominado fator de barreira, e B(x) é uma função barreira não-negativa e contínua no
interior da região factível {x; h(x) < 0} e tende ao infinito à medida que a solução se aproxima da fronteira, a partir do interior. Definimos, então:
B(x) = [ ]r
ii 1
h ( x )=
�φ ,
(3.9) onde φ é uma função de uma variável y, contínua sobre {y; y < 0 }, e satisfaz
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1427
10
y 0( y ) 0 se y 0 e lim ( y )
−→≥ < = ∞φ φ .
(3.10) A função f(x) + δ B(x) é denominada função auxiliar; a função barreira pode assumir várias formas, como:
B(x) = r
i 1 i
1
h ( x )=
−� ;
(3.11)
B(x) = [ ]r
ii 1
ln h ( x )=
− −� .
(3.12) A função (3.11) é denominada barreira clássica ou inversa e foi estudada por CARROL (1961);
(3.16) é denominada função barreira logarítmica e foi estudada por FRISCH (1955). Quando 0→δ e B(x) ∞→ , temos que )x(Bδ se aproxima da função barreira ideal, descrita
anteriormente em (3.9), e a solução do problema de barreira converge para a solução do problema (3.1). Observamos que (3.8) é um problema restrito e pode ser tão complexo quanto (3.1). Como exigimos uma solução inicial interior à região factível e o método trabalha com pontos interiores a essa região, ao penalizar os pontos que se aproximam da fronteira impedimos que eles saiam da região e a restrição pode ser ignorada. Teremos, realmente, um problema irrestrito, para o qual poderá ser utilizada uma técnica de otimização irrestrita. Exemplo 3.2: Resolver :
M inimizar x
sujeito a: x 1 0− + ≤
Observamos que o ponto ótimo é dado por *x 1= e ( )*f x 1= . Considere então a função
barreira:
( )( )1 1
B xg x x 1
− −= =
− + , para x 1≠
( )1
B xx 1
δ δ−� �
= � �− +� �
Sendo a função auxiliar, ( ) ( )1
f x B x xx 1
δ δ� �
+ = + � �−� �
, temos o seguinte problema de barreira:
,1
Minimizar x x 1 0x 1
δ� �� �
+ − + <� �� �−� �� �
Aplicando as condições de otimalidade:
( )
( )
( )
2
2
2
1 x 1 0
1 0x 1
x 1 0
δ
δ
δ
−− − =
− =−
− − =
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1428
11
2x 2x 1 0
2 2x x 1
2
δ
δδ
− + − =
±= � = +
Fazendo 0→δ , obtemos x e ( )F x por:
( ) ( )
*
*
lim
( ) lim
0
0
x 1 1 x x
1F x 1 F x f x
x 1
δ
δ
δ
δ
→
→
= + = � =
� �= + � =� �
−� �
Note que, à medida que δ decresce, Bδ (x) se aproxima de uma função que tem valor zero para h(x) < 0 e infinito para h(x) = 0. Ao resolvermos o problema (3.8) utilizando a função (3.11), iniciamos o processo de solução
com um ponto interior à região factível. Para cada valor de δ , temos uma solução que será o ponto inicial
para o processo iterativo. À medida que δ decresce, aproximamo-nos da solução do problema original,
ou seja, δ → 0, xk → x* e f(xk) + δ B(xk) → f(x*).
3.2.2 Dificuldades computacionais
Uma das dificuldades encontradas no método de barreira é a seleção de um ponto inicial factível. Em muitos problemas, isso pode ser trabalhoso. Vários métodos podem ser utilizados para a determinação de um ponto inicial factível, quando este não é conhecido. Também, em virtude da estrutura da função
barreira, para valores pequenos de δ , muitas técnicas têm sérios problemas de mal condicionamento e erros de arredondamento, quando o ótimo se aproxima. As escolhas do fator de barreira e do parâmetro de barreira podem comprometer o processo de otimização.
3.2.3 Algoritmo do Método de Barreira
1. Estabelecer o erro de convergência ( )0ξ > , o ponto inicial kx X∈ com ( )ig x 0< , o
parâmetro de penalidade k 0δ > e o fator de incremento da barreira ( ),0 1β ∈ , k = 0.
2. Usando o método de Newton, resolver o problema transformado para a forma irrestrita:
( ) ( )
( )kM in imizar f x B x
sujeito a: g x 0
x X
δ+
<
∈
obtendo então k 1x + .
3. Se ( )k 1k B xδ ξ+ < , pare, a solução ótima foi encontrada. Senão vá para o passo 4.
4. Fazer k 1 kδ βδ+ =
5. k k 1= + , voltar para o passo 2.
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1429
12
Exemplo 3.3: Resolver o problema abaixo:
( ) ( )4 2
1 1 2
21 2
M inimizar x 2 x 2x
sujeito a: x x 0
� − + −��
− ≤��
Sendo 0 0x
1
� �= � �� �
, 0 10δ = , ,0 1β = , a tolerância do problema principal 51 10ξ −= e a tolerância do sub-
problema (solução por Newton) 22 10ξ −= .
Neste problema
2X E= , e o problema é resolvido utilizando a função barreira:
( )( )2
1 2
1B x
x x
−=
−.
Utilizando o método de Newton para encontrar o ponto ótimo do subproblema tem-se:
TABELA 3.2: Convergência do método de barreira Iteração
kδδδδ kk 1x xμμμμ++++ ==== (((( ))))k 1
f x++++ (((( ))))kxθθθθ (((( ))))
kB xδδδδ
1 10 (0,70770;1,53119) 8,33355 18,03898 0,97054 2 1 (0,82819;1,10200) 3,77836 6,18162 2,35800 3 10-1 (0,89886;0,96393) 2,52902 3,17012 6,41099 4 10-2 (0,92935;0,91634) 2,12999 2,31992 18,99420 5 10-3 (0,94027;0,90116) 2,00432 2,06296 58,67703 6 10-4 (0,94388;0,89635) 1,96459 1,98297 184,12307 7 10-5 (0,94504;0,89483) 1,95202 1,95780 580,79253 8 10-6 (0,94541;0,89435) 1,94804 1,94986 1835,18554 9 10-7 (0,94553;0,89420) 1,94677 1,94734 5801,92332 10 10-8 (0,94557;0,89415) 1,94634 1,94655 18345,84870 11 10-9 (0,94558;0,89413) 1,94621 1,94633 58013,22391
Podemos observar que a cada iteração o valor da função aproxima-se do valor da função auxiliar,
mostrando que o método está convergindo e que a função barreira está tendendo a infinito.
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1430
13
4. Métodos (algoritmos) Afins de Pontos Interiores
4.1 - Algoritmo Primal – Afim
Considera-se um problema de programação linear em sua forma padrão
xcMinimizar T
(4.1a) sujeito a : Ax b, x 0= ≥
(4.1b)
em que ,Rc , , n∈∈∈∈ × eRxRbRA nmnm onde A é uma matriz de posto m.
O seu problema de programação dual é definido por:
max
sujeito a: , s 0
T
T
b w
A w s c+ = ≥; (4.1c)
; s, c ; w, .mxn n mA b∈ℜ ∈ℜ ∈ℜ
onde (4.1a,c) é chamado de Problema Primal (PP) e (4.1c) é chamado de Problema Dual (PD).
Observe que o domínio viável do problema (4.1a,b) é definido por
}0,/{ ≥=∈= xbAxRxP n
Define-se mais adiante o interior relativo de P (com respeito ao espaço Afim) como:
}0,/{0 >=∈= xbAxRxP n (4.2)
Um vetor nRx ∈ é chamado um ponto interior viável, ou solução interior, do problema de
programação linear, se 0Px ∈ . Durante o desenvolvimento deste trabalho para garantir a existência de pontos interiores, faremos sempre uma suposição fundamental:
Ø0 ≠/P Há diversas maneiras de se encontrar uma solução interior de um problema de programação
linear. Os detalhes serão discutidos mais tarde. Por enquanto, suponha-se simplesmente que uma solução
interior inicial 0x está disponível e analisa-se as idéias básicas do algoritmo Primal – Afim.
4.1.1 Idéias Básicas do Algoritmo Primal – Afim
Considera-se os princípios fundamentais observados por Karmakar na definição de seu algoritmo para a análise dos algoritmos afins, dados por:
(1) se a solução interior atual estiver perto do centro do politopo, então faz sentido mover-se numa direção de descida relacionada ao gradiente da função objetivo para conseguir um valor de mínimo;
(2) sem grandes alterações no problema original, uma transformação apropriada pode ser aplicada ao espaço solução tal que a solução interior atual seja levada para perto do centro definido no espaço transformado.
Na formulação de Karmarkar, a estrutura especial e simples de definir os pontos Δ∈x , tais que:
� { }nxxxRx inn ,....,1,0,1.../ 1 ≥=++∈= ;
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1431
14
determinava o ponto Tnnnne )/1,....,/1,/1(/ = como o ponto central de Δ , e esta condição foi
introduzida propositadamente obedecendo os princípios (1) e (2) supracitados. Quando se trabalha diretamente no problema na forma padrão, a estrutura simples adotada por Karmarkar está longe de ser conseguida, e o domínio viável poderia transformar-se num conjunto poliedral ilimitado. Toda a estrutura
a ser obedecida pela formatação padrão consiste na interseção do espaço { }bAxRx n =∈ / , formado
pelas restrições explícitas, com o conjunto definido pelo octante positivo { }0/ ≥∈ xRx n , requerido
pelas restrições não-negativas. É óbvio que o octante não-negativo não tem um ponto "central" real. Entretanto, se através de alguma transformação feita se conseguir posicionar o centro no ponto
T1) ...., 1, 1, ,1(=e , ao menos conseguirá manter-se a uma distância igual de cada face, do octante
não-negativo. Isto ocorre, desde que, a distância de movimento de qualquer ponto que se move do ponto central e é sempre menor que 1 e permanece no interior do octante não negativo. Conseqüentemente, se pudermos encontrar uma transformação apropriada que trace uma solução interior atual ao ponto e , então, analogamente ao algoritmo de transformação projetiva de Karmarkar, podemos indicar uma estratégia modificada como segue:
"Assumindo uma solução interior, aplique uma transformação apropriada ao espaço de soluções de tal forma a colocar a solução corrente em e no espaço transformado, e então caminhe na direção de descida máxima no espaço nulo (núcleo) da matriz das restrições explícitas transformadas, mas controlando o tamanho do passo relativo às restrições não-negativas a fim de permanecer em uma solução interior do espaço transformado. Então examina-se a transformação inversa para traçar posteriormente a solução encontrada ao espaço solução original, como uma nova solução interior. Repete-se este processo até a otimalidade ou quando as condições de parada forem satisfeitas."
Uma transformação apropriada neste caso foi aquela denominada de transformação Afim. A
partir desta, os pesquisadores denominaram os algoritmos variantes desta transformação com algoritmos afins. Quando a transformação é aplicada diretamente ao problema primal na forma padrão, denomina-se algoritmo Primal – Afim. E para o problema no formato dual de algoritmo Dual – Afim.
• A Transformação afim no octante não negativo. Seja nk Rx ∈ um ponto interior do
octante não negativo 0 ,é isto , >ki
n xR para i =1,....,n. Definiremos uma matriz diagonal nn
k RX ×∈ por:
�����
�
�
�����
�
�
==
)(00
0)(0
00)(
)( 2
1
kn
k
k
kk
x
x
x
xdiagX
�
���
�
�
(4.3)
Note que a matriz kX é não singular e admite uma matriz inversa 1−kX , que é também uma
matriz diagonal mas com kix/1 como seu i -ésimo elemento diagonal, para i =1,...., n.
A transformação afim é definida no octante não negativo nR+
por, nn RRT ++ →: , tal que:
xXxTy kk1)( −==
(4.4) A transformação (4.4) simplesmente reescala a i -ésima componente de x por um número
positivo kix . Geometricamente ela transforma pontos e segmentos de reta do espaço original para pontos
e segmentos de retas no espaço transformado. Daí a denominação de transformação Afim. A Figura 4.1 ilustra o esboço geométrico da transformação no espaço bidimensional. Note que, para o caso de as restrições bidimensionais de desigualdade, representadas na figura 4.1, as variáveis escaladas incluem as
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1432
15
variáveis de folga, também. De fato, cada borda do polígono corresponde a uma variável de folga que está sendo ajustada em zero. Entretanto, é difícil representar o esboço completo numa mesma figura.
FIGURA 4.1 - Esboço geométrico da transformação Afim no espaço bidimensional
As seguintes propriedades de KT pode-se facilmente serem verificadas:
(T1) kT é uma aplicação bem definida de nR+ a nR+ , e se kx for um ponto interior de nR+ ,
então, ky é um ponto interior do nR+ .
(T2) exT kk =)(
(T3) )(xTk é um vértice de nR+ se x for um vértice.
(T4) )(xTk está na fronteira do octante nR+ se x for um ponto da fronteira.
(T5) )(xTk é um ponto interior de nR+ se x for um ponto interior.
(T6) kT é uma transformação biunívoca, a qual admite uma transformação inversa 1−kT tal
que:
xyXyT kk ==− )(1 para cada nRy +∈ (4.5)
Suponha que uma solução interior kx do problema de programação linear (4.1a,b) é dada. Pode-
se aplicar a transformação afim kT para "centrar" sua imagem em e . Pela relação yXx k= , mostrada
em (4.5), no espaço solução transformado, tem-se um problema de programação linear correspondente a:
ycMinimizar Tk )( (4.6a)
ksujeito a : A y b, y 0= ≥ (4.6b)
onde cXc kk = e .kk AXA =
No problema (4.6), a imagem de kx , isto é, )( kk
k xTy = , torna-se e , que mantêm a
distância unitária da fronteira definida no octante não-negativo. Se movermos ao longo de uma direção kyd que se encontre no espaço nulo da matriz kk AXA = , com um comprimento de passo apropriado,
0>kα , então o novo ponto kyk
k dey α+=+1 permanece interior e viável para o problema (4.6). Além
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1433
disso, sua imagem inversa 1+ =kxproblema (4.1a,b).
Desde que nosso objetivo
procedimento de máxima descida é
espaço nulo da matriz kA , e criar um
espaço transformado. Para este fim,
kTkk AAAIP (−=
Então, a direção de movime
cPd kk
ky )( =−=
Note que a matriz proje
completo m e 0>kx . É também
projeção.
FIGURA 4.2 – Esboço da projeção
Agora tem-se a condição
eyk = ao longo da direção kyd , p
valor da função objetivo. Fazendo
apropriado, tal que:
Observe que, se 0≥kyd
permanecendo no interior da região.
inicialmente considerando as razões
Desta forma pode-se escolh
= mkα
111 )( ++− == kk
kk yXyT torna-se uma nova solução int
o é minimizar o valor da função objetivo, a estratégia
é indicada. Ou seja, quer-se projetar o gradiente negati
ma direção factível kyd , que melhora ou diminui a funçã
define-se primeiramente a matriz nula da projeção do esp
kT
kT
kkTk AXAAXAXIAA 121 )() −− −=
ento kyd , é dada por:
cXAXAAXAXI kkT
kT
k ])([ 12 −−−=
eção kP é bem definida ao longo de A sempre qu
m fácil verificar que 0=kkdAX . A Figura 2.2 mostra
o do vetor direção do Método Primal – Afim no espaço bi
de mudar, no espaço solução transformado, a solução
ara uma nova solução interior 01 >+ky , garantindo o de
o assim, tem-se que escolher um comprimento do pas
01 >+=+ kyk
kk dyy α
, então kα poderá ser escolhido como qualquer núm
. Note que, se 0)( <ikyd , para algum i, então kα deve s
:
ikyi
ky
ki
dd
y
)(
1
)( −=
−
her 10 <α< e aplicar o teste de raio mínimo
��
���
<��
���
−0)(
)(min i
ky
iky
id
d
α ;
16
terior para o
de adotar o
ivo kc− no
o objetivo no
paço por:
(4.7)
(4.8)
ue tem posto
a o esboço da
dimensional
interior atual
ecréscimo do
sso 0>kα ,
mero positivo,
ser escolhido,
(4.9)
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1434
17
para determinar um comprimento do passo apropriado, que garanta a positividade de 1+ky . Quando α
está perto de 1, a solução atual é movida quase sempre para a fronteira mais próxima do octante positivo para definir uma nova solução interior no espaço transformado. Esta mudança de solução é ilustrada também na figura 4.2.
Nossa próxima tarefa é transformar a nova solução 1+ky para o espaço solução original, para
obter uma solução melhorada 1+kx para o problema (4.1a,b). Isto poderá ser feito aplicando a
transformação inversa 1−
kT a 1+ky . Em outras palavras, tem-se:
1111 )( ++−+ == kk
kk
k yXyTx
kykk
k dXx α+=
cXPXx kkkkk α−=
[ ] cXAXAAXAXIXx kkTT
kkk
kk
12 )( −−α−=
[ ]cAXAAXAcXx kT
kT
kkk 2122 )( −−α−=
[ ]kT
kkk wAcXx −−= 2α (4.10)
onde cAXAAXw k
T
k
k 212 )( −= (4.11)
Isto significa que a direção de movimento no espaço solução original é [ ]kT
k
kx wAcXd −−= 2
e o comprimento do passo é kα , quando [ ]kT
kky wAcXd −−= no espaço transformado. Diversas
observações importantes podem ser feitas aqui:
Observação 1. Note que k
Kky cPd −= e
kyk
kx dXd = , onde kP é uma matriz de projeção
vista em (4.7). O decréscimo da função objetivo é demostrado a partir de: kyk
Tk
kTkT dXcxcxc α+=+1
ky
Tkk
kT dcxc )(α+=
ky
Tkyk
kT ddxc )(α−=
2k
ykkT dxc α−=
(4.12)
Isto implica que 1+kx é certamente uma solução de decréscimo da função objetivo se a direção
de movimento 0≠kyd . Além disso, têm-se os seguintes lemas que podem ser encontrados em [FANG e
PUTHENPURA – 1993]:
Lema 4.1. Se existir um 0Pxk ∈ com 0>kyd , então o problema de programação linear
(4.1a,b) é ilimitado.
Prova. Desde que kyd está no espaço nulo da matriz restrição kAX e 0>k
yd , sabe-se que
kyk
kk dyy α+=+1 é viável ao problema (4.6), para todo 0>kα . Consequentemente, pode-se escolher
kα sendo infinitamente positivo, então a Equação (4.12) implica que o limite de 1+kT xc se aproxima de
∞− , neste caso,para PdXxx kykk
kk ∈+=+ α1 . �
Lema 4.2. Se existe um 0Pxk ∈ com 0=kyd , então toda solução viável do problema de
programação linear (4.1a,b) é ótima.
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1435
18
Prova. Recorde que kP é uma matriz projeção do espaço nulo. Para 0=−= cXPd kkky , sabe-
se que cX k está no complemento ortogonal do espaço nulo da matriz kAX . Desde que o complemento
ortogonal neste caso é o espaço definido pelo número de linhas da matriz kAX , existe um vetor ku tal
que
cXuAX kkT
k =)( ou kT
kTk XcAXu =)(
Desde que 1−kX existe, segue que TTk cAu =)( . Agora para toda a solução viável x ,
buAxuxc TkTkT )()( ==
Desde que bu Tk )( não depende de x , o valor de xcT permanece constante em P. �
Lema 4.3. Se o problema de programação linear (4.1a,b) for inferiormente limitado e sua função
objetivo não for constante, então a seqüência ...} ,2 ,1{ =kxc kT é bem definida e estritamente
decrescente. Prova. Esta é uma conseqüência direta dos Lemas 4.1, 4.2 e Equação (4.12). �
Observação 2. Se kx for realmente um ponto do vértice, então a expressão (4.11) pode ser
reduzida a BTk cBw 1)( −= , o qual é definido como o " vetor Dual" para o Método Dual – Simplex.
Assim denomina-se kw como estimador dual (correspondente à solução primal kx ) no algoritmo Primal – Afim. Além disso, neste caso, o vetor:
kTk wAcr −= (4.13)
reduz-se a BTT cBAc 1)( −− que é o conhecido vetor custo reduzido ou custo relativo no Método
Simplex. Daí chama-se kr de vetor custo reduzido ou relativo associado a kx no algoritmo afim.
Observe que quando 0≥kr , a estimativa dual kw se transforma numa solução viável dual e k
kTkTk rXerx =)( transforma a folga complementar no par de solução viável ),( kk wx , isto é,
kk
TkTkT rXewbxc =− (4.14)
No caso de 0=kk
T rXe com 0≥kr , tem-se conseguido então a factibilidade primal de kx ,
a factibilidade dual de kw , e as condições de folgas complementares. Ou seja, kx é ótimo primal e kw é ótimo dual.
Baseado na discussão acima, esboça-se aqui um procedimento iterativo do algoritmo Primal – Afim.
4.1.2 Algoritmo Primal – Afim.
Passo 1 (inicialização): Estabelecemos k=0 e 00 >x tal que bAx =0 (Detalhe a ser discutido mais tarde). Passo 2 (Cálculo do vetor estimativa dual): Calcular o vetor estimativa Dual.
cAXAAXw kT
kk 212 )( −=
onde kX é a matriz diagonal visto em (4.3) cujos elementos são as componentes de xk .
Passo 3 (Cálculo do vetor custo relativo): Calcular o vetor custo reduzido.
kTk wAcr −=
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1436
19
Passo 4 (Teste para otimalidade): Se 0≥kr e ε≤kk
T rXe (um número positivo pequeno
fixo), então PARE, kx é ótimo primal e kw é ótimo dual. Caso contrário, vá para o passo seguinte.
Passo 5 (Direção de translação): Calcule a direção
kk
ky rXd −=
Passo 6 (Teste para ilimitariedade e valor objetivo constante): Se 0>kyd , então PARE, o
problema é ilimitado. Se 0=kyd , então também PARE, kx é ótimo primal. Caso contrário vá
para o Passo 7. Passo 7 (Cálculo do comprimento do passo): Calcule o comprimento do passo
��
���
<��
��� α−
=α 0) que tal,)(
min iky
iky
ki
ik d
d
y onde 10 << α
Passo 8 (Determinação de uma nova solução): Atualize kykk
kk dXxx α+=+1
Faça 1+← kk e vá para o passo 2 O Algoritmo Primal – Afim, visto nesta seção, implementado em Linguagem Pascal 7.0 é
utilizado no exemplo numérico 4.1, dado a seguir, para ilustrar este algoritmo Exemplo 4.1 Considera-se o Problema de Programação Linear:
212x- xMinimizar +
1 2
2
1 2
sujeito a : x x 15
x 15
x , x 0
− ≤
≤
≥
(4.1.1)
Este, na forma canônica é expresso por:
212x- xMinimizar +
1 2 3
2 4
1 2 3 4
sujeito a : x x x 15
x x 15
x , x , x , x 0
− + =
+ =
≥
(4.1.2)
O método Primal – Afim será testado para o problema dado na forma canônica, ou seja, o problema (4.1.2) a qual está definido com restrições de igualdade.
Neste caso,
��
���
�=
10
01
10
1-1A , [ ]TB 1515= , e [ ]Tc 0012-=
Assume-se [ ]Tx 1372100 = , a qual é uma solução interior factível. Daí:
����
�
�
����
�
�
=
13000
0700
0020
00010
0X e cAXAAXw T 20
120
0 )( −= [ ]000,00771-1,33353-=
Além disso,
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1437
20
[ ]TT wAcr 00771.033535.132582.066647.000 −−−=−=
Desde que algumas componentes de 0r são negativas e 1187.200 =rXeT , sabe-se que a
solução atual é não ótima. Conseqüentemente prossegue-se para sintetizar a direção de busca com
[ ]Ty rXd 1002.03475.96516.06647.600
0 −=−=
Suponha que é escolhido 99.0=α , então o comprimento do passo
1059.03475.9
99.00 ==α
Conseqüentemente, a nova solução é:
[ ]86178.1207000.013822.206822.170001 =α+= o
ydXxx
Observe que o valor da função objetivo foi melhorada de 18− para 99822.31− . Fazendo-se
mais iterações, verifica-se que o processo iterativo converge à solução ótima [ ]Tx 001530=∗
com o valor da função objetivo 45− . O resultados obtidos, e a interpretação geométrica do problema dado e das soluções encontradas
pelo algoritmo, são vistas, respectivamente, na Tabela 4.1 e na Figura 4.3.
TABELA 4.1 – Resultados Obtidos pelo Algoritmo Primal – Afim para o (4.1.2)
Iteração
k
ix
Função Objetivo
1
16.782336515 2.132636515 0.3499999999 12.867363485
-31.432636515
2
23.0731155942 8.0906559421
0.0175 6.9093440579
-38.055655943
3
29.637182208 14.654532797 0.0173505898
0.34546720289
-44.619831618
4
29.967032773 14.982726640 0.056938811 0.017273360
-44.951338906
5
29.9900972523 14.991757223
0.00078469405 0.00824276980
-44.990187824
6
29.998945353 14.999587895
0.00064276173 0.00412138490
-44.998302811
7
29.999687342 14.999713389
0.00003213808 0.00286613571
-44.999661295
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1438
21
A solução ótima encontrada computacionalmente foi
999687342.2971 =x 999713389.147
2 =x
e o valor da função objetivo é 999661295.447 −=z
Na implementação feita do algoritmo Primal – Afim não foi utilizado, como critério de parada, o critério das folgas complementares. Nesta optou-se por utilizar o critério simples de mn − componentes
tenderem a zero, o que determina um vértice do problema, para uma precisão 310−=ε .
FIGURA 4.3 – Interpretação geométrica para o problema (ex.4.1a) e das soluções obtidas pelo algoritmo
Primal – Afim
• A convergência do algoritmo Primal – Afim. Nosso objetivo é mostrar que a
seqüência }{ kx gerada pelo algoritmo Primal – Afim (sem parar na etapa 6) converge a uma solução
ótima do problema de programação linear (4.1a,b). A fim de simplificar a prova, faz-se as seguintes suposições: 1. O problema de programação linear em consideração tem um domínio viável limitado com interior
não-vazio; 2. O problema de programação linear é não-degenerado primal e não degenerado dual.
A primeira suposição retira a possibilidade de se terminar o algoritmo Primal – Afim com ilimitariedade, e pode ser posteriormente mostrado que estas duas suposições implicam que:
(i) a matriz kAX é de posto completo s)L.I. colunas ( 'm , para cada Pxk ∈ ;
(ii) o vetor estimador dual kr têm no máximo m zeros para cada mk Rw ∈ . A seguir serão revistos alguns Lemas simples, mas importante para nossa análise de
convergência.
Lema 4.4 - Quando aplica-se o algoritmo Primal – Afim tem-se que 0lim =∞→
kk
krX .
Prova. Desde que a seqüência }{ KT xc é monotonicamente decrescente e é limitada
inferiormente (pela primeira suposição), então a mesma é convergente. Daí as equações (4.12) e (4.9) implicam que
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1439
22
221 limlim)(lim0 kyk
yk
kyk
k
kTkT
kd
ddxcxc
αα
∞→∞→
+
∞→≥=−=
Observe que 0>α e 0≥kyd , logo tem-se:
0limlim ==∞→∞→
kk
k
ky
krXd
E a prova do resultado é imediata. �
Note que o resultado acima é exatamente a condição das folgas complementares. Definindo PC ⊂ , como sendo o conjunto em que se verificam as folgas complementares, ou
seja:
}0/{ =∈= kk
k rXPxC ;
(4.15) além disso, introduzindo PD ⊂ , como sendo o conjunto em que a condição viável dual se verifica, isto é,
}0/{ ≥∈= kk rPxD ;
(4.16) e, considerando-se as condições de otimalidade do problema de programação linear, é fácil provar o seguinte resultado:
Lema 4.5 - Para todo DCx ∩∈ , x é uma solução ótima do problema de programação linear (4.1a,b).
Agora está-se pronto para provar que a seqüência }{ kx gerada pelo algoritmo Primal – Afim
converge para uma solução ótima do problema (4.1). Primeiramente, mostra-se que:
Teorema 4.1 - Se }{ kx convergir então k
kxx
∞→
∗ = lim é uma solução ótima para problema
(4.1a,b)
Prova – Prova-se este resultado pela contradição. Primeiramente note que quando }{ Kx
convergir para ∗x , ∗x deve ser viável primal. Entretanto, para provar este resultado assume-se que ∗xnão é ótimo primal.
Desde que (.)kr é uma função contínua de x a kx , sabe-se que k
krr
∞→
∗ = lim é bem definido.
Além disso, o Lema 4.4 implica que:
0lim ==∞→
∗∗ kk
krXrX
Daí tem-se Cx ∈∗ . Por suposição e Lema 4.5, sabe-se que Dx ∉∗ . Consequentemente, existe
ao menos um índice j tal que 0<∗jr . Recordando que Cx ∈∗ , tem-se 0=∗
jx . Devido à continuidade
de kr , existe um inteiro K tal que para todo 0}{, <≥ kjrKk . Entretanto, considere que:
kj
kjk
kj
k
j rxxx 21)(α−=
+
Desde que 0)( 2 <kj
kj rx , temos Kkxx k
j
k
j ≥∀>>+
,01
, o que contradiz o fato que
0=→ ∗jxxk
j . Daí, chega-se a uma contradição de nossa hipótese. Portanto, ∗x é ótimo primal.
�
O trabalho restante deve mostrar que a seqüência }{ kx certamente converge.
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1440
23
Teorema 4.2 - A seqüência }{ kx gerada pelo algoritmo Primal – Afim é convergente.
Prova. Desde que o domínio viável é não-vazio, fechado e limitado, devido a compacidade do
conjunto P a seqüência }{ kx tem ao menos um ponto de acumulação em P, dito ∗x . Nosso objetivo é
mostrar que ∗x é também o único ponto de acumulação de }{ kx e daí este é o limite da seqüência gerada
}{ kx .
Observando-se que (.)kr é uma função contínua em kx e aplicando-se o Lema 4.4, pode-se
concluir que Cx ∈∗ . Além disso, a suposição de não-degeneração implica que cada elemento em C
incluindo ∗x deve ser uma solução viável básica (vértice de P). Daí podemos denotar suas variáveis não
básicas por ∗jx , e define-se Ñ como o índice para se ajustar estas variáveis não básicas. Além disso,
para todo 0>δ , define-se uma bola de raio 0>δ , ao redor de ∗x dada por :
}/{ exPxB kN
k δδ <∈=
Assume-se que ∗r seja o vetor custo reduzido correspondente a ∗x . A não degeneração primal
e dual assegura-nos encontrar um 0>ε tal que
ε>∗
∈j
Njr~min
Recorde que a suposição de não-degeneração implica em cada membro de C ser um vértice de P e há somente um número finito dos vértices em P. Daí C tem um número finito de elementos e pode-se
escolher um apropriado 0>δ tal que
∗=∩ xCB iδ (4.17a)
e
δε BxrjNj
∈∀>∗
∈
k~ ,min (4.17b)
Recordando que
0limlim22
==∞→∞→
kk
k
ky
KrXd
tem-se
[ ] 0lim2
=∞→
kj
kj
Krx
Devido à condição de P ser limitado, sabe-se que o comprimento do passo kα em cada iteração
é um número positivo e limitado. Conseqüentemente, para ε e δ apropriadamente escolhidos, se
δBxk ∈ , que é suficientemente próximo de ∗x , vê-se que ][ δεα 2
<kj
kjk rx . Daí pode-se definir um
conjunto
[ ] }~
, {2
, NjrxBxS kj
kjkk
k ∈∀δε<α∈=δε (4.18)
Agora, para todo δε∈ ,Sxk, (4.18) implica que
[ ] Njrx kji
kjk
~ , )(
2∈∀δ<α
e que, além disso,
[ ] Njrxxx kj
kjk
kj
kj
~ ,2)( 21 ∈∀δ<α−=+
Isto mostra que ,�kk
j SxBx εδ+ ∈∈ se 2
1
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1441
24
Agora pode-se mostrar que ∗x é o único ponto de acumulação de }{ Kx . Por contradição,
supõe-se que a seqüência }{ kx tem mais de um ponto de acumulação. Desde que ∗x é um ponto de
acumulação, a seqüência }{ kx pertence a δε ,S sempre que (4.17b) está satisfeita. Mas, como ∗x não é o
único ponto de acumulação, a seqüência é alterada sempre que se aproxima de um novo ponto e satisfaz
(4.17b). Entretanto, cada vez que a seqüência é alterada δε ,S , ela permanece em δεδ ,2 / SB .
Conseqüentemente, infinitos elementos de }{ kx , permanecem em δεδ ,2 / SB . Note que estes diferentes
conjuntos tem um fecho compacto, e a subseqüência de }{ kx que pertence a δεδ ,2 / SB deve ter um
ponto de acumulação no fecho compacto. Devido à definição de C, sabe-se que cada ponto de
acumulação de }{ kx deve pertencer-lhe. Entretanto, C é disjunto do fecho de δεδ ,2 / SB . Este fato, junto
com a Equação (4.17), causa uma contradição. Assim ∗x certamente é o limite da seqüência }{ kx .
Mais resultados a respeito da convergência do algoritmo Afim sob a condição de degeneração tem aparecido recentemente.
4.1.3 Implementando o Algoritmo Primal – Afim
As implementações feitas necessitam de um ponto interior inicial para serem aplicadas. Nesta seção, será definido um procedimento para determinação de uma solução factível inicial, bem como, a verificação da ocorrência de otimalidade e da busca de uma solução básica viável básica ótima.
• Iniciando o algoritmo Primal – Afim. De maneira análoga aquela estabelecida para o Método Simplex Revisado [LUENBERGER – 1984], será introduzido aqui dois mecanismos, a saber, o Método Big-M e o Método Duas-Fases para encontrar uma solução viável interior inicial. O primeiro método é executado mais facilmente e apropriado para a maioria das aplicações. Entretanto, uma execução comercial mais séria considera freqüentemente o segundo método devido a sua estabilidade.
• Método Big-M. Neste método, adiciona-se uma variável artificial ax associado com
um número positivo grande M ao programa linear original para fazer que 1R1,....,1) ,1( +∈ n se
transforme numa solução viável interior inicial para o seguinte problema: aT MxxcMinimizar + (4.19a)
[ | a
a
xsujeito a : A b Ae] b, x 0 x 0
x
� �− = ≥ ≥� �� �
(4.19b)
onde nT Re ∈= )1 ..., ,1 ,1( .
Comparando o Método Big-M com o Método Simplex Revisado, tem-se aqui somente n+1 variáveis, em vez de n+m. Quando o algoritmo Primal – Afim é aplicado ao problema Big-M (4.19a,b) com M suficientemente grande, desde que o problema seja viável, chega-se em uma solução ótima ao problema Big-M ou conclui-se que o problema é ilimitado. Se a variável artificial permanecer positiva na
solução final ),( axx∗ do problema Big-M, então o problema de programação linear original é infactível.
Caso contrário, ou o problema original é inferiormente ilimitado, ou ∗x é a solução ótima do problema de programação linear original.
Após as considerações dos mecanismos iniciais vê-se os critérios de parada para a implementação do algoritmo Primal – Afim.
Teorema 1.3.: (Condições de Otimalidade de Karush-Kunh-Tucker - KKT)
Considere os problemas (4.1a,b) e o problema no formato dual (4.1c). O vetor *x é uma solução
ótima do problema (4.1a,b) e ( )**,sw é solução ótima para o Problema Dual (4.1c) se, e somente se:
bAx = , 0≥x (factibilidade primal)
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1442
25
cswAT =+ , 0≥s (factibilidade dual)
0=XSe (folgas complementares)
onde ( )nxxxX ,,,diag 21 �= , ( )nsssS ,,,diag 21 �= e ( )Te 1 , ,1 ,1 �= .
Do teorema 4.3 tem-se que o vetor ( )*** ,, swx é solução ótima do sistema acima se, e somente
se *x é solução ótima de (4.1a,b) e ( )**,sw é solução ótima do (4.1c). O vetor ( )*** ,, swx é chamado
de solução Primal-Dual.
• Critérios de Parada. Como mencionado anteriormente, uma vez que as condições de K-K-T são encontradas, um par de soluções ótima está encontrado. Daí usa-se as condições (I) da factibilidade primal, (II) da factibilidade dual e (III) das folgas complementares como critérios de parada. Entretanto, em execuções reais estas circunstâncias são algumas vezes relaxadas para acomodar as difículdades numéricas devido às limitações da exatidão da máquina.
Assumindo que kx é uma solução atual obtida aplicando o algoritmo Primal – Afim. As condições primal da factibilidade requerem que
(I) factibilidade primal
0, ≥= kk xbAx (4.20)
Na prática, a factibilidade primal é medida freqüentemente por:
0 com 1
≥+
−= k
k
p xb
bAxσ (4.21)
Note que para 0 ≥kx , se pσ for bastante pequeno, pode-se aceitar k x para ser viável
primal. Somando-se 1 no denominador de (4.21) é assegurar-se a estabilidade numérica na computação.
(II) factibilidade dual A factibilidade dual requer a não-negatividade dos custos reduzidos, isto é,
0≥−= kTk wAcr (4.22)
onde kw é a estimativa dual definida na equação (4.11). Uma medida prática da factibilidade dual poderia ser definida como
1+
=c
r k
dσ (4.23)
onde c e kr são calculados somente para i tal que o 0<kir . Quando dσ é
suficientemente pequeno, pode-se afirmar quer a factibilidade dual está satisfeita para kw .
(III) folgas complementares A condição de folga complementar requer que
0)( == kk
kTk reXrx (4.24)
Desde que
kk
TkTkT rXewbxc =− (4.25)
onde kx é primal viável e kw é dual viável, pode-se definir
kTkTc wbxc −=σ (4.26)
para medir a condição de folga complementar.
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1443
26
Na prática, escolhe-se pd c e �, �� como números positivos suficientemente pequenos e os
utiliza-se então para decidir se a iteração atual satisfaz o critério de parada. De acordo com [FANG e PUTHENPURA - 1993], tem-se observado o seguinte comportamento para o algoritmo Primal – Afim:
1. Em cada iteração, o engarrafamento computacional é devido ao cálculo das estimativas duais kw . 2. Embora a condição primal é mantida teoricamente, o truncamento numérico e os erros de
arredondamento dos computadores poderiam ainda causar infactibilidade. Conseqüentemente, a factibilidade primal necessita ser verificada com cuidado. Uma vez que a infactibilidade é detectada, pode-se aplicar o procedimento "dinâmico de correção da infactibilidade" da Fase-I para restaurar a factibilidade primal.
3. O valor da função objetivo decresce nas iterações seguinte, mas tende a um decrescimento lento considerável quando a solução atual se torna mais perto da otimalidade.
4. O algoritmo é um tanto sensível ao primal degenerado, especialmente quando a iteração prossegue perto da otimalidade. Mas esta observação não é sempre verdadeira. Em muitos casos, igualmente com a presença do primal degenerado, o algoritmo se comporta bem.
• Encontrando uma solução viável básica. Observe que, exatamente como o algoritmo
de Karmarkar, em cada iteração, a solução atual do algoritmo Primal – Afim permanece sempre no interior do domínio viável P. A fim de obter uma solução viável básica, o esquema da depuração e as técnicas relacionadas ao Método Big-M e ou Método Duas-Fases podem ser aplicados aqui.
4.1.4 Complexidade Computacional
Comparado à transformação projetiva de Karmakar, a transformação Afim é menos complicada e mais natural. A execução do Primal – Afim é também bastante simples. Não necessita a suposição do "valor objetivo ótimo zero" nem requer a "estrutura simples" especial. Por distante, é um dos variantes mais populares do método de ponto interior. De acordo com [VANDERBEI et al – 1986], para problemas com matrizes de restrições densas, a implementação Primal – Afim é próxima de
1694.00187.03885.7 nm k− iterações para alcançar uma solução ótima para uma tolerância 310−=ε . O resultado foi derivado da análise da regressão de 131 problemas gerados aleatoriamente. Embora na prática o algoritmo Primal – Afim executa muito bem, nenhuma prova mostra que ele é um algoritmo de tempo polinomial.
• Método da função barreira logarítmica. Uma outra maneira de se permanecer longe da fronteira do octante positivo é incorporar uma função barreira, a qual assume valores extremamente
elevados ao longo dos limites }nj1 algum para ,0{ ≤≤=∈ jn xRx , na função objetivo original,
ou seja, penalizando os pontos do conjunto citado, analogamente aos resultados vistos na Seção 3.2. Minimizando esta nova função objetivo, consegue-se, automaticamente, garantir que uma solução qualquer seja definida distante da fronteira do octante positivo. O método barreira logarítmica considera o seguinte problema de otimização não-linear:
ln(x)1�
=
=n
jj
T xx-�cFMinimizar μ (4.27a)
sujeito a : Ax b, x 0= ≥ (4.27b)
onde 0>μ é um escalar. Se )(μ∗x é um solução ótima para o problema (4.27a,b), e se )(μ∗x tender
a um ponto ∗x quando μ tende para zero, então, ∗x é uma solução ótima do problema de programação
linear original. Observe também que a restrição de positividade 0>x está considerada na definição da função logarítmica. O PPL (4.27a,b) é equivalente ao seguinte problema Lagrangeano:
)(ln bAx xx-�c(x)FMinimizarn
jj
T −λ+= μ=
μ �1
(4.27c)
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1444
27
onde, μλ é o vetor multiplicador d eLagrange.
Daí, para todo 0>μ fixo, a direção de busca de Newton μd em uma dada solução viável x é
obtida resolvendo o seguinte problema de otimização quadrática:
dxF (x)d FdMinimizar T��
T ))(((2
1 2 ∇+∇ (4.28a)
sujeito a : Ad 0= (4.28b)
onde μ−
μ λ−μ−=∇ TAeXcxF 1)( e -22 (x) XF μμ =∇ .
Em outras palavras, a direção de Newton está no espaço nulo da matriz A e minimiza a
aproximação de (x)μF .
As Condições de Primeira Ordem do problema (4.27a,b) em relação à variável d é:
��
���
=
=∇+∇ μμ
0
0)(2
Ad
xF (x)dF (4.28c)
Substituindo-se as expressões de )(F xμ∇ e (x)2μ∇ F , vistas em (4.28a, b) no sistema (4.28c)
tem-se:
��
���
=
=λ+μ−+μ
μ
μ−
μ−
0
0)( 12
Ad
AeXcdX T
Assume-se que μλ denota o vetor de multiplicadores de Lagrange, então μμλ e d satisfazem
ao seguinte sistema de equações:
���
����
� −−=��
�
����
����
����
� −−
0
0
12 eXcd
A
AX T μ
λ
μ
μ
μ
Multiplicando o sistema por X tem-se:
���
����
� μ−−=��
�
����
��
�
����
�μ
μ
μ−
0
0
1 eXcd
AX
XAX T
Assumindo μμ μφ dX 1−= , tem-se
���
����
� −−=��
�
����
����
����
�0
0
eXc
AX
XAI T μ
λ
φ
μ
μ
logo
e)]()([ 12 μφμ −−−= − XcAXAAXXAI TT (4.29)
e
e)]()([1 12 μμ
μ −−−= − XcAXAAXXAIXd TT (4.30a)
Fazendo a solução dada ser kxx = e comparando μd com a direção de busca Primal - Afim
kxd , tem-se:
eAXAAXAXIXdd kT
kT
kkkx ])([
1 12 −−+−=μ
μ (4.30b)
A componente adicional ePXeAXAAXAXIX kkkT
kT
kk =− − ])([ 12 pode ser vista como
uma força que afasta uma solução qualquer da fronteira do problema. Daí esta componente ser chamada
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1445
28
de "força de centragem" e o método barreira logarítmica um "algoritmo Primal – Afim com força de
centragem”. A Figura 4.4 ilustra geometricamente a direção encontrada μd .
FIGURA 4.4 – Interpretação geométrica do vetor direção do Método Primal – Afim com
procedimento de centragem através do método de barreira logarítmica
Enquanto a teoria clássica da função barreira requer que kx resolva o problema (4.27a,b)
explicitamente antes que Kμμ = seja reduzido, em [GONZAGA – 1989] é demonstrado que existe
0 e 1,0 ,00 >α<ρ<>μ , tal que, escolhendo K
dμ por (4.29), k
kk
kdxx ρμ=μα+= +μ
+1k
1 e ,
o método verifica a convergência para uma solução ótima ∗x do problema original de programação
linear original em )( nLO iterações. Isto poderia resultar em um algoritmo Afim de tempo polinomial
com complexidade )( 3LnO . Uma simples e elegante prova é devido a C. Roos e J-Ph. Vial [ROOS e
VIAL – 1990], a qual é análoga aquela proposta por R. Monteiro e I. Adler [MONTEIRO e ADLER – 1990] para o algoritmo Primal – Dual.
4.2 O Método Dual-Afim para o Problema Primal
Considera-se um Problema de Programação Linear (PPL), em sua forma de desigualdade:
bAx
xcz T
≤≤≤≤
====
:asujeito
min (4.31a)
; c, ; , , onde é uma matriz de posto m.mxn n mA x b A∈ℜ ∈ℜ ∈ℜ
O seu PPL dual é expresso por:
0wc,wA
wbT
T
≥≥≥≥====:asujeito
max (4.31b)
A ∈ℜmxn; c ∈ℜn; w,b ∈ℜm. O PPL (4.31a) é conhecido na literatura como Problema em formato dual e pode ser resolvido
da seguinte maneira: Introduzindo as variáveis de folga temos:
min z
sujeito a: 0
Tc x
Ax s b
s
=
+ =��
≥�
(4.32)
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1446
29
Seja x um ponto interior factível para (4.31a), ou seja, Ax b= , logo 0s b Ax= − > é um ponto factível para (4.32).
Temos que o interior do PP, representado por Int(PP), é dado por:
{ }( ) / , 0nInt PP s R Ax s b s= ∈ + = >
Considerando a Iteração k+1, temos: 1k k k
xx x dβ+ = + (4.33a) 1k k k
ss s dβ+ = + (4.33b)
Deseja-se que: 1 1 1, s 0k k kAx s b+ + ++ = > (4.34a)
1T k T kc x c x+ ≤ (4.34b) Substituindo (4.33a,b) em (4.34a), temos que:
0 (direções factiveis)k kx sAd d+ = (4.35)
Substituindo (4.33a) em (4.34b), temos que:
0 (condição para minimizar a função objetivo)T kxc d < (4.36)
Definindo a matriz ( )kk iS Diagonal s= , ou seja:
1 ... 0
... ... ...
0 ...k
m
s
S
s
� �� �
= � �� �� �
Podemos definir: 1 (variável do espaço transformado)ku S s−= (4.37)
1 = = k kkS s e u−
Portanto de (4.37), temos:
(direção factível no Espaço Transformadok ks k ud S d= (4.38)
Substituindo (4.38) em (4.35), temos: 1
k
k kx uS Ad d− = −
Multiplicando-se ambos lados por 1TkA S − , tem-se: 2 1
k k
T k T kx uA S Ad A S d− −= −
onde a matriz 2
k
TA S A− é simétrica e definida positiva, assim esta matriz é inversivel e
podemos expressar kxd da seguinte forma:
2 1 1( )k k
k T T kx ud A S A A S d− − −= − (4.39a)
Por definição 2 1 1( )
k k
T TkQ A S A A S− − −= , então (4.39a) pode ser escrito como:
k kx k ud Q d= − (4.39b)
Como kxd deve satisfazer 0T k
xc d ≤ , a melhor escolha para kxd é (4.39b).
A equação (4.39b) implica que kxd é determinada por k
ud no espaço transformado. Se
pudermos encontrar uma direção apropriada kud tal que (4.36), é satisfeita, então conseguimos nosso
objetivo. Nesse sentido, definimos:
k
k Tud Q c= (4.40a)
Então, temos:
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1447
30
20
k
T k T k T T Tx k u k kc d c Q d c Q Q c c Q= − = − = − ≤
e assim a direção definida em (4.32a) satisfaz (4.36). Considerando (4.39b) e (4.40a), vemos que:
2 1( ) ck Tx kd A S A− −= − (4.40b)
Conseqüentemente, de (4.35), temos a seguinte direção de busca no espaço original: 2 1( ) ck k T
s x kd Ad A A S A− −= − = (4.40c)
Uma vez que a direção de busca ( kxd ; k
sd ) é determinada, o comprimento do passo kβ é
definido pela condição de não-negatividade de 1ks + e, da mesma forma que no algoritmo tem-se as seguintes condições:
1- Se 0ksd = , então o problema dual tem um valor objetivo constante em seu
conjunto de restrições viáveis e ( kx ; ks ) é ótimo de (4.31a);
2- Se 0ksd > , então o problema (4.31a) é ilimitado;
3- Caso contrário
min / ( ) 0 onde 0 < < 1( )
kki
k s ikis i
sd
d
αβ α
� �= − <� �
� �
Note que, podemos definir o vetor estimativa para o PPL dual (4.31b) o qual é escrito por: 2k k
k sw S d−= − (4.41)
então 2 -2 -2 -2 -1( )( )T k T k T k T Tk s k x k kA w A S d A S Ad A S A A S A c c−= − = = = . Portanto, kw pode ser visto
como “o vetor estimativa dual” para algoritmo Dual-Afim. Uma vez calculado o vetor estimativa dual
0kw ≥ , e considerando-se a solução factível primal kx , então, a folga complementar é definida por T k T kc x b w− . Além disso, se 0T k T kc x b w− = , então ( kx ; ks ) deve ser ótimo primal e kw ótimo
Dual. Esta informação pode ser usada para definir o critério de parada para o Algoritmo Dual-Afim de Pontos Interiores, ou seja, considerando-se 0ε > , uma pequena tolerância positiva, definimos este critério por: T k T kc x b w ε− < , 0ε > .
4.2.1 O Algoritmo Dual-Afim para o PPL em Formato Primal
Passo 1: Considere k = 0 e encontre uma solução inicial ( 0x ; 0s ) tal que 0 0 0 e 0Ax s b s+ = ≥
Passo 2 (Obter a direção de translação): Defina ( )kk iS Diagonal s= e calcule:
2 1( ) ck Tx kd A S A− −= − e k k
s xd Ad= −
Passo 3 (Teste para ilimitariedade): Se 0ksd = , então PARE. ( 0x ; 0s ) é ótimo dual. Se
0ksd > , então também PARE. O problema (4.31a) é ilimitado. Caso contrário vá para o passo 4;
Passo 4 (Cálculo do vetor estimativa dual): Calcule o vetor estimativa dual por:
2k kk sw S d−= −
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1448
Passo 5 (Teste para otim
tolerância positiva, então PARE, wseguinte.
Passo 6 (Cálculo do com
kβ
Passo 7 (Determinação d
Faça 1k k← + e vá par
Exemplo 4.2:
Figu
Como podemos visualizar n
malidade): Se 0kx ≥ e T k T kc x b w ε− < , onde ε é ukw é ótimo dual e kx é ótimo primal. Caso contrário, vá
mprimento do passo): Calcule o comprimento do passo
min / ( ) 0 onde 0 < < 1( )
kki
k s ikis i
sd
d
αβ α
� �= − <� �
� �
de uma nova solução): Atualize:
1
1
k k kk x
k k kk s
x x d
s s d
β
β
+
+
= +
= +
ra o passo 2.
1 2
1
21
32
4
5
1 2 3 4 5
2
:
1 1 1
1 0 3
0 1 2
1 0 0
0 1 0
, , , , 0
Minimizar z x x
Sujeito a
s
sx
sx
s
s
s s s s s
− = − −
− � �� � � �� �� � � �� �� � � �� � � �� � � �+ =� � � �� � � �� �− � �� � � �� �� � � �−� � � �� �
>
ura 4.5- Interpretação geométrica do exemplo 4.2
na Figura 4.5 a solução do nosso PPL é o vértice (* 3x =
31
uma pequena
para o passo
)2 0 0 0 .
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1449
32
Tabela 4.2 – resultados obtidos iterativamente pelo método Dual-Afim
Analisando a Tabela 4.2 podemos observar que a solução encontrada pelo Método Dual-Afim é
7x , que é aproximadamente x*. As mesmas conclusões feitas para o método Primal-Afim são válidas para o método Dual-Afim de pontos interiores, incluindo sua análise de convergência e complexidade polinomial, através do uso da função barreira logarítmica.
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1450
33
5. O Algoritmo Primal-Dual de Pontos Interiores
Da mesma forma que no procedimento do algoritmo Primal – Dual Simplex, em adição ao Primal – Afim e Dual – Afim, pode ser definido um algoritmo Primal – Dual de pontos interiores. O algoritmo primal-dual de pontos interiores é definido utilizando-se de procedimentos baseados na função barreira logarítmica. A idéia de se usar o método da função barreira logarítmica para problemas de programação convexa pôde ser feita baseando-se no método de K. R. Frisch de 1955. Depois que o algoritmo de Kamarkar foi introduzido em 1984, o método função barreira logarítmica foi ser reconsiderado para resolver problemas de programação lineares. P. E. Gill, W. Murray, M. A. Saunders, J. A. Tomlin, e M. H. Wright usaram este método para desenvolver um método barreira projetada de Newton e mostraram uma equivalência ao algoritmo projetivo de Kamarkar, em 1985. N. Megiddo forneceu uma análise teórica para o método barreira logarítmica e propôs uma estrutura Primal – Dual em 1986. Usando esta estrutura, M. Kojima, S. Mizuno, e A. Yoshise [KOJIMA et al – 1989] apresentaram um algoritmo primal-dual de tempo polinomial para problemas de programação lineares em 1987. Estes
mostraram que seu algoritmo convergia em )(nLO iterações exigindo )( 3nO operações aritméticas por
iteração. Daí a complexidade total do mesmo ser de )( 4 LnO operações aritméticas. Mais tarde, R. C.
Monteiro e I. Adler [MONTEIRO e ADLER – 1989] refinaram o algoritmo Primal – Dual para convergir
em )( LnO iterações com )( 5.2nO operações aritméticas, exigidas por iteração, resultando num total
de )( 3 LnO operações aritméticas.
5.1 Idéias básicas do Algoritmo Primal – Dual
Considere o programa linear na forma padrão:
xMinimizar Tc
0, ≥= xbAxaSujeito (5.1)
e seu dual
wMinimizar Tb
0, ≥=+ scswAaSujeito T (5.2)
Impomos as seguintes hipóteses para o algoritmo Primal – Dual:
(A1) O conjunto { }0 >=∈≡ x,bAx/RxS n é não vazio.
(A2) O conjunto ( ){ }0s ,/ ; >=+×∈≡ cswARRswT Tnm é não vazio.
(A3) A matriz de restrições A tem posto completo e igual a m .
Sob estas suposições, tem-se do teorema da dualidade que os problemas (5.1) e (5.2) têm soluções ótimas com um valor comum. Além disso, os conjuntos das soluções ótimas de (5.1) e (5.2) são limitados.
Note que, para (5.1) em 0x >>>> , pode-se aplicar a técnica da função barreira logarítmica e
considerar a seguinte família de problemas de programação não-lineares ( )μP :
�−=
n
jj
T xlnxMinimizar1
c μ
0, >= xbAxaSujeito (5.3)
onde 0>μ é um parâmetro de barreira ou de penalidade.
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1451
34
Como 0→μ , espera-se que as soluções ótimas do problema ( )μP convirja a uma solução
ótima do problema de programação linear (5.1). Afim de provar isto, primeiramente observe que a função
objetivo do problema ( )μP é uma função estritamente convexa, daí sabe-se que ( )μP tem pelo menos um
mínimo global. A teoria de programação convexa implica que o mínimo global, se existir, está caracterizado completamente pelas condições de Karush-Kuhn-Tucker (KKT):
0 x >= ,bAx (factibilidade primal) (5.4a)
0s >=+ ,cswAT (factibilidade dual) (5.4b)
0 =− eXSe μ (folgas complementares) (5.4c)
onde X e S são matrizes diagonais as quais utilizam as componentes dos vetores x e s como elementos diagonais, respectivamente.
Sob as hipóteses (A1) e (A2) e admitindo que (5.1) tem uma região factível limitada, então o
problema ( )μP é factível e possui um único mínimo em )(μx , para cada 0>μ . Conseqüentemente, o
sistema (5.4a,b,c) tem uma única solução ( ) nmn RRR;x ××∈s w; . Daí tem-se o seguinte lema:
Lema 2.1. Sob as hipóteses (A1) e (A2), o problema ( )μP e o sistema (5.4a,b,c) tem uma única
solução.
Observe que o sistema (5.4a,b,c) fornece também as condições necessárias e suficientes (as
condições de K-K-T) para ( ))s( );( μμx sendo uma solução que maximiza o seguinte problema ( )μD :
�+=
n
jj
T slnwMaximizar1
b μ
0,>s ,A a ujeito cswS T =+ (5.5)
Note que a Equação (5.4c) pode ser escrita em suas componentes como:
n, .......,j, 1 para sx jj == μ (5.6)
Conseqüentemente, quando a suposição (A3) é imposta, x determina unicamente w das
Equações (5.6) e (5.4b). Denotando ( )) w(;)s( );( μμμx como a solução única do sistema (5.4) para
cada 0>μ , então, tem-se que Sx ∈μ)( e ( ) Tx ∈μμ )s( );( . Além disso, a folga complementar
transforma-se em:
( ) )()(c =
)()()(T μμ−
μ−μ=μ
xAw
wbxcgT
TT
μμμ n)(x =T)s(= (5.7a)
Conseqüentemente, como 0→μ , a folga complementar )(g μ converge para zero. Isto
implica que )(μx e )(μw convergem às soluções ótimas dos problemas (5.1) e (5.2),
respectivamente. Daí tem-se o seguinte resultado: Lema 2.2. Sob as hipóteses (A1) - (A3), se 0→μ , )(μx converge à solução ótima do
programa (5.1) e )(μw converge à solução ótima do programa (5.2).
Para 0>μ , denotamos Γ como a curva, ou trajeto, que representa as soluções do sistema
(5.4a,b,c), isto é, {{{{ }}}} 0 todopara (5.4), satisfazem ))(s );(w );(x( | ))(s );(w );(x( >>>>==== μμμμμμμΓ (5.7b)
Quando 0→μ , a curva definida por Γ conduz à solução ótima primal ∗x e solução ótima
dual ( )∗∗ s ;w . Assim, seguir a trajetória descrita por Γ serviu para se definir uma classe de métodos
Primal – Dual de pontos interiores, para programação linear, denominados de métodos de trajetória
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1452
35
central (path-following methods). Por esta razão, pode-se classificar a aproximação Primal – Dual como uma aproximação de trajetória central.
Dado um ponto inicial TSx ×∈)s ; w;( 000 , o algoritmo Primal – Dual gera uma seqüência de
pontos TSxk ×∈)s ; w;( kk pela escolha apropriada de uma direção de busca )d ;d ;( ks
kw
kxd e
comprimento de passo kβ , em cada iteração. Para medir um "desvio" da curva Γ em cada
)s ; w;( kkkx , introduz-se as seguintes notações, .....,,, 2 1 0k para = .
nisxki ..... ,2 ,1 para , k
iki ==φ (5.8a)
�φ=φ=
n
i
ki
kave
n 1
1
) de valoresdos
soma da aritmética (médiakiφ
(5.8b)
{ } ..... ,2 ,1 ;minmin niki
k =φ=φ (5.8c)
mink
kavek
φ
φ=θ (5.8d)
Obviamente, vê-se que 1≥θk e Γ∈)s ; w;( kkkx se e somente se 1=θk . Posteriormente
vê-se que quando o desvio 0θ no ponto inicial TSx ×∈)s ; w;( 000 é grande, o algoritmo Primal –
Dual reduz não somente a folga complementar, como também o desvio. Com os parâmetros
apropriadamente escolhidos, a seqüência de pontos { }TSxk ×∈)s ; w;( kk gerada pelo algoritmo
Primal – Dual satisfaz as desigualdades:
))()(
21( 11
1
11 kTkT
k
k+Tk+Tm
i
ki
ki wbxc
n�=wbxcsx −−−=�
=
++ (5.9a)
kkk+ <. se n+
�2)2�)()1(
11(2� 1 −−≤− (5.9b)
2 se 2 k1+k ≤θ≤θ (5.9c)
A primeira igualdade (5.9a) assegura que a folga complementar diminui monotonicamente. Com
as duas desigualdades restantes observa-se que o desvio kθ torna-se menor que 3 em no máximo
)ln( 0θnO iterações, e então, a folga complementar converge para zero linearmente, com a taxa de
convergência de no mínimo ���
���
−n3
21 .
5.2 - Direção e Comprimento do Passo de Movimento.
Está-se agora em condição para desenvolver as etapas do algoritmo Primal – Dual. Inicia-se
sintetizando a direção de translação (direção de busca) )d ;d ;( ks
kw
kxd em um ponto atual )s ; w;( kkkx ,
tal que, a translação é feita ao longo da curva Γ para um novo ponto )s ; w;( 1k1k1 +++kx . Esta tarefa é
aquela de aplicar o método de Newton ao sistema da equação (5.4a,b,c).
• Direção de Newton. O Método de Newton é um dos mais usados, geralmente, para encontrar uma solução de um sistema de equações não-lineares através de sucessivas aproximações do
sistema por equações lineares. Para ser mais específico, suponha que ( ) 0=zF é uma aplicação não-
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1453
36
linear em pR e necessita-se encontrar um pRz ∈∗ tal que ( ) 0=∗zF . Usando a aproximação da
série de Taylor (para kzz = ), Obtém-se uma aproximação linear:
zzJzFzzF kkk Δ+≈Δ+ )()()( (5.10)
onde ( )kzJ é a matriz Jacobiana cujo ( )j ,i -ésimo elementos é dado por:
∗=���
�
���
�
∂
∂
zzj
i
z
zF )(
e zΔ é um vetor da translação. Como o lado esquerdo de (2.6) avalia uma solução para ( ) 0=zF , tem-
se um sistema linear:
)()( kk zFzzJ −=Δ (5.11)
Um vetor solução da equação (5.11) fornece uma iteração de Newton de kz
kk dzz +=+1kz a , com uma direção de Newton kzd e um comprimento do passo unitário. Quando
)( ∗zJ é não-singular e o ponto inicial 0z é "próximo o bastante" de ∗z , o método de Newton converge
quadraticamente para ∗z . Mas esta taxa de convergência é valida somente para um comportamento
"local". Para um aplicação não-linear geral )(zF , se 0z não for próximo o bastante de ∗z , a iteração de
Newton pode divergir. Focalizando-se no sistema não-linear (5.4a,b,c), supõe-se que se está em um ponto
)s ; w;( kkkx para algum 0>μk , tal que 0s k >⋅kx . A direção de Newton )d ;d ;( ks
ku
kxd é
determinada pelo seguinte sistema de equações:
���
�
�
���
�
�
−
−+
−
−=
���
�
�
���
�
�
���
�
�
���
�
�
e�eSX
cswA
bAx
d
d
d
XS
IA
A
kkk
kkT
k
ks
ku
kx
kk
T
0
0
00
(5.12)
onde kS e kX são as matrizes diagonais formadas por kis e k
ix , respectivamente, como seus elementos
diagonais. De (5.12) tem-se que:
)( bAxAd kkx −−=
kkTks
kw
T swAcddA −−=+
eSXevdXdS kkkkk
skkxk −μ==+
Por simplificação de notações, as equações acima são reescritas por: kk
x tAd = (5.13a)
kks
kw
T uddA =+ (5.13b)
kksk
kxk vdXdS =+ (5.13c)
onde,
kk Axbt −= kkTk swAcu −−= e eSXev kkkk −μ= (5.14)
Para resolver o sistema (5.12), isola-se ksd e multiplica-se ambos os lados da equação (2.9b) por
-1kkSXA . Então, tem-se:
kx
I
kkkkk
kkkks dSXSXAvXSAXdA
�������1111-1
kk SX −−−− −=
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1454
37
�kk t
kx
p
kkkk
ks AdvXSAXdA −= −−
���11-1
kkSX
kkkk
ks tpSAXdA += −1-1
kkSX (5.15)
Então, tem-se:
kskk
kkk
kw
T dSAXuSAXdAA 11-1kkSX −− −= (5.16)
Substituindo-se (5.15) em (5.16) tem-se:
kkkk
kkk
kw
T tpSAXuSAXdAA +−= −− 11-1kkSX (5.17)
Isolando kwd tem-se:
[ ] ( )kkkk
kkk
Tkw tpSAXuSAXAAd +−= −−− 1111-
kkSX
[ ] ( )kkkkk
Tkk
kw tpuSAXASAXd +−= −− )( 1-11 (5.18a)
Uma vez que kwd é obtido, k
skx dd e pode ser prontamente calculado.
Para o cálculo de ksd isola-se a mesma da equação (5.13c) e assim tem-se:
kksk
kxk vdXdS =+
kskk
kk
kx dXSvSd 11 −− −=
( )ksk
kk
kx dXvSd −= −1 (5.18b)
Já para o cálculo de ksd isola-se a mesma da equação (5.13b) e assim tem-se:
kks
kw
T uddA =+
kw
Tkks dAud −= (5.18c)
Logo as direções são calculadas através de:
[ ] ( )kkkkk
Tkk
kw tpuSAXASAXd +−= −− )( 1-11 (5.18d)
kw
Tkks dAud −= (5.18e)
( )ksk
kk
kx dXvSd −= −1 (5.18f)
Novamente, para TSxk ×∈)s ; w;( kk , As equações (5.18d,e,f) são simplificadas por:
[ ] kk
Tk
kw vASADAd 112ˆ −−
−= (5.19a) kw
Tks dAd −= (5.19b)
][1 ksk
kk
kx dXvSd −= − (5.19c)
onde ( )kkkkk sxdiagSXD /D̂ e ˆ
k12 == −
É importante notar que kxd , k
wd e ksd em (5.19a,b,c) são determinadas correlativamente.
Denotando-se o vetor:
)(ˆ)( 1 μ=μ − kkk
k vDXr (5.20a)
e a matriz
kT
kT
k DAADAADQ ˆ)ˆ(ˆ 12 −=
então )( ks
kw
kx ; d; dd podem ser reescritas como
)()(ˆ μ−= kk
kw rQIDd (5.20b)
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1455
38
)(ˆ )ˆ( 2 μ−= kk
Tk
ks rDAADAd (5.20c)
)(ˆ 1 μ= − kk
kx QrDd (5.20d)
Desde que a matriz Q é a matriz projeção ortogonal no espaço coluna da matriz Tk AD̂ , vê-se
que:
)(ˆˆ 2 μ=+ kksk
kxk rdDdD (5.21a)
0ˆ)ˆ()( 2 == ksk
Tksk
ks
Tkx dDdDdd (5.21b)
Após ter obtido uma direção de Newton na k -ésima iteração, o algoritmo Primal – Dual determina um novo ponto de acordo com a seguinte equação:
kx
kkk dxx β+=+1 ; kw
kkk dww β+=+1 ; ks
kkk dss β+=+1 ;
com um comprimento do passo kβ apropriadamente escolhido na k-ésima iteração tal que, Sxk ∈+1
e ( ) Tsw kk ∈++ 11 ; .
• Comprimento do passo e parâmetro de penalidade. Quando TSxk ×∈)s ; w;( kk ,
o algoritmo Primal – Dual necessita de dois parâmetros τσ e , tal que 10 <σ<τ≤ , o primeiro
para controlar o parâmetro de penalidade (ou barreira) kμ e o segundo, para controlar o comprimento do
passo kβ na k -ésima iteração. Para o parâmetro de penalidade, recordando as notações definidas em
(5.8a,b,c,d), desde que deseja-se reduzir a folga complementar, kavenφ , pode-se escolher o parâmetro de
penalidade para ser um número menor, ajustando:
n
kavek σφ
=μ (5.21c)
Desta maneira, a definição (5.15) implica que 0≤kv .
Para o comprimento do passo kβ , a escolha é feita por um valor próximo das folgas
complementares. Note que a Equação (5.13c) e (5.14) implica que ki
kk
ixki
k
iski dsdx φ−μ=+ . Daí a
folga complementar varia quadraticamente nos termos do comprimento do passo β , desde que
n , 2, 1,i ),()(
)( )()()()(kx
2ki
ki
11
i�=β+φ−μβ+φ=
β+β+≡βφ=ββ ++
ks
k
ks
ki
kx
ki
ki
ki
ki
i
ii
dd
dsdxsx (5.22a)
Além disso, desde que 0)( kx =k
sT dd , calculando-se a folga complementar média, tem-se que,
a folga complementar muda linearmente em β , isto é,
)(/)( )()( kave
kave φ−μβ+φ=β+β+=βφ kk
skTk
xki
kave ndsdx (5.22b)
Ignorando o termo quadrático de (5.22a) e reduzindo o valor kave
k σφ=μ por um fator σ<τ ,
pode-se definir uma função linear:
)()( kmin
kmin φ−τφβ+φ=βψ k
avek
(5.23)
A função )(βφki pode ser convexa ou côncava dependendo do valor do produto
ksi
dd ⋅kx i
.
Para a parte convexa, desde que 0kx i
≥⋅ ksi
dd , a curva de )(βφki está abaixo da curva de
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1456
10 para )( ≤β≤βψk . Entret
mostrado na Figura 5.1. A fim de
complementar, escolhe-se:
{ (/max βφβ=α ki
k
Então o comprimento do pa
O significado geométrico d
a escolha de kβ depende da escolha
Figura 5.1 – Significado geom
Note que, quando xk w;(
(5.13a,b,c), com 0=kt e 0=ku
definição de kα em (5.24) implic
TSxk ×∈+++ )s ; w;( 1k1k1 .
5.3 Algoritmo Primal – Dual
Agora está-se pronto para e
Passo1 (Inicialização): Aj
Seja 0>ε uma tolerância
Passo 2 (Testando a otima
Passo 3 (encontrando a d
eSXev kkkk −μ= . Calcu
tanto, uma parte côncava de )(βφki pode cruzar ψ
e controlar o parâmetro de desvio kθ enquanto se re
)() βψ≥β k para todo ) ,0( β∈β , i e ,1 0 =<β<
asso kβ na k -ésima iteração é definido por
{ }k ,1min α=βk
de kα e
kβ é descrito na Figura 5.1. Vê-se claramente n
de 10 <τ< para assegurar a existência de kα .
métrico do comprimento do passo para o Método Primal –
TS ×∈)s ;w kk , desde que )( ks
kw
kx ; d; dd é uma
0 , sabemos que bAxk =+1 e cswA kkT =+ ++ 11 . A
ca, além disso que, 01 >+kx e 01 >+ks . Em out
enunciar os passos do algoritmo Primal – Dual, como segu
juste 0=k e encontre uma solução inicial x s ; w;( 00
a para a folga complementar e τσ, , parâmetros de contro
10 <σ<τ≤ ;
alidade): Se ε<− kTkT wbxc , então pare. Senão, cont
ireção de busca): Defina kaveφ e k
minφ por (5.8). Faça kμ
ule ks
kw
kx ; d; dd de acordo a (5.19a,b,c).
39
)(βψk como
eduz a folga
}n1, ��=
(5.24)
(5.25)
na figura que
– Dual
a solução de
Além disso, a
tras palavras,
ue:
TS ×∈)s0 .
ole, tal que:
tinue.
kave
k σφ= e
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1457
40
Passo 4 (calculando o comprimento do passo): Calcular kα por (5.24) e kβ por (5.25).
Passo5 (movendo para uma nova solução): Faça
kx
kkk dxx β+=+1 kw
kkk dww β+=+1 ks
kkk dss β+=+1
Ajuste 1+→ kk e vá para o Passo 2.
5.4 Término do Algoritmo em Tempo Polinomial
Ao contrário dos algoritmos Primal – Afim e o Dual – Afim, o algoritmo Primal – Dual é de
tempo polinomial. A boa escolha do comprimento de passo kβ em cada iteração conduz aos resultados
de convergência:
Teorema 5.1. Se o comprimento do passo 1<βk na k -ésima iteração, então:
kk
k
nn θσ+
τ−σ≥
σθ+σ−
τ−σ≥β
)1(
)(4
)21(
)(422
(5.26a)
))()1(1(11 kTkTkkTkT wbxcwbxc −βσ−−=− ++ (5.26b)
k1 / se )/)(1(/ θ<τστσ−θ−≤τσ−θ + kk v (5.26c)
τσ≤θτσ≤θ + / se / k1k (5.26d) onde:
ττ−σ+σ+
ττ−σ=
)(4)1(
)(42n
v
Por outro lado, se 1=βk , então:
)(11 kTkTkTkT wbxcwbxc −σ=− ++ (5.27a)
/1 τσ≤θ +k (5.27b) A prova do Teorema 5.1 pode ser vista em [FANG e PUTHENPURA - 1993].
Em vista do Teorema 5.1, se ∗k é a iteração mais próxima em que τσ>θ∗
/k , então:
∗<∀τ
σ+���
���
τ
σ−θ−≤θ<
τ
σkkv kk ,)1( 0
e
∗≥∀τ
σ≤θ kkk ,
Se ∗k não existir, então τσ>θ /k , k∀ e
kv kk ∀τ
σ+���
���
τ
σ−θ−≤θ<
τ
σ ,)1( 0
Observe que, para 10 << v , em ambos os casos tem-se:
{ } kk ∀θτσ≤θ ,,/max 0
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1458
41
Então é possível ver que kθ torna-se menor que ( ) 1/ +τσ em no máximo )ln( 0θnO
iterações. Conseqüentemente, segue da equação (5.26a) que:
kk
n
k ˆ ,1)1(
))(1(4)1(
2
≥∀
���
���
+τ
σσ+
τ−σσ−≥βσ− (5.28)
Pela equação (5.26b), a folga de dualidade kTkT wbxc − atinge a precisão dada ε , satisfazendo o critério de parada em no máximo,
���
����
����
����
�ε
− 000
ln wbxc
nOT
iterações adicionais. Daí o algoritmo Primal – Dual é finalizado em, no máximo,
���
����
����
����
�ε
−+θ
0000 ln )ln(
wbxcnOnO
T
iterações.
Há várias maneiras de ajustar os parâmetros σ e τ tal que 10 <σ<τ≤ .
Como um caso especial, fazendo-se 2/1=σ e 4/1=τ , então:
k
k
nθ≥β
4
e (5.28) segue. Observe também que, em cada iteração do algoritmo Primal – Dual, a dificuldade
computacional está na inversão da matriz Tk ADA 2ˆ . Uma implementação direta requer )( 3nO operações
elementares para a inversão da matriz e os resultados em uma complexidade computacional )( 4LnO
para o algoritmo Primal – Dual. Definitivamente, esta complexidade pode ser reduzida para melhores e mais eficientes técnicas de implementação, tal como, a técnica de fatorização de Cholesky.
5.5. Iniciando o Algoritmo Primal – Dual
Para se aplicar o algoritmo Primal – Dual, inicia-se com um ponto arbitrário nmnRx ++∈)s ; w;( 000 tal que 00 >x e 0s 0 > .
No caso em que bAx =0 e cswAT =+ 00 , sabe-se que Sx ∈0 e T∈)s ;w( 00 e tem-se
uma solução inicial para o algoritmo Primal – Dual. Senão, considera-se o seguinte par de problemas lineares, primal e dual, artificiais:
1c +π+ nT xxMinimizar
bxAxbAxaSujeito n =−+ +10 )( (5.29a)
λ=+−+ +200 )(A n
TT xxcsw
0);;( 21 ≥++ nn xxx
onde 1+nx e 2+nx são duas variáveis artificiais e π e λ são números positivos suficientemente grandes,
para ser especificados posteriormente por:
1b +λ+ nT wwMaximizar
cswcswAwAaSujeito mTT =+−++ +1
00 )( (5.29b)
π=+ +10 )Ax-(b n
T sw
021 =+ ++ nm sw
0);;( 21 ≥++ nn sss
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1459
42
onde 1+mw , 1+ns e 2+ns são variáveis artificiais
Observe que, escolhendo-se π e λ tal que: 00 )( wAxb T−>π (5.30a)
000 )( xcswA TT −+>λ (5.30b)
então ) ; ;( 0
2
01
0
++ nn xxx e )s ;s ;s ; w;( 02n
01
001
0+++ nmw são soluções factíveis aos problemas
artificiais (5.29a) e (5.29b), respectivamente, onde
1 01 =+nx
00002 )( xcswAx TT
n −+−λ=+
101 −=+nw
0001 )( wAxbs T
n −−π=+
102 =+ns
Neste caso, o algoritmo Primal – Dual pode ser aplicado aos problemas artificiais (5.29a) e (5.29b) com uma solução inicial conhecida. Conseqüentemente, as soluções ótimas de (5.29a) e (5.29b) estão relativamente próximas àquelas dos problemas originais (5.1) e (5.2).
O teorema seguinte descreve esta relação:
Teorema 5.2. Sejam ∗x e )s ;w( ∗∗ soluções ótimas dos problemas originais (5.1) e (5.2). Em
adição a (5.30a) e (5.30b), suponha que: ∗−+>λ xcswA TT )( 00 (5.30c)
e ∗−>π wAxb T)( 0 (5.30d)
Então as duas condições seguintes são verdadeiras:
(i) Uma solução factível ) ; ;(21 ++ n
xxx n de (5.29a), minimiza (5.29a), se, e somente se,
x resolve (5.1) e 0 1 =+nx .
(ii) Uma solução factível )s ;s ;s ;w ;( 2n11 +++ nmw de (5.29b), maximiza (5.29b)
se, e somente se, )s ;(w resolve (5.2) e 0w 1 =+m .
A prova do Teorema 5.2. pode ser encontrada em [FANG e PUTHENPURA – 1993].
5.6 Implementação Prática
Na implementação do algoritmo Primal – Dual, é uma tarefa muito difícil manter
TSxk ×∈)s ; w;( kk devido aos problemas de arredondamentos numéricos. Também, a escolha dos
parâmetros de controle influenciam no desempenho do algoritmo. Muito esforço tem sido dedicado para se conseguir uma versão do algoritmo Primal – Dual para uma implementação prática. Nesta seção, será
introduzida uma versão deste algoritmo que permita inicializá-lo com um ponto arbitrário )s ; w;( 000x
com 0s , 00 >x . Esta versão produz uma seqüência de iterações { })s ; w;( kkkx , com 0s , k >kx , a
qual leva para uma solução ótima, embora as mesmas não permaneçam ao longo da curva de TS × . É importante saber que, neste momento, não há nenhuma prova rigorosa da convergência para esta versão do algoritmo Primal – Dual, mas este é muito usado em pacotes computacionais.
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1460
43
• Direção de busca. Suponha que se tem um ponto )s ; w;( kkkx para algum 0>μk ,
tal que 0s ; k >kx . A direção de Newton )d ;d ;( ks
kw
kxd é determinada pela Equação (5.18a) - (5.18c).
Combinando (5.18a), (5.18b), e (5.18c), tem-se: kT
kT
kkkkkkkkkk
x tADAADcDPDeXDPDd 1221 )ˆ(ˆˆˆˆˆ −− +−μ= (5.31a)
onde 12ˆ −= kkk SXD e kT
kT
kk DAADAADIP ˆ)ˆ(ˆ 12 −−= , a qual é, a matriz de projeção no espaço
nulo da matriz kDA ˆ .
Se além disso, é definido:
,ˆˆ 1, eXDPDd kkkk
kkx
−μ μ= cDPDd kkk
kcx
ˆˆ, −= e kT
kT
kk
xxtADAADd k
122
,)ˆ(ˆ −=
então (5.31a) transforma-se em: k
tx
kcx
kx
kx kdddd
,,, ++= μ (5.31b)
O primeiro termo de (5.31b) é denominado de direção de centragem. O segundo termo é chamado de direção de redução da função objetivo primal. O terceiro termo é chamado de direção de
factibilidade, desde que kt é a medida de factibilidade primal. Note também que 0=kxAd e
0, =kcxAd . Daí, estas duas direções estão no espaço nulo da matriz A , e a factibilidade primal é
considerada unicamente por k
tx kd,
.
Na prática, iniciando-se com um ponto arbitrário )s ; w;( 000x com 0s , 00 >x , o valor de 0t
pode ser muito grande, desde que 0x poderia ser infactível. Neste caso, o esforço principal do algoritmo será o de encontrar um ponto factível próximo à trajetória central. Uma vez que uma solução factível é
encontrada (supondo-se, na k -ésima iteração), o algoritmo tentará manter 0=kt para todo kk ≥′ , à exceção do caso em que a factibilidade é perdida devido a erros de truncamento numérico ou a erro de
arredondamento. Desta forma, k
tx kd,
tenderá a zero sempre que 0→kt .
De maneira análoga pode-se realizar a análise das direções de busca kwd e k
sd .
• Comprimento do passo. Uma vez que a direção de busca é obtida, tem-se a condição
de mover-se para um novo ponto )s ; w;( 111 +++ kkkx com 01 >+kx e 01 >+ks .
Sendo assim, considera-se:
kxP
kk dxx β+=+1
(5.32a)
kwD
kk dww β+=+1 (5.32b)
ksD
kk dss β+=+1 (5.32c)
onde Pβ e Dβ são os comprimentos dos passos nos espaços primal e dual, respectivamente. As
exigências de não negatividade de 1+kx e 1+ks determinam a escolha do comprimento do passo Pβ e
Dβ . Uma forma simples de obtê-los é fazer:
{ }ki
kx
Pxd
iα−
=β/,1max
1 (5.33a)
e
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1461
44
{ }ki
ks
Psd
iα−
=β/,1max
1 (5.33b)
onde ,1<α ( )i
kxd é a i -ésima componente de k
xd , kix é a i -ésima componente de
kx , ( )i
ksd é a i -
ésima componente de ksd , e k
is é a i -ésima componente de ks .
• Ajustando os parâmetros de penalidade e o critério de parada. Observe que a
direção de busca na k -ésima iteração é determinada pelo valor do parâmetro de penalidade kμ .
Estritamente falando, a translação descrita acima tem de ser realizada diversas vezes para um valor fixo
de kμ , de modo que os processos de Newton convirjam para a trajetória central ajustadas por
kμ .
Entretanto, procedendo-se assim seria necessário vários passos de Newton para se aproximar da trajetória.
Levando-se em conta que, a fim de satisfazer a folga complementar, kμ tende para zero,
conseqüentemente, em implementações práticas, o valor de kμ é reduzido iteração a iteração e somente
uma etapa de Newton é realizada para um valor dado de kμ , ainda que, não se consiga com este valor
permanecer exatamente na trajetória central.
A maneira na qual kμ pode ser reduzido em cada iteração é sugerida pelo próprio algoritmo. Da
equação (5.4c) vê-se que nxsT /=μ . Assim, na iteração k os valores de kx e ks nos dão uma
medida razoavelmente boa do parâmetro de penalidade para a solução corrente e, de acordo com a
experiência dos autores [FANG e PUTHENPURA - 1993], às vezes, um valor menor kμ , dito,
nxs kTk /])[(σ com 1<σ , poderia acelerar a convergência do algoritmo. Houve outras idéias
similares relatadas por vários outros autores na escolha de kμ . Não obstante, o critério simples acima
parece trabalhar bem para uma variedade de problemas práticos resolvidos pelos autores. Tão logo os critérios de parada sejam satisfeitos, pode-se verificar a factibilidade primal, a
factibilidade dual, e a folga complementar. Observe, que a factibilidade primal é medida por kt , a
factibilidade dual por kμ e a folga complementar por kv , como definido por (5.14).
• Procedimento Passo a Passo. Como um sumário da discussão feita, fornece-se agora
procedimentos, passo a passo, para a implementação do algoritmo Primal – Dual de Ponto Interior.
Passo 1 (iniciando o algoritmo): Ajuste 0=k . Escolha um ponto inicial arbitrário
)s ; w;( 000x com 00 >x e 0s 0 > , e escolha 321 , εεε e números positivos
suficientemente pequenos Passo 2 (Cálculos intermediários): Calcule
n
sx kTk
k
)(=μ
kk Axbt −= , kkTk swAcu −−= , eSXev kkkk −μ= , k
kk vXp 1−= e
12ˆ −= kkk SXD , onde kX e kS são as matrizes diagonais cujas componentes diagonais são kix
e kis , respectivamente.
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1462
45
Passo 3 (Verificando a otimalidade): Se
1ε<μk , 21ε<
+b
t, e 31
ε<+c
u
então PARE. A solução é ótima. Caso contrário vá à etapa seguinte.
[ Obs.: u e c são calculados somente quando as restrições duais são violadas. Se
0=u , então não há necessidade de calcular esta medida de otimalidade.] Passo 4 (calculando as direções de translação): Calcule
( ) ( )kkkk
Tkw tpuDAADAd +−=
−
)(ˆˆ 212k
kw
Tk dAu −=ksd
)d(ˆ ks
2 −= kk
kx pDd
Passo 5 (Verificando a ilimitariedade): Se
0=kt , 0>kxd e 0dk
x <Tc
então o problema primal (5.1) é ilimitado. Se
0=ku , 0>ksd e 0dk
w >Tb
então o problema dual (5.2) é ilimitado. Se qualquer um destes casos acontecer, PARE. Senão, passe à etapa seguinte.
Passo 6 (Encontrando o comprimento do passo): Calcule o comprimento do passo primal e dual
{ }ki
kx
Pxd
iα−
=β/,1max
1
e
{ }ki
ks
Dsd
iα−
=β/,1max
1
onde 1<α (α = 0.995) Passo 7 (Determinando um novo ponto): Atualize os vetores solução
kxP
kk dxx β+←+1 kwD
kk dww β+←+1 ksD
kk dss β+←+1
Faça 1+← kk e volte para o Passo 2.
O Algoritmo Primal – Dual de Pontos Interiores, visto nesta seção, implementado em Linguagem Pascal 7.0, é utilizado no exemplo numérico 5.1, dado a seguir, para ilustrar este algoritmo.
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1463
46
Exemplo 5.1
Considera-se o Problema de Programação Linear:
212x- xMinimizar +
0 , x
15 x
15 x
21
2
21
≥
≤
≤−
x
xaSujeito (5.1.1a)
Este, na forma canônica é expresso por:
212x- xMinimizar +
0 , , , x
15 x
15 x
4321
42
321
≥
=+
=+−
xxx
x
xxaSujeito (5.1.1b)
O Problema Dual de (5.1.1a) é:
21 1515w wMaximizar +
����
�
�
����
�
�−
=
����
�
�
����
�
�
+��
���
�
����
�
�
����
�
�−
0
0
1
2
10
01
11
01
4
3
2
1
2
1
s
s
s
s
w
waSujeito (5.1.1c)
0,,, 4321 ≥ssss
Inicia-se o método com uma escolha arbitrária de [ ]Tx 11110 = , [ ]Tw 000 = ,
[ ]Ts 11110 = . Com esta informação, vê-se que 0X , 0S e 20D̂ são todos iguais à matriz identidade
I , e 10 =μ .
Calcula-se agora:
[ ]TAxbt 131400 =−= , [ ]TT swAcu 1103000 −−−=−−= ,
[ ]TeSXev 00000000 =−μ= , [ ]TvXp 000001
00 == −
Conseqüentemente,
( ) ( ) ��
���
�=�
�
���
���
���
�=+−=
−
2.0
4.6
12
10
6.02.0
2.04.0)(ˆˆ 0002
0
120
0 tpuDAADAd Tx
[ ]TwT dAu 2.104.78.24.9d 000
s −−−−=−=
[ ]Tx pDd 2.104.78.24.9)d(ˆ 0s
020
0 =−=
Embora 00 >xd e 00 <xT dc , observa-se por 0t que o primal é ainda infactível neste
momento. Daí prossegue-se os passos do algoritmo.
Escolhe-se 995.0=α . Usando a fórmula para calcular os comprimentos do passo, encontramos que 0.1=βP e 097959.030303.10/1 ==βD . Conseqüentemente a solução
atualizada é:
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1464
47
[ ] [ ]
[ ]T
TTx
2.114.88.34.10
2.104.78.24.90.111111
=
×+=,
[ ] [ ]
[ ]T
TTs
00999.028176.072824.008765.0
2.104.78.24.9097059.011111
=
−−−−×+=.
e
[ ] [ ] [ ]TTTw 89294.062118.02.94.6097059.0001 =×+=
A nova solução 1x já é factível primal, a qual concorda com as discussões precedentes. Realizando mais iterações determina-se a solução ótima:
[ ]Tx 001530=∗ , [ ]Tw 12 −−=∗ e [ ]Ts 1200=∗
O resultados obtidos e a interpretação geométrica do problema dado e das soluções
encontradas pelo algoritmo são vistas, respectivamente, na Tabela 5.1 e na Figura 5.2. Tabela 5.1- Resultados obtidos pelo Algoritmo Primal – Dual de Pontos Interiores
ITERAÇÃO
kix
kiw
F. Objetivo
1
1.9211078431 1.2743725490 1.7251274510 1.9995000000
-
0.62713725490 -
0.90150980392
-2.5678431373
2
4.1686432021 1.3646996807
0.94817351297 3.1908375660
-
0.41022118941 -
0.78207052864
-6.9725867235
3
8.2861628984 1.9872467281 0.0047408675 4.9336155709
-
0.53324050754 -
0.46644541713
-14.585079069
4
14.077168253 7.3348158488 0.0054905422 0.0024668077
-
0.60949508777 -
0.38773135740
-20.819520656
5
23.356232468 11.784868297
0.00309055363 0.03426678921
-1.4230522398
-0.42305360564
-34.927596640
6
2.8704845732 1.4378350344
0.00404590917 0.00001713339
-2.0002700106 -1.0009569722
-43.031341121
7
2.9990354696 14.993571634
0.00321693878 0.00642836558
-2.0002120691 -1.0006301893
-44.987137757
8
2.9990443356 14.993630033
0.00318667619 0.00636996742
-2.0002125354 -1.0006376512
-44.987256680
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1465
48
Figura 5.2 – Interpretação geométrica do exemplo 5.1. e das soluções obtidas pelo Algoritmo
Primal – Dual e Primal – Afim
5.6. Método Primal – Dual para Variáveis Canalizadas
Nesta seção faz-se uma extensão do Método Primal – Dual para Variáveis Canalizadas. O
desenvolvimento da extensão citada é feito baseando-se no trabalho realizado em [FANG e
PUTHENPURA, 1993].
Os métodos Primais – Duais são variações do Método de Newton obtidas a partir de
modificações na maneira de calcular a direção de busca ( ),, ks
kw
kx ddd , e o parâmetro que controla o
tamanho do passo em cada iteração kα . O valor de kα pode atuar no algoritmo de dois modos:
• Mantendo o novo ponto no interior da região viável e,
• Cuidando para que (x, z) permaneça “longe” das fronteiras do quadrante não-negativo, (x, z)
≥ 0. Direções calculadas a partir de pontos próximos a este quadrante tendem a ser
distorcidas levando a pouco, se algum, progresso [WRIGHT - 1997].
A idéia da trajetória central desempenha um papel fundamental no tratamento das questões
acima.
Considere o problema primal:
,0
ux
bAxaSujeito
xcMinimizar T
≤≤
= (5.34a)
onde nmRA ×∈ , mRb ∈ , nRucx ∈,, . Observe que não impõem-se uma restrição do tipo uxl ≤≤
pois ela pode ser facilmente transformada em ux ≤≤0 (será discutido posteriormente).
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1466
49
Transformando a inequação ux ≤ , reescreve-se o problema (5,34) como segue:
.0z
0
a Sujeito
Minimizar
≥
≥
=+
=
x
uzx
bAx
xcT
(5.34b)
O problema dual de (5.34a) é:
0
a Sujeito
Maximizar
≥
=−+
−
s
cyswA
yuwbT
TT
(5.34c)
onde mRw∈ e nRys ∈, .
As condições de otimalidade de KKT para os problemas (5.34a) e (5.34b) são:
cyswAT =−+ (5.35a)
bAx = (5.35b)
uzx =+ (5.35c)
0=μ− eSWe (5.35d)
0=μ− eXZe (5.35e)
onde X, Z, S e W são matrizes diagonais, ( )Te 1, ,1 �= e μ a métrica dual ou parâmetro de ajuste à
curva definida pela trajetória central.
O conjunto solução, 0Ω , para os problemas (5.34a) e (5.34b) será denotado aqui como:
( ) ( ){ }0,,, , , ,/,,,,0 >=+==−+=Ω syzxuzxbAxcyswAsyzwx T .
Considera-se ainda para a determinação de direções de busca que:
( ) 0,,,,)( =
������
�
�
������
�
�
−+
−−+
−
==
SZe
ZWe
uzx
cyswA
bAx
syzwxFhF
T
(5.36)
5.6.1 - Direções de Busca
Supondo em um passo k que as condições para uma solução corrente satisfaçam a (5.35), ou
seja, a viabilidade primal e dual.
A definição do novo ponto, na iteração 1+k , depende diretamente das direções de movimento e
comprimento de passo nesta direção.
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1467
50
Sem se preocupar, em uma primeira análise, com o comprimento do passo, considera-se, na
iteração 1+k , o novo ponto definido por:
�������
�
�
�������
�
�
+
+
+
+
+
=
������
�
�
������
�
�
+
+
+
+
+
ks
k
ky
k
kz
k
kw
k
kx
k
k
k
k
k
k
ds
dydz
dw
dx
s
yz
w
x
1
1
1
1
1
(5.37a)
Assim, necessita-se determinar a direção ( )Tks
ky
kz
kw
kx
k dddddd ,,,,)( = para obter-se o novo
ponto.
Seguindo-se os passos do Método de Newton e considerando, de forma análoga a (5.10), a
equação (5.36), explicitamente, a direção de movimento )(kd pode ser obtida por:
),,,,(),,,,(1 syzwxFsyzwxJ
d
dd
d
d
kkkkkkkk
ks
ky
kz
kw
kx
−−=
�������
�
�
�������
�
�
(5.37b)
Mas não é usual, na prática, determinar-se )(kd através de (5.37b), pois a inversão de )( )(khJ é
inviável computacionalmente. Assim, determina-se )(kd resolvendo-se o seguinte sistema linear:
)()( )()()( kkk hFdhJ −= (5.37c)
É imediato que:
������
�
�
������
�
�−
==
XS
ZW
II
IIA
A
syzwxJhJ
T
kkkkk
000
000
000
00
0000
),,,,()( )( (5.37d)
Considerando-se (5.37d), então, reescreve-se (5.37c) da seguinte maneira:
������
�
�
������
�
�
=
�������
�
�
�������
�
�
⋅
������
�
�
������
�
�−
k
k
k
k
k
ks
ky
kz
kw
kx
T
v
qf
u
t
d
dd
d
d
XS
ZY
II
IIA
A
000
000
000
00
0000
(5.38)
onde,
kk Axbt −= ; kkkTk yswAcu +−−= ; kkk zxrf −−= ;
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1468
51
eYZeq kkkk −μ= ; eSXev kk
kk −μ= .
Resolver o sistema linear (5.38) não é usual devido à estrutura esparsa e de blocos da matriz.
Assim, calcula-se kxd , k
wd , kzd , k
yd e ksd separadamente através das seguintes equações:
kkx tAd = (5.39a)
kky
ks
kw
T udddA =−+ (5.39b)
kkz
kx dd f=+ (5.39c)
kkyk
kzk qdZdY =+ (5.39d)
kksk
kxk vdXdS =+ (5.39e)
Desde que, em uma iteração k , a viabilidade depende de rzx kk =+ , então para as novas
soluções 1+kx e 1+kz deve-se garantir que rzx kk =+ ++ 11
Considerando-se kx
kk dxx +=+1 e kz
kk dzz +=+1 , chega-se à condição:
0=+ kz
kx dd
Portanto,
kx
kz dd −= (5.40a)
Agora, isola-se kyd e k
sd de (5.39d) e (5.39e) , respectivamente:
kk
ykkzk qdZdY =+
)(1 kzk
kk
ky dYqZd −= −
(5.40b)
kk
skkxk vdXdS =+
)(1 kxk
kk
ks dSvXd −= − (5.40c)
Combinando-se os resultados encontrados em (5.40a), (5.40b) e (5.40c) com aqueles vistos em
(5.39), são determinados as direções de movimento kx
kw dd e :
kky
ks
kw
T udddA =−+
kkzk
kk
kxk
kk
kw
T udYqZdSvXdA =−−−+ −− )()( 11
kkzkk
kk
kxkk
p
kk
kw
T udYZqZdSXvXdAk
=+−−+ −−−− 1111
���
kk
kxkk
kxkk
kkkw
T qZdYZdSXpudA 111 −−− +−+−=
kxkkkk
kk
kkkw
T dYZSXqZpudA )( 111 −−− +++−= (5.41d)
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1469
52
Tomando 111 )( −−− +=θ kkkk YZSX e multiplicando θA em ambos os lados tem-se:
kx
kkk
kkw
T dAuqZpAdAA 11 )( −− θθ+++−θ=θ
�kt
kx
kkk
kkw
T AduqZpAdAA +++−θ=θ − )( 1
[ ]kkkk
kTkw tuqZpAAAd +++−θθ= −− )()( 11 (5.41e)
Reconsiderando-se (5.41d) tem-se:
kkk
kxkk
kxkk
kkw
T uqZdYZdSXpdA =+−−+ −−− 111
kkxkkkk
kk
kkw
T udYZSXqZpdA =+−−+ −−− )( 111
Tomando 111 )( −−− +=θ kkkk YZSX
kk
kkw
Tkkx qZpdAud 11 −− +−−=θ−
kkk
kkw
Tkx uqZpdAd −−+=θ −− 11
)( 1 kkk
kkw
Tkx uqZpdAd −−+θ= − (5.41f)
Resumindo-se os resultados encontrados em (5.41), tem-se:
[ ]kkkk
kTkw tuqZpAAAd +++−θθ= −− )()( 11
)( 1 kkk
kkw
Tkx uqZpdAd −−+θ= −
kx
kz dd −= (5.42)
)(1 kzk
kk
ky dYqZd −= −
)(1 k
xkk
kks dSvXd −= −
5.6.2 Comprimento do Passo de Movimento
Uma vez que a direção de busca é obtida, tem-se a condição de mover-se para um novo ponto
);;z ; w;( 11111 +++++ kkkkk syx garantindo-se que com 01 >+kx , 01 >+ks e 01 >+kz . A restrição
de não-negatividade destas variáveis requer um controle do passo a ser dado em cada direção obtida,
assim, reconsidera-se (3.3a) reescrita por:
kxP
kk dxx β+=+1 (5.43a)
kwD
kk dww β+=+1 (5.43b)
ksD
kk dss β+=+1 (5.43c)
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1470
53
kyD
kk dyy β+=+1 (5.43d)
kzP
kk dzz β+=+1 (5.43e)
onde Pβ e Dβ são os comprimentos dos passos nos espaços primal e dual, respectivamente. As
exigências de não negatividade de 1+kx e 1+ks determina a escolha do comprimento do passo Pβ e
Dβ . Uma forma simples, de obtê-los é fazer:
��
���
��
���
<α
−α
−=β 0, que tal,,1 kz
kxk
z
ki
kx
ki
P ii
ii
ddd
z
d
xMin (5.44a)
e
��
���
��
���
<α
−=β 0 que tal,1 ksk
s
ki
D i
i
dd
sMin (5.44b)
onde 1<α
5.6.3. Critério de Parada
Ao contrário do método Simplex, o algoritmo de Ponto Interior Primal – Dual nunca encontra
uma solução exata para o problema (5.34a). Por isso, o algoritmo precisa usar um critério de parada para
decidir quando a iteração corrente está próxima o suficiente da solução ótima [WRIGHT - 1997].
Muitos algoritmos consideram uma boa solução aproximada àquela solução que possui os
resíduos, primal, Axbt −= , dual, yzwAcu T +−−= e a métrica dual μ suficientemente
pequenos. Para esse fim pode-se usar medidas relativas diminuindo os problemas de escala dos dados
[WRIGHT - 1997]. Testes típicos para uma solução ( )zyx , , são:
111ε≤
+
−=
+ b
Axb
b
t (5.45a)
211ε≤
+
+−−=
+ c
yswAc
c
uT
(5.45b)
31
)(ε≤
+
−−
xc
yuwbxcT
TTT
(5.45c)
onde 1ε , 2ε e 3ε são tolerâncias pré-definidas. Naturalmente outros critérios podem ser adotados em
concordância com a aplicação a um problema específico. Para outros tipos de critério de parada, veja
[FANG e PUTHENPURA, 1993] e [BORCHES e MITCHELL - 1992].
Após a discussão acima pode-se elaborar o algoritmo, que é dado a seguir.
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1471
54
5.6.4 Algoritmo de Pontos Interiores Primal – Dual para Variáveis Canalizadas
Passo 1 (iniciando o algoritmo): Ajuste 0=k . Escolha um arbitrário
000000 ),,z ; w;( Ω∈syx e 321 , εεε e números positivos suficientemente pequenos
Passo 2 (Cálculos intermediários): Calcule
kk Axbt −= , kkkTk yswAcu +−−= , eSXev kkkk −μ= , k
kk vXp 1−= ,
eZYeq kkkk −μ= e 111 )( −−− +=θ kkkk YZSX , onde kX , kS , kZ e kY são as matrizes
diagonais cujas componentes diagonais são kix , k
is , kiz e k
iy respectivamente.
Observação: para melhor desempenho e convergência do método é interessante considerar
n
sx kTk
k
)(1 =μ ; n
yz kTk
k
)(2 =μ e fazer { }21 , kkk Min μμ=μ
Passo 3 (Verificando a otimalidade): Se
1ε<μk , 21ε<
+b
t, e 31
ε<+c
u
então PARE. A solução é ótima. Caso contrário vá para à etapa seguinte.
[ Obs.: u e c são calculados somente quando as restrições duais são violadas. Se
0=u , então não há necessidade de calcular esta medida de otimalidade.]
Passo 4 (calculando as direções de translação): Calcule kxd , k
wd , kzd , k
yd e ksd através de
(5.42).
Passo 5 (Verificando a ilimitariedade): Se
0=kt , 0>kxd e 0dk
x <Tc
então o problema primal (5.34a) é ilimitado. Se
0=ku , 0>ksd e 0dk
w >Tb
então o problema dual (5.34b) é ilimitado. Se qualquer um destes casos acontecer, PARE. Senão,
passe à etapa seguinte.
Passo 6 (Encontrando o comprimento do passo): Calcule o comprimento do passo primal e
dual:
��
���
��
���
<α
−α
−=β 0, que tal,,1 kz
kxk
z
ki
kx
ki
P ii
ii
ddd
z
d
xMin
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1472
55
��
���
��
���
<α
−=β 0 que tal,1 ksk
s
ki
D i
i
dd
sMin
onde 1<α (utiliza-se 995.0=α )
Passo 7 (Determinando um novo ponto): Atualize os vetores solução
kxP
kk dxx β+←+1
kwD
kk dww β+←+1
ksD
kk dss β+←+1
kyD
kk dyy β+←+1
kzP
kk dzz β+←+1
Faça 1+← kk e volte para o Passo 2.
Uma implementação computacional do algoritmo visto nesta seção foi feita e aplicada ao
exemplo 5.2, seguinte.
Exemplo 5.2.
Considere o exemplo 5.1 agora com as seguintes canalizações de variáveis :
300 1 ≤≤ x e 150 2 ≤≤ x
Inicia-se com uma escolha arbitrária de [ ]Tx 11110 = , [ ]Tw 000 = , [ ]Ts 11110 = ,
[ ]Ty 11030 = e [ ]Tu 2215300 = . Com esta informação, vê-se que 0X , 0S e 20D̂
são todos iguais à matriz identidade I , e 10 =μ .
Calcula-se agora:
[ ]TAxbt 131400 =−=
[ ]TT yswAcu 00000000 =+−−= ,
[ ]TeSXev 00000000 =−μ= ,
[ ]TvXp 0000010
0 == −
[ ]TeZYeq 1860000 −=−μ=
����
�
�
����
�
�
=+=θ −−−
5.0000
05.000
0010
00090625.0
)( 10
100
10 YZSX
Conseqüentemente,
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1473
56
��
���
�=
361847733.16
471343028.11kwd
[ ]Tkxd 1809238666.87356715141.58190761334.4083404619.13=
[ ]Tkzd 1809238666.87356715141.58190761334.4083404619.13 −−−−=
[ ]Tkyd 180923866.87356715141.5290714285714.06120615911.1−=
[ ]Tksd 1809238666.87356715141.58190761334.4083404619.13 −−−−=
Embora 00 >xd e 00 <xT dc , observa-se por
0t que o primal é ainda infactível neste
momento. Daí prossegue-se os passos do algoritmo.
Escolhe-se 995.0=α . Usando a fórmula para calcular os comprimentos do passo, encontramos
que 21221744654.0=βP e 150763944882.0=βD .
Conseqüentemente a solução atualizada é:
[ ]Tx 995.1700752601.15887680504.15984579652.21 = ,
[ ]Tw 2499549838.188763473797.01 =
[ ]Ty 6249774919.14381736899.15580054567491.08768473798.21 =
[ ]Ts 3750225080.015618263101.026318791451.00005.01 =
[ ]Tz 0005.072992473989.041123195.13401542035.271 = .
A nova solução 1x já é factível primal, a qual concorda com as discussões precedentes.
Realizando mais iterações determina-se a solução ótima:
[ ]Tx 001530=∗ , [ ]Tw 12 −−=∗ e [ ]Ts 1200=∗
O resultados obtidos e, a interpretação geométrica do problema dado e das soluções
encontradas pelo algoritmo são vistas, respectivamente, na Tabela 5.2 e na Figura 5.2.
Tabela de resultados a partir do ponto [ ]Tx 11110 = , [ ]Tw 000 = e [ ]Ts 11110 = ,
[ ]Ty 11030 = e [ ]Tu 2215300 = .
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1474
57
Tabela 5.2 – Resultados obtidos pelo Algoritmo Primal – Dual Para Variáveis Canalizadas
ITERAÇÃO kix
kiw
F. Objetivo
1
2.598457965
1.5887680504
1.7007526010
1.9995000000
-0.8763473797
-1.2499549838
-
3.6081478800
2
29.86299229
14.855658598
1.3657116986
1.5338114226
-
0.80630955056
-1.8178679067
-
4.5116939860
.
.
.
.
.
.
.
.
.
.
.
.
8
29.999476361
14.994765238
0.0000162123
0.0052347623
-1.7000346124
-
0.69984483598
-
44.994761995
9
29.9998855128
14.999997383
0.00114225472
0.000002617381
-1.7056292241
-
0.47713125530
-
4.4997712873
Figura 5.2 – Interpretação geométrica do exemplo 5.2. e das soluções obtidas pelo Algoritmo
Primal – Dual Para Variáveis Canalizadas
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1475
58
5.6.5 Variáveis Limitadas Inferiormente
No início da seção 5.6 citou-se que uma restrição do tipo uxl ≤≤ pode ser facilmente
transformada em ux ≤≤0 . Discuti-se aqui esta afirmação.
A restrição uxl ≤≤ pode ser considerada no problema da seguinte maneira:
ux ≤ e lx ≥ . Mas esta não é a maneira usual de se resolver o problema devido à dificuldade computacional
em estabelecer limitantes para lx ≥ .
Considerando-se bAx = , a matriz de restrições e uxl ≤≤ a restrição adicional, então:
uxl ≤≤ ⇔ lulxll −≤−≤− ⇔ lulx −≤−≤0 .
Tomando: luu −= e lxx −= ou lxx += , tem-se: ux ≤≤0 . Substituindo no problema original, tem-se:
bAx = , ux ≤≤0 � ( ) blxA =+ � AlbxA −= .
Observe que fazer este tipo de transformação tem um custo de 2n operações.
Uma outra forma, mais simples, de se explorar a canalização de variáveis uxl ≤≤ é, ao
determinar o tamanho do passo Pβ , considerar:
��
���
��
���
<−
−=β 0/)(1 k
xkx
ki
ki
P i
i
dd
lxMin ;
��
���
��
���
<−μ
−=β 0/)(2 k
xkx
ki
ki
P i
i
dd
xMin
{ }21 , PPP Min ββ=β
Esta definição de Pβ é a mais simples pois não requer nenhuma mudança de variável no PPL
original implicando diretamente na economia das 2n operações citadas exigidas pela mudança anterior
feita e no desempenho do método.
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1476
59
6. O Algoritmo Primal-Dual de Pontos Interiores para Programação Quadrática
Convexa com variáveis canalizadas
6.1 Problema de Programação Quadrática
O problema de minimização de funções quadráticas, com restrições de igualdade e variáveis canalizadas, denominado de PPQ, é expresso de maneira geral por:
uxlbAx
xcQxx TT
≤≤=
+
; : a Sujeito2
1 Minimizar (6.1)
em que nmRA ×∈ , tal que posto A é n, mRb ∈ , nRucx ∈,, e nxnRQ∈ é uma matriz simétrica e
definida positiva. O problema (6.1) é equivalente a:
0
0
: a Sujeito2
1 Minimizar
≥=−
≥=+
=
+
l; rr x
u; zzx
bAx
xcQxx TT
(6.2)
em que nRrz ∈ , são variáveis de excesso e folga, respectivamente.
O PPQ Dual de (6.2) é expresso por:
0 ;0
: a Sujeito
2
1 Maximizar
≥≥
=−++−
+−+−
ys
cysw AQv
slyuwbQvv
T
TTTT
(6.3)
em que nRv ∈ , mRw ∈ e nRys ∈, .
Para um escalar 0>μ , pode-se incorporar à (6.2) uma função barreira logarítmica resultando no seguinte problema de otimização não-linear:
;
;
; : a Sujeito
lnln2
1)(F Minimizar
11
lrx
u zx
bAx
zrxcQxxxn
jj
n
jj
TT
=−
=+
=
−−+= ��==
μμμ
(6.4)
O problema dual de (6.4) é:
cyswAv
ysslyuwbQvv
T
n
jj
n
jj
TTTT
;Q- : a Sujeito
lnln2
1- Maximizar
11
=−++
−−+−+ ��==
μμ
(6.5)
Considerando-se a hipótese de que v = x em (6.5) e sob as condições previamente assumidas em (6.1), então, as condições de otimalidade de Karush-Kuhn-Tucker (KKT) para os problemas (6.4) e (6.5) são:
cyswAQx T =−++− (6.6a)
bAx = (6.6b) uzx =+ (6.6c) lrx =− (6.6d)
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1477
60
0=− eZYe μ (6.6e)
0=− eRSe μ (6.6f)
onde R, Z, S e Y são matrizes diagonais, ( )Te 1, ,1 �= e μ é a métrica dual ou parâmetro de ajuste à curva
definida pela trajetória central.
6.2 Direções de busca – Tipo Previsor
Supondo em um passo k que as condições de otimalidade (6.6) satisfaçam à viabilidade primal e dual, então, a definição do novo ponto, na iteração k+1, depende diretamente das direções de movimento e comprimento de passo nesta direção. Sem se preocupar, em uma primeira análise, com o comprimento do
passo, considera-se, na iteração 1+k , o novo ponto 1+kh definido por:
��������
�
�
��������
�
�
+
+
+
+
+
+
=
��������
�
�
��������
�
�
=
+
+
+
+
+
+
+
ks
k
ky
k
kr
k
kz
k
kw
k
kx
k
k
k
k
k
k
k
k
ds
dy
dr
dz
dw
dx
s
y
rz
w
x
h
1
1
1
1
1
1
1 . (6.7)
Assim necessita-se determinar a direção de movimento )(kd para obter-se o novo ponto 1+kh .
Seguindo-se os passos do Método de Newton , de forma análoga a (5.10) e (5.11), a direção )(kd pode ser obtida resolvendo-se o seguinte sistema:
)()( )()()( kkk hFdhJ −= ; (6.8)
tal que (6.8) é equivalente ao seguinte sistema linear de equações:
��������
�
�
��������
�
�
=
��������
�
�
��������
�
�
��������
�
�
��������
�
�
−
−−
k
k
k
k
k
k
ks
ky
kr
kz
kw
kx
T
v
q
o
f
g
t
d
d
d
d
d
d
RS
ZY
II
II
IIAQ
A
0000
0000
0000
0000
00
00000
(6.9)
em que: kk Axbt −= ; kkkTkk yswAcQxg +−−+= ; kkk zxuf −−= ; (6.10a)
kkk rxlo +−= eYZeq kkkk −= μ ; eSRev kk
kk −= μ . (6.10b)
A maneira como foram definidos os resíduos kt , kg , kf , ko , kq , kv em (6.10) é o que evidencia,
no algoritmo proposto neste trabalho, a diferenciação entre o passo previsor e corretor do método. As direções a serem determinadas a seguir, no passo previsor, utilizam os resíduos definidos em
(6.10). Para determinar as direções no passo previsor existem duas formas distintas na literatura: i) o sistema (6.9) é resolvido diretamente pelo método de Newton, a qual é a estratégia usual dos métodos de pontos interiores clássicos; ii) resolver o sistema linear (6.9) utilizando a sua estrutura esparsa e de blocos da matriz, a qual é a estratégia dos métodos de pontos interiores variantes de Karmarkar . Baseando-se em
ii), calcula-se kxd , k
wd , kzd , k
rd , kyd e k
sd separadamente, através das seguintes equações:
kk
x tAd = (6.11a)
kky
ks
kw
Tkx gdddAQd =−++− (6.11b)
kkz
kx dd f=+ (6.11c)
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1478
61
kkr
kx dd o=− (6.11d)
kkyk
kzk qdZdY =+ (6.11e)
kksk
kbk vdRdS =+ (6.11f)
Das equações (6.11c) e (6.11d) tem-se, respectivamente, que:
kkx
kz fdd +−= (6.12a)
kkx
kr odd += (6.12b)
Agora, isola-se kyd e k
sd em (6.11e) e (6.11f), obtendo-se:
)(1 kzk
kk
ky dYqZd −= − (6.12c)
)(1 krk
kk
ks dSvRd −= − (6.12d)
Combinando-se os resultados encontrados em (6.12a), (6.12b), (6.12c) e (6.12d) com aqueles vistos em (6.11) e considerando-se:
111 )( −−− ++= QYZSR kkkkθ (6.12e)
tem-se:
[ ]kkkTkw tpgAAAd ++= − )()( 1 θθ (6.12f)
)( kkkw
Tkx pgdAd −−= θ ; (6.12g)
onde,
)()( 11 kk
kk
kkkk
k fYqZvoSRp −+−= −− . (6.12h)
Devido ao fato da matriz (Aθ AT) ser simétrica e definida positiva em (6.12f) (considerando a matriz
Q, simétrica e definida positiva), então, kwd é determinado utilizando a Decomposição de Cholesky.
As direções de busca e o algoritmo a serem vistos a seguir baseiam-se em [Wu et al, 1994].
6.3 Direções de Busca -Tipo Corretor
Analogamente ao procedimento realizado na seção em 5.6.1 determina-se a direção de busca do passo
corretor, denominada de )(~ kd , resolvendo-se o seguinte sistema linear:
)(~~
)( )()()( kkk hFdhJ −= ; (6.13)
onde, )(~ )(khF é obtida considerando-se aproximações de 2ª ordem em (2.7a), a partir do passo previsor,
tal que (6.13) é equivalente a:
��������
�
�
��������
�
�
=
��������
�
�
��������
�
�
��������
�
�
��������
�
�
−
−−
k
k
k
k
k
k
ks
ky
kr
kz
kw
kx
T
v
q
o
f
g
t
d
d
d
d
d
d
RS
ZY
II
II
IIAQ
A
~
~~
~
~
~
~
~
0000
0000
0000
0000
00
00000
; (6.14)
em que: kk Axbt −= ; kkkTkk yswAcQxg +−−+= ; kkk zxuf −−= ; kkk rxlo +−= ;
eDDeYZeq ky
kzkk
kk −−= μ~ ; eDDeSRev ks
kxkk
kk −−= μ~ (6.15)
As matrizes kxD , k
zD , kyD e k
sD são matrizes diagonais, cujos elementos diagonais são ( )ikxd ,
( )ikzd , ( )
i
kyd e ( )ik
sd , ni ,,1�= ,respectivamente.
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1479
62
Note que, no passo corretor, as direções kxd , k
zd , kyd e k
sd definidas no passo previsor são utilizadas
para a redefinição dos resíduos kq~ e kv~ em (6.15).
A partir de (6.14), (6.15) e seguindo-se os mesmos passos realizados para a determinação das
direções do passo previsor vistos na seção 6.2, calculam-se kxd
~, k
wd~
, kzd
~, k
rd~
, kyd
~ e k
sd~
através das
seguintes equações:
[ ]kkkTkw tpgAAAd ++= − )~()(
~ 1 θθ ; (6.16a)
)~~(
~ kkkw
Tkx pgdAd −−= θ ; (6.16b)
kkx
kz fdd +−=
~~; (6.16c)
kkx
kr odd +=
~~; (6.16d)
)~~(
~ 1 kzk
kk
ky dYqZd −= − ; (6.16e)
)~~(
~ 1 krk
kk
ks dSvRd −= − ; (6.16f)
onde,
)~()~(~ 11 kk
kk
kkkk
k fYqZvoSRp −+−= −− . (6.16g)
6.4 Comprimento do passo
Uma vez que as direções de busca do tipo corretor são determinadas em (6.16), tem-se a condição de
se mover para um novo ponto ),,,,,( 111111 ++++++ kkkkkk syrzwx garantindo-se que 01 >+ks , 01 >+kz ,
01>
+ky e 01 >+kr . Para garantir a restrição de não-negatividade destas variáveis um controle do passo
a ser dado em cada direção é necessário, assim, consideram-se as variáveis definidas no passo previsor por:
kxk
kk dxx α~1 +=+ ; (6.17a)
kwk
kk dww α~1 +=+ ; (6.17b)
kzk
kk dzz α~1 +=+ ; (6.17c)
krk
kk drr α~1 +=+ ; (6.17d)
kyk
kk dyy α~1 +=+ ; (6.17e)
ksk
kk dss α~1 +=+ ; (6.17f)
onde: )},,{~
BUDPk Min αααα = (6.17g)
tal que, para 10 << α :
i) pela condição de factibilidade Primal: ��
���
��
���
<−−= 0, que tal , ,1 kr
kzk
r
ki
kz
ki
P ii
ii
ddd
r
d
zMin
ααα (6.17h)
ii) pela condição de factibilidade Dual: ��
���
��
���
<−−= 0; que tal ,,1 ky
ksk
y
ki
ks
ki
D ii
ii
ddd
y
d
sMin
ααα (6.17i)
iii) pela estratégia de busca unidimensional de Armijo BUα é determinado sob a seguinte condição:
kBU αα = tal que kx
Tkk
kk dxFxFxF )()()( 1μμμ α ∇+≤+ ; (6.17j)
ou seja, é um método de busca unidimensional finito que, neste caso, considera somente as variáveis
primais e que busca, a partir de um ponto kx , um novo ponto 1+kx , na direção kxd , tal que a função Fμ
definida em (6.4) decresça, sem preocupar-se em minimizá-la. O método de Armijo procura determinar
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1480
63
BUα de tal forma que a redução de Fμ seja garantida. A escolha inicial de BUα não deve ser muito
grande, evitando comportamento oscilatório do método, nem muito pequena, evitando uma parada prematura do método. Desta forma, ajusta-se 10 =α e caso (6.17j) não seja satisfeita BUα é atualizado
através da seguinte seqüência:
δ
αα k
k =+1 , k = 0,1...; com δ > 1 usualmente ajustado para δ = 2.
Para a análise de (6.17j) utilizou-se:
eZRcQxxF kkkkk )()( 11 −− +−+=∇ μμ (6.17k)
com kμ determinado na seção 6.5.1.
Analogamente, no passo corretor o cálculo do comprimento do passo é definido considerando-se
as variáveis:
kxk
kk dxx~~1 β+=+
; (6.18a)
kwk
kk dww~~1 β+=+ ; (6.18b)
ksk
kk dss~~1 β+=+ ; (6.18c)
krk
kk drr~~1 β+=+
; (6.18d)
kyk
kk dyy~~1 β+=+
; (6.18e)
kzk
kk dzz~~1 β+=+ . (6.18f)
onde: },,{
~BUDPk Min ββββ = (6.18g)
tal que, BUDP βββ ,, , são obtidos de maneira análoga às condições vistas de (6.17h) a (6.17k),
considerando-se as expressões obtidas no passo corretor, kxd
~, k
wd~
, kzd
~, k
rd~
, kyd
~ e k
sd~
, vistas em
(6.16a) a (6.16g).
6.5 Critério de Parada
Os algoritmos de pontos interiores não encontram soluções exatas para os problemas de programação linear ou quadrática. Por isso, necessita-se de um critério de parada para decidir quando, em uma iteração corrente, a solução obtida está próxima o suficiente de uma solução ótima. Neste trabalho o critério de parada é determinado baseado em [Wright, 1997].
Muitos algoritmos consideram uma boa solução aproximada aquela que possui os resíduos, primal,kt , dual, kg e a métrica dual kμ suficientemente pequenos. Para esse fim pode-se usar medidas relativas
diminuindo os problemas de escala dos apresentados em [Wright, 1997]. Testes típicos para garantir que
uma solução ( )ks , ,,,, kkkkk yrzwx é uma solução ótima loca, são:
i) Factibilidade primal: 111ε≤
+
−=
+ b
Axb
b
t kk
; (6.19a)
ii) Factibilidade Dual: 2
11ε≤
++
+−−+=
++ cQx
yswAcQx
cQx
u
k
kkkTk
k
k
; (6.19b)
iii) Folgas Complementares: 33 )()( εε ≤≤ kTkkTk yzesr (6.19c)
onde 1ε , 2ε e 3ε são tolerâncias pré-definidas. Naturalmente outros critérios podem ser adotados em
concordância com a aplicação a um problema específico, como pode ser visto em [Wright, 1997] e [Fang, 1993].
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1481
64
6.5.1 Atualização do parâmetro de barreira
De acordo com [Wright, 1997], a atualização do parâmetro de barreira é feita através de um
produto escalar que envolve as variáveis primais kr e kz e as variáveis duais ks e ky , a partir das
equações (6.6e) e (6.6f). Neste trabalho, seguindo-se a atualização citada, o parâmetro de barreia kμ foi calculado para
que as restrições do problema fossem satisfeitas, então, a atualização foi feita de maneira a se preservar a factibilidade dos problemas primal e dual em relação ao passo previsor e passo corretor por:
n
sr kTk
k
)(1 =μ ; n
yz kTk
k
)(2 =μ (6.20)
e então kμ foi calculado por:
{ }21 , kkk Min μμμ = . (6.21)
Esta maneira de atualizar o parâmetro de barreira, de acordo com [Wright, 1997], auxilia na prova teórica de convergência e complexidade do método prima-dual.
6.6 Algoritmo Primal-Dual para Variáveis Canalizadas com Procedimento Previsor-Corretor e
Busca Unidimensional. (PDPCBU)
PASSO 1 (inicializando o algoritmo): Ajuste 0=k . Escolha um ponto arbitrário:
00000000 ),,,,z ; w;( Ω∈syryx e escolha 1ε e 2ε números positivos suficientemente pequenos.
PASSO 2 (Cálculos intermediários - Previsor): Calcule: kt ; kg ; kf ; ko ; kq ; kv através de (6.11)
e kμ através de (6.20) e a matriz θ através de (6.12e).
PASSO 3 (direções de movimento - previsor): Determine as direções de busca kxd , k
wd , kzd , k
rd , kyd
e ksd do passo previsor através de (6.12).
PASSO 4 (comprimento do passo - previsor): Calcule o comprimento do passo kα~ através de (6.17g) e
atualize as soluções do passo previsor de acordo com (6.17a) a (6.17f). PASSO 5 (atualização dos parâmetros): Calcule os parâmetros primal e dual respectivamente através de (6.21) para a determinação de novas direções e soluções.
PASSO 6 (atualização de resíduos - corretor): Calcule kv~ e kq~ através de (6.15),utilizando-se as
variáveis definidas por (6.17a) a (6.17f). PASSO 7 (direções de translação - corretor): Calcule as direções de busca do passo corretor através de (6.16).
PASSO 8 (Comprimento do passo): Calcule o comprimento do passo primal kPβ
~ e dual k
Dβ~
através de
(6.18a) e (6.18b), utilizando 995,0=α .
PASSO 9 (Novo ponto): Atualize 1+kx ; 1+kw ; 1+ks ; 1+ky ; 1+kz
e 1+kr através de (6.18).
PASSO 10 (Teste de otimalidade): Se algum dos critérios de parada definidos em (6.19) for satisfeito, então PARE. A solução é ótima. Caso contrário:
Faça 1+← kk e volte para o Passo 2.
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1482
65
7. O Modelo de Despacho Econômico (PDE)
O modelo de otimização para o Despacho Econômico Clássico visto em [Steinberg e Smith,
1943] é apresentado por:
maxkk
mink
L
n
1kDk
PPP
)1.7(PPP
a sujeito
Femin
≤≤≤≤≤≤≤≤
++++���� ========
onde, Fe é a função custo total de geração do DE sem considerar o ponto de válvula, e é dada por:
kkkk
n
kk
n
iPVk cPbPaFeFe ++== ��
==
2
11 com:
- FePVk representando os custos de cada unidade geradora i não considerando o efeito do ponto de válvula;
- ak, bk, e ck são os coeficientes característicos da função custo não considerando o efeito do ponto de válvula;
- Pk’s correspondem às potências nas quais as unidades geradoras devem operar; - PD é o valor da demanda de energia. - PL representa as perdas na transmissão. - Pk
min e Pkmax são, respectivamente, os limites operacionais inferiores e superiores de saída
das unidades de geração termoelétrica. Trata-se de um Problema de Programação Quadrática com restrições de igualdade e variáveis
canalizadas. A seguir são apresentados os resultados pelos métodos aqui abordados: Primal-Afim para
Programação Quadrática com variáveis canalizadas, O método Primal-Dual de pontos interiores previsor-corretor (PDPC) e o método Primal-Dual de pontos interiores com procedimento previsor-corretor e busca unidimensional (PDPCBU) ao Problema Despacho Econômico da Engenharia Elétrica.
7.1 Aplicação ao Modelo de Despacho Econômico
O modelo geral de otimização para o Despacho Econômico Clássico, o qual é definido sem se
considerar pontos de válvula, é apresentado em (7.1).
Afim de testar a implementação feita dos algoritmos vistos nas seções 4.4.3 e 6.6 apresentam-se
as tabelas 1, 2 e 3, contendo, respectivamente, os dados relativos aos modelos de DE com 3 geradores, cujos modelos são equivalentes àqueles vistos em (7.1), os quais são encontrados em [Samed, 2004].
Nestas tabelas encontram-se, para efeito de comparação, as soluções obtidas pelo Método Primal-Afim para Programação Quadrática (PAPQ), pelo Método Primal-Dual com procedimento Previsor-Corretor e procedimento de Busca Unidimensional (PDPCBU) e aquelas encontradas pelos métodos, Primal-Dual com procedimento Previsor-Corretor (PDPC), visto em [Balbo et al, 2007]; pelo Algoritmo Genético Híbrido (AGH) e Algoritmo Genético Co-Evolutivo (AGHCOE), vistos em [Samed, 2004].
A implementação computacional elaborada para os métodos foram feitas utilizando-se a linguagem de programação Pascal 7.0. Optou-se por não colocar-se nesta tabela os tempos de CPU, pois estes são insignificantes para os sistemas abordados.
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1483
66
7.2 - Adaptação do Problema de Despacho Econômico ao algoritmo proposto.
Para o Problema de Despacho Econômico (7.1) serão feitas as seguintes definições, no sentido de adaptar este problema aos algoritmos apresentados nas seções 4.4.3 e 6.6:
iii aQ 2, = e jiQ ji ≠= se ,0,
ii xP = ; iMIn
i lP = e i
Maxi uP =
1, =iiA e jiA ji ≠= se ,0, ; onde i, j = 1, ..., n;
LD PPb += .
7.3. PDE com 3 Geradores
Os coeficientes da função geração de energia, da restrição de igualdade e os limites operacionais de saída das unidades geradoras para o PDE com 3 geradores estão definidos na Tabela 7.1. Tabela 7.1 – Características do Sistema.
Gerador Pmín (MW) Pmáx (MW) A B c 1 100 600 0,001562 7,92 561 2 50 200 0,004820 7,97 78 3 100 400 0,001940 7,85 310
Consideram-se as seguintes soluções para a inicialização do método: 850=+= LD PPb , onde
850=DP é o valor da demanda e 0=LP , ou seja, não há perda na transmissão. Com estes dados o
seguinte PPQ é definido:
Minimizar { 2 2 21 2 3 1 2 30.001562 0.00482 0.00194 7.92 7.97 7.85 561 78 310P P P P P P+ + + + + + + + }
Sujeito a
1 2 3
1
2
3
850
100 600
50 200
100 400
P P P
P
P
P
+ + =
≤ ≤
≤ ≤
≤ ≤
�������
(7.3.1)
Podemos observar que:
[ ] [ ]7.92 0.003124 0 0
1 1 1 , 850 , 7.97 0 0.00964 0
7.85 0 0 0.00388
A B c e Q
� � � �� � � �= = = =� � � �� � � �� � � �
Os métodos (PAPQ) e (PDPCBU) foram testados utilizando a seguinte solução inicial e a
respectiva precisão:
( ) 300 100, ,4500 =x
0) 0, ,0(0 =w ;
0) 0, ,0(0 =y .
310−=ε
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1484
67
Tabela 7.2 – Soluções obtidas pelos métodos. Resultados AGH AGHCOE PDPC PAPQ PDPCBU
P1 (MW) 470,8421 344,7295 374,5555 392,9308 348,4714 P2 (MW) 109,4012 193,9445 75,4444 122,6578 200,0000 P3 (MW) 269,7567 311,3260 399,9999 334,4113 301,5286
Σ Pi (MW) 850,0000 850,0000 850,0000 850,000 850,000
Tabela 7.3 – Comparação de Valores da Função Objetivo.
Resultados Função Objetivo AGH 8.045,51 AGHCOE 7.961,58 PDPC 8.213,74 PAPQ 8.194,35 PDPCBU 7.949,32
A Tabela 7.2 mostra a viabilidade dos métodos Primal-Afim de pontos interiores para
Programação Quadrática (PAPQ) e Primal-Dual Previsor-Corretor (PDPCBU) para a resolução do PDE (7.3.1) com 03 geradores.
A Tabela 7.3 mostra o bom desempenho dos métodos, Primal-Afim de pontos interiores para Programação Quadrática (PAPQ) e Primal-Dual Previsor-Corretor (PDPCBU)), quando comparados com os resultados obtidos pelo Algoritmo Genético Híbrido (AGH) e algoritmo Genético Co-Evolutivo (AGHCOE), vistos em [Samed, 2004].
8. Considerações Finais
Neste minicurso apresentamos uma introdução aos métodos Primal-Dual de Pontos Interiores,
que estão inseridos na Área de Otimização e realizamos uma aplicação destes ao Problema de Despacho Econômico, estudado na área Sistemas de Energia, em Engenharia Elétrica. Nosso principal objetivo foi de fazer com que os participantes tivessem um primeiro contato com os métodos em destaque, despertando-os, dessa forma, para realizarem novas pesquisas nesta área.
Dentre os Métodos destacados, foram analisados aqueles que iniciaram essa metodologia,
denominados de Métodos Afins, mais especificamente, o Método Primal-Afim e o Método Dual-Afim de Pontos Interiores e estendemos o Método Primal-Afim para a resolução de Problemas de Programação Quadrática convexa com restrições lineares e, posteriormente, para variáveis canalizadas. Analisamos sua aplicação utilizando-se de Problemas de Programação Quadrática com dimensão pequena, incluindo um modelo simples de Despacho Econômico.
Em seguida foi realizada a análise do Método Pimal-Dual de Pontos Interiores com restrições
lineares, incluindo o caso de variáveis canalizadas, feita a sua extensão para Problemas de Programação Quadrática convexa com variáveis canalizadas e feita a sua aplicação a um problema simples de Despacho Econômico, encontrado na Engenharia Elétrica.
Os resultados obtidos mostraram o bom desempenho destes métodos quando comparados com
outros métodos encontrados na literatura. 9. Agradecimentos
Os autores agradecem ao CNPq (Conselho Nacional de Desenvolvimento Científico e
Tecnológico) e à Fapesp (Fundação de Amparo à Pesquisa do Estado de São Paulo) pelo apoio financeiro concedido.
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1485
68
10. Bibliografia
ADLER, I.; KARMAKAR, N; RESENDE, M.; VEIGA, G. An Implementation of Karmakar's algorithm for linear Programming. Mathematical Programming, 44, 3, 297-335, 1989. ALMEIDA, K.C.; SALGADO, R. Optimal Power Flow Problem Solutions Under Variable Load Conditions. IEEE Transactions on Power Systems, 15, 4, 1204-1211, 2000. BALBO, A.R, SOUZA, M. A. S., BAPTISTA, E. C., Métodos primal-dual de pontos interiores aplicados à resolução de problemas de despacho econômico: sobre a influência da solução inicial In: XL SBPO - Simpósio Brasileiro de Pesquisa Operacional, 2008,. XL SBPO (João Pessoa – Pb), Ed. RJ: ILTC, p.2074 – 2085 (2008). BALBO, A.R.; BAPTISTA, E. C; ARENALES, M.N, An adaptation and application of the Dual-Affine Interior Point Method to the Flatness Problem. In: European Journal of Operational Research. , v.181, p.1607 - 1616, 2007. BAPTISTA, E.C. Um método de geração de colunas para o problema de Planicidade. Anais do XVI CILAMCE 1995; 2; 1329-1338. BAPTISTA, E. C.; BELATI, E. A.; SOUSA, V. A.; COSTA, G. R. M. Primal-Dual Logarithmic Barrier and Augmented Lagrangian Function to the Loss Minimization in Power Systems. Electric power components and systems, 34, 7, 1-6, 2006a. BAPTISTA, E. C.; SOUSA, V. A.; COSTA, G. R. M. A Função Barreira Modificada e o Problema de Fluxo de Potência Ótimo. Tema, 7,1,21-30, 2006b. BARNES, E.R. A Variation on Karmarkar Algorithm for Solving Linear-Programming Problems. Mathematical Programming, 36, 2, 174-182, 1986. BREITFELD, M.G.; SHANNO, D.F. Computational experience with penalty-barrier methods for nonlinear programming. Annals of Operations Research, 62, 439-463, 1996. CARPENTER, J. J.; LUSTIG I. J.;. MULVEY, J.M; SHANNO, J. M. A Primal-Dual Point Method for Convex Nonlinear Programming, RUTCOR Research Report, New Jersey, 1990. CARPENTIER, J. L. Contribution a L’etude du Dispatching Economique. Bull-Soc. Fr Elec., Ser. B3, 431 – 447, 1962. CARROL, C.W. The Created Response Surface Technique for Optimizing Nonlinear Restrained Systems. Operations Research, 9, 169-184, 1961. CHEN, T.W.C.; VASSILIADIS, V.S. Solution of General Nonlinear Optimization Problemas using the Penalty/Modified Barrier Method with the use of Exact Hessians. Computers & Chemical Engineering, 27, 501-525, 2003. CHENG, Y.C., HOUCK, D. J., MEKETON, M. S., SLUTSMAN, L., VANDERBEI, R. J. and WANG, P. “The AT&T KORBX® System.” AT&T Technical Journal 68, No. 3, 7-19 (1989). DANTZIG, G. B. "Programming of Interdependent Activities. II. Mathematical Model." Econometrica 17, 200-211, 1949.
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1486
69
DANTZIG, G. B. Linear Programming and Extensions Princeton, NJ: Princeton University Press, 1963. FIACCO, A.V.; McCORMICK, G.P. Nonlinear Programming - Sequential Unconstrained Minimization Techniques. New York : Wiley, 1968. FRISCH, K. R. The Logarithmic Potential Method of Convex Programming. University Institute of Economics (manuscript). Oslo, Norway, 1955. GONZAGA, C. An algorithm for solving linear programming problems in O(n3L) operations. In: Progress in Mathematical Programming: Interior-Point and Related Methods, ed. N. Megido, Springer-Verlag, New York, 1-28, 1989. GONZAGA, C. Polynomial affine algorithms for linear programmimg. Mathematical Programming, 49, 7-21, 1990. GRANVILLE, S. Optimal Reactive Dispatch Through Interior Point Methods. IEEE Transactions on Power Systems, 9, 1, 136-146, 1994. HAPP H. H., Optimal Power Dispatch -Comprehensive Survey, IEEE Transactions on Power Apparatus and Systems, 3 Vol.96, (1977) 841-854. HUANG, S.T; FAN, K.C; WU, J.H. A new minimum zone method for evaluating flatness errors. Precision Engineering; 15 (1); 25-32, 1993. KARMARKAR, N. A new polynomial time algorithm for linear programming. Combinatorica, 4, 373-395, 1984. KIM J.O., SHIN D. J., PARK J.N. and SINGH C., Atavistic Genetic algorithm for economic dispatch with valve point effect, Eletric Power Systems Research, 62, (2002) 201-207. KOJIMA, M.; MIZUNO, S.; YOSHISE, A. A primal dual - inteiror point method for linear programming. In: Progress in Mathematical Programming: Inteiror-Point and Related Methods, Ed. N. Megiddo, Springer-Verlag, New York, 29-48, 1989. LUKSAN, L.; MATONOHA, C.; VLCEK, J. Interior-point method for non-linear non-convex optimization. Numerical Linear Algebra with Applications, 11, 5-6, 431-453, 2004. MEGIDDO, N. On the complexity of linear programming. In: Advances in Economical Theory, ed. t Bewely, Cambridge University Press, Cambridge, 225-268, 1987. MEGIDDO, N., SHUB, M. Boundary behavior of interior point algorithms in linear programming. Mathematics of Operations Research, 14, 97-146, 1989. MEHROTRA, S. On implementation of a primal-dual interior point method. SIAM Journal on Optimization, 2, 575-601, 1992. MONTEIRO, R. D. C.; ADLER, I. Interior Path-Following Primal-Dual Algorithms. Part I: Linear Programming, Part II: Convex Quadratic Programming. Mathematical Programming, 44, 27-66, 1989. MONTEIRO, R. D. C.; ADLER, I.; RESENDE, M. C. A polynomial-time primal-dual affine scaling algorithm for linear and convex quadratic programming and its power series extension. Mathematics of Operations Research, 15, 191-214, 1990.
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1487
70
NEJDAWI, I.M.; CLEMENTS, K.A.; DAVIS, P.W. An Efficient Interior Point Method for Sequential Quadratic Programming Based Optimal Power Flow. IEEE Transactions on Power Systems, 15, 4, 1179-1183, 2000. POLYAK, R.. Modified barrier functions. Mathematical Programming, 54, 2, 177-222, 1992. RENEGAR, J. A polynomial-time algorithm based on Newton´s method for linear programming. Mathematical Programming, 40, 59-93, 1988. SAMED, M.M.A., “Um Algoritmo Genetico Hibrido Co-Evolutivo para Resolver Problemas de Despacho”, Tese de Doutorado, UEM, Depto. de Engenharia Química, Agosto de 2004, 167 p. SHANNO, D.F.; VANDERBEI, R.J. Interior-point for nonconvex nonlinear programming. Mathematical Programming, 87, 303-316, 2000. TORRES, G. L.; QUINTANA, V.H. Optimal Power Flow in Rectangular Form via an Interior Point Method. IEEE Transactions on Power Systems, 13, 4, 1211-1218, 1998. VAIDYA, P. M. An algorithm for linear programming which requires O(((m + n)n2 + (m + n)1.5n)L) arithmetic operations. Mathematical Programming, 47, 175-2001, 1990. VANDERBEI, R. J.; MEKETON, M. S.; FREEDMAN, B. A. A modification of Karmarkar’s linear programming algorithms. Algorithmica, 1, 395-407, 1986. VANDERBEI, R.J.; SHANNO, D.F. An interior-point algorithm for nonconvex nonlinear programming. Computational Optimization and Applications, 13, 231-252, 1999. VASSILIADS, V.S; FLOUDAS,C.A. The modified barrier function approach for large-scale optimization. Computer and Chemical Engennering, 21, 855-874, 1997. WHITEHOUSE, D.J. Handbook of surface metrology. USA: Philadelphia; 1984. WU, Y. C.; DEBS, A. S.; MARSTEN, R. E. A direct nonlinear Predictor-Corretor Primal-Dual Interior Point Algorithm for Optimal Power Flows. IEEE Transactions on Power Systems, 9, 2, 876-883, 1994. YE, Y. An O(n3 L) potential reduction algorithm for linear programming. Contemporary Mathematics, 114, 91-107, 1986.
Proceedings of the 9th Brazilian Conference on Dynamics Control and their Applications Serra Negra, SP - ISSN 2178-3667 1488
top related