Professional Documents
Culture Documents
AAAA-S
Disciplina: Introdução à Otimização Código: CCCCCC
Horário: Sala: SSSS
Professor: Sérgio Haffner (mailto:slhaffner@gmail.com) Sala: SSSS
Ementa da disciplina
Fundamentos da otimização. Otimização irrestrita. Otimização com restrições. Programação linear.
Programação inteira e inteira mista.
Bibliografia
1 – Ronald L. Rardin (1998). Optimization in operations research. Prentice Hall, New Jersey.
2 – David G. Luenberger (1973). Introduction to linear and nonlinear programming. Addison-Wesley Publishing
Company Inc.
3 – David G. Luenberger (1984). Linear and nonlinear programming. Addison-Wesley Publishing Company Inc.
4 – Katta G. Murty (1983). Linear programming. John Wiley & Sons, New York.
5 – Frederick S. Hillier e Gerald J. Lieberman (2002). Introduction to Operations Research. Holden-Day, Inc.,
Oakland, California. 658.4034 H654i (Central, Edição 1980)
6 – Dimitri P. Bertsekas (1999). Nonlinear Programming. Athena Scientific, Belmont, Massachusetts. 519.76
B551n (Central, Edição 1995)
7 – Joseph G. Ecker e Michael Kupferschmid (1999). Introduction to Operations Research. John Wiley & Sons,
New York. 658.4034 E19i (Central, Edição 1988)
8 – G. V. Reklaitis, A. Ravindran & K. M. Ragsdell (1983). Engineering optimization methods and applications.
John Wiley and Sons, New York. 620.0042 R381e (Central)
9 – James A. Momoh (2001). Electric power system applications of optimization. Marcel Dekker Inc., New
York. 621.31 M733e (IPCT)
10 – David E. Goldberg (1989). Genetic algorithms in search, optimization and machine learning. New York, NY.
412 p. 005.1 G618g (IPCT)
11 – Christos H. Papadimitriou (1998). Combinatorial optimization: algorithms and complexity. Dover
Publications, Inc., Mineola, Ney York. 004.0151 P213c (Central)
12 – Valdisio Viana (1998). Meta-heurísticas e programação paralela em otimização combinatória. UFC Edições,
Fortaleza.
13 – Anthony Brooke, David Kendrick e Alexander Meeraus (1997). GAMS: sistema geral de modelagem
algébrica. E. Blücher, São Paulo. 519.7 B871g (Central)
14 – Marco Cesar Goldbarg e Henrique Pacca Loureiro Luna (2000). Otimização combinatória e programação
linear. Ed. Campus.
15 – Stephen J. Chapman (2003). Programação em Matlab para Engenheiros. Thomson.
16 – Publicações Especializadas.
Avaliação
Duas provas (P1 e P2) e dois trabalhos (T1 e T2) com a seguinte ponderação para composição da nota final:
T1 + T 2
N = 0,20 P1 + 0,40 P 2 + 0,40
2
A freqüência mínima é de 75% das aulas.
Software de apoio
• GAMS (General Algebraic Modeling System) – disponível para download em:
http://www.gams.com/
• Matlab – Optimization Toolbox (incluída no programa) e Matlab Central File Exchange
(http://www.mathworks.com/matlabcentral/fileexchange/)
Cronograma
Aula Dia Assunto
Apresentação da disciplina; Introdução à otimização em engenharia; Exercícios de
1
modelagem
2 Revisão de álgebra linear e cálculo com várias variáveis
3 Otimização irrestrita 1
4 Otimização irrestrita 2
5 Otimização irrestrita 3
6 Aplicação otimização irrestrita
7 Prova P1
8 Otimização com restrições 1
9 Otimização com restrições 2
10 Otimização com restrições 3
11 Aplicação otimização com restrições
12 Programação linear 1
13 Programação linear 2
14 Programação inteira e inteira mista 1
15 Programação inteira e inteira mista 2
16 Prova P2
Programa
1. Introdução à otimização em engenharia
2. Tipos de problemas de otimização (programação linear; otimização irrestrita; otimização com restrições).
3. Revisão de álgebra linear e cálculo com várias variáveis
4. Otimização irrestrita
Formulação
Condições de otimalidade
Minimização de funções convexas
Busca unidimensional:
Métodos que não utilizam derivada (busca uniforme, busca dicotômica, segmento áureo, seqüência de Fibonacci)
Métodos que utilizam derivada (bi-seção, Newton, falsa posição)
Problema multidimensional:
Gradiente
Direções conjugadas
Quase-Newton
Newton
5. Otimização com restrições
Formulação
Condições de otimalidade
Métodos primais:
Gradiente projetado
Gradiente reduzido
Métodos das penalidades e barreiras
Método de Lagrange
6. Programação linear
Formulação
Resolução de forma geométrica
Método simplex
Dualidade em programação linear
Análise de sensibilidade
Aplicação: Modelo de transportes para expansão de sistema de transmissão
7. Programação inteira e inteira mista
Formulação
Solução por enumeração
Relaxação de modelos discretos
Algoritmo branch-and-bound
Sejam: A, B, C – matrizes
ai , j – elemento i j da matriz
AT – transposta de A
l
Multiplicação de matrizes: C (n, m ) = A(n, l ) ⋅ B (l , m ) ⇔ ci , j = ∑a i ,k ⋅ bk , j
k =1
Em geral, A ⋅ B ≠ B ⋅ A
Transposição: ( A ⋅ B )T = B T ⋅ AT
adj A cof AT
Inversa de uma matriz quadrada A (não-singular: det A ≠ 0 ): A−1 = =
det A det A
−1 −1
A⋅ A = A ⋅ A = I
(A ) = A
−1 −1
(A ) = (A )
−1 T T −1
(A ) = (A )
−1 * * −1
Revisão de álgebra linear e cálculo com várias variáveis – Sérgio Haffner Versão 1.0: 12/9/2007 Página 1 de 8
Introdução à Otimização
an ,i an,i ⋅ bi ,1 an,i ⋅ bi , 2 L an,i ⋅ bi ,n
n
∑
a1, j ⋅ b j ,i
a1,1 a1, 2 L a1,n b1,i j =1
a a L a b n
A ⋅ bi =
2 ,1 2, 2 2 ,n 2 ,i
⋅ = ∑ a2, j ⋅ b j ,i
M M O M M j =1
M
an ,1 an , 2 L an ,n bn ,i n
∑
an , j ⋅ b j ,i
j =1
b1,1 b1, 2 L b1,n
b a L b n
a i ⋅ B = [ai ,1 ai , 2 L ai ,n ] ⋅
n n
2 ,n
∑
= ai , j ⋅ b j ,1 ∑ ai , j ⋅ b j , 2 L ∑a ⋅ b j ,n
2 ,1 2, 2
M M O M j =1 i, j
j =1 j =1
bn ,1 bn , 2 L bn ,n
644 n7 44
vezes 8
Definição 1 (ESPAÇO N-DIMENSIONAL ou ℜ = ℜ × ℜ × K × ℜ ): Conjunto dos vetores de n
n
componentes reais:
x = ( x1 , x2 , L , xn ), xi ∈ ℜ
Para x, y ∈ ℜ n e α ∈ ℜ ,
x + y = ( x1 + y1 , x2 + y2 , L , xn + y n )
α x = (αx1 ,αx2 ,L,αxn )
Revisão de álgebra linear e cálculo com várias variáveis – Sérgio Haffner Versão 1.0: 12/9/2007 Página 2 de 8
Introdução à Otimização
Pode-se observar, na Figura I.1 que todos os pontos contidos entre a combinação linear de quaisquer dois
pontos (linha que une os pontos x e y) pertencentes a um conjunto convexo estão contidos dentro deste
conjunto.
x
y
x
y
Convexo Não-convexo
Figura I.1 – Definição de conjuntos convexo e não convexo.
H≥
− 10 x1 + 5 x2 = 5 H≤
x1 x1 x1
Revisão de álgebra linear e cálculo com várias variáveis – Sérgio Haffner Versão 1.0: 12/9/2007 Página 3 de 8
Introdução à Otimização
Poliedro Politopo
Figura I.3 – Poliedro e politopo.
Definição 5 (FUNÇÃO CONVEXA): f é uma função convexa sobre um conjunto convexo C se para
quaisquer x , x ∈ C e qualquer α ∈ [0;1]
a b
( ) ( )
f α x + (1 − α )x ≤ αf x + (1 − α ) f x
a b a
( )
b
Para uma função escalar f pode-se utilizar a interpolação geométrica da Figura I.4 para a qual o valor da
função é menor ou igual à sua interpolação linear entre dois pontos quaisquer xa e xb.
f(x)
Interpolação linear:
f(xb)
αf(xa)+(1–α) f(xb)
f(xa)
xa xb x
Figura I.4 – Interpretação geométrica no plano de uma função convexa.
Por outro lado, para uma função não convexa, mostrada na Figura I.5, o valor da função não é menor ou
igual à sua interpolação linear para alguns valores de xa e xb.
f(x)
Interpolação linear:
f(xb)
αf(xa)+(1–α) f(xb)
f(xa)
xa xb x
Figura I.5 – Interpretação geométrica no plano de uma função não-convexa.
Revisão de álgebra linear e cálculo com várias variáveis – Sérgio Haffner Versão 1.0: 12/9/2007 Página 4 de 8
Introdução à Otimização
f é uma função (estritamente) côncava sobre um conjunto convexo C se − f for uma função (estritamente)
convexa sobre C.
• Se f é uma função convexa sobre C convexo e f possui primeiras derivadas parciais contínuas, então
( ) ( ) [ ( )] (x
f x ≥ f x + ∇x f x
b a a T b
−x
a
) ∀x , x ∈ C
a b
∂f (x ) a
∂x1
∂f x a ( )
( )
onde ∇ x f x = ∂x é o gradiente de f em relação à x calculado no ponto x .
a
2
a
Ma
∂f x
∂x
( )
n
Para uma função escalar, conforme ilustrado na Figura I.7, significa que o valor da função é sempre
maior ou igual à sua aproximação linear calculada em um determinado ponto xa.
f(x)
xa x
Figura I.7 – Aproximação linear de uma função convexa.
• Se f é uma função convexa sobre C convexo, possui segundas derivadas parciais contínuas e
∂ 2 f (x )
F (x ) = 2
∂x
é a MATRIZ HESSIANA de f em x, então
F (x ) ≥ 0 ∀x ∈ C (semidefinida positiva)
isto é, para todo x ∈ C ,
y F (x )y ≥ 0 ∀ y ∈ ℜn
T
Revisão de álgebra linear e cálculo com várias variáveis – Sérgio Haffner Versão 1.0: 12/9/2007 Página 5 de 8
Introdução à Otimização
Contra-exemplo: f (x ) = x12 + x1 x2
2 x + x2
∇ x f (x ) = 1
x1
2 1
F (x ) =
1 0
Verificação:
T
y 2 1 y1
y F (x )y = 1 ⋅ = 2 y12 + y1 y 2 + y1 y2 = 2 y12 + 2 y1 y 2
T
y 2 1 0 y 2
Teorema do valor médio: Seja f contínua em I = [a; b] , tal que f ′ exista em cada ponto de (a; b ) . Então
existe ao menos um x ∈ (a; b ) tal que
()
f (b ) = f (a ) + f ′ x (b − a )
O teorema do valor médio afirma que existe algum ponto sobre a curva entre a e b onde a reta tangente é
paralela à reta secante que passa por a e b. Na Figura I.8, este ponto é notado por x .
f(a)
f(b)
a x b x
Para a função da Figura I.8, a taxa de variação média, entre os pontos a e b corresponde à derivada da
função, calculada no ponto x , ou seja
∆f (x ) f (b ) − f (a )
∆x
=
(b − a )
= f′x =
d
dx
()
f (x )
x=x
Revisão de álgebra linear e cálculo com várias variáveis – Sérgio Haffner Versão 1.0: 12/9/2007 Página 6 de 8
Introdução à Otimização
Assim, para determinar-se o valor de f ( x + ∆x ) , na Figura I.9, pode-se utilizar o seguinte procedimento:
∆f ( x ) = f ( x ) ∆x
d
dx x= x
e
f ( x + ∆x ) = f ( x ) + ∆f (x ) = f ( x ) + f ( x ) ∆x
d
dx x= x
f(x+∆x)
∆f(x)
f(x)
x x+∆x x
Polinômios de Taylor
A série de Taylor é obtida a partir da aplicação do teorema do valor médio. A partir de um ponto inicial x0,
no qual o valor da função f(x0) é conhecido, pode-se determinar o valor da função para os demais valores de
x pela seguinte expressão (aplicação do teorema do valor médio):
( )
f (x ) = f x 0 +
d
dx
f (x ) (
x − x0 )
x= x
ou, de forma mais compacta,
( ) ( )(
f (x ) = f x 0 + f ′ x x − x 0 )
O problema de empregar esta expressão reside no fato de ser necessário determinar o ponto x no qual a
derivada corresponde à derivada reta secante entre os pontos x0 e x (este valor depende de x). A solução para
este problema é utilizar a derivada da função no ponto inicial x0 mas para manter a igualdade é necessário
acrescentar um resto (R):
( ) ( )(
f (x ) = f x 0 + f ′ x 0 x − x 0 + R )
Caso o resto R seja negligenciado, tem-se a seguinte aproximação linear:
( ) ( )(
f (x ) ≈ f x 0 + f ′ x 0 x − x 0 )
Observar que o teorema do valor médio pode ser aplicado de forma recursiva, resultando no seguinte
polinômio
( )1
1!
( )( 1
2!
) 2 1
n!
( )( )
f ( x ) = f x 0 + f ′ x 0 x − x 0 + f ′′ x 0 x − x 0 + K + f (n ) x 0 x − x 0 +
n
( )( )
+
1
(n + 1)!
f (n+1)
( )(
x x−x 0 n +1
)
Observar que apenas o último termo é função de x ; todos os demais termos são calculados diretamente em
x0. Aproximações podem ser obtidas desprezando-se o último termo e utilizando-se um número finito de
Revisão de álgebra linear e cálculo com várias variáveis – Sérgio Haffner Versão 1.0: 12/9/2007 Página 7 de 8
Introdução à Otimização
termos, em função da precisão que se está buscando. Por exemplo, para utilizar-se uma aproximação
quadrática (n=2), tem-se a seguinte expressão:
( ) ( )( ) ( )(
f ( x ) ≈ f x 0 + f ′ x 0 x − x 0 + f ′′ x 0 x − x 0
1
2
2
)
De uma forma mais geral, a aproximação por série de Taylor com termos até a ordem n é dada por
( ) ∑ ( )( )
n
f (x ) ≈ f x 0 +
1 (k ) 0 k
f x x − x0
k =1 k!
Quando se está utilizando funções de várias variáveis x , tem-se as seguintes expressões para as
aproximações linear e quadrática:
644Aproximaçã
4474 o linear
4448
( ) [ ( )] (
f (x ) ≈ f x + ∇ x f x
0 0 T 0 1
2
0 T
) (
x−x + x−x F x x−x
0 0
) ( )( )
1444444444 424444444444 3
Aproximaçã o quadrática
Exercício:
Revisão de álgebra linear e cálculo com várias variáveis – Sérgio Haffner Versão 1.0: 12/9/2007 Página 8 de 8
Introdução à Otimização em Engenharia
II Otimização Irrestrita
Ω Ω Ω
Mínimo global
• x * ponto de mínimo global
∀ x ∈ Ω f ( x ) ≥ f ( x *)
2
Factíveis x Não factíveis
1
x
d
d
• d direção factível
∇ x f ( x *) ⋅ d ≥ 0
T
Ilustração
∇ x f (x )
x
x*
∇ x f (x *) d
x*
d
Ω Ω Ω
Como ∇ x f (x *) = 0 ∇ x f ( x *) ⋅ d > 0
T
∃d | ∇ x f (x ) ⋅ d < 0
T
∇ x f ( x *) ⋅ d = 0
T
pois ângulo < 90 x não é mínimo local
g ⋅d =0
T
⇒ g e d são ortogonais
g ⋅d > 0
T
⇒ o ângulo entre g e d é menor do que 90º
g ⋅d < 0
T
⇒ o ângulo entre g e d é maior do que 90º
g ⋅d
T
( )
cos ∠ g , d = ou g ⋅ d = g d cos ∠ g , d
T
( )
gd
x = x * +α d
f ( x ) = f ( x *) + ∇ x f ( x *) ⋅ α d + R α 2
T
( )
x f ( x ) − f ( x *) = α∇ x f ( x *) ⋅ d + R (α )
T 2
d
quando α → 0 tem - se :
α >0
f ( x ) − f ( x *) ≈ α∇ x f ( x *) ⋅ d
T
x*
Se f (x ) ≥ f ( x *) então :
∇ x f ( x *) ⋅ d ≥ 0
T
∇ x f ( x *) ⋅ d ≥ 0
T
d x quando α → 0 tem - se :
f ( x ) − f (x *) ≈ α∇ x f (x *) ⋅ d + 12 α 2 d ⋅ ∇ 2x f (x *) ⋅ d
T T
Se f ( x ) ≥ f (x *) então :
d ⋅ ∇ 2x f (x *) ⋅ d ≥ 0
T
Para o caso irrestrito, x * é interior a Ω (todas as direções são factíveis). Assim, se x * é um mínimo local,
então:
∇ x f ( x *) = 0
d ⋅ ∇ 2x f ( x *) ⋅ d ≥ 0
T
Para qualquer direção viável d ,
d ⋅ ∇ 2x f (x *) ⋅ d > 0
T
(matriz Hessiana definida positiva)
Seja o problema de otimização (P), no qual são conhecidos x k ∈ Ω e d k , uma direção factível:
f (x )
(P )
Min
s.a. x∈Ω
x k +1
Curvas de nível
dk f ( x ) = constante
d k +1
xk
sendo d k uma direção de descida e α o tamanho do passo nesta direção. Torna-se assim, um problema
unidimensional (PU) no qual se busca determinar o tamanho do passo α que minimize f ( x ) :
Min g k (α ) = f (x k + α d k )
(PU )k s.a. α > 0
(x k + α d k ) ∈ Ω
Assim, o problema original (P) é resolvido através de uma seqüência de problemas unidimensionais (PU)k,
k = 1,2, ⋯ .
A direção de busca adotada é a direção oposta ao vetor gradiente ou se baseia nesta informação. Assim, um
procedimento para determinação do mínimo irrestrito de uma função de múltiplas variáveis segue os
seguintes passos:
1. Fazer k = 0 e determinar uma solução inicial x k .
Min g k (α ) = f (x k + α d k )
(PU )k s.a. α > 0
(x k + α d k ) ∈ Ω
5. Resolver o problema unidimensional (PU)k e determinar α * .
6. Atualizar x k +1 = x k + α * d k .
7. Fazer k = k + 1 e retornar para o Passo 2.
Dado um problema convexo (ou estritamente quase convexo) unidimensional, no qual se conhece um
intervalo de incerteza [a; b] , que inclui a solução,
g (α )
(PU )
Min
s.a. a ≤α ≤ b
o procedimento de busca consiste em sucessivamente excluir as partes do intervalo de incerteza que não
contém o mínimo de g (α ) .
Uma alternativa intuitiva para realizar a redução do intervalo de incerteza [a; b] é dividi-lo em partes e
avaliar a função nas extremidades destas partes. Na figura a seguir, a função é inicialmente avaliada nos
pontos 1, 2 e 3. Após o intervalo 3-2 é dividido ao meio e a função é avaliada em 4. Como g 3 < g 4 < g 2 , o
mínimo não está no intervalo 4-2 e o extremo b1 é substituído por b2 . A seguir, a função é avaliada em 5.
Como g1 > g 5 > g 3 , o mínimo não está no intervalo 1-5 e o extremo a1 é substituído por a2 . Este
procedimento se repete até que o intervalo [a; b] seja tão pequeno quanto desejado.
g (α )
1
2
5
4
a1 a2 b2 b1 α
De uma maneira geral todos os métodos que não utilizam derivadas se baseiam neste princípio.
g (α )
λ α
a λ −δ λ +δ b
g (α )
ak λk µk α
bk
Quando g (λk ) > g (µ k ) (como na Figura anterior), sabe-se que o ponto de mínimo não se encontra no
intervalo [ak ; λk ] . O novo intervalo de incerteza será [λk ; bk ] .
Caso g (λk ) < g (µ k ) , sabe-se que o ponto de mínimo não se encontra no intervalo [µ k ; bk ] . O novo intervalo
de incerteza será [ak ; µ k ] .
Observações:
• Quanto menor for ε, maior será o intervalo descartado de cada vez.
• O que fazer quando g (λk ) = g (µ k ) ?
µ k − ak
λk − ak
ak λk µk α
bk
Iteração k
Iteração k+1
ak +1 µk+1 bk +1 α
λk − ak
=1− β ⇒ λk = a k + (1 − β ) (bk − ak ) (2)
bk − a k
Para o intervalo da iteração k+1, tem-se:
µ k +1 − a k +1 λk − a k
=β ⇒ =β ⇒ λk = ak + β (µ k − ak ) (3)
bk +1 − a k +1 µ k − ak
Substituindo (1) em (3)
λk = a k + β (β (bk − ak )) = ak + β 2 (bk − ak ) (4)
Para (2)=(4) é necessário que:
−1 ± 5 β1 ≈ 0,618
1− β = β 2 ⇒ β 2 + β −1 = 0 ⇒ β1, 2 = ⇒
2 β 2 ≈ −1,618
Como 0 < β < 1 , a solução é: β ≈ 0,618 .
Para cada intervalo de incerteza, a função é avaliada nos seguintes pontos (um deles já foi calculado
anteriormente):
λk = ak + (1 − β )(bk − ak )
µ k = ak + β (bk − ak )
ak + bk
λk =
2
∂g (λk )
• Se =0 ⇒ λk é a solução
∂α
∂g (λk )
• Se >0 ⇒ a função é crescente em λk e a solução se encontra no intervalo [ak ; λk ] . Logo
∂α
ak +1 = ak e bk +1 = λk
∂g (λk )
• Se <0 ⇒ a função é decrescente em λk e a solução se encontra no intervalo [λk ; bk ] .
∂α
Logo ak +1 = λk e bk +1 = bk
∂g (α k )
(α − α k ) + 1 ∂ g (α2 k ) (α − α k )2
2
g~ (α ) = g (α k ) +
∂α 2 ∂α
A nova estimativa α k +1 é tal que:
∂g~ (α k +1 )
=0
∂α
∂g (α k )
∂g (α k ) ∂ 2 g (α k )
+ (α k +1 − α k ) = 0 ⇒ α k +1 = α k − 2 ∂α
∂α ∂α 2 ∂ g (α k )
∂α 2
A idéia por detrás do método de Newton é que a função f ( x ) a ser minimizada seja aproximada localmente
por uma função quadrática que é minimizada de forma exata.
Utilizando a série de Taylor, a função f pode ser aproximada, nas proximidades de x k , por:
f ( x ) ≈ f (x k ) + ∇ x f ( x k ) ( x − x k ) + (x − x k )T ∇ 2x f (x k )(x − x k )
T 1
2
cuja expressão do valor mínimo é utilizada para determinar a nova aproximação x k +1 para a solução do
problema:
[ ]
x k +1 = x k − ∇ 2x f (x k ) ∇ x f (x k )
−1
Observar que não é necessário realizar uma busca, pois a nova estimativa é determinada de forma analítica
pela expressão anterior.
Método de Newton
1. Fazer k = 0 e definir uma aproximação inicial x 0 ∈ ℜ n .
2. Para o ponto x k , determinar o vetor gradiente: ∇ x f ( x k ) .
Caso ∇ x f ( x k ) < ε o processo convergiu para a solução x = x k ; caso contrário prosseguir.
*
3.
4. Calcular a matriz Hessiana: ∇ 2x f (x k ) .
5. [ ]
Calcular a nova estimativa: x k +1 = x k − ∇ 2x f (x k ) ∇ x f (x k ) .
−1
[ ]
x k +1 = x k − α k ∇ 2x f (x k ) ∇ x f (x k )
−1
onde α k é selecionado de modo que minimize f. Nas proximidades da solução, espera-se que a aproximação
quadrática seja razoável e tal parâmetro seja próximo a unidade.
A segunda modificação é oriunda da análise da classe de algoritmo na qual:
x k +1 = x k − α k S k ∇ x f (x k )
onde S k é uma matriz n × n e α k é um parâmetro de busca. Observar que para o método de descida S k = I
[ ]
e para o método de Newton S k = ∇ 2x f ( x k ) . Surge, então, uma família de aproximações, nas quais são
−1
[ ]
x k +1 = x k − ∇ 2x f (x 0 ) ∇ x f (x k )
−1
Isto reduz o esforço computacional investido no cálculo da inversa da Hessiana, mas pode prejudicar a
convergência do processo quando a Hessiana varia sensivelmente de um ponto para outro.
Direções conjugadas é um método bastante utilizado que se situa em uma posição intermediária entre os
métodos de descida e o método de Newton, conforme ilustra a Figura a seguir.
Definição (Direções conjugadas): Dada uma matriz simétrica Q, dois vetores d1 e d2 são ditos Q-
ortogonais, ou conjugados, com relação a Q se d 1 Q d 2 = 0 .
T
Teorema das direções conjugadas: Seja {d i }i =0 um conjunto de vetores não nulos Q-ortogonais. Para
n −1
x k +1 = x k + α k d k , k ≥0
com
− gk dk
T
αk = T
d k Qd k
e
g k = Qxk − b
O método do gradiente conjugado é o método das direções conjugadas que é obtido pela seleção de
sucessivos vetores direção como uma versão conjugada dos sucessivos gradientes obtidos ao longo do
processo de solução. Em um determinado passo k utiliza-se o vetor gradiente com sinal trocado acrescido de
uma combinação linear dos vetores direção já empregados para obter uma nova direção conjugada às demais.
a) Fazer: x k +1 = x k + α k d k , com α k =
d k ∇ 2x f (x k )d k
T
i. d k +1 = − g k +1 + β k d k , com β k =
d k ∇ 2x f (x k )d k
T
Observar que não é necessário realizar uma busca unidimensional, pois α k é calculado analiticamente no
Passo 2(a).
Ao invés de se utilizar uma expressão analítica para determinar α k , é possível obter o tamanho do passo
através de uma busca unidimensional, como proposto pelo método de Fletcher-Reeves.
Algoritmo Fletcher-Reeves
II.7 Quase-Newton
A idéia fundamental por detrás dos métodos Quase-Newton é a tentativa de construir a inversa da matriz
Hessiana do problema (ou uma aproximação dela), utilizando as informações colhidas ao longo do processo
de descida.
O primeiro esquema de construção da inversa da Hessiana foi proposto por Davidon e desenvolvido por
Fletcher e Powell.
Método de Davidon-Fletcher-Powell
1. Fazer k = 0 , definir aproximações iniciais x 0 ∈ ℜ n e H 0 (por exemplo, a matriz identidade).
2. Para o ponto x k , determinar o vetor gradiente: ∇ x f (x k ) .
Caso ∇ x f ( x k ) < ε , o processo convergiu para a solução x = x k ; caso contrário prosseguir.
*
3.
4. Fazer d k = − H k ∇ x f (x k )
5. Minimizar f ( x k + α k d k ) com relação à α k ≥ 0 , para obter:
x k +1 = x k + α k d k
pk = αk d k
∇ x f (x k +1 )
6. Fazer q k = ∇ x f (x k +1 ) − ∇ x f ( x k ) e calcular a nova estimativa para a Hessiana:
T T
pk pk H k qk qk H k
H k +1 = H k + T
− T
.
pk qk qk H k qk
7. Fazer k = k + 1 e retornar para o Passo 2.
Uma variante na expressão de atualização da inversa da Hessiana foi proposta por Broyden-Fletcher-
Goldfarb-Shanno.
Família Broyden-Fletcher-Goldfarb-Shanno
1. Fazer k = 0 , definir aproximações iniciais x 0 ∈ ℜ n e H 0 (por exemplo, a matriz identidade).
2. Para o ponto x k , determinar o vetor gradiente: ∇ x f (x k ) .
Caso ∇ x f ( x k ) < ε o processo convergiu para a solução x = x k ; caso contrário prosseguir.
*
3.
4. Fazer d k = − H k ∇ x f (x k )
5. Minimizar f ( x k + α k d k ) com relação à α k ≥ 0 , para obter:
x k +1 = x k + α k d k
pk = αk d k
∇ x f (x k +1 )
6. Fazer q k = ∇ x f (x k +1 ) − ∇ x f ( x k ) e calcular a nova estimativa para a Hessiana:
qT H k q p pT p qT H k + H k q pT
H k +1 = H k + 1 + k T k kT k − k k T k k
.
q p p q q p
k k k k k k
0
a) A aproximação quadrática no ponto x 0 = .
0
b) O gráfico em 3D da função e da aproximação quadrática anterior.
7
c) As curvas de nível da função e o vetor gradiente em x 0 e x1 = .
5
d) A interpretação geométrica do ponto no qual ∇ x f ( x ) = 0 .
III.1 Introdução
Nesta seção serão abordados os problemas de otimização não linear (função objetivo e/ou restrições não
lineares) com a seguinte forma geral:
min f (x )
s.a. h( x ) = 0
Restrições de igualdade
(III.1)
g (x ) ≤ 0 Restrições de desigualdade
x∈Ω
Observações:
1. Um ponto x ∈ Ω que satisfaça a todas as restrições funcionais h( x ) = 0 e g ( x ) ≤ 0 é denominado( )
ponto factível.
2. O conjunto das restrições de igualdade h(x ) = 0 define uma hipersuperfície S.
3. No espaço das soluções viáveis, uma restrição de desigualdade i pode estar ativa, quando g i (x ) = 0 ,
ou inativa, quando g i (x ) < 0 . Se fosse possível conhecer a priori quais restrições estão ativas na
solução de (III.1), a solução seria o ponto de mínimo local do problema definido ignorando as
restrições inativas e considerando todas as restrições ativas como restrições de igualdade. Isto motiva
o estudo em separado dos problemas que possuem apenas restrições de igualdade.
Os métodos empregados na solução de (III.1) se dividem em duas famílias:
• Pontos factíveis (por exemplo: gradiente projetado; gradiente reduzido)
• Pontos infactíveis (por exemplo: penalidades e métodos duais)
Definição (Ponto Regular): Um ponto x* satisfazendo h x * = 0 é dito ser um ponto regular das ( )
restrições se os vetores gradiente ∇h1 x , ∇h2 x , ⋯ , ∇hn x ( )
*
( )
*
( ) são linearmente independentes (LI).
*
( )
∇h x
*
Plano tangente
*
x
Plano tangente
h( x ) = 0
*
x
h( x ) = 0 S
S
*
Figura III.1 – Ilustração de um ponto regular x .
Plano tangente
( )
∇h2 x
*
h( x ) = 0
*
∇h1 x ( )
*
h2 (x ) = 0
S
h1 (x ) = 0
Seja x* um ponto regular das restrições h(x ) = 0 e um extremo local (mínimo ou máximo) de f ( x ) sujeito a
estas restrições. Então, todo y ∈ ℜ n tal que
( )
∇h x y = 0
*
( y pertence ao plano tangente)
( )
Assim, o gradiente da função objetivo ∇f x é ortogonal ao plano tangente à superfície definida pelas
*
restrições h(x ) = 0 , ou seja, pode ser representado por uma combinação linear do gradiente de h( x ) ,
calculado em x , ∇h x .
*
( )
*
Teorema: Seja x* um ponto extremo de f ( x ) sujeito as restrições h(x ) = 0 . Suponha que x* é um ponto
regular destas restrições. Então existe λ ∈ ℜ m tal que
( )
∇f x + λ ∇h x = 0
* T
( )
*
( )
Combinação linear: − ∇f x = λ ∇ h x
* T
( )
*
h(x ) = 0
*
(m equações para m restrições)
λ.
sendo λ o vetor dos multiplicadores de Lagrange cujos componentes são associados a cada uma das
restrições do problema.
Utilizando-se esta definição é possível escrever as condições necessárias de 1ª ordem de forma mais
compacta:
∇ xl ( x, λ ) = 0 ( )
(ou seja, ∇ x f x + λ ∇ x h x = 0 )
* T
( )
*
Com relação às dimensões dos vetores e matrizes envolvidos nos cálculos anteriores, considerar o exemplo
no qual se tem três variáveis (n=3) e duas restrições de igualdade (m=2). Neste caso, o problema de
otimização é dado por:
min f (x )
s.a. h1 ( x ) = 0
h2 ( x ) = 0
x = [x1 x2 x3 ]
∂f ( x ) ∂h ( x ) ∂h ( x ) ∂f (x ) ∂h ( x ) ∂h (x ) ∂f (x ) ∂h (x ) ∂h (x )
∇ x l (x, λ ) = + λ1 1 + λ2 2 + λ1 1 + λ2 2 + λ1 1 + λ2 2 =
∂x1 ∂x1 ∂x1 ∂x 2 ∂x 2 ∂x 2 ∂x 3 ∂x 3 ∂x 3
∇ x l ( x, λ ) = ∇ x f ( x ) + λ T ∇ x h ( x ) Dimensões: [1 × n ] = [1 × n] + [1 × m][m × n ]
Observar que a expressão em destaque corresponde ao termo igualado á zero nas condições necessárias de 1a
ordem.
h1 ( x1 , x2 , x3 , λ1 , λ2 )
l (x1 , x2 , x3 , λ1 , λ2 ) = f ( x1 , x2 , x3 , λ1 , λ2 ) + [λ1 λ2 ] =
h2 (x1 , x2 , x3 , λ1 , λ 2 )
= 400 x12 + 800 x22 + 200 x1 x2 + 1600 x32 + 400 x2 x3 +
+ λ1 (10 x1 + 10 x2 + 15 x3 − 12) + λ2 ( x1 + x2 + x3 − 1)
Aplicando as condições necessárias de 1ª ordem, tem-se:
∂
l ( x1 , x2 , x3 , λ1 , λ2 ) = 0
∂x1
∂
l ( x1 , x2 , x3 , λ1 , λ2 ) = 0
∂x2
∂
l (x1 , x2 , x3 , λ1 , λ2 ) = 0
∂x3
∂
l ( x1 , x2 , x3 , λ1 , λ2 ) = 0
∂λ1
∂
l ( x1 , x2 , x3 , λ1 , λ2 ) = 0
∂λ2
Neste caso, tem-se um sistema de equações lineares (5 equações e 5 variáveis):
800 x1 + 200 x2 + 10λ1 + λ2 = 0
1600 x2 + 200 x1 + 400 x3 + 10λ1 + λ2 = 0
3200 x3 + 400 x2 + 15λ1 + λ2 = 0
10 x1 + 10 x2 + 15 x3 − 12 = 0
x1 + x2 + x3 − 1 = 0
cuja solução é:
x1 = 0,5
x2 = 0,1
x3 = 0,4 ( )
com f x = 390
*
λ1 = −180
λ2 = 1380
λ1 e λ2 são os multiplicadores de Lagrange associados a cada uma das restrições do problema. Tais
multiplicadores podem ser utilizados para quantificar a variação que ocorreria na função objetivo caso o
limite da restrição fosse alterado. Por exemplo, para uma variação de +0,1 na primeira restrição, espera-se
uma alteração de 0,1×180=18 no valor ótimo da função objetivo (que passaria de 390 para 408). De fato,
quando se realiza a alteração deste limite, o novo problema de otimização a ser resolvido é
min 400 x12 + 800 x22 + 200 x1 x2 + 1600 x32 + 400 x2 x3 (risco)
s.a. 10 x1 + 10 x2 + 15 x3 = 12,1 (meta de ganho ALTERADA)
x1 + x2 + x3 = 1 (capital investido)
Que origina o seguinte sistema de equações
λ1 = −194
λ2 = 1530
Observa-se que o valor da função objetivo (408,7) é bastante próximo do valor estimado com o uso do
multiplicador de Lagrange (408).
Ainda para este problema, é possível estimar qual o acréscimo de capital é necessário para possibilitar obter
o mesmo lucro de 12, mas com um risco ainda menor, por exemplo, de 385. Neste caso, a variação na função
objetivo seria de –5 e se desejaria determinar a variação no limite da segunda restrição 5/1380≅0,0036. De
fato, quando se realiza a alteração deste limite, o novo problema de otimização a ser resolvido é dado por
min 400 x12 + 800 x22 + 200 x1 x2 + 1600 x32 + 400 x2 x3 (risco)
s.a. 10 x1 + 10 x2 + 15 x3 = 12 (meta de ganho )
x1 + x2 + x3 = 1,0036 (capital investido ALTERADO)
Que origina o seguinte sistema de equações
800 x1 + 200 x2 + 10λ1 + λ2 = 0 800 x1 + 200 x2 + 10λ1 + λ2 = 0
1600 x2 + 200 x1 + 400 x3 + 10λ1 + λ2 = 0 200 x1 + 1600 x2 + 400 x3 + 10λ1 + λ2 = 0
3200 x3 + 400 x2 + 15λ1 + λ2 = 0 400 x2 + 3200 x3 + 15λ1 + λ2 = 0
10 x1 + 10 x2 + 15 x3 − 12 = 0 10 x1 + 10 x2 + 15 x3 = 12
x1 + x2 + x3 − 1,0036 = 0 x1 + x2 + x3 = 1,0036
Cuja solução é
x1 = 0,5061
x2 = 0,1047
x3 = 0,3928 ( )
Com f x ≈ 385,1
*
λ1 = −174,6
λ2 = 1320,2
Observa-se que o valor da função objetivo (385,1) é bastante próximo do valor estimado com o uso do
multiplicador de Lagrange (385).
O valor ótimo dos multiplicadores de Lagrange λ*i têm uma interpretação muito importante pois estes
descrevem o quanto o valor da função objetivo se altera quando o lado direito de uma restrição é modificado.
Em problemas não lineares, os multiplicadores de Lagrange são associados com uma solução particular e
correspondem a custos incrementais ou marginais, ou seja, custos associados a pequenas variações nas
restrições. Em outras palavras, quando o lado direito da restrição i é incrementado de ∆, o valor ótimo da
função objetivo aumenta de aproximadamente − λ*i ∆ .
( ) ( )
∇f x + λ ∇ h x = 0
* T *
Dimensão: [1 × n ] + [1 × m][m × n ] = [1 × n]
L (x ) = F (x ) + λ H (x )
* * T *
(Hessiana do Lagrangeano)
( )
∇f x + λ ∇ h x = 0
* T
( )
*
Dimensão: [1 × n ] + [1 × m][m × n ] = [1 × n]
( ) ( )
suponha também que a matriz L x = F x + λ H x
*
( ) (Hessiana do Lagrangeano) é definida positiva no
* T *
Com relação às dimensões dos vetores e matrizes envolvidos nos cálculos anteriores, considerar o mesmo
exemplo utilizado anteriormente no qual se tem três variáveis (n=3) e duas restrições de igualdade (m=2).
Neste caso, o problema de otimização é dado por:
min f (x )
s.a. h1 ( x ) = 0
h2 ( x ) = 0
x = [x1 x2 x3 ]
∂ 2 f (x ) ∂ 2 f (x ) ∂ 2 f (x ) ∂ 2 h1 ( x ) ∂ 2 h2 ( x ) ∂ 2 h1 ( x ) ∂ 2 h 2 (x ) ∂ 2 h1 ( x ) ∂ 2 h2 ( x )
λ1 + λ2 λ1 + λ2 λ1 + λ2
∂x1
2 ∂x1∂x 2 ∂x1∂x 3 ∂x12 ∂x12 ∂x1∂x 2 ∂x1∂x 2 ∂x1 ∂x 3 ∂x1∂x 3
∂ 2 f (x ) ∂ 2 f (x ) ∂ f (x )
2
∂ 2 h1 ( x ) ∂ 2 h2 ( x ) ∂ 2 h1 ( x ) ∂ 2 h 2 (x ) ∂ h1 ( x )
2
∂ h2 ( x )
2
= + λ1 + λ2 λ1 + λ2 λ1 + λ2
∂x 2 ∂x1 ∂x 22 ∂x 2 ∂x 3 ∂x 2 ∂x1 ∂x 2 ∂x1 ∂x 22 ∂x 22 ∂x 2 ∂x 3 ∂x 2 ∂x 3
∂ 2 f (x ) ∂ f (x )
2
∂ f (x )
2
∂ h1 ( x )
2
∂ h2 ( x )
2
( ) + λ ∂ h 2 (x )
∂ h1 x
2 2
∂ h1 ( x )
2
∂ h2 ( x )
2
λ1 + λ2 λ1 λ1 + λ2
∂x 3 ∂x1 ∂x 3 ∂x 2
2
∂x 32 ∂x 3 ∂x1 ∂x 3 ∂x1 ∂x 3 ∂x 2 ∂x 3 ∂x 2 ∂x 32
∂x 32
∂ 2 h1 (x ) ∂ 2 h1 (x ) ∂ 2 h1 (x ) ∂ 2 h2 ( x ) ∂ 2 h2 ( x ) ∂ 2 h 2 (x )
∂x1
2 ∂x1 ∂x 2 ∂x1 ∂x3 ∂x1
2 ∂x1 ∂x 2 ∂x1 ∂x 3
∂ 2 h (x ) ∂ h1 (x )
2
∂ h1 (x )
2 ∂ h2 ( x )
2
∂ 2 h2 ( x ) ∂ h 2 (x )
2
L(x, λ ) = F (x ) + λ1 1
+ λ2
∂x 2 ∂x1 ∂x 22 ∂x 2 ∂x 3 ∂x 2 ∂x1 ∂x 22 ∂x 2 ∂x3
∂ 2 h (x ) ∂ 2 h1 (x ) ∂ 2 h1 (x ) ∂ 2 h (x ) ∂ h2 ( x )
2
∂ 2 h 2 (x )
1 2
∂x3 ∂x1 ∂x3 ∂x 2 ∂x3
2 ∂x 3 ∂x1 ∂x 3 ∂x 2 ∂x32
= F (x ) + λ1 H 1 (x ) + λ 2 H 2 (x ) = F (x ) + [λ1 λ 2 ]H (x )
L ( x, λ ) = F ( x ) + λ T H ( x ) Dimensões: [n × n] = [n × n] + [n × n ]
∂ 2 l ( x1 , x2 , x3 , λ ) ∂ 2 l (x1 , x2 , x3 , λ ) ∂ 2 l (x1 , x2 , x3 , λ )
∂x12 ∂x1∂x2 ∂x1∂x3
∂ 2 l ( x1 , x2 , x3 , λ ) ∂ l (x1 , x2 , x3 , λ ) ∂ 2 l (x1 , x2 , x3 , λ )
( )
2
L x =
*
∂x2 ∂x1 ∂x22 ∂x2 ∂x3
∂ l ( x1 , x2 , x3 , λ )
2
∂ l (x1 , x2 , x3 , λ )
2
∂ 2 l (x1 , x2 , x3 , λ )
∂x3 ∂x1 ∂x3∂x2
∂x32
0 1 1
( )
L x = 1 0 1
*
1 1 0
1 1 0 y3
= 2( y1 y 2 + y1 y3 + y 2 y3 )
que pode assumir qualquer valor positivo, negativo ou nulo, dependendo dos valores de y1 , y2 e y3 .
{ ( )
A expressão do plano tangente M = y : ∇ h x y = 0 é dada por:
*
}
∂h(x1 , x2 , x3 ) ∂h(x1 , x2 , x3 ) ∂h(x1 , x2 , x3 )
*
( )
∇h x = ∇h( x1 , x2 , x3 ) =
∂x1 ∂x2 ∂x3
= [1 1 1]
y1
( )
∇h x y = 0 ⇒
*
= [1 1 1] y 2 = 0 ⇒ y : y1 + y 2 + y3 = 0
y3
{
M = y : y1 + y 2 + y3 = 0 }
Aplicando as condições de 2ª ordem, tem-se:
0 1 1 y1
T
( )
y L x y = [ y1
*
y2 y3 ]1 0 1 y 2 = y1 ( y 2 + y3 ) + y 2 ( y1 + y3 ) + y3 ( y1 + y 2 )
1 1 0 y3
Portanto, L (x ) é definida negativa no plano tangente e o ponto obtido pela aplicação das condições de 1
* a
Neste caso, observar que o problema de otimização é ilimitado, pois a função objetivo pode assumir valores
negativos infinitamente pequenos. Por exemplo, considerar os seguintes casos particulares:
• Se x1 = x2 = 0 e x3 = 3 ⇒ f (x ) = 0
• Se x1 = −1, x2 = −1 e x3 = 5 ⇒ f (x ) = −9
( )
Definição (Ponto Regular): Seja x* um ponto que satisfaz as restrições h x * = 0 , g x ≤ 0 e seja J o ( )
*
( ( ) )
conjunto dos índices das restrições ativas g j x = 0, j ∈ J . Diz-se que x
* *
é um ponto regular das
restrições se os vetores gradiente ∇h (x ), ∇g (x ), 1 ≤ i ≤ m, j ∈ J são linearmente independentes (LI).
* *
i j
min f (x )
s.a. h(x ) = 0
g (x ) ≤ 0
( )
* T
( )
∇f x + λ ∇ h x + µ ∇ g x = 0
* T
( )
*
µT g (x ) = 0
*
≤0
≥0 ≤0
( ) ( )
Observar que como µ ≥ 0 e g x ≤ 0 , a expressão µ g x = 0 implica em afirmar que o multiplicador µ j
* T *
( )
será diferente de zero somente quando a restrição estiver ativa, ou seja, quando g j x = 0 . Além disto, o
*
fato da soma dos termos µ j g j x ( ) ser nula obriga que cada um dos termos seja nulo pois todos os produtos
*
Com relação às dimensões dos vetores e matrizes envolvidos nos cálculos anteriores, considerar o exemplo
no qual se tem três variáveis (n=3), duas restrições de igualdade (m=2) e uma restrição de desigualdade
(p=1). Neste caso, o problema de otimização é dado por:
min f (x )
s.a. h1 (x ) = 0
h2 (x ) = 0
g (x ) ≤ 0
x = [x1 x2 x3 ]
( )
∇ x l x, λ , µ = ∇ x [ f ( x ) + λ1 h1 ( x ) + λ 2 h2 ( x ) + µg (x )]
∂f (x ) ∂h (x ) ∂h (x ) ∂g (x ) ∂f (x ) ∂h (x ) ∂h (x ) ∂g (x ) ∂f (x ) ∂h (x ) ∂h (x ) ∂g (x )
( )
∇ x l x, λ , µ = + λ1 1 + λ 2 2 +µ + λ1 1 + λ 2 2 +µ + λ1 1 + λ 2 2 +µ =
∂x1 ∂x1 ∂x1 ∂x1 ∂x 2 ∂x 2 ∂x 2 ∂x 2 ∂x3 ∂x3 ∂x3 ∂x 3
( )
∇ x l x, λ , µ = ∇ x f (x ) + λ ∇ x h( x ) + µ ∇ x g (x ) Dimensões: [1 × n] = [1 × n] + [1 × m ][m × n] + [1 × p ][ p × n]
T T
Observar que a expressão em destaque corresponde ao termo igualado á zero nas condições de Karush-Kuhn-
Tucker.
3 x1 + x2 ≤ 6
Cuja forma padrão é
min 2 x12 + 2 x1 x2 + x22 − 10 x1 − 10 x2
s.a. x1 + x2 − 5 ≤ 0
2 2
3 x1 + x2 − 6 ≤ 0
Aplicando-se as condições necessárias de 1a ordem
( ) ( ) ( )
Sem restrições de igualdade
∇f x + λ ∇ h x + µ ∇ g x = 0 ∇f ( x ) + µ ∇ g ( x ) = 0
* T * T * T
⇒
µT g (x ) = 0
*
µ≥0
∇ x g1 (x ) ∇ x2 g1 ( x )
∇f ( x ) + µ ∇ g ( x ) = 0
T
⇒ [∇ ]
f (x ) ∇ x2 f (x ) + [µ1 µ 2 ] 1 = [0 0]
∇ x1 g 2 ( x ) ∇ x2 g 2 (x )
x1
∇ x1 f ( x ) + µ1∇ x1 g1 (x ) + µ 2 ∇ x1 g 2 (x ) = 0 ⇒ 4 x1 + 2 x2 − 10 + 2 µ1 x1 + 3µ 2 = 0
∇ x 2 f ( x ) + µ1∇ x 2 g1 (x ) + µ 2∇ x 2 g 2 (x ) = 0 ⇒ 2 x1 + 2 x2 − 10 + 2 µ1 x2 + µ 2 = 0
µ T g (x ) = 0 [µ1
x12 + x22 − 5
µ 2 ]
( )
µ1 x12 + x22 − 5 = 0
⇒ =0 ⇒
3 x1 + x2 − 6 µ 2 (3 x1 + x2 − 6 ) = 0
Para obter-se a solução, é necessário definir as várias combinações de restrições ativas e testar o sinal dos
multiplicadores de Lagrange µ . Neste problema pode-se tentar fazer nenhuma, uma ou ambas restrições
ativas (4 possibilidades). Considerando ambas restrições relaxadas (inativas), tem-se µ1 = µ 2 = 0 , o que
implica nas seguintes equações
4 x1 + 2 x2 − 10 = 0
2 x1 + 2 x2 − 10 = 0
Cuja solução é
x1 = 0
x2 = 5
Isto implica em x12 + x22 − 5 = 0 2 + 5 2 − 5 = 20 ≤/ 0 , logo a primeira restrição NÃO está sendo respeitada,
como suposto inicialmente ( µ1 = 0 ). Assim, conclui-se que esta solução NÃO satisfaz as condições
necessárias de 1a ordem.
Por outro lado, considerando a primeira restrição ativa e a segunda inativa, tem-se µ1 > 0 e µ 2 = 0 ,
conduzindo às seguintes equações
4 x1 + 2 x2 − 10 + 2 µ1 x1 = 0
2 x1 + 2 x2 − 10 + 2 µ1 x2 = 0
x12 + x22 − 5 = 0
Cuja solução é
x1 = 1
x2 = 2
µ1 = 1
Isto implica em 3x1 + x2 − 6 = 3 × 1 + 2 − 6 = −1 < 0 , logo a segunda restrição está atendida com folga, como
suposto inicialmente. Assim, como µ1 = 1 > 0 , conclui-se que esta solução satisfaz as condições necessárias
de 1a ordem.
A análise do gráfico das curvas de nível da função objetivo e das restrições do problema, mostrado na Figura
III.2, indica que o ponto x1 = 1 e x2 = 2 corresponde ao mínimo da função pois encontra-se entre o limite da
restrição (circunferência vermelha) que tangencia uma das curvas de nível da função, estando a outra
restrição (reta verde) relaxada nesta condição. Observar que, neste caso, a visualização é possível; em
espaços com dimensões maiores não. Assim, a definição de um método analítico para comprovar a
otimalidade (condições suficientes) é indispensável, sendo desenvolvida a seguir.
1
x2
-1
-2
-3
-4
-5
-5 -4 -3 -2 -1 0 1 2 3 4 5
x1
Figura III.2 – Curvas de nível da função objetivo e restrições do Exemplo III.4.
Sejam f , g , h ∈ C 2 . As condições suficientes para que um ponto regular x* seja um mínimo estrito para o
problema
min f (x )
s.a. h(x ) = 0
g (x ) ≤ 0
µ≥0
( )
µ T g x* = 0
e a matriz Hessiana
( ) ( )
L x = F x +λ H x +µ G x
* * T
( ) * T
( )
*
Dimensões: [n × n] = [n × n] + [n × n] + [n × n]
Com relação às dimensões dos vetores e matrizes envolvidos nos cálculos anteriores, considerar o mesmo
exemplo utilizado anteriormente no qual se tem três variáveis (n=3), duas restrições de igualdade (m=2) e
uma restrição de desigualdade (p=1). Neste caso, o problema de otimização é dado por:
min f (x )
s.a. h1 (x ) = 0
h2 (x ) = 0
g (x ) ≤ 0
x = [x1 x2 x3 ]
∂ f (x ) ∂ h1 (x )
2
∂ h2 (x )
2
∂ 2 g (x ) ∂ 2 f (x ) ∂ 2 h1 ( x ) ∂ 2h2 ( x ) ∂ 2 g (x ) ∂ f (x )
2
∂ h1 ( x )
2
∂ h2 ( x )
2
∂ g (x )
2
∂x ∂x + λ + λ + µ + λ1 + λ2 +µ + λ1 + λ2 +µ
∂x3∂x1 ∂x3∂x1 ∂x3∂x1 ∂x3∂x2 ∂x3∂x2 ∂x3∂x2 ∂x3∂x2 ∂x32 ∂x32 ∂x32 ∂x32
1 2
3 1
∂ 2 f (x ) ∂ 2 f (x ) ∂ 2 f ( x ) ∂ 2 h1 ( x ) ∂ 2h2 ( x ) ∂ 2 h1 (x ) ∂ 2 h2 (x ) ∂ 2h1 ( x ) ∂ 2 h2 ( x ) ∂ 2 g ( x ) ∂ 2 g (x ) ∂ 2 g (x )
λ1 + λ2 λ1 + λ2 λ1 + λ2 µ µ µ
∂x1
2
∂x1∂x2 ∂x1∂x3 ∂x12 ∂x12 ∂x1∂x2 ∂x1∂x2 ∂x1∂x3 ∂x1∂x3 ∂x12 ∂x1∂x2 ∂x1∂x3
∂ 2 f (x ) ∂ 2 f (x ) ∂ 2 f ( x ) ∂ 2 h1 ( x ) ∂ 2h2 ( x ) ∂ 2 h1 (x ) ∂ 2 h2 (x ) ∂ h1 ( x )
2
∂ h2 ( x ) ∂ 2 g ( x )
2
∂ 2 g (x ) ∂ g (x )
2
= + λ1 + λ2 λ1 + λ2 λ1 + λ2 + µ µ µ
∂2x2∂x1 ∂x22 ∂x2∂x3 ∂x2∂x1 ∂x2∂x1 ∂x22 ∂x22 ∂x2∂x3 ∂x2∂x3 ∂x2∂x1 ∂x22 ∂x2∂x3
∂ f (x ) ∂ 2 f (x ) ∂ f ( x ) ∂ h1 ( x )
2 2
∂ 2h2 ( x ) ∂ h1 (x )
2
∂ 2 h2 (x ) ∂ h (x )
2
∂ h2 ( x ) ∂ 2 g ( x )
2
∂ 2 g (x ) ∂ 2 g (x )
∂x ∂x λ + λ λ1 + λ2 λ1 1 2 + λ2 µ µ µ
∂x3∂x2 ∂x32 ∂x3∂x1 ∂x3∂x1 ∂x3∂x2 ∂x3∂x2 ∂x3 ∂x32 ∂x3∂x1 ∂x3∂x2 ∂x32
1 2
3 1
∂ 2 h1 (x ) ∂ 2 h1 ( x ) ∂ 2 h1 ( x ) ∂ 2 h2 (x ) ∂ 2 h2 (x ) ∂ 2 h2 ( x ) ∂ 2 g (x ) ∂ 2 g (x ) ∂ 2 g (x )
∂x1
2
∂x1∂x 2 ∂x1 ∂x 3 ∂x1
2
∂x1∂x 2 ∂x1∂x 3 ∂x1
2
∂x1 ∂x 2 ∂x1 ∂x 3
∂ 2 h1 (x ) ∂ h1 ( x ) ∂ h1 ( x ) ∂ h2 (x ) ∂ 2 h2 (x ) ∂ h2 ( x ) ∂ g (x ) ∂ 2 g (x ) ∂ 2 g (x )
( )
2 2 2 2 2
L x, λ , µ = F (x ) + λ1 + λ2 + µ
∂x 2 ∂x1 ∂x 2 ∂x 2 ∂x 3 ∂x 2 ∂x1 ∂x 22 ∂x 2 ∂x 3 ∂x 2 ∂x1 ∂x 22 ∂x 2 ∂x 3
2
∂ h1 (x )
2
∂ h1 ( x )
2
∂ h1 ( x )
2 ∂ h2 (x )
2
∂ h2 (x )
2
∂ 2 h2 ( x ) ∂ 2 g (x ) ∂ g (x )
2
∂ 2 g (x )
∂ ∂ ∂ ∂ ∂x 3 ∂ ∂ ∂x 3 ∂x 2 ∂x 32 ∂x 3 ∂x1 ∂x 3 ∂x 2 ∂x 32
2
3 1
x x x 3 x 2 3 1
x x
= F (x ) + λ1 H 1 ( x ) + λ 2 H 2 (x ) + µG ( x ) = F ( x ) + [λ1 λ 2 ]H ( x ) + [µ ]G (x )
( )
L x, λ , µ = F ( x ) + λ H ( x ) + µ G ( x )
T T
Dimensões: [n × n] = [n × n] + [n × n] + [n × n]
3x1 + x2 ≤ 6
Cuja forma padrão é
3x1 + x2 − 6 ≤ 0
No Exemplo III.4 foram aplicadas as condições necessárias de 1a ordem, obtendo-se o seguinte resultado:
x1 = 1
x2 = 2
µ1 = 1
Tem-se que
( )
l (x1 , x2 , µ1 , µ 2 ) = 2 x12 + 2 x1 x2 + x22 − 10 x1 − 10 x2 + µ1 x12 + x22 − 5 + µ 2 (3x1 + x2 − 6 )
∂ 2 l (x1 , x2 , µ1 , µ 2 ) ∂ 2l (x1 , x2 , µ1 , µ 2 )
( )
Lx = 2
* ∂x12 ∂x1∂x2
∂ l (x1 , x2 , µ1 , µ 2 ) ∂ 2l (x1 , x2 , µ1 , µ 2 )
∂x2 ∂x1
∂x22
( )
4 + 2 µ1
Lx =
* 2 6 2
=
2 + 2 µ1 2 4
2
( )
y Lx y =
T *
[ y1 6 2 y1
y 2 ] =
2 4 y 2
= 6 y12 + 4 y 22 + 4 y1 y 2
Pela análise do polinômio não fica claro que a matriz seja positiva ou negativa definida. Entretanto, como
ambos os autovalores da matriz são positivos, a mesma é definida positiva.
{ ( ) ( )
A expressão do plano tangente M ′ = y : ∇ h x y = 0, ∇g j x y = 0, para todo j ∈ J é dada por:
* *
}
∇g j x( ) = ∇g ( x , x ) =
*
1 1 2
∂g (x , x ) ∂g1 ( x1 , x2 )
= 1 1 2 = [2 x1 2 x2 ] =
∂x1 ∂x2
= [2 4]
( )
∇g j x y = 0
*
⇒ [2 4]
y1
=0 ⇒ y : 2 y1 + 4 y2 = 0 ⇒ y : y1 + 2 y2 = 0
y2
− y1
M = y : y1 + 2 y 2 = 0 ⇒ y2 =
2
( )*
Portanto, L x é definida positiva no plano tangente às restrições ativas e o ponto obtido pela aplicação das
condições de 1a ordem é um mínimo local.
( ) ( ) ( )
Sem restrições de igualdade
∇f x + λ ∇ h x + µ ∇ g x = 0 ∇f (x ) + µ ∇ g (x ) = 0
* T * T * T
⇒
µT g (x ) = 0
*
µ≥0
∇f (x ) + µ ∇ g ( x ) = 0
T
⇒ [∇ x f (x )] + [µ ][∇ x g (x )] = [0]
∇ x f ( x ) + µ∇ x g ( x ) = 0 ⇒ − 3x 2 + 3 + µ = 0
x≤2
µ T g (x ) = 0 ⇒ [µ ][g (x )] = 0 ⇒ µ (x − 2) = 0
µ ≥0
Se µ = 0 ⇒ − 3x 2 + 3 + 0 = 0 ⇒ x2 = 1 ⇒ x = ±1 (ambos viáveis, x ≤ 2 )
f (− 1) = −(− 1) + 3(− 1) = −2
3
15
10
5
Derivada nula
f(x)
-10
-15
-20
-3 -2 -1 0 1 2 3
x
Figura III.3 – Função objetivo e restrição do Exemplo III.6.
( )
L x = [− 6 x ]
*
L(x = −1, µ = 0 ) = [− 6(− 1)] = [6]
L(x = 1, µ = 0 ) = [− 6(1)] = [− 6]
= L11 y 2
x = −1, µ = 0
T
( )
y L x y = [ y ][6][ y ] = 6 y 2
*
(Definida positiva)
Desta forma, o ponto x = −1 é um mínimo local e o ponto x = 1 é um máximo local. A análise do ponto
x = 2 , requer a determinação do plano tangente às restrições ativas:
{ ( ) ( )
M ′ = y : ∇ h x y = 0, ∇g j x y = 0, para todo j ∈ J é dada por:
* *
}
∇g j x ( ) = ∇g (x ) =
*
∂g ( x )
= = [1]
∂x
( )
∇g j x y = 0
*
⇒ [1][ y ] = 0 ⇒ y: y =0
{
M = y: y =0 }
Aplicando as condições de 2ª ordem, tem-se:
T
( )
y L x y = − 12 y 2
*
= − 12 × 0 2 = 0
( ) *
Portanto, L x é semi-definida positiva no plano tangente às restrições ativas e o ponto obtido pela
aplicação das condições de 1a ordem é um mínimo local.
Exercício III.1: Utilizando as condições de 1a e 2a ordem, determinar a solução dos seguintes problemas de
otimização:
max x1 x2 + x2 x3 + x1 x3
s.a. x + x + x ≤ 3 min (x1 − 2 )2 + 2(x2 − 1)2
1 2 3
s.a. x1 + 4 x2 ≤ 3
x1 ≥ 0 x1 ≥ x2
x2 ≥ 1,2
Neste método a direção de descida corresponde à direção oposta ao gradiente que é projetado para o interior
da região viável por intermédio de uma matriz de projeção P . Seja o seguinte problema de otimização com
restrições lineares
min f (x )
s.a. ai x ≤ b i i ∈ I1
T
2. Determinar o conjunto das restrições ativas e formar a matriz Aq (linhas das restrições ativas) e
W (x k ) (conjunto das restrições ativas).
3. Calcular (
Pk = I − AqT Aq AqT )
−1
Aq Matriz de projeção do gradiente
d k = − Pk ∇f (x k )
T
4. Se d k ≠ 0 , calcular
α1 = max{α : x k + α d k é factível}
α 2 = arg{min f (x k + α d k ), 0 ≤ α ≤ α1}
fazer x k +1 = x k + α 2 d k , k = k + 1 e retornar para o Passo 2.
5. (
Se d k = 0 , calcular λ = − Aq AqT )
−1
Aq ∇f ( x k )
T
determinar a direção do gradiente projetado. No formato padrão, a matriz dos coeficientes deste problema
corresponde a
As restrições ativas são as duas restrições de igualdade e a desigualdade x4 ≥ 0 . Assim W ( x 0 ) = {1, 2,6}
2 1 1 4
Aq = 1 1 2 1
0 0 0 −1
2 1 0
2 1 1 4 22 9 −4
1 1 0
Portanto Aq AqT = 1 1 2 1 ⋅ = 9 7 −1
1 2 0
0 0 0 −1 −4 −1 1
4 1 −1
Finalmente
AT
( Aq
AqT )
I q −1
Aq
1 0 0 0 2 1 0
0 1 0 0 1 1 0 6 − 5 19 2 1 1 4
( )
−1 1
P0 = I − AqT T
Aq Aq Aq = − ⋅ −5 6 −14 ⋅ 1 1 2 1
0 0 1 0 1 2 0 11
19 −14 73 0 0 0 −1
0 0 0 1 4 1 −1
1 −3 1 0
0
1 −3 9 −3
P0 =
11 1 −3 1 0
0 0 0 0
∇f (x ) = [2 x1 − 2 2 x2 2 x3 2 x4 − 3]
∇f ( x 0 ) = [ 2 4 2 −3]
1
− 3
d0 =
1
0
Observar que o movimento nesta direção não viola as restrições, para um α = 0,1 , tem-se:
2 1 2,1 0
2 −3 1,7 0
x1 = x 0 + α d 0 = + 0,1 = ≥
1 1 1,1 0
0 0 0 0
g1 ( x1 ) = 2 x1 + x2 + x3 + 4 x4 = 2 × 2,1 + 1,7 + 1,1 + 4 × 0 = 7
g 2 ( x1 ) = x1 + x2 + 2 x3 + x4 = 2,1 + 1,7 + 2 × 1,1 = 6
Observar, também, que o valor da função objetivo é menor que o do ponto anterior:
f ( x1 ) = 2,12 + 1,7 2 + 1,12 + 02 − 2 × 2,1 − 3 × 0 = 4,31
A determinação do tamanho do passo para minimizar a função nesta direção envolve uma busca
unidimensional com o seguinte limite
α1 = max {α : x 0 + α d 0 é factível}
2
sendo α1 limitado pelo limite da variável x2 : α1 = ≈ 0,67
3
O valor do passo α 2 na direção de d 0 é determinado resolvendo a seguinte busca unidimensional
onde
2 1 2 +α
2 −3 2 − 3α
x0 + α d 0 = +α = α1 ≈ 0,6667 ⇒ 0 ≤ α ≤ 0,6667
1 1 1+α
0 0 0
Substituindo a expressão de x 0 + α d 0 na função objetivo tem-se,
f ( x 0 + α d 0 ) = ( 2 + α ) + ( 2 − 3α ) + (1 + α ) − 2 ( 2 + α ) = 11α 2 − 8α + 5
2 2 2
2 1 2,3636 0
2 −3 0,9091 0
x1 = x 0 + α 2 d 0 = + 0,3636 = ≥
1 1 1,3636 0
0 0 0 0
Observar, também, que o valor da função objetivo é menor que os obtidos anteriormente:
f ( x1 ) = 2,36362 + 0,90912 + 1,36362 + 02 − 2 × 2,3636 − 3 × 0 ≈ 3,5455
O processo de otimização segue para o Passo 2 do algoritmo, no qual não são observadas variações nas
restrições ativas do problema. Assim, o conjunto das restrições ativas é mantido, juntamente com a matriz de
projeção:
1 −3 1 0
0
1 −3 9 −3
W ( x1 ) = W ( x 0 ) = {1, 2,6} P1 = P0 =
11 1 −3 1 0
0 0 0 0
( A A )
−1 1
T
q q A q
2,7273
6 −5 19 2 1 1 4 −0,9091
1,8182
( )
−1 1
λ = − Aq AqT Aq ∇f ( x1 ) = −0,9091
T
= − −5 6 −14 ⋅ 1 1 2 1 ⋅
11 2,7273
19 −14 73 0 0 0 −1 −7,5455
−3
Observa-se que existe um elemento negativo correspondente a uma restrição de desigualdade relacionada
com x4 ( x4 ≥ 0 ), indicando que a mesma pode ser relaxada. Após remover esta restrição do conjunto das
ativas, tem-se W ( x1 ) = {1, 2} e
2 1
1 22 9
2 1 1 4 1
Aq AqT = ⋅ =
1 1 2 1 1 2 9 7
4 1
(A A )
q
T −1
q =
1 7 − 9
73 − 9 22
Finalmente
I q AT
( Aq AqT )
−1
1 0 0 0 2 1
Aq
0 1 0 0 1 1 −
4
( )
−1 1 7 9 2 1 1
P1 = I − AqT Aq AqT Aq = − ⋅ ⋅
0 0 1 0 1 2 73 −9 22 1 1 2 1
0 0 0 1 4 1
59 −9 −13 −24
1 −9 62 −24 −5
P1 =
73 −13 −24 14 9
−24 −5 9 11
A nova direção do gradiente projetado (considerando ativas apenas as duas restrições de igualdade) é:
P1 ( 1) ∇f x
T
59 −9 −13 −24 2,7273 −2, 4807
1 −9 62 −24 −5 1,8182 −0,5168
d 1 = − P1∇f ( x1 ) =−
T
⋅ =
73 −13 −24 14 9 2,7273 0,9303
−24 −5 9 11 −3 1,1370
Novamente, a determinação do tamanho do passo para minimizar a função nesta direção envolve uma busca
unidimensional com o seguinte limite
α1 = max {α : x1 + α d 1 é factível}
2,3636
sendo α1 limitado pelo limite da variável x1 : α1 = ≈ 0,9528
2, 4807
O valor do passo α 2 na direção de d 1 é determinado resolvendo a seguinte busca unidimensional
onde
2,3636 −2, 4807 2,3636 − 2, 4807α
0,9091
x1 + α d 1 = + α −0,5168 = 0,9091 − 0,5168α
1,3636 0,9303 1,3636 + 0,9303α
0 1,1370 1,1370
2,3636
α1 = ≈ 0,9528 ⇒ 0 ≤ α ≤ 0,9528
2, 4807
Substituindo a expressão de x1 + α d 1 na função objetivo tem-se,
O processo de otimização segue para o Passo 2 do algoritmo, no qual não são observadas variações nas
restrições ativas do problema. Assim, o conjunto das restrições ativas é mantido, juntamente com a matriz de
projeção:
59 −9 −13 −24
1 −9 62 −24 −5
W ( x 2 ) = W ( x1 ) = {1,2} P2 = P1 =
73 −13 −24 14 9
−24 −5 9 11
A
A Aq
0, 2466
1 7 −9 2 1 1 4 1,3014 −1,0548
( )
−1
λ = − Aq AqT Aq ∇f ( x 2 )
T
=− ⋅
⋅ =
73 −9 22 1 1 2 1 3,6575 2,3562
−1,8630
A solução deste problema de otimização pode ser obtida utilizando a descrição GAMS, mostrada na Figura
III.4.
Caso a restrição de desigualdade na variável x4 ( x4 ≥ 0 ) não tivesse sido incluída na matriz Aq, no início do
processo (ou seja, a partir de x 0 = [ 2 2 1 0] ), a determinação do gradiente projetado seguiria os
T
seguintes passos:
2 1 1 4
Aq =
1 1 2 1
2 1
1 22 9
2 1 1 4 1
Portanto Aq Aq =
T
⋅ =
1 1 2 1 1 2 9 7
4 1
(A A )
q
T −1
q =
1 7 − 9
73 − 9 22
Finalmente
I q AT
( Aq AqT )
−1
1 0 0 0 2 1
Aq
0 1 0 0 1 1 −
4
( )
−1 1 7 9 2 1 1
P0 = I − AqT Aq AqT Aq = − ⋅ ⋅
0 0 1 0 1 2 73 −9 22 1 1 2 1
0 0 0 1 4 1
59 −9 −13 −24
1 −9 62 −24 −5
P0 =
73 −13 −24 14 9
−24 −5 9 11
∇f (x ) = [2 x1 − 2 2 x2 2 x3 2 x4 − 3]
∇f ( x 0 ) = [ 2 4 2 −3]
f ( x0 )
T
P0
∇
59 −9 −13 −24 2 128
−9 62 −24 −5 4
d 0 = − P0∇f ( x 0 )
T 1
=− ⋅ = 1 197
73 −13 −24 14 9 2 73 −121
−24 −5 9 11 −3 −83
Multiplicando-se d k por 73, tem-se
128
197
d0 =
−121
−83
Observar que o movimento nesta direção violará a restrição de desigualdade negligenciada, pois x4 = 0 e o
respectivo componente na direção de descida d 0 é negativo (–83).
que envolve restrições não-lineares. O procedimento de solução através do método do gradiente projetado
torna-se significativamente mais complexo e requer uma série de interpolações e soluções de equações não-
lineares. Uma dificuldade está ilustrada na Figura III.4 a seguir.
− ∇f ( x k ) y
T
′
y
Gradiente projetado
xk x k +1
Superfície das restrições
(
Pk = I − ∇ h(x k ) ∇ h(x k )∇ h( x k )
T T −1
) ∇ h( x k )
que deve ser integralmente recalculada em cada passo.
Neste método as variáveis do problema são divididas em dois grupos: básicas e não-básicas (como na
programação linear). Do ponto de vista teórico, o método comporta-se de modo bastante similar ao gradiente
projetado. Seja o seguinte problema de otimização com restrições lineares
min f (x )
s.a. Ax = b
x≥0
Particionando-se a matriz A = A I [ ]
A J levando em conta as colunas relativas as variáveis básicas x e
I
min f (x I , x J )
s.a. AI x I + A J x J = b (I , J ) tal que ∃ AI ( ) -1
xI ≥ 0 xJ ≥ 0
Deste modo
( )
x I = h( x J ) = A I
−1
( )
b − AI
−1
AJ x J
A idéia por detrás do método do gradiente reduzido é encontrar a partição (I , J ) e olhar o problema original
J
restrito como um problema irrestrito onde aparecem apenas as variáveis independentes x juntamente com
as restrições de canalização, isto é
min f (x J )
⌢
s.a. x I ≥ 0 (I , J ) tal que ∃ A I -1 ( )
( ) ( )
x I = h(x J ) = A I b − A I A J x J ≥ 0
−1 −1
(x)
π
∂ h( x J )
∇f (x J ) = ∇f (h(x J ), x J ) = ∇ J f ( x ) + ∇ I f ( x )
⌢ ⌢
∂xJ
( )
= ∇ J f ( x ) − ∇ I f (x ) A I −1 J
A
1. Fazer k = 0 , obter um x 0 factível (se necessário fazer uma Fase I) e determinar uma partição (I , J )
inicial.
2. Calcular o gradiente da função f : ∇f ( x k ) .
∇f (x J ) = ∇ J f ( x ) − π (x ) A J
⌢
( )
π ( x ) = ∇ I f (x ) AI
−1
ou seja, calcula-se
( )
∂f (x )
⌢
∂f x j
ρj = = − π (x )A j , ∀j ∈ J
∂x j ∂x j
− ρ j se x j > 0 ou se x j = 0 e ρ j < 0
4. Fazer, ∀j ∈ J , ∆x j =
0 se x j = 0 e ρ j ≥ 0
∆ x I = − AI ( ) −1
AJ ∆ x J
7. Calcular ∆ x k = [∆ x I ∆xJ ]
α1 = max{α : x I + α∆ x I ≥ 0 (é factível )}
α 2 = max{α : x J + α∆ x J ≥ 0 (é factível )}
α L = min{α1 , α 2 }
α 3 = arg{min f ( x k + α∆ x k ), 0 ≤ α ≤ α L }
fazer x k +1 = x k + α 3 ∆ x k , k = k + 1 .
∇ I f ( x ) = [2 x1 − 2 2 x2 ] ∇ I f (x k ) = [2 4]
∇ J f (x ) = [2 x3 2 x4 − 3] ∇ J f (x k ) = [2 − 3]
1 − 1
2 1
AI = (A )
I −1
=
1 1 − 1 2
1 4
AJ =
2 1
( ) = [2 4] ⋅ −11
π (x ) = ∇ I f (x ) A I
−1 − 1
2
= [− 2 6]
e o gradiente reduzido é dado por
1 4
∇f (x J ) = ∇ J f (x ) − π ( x )A J = [2 − 3] − [− 2 6] ⋅ = [− 8 − 1]
⌢
2 1
ρ 3 = −8 ρ 4 = −1
Como x3 > 0 ⇒ ∆x 3 = − ρ 3 = 8
x4 > 0 ⇒ ∆x 4 = − ρ 4 = 1
Ou seja, x3 e x4 devem ser aumentados na proporção de 8 para 1. Quando uma variação nesta proporção é
realizada, as variáveis básicas variam da seguinte forma:
( )
∆ x I = − AI
−1 1 − 1 1 4 8 5
AJ ∆ x J = − ⋅ ⋅ =
− 1 2 2 1 1 − 22
Assim, a direção de descida que respeita a manutenção das restrições é tal que
∆ x k = [5 − 22 8 1]
Os limites da busca podem, então, ser determinados
α1 = max{α : x I + α∆ x I ≥ 0 (é factível )}
2 + α 5 ≥ 0 ⇒ ∀α
α1 = max α : 2 + α (− 22) ≥ 0 ⇒ α ≤ 2 ≈ 0,091 ≈ 0,091
22
α 2 = max{α : x J + α∆ x J ≥ 0 (é factível )}
1 + α 8 ≥ 0 ⇒ ∀α
α 2 = max α : → ∞
0 + α1 ≥ 0 ⇒ ∀α
α L = min{α1 , α 2 } = min{0,091; ∞} = 0,091
Para um passo α = 0,01 , tem-se:
x k +1 = x k + α∆ x k = [2 2 1 0] + 0,01[5 − 22 8 1] = [2,05 1,78 1,08 0,01]
f ( x k + α∆ x k ) = 574α 2 − 65α + 5
cujo valor de mínimo ocorre quando
65
1148α − 65 = 0 ⇒ α = ≈ 0,056
1148
f ( x k + α∆ x k ) ≈ 3,16
Estes métodos incorporam as restrições na função objetivo e permitem lidar com as restrições (inclusive não-
lineares) da forma mais simples, ou seja, operando como na otimização irrestrita.
Nos métodos de penalidades o problema de otimização da forma
min f (x )
s.a. h(x ) = 0
é resolvido por qualquer método de otimização irrestrita aplicado a um problema penalizado associado, dado
por
m
min f (x ) + µ ∑ [h (x)]
i =1
i
2
onde µ > 0 é o parâmetro de penalidade (quanto maior, maior a penalização do não atendimento das
restrições).
A consideração das restrições de desigualdade pode ser facilmente realizada por intermédio da seguinte
função de penalidade
min f ( x )
∑ [hi (x )]2 + µ ≤ ∑ [max(0, g j (x ))]2
p
m
s.a. h( x ) = 0 ⇒ min f (x ) + µ =
g (x ) ≤ 0 i =1 j =1
Observar que as restrições são consideradas apenas na função objetivo e, ao longo do processo de
otimização, podem ser visitados pontos infactíveis.
Os métodos de barreira são similares aos de penalização e se aplicam a problemas da forma
min f (x )
s.a.
g (x ) ≤ 0
A diferença fundamental é que os métodos de barreira impedem que o processo da busca abandone a região
viável do problema. A função de barreira é contínua, positiva e deve tender a infinito quando x se aproxima
de qualquer fronteira da região viável. Deste modo, o método de barreira realiza sua busca apenas no interior
da região viável sendo denominado um método de pontos interiores.
Exemplos de problemas irrestritos oriundos da inclusão de funções de barreira são os seguintes
m m
f (x ) − µ f (x ) − µ ∑ ln[− g (x )]
1
min ∑ g (x )
i =1 i
e min
i =1
i
IV Programação Linear
IV.1 Introdução
Um problema de programação linear (PL) é um caso particular de problema de otimização no qual a função
objetivo e as restrições são lineares, sendo o problema geral dado por:
min f ( x )
s.a. h(x ) = 0
Restrições de igualdade
(IV.1)
g (x ) ≤ 0 Restrições de desigualdade
x∈Ω
min f (x ) = c ⋅ x
T
s.a. Ax ≤ b
x≥0
x ⇒ nij
Tais variáveis originalmente deveriam ser representadas por números inteiros. Para permitir a representação
do problema através de um PL, permite-se que sejam realizados investimentos fracionários.
A função objetivo corresponde à minimização do custo de ampliação do sistema:
c ⋅x
T
⇒ v= ∑
( )
i, j
c nij ij
sendo cij o custo de uma linha no corredor i − j . Freqüentemente, são incorporados geradores fictícios r em
todas as barras de carga do sistema para representar o custo α de cortar carga
c ⋅x
T
⇒ v= ∑
( )
i, j
c nij ij +α ∑r
k
k
onde S é a matriz incidência ramo-nó, f é o vetor dos fluxos de potência f ij nos ramos, g é o vetor
das injeções de potência g k dos geradores, r é o vetor das injeções de potência os geradores fictícios
e d é o vetor das demandas.
• Limite de capacidade de transmissão das linhas e transformadores
( )
f ij ≤ nij0 + nij f ij
O método simplex é mais tradicional método de solução de PL´s. A idéia do método simplex é transitar de
uma solução básica factível (um ponto extremo) do conjunto de restrições para outro, de modo que o valor da
função objetivo seja continuamente melhorado até a obtenção do ótimo. Na sua forma padrão, as
desigualdades são transformadas em igualdades através da introdução de variáveis de folga e o problema
assume a seguinte forma
min c T ⋅ x
s.a. A x = b
x≥0
Definição (solução básica; variável básica): Dado um conjunto de m equações lineares simultâneas
em n variáveis e seja B uma submatriz m × m não singular contendo algumas colunas de A, então se os
n − m componentes de x não associados com as colunas de B são nulos, a solução do conjunto de equações
resultantes é denominada solução básica de A x = b com relação à base B. Os componentes de x associados
com as colunas de B são denominados variáveis básicas e notados por x B , ou seja, x = ( x B , 0 ) .
Assim, a tarefa de resolver um PL consiste em realizar uma busca entre as soluções básicas factíveis. Como
o problema tem n variáveis e m restrições existem
n n!
=
m m! (n − m )!
soluções básicas (correspondendo às combinações possíveis de selecionar m colunas em um total de n
possibilidades), ou seja, um número finito de possibilidades. Obviamente, realizar uma busca completa é
terrivelmente ineficiente e o método simplex só percorre uma parcela das soluções básicas factíveis.
Outro método bastante difundido na atualidade é o método dos pontos interiores. Neste caso, como o nome
diz, o algoritmo percorre pontos internos ao espaço de soluções evitando soluções extremas. Qualquer que
seja o método empregado é necessário obter uma solução inicial factível e tal processo é denominado Fase I.
IV.3 Dualidade
A cada problema (primal) corresponde um outro (dual) formado a partir dos mesmos coeficientes de custo e
das restrições de modo que um problema é de minimização e outro de maximização e os valores ótimos, se
existem, são iguais. Por outro lado, se um dos problemas tem uma função objetivo ilimitada, o outro será
infactível.
Considerando o problema primal escrito na forma padrão, têm-se os seguintes pares duais:
Primal Dual
min f (x ) = c ⋅ x max φ (λ ) = λ T ⋅ b
T
Ax ≥ b s.a. λ A ≤ c
T T
s.a.
x≥0 λ ≥0
max f (x ) = c ⋅ x min φ (λ ) = λ T ⋅ b
T
Ax ≤ b s.a. λ A ≥ c
T T
s.a.
x≥0 λ ≥0
free variable
lucro lucro do produtor;
parameters
r1 quantidade do recurso 1 /42/
r2 quantidade do recurso 2 /24/;
LOWER LEVEL UPPER MARGINAL
positive variable ---- EQU obj . . . -1.000
x1 produto 1 ---- EQU rest1 -INF 36.000 42.000 .
x2 produto 2 ---- EQU rest2 -INF 24.000 24.000 12.500
x3 produto 3
x4 produto 4 obj max lucro
x5 produto 5; rest1 restricao do recuso 1
rest2 restricao do recuso 2
equations LOWER LEVEL UPPER MARGINAL
obj max lucro
rest1 restricao do recuso 1 ---- VAR lucro -INF 300.000 +INF .
rest2 restricao do recuso 2; ---- VAR x1 . 12.000 +INF .
---- VAR x2 . . +INF -2.500
obj.. ---- VAR x3 . . +INF EPS
---- VAR x4 . . +INF -4.500
25*x1+35*x2+50*x3+33*x4+36*x5 =e= lucro; ---- VAR x5 . . +INF -1.500
rest1..
3*x1+4*x2+5*x3+3*x4+6*x5 =l=r1;
rest2..
2*x1+3*x2+4*x3+3*x4+3*x5 =l=r2;
Por outro lado, o açambarcador se propõe comprar a matéria prima da fábrica, interrompendo sua produção.
O problema do açambarcador é determinar os valores mínimos de compra λ j , j = 1,2 de modo que seja
“interessante” para a fábrica.
Seria vantajoso para o produtor se os preços de venda das matérias primas λ j , j = 1,2 para o açambarcador
fossem tais que
O desembolso que o açambarcador gostaria de minimizar depende do montante dos insumos, ou seja,
42λ1 + 24λ2
Assim, o problema dual PD é dado por
free variable
custo desembolso do acambarcador;
parameters
c1 lucro produto 1 /25/
c2 lucro produto 2 /35/
c3 lucro produto 3 /50/
c4 lucro produto 4 /33/
c5 lucro produto 5 /36/; LOWER LEVEL UPPER MARGINAL
Observar que o vetor dos limites do problema primal (PP), b = [42 24] , passa a ser o vetor dos custos do
T
problema dual (PD); o vetor dos custos do problema primal (PP), c = [25 35 50 33 36] , passa a ser o
vetor dos limites do problema dual (PD). Deste modo, existe uma correspondência entre:
Associações Primal (PP) Dual (PD)
Variáveis Restrições
Produtos (5)
(quantidade) (valor)
Restrições Variáveis
Matéria prima (2)
(quantidade) (valor)
Exercício IV.2: Reescrever os problemas lineares do Exemplo IV.2 (produtor e açambarcador) incluindo as
variáveis de folga necessárias, determinar o número de soluções básicas factíveis e uma solução inicial.
Ax ≤ b
k
x ≥0
k
(λ ) A ≥ c
m T
λm ≥ 0
ENTÃO
( ) ( )
f x ≤φ λ
k m
Observar que
6(4
λ ) A≥c
k T
74 8 A x ≤b
k
( ) ( ) ( )
6 78
f ( x ) = c ⋅ x ≤ λ A ⋅ x = λ (A ⋅ x) ≤ λ k ⋅ b = φ (λ )
T k T k T T
• Quando Problema Primal (PP) é um problema de maximização, o método simplex evolui sempre no
sentido de aumentar a função objetivo f ( x ) ; para o Problema Dual (PD), o método simplex evolui
sempre no sentido de reduzir a função objetivo φ (λ ) .
φ (λ m )
Problema DUAL
ótimo ( ) ( )
f x =φ λ
* *
Problema PRIMAL
f (x k )
• Em decorrência, se x e λ
k m
são factíveis em seus respectivos problemas e
( ) ( )
f x =φ λ
k m
ENTÃO x e λ
k m
são soluções ótimas de PP e PD.
IV.4 Sensibilidade
A obtenção da solução ótima de um PL é importante, mas não é a única informação disponível. Existe uma
grande quantidade de informações de sensibilidades, ou seja, informações sobre o que acontece quando os
valores dos dados são alterados. Embora tal análise seja também possível em programação não linear, os
resultados obtidos nos PLs são válidos para variações de qualquer tamanho (em função da linearidade da
função objetivo e das restrições).
Sejam os problemas do produtor e do açambarcador, anteriormente descritos:
max 25 x1 + 35 x2 + 50 x3 + 33x4 + 36 x5 (maximizar lucro)
s.a. 3 x1 + 4 x2 + 5 x3 + 3 x4 + 6 x5 ≤ 42 (limite Recurso 1)
(PP)
2 x1 + 3 x2 + 4 x3 + 3 x4 + 3 x5 ≤ 24 (limite Recurso 2)
xi ≥ 0, i = 1,2,L,5
Assim, um aumento no Recurso 2 provocaria um aumento no lucro de 12,5 por unidade. De fato, se o limite
de tal restrição for alterado de 24 para 25, o lucro passa de 300 para 312,5, conforme mostram os resultados
tabelados a seguir.
free variable
lucro lucro do produtor;
parameters
LOWER LEVEL UPPER MARGINAL
r1 quantidade do recurso 1 /42/
r2 quantidade do recurso 2 /25/; ---- EQU obj . . . -1.000
positive variable ---- EQU rest1 -INF 37.500 42.000 .
x1 produto 1 ---- EQU rest2 -INF 25.000 25.000 12.500
x2 produto 2
x3 produto 3 obj max lucro
x4 produto 4 rest1 restricao do recuso 1
rest2 restricao do recuso 2
x5 produto 5;
equations LOWER LEVEL UPPER MARGINAL
obj max lucro
rest1 restricao do recuso 1 ---- VAR lucro -INF 312.500 +INF .
rest2 restricao do recuso 2; ---- VAR x1 . 12.500 +INF .
obj.. ---- VAR x2 . . +INF -2.500
25*x1+35*x2+50*x3+33*x4+36*x5 =e= lucro; ---- VAR x3 . . +INF EPS
---- VAR x4 . . +INF -4.500
rest1.. ---- VAR x5 . . +INF -1.500
3*x1+4*x2+5*x3+3*x4+6*x5 =l=r1;
rest2..
2*x1+3*x2+4*x3+3*x4+3*x5 =l=r2;
Outra constatação interessante pode ser obtida analisando-se os valores marginais referentes as variáveis do
problema. O valor EPS para a variável x3 significa que um acréscimo nesta variável provocaria um aumento
infinitesimal (igual a épsilon) na função objetivo. Na verdade, este aumento não ocorre e isto implica na
existência de soluções múltiplas para o problema. Outra solução extrema para este problema envolveria a
variável x3 , cujo valor ótimo seria igual a 6, permanecendo ativa a mesma restrição do limite do Recurso 2.
Assim, qualquer combinação entre esta solução e a anterior apresenta o mesmo custo e serve como solução
alternativa, ou seja, qualquer solução que satisfaça a equação 2 x1 + 4 x3 = 24 ou x1 + 2 x3 = 12 .
free variable
lucro lucro do produtor;
parameters
r1 quantidade do recurso 1 /42/
LOWER LEVEL UPPER MARGINAL
r2 quantidade do recurso 2 /24/;
positive variable ---- EQU obj . . . -1.000
x1 produto 1 ---- EQU rest1 -INF 30.000 42.000 .
x2 produto 2 ---- EQU rest2 -INF 24.000 24.000 12.500
x3 produto 3
x4 produto 4 obj max lucro
rest1 restricao do recuso 1
x5 produto 5;
rest2 restricao do recuso 2
equations
obj max lucro LOWER LEVEL UPPER MARGINAL
rest1 restricao do recuso 1
rest2 restricao do recuso 2; ---- VAR lucro -INF 300.000 +INF .
obj.. ---- VAR x1 . . . EPS
25*x1+35*x2+50*x3+33*x4+36*x5 =e= lucro; ---- VAR x2 . . +INF -2.500
---- VAR x3 . 6.000 +INF .
rest1..
---- VAR x4 . . +INF -4.500
3*x1+4*x2+5*x3+3*x4+6*x5 =l=r1; ---- VAR x5 . . +INF -1.500
rest2..
2*x1+3*x2+4*x3+3*x4+3*x5 =l=r2;
O aumento de qualquer outra variável (x2 , x4 ou x5 ) provocaria redução na função objetivo, conforme mostra
a Tabela IV.1.
A análise conjunta dos problemas primal e dual origina uma série de observações. A Tabela IV.2 apresenta
as sensibilidades relativas ao problema dual.
Lucro no Produto x1 25 25 — —
Lucro no Produto x3 50 50 — 6
Valor do Recurso 1 — — — 12
Valor do Recurso 2 — 12,5 — —
Em um problema linear qualquer, a análise de sensibilidade é realizada após a obtenção da solução ótima e
compreende a avaliação da alteração que ocorreria na solução do problema, caso fossem realizadas
modificações no problema. Para um problema dado na forma padrão
min c T ⋅ x
s.a. A x = b
x≥0
são possíveis as seguintes alterações
Alterações possíveis
Coeficientes de custos modificação em c
Limites das restrições modificação de b
Inclusão de uma nova restrição acréscimo de uma linha em A
Inclusão de uma nova variável acréscimo de uma variável em x
Coeficientes das restrições modificação de elemento(s) de A
Alterações no vetor custo podem provocar perda de otimalidade, mas a solução ótima do problema original
(PO) permanece viável no problema modificado (PM). Seja o seguinte par de problemas
min c T ⋅ x
(PO) s.a. A x = b
O
x é ótimo
x≥0
min d T ⋅ x
(PM) s.a. A x = b
O
x é viável
x≥0
Exemplo IV.3: Se o lucro do produtor no Produto 5 passa de 36 para 37, não ocorre alteração na função
objetivo. Por outro lado, se o lucro do produtor no produto 5 passa de 36 para 37,5, surge mais uma
alternativa de produção incluindo o Produto 5 com o mesmo lucro de 300 (x1 = 6; x5 = 4 ) , conforme ilustra a
Figura IV.2.
x5
Direção Direção
de otimização de otimização
alterada original
8
7
Solução
Ótima alternativa
3 x1 + 6 x5 ≤ 42
2 x1 + 3 x5 ≤ 24 x1
Solução 12 14
Ótima original
Caso 2: 3x1 + 4 x2 + 4 x3 ≤ 30
c) Acrescentar uma nova variável. Definir um custo e um peso na definição dos recursos necessários.
d) Alterar dois elementos na matriz de restrições A de modo que a solução do problema seja alterada: um
referente à variável x1 ; outro referente à outra variável qualquer.
V.1 Introdução
1
Observar que os problemas discretos podem ser convertidos em problemas inteiros, substituindo-se as variáveis discretas xi por
outras inteiras yi. Neste caso, xi = ki ⋅ yi , sendo ki o valor do passo da variável discreta i. De forma similar, os problemas inteiros
podem ser convertidos em problemas binários, substituindo-se as variáveis inteiras yi por outras binárias zi. Neste caso,
mi
yi = ∑2
p =0
p
⋅ zi , sendo mi determinado em função do maior valor admitido para a variável yi no problema original (número de bits
Programação Inteira e Inteira Mista – Sérgio Haffner Versão 1.0: 12/9/2007 Página 1 de 8
Introdução à Otimização
2
Cada um dos subproblemas descendentes é mais fácil de resolver que o subproblema candidato de origem uma vez que foi
acrescentada uma restrição na variável de separação.
Programação Inteira e Inteira Mista – Sérgio Haffner Versão 1.0: 12/9/2007 Página 2 de 8
Introdução à Otimização
• (CS1) O problema candidato relaxado (PCR) não tem solução viável. Devido a (R1), isto significa que
o problema candidato (PC) também não tem solução viável.
• (CS2) A solução ótima do problema candidato relaxado (PCR) é pior (bounding) do que a melhor
solução atualmente conhecida para (P) (solução incumbente). Observar que a solução ótima do
problema candidato relaxado é sempre melhor ou igual à solução do problema candidato e de seus
descendentes.
• (CS3) Uma solução ótima do problema relaxado (PCR) é viável, também, em (PC). Neste caso, devido
a (R3), ela é ótima em (PC) e, devido a (S2) ela é também factível em (P). Caso seja melhor que a
incumbente atual, a solução deste problema candidato passa a ser a nova incumbente.
No algoritmo branch-and-bound a escolha do problema candidato que será avaliado também é realizada de
acordo com algum critério. Neste caso, busca-se reduzir as necessidades de armazenamento ou o número de
nós a serem avaliados, conforme será detalhado a seguir.
4. Testes de sondagem: O subproblema candidato (PCk) pode ser sondado se satisfizer uma das
seguintes condições:
(a) ( )
Se PC Rk não tem solução viável.
(b) k
Se vinf > v* , onde v* é o valor da incumbente atual.
(c) ( )
Se a solução ótima de PC Rk é inteira, isto é, viável, também, em (PCk). Ainda, se o valor ótimo
obtido é menor do que a incumbente, então v* = vinf
k
e deve-se aplicar o teste 4(b) para todos os
subproblemas candidatos ainda não sondados.
Se o subproblema candidato (PCk) foi sondado, então retornar para o Passo 2.
Programação Inteira e Inteira Mista – Sérgio Haffner Versão 1.0: 12/9/2007 Página 3 de 8
Introdução à Otimização
5. Separação: A partir do subproblema (PCk), selecionar uma variável para separação, dentre aquelas
que são inteiras e ainda apresentam valor contínuo usando uma das estratégias descritas a seguir. Para
a variável escolhida n j , cujo valor atual é n*j , gerar dois novos subproblemas descendentes e
adicioná-los à lista de candidatos. Os problemas são gerados acrescentando-se à (PCk) as seguintes
restrições:
( )
PC i +1 : [ ]
n j ≤ n*j
(PC ): n ≥ [n ] + 1
i+2
j
*
j
A aplicação do algoritmo branch-and-bound pode ser representada pela árvore da Figura V.1, onde cada nó é
representado por um círculo com um número que indica a sua ordem de geração (índice i do algoritmo). Ao
lado de cada nó encontra-se a solução do problema relaxado e, caso esta seja inteira ou pior do que a
incumbente refere-se a um nó que foi sondado, sendo representado por um círculo colorido. As restrições
que são acrescentadas a cada separação estão dentro dos retângulos que cortam os respectivos ramos. Assim,
para um nó qualquer da árvore, o problema associado pode ser determinado percorrendo os ramos que o
levam até o nó de origem (nó 0) e acrescentando as restrições correspondentes. Por exemplo, o problema
candidato representado pelo Nó 7 é o problema original (P) acrescido das seguintes restrições:
n12 ≤ 0
n23 ≤ 0
A árvore inicia com o Nó 0 através da resolução do problema linear (PR), que é obtido a partir da relaxação
das restrições de integralidade da expressão (V.1):
min v = 5n12 + 2n13 + 2n23 + β
s.a. 350n12 + 400n13 + β ≥ 400
(PR ) 350n12 + 210n23 + β ≥ 200 (V.2)
β ≥0
nij ≥ 0 ∀ij
A solução do problema linear (V.2) apresenta duas variáveis com valores fracionários: n12 = 4 7 e n13 = 0,5 .
Assim, nenhum critério de sondagem é atendido e o processo continua com a separação do problema (V.2) –
para tanto é escolhida a primeira variável não inteira ( n12 ) como variável de separação. Neste caso, os dois
nós descendentes são gerados por intermédio das restrições n12 ≤ 0 (para o Nó 1) e n12 ≥ 1 (para o Nó 2).
Neste ponto do processo existem dois candidatos que podem ser escolhidos para serem examinados,
representados pelos Nós 1 e 2. Supondo que seja escolhido o último nó gerado (Nó 2), a solução do problema
relaxado equivalente – problema (V.2) com a restrição n12 ≥ 1 – apresenta, ainda, uma variável com valor
fracionário ( n13 = 0,125 ). Então, o problema do Nó 2 deve ser separado e, neste caso, só existe uma variável
Programação Inteira e Inteira Mista – Sérgio Haffner Versão 1.0: 12/9/2007 Página 4 de 8
Introdução à Otimização
que pode ser empregada ( n13 ). Após gerados os descendentes do Nó 2 (Nós 3 e 4) e selecionado o último
para ser examinado obtém-se a primeira solução inteira para o problema (V.1), que passa a ser a incumbente
do processo ( v* = v 4 = vinf
4
= 7 ). Como o valor da incumbente foi alterado, os limitantes inferiores dos
candidatos remanescentes (Nós 1 e 3) são avaliados mas não é possível realizar nenhuma sondagem.
Novamente, seleciona-se o último candidato da lista (Nó 3) e efetua-se a sua separação em torno da variável
n12 . Ambos descendentes do Nó 3 (Nós 5 e 6) possuem soluções inteiras que são descartadas por serem
piores que a incumbente ( v 5 = vinf
5
= 55 e v 6 = vinf
6
= 10 ). Volta-se para a lista de candidatos e seleciona-se o
único disponível (Nó 1) que é separado em torno da variável n23 gerando os Nós 7 e 8. Tomando-se o último
deles, obtém-se uma solução inteira que é melhor do que a incumbente que é atualizada para
v* = v8 = vinf
8
= 4 . A seguir avalia-se o Nó 7 que pode ser descartado (juntamente com seus descendentes)
7
pois seu limite inferior é superior à incumbente ( vinf = 201 > v* ). Os Nós 9 e 10 são representados apenas
para completar a enumeração.
Do modo que o processo evoluiu, foi necessário resolver 9 problemas lineares para garantir a enumeração de
todas as alternativas possíveis, sendo a solução ótima do problema (V.1) obtida após o oitavo PL:
v* = 4
*
n12 =0
*
n13 =1
*
n23 =1
Uma questão importante no desempenho dos algoritmos de enumeração está relacionada com o
conhecimento de uma boa solução incumbente inicial. Isto aumenta, significativamente, a eficiência do teste
de sondagem 4(b) e, assim, reduz o número de subproblemas candidatos que precisam ser examinados. Para
o exemplo da árvore da Figura V.1, uma incumbente inicial de valor v* = 5 , seria suficiente para sondar,
imediatamente, o Nó 2 (e todos os seus descendentes) reduzindo, assim, o número total de PLs necessários.
Programação Inteira e Inteira Mista – Sérgio Haffner Versão 1.0: 12/9/2007 Página 5 de 8
Introdução à Otimização
A importância de realizar a seleção do próximo subproblema candidato a ser examinado pode ser facilmente,
demonstrada através do seguinte exemplo. Analisando-se a árvore da Figura V.1, observa-se que a mesma
solução pode ser obtida, com um esforço computacional bem menor, quando é escolhido, por exemplo, o
caminho mostrado na Figura V.2.
Para a árvore alternativa da Figura V.2, após a separação do Nó 0, inicia-se examinando o Nó 1 que é
separado nos seus descendentes 3 e 4. A seguir é escolhido o Nó 4 para exame e encontra-se a primeira
incumbente v* = v 4 = vinf
4
= 4 . Realizando o exame das candidatas da lista, verifica-se que é possível sondar
2
todos os nós remanescentes (Nós 2 e 3), pois seus limites inferiores são elevados ( vinf = 5,25 e vinf
3
= 201 ).
Deste modo, com apenas 5 PLs o problema (V.1) é resolvido sendo a solução ótima obtida após o terceiro PL
– anteriormente, foram necessários 9 PLs e a solução só foi obtida após o oitavo (vide Figura V.1).
Quando o número de variáveis e restrições é maior, o modo pelo qual são escolhidos os problemas
candidatos e as variáveis de separação pode afetar drasticamente o desempenho do algoritmo branch-and-
bound. Assim, o esforço gasto na especialização destas seleções é, via de regra, muito bem recompensado.
Programação Inteira e Inteira Mista – Sérgio Haffner Versão 1.0: 12/9/2007 Página 6 de 8
Introdução à Otimização
Exercício V.2: Para o problema de expansão da capacidade do sistema de transmissão da rede de 5 barras
cujos dados encontram-se nas Tabelas V.1 e V.2, fazer o solicitado:
d5 d1 g1
5 1
g3
d3
2
d2
d4
Programação Inteira e Inteira Mista – Sérgio Haffner Versão 1.0: 12/9/2007 Página 7 de 8
Introdução à Otimização
onde cij é o custo da adição de um circuito ao caminho ij , nij é o número de circuitos adicionados, nij0
é o número de circuitos existentes na configuração básica, f ij é o fluxo de potência com limite f ij , v é
o custo total da adição dos circuitos, S é a matriz incidência nó-ramo, f é o vetor dos fluxos de
potência com componentes f ij , g é o número de gerações com limite com limite g , n ij é o número
máximo de circuitos que podem ser adicionados ao caminho ij e Ω é o conjunto de todos os caminhos
da rede.
b) Modelar e resolver o problema linear inteiro misto (PLIM) utilizando o GAMS.
c) Resolver o problema por intermédio de um processo manual baseado no algoritmo branch-and-bound,
determinando todas as soluções. Construir a árvore de busca, indicando as restrições nos ramos e as
soluções dos subproblemas candidatos relaxados (PLs) nos nós.
d) Comparar os resultados obtidos no processo manual com o GAMS.
Solução parcial:
a) Equacionamento do problema.
1. Função Objetivo
c12 n12 + c13n13 + c14 n14 + c15 n15 + c23n23 + c24 n24 + c25 n25 + c34 n34 + c35 n35 + c45 n45
2. Restrições
2.1. Equações dos nós
Nó 1: − f12 − f13 − f14 − f15 + g1 = d1 Nó 2: + f12 − f 23 − f 24 − f 25 = d 2
Nó 3: + f13 + f 23 − f 34 − f 35 + g 3 = d 3 Nó 4: f14 + f 24 + f 34 − f 45 = d 4
Nó 5: f15 + f 25 + f 35 + f 45 = d 5
2.2. Capacidade dos circuitos
Programação Inteira e Inteira Mista – Sérgio Haffner Versão 1.0: 12/9/2007 Página 8 de 8