Académique Documents
Professionnel Documents
Culture Documents
Engenharia
I Teoria e Algoritmos 3
1 Introdução 5
1.1 O Problema Geral de Programação Matemática . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Exemplo de Aplicação em Otimização de Estruturas . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.1 Treliça Plana de Duas Barras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
i
ii SUMÁRIO
Teoria e Algoritmos
3
Capı́tulo 1
Introdução
Programação Matemática (PM) é a área da Matemática que trata dos problemas de minimização ou oti-
mização de funções. Ela se ocupa tanto do tratamento teórico do problema quanto do desenvolvimento de
algoritmos para a sua solução.
A função a ser minimizada ou otimizada num problema de PM é denominada de função objetivo, a qual
pode ter um número qualquer de variáveis, que por sua vez, podem estar sujeitas a restrições de igualdade
e/ou desigualdade. Restrições de desigualdade que definem limites inferior e superior para as variáveis são
chamadas de restrições laterais.
Existem vários problemas particulares de PM. No problema geral as variáveis são contı́nuas. Quando as
variáveis só podem assumir valores inteiros, diz-se que o problema é de Programação Inteira (PI). Esse tipo
de problema não será tratado neste texto.
Os problemas de PM podem ainda ser classificados como de Programação Restrita (PR) ou Otimização
Com Restrições (OCR) e Programação Irrestrita (PI) ou Otimização Sem Restrições (OSR).
Nos problemas de OCR, quando a função objetivo e as restrições do problema são funções lineares das
variáveis e todas as variáveis são sujeitas a restrições laterais do tipo ”maior ou igual a zero”, o problema é
chamado de problema padrão de Programação Linear (PL).
Quando a função objetivo é quadrática e as restrições do problema de OCR são restrições lineares de
desigualdade e todas as variáveis são do tipo ”maior ou igual a zero”, o problema é chamado de problema
padrão de Programação Quadrática (PQ). Esses problemas podem ser escritos na forma equivalente de
problemas de Programação Linear Complementar (PLC).
No caso geral de problemas de OCR onde a função objetivo e as restrições são não lineares o problema é
dito de Programação Não Linear (PNL).
Os algoritmos de PNL são classificados em algoritmos de ordem zero, de primeira e de segunda ordem,
dependendo se eles usam ou não derivadas parciais de primeira e segunda ordem da função objetivo e
das restrições, respectivamente, nas suas operações numéricas. O estudo das técnicas de obtenção dessas
derivadas para os diversos problemas ganhou a denominação de análise de sensibilidade.
Problemas particulares de PM apresentam algoritmos especı́ficos para a sua solução. Assim, o algoritmo
Simplex tem sido usado para a solução de problemas de PL, o algoritmo de Lemke tem sido aplicado na
solução de problemas de PLC, dentre outros.
Vários problemas de Engenharia, quando adequadamente formulados, recaem em problemas de PM.
Dentre esses problemas podem-se citar a análise de estruturas por elementos finitos com comportamento
não linear; a identificação de parâmetros ou retro-análise; a análise limite de estruturas; as otimizações
topológica, de dimensões e de forma de estruturas; o problema de contato entre corpos elásticos; e a análise
de confiabilidade.
Devido à crescente importância da PM na engenharia, diversos programas comerciais de análise de estru-
turas por elementos finitos já incorporam algoritmos de PM em seus códigos. Entre eles estão o NASTRAN
e o ANSYS. Existem ainda programas comerciais especializados em resolver problemas de PM nos quais
o usuário tem que fornecer a função e as restrições explicitamente. Dentre os mais conhecidos nessa área
citam-se LANCELOT [1], Lingo [5], Minos [6] e DOT.
5
6 CAPÍTULO 1. INTRODUÇÃO
1. Problema de Otimização Sem Restrições (OSR), quando nenhuma das restrições está presente.
2. Problema padrão de Programação Linear (PL), quando a função objetivo e as restrições são funções
lineares das variáveis de projeto, as variáveis de projeto são maiores ou iguais a zero e as restrições
laterais são do tipo maior ou igual a zero.
3. Problema padrão de Programação Quadrática (PQ), quando a função objetivo é uma função quadrática,
as variáveis de projeto são maiores ou iguais a zero e as restrições são de desigualdade e são funções
lineares das variáveis de projeto.
4. Problema de Programação Linear Complementar (PLC) que surge da aplicação das condições de ótimo
ao problema padrão de Programação Quadrática.
Projetar a treliça apresentada na Figura 1.1, em função de r2 e H, raio da seção transversal da barra 2
e altura da treliça respectivamente, de tal forma que ela apresente um volume mı́nimo e que as tensões nas
barras sejam inferiores às tensões de escoamento e de flambagem.
• Informações conhecidas:
– r1 (raio da seção transversal da barra 1)
– L (dimensão horizontal da treliça)
– P (força vertical aplicada)
– E (módulo de elasticidade)
– σY (tensão de escoamento)
• Informações a serem obtidas (variáveis de projeto):
1.2. EXEMPLO DE APLICAÇÃO EM OTIMIZAÇÃO DE ESTRUTURAS 7
1 P
r
H
2
seção
transversal
V = A2 L2 (1.2)
onde, de acordo com a Figura 1.1, tem-se:
√
L2 = H 2 + L2
A2 = πr22
Portanto, o volume da barra 2 pode ser expresso como:
√
V (r2 , H) = πr22 H 2 + L2 (1.3)
Porém, as tensões nas barras (σ) não devem exceder os valores da tensão de escoamento do material (σY )
e os da tensão crı́tica de Euler (σCR ), ou seja, deve-se ter:
σ ≤ σY
e
σ ≤ σCR
N1 P
y
a
N2
N1 = N2 cos(α) (1.4)
onde
H
sen(α) = √
H2 + L2
e
L
cos(α) = √
H + L2
2
L
N1 = P (1.6)
H
e
√
H 2 + L2
N2 = P (1.7)
H
Portanto:
L
N1 P PL
σ1 = = H = (1.8)
A1 2
πr1 Hπr12
e
√
H 2 + L2 √
N2 P P H 2 + L2
σ2 = = H = (1.9)
A2 πr22 Hπr22
π 2 EI
σCR = (1.10)
L2e A
πr 4
onde Le é o comprimento efetivo da barra, I = 4 e A = πr2 , logo:
π 2 Er2
σCR =
4L2e
Formulação do Problema
PL
g1 (r2 , H) = σ1 − σe ≤ 0 ou g1 (r2 , H) = −1≤0
Hπr12 σe
√
P L2 + H 2
g2 (r2 , H) = σ2 − σe ≤ 0 ou g2 (r2 , H) = −1≤0
Hπr22 σe
( )3/2
4P L2 + H 2
g3 (r2 , H) = σ2 − σCR ≤ 0 ou g3 (r2 , H) = −1≤0
Hπ 3 r24
Resultados
O problema proposto em 1.11 foi resolvido para diferentes dados de entrada conforme a tabela 1.1.
7 7
6 6
5 5
H
H
4 4
3 3
2 2
1 1
0.4 0.5 0.6 0.7 0.8 0.9 1 0.4 0.5 0.6 0.7 0.8 0.9 1
r2 r2
7 7
6 6
5 5
H
4 4
3 3
2 2
1 1
0.4 0.5 0.6 0.7 0.8 0.9 1 0.4 0.5 0.6 0.7 0.8 0.9 1
r2 r2
7 7
6 6
5 5
H
H
4 4
3 3
2 2
1 1
0.4 0.5 0.6 0.7 0.8 0.9 1 0.4 0.5 0.6 0.7 0.8 0.9 1
r2 r2
7 7
6 6
5 5
H
4 4
3 3
2 2
1 1
0.4 0.5 0.6 0.7 0.8 0.9 1 0.4 0.5 0.6 0.7 0.8 0.9 1
r2 r2
1. s (x0 ) = f (x0 )
ds (x) df (x)
2. =
dx x=x0 dx x=x0
d2 s (x) d2 f (x)
3. =
dx2 x=x0 dx2 x=x0
4. E assim sucessivamente até o termo de ordem n,
dn s (x) dn f (x)
=
dxn x=x0 dxn x=x0
A generalização da série de Taylor para o caso de uma função de n variáveis, f (x), é dada por:
t 1 t
s (x) ≈ f (x0 ) + [g(x)] (x − x0 ) + (x − x0 ) H(x)|x=x0 (x − x0 ) + · · · (2.3)
x=x0 2
onde g(x) é o vetor gradiente de f (x), cujos componentes são obtidos da seguinte forma:
∂f (x)
gi (x) = , i = 1···n (2.4)
∂xi
13
14 CAPÍTULO 2. FUNDAMENTOS DE OTIMIZAÇÃO SEM RESTRIÇÕES (OSR)
∂ 2 f (x)
hij (x) = , i, j = 1 · · · n (2.5)
∂xi ∂xj
Solução:
As derivadas de f (x) são:
df d2 f d3 f
= cos (x) = − sin (x) = − cos (x) (2.6)
dx dx2 dx3
π
Utilizando-se a Equação (2.1), a expansão de primeira ordem para sin(x) em torno do ponto x0 = 4 é dada
por:
(π) (π ) ( π)
s1 (x) = sin (x) ≈ sin + cos x− (2.7)
4 4 4
As expansões de segunda e terceira ordem são dadas, respectivamente, por:
1 (π ) ( π )2
s2 (x) = s1 (x) − sin x− (2.8)
2 4 4
1 (π) ( π )3
s3 (x) = s2 (x) − cos x− (2.9)
6 4 4
A Figura 2.1 ilustra as aproximações em série de Taylor de primeira, segunda e terceira ordens, respec-
tivamente, da função sin(x).
Solução:
{ }t
O vetor gradiente e a matriz Hessiana de f (x) no ponto x0 = π4 , π4 são obtidos utilizando-se as
Equações (2.4) e (2.5), ou seja:
∂f (x)
∂x1
cos (x1 ) sin (x2 ) 1
2
g(x) = = = (2.10)
∂f (x)
1
sin (x1 ) cos (x2 ) 2
∂x2
1 A denominação “Hessiana” é uma homenagem ao matemático alemão Ludwig Otto Hesse, que trabalhou no desenvolvimento
sin(x)
1.5 s1(x)
s2(x)
s3(x)
1
approximação de sin(x)
0.5
0 pi/4
−0.5
−1
−1.5
−pi/4 0 pi/4 pi/2 3*pi/4
x
∂ 2 f (x) ∂ 2 f (x)
∂x21 ∂x1 ∂x2
H(x) =
2 2
∂ f (x) ∂ f (x)
∂x2 ∂x1 ∂x22
− sin (x1 ) sin (x2 ) cos (x1 ) cos (x2 )
= (2.11)
cos (x1 ) cos (x2 ) − sin (x1 ) sin (x2 )
− 21 1
2
=
1
2 − 12
Substituindo-se as Equações (2.10) e (2.11) na Equação (2.3) chega-se a:
t t
1
2 x1 − π
4 x1 − π
4 −1/2 1/2 x1 − π
4
s (x) = 1
+ + 1
2 2
1
2
x2 − π
4 x2 − π
4 1/2 −1/2 x2 − π
4 (2.12)
x1 2 x2 2
= x1
2 − π
4 + x2
2 + 1
2 − 4 + x1 x2
2 − 4
que é a aproximação de segunda ordem para a função sin(x1 ) sin(x2 ). Calculando-se os valores da função e de
{ }t
sua aproximação no ponto π5 , 3π10 , que representa uma variação de 20% de x0 , obtém-se f ( π5 , 3π
10 ) = 0.47553
π 3π
e s( 5 , 10 ) = 0.47533, respectivamente. A função s(x) apresentou uma ótima aproximação de f (x) com um
erro em torno de 0.05%, o que é bastante razoável.
16 CAPÍTULO 2. FUNDAMENTOS DE OTIMIZAÇÃO SEM RESTRIÇÕES (OSR)
1
s (x) ≈ f (x∗ ) + [g(x∗ )] (x − x∗ ) + (x − x∗ ) H (x∗ ) (x − x∗ )
t t
(2.14)
2
Considerando-se que x esteja bem próximo de x∗ de tal maneira que o módulo de x − x∗ seja muito
pequeno (∥x − x∗ ∥ ≪ ϵ), onde os elementos do vetor ϵ são números muito menores que a unidade), o
segundo termo da série de Taylor, ou seja, o que contém o vetor g(x∗ ) predomina sobre o terceiro termo que
contém a matriz Hessiana H(x) e um termo quadrático em (x − x∗ ).
Num ponto de mı́nimo local, f (x) deve ser maior do que f (x∗ ) para um valor arbitrário de x em torno
de x∗ . Representando-se f (x) por sua aproximação s(x) e desprezando-se o termo de segunda ordem em
relação ao de primeira ordem tem-se:
ou ainda:
df (x∗ ) ≈ [g(x∗ )] dx
t
(2.16)
onde df (x∗ ) é o incremento de f (x) em x∗ e dx o incremento de x∗ . O produto interno que define df (x∗ )
pode ser reescrito usando seus módulos e o co-seno do ângulo α entre os dois vetores, ou seja:
Fixando-se o módulo de dx e deixando-se α variar, df (x∗ ) será uma função apenas de α, ou seja:
A expressão acima representa o acréscimo da função f (x) a partir de x∗ para um passo de módulo ∥dx∥
na direção que forma um ângulo α com o vetor g(x∗ ). Como cos(α) é arbitrário e o módulo do vetor dx na
expressão acima é uma constante pré–fixada, a única possibilidade de se garantir que a Equação (2.19) seja
satisfeita é:
∥g (x∗ )∥ = 0 (2.20)
ou:
g (x∗ ) = 0 (2.21)
df (x∗ ) ≥ 0 (2.24)
ou:
(x − x∗ ) H(x∗ ) (x − x∗ ) ≥ 0
t
(2.25)
A restrição acima representa a condição de segunda ordem para um mı́nimo local x∗ e significa que a
matriz Hessiana de f (x), em x∗ , deve ser positiva semi–definida.
Exemplo 2.3 – Exercı́cio 2.1 de Nocedal & Wright [7] (Pág. 27)
Calcular o gradiente ∇f (x) e a Hessiana ∇2 f (x) da função de Rosenbrock
( )2 2
f (x) = 100 x2 − x21 + (1 − x1 ) .
Mostrar que x∗ = {1, 1} é um ponto de mı́nimo local desta função, e que a matrix Hessiana neste ponto é
t
positiva definida.
Solução:
( )
−400 x2 − x1 2 x1 − 2 + 2x1
∇f (x) =
200x2 − 200x21
1200x1 2 − 400x2 + 2 −400x1
∇2 f (x) =
−400x1 200
A condição de mı́nimo local, dada pela Equação (2.13), requer que o gradiente no ponto x∗ = {1, 1} seja
t
|A − λI| = 0
forem positivos.
18 CAPÍTULO 2. FUNDAMENTOS DE OTIMIZAÇÃO SEM RESTRIÇÕES (OSR)
..
.
a11 a12 a13 ··· a1n
a21 a22 a23 ··· a2n
a31 a32 a33 ··· a3n
An =
..
.
an1 an2 an3 ··· ann
de f (x).
Capı́tulo 3
xk+1 = xk + αk dk (3.1)
k k k
onde x é um ponto da iteração k e d é uma direção de busca. Precisa-se obter o valor α , da variável
α, para que se possa avançar para o próximo ponto xk+1 . Vale salientar que a incógnita α é um escalar
e, portanto, essa tarefa não é das mais complexas, pois consiste em se buscar o mı́nimo de uma função de
uma variável f (α). Essa tarefa é conhecida na literatura técnica como busca unidimensional (line search,
em inglês)1 .
Os métodos de busca unidimensional apresentados nesse capı́tulo são: de Passo Constante ou Incremental;
Armijo; Seção (ou Razão) Áurea; e Ortogonalidade.
19
20 CAPÍTULO 3. MÉTODOS DE OTIMIZAÇÃO SEM RESTRIÇÕES (OSR)
f(a) f(a)
r(a)
ak a
Figura 3.1: Método da Armijo.
FN = FN −1 + FN −2 (3.4)
FN −1
RF = (3.5)
FN
A Tabela 3.1 mostra uma seqüência de números e razões de Fibonacci desde N = 0 até N = 10.
N FN RF
0 1 –
1 1 1.0000
2 2 0.5000
3 3 0.6667
4 5 0.6000
5 8 0.6250
6 13 0.6154
7 21 0.6190
8 34 0.6176
9 55 0.6182
10 89 0.6180
É interessante observar que a razão de Fibonacci converge para um determinado valor, próximo de 0.618,
que se denomina razão áurea (RA ). Esse número aparece outras vezes nas relações da natureza, como por
exemplo: o número π e o número Neperiano e. Vários artistas, como Leonardo da Vinci, usavam em seus
quadros essa razão entre as dimensões por achá-la harmônica. Da Vinci identificou também que essa razão
poderia ser encontrada entre dimensões do corpo humano, como a razão entre a distância da sola do pé ao
umbigo e a altura total do indivı́duo.
O método da Seção Áurea apresenta uma idéia semelhante ao da Bisseção. A diferença está na razão
utilizada para reduzir o intervalo de busca. No método da Bisseção essa razão é 0.5, enquanto que no método
da Seção Áurea utiliza-se a razão áurea. A partir do comprimento do intervalo de busca inicial β, dois novos
pontos são determinados:
α1d = RA β e α1e = (1 − RA )β
que definem dois novos intervalos, 0 ≤ α ≤ α1d e α1e ≤ α ≤ β. Qual intervalo deve ser descartado na
próxima iteração? Para se tomar essa decisão, deve-se calcular f (α1d ) e f (α1e ); o ponto α correspondente
ao maior valor da função f define este intervalo a ser descartado e, consequentemente, os novos limites da
busca. Se for α1d , o novo intervalo deverá ser 0 ≤ α ≤ α1d , se for α1e , o novo intervalo será α1e ≤ α ≤ β,
conforme ilustrado na Figura 3.2. Os subscritos “d” e “e” caracterizam os pontos do intervalo localizados
na “direita” e na “esquerda”, respectivamente.
A vantagem de se usar a razão áurea RA para dividir os intervalos e não qualquer outra razão, está no
fato desta razão economizar uma avaliação da função f por divisão de intervalo. Isso se deve à coincidência
entre um dos pontos novos e um ponto antigo de extremidade de intervalo quando se usa a razão áurea.
Para esclarecer esse ponto, considere uma razão qualquer R no procedimento acima e que o segundo
intervalo α1e ≤ α ≤ β, tenha sido escolhido, conforme ilustrado na Figura 3.3.
22 CAPÍTULO 3. MÉTODOS DE OTIMIZAÇÃO SEM RESTRIÇÕES (OSR)
a1e=(1-RA)b a1d=RAb
0 b
0 a1e a1d b
a6e a6d
a3e a5d
β − α1e = β − (1 − R) β = R β (3.6)
Como o ponto inicial do intervalo é α1e e seu comprimento R β, os dois novos pontos seriam:
Para que o novo ponto α2e coincida com o antigo ponto α1d descartado, deve-se ter:
R β = (1 − R2 ) β (3.8)
ou:
R2 + R − 1 = 0 (3.9)
√
−1 − 5
R2 = = −1.61803 . . . (3.11)
2
Desprezando-se a raı́z negativa, o valor de R para poupar uma avaliação de f em cada subdivisão dos
intervalos é exatamente igual à razão áurea, i.e., RA = 0.61803 . . .
A precisão de αk depende, como nos métodos anteriores, do critério de convergência adotado no processo
iterativo.
df [x(α)] ∂f (x) dx t
= = {g [x(α)]} dk (3.12)
dα ∂x dα
df (α)
=0 (3.13)
dα
ou então:
[ ]t
g(xk + αdk ) dk = 0 (3.14)
O significado geométrico da Equação (3.14) é que o valor αk de α que minimiza f (α), é o mesmo que
torna o vetor gradiente g (α) ortogonal ao vetor dk . Para se obter αk numericamente, deve-se incrementar
α até que se obtenha um valor que torne o produto escalar acima nulo, segundo uma tolerância numérica
pré-estabelecida. A Figura 3.4 ilustra o comportamento do método da ortogonalidade.
24 CAPÍTULO 3. MÉTODOS DE OTIMIZAÇÃO SEM RESTRIÇÕES (OSR)
k
d
k+1
x
g[x(a)]
k
x
f ′ (αk )
αk+1 = αk −
f ′′ (αk )
Aproximando-se a segunda derivada f ′′ por:
f ′ (αk ) − f ′ (αk−1 )
αk − αk−1
pode-se obter o seguinte algoritmo:
αk − αk−1
αk+1 = αk − f ′ (αk )
f ′ (αk ) − f ′ (αk−1 )
o qual é conhecido como algoritmo secante. Pode-se ainda reescrever esse algoritmo da seguinte forma:
dk = ek , k = 1, · · · , n (3.15)
onde ek é um vetor com elementos nulos, exceto na posição k, onde o elemento vale 1. Esse procedimento
é equivalente a modificar uma variável de cada vez no processo iterativo, ou seja, apenas a variável na posição
k do vetor de variáveis x, é modificada na iteração k. Para um problema com n variáveis, se, ao final de
n iterações, a posição x não tiver convergido para a solução x∗ , então um novo ciclo de iterações deve ser
iniciado com as mesmas direções usadas no primeiro ciclo, e assim sucessivamente até a convergência.
5
Ponto inicial
Ponto final
2
-2 -1 0 1
-1
-2
Figura 3.5: Univariante.
dj = xn − x0 , j = 1, · · · , m (3.16)
onde xn é o ponto obtido no final de cada ciclo de n iterações e x0 é o ponto inicial. Para cada novo
ciclo, caso não haja convergência, uma nova direção padrão é criada com esse mesmo procedimento, ou seja:
ponto final menos ponto inicial.
1. Inicializar j = 1;
2. Realizar um ciclo de n iterações (com as direções univariantes ek , k = 1 . . . n), do ponto x0 até o ponto
xn ;
3. Criar uma direção de movimento padrão dj = xn − x0 ;
4. Minimizar f (x) na direção dj , determinando-se o novo ponto x0 ;
5. Substituir ej por dj da seguinte forma: ei = ei+1 , i = 1, · · · n − 1; en = dj ; j = j + 1;
6. Repetir os passos de 2 a 5, enquanto j ≤ n;
7. Reinicializar as direções ek e voltar para o passo 1, até que a convergência numérica seja atingida.
Considerações Iniciais
Proposição
Seja q(x) uma função quadrática dada por:
1 t
x Q x − bt x
q(x) = (3.17)
2
onde Q é uma matriz quadrada, positiva semi-definida e b um vetor. Dados dois pontos xa e xb e uma
direção de busca da , e supondo-se que ya e yb sejam,( respectivamente,
) os mı́nimos de q(x) na direção da
partindo-se de x e x , mostrar que as direções d e y − y são Q–conjugadas.
a b a a b
Demonstração
A condição de mı́nimo dessa função quadrática é garantida apenas pela condição de primeira ordem,
fazendo-se com que o gradiente de q(x) seja igual a um vetor nulo. A condição de segunda ordem está
previamente satisfeita pelo fato da matriz Q (Hessiana de q(x)) ser positiva semi-definida. Portanto:
3.2. MÉTODOS DE DIREÇÃO DE BUSCA 27
g (x) = Q x − b = 0 (3.18)
ou:
Qx=b (3.19)
Para se obter a solução do problema acima por meio da fórmula de recorrência, parte-se de:
xk+1 = xk + αk dk , k = 0, · · · , n − 1 (3.20)
onde as direções de busca dk serão direções Q–conjugadas, ou seja:
( i )t
d Q dj = 0, ∀i ̸= j (3.21)
a a a
Considere-se, inicialmente, o ponto x e a direção de busca d . Deve-se determinar α na expressão dada
a seguir, que é o valor de α que minimiza q (x) a partir do ponto xa na direção da .
ya = xa + αa da (3.23)
e, da condição de mı́nimo em ya :
y b = xb + α b d a (3.29)
y b = xb + α b d a (3.32)
28 CAPÍTULO 3. MÉTODOS DE OTIMIZAÇÃO SEM RESTRIÇÕES (OSR)
[ ]t
Q (yb + 0da ) − b da = 0 (3.33)
[ ]t
Q y b − b da = 0 (3.34)
Subtraindo-se as Expressões (3.27) e (3.34), obtém-se:
t
(da ) Q (ya − yb ) = 0 (3.35)
( a )
o que demonstra que as direções d e y − y são Q–conjugadas. A Figura 3.6 ilustra o processo
a b
a
d
a b
a y -y
y a
d
a
x
b
x b
y
Se da foi criada no final de um dado ciclo como movimento padrão, as duas operações anteriores são
exatamente o que recomenda o método de Powell. A primeira operação corresponde ao passo dado no final
de cada ciclo e a segunda corresponde ao primeiro passo de cada novo ciclo, onde a direção de busca da ,
criada no final de um ciclo, é repetida no inı́cio do novo ciclo.
Proposição 1
O método de Powell converge para o mı́nimo de uma função quadrática, q(x), de n variáveis, em um
número finito de iterações, dado por (n + 1)2 .
Demonstração
Inicia-se mostrando que o conjunto de vetores di , Q–conjugados, é linearmente independente (LI). Como
dito anteriormente, dois vetores di e dj são Q–conjugados (ou Q–ortogonais) quando:
3.2. MÉTODOS DE DIREÇÃO DE BUSCA 29
( i )t
d Q dj = 0, ∀i ̸= j (3.36)
A prova se dará por contradição. Supor que existam αi , não todos nulos, que satisfaçam à seguinte
equação:
xk+1 = α0 d0 + α1 d1 + · · · + αk dk ; (3.41)
Após n passos, chega-se ao ponto x∗ :
Proposição 2
A partir de um ponto inicial x0 , arbitrário, e um conjunto de n vetores Q–conjugados, a sequência gerada
por:
xk+1 = xk + αk dk (3.43)
( )t
k − g k dk
α = t (3.44)
(dk ) Q dk
sendo:
g k = Q xk − b (3.45)
30 CAPÍTULO 3. MÉTODOS DE OTIMIZAÇÃO SEM RESTRIÇÕES (OSR)
Q x∗ = b (3.51)
e, considerando-se a Equação (3.45):
Q xk = g k + b (3.52)
finalmente, considerando-se a Equação (3.49), chega-se a:
( )t
k − g k dk
α = t (3.53)
(dk ) Q dk
Vale observar que esse valor de αk é justamente o que minimiza a função q (x) a partir de xk na direção
dk .
Considerar que q (x) seja representada por uma série de Taylor de segunda ordem dada por s2 (x), a partir
do ponto xk , com um passo αdk . Como a função q (x) é quadrática, a aproximação por série de Taylor de
q (x), s2 (x), até o termo de segunda ordem é exata, ou seja:
( )t 1 ( )t
s2 (xk + αdk ) = q(xk ) + α gk dk + α2 dk Q dk (3.54)
2
Para se obter α que minimiza s2 (x), calcula-se:
( )t
k − g k dk
α=α = t (3.57)
(dk ) Q dk
A Figura 3.7 ilustra o processo de convergência do método de Powell.
4
3
dk = −gk (3.58)
Para se demonstrar que a direção definida pela expressão (3.58) é a direção de maior decréscimo da
função f (x), no ponto x, considerar a expansão de f (x) em série de Taylor de primeira ordem, s1 (x), em
torno do ponto (x + s):
t
s1 (x + s) ≈ f (x) + [g(x)] s (3.59)
onde g(x) é o gradiente de f (x) no ponto x. O crescimento da função f (x) quando se vai do ponto x
para (x + s) é dado por:
t
df (x) ≈ [g(x)] s (3.60)
32 CAPÍTULO 3. MÉTODOS DE OTIMIZAÇÃO SEM RESTRIÇÕES (OSR)
ou ainda:
s = d = −g(x)
Os principais passos do algoritmo que representa o método dos Gradientes Conjugados são:
1. k = 0; Dado: x0 ;
2. g0 ;
3. Se: g0 = 0 =⇒ Fim;
4. d0 = −g0
t
−(gk ) dk
5. αk = (dk )t Q dk
;
6. xk+1 = xk + αk dk ;
7. gk+1 ;
11. k = k + 1;
1 2 3 5
f (x1 , x2 , x3 ) = x + 2x1 x3 + x22 + x2 x3 + x23 − 5x1 − x2 − 10x3
2 1 2 2
t
Calcular o mı́nimo dessa função usando como ponto inicial: x0 = {0, 0, 0} .
Solução:
1 t
f (x) = x Q x − xt b
2
onde:
1 0 2 5
Q= 0 3 1 b= 1
2 1 5 10
Pode-se calcular:
{ }t
g(x) = ∇f (x) = Q x − b = x1 + 2x3 − 5, 3x2 + x3 − 1, 2x1 + x2 + 5x3 − 10
t
g0 = ∇f (x0 ) = {−5, −1, −10}
d0 = −g0
( )t
0 − g0 d0 63
α = t = = 0.1684
(d0 ) Q d0 374
t
x1 = x0 + α0 d0 = {0.8422, 0.1684, 1.6840}
Na próxima iteração, k = 1, tem-se:
t
g1 = ∇f (x1 ) = {−0.7888, 1.1900, 0.2754}
( )t
0 g1 Q d0
β = t = 0.01678
(d0 ) Q d0
t
d1 = −g1 + β 0 d0 = {0.8726, −1.1730, −0.1076}
( )t
1 − g1 d1
α = t = 0.4381
(d1 ) Q d1
t
x2 = x1 + α1 d1 = {1.2250, −0.3455, 1.6370}
Para a segunda iteração tem-se:
t
g2 = ∇f (x2 ) = {−0.5008, −0.3992, 0.2903}
34 CAPÍTULO 3. MÉTODOS DE OTIMIZAÇÃO SEM RESTRIÇÕES (OSR)
( 2 )t
1 g Q d1
β = t = 0.2339
(d1 ) Q d1
t
d2 = −g2 + β 1 d1 = {0.7049, 0.1248, −0.3155}
( )t
2 − g2 d2
α = t = 6.775
(d2 ) Q d2
t
x3 = x2 + α2 d2 = {6.0000, 0.5000, −0.5000}
Notar que, como f é uma função quadrática de três variáveis, é esperado que:
t
g3 = ∇f (x3 ) = {0, 0, 0}
O método de Fletcher–Reeves é uma adaptação do Método dos Gradientes Conjugados que o torna capaz
de ser usado para minimizar uma função qualquer f (x) e não apenas uma função quadrática q(x). Para
tanto, duas alterações são feitas no algoritmo correspondente ao método dos Gradientes Conjugados: (a) o
cálculo de αk (vide passo 5 do algoritmo correspondente ao método dos Gradientes Conjugados) passa a ser
feito por meio de busca unidimensional; e (b) o cálculo de β k (vide passo 9 do mesmo algoritmo) passa a ser
feito utilizando-se a expressão (3.64), que é computacionalmente mais eficiente por envolver apenas produtos
de vetores:
( k+1 )t k+1
k g g
β = t (3.64)
(gk ) gk
dk = −Sk gk (3.71)
( ) −1
onde Sk é uma aproximação da inversa da matriz Hessiana, Hk .
Quando o método Quase-Newton utiliza uma aproximação da inversa da Hessiana na expressão de dk ,
diz-se que o método é de atualização inversa e quando se utiliza uma aproximação da Hessiana para obtenção
de dk , diz-se que o método é de atualização direta. O método de aproximação inversa tem a grande vantagem
de dispensar o cálculo da inversa de Hk ou a solução de um sistema de equações lineares para se obter a
direção de busca, como indicado a seguir:
Hk dk = −gk (3.72)
A fórmula de recorrência dos métodos Quase-Newton pode ser expressa por:
xk+1 = xk − αk Sk gk (3.73)
onde αk é obtido por busca unidimensional.
A idéia básica por trás de todos os métodos Quase-Newton é a de poder minimizar uma função quadrática
q(x), sendo x um vetor de n variáveis, em n+1 passos. Isso equivale a se obter a verdadeira inversa da matriz
Hessiana de q(x), aqui denominada de Q−1 , depois de n passos. No passo n + 1 a solução é obtida. Nesse
sentido, ele é equivalente ao método dos Gradientes Conjugados que também converge no mesmo número de
passos.
Para efeito de comparação, o método de Newton-Raphson realizaria tal tarefa em apenas um passo en-
quanto o método de Powell necessitaria de (n+1)2 passos. Vale dizer, todavia, que o trabalho computacional
para cada um dos passos dos diferentes métodos é bem diferente.
Apesar dos métodos Quase-Newton terem sido desenvolvidos com base na idéia de minimizar funções
quadráticas em n + 1 passos, eles não foram pensados para se limitar apenas à solução dessa tarefa. As
expressões desenvolvidas para a atualização da aproximação da inversa da Hessiana da função quadrática
q(x) podem ser utilizadas para aproximar a inversa da Hessiana de qualquer função f (x) e é aı́ que reside o
36 CAPÍTULO 3. MÉTODOS DE OTIMIZAÇÃO SEM RESTRIÇÕES (OSR)
interesse nesses métodos. Nesse caso, não há garantia de convergência para a solução num dado número de
passos.
As fórmulas para a atualização da aproximação da inversa da Hessiana Sk utilizam informações obtidas
em iterações anteriores, como o vetor do incremento do passo δ kx e o vetor de incremento do gradiente δ kg ,
ou seja:
k
δ x = xk+1 − xk
(3.74)
k
δ g = gk+1 − gk
Seja a função quadrática q(x):
1 t
q(x) = x Q x − bt x (3.75)
2
g(x) = Q x − b (3.76)
Definindo-se os seguintes vetores:
g k = Q xk − b (3.77)
( )
gk+1 − gk = Q xk+1 − xk (3.79)
ou ainda:
δ kg = Q δ kx (3.80)
δ kx = Q−1 δ kg (3.81)
A Expressão (3.80) é denominada equação secante ou Quase-Newton.
Se forem gerados n vetores δ kx linearmente independentes e com eles forem obtidos n vetores δ kg por meio
da equação Quase-Newton, é possı́vel agrupar os vetores δ kx na matriz D e os vetores δ kg na matriz Q e
reescrever as Equações (3.80) e (3.81) da seguinte forma:
Q=QD (3.82)
ou:
D = Q−1 Q (3.83)
ou ainda:
Q = Q D−1 (3.84)
As aproximações para a inversa de Q vão sendo geradas sucessivamente ao final de cada iteração. Quando
se chega ao ponto xk ; gera-se a aproximação Sk para Q−1 com as informações das iterações passadas δ kx e
δ kg ; obtém-se αk por busca unidimensional; e avança-se para o próximo ponto:
xk+1 = xk − αk Sk gk (3.85)
A matriz Sk+1 gerada no novo ponto xk+1 , na iteração k + 1, deve satisfazer a equação Quase-Newton
δ kx = Sk+1 δ kg (3.89)
Substituindo-se Sk+1 pela expressão básica de correção de posto um (3.87) , chega-se a:
( )t
δ kx = Sk δ kg + ak zk zk δ kg (3.90)
Duas expressões podem ser obtidas da expressão (3.90). A primeira é obtida explicitando-se o vetor zk ,
ou seja:
δ kx − Sk δ kg
zk = t (3.91)
ak (zk ) δ kg
( )t
e a segunda é obtida fazendo-se o produto interno da expressão (3.90) por δ kg :
( )t ( )t [( )t ]2
δ kg δ kx − δ kg Sk δ kg = ak zk δ kg (3.92)
ou, alternativamente:
( )t ( ) [( )t ]2
δ kg δ kx − Sk δ kg = ak zk δ kg (3.93)
Substituindo-se a expressão obtida para zk na fórmula básica de recorrência que permite obter Sk+1 no
método de correção de posto um, chega-se a:
( )( )t
ak δ kx − Sk δ kg δ kx − Sk δ kg
Sk+1 = Sk + [ ] [ ] (3.94)
t t
ak (zk ) δ kg ak (zk ) δ kg
ou:
( )( )t
δ kx − Sk δ kg δ kx − Sk δ kg
Sk+1 = Sk + [ ]2 (3.95)
t
ak (zk ) δ kg
A expressão (3.96) é a proposta para a atualização da inversa de Q para a correção de posto um. Ela foi
obtida fazendo-se i = k na equação Quase-Newton. Todavia, a aproximação da inversa de Q deve satisfazer
a equação Quase-Newton para valores de i < k, ou seja:
xi+1 = xi − αi Si gi , i = 0, 1, · · · (3.98)
i+1
A obtenção da aproximação S nesse ponto é feita calculando-se em sequência:
gi+1 (3.99)
δ ix = xi+1 − xi (3.100)
δ ig = gi+1 − gi (3.101)
( )( )t
i+1
δ ix − Si δ ig δ ix − Si δ ig
i
S =S + ( i )t ( i ) (3.102)
δg δ x − Si δ ig
ou:
( )t
Si+1 = Si + yi δ ix − Si δ ig (3.103)
onde:
δ ix − Si δ ig
y i = ( )t ( ) (3.104)
δ ig δ ix − Si δ ig
Quando se chega ao ponto xk+1 e se obtém Sk+1 , deve-se ter:
δ 0x = S1 δ 0g (3.106)
onde:
k
δ kx − Sk δ kg
y = ( )t ( ) (3.108)
δ kg δ kx − Sk δ kg
onde:
( )t ( )t
δ kx δ ig − δ kg δ ix = 0 (3.110)
pois:
δ ig = Q δ ix e δ kg = Q δ kx (3.111)
assim:
Sk+1 δ ig = δ ix (3.112)
Dá-se o nome de atualização de posto dois, pelo fato da matriz que se adiciona a Sk ser de posto dois.
ou ainda,
[ ( )t ] [ ( )t ] ( )t
Sk+1 = I − γ k δ kx δ kg Sk I − γ k δ kg δ kx + γ k δ kx δ kx (3.115)
onde:
1
γk = ( )t (3.116)
δ kg δ kx
O método BFGS pode ser implementado de uma forma alternativa muito mais eficiente, conforme indicado
a seguir:
[ ( )t ] k [ ( )t ]
Sk+1 = I + wk vk S I + vk wk (3.117)
É importante observar que durante a implementação do algoritmo, Sk+1 não deve ser obtida explicita-
mente de Sk , como indicado na Equação (3.117), mas, alternativamente, deve-se obter dk+1 diretamente
como indicado na expressão (3.118). Nota-se que S0 deve ser igual à matriz identidade I ou a β I, onde β
é um escalar ≪ 1. Sendo assim, a expressão (3.118) só apresenta operações de produtos de vetores que é
muito mais eficiente, do ponto de vista computacional, do que operações de produtos de matrizes por vetores,
como seria necessário caso Sk+1 fosse efetivamente calculada. Por outro lado, vale observar que para aplicar
a expressão (3.118), é necessário armazenar todos os vetores vk e wk desde a iteração 0 até a iteração k.
Recomenda-se, todavia, guardar somente os 10 últimos vetores vk e wk e, caso não haja convergência nesse
ciclo de 10 iterações, começar um novo ciclo com S0 = I.
[ ( )t ] [ ( )t ] [ ( )t ] [ ( )t ] k+1
dk+1 = − I + wk vk · · · I + w0 v0 S0 I + v0 w0 · · · I + vk wk g (3.118)
40 CAPÍTULO 3. MÉTODOS DE OTIMIZAÇÃO SEM RESTRIÇÕES (OSR)
[ ( )t ] [ ( )t ]
I + w0 v0 S0 I + v0 w0
|[ {z }
1
( 1 )t ] 1 [ 1
( 1 )t ]
I+w v S I+v w
| {z } (3.119)
..
[ ( ) ]. [ ( )t ]
t
dk+1 = − I + wk vk Sk I + vk wk gk+1
onde:
[ √ ]
(dk )t δkg
(δkx )t gk − g
k k k k+1
v =g 1+α
(3.120)
δk
wk = x
t
( )
k
δx δk
g
• Iteração k + 1
No problema geral de otimização com restrições, deve-se minimizar uma função f (x), com as variáveis x
submetidas a restrições, que podem ser de igualdade, desigualdade e/ou laterais, conforme indicado a seguir:
min f (x)
s.t. hk (x) = 0, k = 1...m (4.1)
cl (x) ≤ 0, l = 1 . . . p
xi l ≤ xi ≤ xi u , i = 1 . . . n
As restrições laterais limitam o valor da variável xi ao valor mı́nimo de xli e ao valor máximo de xui .
st ∇h∗k = 0 (4.4)
A série de Taylor de primeira ordem para a função objetivo f (x), em torno do ponto x∗ e com um passo
s, é dada por:
41
42 CAPÍTULO 4. FUNDAMENTOS DE OTIMIZAÇÃO COM RESTRIÇÕES (OCR)
st g ∗ ≤ 0 (4.6)
∗
Mostra-se que, se g for expresso por:
∑
m
∗
g =− λ∗k ∇h∗k (4.7)
k=1
A prova de que a condição acima é necessária e suficiente para que x∗ seja um mı́nimo local é dada por
contradição. Se a condição (4.7) não for necessária, pode-se então escrever:
∑
m
∗
g =u − λ∗k ∇h∗k (4.8)
k=1
onde o vetor u ̸= 0 é uma componente do vetor g∗ ortogonal aos vetores ∇h∗k , ou seja, que não pertence
ao espaço definido pela base de vetores ∇h∗k . Imagine-se que, a partir de x∗ , é dado um passo s = −u. Logo,
s satisfaz:
st g ∗ ≤ 0 (4.10)
∗
Substituindo-se s por −u na Equação (4.10) e g pela expressão (4.8) obtém-se:
[ ]
∑m
st g∗ = −ut u − λ∗k ∇h∗k = − ∥u∥ + 0 ≤ 0
2
(4.11)
k=1
Ao se supor que g∗ não está no espaço definido pelos vetores ∇h∗k , foi possı́vel encontrar um passo
s = −u, que era, ao mesmo tempo, viável e de decréscimo, o que não é possı́vel se x∗ for um mı́nimo local.
Conclui-se, então, que s deve ser nulo e que g∗ deve pertencer ao espaço cuja base é definida pelos vetores
∇h∗k . A expressão (4.7) apresenta, portanto, uma condição necessária de primeira ordem para que x∗ seja
um mı́nimo local do problema de otimização com restrições de igualdade definido em (4.2). Esta condição
conduz ao método dos multiplicadores de Lagrange.
∑
m
g(x∗ ) = − λ∗k ∇hk (x∗ ) (4.12)
k=1
hk (x∗ ) = 0, k = 1, . . . m (4.13)
4.1. CONDIÇÕES DE MÍNIMO NO PROBLEMA DE OCR 43
∑
m
L(x, λ) = f (x) + λk hk (x) (4.14)
k=1
∂L(x, λ) ∑ m
= g(x∗ ) + λ∗k ∇hk (x∗ ) = 0 (4.15)
∂x
k=1
∂L(x, λ)
= hk (x∗ ) = 0, k = 1...m (4.16)
∂λk
As Equações (4.15) e (4.16) correspondem exatamente às condições de primeira ordem que um ponto x∗
deve satisfazer para ser um mı́nimo local do problema de otimização com restrições de igualdade. Em outras
palavras, se x∗ e λ∗ forem um ponto estacionário da função Lagrangeana, eles serão, respectivamente, o
vetor que representa o mı́nimo local e vetor com os multiplicadores de Lagrange associados ao problema de
minimização com restrições de igualdade.
Serão consideradas apenas as restrições j ativas1 em x∗ . Para que o passo s seja viável a partir de x∗ , é
preciso que a restrição cj seja satisfeita em (x∗ + s). Como ela é ativa em x∗ , isso significa que:
st ∇c∗j ≤ 0 (4.19)
Como visto anteriormente no caso de restrições de igualdade, se x∗ é um mı́nimo local, então, não devem
existir nem passos viáveis e nem de decréscimo de f (x) em x∗ . Vale lembrar que, passos de decréscimo são
aqueles que satisfazem à expressão:
st g ∗ ≤ 0 (4.20)
∗
Mostra-se que, se, para as restrições ativas j, g for expresso por:
∑
g∗ = − µ∗j ∇c∗j (4.21)
j
e
µ∗j ≥ 0 (4.22)
então, não haverá nem passos viáveis e nem de decréscimo em x∗ e, consequentemente, esse ponto cor-
responderá a um mı́nimo local. A prova se dará por contradição.
st ∇c∗j = 0, j ̸= q (4.23)
e
st ∇c∗q = −1 (4.24)
Nota-se que o passo s, definido acima, é viável pois s t
∇c∗j
≤ 0 para todo j, inclusive j = q. Agrupando-
se todos os vetores coluna ∇c∗j em uma matriz, denominada A∗ , as Equações (4.23) e (4.24) podem ser
reescritas como:
(A∗ ) s = −eq
t
(4.25)
onde eq é um vetor com tantos elementos nulos quantos forem as restrições ativas menos um, o elemento
correspondente à linha q, que vale −1. Logo, pode-se escrever:
[ ]+
s = (A∗ )
t
eq (4.26)
onde o sı́mbolo “+” significa a inversa generalizada2 de (A∗ ) . Supondo-se m restrições ativas e sabendo-
t
se que o vetor s tem a dimensão do vetor x, ou seja n, a matriz (A∗ ) terá a dimensão m × n, e sua inversa
t
generalizada n × m.
O conceito de matriz inversa generalizada é aplicado a matrizes retangulares. Seja uma matriz retangular
Bm×n . Chama-se inversa generalizada à esquerda de Bm×n a matriz B+ n×m com a seguinte propriedade:
B+
n×m Bm×n = In×n (4.27)
onde In×n é a matriz identidade de ordem n. Pode-se adiantar que uma maneira simples de se obter a
inversa generalizada à esquerda da matriz Bm×n é:
[ t ]−1 t
B+
n×m = Bn×m Bm×n Bn×m (4.28)
pois:
[ t ]−1 [ t ]
B+
n×m Bm×n = Bn×m Bm×n Bn×m Bm×n = In×n (4.29)
Verifica-se agora se a direção viável s definida na Equação (4.26) é também uma direção de decréscimo,
levando-se em consideração as relações entre g∗ , ∇c∗j e µ∗j (vide expressões 4.21 e 4.22), ou seja:
∑
st g∗ = −st µ∗j ∇c∗j = µ∗q (4.30)
j
Vê-se, nesse caso, que a direção viável s não é de decréscimo, pois o produto interno entre os vetores
g∗ e s deveria ser negativo para se ter uma direção de decréscimo, e ele é maior ou igual a zero por ser
igual a µ∗q . Portanto, para direções estacionárias s, ou seja, aquelas para as quais st g∗ = 0, as condições de
Karush-Kuhn-Tucker (KKT) de primeira ordem são dadas por:
∑
g∗ = − µ∗l ∇c∗l , l = 1...p (4.31)
l
∗
cl (x ) ≤ 0, l = 1...p (4.32)
∑
m ∑
p
L(x, λ, µ) = f (x) + λk hk (x) + µl cl (x)
k=1 l=1
e as condições necessárias (condições de primeira ordem) de KKT são dadas pelas seguintes expressões:
∑ ∑
g∗ = − λ∗k ∇h∗k − µ∗l ∇c∗l , k = 1...m ; l = 1...p
k l
∗
hk (x ) = 0, k = 1...m
cl (x∗ ) ≤ 0, l = 1...p
µ∗l ≥ 0, l = 1...p
∑
m
L(x∗ + s, λ∗ ) = f (x∗ + s) + λ∗k hk (x∗ + s) (4.35)
k=1
∑
m
L(x∗ , λ∗ ) = f (x∗ ) + λ∗k hk (x∗ ) (4.37)
k=1
e
hk (x∗ ) = 0, k = 1...m (4.38)
Da condição de primeira ordem vale:
∇L∗ = 0 (4.39)
46 CAPÍTULO 4. FUNDAMENTOS DE OTIMIZAÇÃO COM RESTRIÇÕES (OCR)
st W∗ s ≥ 0 (4.44)
Em outras palavras, se s é um vetor numa direção viável, ou seja:
st ∇h∗k = 0 (4.45)
a Hessiana da função Lagrangeana deve ser positiva semi–definida em relação ao vetor s, das direções
viáveis estacionárias.
∑
p
∗ ∗ ∗
L(x + s, µ ) = f (x + s) + µ∗l cl (x∗ + s) (4.46)
l=1
∑
p
∗ ∗ ∗
L(x , µ ) = f (x ) + µ∗l cl (x∗ ) (4.48)
l=1
e,
cl (x∗ ) ≤ 0, l = 1...p
µ∗l ≥ 0, l = 1...p (4.49)
µ∗l c∗l = 0, l = 1...p
e a condição de primeira ordem impõe:
∇L∗ = 0 (4.50)
Pode-se reescrever a aproximação de Taylor como:
4.1. CONDIÇÕES DE MÍNIMO NO PROBLEMA DE OCR 47
1 t
L (x∗ + s, µ∗ ) = f (x∗ ) +s W∗ s (4.51)
2
Todavia, no ponto x∗ e para um passo s viável a partir de x∗ sobre as restrições ativas j, pode-se escrever:
st W ∗ s (4.53)
pois, pelo exposto acima:
∑
p
1 t
f (x∗ + s) + µ∗l cl (x∗ + s) = f (x∗ ) + s W∗ s (4.54)
2
l=1
ou:
∑
p
1 t
f (x∗ + s) − f (x∗ ) = − µ∗l cl (x∗ + s) + s W∗ s (4.55)
2
l=1
Observe-se que, para as restrições inativas, as parcelas do somatório são nulas, uma vez que µ∗l = 0. As
parcelas relativas às restrições ativas são positivas no somatório. Sendo assim, vale o seguinte raciocı́nio:
uma parcela positiva (à esquerda do sinal de igualdade), deve ser igual a soma de uma parcela positiva
(primeira parcela à direita do sinal de igualdade) com uma outra parcela (segunda parcela à direita do sinal
de igualdade) que pode ter qualquer sinal, uma vez que se desconhece o valor relativo das duas parcelas
anteriores. Se, todavia, for imposto que:
cj (x∗ + s) = 0 (4.56)
isto significa afirmar que:
st ∇c∗j = 0 (4.57)
pois, pela expansão de primeira ordem em série de Taylor:
st W∗ s ≥ 0 (4.59)
∗
Vale observar que, se s satisfaz a Equação (4.57) e, no ponto x tem-se:
∑
g∗ = − µ∗j ∇c∗j (4.60)
j
então:
∑
st g∗ = −st µ∗j ∇c∗j = 0 (4.61)
j
E assim, s é uma direção estacionária, ou seja, que não produz decréscimo nem acréscimo na função
objetivo f avaliada em x∗ , já que na expansão em série de Taylor de f (x) em torno de x∗ , o produto
apresentado na Equação (4.61) representa a variação da função nesse ponto. Mais ainda, s é uma direção
viável e estacionária.
48 CAPÍTULO 4. FUNDAMENTOS DE OTIMIZAÇÃO COM RESTRIÇÕES (OCR)
st ∇c∗j = 0 (4.62)
então, a Hessiana da função Lagrangeana deve ser positiva semi-definida em relação ao vetor s, que
representa direções viáveis estacionárias, ou seja:
st W∗ s ≥ 0 (4.63)
dL∗ df ∗
= =λ (4.64)
dε dε
onde L∗ e f ∗ são, respectivamente, os valores de L e f avaliados na solução x∗ .
Para se demonstrar a expressão (4.64) deve-se começar imaginando uma perturbação ε na restrição de
igualdade h(x), ou seja:
h(x) = ε (4.65)
A expressão da função Lagrangeana do problema de otimização na solução, onde x = x∗ e λ = λ∗ , como
função da perturbação ε em uma restrição de igualdade h(x) é dada por:
dL ∂L dx ∂L dλ ∂L
= + + (4.67)
dε ∂x dε ∂λ dε ∂ε
como, na solução, as condições de KKT impõem que:
∂L∗ ∂L∗
=0 e =0
∂x ∂λ
então:
dL ∂L
= =λ (4.68)
dε ∂ε
Por outro lado,
h(x) − ε = 0 (4.71)
e, consequentemente:
4.3. DUALIDADE DE WOLFE 49
dh(x)
−1=0 (4.72)
dε
assim, pode-se afirmar que:
dL df
= (4.73)
dε dε
e, finalmente, chega-se a:
df
=λ (4.74)
dε
Pode-se interpretar a expressão (4.74) da seguinte maneira: se o multiplicador de Lagrange tem um
valor alto, isso significa que qualquer relaxação na restrição a ele associada, vai significar uma alteração
correspondente na função objetivo. Essa informação, pode auxiliar o projetista, na comparação do grau de
importância de cada restrição no valor da função objetivo obtido na otimização.
∑
m ∑
p
L(x, λ, µ) = f (x) + λk hk (x) + µl cl (x) (4.76)
k=1 l=1
• O valor da função objetivo na solução do PP, f (x∗ ), é igual ao valor da função objetivo na solução do
PD, L(x∗ , λ∗ , µ∗ ).
∑
m ∑
p
L(x∗ , λ∗ , µ∗ ) = f (x∗ ) + λ∗k hk (x∗ ) + µ∗l cl (x∗ ) (4.78)
k=1 l=1
e as condições de KKT:
∑ ∑
g∗ = − k λ∗k ∇h∗k − l µ∗l ∇c∗l , k = 1...m ; l = 1...p
hk (x∗ ) = 0, k = 1...m
cl (x∗ ) ≤ 0, l = 1...p
µ∗l ≥ 0, l = 1...p
∑
m ∑
p
L(x∗ , λ, µ) = f (x∗ ) + λk hk (x∗ ) + µl cl (x∗ ) (4.81)
k=1 l=1
Impondo-se as restrições:
∑
m ∑
p
λk hk (x∗ ) + µl cl (x∗ ) ≤ 0 (4.84)
k=1 l=1
uma vez que:
hk (x∗ ) = 0 e cl (x∗ ) ≥ 0
Considerando-se, como suposto inicialmente, que a função Lagrangeana L é convexa, tem-se:
∂L(x, λ, µ)
L(x∗ , λ, µ) ≥ L(x, λ, µ) + (x∗ − x)
t
(4.85)
∂x
Se for imposta a restrição:
4.3. DUALIDADE DE WOLFE 51
∂L(x, λ, µ)
=0 (4.86)
∂x
então, pode ser dito que:
∂L(x, λ, µ)
= 0, λ≥0 e µ≥0
∂x
Logo, resolvendo-se o seguinte problema:
max L(x, λ, µ)
∂L(x,λ,µ)
s.t. =0 (4.90)
∂x
λ ≥ 0, k = 1...m
k
µl ≥ 0, l = 1...p
que é o problema dual de Wolfe, obtém-se como solução, x = x∗ , λ = λ∗ e µ = µ∗ , pois esses são os valores
que maximizam L(x, λ, µ), caso sejam impostas as restrições mencionadas.
∂L(x, λ, π)
=c+Aλ−π (4.93)
∂x
Parte-se agora para formular o problema dual associado ao problema primal, ou seja:
max ct x + λt (At x − b) − π t x + f0
s.t. c+Aλ−π =0 (4.94)
λ≥0
π≥0
52 CAPÍTULO 4. FUNDAMENTOS DE OTIMIZAÇÃO COM RESTRIÇÕES (OCR)
Q x∗ = −A λ∗ − f (4.103)
Capı́tulo 5
Historicamente, as primeiras tentativas de se resolver o problema de otimização com restrições (OCR) foram
feitas utilizando-se os métodos indiretos, nomeadamente, os métodos de penalidade e os de barreira. Esses
métodos resolvem problemas de OCR por meio de uma sequência de soluções de problemas de OSR. Para
que isso seja possı́vel, as restrições dos problemas de OCR são incorporadas à função objetivo criando-se as
chamadas funções de penalidade (e de barreira) que são usadas nos problemas de OSR. A idéia da função de
penalidade (e de barreira) é criar um alto custo pela violação das restrições o que força a solução a atender
as restrições.
Os métodos indiretos apresentam, em geral, dificuldades computacionais e por isso vêm sendo substituı́dos
pelos métodos diretos. Eles têm, no entanto, o atrativo de serem métodos simples de se resolver problemas de
OCR e apresentam uma importância histórica no desenvolvimento de métodos de programação matemática.
1. Escolher uma sequência de valores para rp tendendo a infinito, com k a partir de 1, por exemplo:
rpk = 10k−1 , e um valor inicial x = x0 ;
2. Para cada rpk , formar a função de penalidade Φ(x, rpk ), conforme indicado acima, e obter xk resolvendo-
se o seguinte problema de OSR:
3. Repetir a operação indicada no item 2 com o valor inicial da iteração k igual ao valor obtido na
otimização da iteração k − 1.
53
54 CAPÍTULO 5. MÉTODOS INDIRETOS EM OCR
Mostra-se agora que o ponto limite do método de penalidade, xk , converge para x∗ . Para tal, parte-se
inicialmente para se mostrar que, se rpk → ∞, então:
As duas parcelas à esquerda da desigualdade acima são positivas, já que o produto das duas é positivo e a
primeira delas também é positiva (pois rpl > rpk ). Como a segunda parcela da desigualdade acima é positiva,
então:
[ ]2 [ ]2
h(xk ) ≥ h(xl ) (5.13)
o que demonstra 2.
Voltando-se para a primeira das desigualdades apresentada nessa demonstração, ou seja:
5.1. MÉTODO DE PENALIDADE 55
A dedução acima pode ser facilmente generalizada para várias restrições de igualdade. Nesse caso, a nova
função de penalidade seria dada por:
1 ∑
m
2
Φ(x, rp ) = f (x) + rp [hk (x)] (5.21)
2
k=1
1 ∑
p
2
Φ(x, rp ) = f (x) + rp {max [0, cl (x)]} (5.24)
2
l=1
56 CAPÍTULO 5. MÉTODOS INDIRETOS EM OCR
f,f
rk<rk+1
f(r3)
f(r2) f(x)=ax1
f(r1) f3* *
x
f2*
f1*
x1=b x1
2
Cj{cj(x)}={min[0,cj(x)]}
∑
p
−1
Φ(x, rb ) = f (x) + rb [cl (x)] (5.25)
l=1
∑
p
2
Φ(x, rb ) = f (x) + rb {log [cl (x)]} (5.26)
l=1
No caso de funções de barreira, a sequência rbk no processo iterativo deve tender para zero, ou seja:
1 ∑
m
2
∑
p
−1
Φ(x, rp , rb ) = f (x) + rp [hk (x)] + rb [cl (x)] (5.28)
2
k=1 l=1
f,f
f(x,r1)
f(x,r2)
rk>rk+1 f(x,r3)
f1*
f2*
f3* f(x)=ax1
*
x
x1=b x1
Cj{cj(x)}=1/cj(x)
No capı́tulo 5 foi visto como resolver problemas de OCR usando métodos indiretos que transformam o
problema de OCR num problema de OSR equivalente e resolve esse último. Nesse capı́tulo serão estudados
os métodos diretos de solução de problemas especiais em OCR, nomeadamente, o problema de Programação
Linear (PL) e o Problema de Programação Quadrática (PQ). Os métodos diretos para resolver problemas
de OCR estão relacionados ao tipo de problema em questão. Assim, o Método Simplex é um método para se
encontrar a solução de problemas de PL, o algoritmo de Lemke é um algoritmo para se resolver problemas de
PLC, e, como tal, pode ser empregado também para se obter a solução de problemas de PQ, etc.. Exemplos
de aplicação em engenharia civil serão formulados e resolvidos pelos algoritmos propostos.
6.1.1 Introdução
O problema de Programação Linear (PL) é um problema de otimização onde a função objetivo e as restrições
são funções lineares de variáveis não negativas.
O problema de PL com 2 variáveis pode ser resolvido graficamente como exemplificado a seguir.
Seja o problema:
59
60 CAPÍTULO 6. PROBLEMAS ESPECIAIS EM OCR
6
5x1 + 2x 2 = 10
f=-12.37
4
x2
A f=-18
2
f=-6
3x1 + 5x 2 = 15
1
f=-2
0
0 1 2 3 4 5 6
x1
Na Figura (6.8) a área cinza representa a região viável, ou seja, a região dos pontos que satisfazem todas
as restrições do problema.
As Figuras abaixo ilustram graficamente que o problema de PL pode ter soluções ilimitadas (Figura 6.2(a)),
não ter solução, caso as restrições sejam incompatı́veis tornando a região viável inexistente (Figura 6.2(b)),
ter várias soluções (Figura 6.2(c)), ou ainda, apresentar solução apesar de ter restrições redundantes (Fi-
gura 6.2(d)).
6.1. O PROBLEMA DE PROGRAMAÇÃO LINEAR (PL) 61
direção de
crescimento de f
x2
direção de
x2
crescimento de f
x1 x1
direção de
crescimento de f
x2
direção de
x2
crescimento de f
x1 x1
Como um exemplo prático, o problema da otimização da produção de uma oficina, ilustra bem o problema
de PL.
Seja uma oficina que possui três tipos de máquinas A, B e C que podem produzir quatro tipos de
produtos 1, 2, 3 e 4. Cada um dos produtos tem que passar por alguma operação em cada um dos três tipos
de máquinas (máquina de tornear, perfurar e laminar, por exemplo). Considere-se que o tempo para passar
o produto de uma máquina para outra é desprezı́vel. A Tabela 6.1.1 mostra na primeira coluna o número
de horas requeridas em cada máquina A, B e C para produzir uma unidade do produto do tipo 1 e por
último o lucro obtido com a venda de uma unidade desse produto. As segunda, terceira e quarta colunas
mostram os mesmos dados para a produção de uma unidade do produto do tipo 2, 3 e 4, respectivamente.
Na última coluna, à direita, está o tempo total em horas que cada tipo de máquina pode ser utilizada por
semana considerando-se que se tenha 50 máquinas do tipo A, 200 do tipo B e 125 do tipo C e uma semana
de 40 horas semanais.
Suponha que xj seja o número de unidades do tipo j produzidas por semana.
Pretende-se saber quantas unidades devem ser produzidas do tipo 1, 2, 3 e 4 para que o lucro da oficina
seja máximo, como definido na Equação (6.2).
Considerem-se as restrições impostas pelo tempo de disponibilidade de cada máquina por semana,
62 CAPÍTULO 6. PROBLEMAS ESPECIAIS EM OCR
a = λ1 a1 + λ2 a2 + · · · + λk ak (6.4)
Para arbitrários λi .
Um conjunto de vetores a1 , . . . , am pertencentes a E m é dito ser linearmente dependente (LD) se existe
escalares λi , não todos nulos, tais que:
λ1 a1 + λ2 a2 + · · · + λm am = 0 (6.5)
Se o único conjunto de escalares λm para a qual a expressão (6.5) permanece válida for
λ1 = λ2 . . . = λm = 0 (6.6)
Então os vetores são chamados de linearmente independente (LI).
Uma definição alternativa para um conjunto de vetores linearmente dependentes é que: um conjunto de
vetores a1 , . . . , am pertencentes a Em é linearmente dependente se, e somente se, um dos vetores for uma
combinação linear dos outros.
∑
m−1 ∑
m−1
am = λi ai ou λi ai − am = 0 (6.7)
λ=1 i=1
∑
m−1
λi
am = − ai (6.8)
λm
λ=1
6.1.2.2 Bases
Uma base para En é um subconjunto de vetores de En linearmente independentes (LI) que geram todo o
espaço En .
Um espaço En pode ter um número infinito de bases. A representação de um vetor do espaço En numa
dada básica é única. Para provar isto, seja um vetor b pertence a En e um conjunto a1 , . . . , ar uma base do
referido espaço. Se for possı́vel representar b de duas maneiras diferentes na mesma base vale:
∑
r ∑
r−1
b= λi ai e b= µ i ai (6.9)
i=1 i=1
ou, subtraindo
∑
r
(λi − µi )ai = 0 (6.10)
i=1
λi − µi = 0 i = 1, . . . , r (6.11)
e portanto a representação de b é única.
Seja uma base vetorial a1 , . . . , ar para En e um outro vetor b pertencente a En . O vetor b pode ser
representado na base dada como,
∑
r
b= αi ai (6.12)
i=1
Se qualquer vetor ai para o qual αi ̸= 0 for retirado da base e substituı́do por b, o novo conjunto é
também uma base.
Seja αr ̸= 0, então a1 , a2 , . . . , ar−1 , b forma uma nova base e portanto formam um conjunto LI.
Para provar que o novo conjunto é LI, pode-se começar supondo o contrário, ou seja, o novo conjunto
não é LI. Nesse caso vale:
∑
r−1
δi ai + δb = 0 (6.13)
i=1
∑
r−1
(δi + αi δ) ai + δαr ar = 0 (6.14)
i=1
e δαr ̸= 0. No entanto, isto contradiz o fato de que o conjunto ai , i = 1, . . . , r seja L.I. Portanto, a
hipótese inicial de que o conjunto formado por a1 , a2 , . . . , ar , b é LD levou a uma contradição e assim não é
verdadeira. Conclui-se então que o conjunto é L.I.
Seja o vetor x representado na base a1 , . . . , ar .
∑
r
x= γi ai (6.15)
i=1
64 CAPÍTULO 6. PROBLEMAS ESPECIAIS EM OCR
Ele pode ser representado na nova base a1 , . . . , ar−1 , b onde, b é o vetor definido em (6.12).
De (6.12) ar pode ser escrito como:
−αi ∑
r−1
1
ar = ai + ·b (6.16)
αr i=1 αr
r−1 (
∑ )
αi γr
x= γi − γ r ai − b (6.17)
i=1
αr αr
que expressa x como uma combinação linear de a1 , . . . , ar−1 ,b, logo, esse novo conjunto é uma base para
En .
Toda a base para En contém n vetores.
Inicialmente é necessário provar que toda base para En deve ter o mesmo número de vetores. Se as duas
bases para En forem a1 , . . . , au e b1 , . . . , bv , deve-se ter u = v.
Seja a representação de bv na base a1 , . . . , au .
∑
u
bv = λi ai com λu ̸= 0 (6.18)
i=1
∑
u−1
bv−1 = δi ai + δbv (6.19)
i=1
com pelo menos um δi ̸= 0 pois caso contrário, o conjunto dos vetores bj não seria L.I.
Seja δu−1 ̸= 0, então a1 , . . . , au−2 , bv−1 , bv é uma nova base para En .
Esse processo pode ser repetido até que se chegue a uma base com duas formas possı́veis, nomeadamente,
a1 , . . . , au−v , b1 , . . . , bv ou b1 , . . . , bv (6.20)
Ax = b (6.21)
onde Am×n , xn×1 e bm×1 , n > m e r(A) = m, ou seja, existem m colunas, m × 1, retiradas de A formam
um conjunto de vetores L.I.
Se uma submatriz qualquer B, m × m é formada com m vetores aj retirados de A, uma solução para o
sistema de Equações (6.21) pode ser encontrada com
xb = B−1 b (6.22)
e com todas as n − m variáveis não associadas às colunas retiradas de A iguais a zero. O vetor xb ,
m × 1, é chamado de solução básica de (6.21) e as m variáveis associadas às m colunas retiradas de A são
denominadas de variáveis básicas.
Uma solução básica é dita degenerada se uma ou mais das variáveis básicas se anula.
X = { x| P (x)} (6.23)
Indica que o conjunto de pontos X = {x} possui a propriedade P (x).
Em E2 , por exemplo, um conjunto de pontos limitado por uma circunferência de raio unitário com centro
na origem, isto é, o conjunto de pontos que satisfaz a desigualdade x21 + x22 < 1 pode ser representado por:
{ }
x = [x1 , x2 ]| x21 + x22 < 1 (6.24)
Uma hiperesfera em En com centro em a e raio ε > 0 pode ser definida como:
x = { x| | x − a| = ε } (6.25)
E o interior da hiperesfera
x = { x| | x − a| < ε } (6.26)
Uma vizinhança ε em torno do ponto a é definida como o conjunto de pontos no interior da hiperesfera
de centro em a e raio ε.
Um ponto a é um ponto interior de um conjunto A se existir uma vizinhança ε em torno de A que
contenha somente pontos do conjunto A.
O ponto a é um ponto limite (ou de acumulação) do conjunto A se toda vizinhança ε em torno de a
(indiferente de quão pequeno ε > 0 possa ser) contenha pontos que pertençam e pontos que não pertençam
ao conjunto A.
Um conjunto A é um conjunto aberto se contiver somente pontos interiores.
Um conjunto A é um conjunto fechado se contiver todos os pontos limites.
Um conjunto é um conjunto limitado inferiormente se existir um r com cada componente finito tal
que para todo a ∈ A, r ≤ a.
Em En , a reta que passa por dois pontos x1 e x2 , x1 ̸= x2 , pode ser definida como o conjunto de pontos.
x = { x| x = λx2 + (1 − λ) x1 ; 0 ≤ λ ≤ 1} (6.28)
Em En , o conjunto de pontos x que satisfaz
66 CAPÍTULO 6. PROBLEMAS ESPECIAIS EM OCR
ct x = 0 (6.30)
A expressão (6.30) implica que o vetor c seja normal a todo vetor x do hiperplano, ou seja, que c é
ortogonal ao hiperplano.
Sejam x1 e x2 dois pontos do hiperplano definido por (6.29) e z ̸= 0.
Nesse caso vale,
{ t
c x1 = z
(6.31)
ct x2 = z
Subtraindo a segunda da primeira expressão em (6.31), vem:
ct (x1 − x2 ) = 0 (6.32)
que significa que o vetor c é ortogonal a todo vetor x1 − x2 contido no hiperplano, ou seja, é ortogonal
ao hiperplano.
O vetor c é denominado então de vetor normal ao hiperplano e o vetor definido por
±c
(6.33)
|c|
é denominado vetor unitário normal ao hiperplano.
Dois hiperplanos são ditos paralelos se possuı́rem o mesmo unitário normal.
Seja o hiperplano
ct x = zo (6.34)
e o conjunto de pontos
x1 = x0 + λc com λ>0 e ct xo = zo
Deve-se observar que xo pertence ao hiperplano definido em (6.34) e x1 pertence ao hiperplano
2
ct (xo + λc) = zo + λ |c| = z1 com z1 > zo (6.35)
Assim os pontos x1 pertencentes ao hiperplano ct x1 = z1 satisfazem a ct x1 > zo .
Isto significa que o hiperplano ct x1 = z1 pode ser obtido deslocando-se o hiperplano ct xo = zo paralela-
mente a si mesmo na direção de c.
O hiperplano ct x = z divide o espaço En em três conjuntos mutuamente exclusivos e completos, nomea-
damente
X1 = { x| ct x < z}
X2 = { x| ct x = z} (6.36)
X3 = { x| ct x > z}
Os conjuntos X1 e X3 são chamados semi-espaços abertos. Se os sinais < e >, respectivamente em X1
e X3 , forem substituı́dos por ≤ e ≥ , os conjuntos são chamados de semi-espaços fechados. O hiperplano
formado pelo conjunto X2 pode ser definido como a interseção desses dois novos conjuntos fechados.
Um hiperplano é um conjunto fechado porque todo ponto pertencente a um hiperplano é um ponto limite.
Um conjunto é um conjunto convexo se, para dois pontos quaisquer x1 e x2 pertencentes ao conjunto,
o segmento de reta que une os dois pontos também pertencer ao conjunto.
Um conjunto convexo não pode conter “buracos” nem ser “reentrante”.
6.1. O PROBLEMA DE PROGRAMAÇÃO LINEAR (PL) 67
Um ponto x é um ponto extremo de um conjunto convexo se, e somente se, não houver outros dois
pontos x1 e x2 , x1 ̸= x2 , pertencentes ao conjunto, tais que:
x1
x2
x2
x1
O hiperplano é um conjunto convexo. Para provar essa afirmação basta observar que se x1 e x2 pertencem
ao hiperplano, isto é,
ct x1 = z e ct x2 = z (6.38)
então,
x = λx2 + (1 − λ)x1
também pertence ao hiperplano uma vez que
λx2 + (1 − λ) x1 ∈ X1 ∩ X2 = X3 , 0 ≤ λ ≤ 1 (6.41)
e deste modo, X3 é convexo. Se X1 e X2 são conjuntos fechados, X3 também é fechado. Para verificar
esse fato, basta notar que todo ponto limite de X3 é um ponto limite de X1 ou de X2 .
68 CAPÍTULO 6. PROBLEMAS ESPECIAIS EM OCR
Como X1 e X2 são fechados logo X3 contém todos os seus pontos limites e também é fechado.
Os resultados acima mostram que a interseção de um, número finito de hiperplanos, ou de semi-espaços
ou de ambos, é um conjunto convexo fechado.
Uma combinação convexa de um número finito de pontos x1 , . . . , xm é definida como
∑
m ∑
m
x= µi xi , µi ≥ 0, i = 1, . . . , m; µi = 1 (6.42)
i=1 i=1
O poliedro convexo gerado por n +1 pontos em En que não pertença a um hiperplano é chamado simplex.
Em E2 , um triângulo e seu interior formam um simplex. Os três pontos que geram um simplex são os
vértices do triangulo.
Seja o ponto ω no interior do triangulo como representado na Figura 6.4.
x2
w
x2
x1
x3
v
x1
v = λ1 x1 + (1 − λ1 )x3 ; 0 ≤ λ1 ≤ 1 (6.43)
ω = λ2 x2 + (1 − λ2 )v; 0 ≤ λ2 ≤ 1 (6.44)
Substituindo v em (6.44) vem
∑
3 ∑
3
ω= µi xi ; µi ≥ 0; µi = 0 (6.47)
i=1 i=1
1. Teorema I: Dado qualquer conjunto fechado X, um ponto y ou pertence ao conjunto X, por exemplo
y1 , ou existe um hiperplano que contém y, por exemplo y2 , tal que todo o conjunto X está contido
em um semi-espaço gerado por aquele hiperplano.
A Figura 6.5 esclarece:
t
c y2 = z
t
c y1 < z
x2
y2
y1
x1
2. Teorema II: Se w é um ponto limite de um conjunto convexo fechado, então há pelo menos um
hiperplano suporte de w.
3. Teorema III: Um conjunto convexo fechado que seja limitado inferiormente tem um ponto extremo
pertencente a cada hiperplano suporte.
A demonstração desse teorema será apresentada aqui devido a sua importância na compreensão do
algoritmo Simplex de programação linear.
O hiperplano ct x = z será suposto como hiperplano suporte de x0 para o conjunto convexo fechado
X, limitado inferiormente.
A interseção de X e S = { x| ct x = z} será expressa por T que não é um conjunto vazio porque x0 ∈ T .
Sendo X e S conjuntos convexos fechados, T também o será.
Vamos mostrar que qualquer ponto extremo de T é também um ponto extremo de X. Se t é um ponto
qualquer de T e, se
t
cw= z
t
cu< z
x2 w2
x1
então
x1 , x2 ∈T
ct x1 = ct x2 = z (6.50)
z = c1 x1 + c2 x2 + · · · + cr xr (6.51)
satisfazendo m desigualdades ou igualdades lineares da forma
U
T={X S}
x2
x0
x1
t
x2 t
S={x | c w = z}
É mais conveniente trabalhar com equações de igualdade do que com desigualdades. Por essa razão, as
restrições de desigualdades em (6.52) são transformadas em restrições de igualdade com o uso de variáveis de
folga ou de excesso. Outra transformação que deve ser feita inicialmente é aquela que faz com que todos os bi
sejam não-negativos, ou seja, bi ≥ 0. Para tanto, ambos os lados das equações com bi < 0 são multiplicados
por -1 e o sinal é invertido, caso a restrição seja de desigualdade.
Considere-se primeiramente as restrições de desigualdade do tipo ≤,
∑
r
ahj xj ≤ bh (6.53)
j=1
É possı́vel introduzir no lado esquerdo da desigualdade (6.53) uma variável não-negativa xr+h , denomi-
nada variável de folga de modo que a desigualdade pode ser reescrita como igualdade
∑
r
ahj xj + xr+h = bh (6.54)
j=1
∑
r
akj xj ≥ bk (6.55)
j=1
pode-se introduzir uma nova variável não-negativa xr+h , denominada variável de excesso e reescrever a
desigualdade (6.55) como restrição de igualdade,
∑
r
akj xj − xr+k = bk (6.56)
j=1
Ax = b (6.58)
72 CAPÍTULO 6. PROBLEMAS ESPECIAIS EM OCR
∑
r+v
z= cj xj (6.60)
j
ou matricialmente,
z = ct x (6.61)
onde c e x são vetores colunas (r + v) × 1
O problema de PL pode ser agora reescrito de forma sucinta como
min ou max z = ct x
s.t Ax = b (6.62)
x≥0
Sendo x e c vetores colunas n × 1, sendo n = r + v, b um vetor coluna m × 1 e A uma matriz m × n.
6.1.3.3 Redução de uma solução compatı́vel qualquer para uma solução compatı́vel básica
Nessa seção será mostrado que se houver uma solução compatı́vel para as equações de restrição em (6.62),
então há uma solução compatı́vel básica (ver eq. (6.22)), ou seja, com não mais que m variáveis diferentes
de zero.
Se r(A) = m, b pode ser escrito como uma combinação linear de m colunas L.I. de A.
Formalmente, pode-se enunciar:
Dado esse conjunto de m equações lineares simultâneas a n incógnitas (n ≥ m)
Bxb = b (6.65)
sendo B uma matriz m × m formada com m colunas L.I de A e com as demais n − m variáveis de x
iguais a zero, com x satisfazendo (6.64).
6.1. O PROBLEMA DE PROGRAMAÇÃO LINEAR (PL) 73
Seja uma solução compatı́vel com p ≤ n variáveis positivas. Supondo-se que as primeiras p variáveis
sejam positivas, a solução compatı́vel pode ser escrita
∑
p
x j aj = b (6.66)
j=1
com
xj > 0 (j = 1, . . . , p) e xj = 0 (j = p + 1, . . . , n) (6.67)
Os vetores aj são colunas de A associadas às variáveis xj , podendo ser L.I. ou L.D.
Para que os vetores aj sejam L.I, então p ≤ m já que r(A) = m.
Se p < m, então há (m − p) colunas de A que, junto com as p colunas, formam uma base para Em e
produzem uma matriz B, m × m, não singular. Assim, é possı́vel formar uma solução compatı́vel básica
degenerada com (m − p) das variáveis básicas iguais a zero.
Se p = m a solução compatı́vel básica é automaticamente uma solução compatı́vel básica não degenerada.
Resta examinar o caso p > m quando o conjunto dos vetores aj passa a ser L.D.
Nessas condições é possı́vel reduzir passo a passo o número de variáveis positivas até que as colunas
associadas às variáveis positivas sejam L.I., ou seja, até que se tenha m colunas.
Quando os aj (j = 1, . . . , p) são L.D., existe αj não todos nulos, tal que
∑
p
αj aj = 0 (6.68)
j=1
Usando a equação (6.68) é possı́vel reduzir algum xr na solução compatı́vel definida em (6.66) a zero.
Usando (6.68), qualquer vetor ar para o qual αr ̸= 0 pode ser expresso em termos dos p − 1 vetores
restantes. Assim
∑
p−1
αj
ar = − aj (6.69)
αr
j=1
j ̸= r
Substituindo em (6.66), vem:
∑
p−1 ( )
αj
xj − xr aj = b (6.70)
αr
j=1
j ̸= r
ou
∑
p−1
x̂j .aj = b (6.71)
j=1
j ̸= r
Em (6.71) temos uma solução com p-1 variáveis não-nulas. Entretanto, não há certeza de que todas as
novas variáveis x̂j sejam não-negativas. Para que a solução satisfaça plenamente (6.66), ou seja, para que
as novas variáveis x̂j sejam maiores do que zero, ou seja, compatı́veis, a escolha da variável a ser eliminada
não pode ser arbitrária.
O que se deseja é que
αj
x̂j = xj − xr ≥ 0 (j = 1, . . . , p) j ̸= r (6.72)
αr
Para qualquer j para o qual αj = 0, (6.72) será satisfeita automaticamente.
Quando αj ̸= 0 as seguintes condições devem ser satisfeitas
74 CAPÍTULO 6. PROBLEMAS ESPECIAIS EM OCR
xj
αj − xr
αr ≥ 0 se αj > 0
(6.73)
xj
αj − xr
αr ≤ 0 se αj < 0
x
As equações (6.73) podem ser interpretadas como: αjj deve estar entre o menor valor positivo e o maior
valor negativo entre todos o αxrr .
Desse modo, as equações (6.73) serão satisfeitas se
{ }
xr xj
= min , αj > 0 (6.74)
αr j αj
x
ou seja, a variável a ser eliminada deve ser a variável xr que corresponde ao menor valor de αjj com
αr > 0.
Deve haver sempre algum valor positivo de αj . Se todos forem negativos a equação (6.68) deve ser
multiplicada por −1.
Esse procedimento deve ser repetido até que as colunas correspondentes às variáveis positivas sejam L.I.
quando então chega-se a solução compatı́vel básica com m variáveis.
Ax = b (6.75)
sendo que para que a solução seja compatı́vel todo xj ≥ 0 (j = 1, . . . , n).
Seja a matriz B, m × m, formada com m colunas aj de A. as colunas de B formam uma base para o
espaço Em e ela é não singular porque suas colunas são L.I.
As colunas de B serão denominadas de b1 , . . . , bm . É importante notar que b1 pode ser qualquer coluna
de A, por exemplo, a17 e o mesmo vale para as outras colunas.
Qualquer coluna aj de A pode ser representada como uma combinação linear das colunas de B já que
estas formam uma base para o espaço vetorial Em .
∑
m
aj = bi yij = Byj (6.76)
i=1
ou
yj = B−1 aj (6.77)
O vetor yj contem as coordenadas do vetor aj na base B.
Qualquer matriz B determina uma solução básica xb com m componentes
xb = B−1 b (6.78)
Correspondendo a cada xb , pode-se obter um vetor cb com m componentes contendo os valores corres-
pondentes às variáveis básicas.
Os componentes de cb , ou seja, os cbi correspondem à variável básica xbi . Se a17 estiver na coluna 2 de
B, então cb2 = c17 .
Para qualquer solução básica xb , o valor da função objetivo z é dado por
z = ctb · xb (6.79)
Uma equação similar à equação (6.79) pode ser definida como
zj = ctb · yj (6.80)
6.1. O PROBLEMA DE PROGRAMAÇÃO LINEAR (PL) 75
xb = B−1 b (6.81)
Com B e xb é possı́vel obter
z = ctb · xb (6.82)
e
yj = B−1 aj
(6.83)
zj = ctb · yj
para toda coluna aj não pertencente a B.
Será provado mais adiante que a solução de um problema de PL é uma solução compatı́vel básica.
A idéia básica do Método Simplex é:
“Partindo-se de uma solução básica inicial, encontrar uma nova solução básica com valor da função
objetivo correspondente melhorado, ou seja, menor para um problema de minimização e maior para um
problema de maximização”.
Sabendo, a priori, que a solução do problema é uma solução compatı́vel básica, uma nova solução básica
deve ser obtida retirando-se uma coluna da base B e substituindo-a por uma coluna aj fora da base.
Duas dúvidas devem ser esclarecidas nesse processo:
Para responder a primeira questão é necessário obter as expressões da nova solução básica a partir da solução
básica anterior.
Seja a solução básica inicial dada por:
∑
m
xbi bi = b (6.84)
i=1
∑
m
aj = yij bi (6.85)
i=1
Então, um dado aj , pode substituir um dado br para o que yrj ̸= 0 e o novo conjunto fornecerá uma
nova base.
De (6.85) pode-se escrever:
1 ∑
m
yij
br = aj − · bi (6.86)
yrj yrj
i=1
i ̸= r
Substituindo-se a expressão da coluna br dada em (6.86) na expressão (6.84), obtém-se:
76 CAPÍTULO 6. PROBLEMAS ESPECIAIS EM OCR
∑
m ( )
yij xbr
xbi − xbr bi + aj = b (6.87)
yir yrj
i=1
i ̸= r
A nova solução básica deve ser compatı́vel portanto,
{ yij
x̂bi = xbi − yir xbr ≥ 0; i ̸= r
(6.88)
x̂br = yrj ≥ 0
xbr
Não é possı́vel remover qualquer coluna br de B com yrj ̸= 0 e esperar que as condições (6.88) sejam
satisfeitas.
Inicialmente, pode-se observar que sendo xbr ≥ 0 deve-se ter yrj > 0 para que a nova variável x̂br ≥ 0.
Se aj tem pelo menos um yij > 0, é possı́vel remover uma coluna br de B e substituı́-la por aj e com a
nova base obter uma solução básica compatı́vel.
Se yrj > 0 e os demais yij ≤ 0 (i ̸= r) em (6.88) então, a nova solução básica é automaticamente
compatı́vel.
Quando houver houver mais de um yij > 0, a seguinte condição deve ser satisfeita para todo yij > 0 para
que a nova solução básica seja compatı́vel
xbi xbr
− ≥0 (6.89)
yij yrj
Essa condição corresponde à primeira das condições (6.88) quando se divide a expressão pelo valor positivo
yij .
Se escolhermos a coluna br a ser removida usando a condição dada a seguir
( )
xbr xbi
= min , yij > 0 = θr . (6.90)
yrj i yij
então, a nova solução básica será compatı́vel.
O que a expressão (6.90) define é:
“Se a coluna aj for escolhida para entrar na base, a coluna br , escolhida segundo o critério definido por
(6.90), deve sair da base para que a nova solução básica seja compatı́vel”.
A pergunta (a) está respondida, mas não a pergunta (b) pois não está definido qual coluna aj deve entrar
na base no lugar de br .
Essa resposta será dada ao examinarmos qual coluna aj corresponde ao melhor valor da função objetivo
z.
O valor da função objetivo para a solução básica original é
∑
m
z= ctb xb = cbi xbi (6.91)
i=1
∑
m ( )
yij xbr
ẑ = cbi xbi − xbr + cj (6.92)
yrj yrj
i=1
i ̸= r
Esse novo valor foi obtido de,
∑
m
ẑ = ĉtb · x̂b = ĉbi x̂bi (6.93)
i=1
( )
yrj
cbr xbr − xbr =0 (6.94)
yrj
o que permite escrever
∑
m ( )
yij xbr
ẑ = cbi xbi − xbr + cj (6.95)
i=1
yrj yrj
ou
( )
∑
m
xbr ∑
m
ẑ = cbi xbi − cbi yij - cj (6.96)
i=1
yrj i=1
ou ainda
xbr
ẑ = z + (cj − zj ) (6.97)
yrj
e, finalmente, considerando (6.90),
ẑ = z + θr (cj − zj ) (6.98)
Se o problema de PL for de maximizar z então ẑ deve ser maior que z para se ter uma nova solução
básica melhorada, ou seja, θr (cj − zj ) > 0. Como θr ≥ 0 então é suficiente que
cj − zj ≥0 (6.99)
para que ẑ > z
A expressão (6.98) vai responder a pergunta (b), ou seja, qual coluna aj deve entrar na base.
Para se obter o maior crescimento de z a coluna a entrar na base deve ser aquela que fornecer o maior
valor para
θr (cj − zj ) (6.100)
Para que a escolha não dependa também da coluna br a ser retirada, é possı́vel usar simplificadamente
a expressão (6.99) no lugar de (6.100) para definir qual coluna aj deve entrar na base, ou seja, aquele que
fornecer o maior valor de cj − zj .
Caso todos os cj − zj sejam negativos é de se esperar que a solução ótima tenha sido encontrada pois não
será mais possı́vel aumentar o valor de z. Essa suspeita será demonstrada no item 6.1.3.7.
Exemplo:
z = ctb xb = 5
z1 = ctb y1 = 2
e
c1 − y1 = 1
Como c1 − z1 ≥ 0 é possı́vel ainda melhorar o valor de z com uma nova solução básica.
Determinação da coluna a ser removida da base:
( )
xbr xbi
= min , yi1 > 0
yr1 yij
ou
( )
xbr xb1 3 xb2 1
= min = ; = =2
yr1 y11 1 y21 1/
2
o que significa que a coluna 2 em B é que deve ser substituı́da pela coluna 1 de A fornecendo a nova
matriz base B̂.
[ ] [ ]
2 3 1 3 −3
B̂ = e B̂−1 =
1 3 3 −1 2
{ }
1
x̂b = B̂−1 b =
2
{ }
1
ĉb = (6.101)
3
e
∑
m
xbi bi = b (6.103)
i=1
z = ctb xb (6.104)
Somando e subtraindo θaj , θ qualquer escalar, em (6.103) vem
∑
m
xbi bi − θaj + θaj = b (6.105)
i=1
mas
∑
m
−θaj = −θ yij bi (6.106)
m=1
∑
m
(xbi − θyij ) bi + θaj = b (6.107)
i=1
Quando θ > 0, e todo yij < 0 então (6.107) representa uma solução compatı́vel para a qual m+1 variáveis
podem ser diferentes de zero, não sendo em geral uma solução básica.
O valor de ẑ para essa solução seria
∑ ∑
m
ẑ = ci x̂i = cbi (xbi − θyij ) + cj θ (6.108)
i=1
ou
ẑ = z + θ (cj − zj ) (6.109)
Para θ suficientemente grande, ẑ pode ser arbitrariamente grande se cj − zj > 0 e arbitrariamente
pequeno se cj − zj < 0. Então, nesse caso, existem soluções compatı́veis nas quais (m + 1) variáveis
podem ser diferentes de zero, com o valor da função objetivo sendo arbitrariamente grande (cz − zj > 0) ou
arbitrariamente pequeno(cj − zj < 0). Diz-se que em tal caso o problema tem uma solução ilimitada.
Em resumo: o problema de PL terá uma solução ilimitada se houver uma coluna aj fora da base B para
a qual
Bxb = b (6.111)
para o problema de PL dado a seguir:
80 CAPÍTULO 6. PROBLEMAS ESPECIAIS EM OCR
max z = ct x
s.t
(6.112)
Ax = b
x≥0
O valor da função objetivo para a solução compatı́vel básica será
zo = ctb xb (6.113)
Além disso, seja cj − zj ≤ 0 para toda coluna aj de A não pertencente à matriz B da base.
É possı́vel mostrar então que z0 é o valor máximo da função objetivo z.
Seja uma solução compatı́vel do problema (6.112) dada por
xj ≥ 0; j = 1, . . . , n; x1 a1 + · · · + xn an = b (6.114)
∗
O valor correspondente da função objetivo, expresso por z , é
z ∗ = c1 x1 + · · · + cn xn (6.115)
Qualquer vetor aj pertencente à matriz A pode ser escrito como uma combinação linear dos vetores da
base B.
∑
m
aj = yij · bi (6.116)
i=1
∑
m ∑
m
x1 yi1 · bi + · · · + xn yin bi =b (6.117)
i=1 i=1
Ou, reagrupando:
∑
n ∑n
xj y1j b1 + · · · + xj ymj bm = b (6.118)
j=1 j=1
∑
n
xbi = xj yij ; i = 1, . . . , m (6.120)
j=1
Por hipótese, zj ≥ cj para toda coluna de A não pertencente à base. Para as colunas de A pertencentes
à base pode-se afirmar que
zj − cj = 0 (6.123)
6.1. O PROBLEMA DE PROGRAMAÇÃO LINEAR (PL) 81
e, devido à hipótese inicial de que zj ≥ cj para as colunas fora da base B, verifica-se que a hipótese é
verdadeira para todas as colunas de A, as que pertencem e as que não pertencem à base B.
Consequentemente, se zj ≥ cj ; para todo j, é possı́vel afirmar que, se zj substituir cj em (6.115), então
z1 x1 + · · · + zn xn ≥ z ∗ (6.124)
já que para uma solução compatı́vel xj ≥ 0 para todo j.
Usando a definição de zj
∑
m
zj = cbi yij (6.125)
i=1
e usando (6.120)
zo ≥ z ∗
Isto prova que z0 é, pelo menos, tão grande quanto z* que corresponde ao valor da função objetivo para
qualquer outra solução compatı́vel do problema (6.112) e por isso, uma vez obtida, a solução compatı́vel
básica xb com cj − zj ≤ 0 para todas as colunas aj fora da base, essa solução é a que maximiza z.
∑
k ∑
k
x= µi xbi , µi ≥ 0, i = 1, . . . , k, µi = 1; (6.128)
i=1 i=1
∑
k ∑
k ∑
k
Ax = A µi xbi = µi Axbi = µi b = b (6.129)
i=1 i=1 i=1
e portanto x definindo em (6.128) é também uma solução compatı́vel, mas não necessariamente básica.
Se,
∑
k ∑
k ∑
k
ct x = ct µi xbi = µi ct xbi = µi zo = zo (6.131)
i=1 i=1 i=1
x2
x=m1xb1+m2xb2 a1x=b1
xb1
x
xb2
a2x=b2
a3x=b3
xb = B−1 b (6.132)
e o vetor x
{ }
xb
x= ; Ax = b; (6.133)
0
onde x é n × 1, A, m × n e b, m × 1.
Para demonstrar que x é um ponto extremo deve-se mostrar que não existem duas soluções compatı́veis
diferentes, x1 e x2 , tal que
xb = u 1 = u 2 ; x = x1 = x2 (6.139)
Os argumentos acima mostram que não existem soluções compatı́veis diferentes de x de tal modo que
(6.134) seja satisfeita.
Consequentemente, x é um ponto extremo, isto é, qualquer solução compatı́vel básica é um ponto extremo
do conjunto de soluções compatı́veis.
Para mostrar que qualquer ponto extremo x∗ = {x1 , . . . , xn } do conjunto de soluções compatı́veis é uma
solução básica, deve-se provar que os vetores associados aos componentes positivos de x∗ são L.I.
Supondo k componentes de x∗ não nulos
∑
k
Ax∗ = x∗i ai = b; x∗i > 0; i = 1, . . . , k (6.140)
i=1
Se os vetores colunas ai forem L.D., então existem k valores λi , não todos nulos, tal que
∑
k
λi ai = 0 (6.141)
i=1
Agora, suponha que
x∗i
η = min , λi ̸= 0, i = 1, . . . , k (6.142)
i |λi |
Observe que η é um número positivo. Seja ε um valor tal que, 0 < ε < η, então,
Aλ = 0 (6.145)
logo
{
Ax1 = Ax∗ + εAλ = b
(6.146)
Ax2 = Ax∗ − εAλ = b
Segue que x1 e x2 são soluções compatı́veis diferentes de x∗ , e
1 1
x∗ = x1 + x2 (6.147)
2 2
Isto contradiz o fato de que x∗ seja um ponto extremo.
Por isso, as colunas de A associadas aos componentes não-nulos de qualquer ponto extremo do conjunto
convexo de soluções compatı́veis devem ser L.I. Não pode haver mais do que m colunas L.I. em A, e por isso
um ponto extremo não pode ter mais do que m componentes positivas.
Em resumo, toda solução compatı́vel básica para Ax = b é um ponto extremo do conjunto convexo de
soluções compatı́veis e todo ponto extremo é uma solução compatı́vel básica.
84 CAPÍTULO 6. PROBLEMAS ESPECIAIS EM OCR
Bxb = b (6.148)
Encontrar uma matriz B com m colunas da A que sejam L.I., nem sempre é um problema trivial.
Conseqüentemente, também não é uma tarefa simples encontrar uma solução compatı́vel básica inicial de
um problema de PL.
Como vimos nos itens anteriores, uma vez encontrada uma solução compatı́vel básica inicial, o algoritmo
Simplex pode encontrar, em cada nova iteração, uma nova solução compatı́vel básica que corresponde a um
valor “melhorado” da função objetivo em relação ao valor da iteração anterior e assim sucessivamente.
Em teoria, o processo leva à solução do problema de PL como visto anteriormente, já que, pelo menos,
uma das soluções compatı́veis básicas é uma solução possı́vel do problema de PL.
Um problema de PL para o qual, uma solução compatı́vel básica pode ser facilmente encontrada é aquele
que, na formulação original, todas as restrições são de desigualdade do tipo menor ou igual. Para esse tipo
de problema, uma variável de folga é adicionada a cada restrição de desigualdade para transformá-la em
restrição de igualdade no problema modificado. Nesse caso a matriz A gerada pode ser escrita como,
A = (R, I) (6.149)
sendo I uma matriz identidade de ordem m ( número de restrições de desigualdade do problema original
) e R a matriz dos coeficientes das incógnitas nas restrições de desigualdade do problema original.
O vetor das incógnitas x deve ser reescrito então como,
x = (xr , xs ) (6.150)
onde xr contém as variáveis do problema original e xs as variáveis de folga introduzidas em cada
restrição de desigualdade.
Ao fazer xr = 0 em Ax = b, vem,
Ixs = b (6.151)
O vetor xs representa uma solução compatı́vel básica para o problema modificado correspondente a B = I
já que ele satisfaz (6.151) o que assegura também que xs ≥ 0, pois xs = b e b ≥ 0.
Nesse caso os vetores yj serão,
cb = 0; (6.153)
conseqüentemente, o valor inicial da função objetivo z é zero.
Para o tipo de problema mencionado, uma solução compatı́vel básica inicial pode ser facilmente encon-
trada. Todavia, na grande maioria dos casos, nenhuma matriz de identidade quadrada aparecerá na matriz
A do problema modificado ao se transformar as restrições de desigualdade do problema original em restrições
de igualdade no problema modificado.
Uma maneira de contornar esse problema é através do uso de variáveis artificiais. Considerando que
já foi obtida a matriz de restrições A do problema modificado via uso de variáveis de folga e de excesso no
problema original, vale,
Ax = b (6.154)
Com o uso das variáveis artificiais a expressão (6.154) pode ser reescrita como,
6.1. O PROBLEMA DE PROGRAMAÇÃO LINEAR (PL) 85
max z = ct x
s.t. Ax = b
x≥0
Ou seja, o vetor xn×1 , com n variáveis, pode ser escrito em função do vetor y(n−m)×1 com n − m
variáveis independentes sendo m ≤ n. Em outras palavras, o vetor xn×1 pode ser eliminado do problema de
PQ geral com restrições de igualdade e substituı́do pela expressão acima na função objetivo e nas restrições
de desigualdade, levando a um problema de PQ padrão com restrições de desigualdade apenas e n − m
variáveis. As duas parcelas da expressão acima à direita do sinal de igual são chamadas respectivamente de
solução particular (a primeira) e solução homogênea (a segunda). Para mostrar que o vetor xn×1 definido
acima satisfaz a restrição de igualdade, basta substituir xn×1 nessa equação e observar as propriedades das
matrizes Sn×m e Zn×(n−m) em relação a Atm×n .
( )
Atm×n xn×1 = Atm×n Sn×m bm×1 + Znx(n−m) y(n−m)x1 = bm×1 (6.162)
Uma técnica muito utilizada para obter as matrizes Sn×m e Zn×(n−m) é a partir da decomposição QR
ou de Householder da matriz An×m . O algoritmo de fatorização QR pode ser encontrado no livro de Klaus-
Jürgen Bathe [10]. A fatorização QR-Householder decompõe a matriz An×m em,
[ ]
Rm×m
An×m = Qn×n
0(n−m)×m n×m
[ ] (6.163)
[ ] Rm×m
= Q1 n×m Q2 n×(n−m) n×n
0(n−m)×m n×m
logo,
submatriz n×m de Q ortogonal, (Q1 t Q1 = I) e Q2 é uma submatriz n×(n−m) de Q ortogonal, (Q2 t Q2 = I).
Além disso,
{ }
Q1 t { }
Qt Q = t Q1 Q2
[ Q2t ]
Q1 Q1 Q1 t Q2
= t t (6.165)
[ Q2 Q1] Q2 Q2
I 0
=
0 I
Vale notar que, devido a ortogonalidade de Q,
R−1 Q1 t A (6.168)
Como, de (6.164)
A = Q1 R (6.169)
Vem,
−1
R−1 Q1 t A = R Q1 t Q1 R = R−1 R = I (6.170)
Por outro lado, vamos verificar agora o produto,
At Q2 (6.171)
88 CAPÍTULO 6. PROBLEMAS ESPECIAIS EM OCR
At Q2 = Rt Q1 t Q2 = 0, (6.172)
Sendo assim, observando (6.170), podemos dizer que,
St = R−1 Q1 t (6.173)
Pois,
At S = St A = R−1 Q1 t A = I (6.174)
e,
Z = Q2 (6.175)
Pois, obersevando (6.172),
At Z = At Q2 = 0 (6.176)
dL (x, y, u)
= 0; u − Qx + Ay = f ;
dx
At x − b ≥ 0; y ≥ 0; (6.179)
x ≥ 0; u ≥ 0;
yt (At x − b) = 0; ut x = 0;
Introduzindo vetores v e t com variáveis de folga positivas, vem,
u − Qx + Ay = f (6.180)
At x − b − v = 0; y ≥ 0; v≥0 (6.181)
x − t = 0; u ≥ 0; t≥0 (6.182)
( )
yt At x − b = 0; ut x = 0; vt y = 0 (6.183)
Podemos agora definir,
{ } { } { } [ ]
u x f Q −A
w= ; z= ; q= ; M= ; (6.184)
v y −b At 0
E as condições de K-K-T podem ser reescritas de forma compacta, simplesmente como,
6.2. O PROBLEMA DE PROGRAMAÇÃO QUADRÁTICA (PQ) 89
w = q + Mz (6.185)
w̄ = q + Mz̄ (6.187)
A solução é viável se, e somente se, o conjunto satisfizer ainda as restrições de não-negatividade e ser
estritamente complementar,
w̄ ≥ 0 ; z̄ ≥ 0 ; w̄t z̄ = 0 (6.188)
O vetor z contém as variáveis não-básicas e w as básicas. Chamemos de L o conjunto de soluções e de
K o conjunto de soluções viáveis. Estamos interessados em encontrar soluções para descrições equivalentes
de K. As descrições equivalentes de K podem ser encontradas usando-se pivoteamento em um par pivot
wr , zr , ou seja, executar troca de posição dos elementos do par pivot na equação básica, zr se torna uma
variável básica, e wr não-básica. O par pivot não pode ser escolhido arbitrariamente porque senão a solução
não será viável.
w = q + Mz + ez0 (6.189)
onde e é um vetor coluna unitário.
O novo conjunto de variáveis não-básicas tem então n + 1 componentes, sendo n componentes em z e
mais z0 . As novas equações básicas aumentadas podem ser reescritas como,
′ ′
w =q+M z (6.190)
Sendo,
′ [ ]
M = M e (6.191)
e
{ }
′ z
z = (6.192)
z0
O esquema de pivoteamento de Lemke gera uma seqüência de soluções viáveis para o problema aumentado
que não são necessariamente soluções do problema original. É possı́vel demonstrar que nenhuma solução
ocorre duas vezes durante o esquema, logo ele é próprio. O esquema tem inı́cio transformando z0 de uma
variável básica em não-básica de modo a obter uma nova solução viável para o problema aumentado. Para tal
é preciso encontrar um par pivot apropriado para z0 . Pivoteamentos são feitos sucessivamente, tomando-se
o cuidado de sempre obter uma nova solução viável. O esquema termina quando z0 volta a ser uma variável
não-básica quando então a solução do PLC aumentado é solução também do PLC original.
90 CAPÍTULO 6. PROBLEMAS ESPECIAIS EM OCR
z1 = z2 = z3 = 0 (6.195)
Logo,
w = q + ez0 (6.196)
Determinação do par pivot,
w2
z0 1 2/3 −1 −1 1/3
z2
z1 = 1 + −1/3 1 0 1/3 (6.200)
z3
w3 2 1 −3 −1 0
w1
Agora o par w2 , z2 é nulo e devemos fazer novo pivoteamento. Para se obter complementaridade estrita,
z2 ≥ 0,
w2 = w3 = z0 = w1 = 0 (6.205)
e,
92 CAPÍTULO 6. PROBLEMAS ESPECIAIS EM OCR
1 3 1
z3 = ; z1 = ; z2 = (6.206)
2 2 2
Formando os pares estritamente complementares,
z1 > 0; w1 = 0
z2 > 0; w2 = 0 (6.207)
z3 > 0; w3 = 0
Capı́tulo 7
x = x0 + δx e δx = α d (7.2)
onde d é uma direção de busca. Nesse capı́tulo serão apresentados somente métodos de primeira ordem, ou
seja, métodos que utilizam os gradientes da função objetivo e das restrições para a definição do subproblema
numa dada iteração.
93
94 CAPÍTULO 7. O PROBLEMA GERAL DE PROGRAMAÇÃO NÃO-LINEAR (PNL)
é um subproblema de Programação Linear e pode ser resolvido, por exemplo, usando-se o algoritmo Simplex.
As variáveis são então atualizadas como indicado na Equação 7.2.
As aproximações lineares fornecem:
t
min f (x) ≈ f (x0 ) + [∇f (x0 )] s
s.t.
t
cl (x) ≈ cl (x0 ) + [∇cl (x0 )] s ≤ 0 l = 1...p (7.3)
t
hk (x) ≈ hk (x0 ) + [∇hk (x0 )] s = 0 k = 1...m
xl i ≤ x0i + si ≤ xu i ; i = 1...n
O vetor s representa as incógnitas do problema de PL acima. A Figura 7.1 representa graficamente como
a solução aproximada do subproblema de duas variáveis é obtida usando-se as aproximações lineares a partir
de x0 .
x2
x0
x1
Aproximação
do ponto ótimo
É possı́vel notar que a solução não é viável. Todavia, tal fato não representa um obstáculo para se obter
a solução do problema original de PNL após algumas iterações. Uma dificuldade para se obter a solução
aparece quando o problema é subrestringido, ou seja, quando há mais variáveis que restrições como indicado
na Figura 7.2. Nessa mesma figura estão representados os “limites ao movimento” que são impostos às
variáveis para se evitar que a região viável das variáveis fique ilimitado. A escolha dos “limites de movimento”
assim como dos “fatores de redução” associados é uma dificuldade no uso do método.
7.2. MÉTODO DOS CENTROS 95
x2
Limites
ao movimento
x0
Ponto ótimo
verdadeiro
Aproximação
linear para
c1(x0)=0
x1
O método dos centros foi idealizado como uma alternativa para o método PLS que fornece soluções viáveis
em cada subproblema. Obter soluções viáveis em cada iteração pode ser desejável quando se está resolvendo
problemas reais de engenharia, pois, mesmo que a solução ótima não tenha sido atingida, a solução obtida
em cada iteração pode ser usada uma vez que ela é viável e de custo inferior ao da solução inicial.
A idéia básica do Método dos Centros é que a solução s do subproblema leve o vetor x, solução atualizada
do problema original, a partir da solução inicial x0 :
x = x0 + s (7.4)
ao centro da hiperesfera de maior raio inscrita no hiperpoliedro gerado pelas funções objetivo e restrições
linearizadas. A Figura 7.3, para um problema com duas variáveis, ajuda a esclarecer o texto.
Devido à propriedade descrita acima, o Método dos Centros é também conhecido como Método das
Hiperesferas Inscritas. O método é recomendado quando o problema tem apenas restrições de desigualdade.
96 CAPÍTULO 7. O PROBLEMA GERAL DE PROGRAMAÇÃO NÃO-LINEAR (PNL)
x2
Linearização
de f(x0)
Ñf(x0)
x0
df
s
Linearização Ñc (x) dhi A
i
dx
de ck(x)=0
dhk
dhj Linearização
de cj(x)=0
Ñck(x) Ñcj(x)
Linearização
de ci(x)=0
x1
Para se obter o ponto x, centro da maior hiperesfera que cabe no espaço viável linearizado, um subpro-
blema adequado deve ser formulado. Inicialmente, calculam-se as distâncias df e dhl do centro da referida
hiperesfera à função objetivo e às restrições cl (x) linearizados, respectivamente.
Observando-se a Figura 7.3 pode-se verificar que:
t
[∇f (x0 )]
df = − s (7.5)
∥∇f (x0 )∥
t
[∇cl (x)]
dhl = (δx − s) (7.6)
∥∇cl (x0 )∥
Por outro lado, observando-se que o vetor s é o passo dado de x0 até x no contorno que corresponde à
restrição linearizada cl (x) = 0, pode-se escrever:
t
cl (x) = cl (x0 ) + [∇cl (x0 )] δx = 0 (7.7)
ou:
t
[∇cl (x0 )] δx = −cl (x0 ) (7.8)
logo, considerando-se ainda que:
r ≤ dhl l = 1...p
(7.11)
r ≤ df
usando-se as expressões 7.5 e 7.6 pode-se formular agora o subproblema do método dos Centros, após
simples manipulações algébricas, como:
max r
t
s.t. [∇f (x0 )] s + ∥∇f (x0 )∥ r ≤ 0
(7.12)
t
[∇cl (x0 )] s + ∥∇cl (x0 )∥ r ≤ −cl (x0 ) l = 1 . . . p
O subproblema acima é um problema de PL e pode ser resolvido pelo Método Simplex. A solução do
subproblema fornece r e s. O vetor s é utilizado para se obter a solução final da iteração por meio de uma
busca unidimensional, ou seja:
x = x0 + s (7.13)
As iterações terminam quando o valor de r for menor do que uma dada tolerância. No caso de problemas
subrestringidos, o Método dos Centros sofre das mesmas restrições que o Método de PLS e necessita da
definição de “limites de Movimento” para convergir para a solução.
O Método das Direções Viáveis é apropriado para problemas com restrições de desigualdade apenas. Assim
como os métodos apresentados nos itens anteriores, ele produz uma sequência de subproblemas a partir de
x0 , solução do subproblema gerado na iteração anterior. Se o ponto x0 não estiver sobre um contorno da
região viável, ou seja, não ativar uma ou mais restrições de desigualdade, o subproblema a ser resolvido é
um problema de OSR. Todavia, deve ser feito um controle durante as buscas unidimensionais do algoritmo
de OSR para se garantir que a solução esteja no espaço viável, ou seja, que nenhuma restrição seja violada.
Nota-se, portanto, que o algoritmo é de pontos interiores e uma solução inicial viável deve ser adotada.
Durante uma busca unidimensional duas situações são possı́veis: ou se encontra um mı́nimo dentro da
região viável ou se atinge um contorno da região viável ativando uma ou mais restrições. No primeiro caso,
a solução do problema foi encontrada, o que é pouco provável já que soluções ótimas sempre ativam uma
ou mais restrições. No segundo caso, ou seja quando x0 está sobre o contorno da região viável, trata-se de
buscar uma direção viável e de decréscimo. O subproblema do método das direções viáveis é formulado para
se encontrar uma direção, conforme ilustrado na Figura 7.4:
98 CAPÍTULO 7. O PROBLEMA GERAL DE PROGRAMAÇÃO NÃO-LINEAR (PNL)
x2
Ñf(x0)
f(x)=const.
Ñc1(x)
s
c2(x)=0
c1(x)=0
x1
A Figura 7.4 auxilia a compreensão das condições necessárias para que uma direção de busca, definida a
partir de um ponto sobre o contorno da região viável, seja viável e de decréscimo.
Para que a direção de busca s seja uma direção de decréscimo da função objetivo ela deve fazer um ângulo
maior do que 90o com o vetor gradiente da função objetivo no ponto x0 , tal como ilustrado na Figura 7.4.
Isso significa que o produto interno entre ∇f (x0 ) e s deve ser negativo, ou seja:
t
[∇f (x0 )] s < 0 (7.14)
Para que a direção de busca s seja uma direção viável ela deve fazer um ângulo maior do que 90o com o
vetor gradiente da restrição ativa no ponto x0 . Isso significa que o produto interno entre ∇cl (x0 ) e s deve
ser negativo, ou seja:
t
[∇cl (x0 )] s < 0 (7.15)
Observe-se que no setor útil viável, a direção de busca mais eficiente seria aquela que minimiza a ex-
pressão 7.14 e satisfaz e expressão 7.15. Essa direção pode ser encontrada ao se formular o seguinte subpro-
blema a partir do ponto x0 :
t
min [∇f (x0 )] s
t (7.16)
s.t. [∇cl (x0 )] s ≤ −θ
onde θ é simplesmente uma constante não-negativa que assegura que o co-seno do ângulo entre ∇cl (x0 ) e
s seja estritamente negativo, ou seja, que o ângulo entre esses dois vetores seja maior do 90o . O parâmetro θ
é denominado “push-off factor”. Esse nome traduz a sua função na formulação que é a de empurrar o vetor
da direção de busca s para fora do plano tangente no contorno que passa pelo ponto x0 .
As condições 7.14 e 7.15 podem ser reunidas em uma única condição já que a expressão 7.14 deve ser
negativa:
7.3. MÉTODO DAS DIREÇÕES VIÁVEIS 99
t
[∇cl (x0 ) − θ ∇f (x0 )] s ≤ 0 (7.17)
t
[∇f (x0 )] s + β ≤ 0 (7.18)
ou ainda:
t
[∇cl (x0 )] s + θ β ≤ 0 (7.19)
t
uma vez que β = − [∇f (x0 )] s para que β seja máximo. Considerando as expressões acima, o seguinte
subproblema alternativo ao subproblema definido na expressão 7.16, pode ser definido para se encontrar uma
direção útil-viável:
max β
t
s.t. [∇f (x0 )] s + β ≤ 0 (7.20)
t
[∇cl (x0 )] s + θl β ≤ 0 l = 1 . . . p
∥s∥ ≤ γ
As questões (1) e (2) são correlacionadas. Em termos numéricos, uma restrição está ativa quando ela
esta “próxima” do contorno, ou seja, cl (x) ≥ ε, onde ε pode variar no intervalo [−0.1, −0.001], dependendo
se as iterações estão no inı́cio ou no final do processo de solução do problema. Uma boa expressão para a
determinação de θl é dada por:
2
cl (x)
θl (x) = 1 − θ0 (7.21)
ε
sendo θ0 = 1.0. A expressão 7.21 mostra que θl (x) varia de 0.0 a cl (x) = ε, ou seja, quando x está a
uma distância ε da superfı́cie do contorno até θl = 1.0, quando cl (x) = 0, ou seja, quando x está sobre a
superfı́cie do contorno. A Figura 7.5 esclarece.
100 CAPÍTULO 7. O PROBLEMA GERAL DE PROGRAMAÇÃO NÃO-LINEAR (PNL)
x2
s(q=¥)
s(q»1)
f(x)=const.
s(q=0)
c(x)=0
x1
Considera-se que a restrição está ativa quando θl (x) estiver entre 0.0 e θ0 .
Quanto à limitação do módulo de s, várias estratégias podem ser usadas. É possı́vel limitar as compo-
nentes do vetor s da seguinte forma:
−1 ≤ si , i = 1...n (7.22)
O uso da expressão 7.22 para limitar o módulo de s tem a vantagem de transformar o subproblema
(7.20) em um problema de PL, o que não aconteceria se o módulo de s, propriamente dito, fosse utilizado
na expressão de limitação do módulo.
Apesar da vantagem apresentada acima o uso da expressão (7.22) apresenta a desvantagem de forçar a
definição da melhor direção do vetor s na direção de um dos vértices do hipercubo de lado 2 e centro em
x0 como apresentado na Figura 7.5. Isso acontece porque o módulo de s é máximo no vértice do hipercubo
quando se usa a expressão (7.22) para limitar o módulo.
Desse modo, a expressão:
st s ≤ 1 (7.23)
tem sido utilizada pois ela limita o quadrado do raio da hiperesfera a um valor unitário.
A Figura 7.6 esclarece a diferença das soluções obtidas nos dois casos, ou seja, com as expressões (7.22)
e (7.23).
7.3. MÉTODO DAS DIREÇÕES VIÁVEIS 101
x2
-1 £ sj £ 1
s×s£1
s2
s1 f(x)=const.
c(x)=0
x1
Ao substituir a expressão (7.22) para limitar o módulo do vetor s pela expressão (7.23) o subproblema
(7.20) deixa de ser um problema de PL o que torna a sua solução mais complexa. Alguns autores sugerem
a conversão do subproblema (7.20) num problema equivalente de PLC por meio do uso das condições de
Kuhn-Tucker.
Reescrevendo o subproblema (7.20) numa forma compacta como indicado a seguir, facilita a tarefa de se
obter as condições de Kuhn-Tucker, ou seja:
max pt y
s.t. Ay ≤ 0 (7.24)
yt y < 1
onde:
δx1
0
δx2
0
y= .. p= .
.. (7.25)
.
δxn
0
β 1
t
[∇c1 (x0 )] θ1
[∇c2 (x0 )]
t
θ2
.. ..
A= . . (7.26)
[∇cp (x0 )]t θp
t
[∇f (x0 )] 1
102 CAPÍTULO 7. O PROBLEMA GERAL DE PROGRAMAÇÃO NÃO-LINEAR (PNL)
A última equação em (7.26) é similar à Equação 8.24. A única diferença é que o quadrado do módulo de
s é limitado a “1 − β 2 ”, onde β 2 é um pequeno valor positivo, ao invés de ser limitado a 1.
As condições de Kuhn-Tucker do subproblema descrito em (7.24) são:
p = At λ + µ′ (2 y) ;
A y ≤ 0; yt y − 1 ≤ 0;
(7.27)
λ ≥ 0; µ′ ≥ 0;
′
λt Ay = 0; µ (yt y − 1) = 0
p = At λ + µ y
z ≥ 0; yt y − 1 ≤ 0;
(7.29)
λ ≥ 0; µ≥0
λt z = 0; µ (yt y − 1) = 0
e considerando-se:
v = −µ A y = µ z
(7.31)
e
c = −A p
Observe-se que ao agrupar algumas das expressões acima, elas formam um problema de PLC:
−A At λ + v = c
(7.33)
λ ≥ 0; v ≥ 0; λt v = 0;
que pode ser resolvido pelo algoritmo de Lemke obtendo-se como resposta os vetores λ e v, sendo
conhecidos a matriz AAt e o vetor c. A partir de λ e v é possı́vel recuperar o vetor y usando-se a primeira
das expressões em (7.29), onde µ é arbitrariamente fixado igual a 1, sem comprometer as restrições e as
condições de Kuhn-Tucker.
y = −p − At λ (7.34)
O vetor y representa a solução do subproblema do Método das Direções Viáveis pois ele contém o vetor
s que representa a direção do passo a ser dado de x0 até a solução x da iteração em questão. Uma busca
unidimensional, a partir de x0 , na direção s, atualiza x.
7.4. MÉTODO DO GRADIENTE REDUZIDO GENERALIZADO (GRG) 103
onde hk (x) são restrições de igualdade no problema original que se transformaram em restrições de
desigualdade no novo problema equivalente. Valores de rk recomendados da prática podem ser obtidos por:
10 ∥∇f (x0 )∥
rk = (7.36)
∥∇hk (x0 )∥
Os rk são números grandes, positivos e agem como um fator de penalidade para empurrar x para hk (x) =
0, enquanto se minimiza ϕ(x), já que hk (x) deve ser sempre menor ou igual a zero. ϕ(x) é chamado de função
pseudo-objetivo.
min f (x)
s.t. cl (x) + xl+n = 0 l = 1...m
hk (x) = 0 k = 1...l (7.37)
xl i ≤ xi ≤ xn i i = 1···n
xl+n ≥ 0 l = 1···m
Observe-se que m variáveis de folga, não negativas, foram adicionadas ao problema original (7.1) forne-
cendo um total de n + m variáveis. Se o número de restrições de desigualdade é muito alto, este artifı́cio
aumenta significativamente o esforço computacional para a resolução do problema. Como no problema mo-
dificado o número total de variáveis, n+m, é quase sempre maior do que o número de restrições m + l (as
restrições xl+n ≥ 0 são satisfeitas naturalmente), é possı́vel separá-las em m + l variações dependentes (uma
para cada restrição), e n − l variáveis independentes, ou seja, as restantes (n + m) − (m + l) = n − l variáveis.
Assim o vetor x é subdividido em:
{ }
z n − l variáveis independentes
x= (7.38)
y m + l variáveis dependentes
Como, no problema modificado, todas as restrições são de igualdade, elas serão designadas como:
xl i ≤ xi ≤ xu i i = 1···n + m (7.40)
Agora, é possı́vel escrever:
t t
df (x) = [∇f (x)],z dz + [∇f (x)],y dy
(7.41)
t t
dhk (x) = [∇hk (x)],z dz + [∇hk (x)],y dy
Ao se supor que o vetor inicial x0 satisfaz as restrições de igualdade:
Vale observar que para um vetor arbitrário dz, relativo às variáveis independentes, uma mudança cor-
respondente deve ser obtida para dy, vetor das variáveis dependentes, de modo que a expressão (7.45) seja
satisfeita, ou seja, dh(x) = 0. Portanto:
−1
dy = − [B(x0 )] A(x0 ) dz (7.47)
Substituindo-se agora dy na primeira das expressões (7.45), obtém-se:
t t −1
df (x0 ) = [∇f (x0 )],z dz − [∇f (x0 )],y [B(x0 )] A(x0 ) dz (7.48)
ou:
{ }
t t −1
df (x0 ) = [∇f (x0 )],z − [∇f (x0 )],y [B(x0 )] A(x0 ) dz (7.49)
O gradiente reduzido generalizado pode agora ser utilizado para determinar uma direção de busca para
atualizar as variáveis independentes z por meio de uma busca unidimensional, ou seja:
z = z0 + dz (7.51)
As variáveis dependentes podem ser atualizadas utilizando-se o método de Newton-Raphson de modo
que o ponto x satisfaça as restrições h(x) = 0, ou seja:
[ ] ( )
h(z, yi ) + ∇h(z, yi ) ,y yi+1 − yi = 0 (7.52)
ou:
[ ]
yi+1 = yi − ∇h(zi , yi ) ,y h(z, yi ) (7.53)
Observe-se que, durante as iterações do método de Newton-Raphson, o valor das variáveis do vetor
z, atualizadas segundo a expressão (7.51) ficam fixos, e somente o vetor y, das variáveis dependentes, é
atualizado de modo que o vetor x satisfaça as restrições.
Vale salientar também que se a atualização fosse feita com o uso de expressão (7.47), as restrições não
seriam satisfeitas, já que são não lineares e a expressão (7.47) é obtida com a hipótese de linearização das
restrições.
Como foi feito no método do gradiente reduzido generalizado as restrições de igualdade podem ser elimi-
nadas do subproblema o que resulta num problema padrão de programação quadrática tendo apenas o passo
das variáveis independentes dz como incógnitas.
O novo subproblema de PQ pode ser transformado num problema equivalente de programação linear
complementar (PLC) que é então resolvido pelo algoritmo de linha fornecendo o passo a ser dado nas
variáveis independentes dz.
106 CAPÍTULO 7. O PROBLEMA GERAL DE PROGRAMAÇÃO NÃO-LINEAR (PNL)
A atualização das variáveis dy pode ser feita como no método do gradiente reduzido generalizado via o
método de Newton-Raphson.
Uma curiosidade a respeito da aproximação quadrática usada para representar a função objetivo no
subproblema é que a matriz heniana que aparece no último termo da função é a matriz heniana da função
lagrangeana do problema original e não a matriz heniana da função objetivo (f (x).
Esse fato pode ser explicado comparando-se as condições de Kuhn-Toucher dos problemas P1 e P2 a
seguir. Nos dois problemas é usada apenas uma restrição de igualdade para efeito de simplicidade.
hk + ∇hkt k
,x δx = 0 (7.60)
onde W1k é a matriz hessiana de L1 (x, λ) na iteração k.
a primeira iteração da solução via Newton-Raphson das equações correspondentes às condições de Kuhn-
Tucher de P1. Esse fato justifica o uso da heniana da função lagrangeana de P1 no lugar da heniana da
função objetivo na definição do subproblema de PQS.
Uma vez que a determinação de matrizes henianas é muitas vezes de difı́cil obtenção ou pouco eficiente
computacionalmente, recomenda-se usar uma aproximação via o método Quase-Newton BFGS visto no item
3.1.7.
108 CAPÍTULO 7. O PROBLEMA GERAL DE PROGRAMAÇÃO NÃO-LINEAR (PNL)
Capı́tulo 8
Análise de Sensibilidade
8.1 Introdução
A análise de sensibilidade tratada neste capı́tulo se refere a meios contı́nuos modelados por elementos finitos,
também conhecida como análise de sensibilidade discreta.
Matematicamente, a análise de sensibilidade é dada pela derivada:
∂rj (x)
(8.1)
∂xi
onde rj (x) é a componente j de um vetor de resposta da estrutura e xi é a componente i de um vetor x
de variáveis de projeto ou de parâmetros da estrutura. Assim, rj pode ser um deslocamento ou um conjunto
de deslocamentos associados a certos graus de liberdade, uma componente ou um vetor de tensões ou uma
frequência própria, e xi pode ser a área da seção transversal de um elemento de treliça, a altura da seção
transversal retangular de um elemento de uma viga ou coluna, ou ainda, o módulo de elasticidade do material
de uma dada estrutura. Conceitualmente, a análise de sensibilidade mede o grau de influência da variável
ou parâmetro xi na resposta rj (x) da estrutura.
Quando se utilizam algoritmos de programação matemática de primeira e segunda ordens para se obter
o projeto ótimo de uma estrutura discretizada por elementos finitos, a análise de sensibilidade precisa ser
empregada.
Analogamente, quando se faz uma análise de confiabilidade pelos métodos FORM ou SORM , é necessário
fazer uso da análise de sensibilidade.
Na próxima seção serão apresentados os principais métodos de análise de sensibilidade, tais como: o
método das diferenças finitas, os métodos diretos analı́tico e semi-analı́tico e os métodos adjuntos analı́tico
e semi-analı́tico.
Nas seções seguintes essas técnicas serão empregadas para se obter a análise de sensibilidade de diferentes
respostas estruturais, tais como: deslocamentos em problemas estáticos e dinâmicos, tensões, frequências
próprias e carga limite.
109
110 CAPÍTULO 8. ANÁLISE DE SENSIBILIDADE
Outra aproximação frequentemente usada é conhecida como Método das Diferenças Centrais, ou seja:
c (r (x) , x) = 0 (8.4)
sendo r(x) um vetor de respostas da estrutura.
Utilizando-se a regra da cadeia, e simplificando a notação:
dc ∂r
= pi + Z (8.6)
dxi ∂xi
onde:
∂c(r, x) ∂c(r, x)
Z= e pi = (8.7)
∂r ∂xi
Observe que ∂∂ cr denota a derivada total do vetor c em relação à r, enquanto que ∂∂xri é a derivada explı́cita
dc
do vetor r em relação a componente xi do vetor x. A derivada total dx i
é a soma da derivada explı́cita com
a parcela implı́cita.
Derivando-se os dois lados da Equação (8.4) e usando a Equação (8.6), obtém-se:
∂r
pi + Z =0 (8.8)
∂xi
logo:
∂r
Z = −pi (8.9)
∂xi
Quando a derivada explı́cita é obtida analiticamente, o método direto é chamado de analı́tico, enquanto
que, quando alguma parcela da derivada explı́cita é obtida por meio de diferenças finitas, o método é
denominado de semi-analı́tico.
h (r(x), x) = 0 (8.10)
Os algoritmos de programação matemática de primeira e segunda ordens requerem o cálculo da derivada:
dh ∂h dr
= + µt (8.11)
d xi ∂ xi d xi
1 As deduções feitas aqui também se aplicam a restrições de desigualdade.
8.3. COMPARAÇÃO ENTRE OS MÉTODOS DE ANÁLISE DE SENSIBILIDADE 111
∂h
µ= (8.12)
∂r
O procedimento do método adjunto consiste em se somar a derivada total das equações de estado, pré-
multiplicadas pelo vetor λ de multiplicadores de Lagrange, à derivada total das restrições. O número de
componentes do vetor λ, também chamado de vetor adjunto, deve ser igual ao número de equações de estado
do problema. A nova derivada total de h passa a ser dada por:
dh dc
dxi dxi
z }| { z( }|){
dh ∂h d r d r
= + µt +λt p + Z (8.13)
d xi ∂ xi d xi d xi
Como, conforme a Equação (8.8), a parcela pré-multiplicada por λt é um vetor nulo, então, a Equação (8.13)
representa a sensibilidade de h em relação a xi .
Reagrupando-se os termos da Equação (8.13), chega-se a:
dh ∂h ( ) dr
= + µt + λt Z + λt p (8.14)
d xi ∂ xi d xi
A segunda parcela do lado direito da Equação (8.14) pode ser eliminada fazendo-se:
Zt λ = −µ (8.15)
A Equação (8.15) permite a obtenção de λ, o que possibilita calcular finalmente:
dh ∂h
= + λt p (8.16)
d xi ∂ xi
O Método Adjunto também pode ser analı́tico ou semi-analı́tico, dependendo de como as derivadas
explı́citas são obtidas na Equação (8.16).
dr
d xi
enquanto que o Método Adjunto permite obter:
dh
d xi
Na verdade, o que se procura é obter ddxhi pois os algoritmos de programação matemática de primeira
ordem precisam desta grandeza durante suas iterações no processo de otimização. No entanto, como visto
anteriormente:
dh ∂h dr
= + µt (8.17)
d xi ∂ xi d xi
onde tanto ∂∂xhi quanto µ são, em geral, facilmente obtidos. Desse modo é possı́vel usar ddxri , calculado
∂h
pelos dois primeiros métodos citados acima, para se obter ∂x i
sem grandes esforços.
O Método das Diferenças Finitas tem a vantagem da sua simplicidade conceitual e de poder ser aplicado
a qualquer tipo de problema. Todavia, ele é computacionalmente pouco eficiente, principalmente quando
112 CAPÍTULO 8. ANÁLISE DE SENSIBILIDADE
a avaliação da resposta da estrutura exige muito esforço computacional, como é o caso em estruturas com
comportamento não linear e/ou com muitos graus de liberdade. Vale salientar que, no Método das Diferenças
Finitas, uma nova análise da estrutura deve ser feita para se obter a análise de sensibilidade em relação a cada
variável de projeto ou a cada parâmetro. O Método Direto é computacionalmente eficiente, especialmente
o analı́tico. O esforço computacional deste método não cresce na mesma proporção do número de variáveis
(ou parâmetros) para os quais a análise de sensibilidade deve ser feita, como acontece com o Método das
Diferenças Finitas.
O Método Adjunto é apropriado para problemas onde há poucas restrições e muitas variáveis de projeto,
ao contrário do Método Direto. Isto se deve ao fato do vetor λ só depender do número de equações de
estado, e não do número de variáveis, e também das derivadas explı́citas (vide Equação 8.14) serem de fácil
obtenção para cada nova variável.
σ e = C Be u e (8.19)
onde: ue é o vetor dos deslocamentos nodais do elemento e, Be é a matriz de compatibilidade cinemática
do elemento, que relaciona deslocamentos nodais com deformações, C é a matriz constitutiva, que transforma
deformações em tensões e que depende do módulo de elasticidade e do coeficiente de Poisson, e σ e é o tensor
das tensões no elemento.
du u(x + ∆ xi ei ) − u(x)
= (8.21)
d xi ∆ xi
Como mencionado anteriormente, uma nova análise deve ser feita para se obter u(x+∆ xi ei ), o que implica
em uma nova montagem da matriz de rigidez “K(x + ∆ xi ei )” e do vetor de forças nodais “fa (x + ∆ xi ei )”.
Quando se deseja calcular a sensibilidade das tensões em relação a xi , deve-se proceder da seguinte forma:
σ e (x) = C(x) Be (x) ue (x)
(8.22)
σ e (x + ∆ xi ei ) = C(x + ∆ xi ei ) Be (x + ∆ xi ei ) ue (x + ∆ xi ei )
e, em seguida:
d σe σ e (x + ∆ xi ei ) − σ e (x)
= (8.23)
d xi ∆ xi
8.4. APLICAÇÃO DOS MÉTODOS DE ANÁLISE DE SENSIBILIDADE 113
Na segunda das Equações (8.22), Be seria perturbada caso xi fosse uma coordenada nodal do elemento
ou uma área de seção transversal de uma barra de treliça e C seria perturbada caso xi fosse um parâmetro
mecânico (propriedade fı́sica), como por exemplo o módulo de elasticidade ou o coeficiente de Poisson do
material.
Então:
du
= − K−1 pi (8.25)
d xi
O vetor pi é usualmente denominado vetor das pseudo-forças.
No Método Direto Analı́tico as derivadas explı́citas em pi são calculadas analiticamente, enquanto que
no Método Direto Semi-Analı́tico as mesmas derivadas são obtidas por diferenças finitas.
Zt λ = −µ
sendo Z e pi , definidos na Equação (8.7):
∂c ∂c
pi = e Z=
∂ xi ∂r
e µ definido na Equação (8.12):
∂h
µ=
∂r
Caso h seja uma restrição que limite a componente j do vetor de deslocamentos nodais, u, a um valor
prescrito uj , ou seja:
h (u(x), x) = uj (x) − uj ≤ 0
e c seja dado conforme a Equação (8.18):
Obtém-se:
Z = ∂∂ uc = K
pi = ∂∂xci = ∂∂ xKi u − ∂ fa
(8.26)
∂ xi
µ = ∂∂ uh = ej
K Φ − αM Φ = 0 (8.28)
Φt M Φ = 1 (8.29)
No Método das Diferenças Finitas a equação de estado do problema deve ser resolvida duas vezes, uma para
a variável não perturbada e outra para a perturbada. Para se obter a sensibilidade da resposta em relação
a uma nova variável, uma nova solução, com a nova variável perturbada, torna-se necessária. Assim:
α(x)
K(x) Φ − α M(x) Φ = 0 =⇒ (8.30)
Φ(x)
e:
α(x + ∆ xi ei )
K(x + ∆ xi ei ) Φ − α M(x + ∆ xi ei ) Φ = 0 =⇒ (8.31)
Φ(x + ∆ xi ei )
Efetuando-se as derivações na Equação (8.35), por meio das equações de estado definidas em (8.33),
chega-se a:
dΦ ( )
K − α M −M Φ d xi
d xi − α d xi Φ
dK dM
=− (8.36)
dα
−Φt M 0 d xi − 2 Φ d xi Φ
1 t dM
Resolvendo-se o sistema de equações (8.36), as sensibilidades de α e Φ são obtidas uma vez que essas
variáveis tenham sido previamente calculadas. Se as derivadas explı́citas de K e M em relação a xi , que
aparecem no vetor pi , forem obtidas analiticamente, o método é dito Direto Analı́tico. No entanto, caso
o método das Diferenças Finitas tenha sido utilizado para se obter as mencionadas derivadas (conforme
mostrado nas Equações 8.38), então o método é dito Direto Semi-Analı́tico:
d xi ≈
dK K(x+∆ xi ei )−K(x)
∆ xi ei
(8.38)
d M ≈ M(x+∆ xi ei )−M(x)
d xi ∆ xi e i
w2 = α (8.39)
Logo, derivando-se os dois lados da Equação (8.38) em relação à xi :
116 CAPÍTULO 8. ANÁLISE DE SENSIBILIDADE
dw dα dw 1 dα
2w = =⇒ = (8.40)
d xi d xi d xi 2 w d xi
dα
com d xi obtido a partir da Equação (8.36).
dh
o que permitiria obter λ e d xi por meio das Equações (8.15) e (8.16), respectivamente, sendo:
∂h
=0
∂ xi
onde f (u, x) é o vetor das forças internas resistentes nodais geradas pelos deslocamentos u e α fa (x) é o
vetor das forças externas aplicadas.
Em análises não lineares, o módulo do vetor da resposta em deslocamentos u não é proporcional a α,
como nas análises lineares. Para se obter a curva |u| × α é preciso incrementar α gradualmente e, para cada
valor de α, obter o correspondente vetor u.
A equação básica do Método de Newton-Raphson para a análise de estruturas de comportamento não
linear pode ser obtida derivando-se a Equação (8.43) em relação ao vetor u (ver item XXXX), ou seja:
u = u0 + ∆ u (8.45)
O processo iterativo termina quando o módulo de ∆ u for menor do que uma dada tolerância numérica.
8.4. APLICAÇÃO DOS MÉTODOS DE ANÁLISE DE SENSIBILIDADE 117
du ∆u u(x + ∆ xi ei ) − u(x)
≈ = (8.48)
d xi ∆ xi ∆ xi
∂c ∂ f [u(x), x] ∂ fa (x)
pi = = −α (8.51)
∂ xi ∂ xi ∂ xi
que permitem obter a sensibilidade de u em relação a xi para o problema em questão, resolvendo-se a
Equação (8.9) aqui particularizada como:
{ }
du ∂ f [u(x), x] ∂ fa (x)
Kt (u(x), x) =− −α (8.52)
d xi ∂ xi ∂ xi
Se as derivadas explı́citas que aparecem no vetor pi forem obtidas analiticamente, diz-se que o Método
Direto é Analı́tico. Se, por outro lado, essas derivadas forem obtidas por diferenças finitas, o Método Direto
é denominado de Semi-Analı́tico.
du dα
Kt (u(x), x) = fa (x) (8.55)
dβ dβ
Em um ponto crı́tico, Kt é singular. Denominando-se de v, o autovetor associado ao autovalor nulo de
Kt no ponto crı́tico, pode-se escrever:
vt K∗t = 0 (8.56)
dα t
v fa (x) = 0 (8.57)
dβ
Em um ponto limite:
dα
=0 (8.58)
dβ
porque a carga atinge um valor máximo. Nesse caso, comparando-se as Equações (8.55) e (8.56), e
considerando-se a Equação (8.58), verifica-se que o modo de flambagem associado ao ponto limite é igual à
derivada de u em relação ao parâmetro β.
Em um ponto de bifurcação:
dα
̸= 0 (8.59)
dβ
Logo:
vt fa (x) = 0 (8.60)
Supondo-se que várias análises não lineares foram realizadas para valores crescentes de α e utilizando-se as
Equações (8.56) e (8.57), um ponto limite é identificado, ou seja, Kt é singular e:
vt fa (x) ̸= 0
d α∗ ∆ α∗ α∗ (x + ∆ xi ei ) − α∗ (x)
≈ = (8.61)
d xi ∆ xi ∆ xi
8.4. APLICAÇÃO DOS MÉTODOS DE ANÁLISE DE SENSIBILIDADE 119
vt K∗t = 0
O vetor r das respostas é formado nesse caso por u∗ e α∗ , assim, a derivada da Equação (8.62) em relação
a xi fornece:
dc d u∗ ∂ f∗ d α∗ ∂ fa
= K∗t + − fa − α∗ =0 (8.63)
d xi d xi ∂ xi d xi ∂ xi
∗
Pré-multiplicando-se a Equação (8.63) por vt , considerando-se a Equação (8.56) e explicitando-se dd αxi
obtém-se:
( ∗ )
d α∗ vt ∂∂ fxi − α∗ ∂∂ xfai
= (8.64)
d xi vt fa
A partir da Equação (8.62) é possı́vel obter também a matriz Z e o vetor pi , ou seja:
∂c [ ] [ ]
Z= = ∂c
∂ u∗
∂c
∂ α∗
= K∗t −fa (8.65)
∂r
e
{ }
∂c ∂ f∗ ∂ fa
pi = = − α∗ (8.66)
∂ xi ∂ xi ∂ xi
que deveria permitir a análise de sensibilidade das respostas u∗ e α∗ em relação a xi com o uso da
Equação (8.8), ou seja:
{ } { }
[ ∗ ] d u∗
∂ f∗ ∗ ∂ fa
Kt −fa d
dα
x∗i + − α =0 (8.67)
d xi ∂ xi ∂ xi
O sistema de Equações (8.67) tem, todavia, mais incógnitas do que equações, porém, ao se multiplicar a
∗
expressão (8.67) por vt , o vetor dd uxi é eliminado do sistema, pois:
vt K∗t = 0
e, assim, a solução apresentada na Equação (8.64) é obtida. Vale observar que o vetor pi , em (8.66),
representa a sensibilidade da força desequilibrada em relação a xi , que pode ser obtida pelo método analı́tico
ou semi-analı́tico.
h(u∗ , α∗ ) = α∗ − αmin
∗
≥0 (8.68)
A sensibilidade de h é apresentada na Equação (8.16), ou seja:
120 CAPÍTULO 8. ANÁLISE DE SENSIBILIDADE
dh
= 0 + λt p (8.69)
d xi
com µ e λ obtidos, respectivamente, pelas Equações (8.12) e (8.15). Para a restrição definida na
Equação (8.68), tem-se, uma vez que r = r(u∗ , α∗ ):
∂h
∂ u∗ 0
µ= = (8.70)
∂h
∂α ∗ 1
sendo µ um vetor de dimensão n × 1, onde n é o número de graus de liberdade do sistema.
Particularizando a Equação (8.15) para o presente problema, tem-se:
t
(K∗t ) 0
λ=− (8.71)
t
− (fa ) 1
λ = λα v (8.72)
onde v é o autovetor associado ao autovalor nulo de K∗t , ele satisfaz à Equação (8.71), desde que:
( ) 1
λα −fat v = −1 ou λα = (8.73)
fatv
Substituindo-se λ na Equação (8.69), chega-se a:
∂h v t pi
= t (8.74)
∂ xi v fa
que, não por acaso, é a mesma expressão dada em (8.64) para a sensibilidade de α∗ em relação a xi pelo
Método Direto, já que a derivada explı́cita de h em relação a xi é nula.
K T + C Ṫ = q(t) (8.75)
onde K é a matriz de condutividade térmica, positiva semi-definida, C é a matriz de capacidade térmica,
T é o vetor das temperaturas nodais, Ṫ é a derivada de T em relação ao tempo t e q(t) é o vetor das cargas
térmicas.
Quando se usam algoritmos de integração direta para resolver o sistema representado pela Equação (8.75)
o vetor T é interpolado no intervalo de tempo ∆ t, entre os tempos t0 e t1 . Uma das maneiras de se fazer
isto é usar uma interpolação linear do tipo:
[ ( )] ( )
t − t0 t − t0
T(t) = 1 − T0 + T1 (8.76)
∆t ∆t
com T0 e T1 sendo, respectivamente, os valores de T nos instantes t0 e t1 .
O vetor Ṫ(t) pode ser obtido a partir da Equação (8.76) por derivação no tempo, ou seja:
1
Ṫ(t) = (T1 − T0 ) (8.77)
∆t
8.4. APLICAÇÃO DOS MÉTODOS DE ANÁLISE DE SENSIBILIDADE 121
A Equação (8.75) pode ser escrita para um dado instante no intervalo ∆ t. Pode-se escolher qualquer
instante normalizado entre t0 e t1 , ou seja:
t − t0
ξ= (8.78)
∆t
sendo 0 ≤ ξ ≤ 1, logo:
T(ξ) = (1 − ξ) T0 + ξ T1
(8.79)
Ṫ(ξ) = 1
∆t (T1 − T0 )
O vetor das cargas nodais também pode ser interpolado de modo análogo ao vetor T, ou seja:
q = (1 − ξ) q0 + ξ q1 (8.80)
onde q0 e q1 são os vetores das cargas térmicas nodais nos instantes t0 e t1 , respectivamente.
Substituindo-se as Equações (8.79) e (8.80) em (8.75) e reagrupando-se os termos, obtém-se:
[C + ξ ∆t K] T1 = [C − (1 − ξ) ∆t K] T0 + ∆t [(1 − ξ) q0 + ξ q1 ] (8.81)
O algoritmo de integração direta, com ξ = 0 é denominado explı́cito. Para ξ = 1 o algoritmo é dito
implı́cito e para ξ = 21 tem-se o algoritmo mais preciso, sendo também incondicionalmente estável, e por
isso é o mais utilizado. O algoritmo para ξ = 12 é conhecido na literatura técnica como algoritmo de Crank-
Nicholson, Central ou Trapezoidal. Valores de ξ entre 21 e 1 fornecem algoritmos incondicionalmente estáveis
e convergem para qualquer valor de ∆t.
A Equação (8.81) é a equação de estado do problema de fluxo térmico transiente entre os instantes t0 e
t1 . Para uma análise ao longo do tempo, ela deve ser resolvida a cada passo, adotando-se T0 como sendo o
valor de T1 do passo anterior.
∂c
Z= ∂ T1 = [C + ξ ∆t K]
[ ] [ ] [ ] (8.84)
pi = ∂c
= ∂C
+ ξ ∆t ∂∂ xKi T1 − ∂C
− (1 − ξ) ∆t ∂∂ xKi T0 − ∆t (1 − ξ) ∂∂ qx0i + ξ ∂ q1
∂ xi ∂ xi ∂ xi ∂ xi
d T1
Z = −pi (8.85)
d xi
Observe que para a análise de sensibilidade no instante tp , tanto a análise passo a passo, propriamente
dita e definida em (8.81), como a análise de sensibilidade definida em (8.85), também realizada passo a passo,
devem ser feitas até o instante tp . Vale salientar que para se fazer a análise de sensibilidade do instante t0
ao instante t1 , tanto T0 quanto T1 , obtidos da análise propriamente dita, são necessários porque aparecem
no vetor pi .
As derivadas explı́citas de C, K, q0 e q1 em pi podem ser feitas analiticamente ou por diferenças finitas.
∂h
µ= = ei (8.87)
∂ T1i
A partir do vetor µ pode-se obter o vetor λ por meio da Equação (8.15), ou seja:
Zt λ = −µ =⇒ λ
e, finalmente, a sensibilidade de h é obtida por meio da Equação (8.16), ou seja:
dh ∂h
= + λt pi
d xi ∂ xi
onde:
∂h
=0
∂ xi
Observe que λ só precisa ser calculado uma única vez e que apenas o vetor pi se modifica ao longo do
tempo para o cálculo da sensibilidade de h em relação a xi pelo Método Adjunto, enquanto que uma solução
do sistema de equações do tipo (8.85) precisa ser obtida em cada passo de tempo no Método Direto.
M a + C v + K u = f (t) (8.88)
onde M é a matriz de massa, C é a matriz de amortecimento, K é a matriz de rigidez, u, v e a são,
respectivamente, os vetores de deslocamento, velocidade e aceleração e f (t) é o vetor de cargas nodais aplica-
das. Quando se utilizam algoritmos de integração direta para a solução do sistema de equações diferenciais
de segunda ordem dado em (8.88), um sistema de equações algébricas deve ser resolvido em cada passo
de tempo para se obter as respostas no final do intervalo. Para exemplificar a análise de sensibilidade em
problemas dinâmicos resolvidos por integração direta, o algoritmo de Newmark será utilizado.
No Método de Newmark as seguintes equações cinemáticas são adotadas:
[( ) ]
u1 = u0 + ∆ t v0 + ∆ t2 21 − α a0 + α a1
(8.89)
v1 = v0 + ∆ t [(1 − δ) a0 + δ a1 ]
8.4. APLICAÇÃO DOS MÉTODOS DE ANÁLISE DE SENSIBILIDADE 123
onde, na Equação (8.89), ∆ t é o intervalo de tempo entre os instantes inicial (t0 ) e final (t1 ), ou seja:
∆ t = t1 − t0 , (8.90)
M a1 + C v1 + K u1 = f1 (8.93)
e, reagrupando-se os termos, obtém-se:
[ ] [ ] [ ]
2 4 2 4 4
K+ C+ M u1 = C+ M u0 + C + M v0 + M a0 + f 1 (8.94)
∆t ∆ t2 ∆t ∆ t2 ∆t
A Equação (8.94) é resolvida em cada passo ∆ t fornecendo a solução no instante t1 em função da carga
externa no instante t1 e das respostas u0 , v0 e a0 no instante t0 .
[ ] [ ] [ ]
2 4 2 4 4
c (u1 (x)) = K + C+ M u1 − C + M u 0 − C + M v0 −M a0 −f1 = 0 (8.96)
∆t ∆ t2 ∆t ∆ t2 ∆t
A partir da Equação (8.96) pode-se obter Z e pi conforme a Equação (8.7) da seguinte forma:
124 CAPÍTULO 8. ANÁLISE DE SENSIBILIDADE
∂c ∂c
[ 2 4
]
Z = = = K+ C+ M
∂r ∂ u1 ∆t ∆ t2
[ ] [ ]
pi = ∂c
∂ xi = ∂K
∂ xi + 2 ∂C
∆ t ∂ xi + 4 ∂M
∆ t2 ∂ x i u1 − 2 ∂C
∆ t ∂ xi + 4 ∂M
∆ t2 ∂ xi u0 − (8.97)
[ ]
∂C
+ 4 ∂M
v0 − ∂M
a0 − ∂ f1
∂ xi ∆ t ∂ xi ∂ xi ∂ xi
Zt λ = −µ =⇒ λ
e finalmente a sensibilidade de h usando a Equação 8.16, ou seja:
dh ∂h
= + λt pi
d xi ∂ xi
onde:
∂h
=0
∂ xi
As observações feitas no final da seção sobre problemas de fluxo térmico transiente valem também agora.
Referências Bibliográficas
[1] Conn, A. R., Gould, N. I. M. e Toint, P. L., ‘LANCELOT: A Fortran Package for Large-Scale Nonlinear
Optimization (Release A)’, Spring Series in Computational Mathematics, USA, 1992.
[2] Carrol, C. W., ‘The Created Response Surface Technique for Optimizing Nonlinear Restrained Systems’,
Operations Research, 9, 169–184, 1961.
[3] Fox, R. L., ‘Optimization Methods for Engineering Design’, Addison-Wesley, 1971.
[4] Frisch, K. R., ‘The Logarithmic Potential Method of Convex Programming’, University Institute of
Economics (manuscript), Oslo, Norway, 1955.
[5] Lindo Systems Inc., ‘Lingo Manual for Release 5.3’, Chicago, 1997.
[6] Murtagh, B. A e Saunders, M, A., ‘Minos 5.5 User’s Guide’, California: Universidade de Stanford, 1998.
[7] Nocedal, J. e Wright, S. J., ‘Numerical Optimization’, Segunda Edição, Springer, 2006.
[8] Ben-Israel, A. e Greville, T. N. E., ‘Generalized Inverses: Theory and Applications’, Segunda Edição,
Springer, 384 pág., 2003.
[10] Bathe, Klaus-Jürgen., ‘Finite Element Procedures in Engineering Analysis’, Prentice Hall Inc. 1996.
125
126 REFERÊNCIAS BIBLIOGRÁFICAS
Apêndice A
Neste apêndice será apresentada a análise de sensibilidade analı́tica da matriz de rigidez de um elemento
isoparamétrico bilinear de 4 nós para problemas de estado plano em relação a uma coordenada nodal.
A análise de sensibilidade da matriz de rigidez de um elemento finito é usada na otimização de forma
de estruturas modeladas por elementos finitos onde as coordenadas nodais são as variáveis de projeto do
problema de otimização.
Um elemento finito é dito isoparamétrico quando as mesmas funções de interpolação são usadas para
interpolar não apenas grandezas cinemáticas ( deslocamentos ), como é usual nos elementos finitos conven-
cionais, mas também as grandezas geométricas, no caso coordenadas.
Coordenadas paramétricas são usadas nas funções de interpolação. Assim,
{ ∑4
x (ξ, η) = i=1 Ni (ξ, η)xi ;
∑4 (A.1)
y (ξ, η) = i=1 Ni (ξ, η)yi ;
{ ∑4
u (ξ, η) = i=1 Ni (ξ, η)ui ;
∑4 (A.2)
v (ξ, η) = i=1 Ni (ξ, η)vi ;
Onde, xi e yi são as coordenadas nodais relativas aos eixos x e y, respectivamente, e ui e vi são os
deslocamentos nodais relativos aos eixos x e y, respectivamente.
As funções de interpolação Ni (ξ, η) são dadas por:
N1 (ξ, η) = 1
4 (1 − ξ)(1 − η) ;
N2 (ξ, η) = 1
4 (1 + ξ)(1 − η) ;
1 (A.3)
N3 (ξ, η) = 4 (1 + ξ)(1 + η) ;
N4 (ξ, η) = 1
4 (1 − ξ)(1 + η) ;
As expressões A.1 permitem mapear um ponto P (ξ, η) do quadrado representado no plano paramétrico
para um ponto P (x, y) no quadrilátero representado no plano cartesiano como indicado na Figura A.1.
Seja uma função ϕ(x, y). Se x e y forem definidos conforme as expressões A.1, a relação entre as derivadas
de ϕ em relação às coordenadas cartesianas e as derivadas de ϕ em relação às coordenadas paramétricas é
dada pela regra da cadeia:
{
dϕ dϕ dx dϕ dy
dξ = dx dξ + dy dξ ;
dϕ dϕ dx dϕ dy (A.4)
dη = dx dη + dy dη ;
ou, matricialmente,
{ } [ ]{ }
dϕ dx dy dϕ
dξ dξ dξ dx
dϕ = dx dy dϕ ; (A.5)
dη dη dη dy
127
128 APÊNDICE A. EXEMPLO DE ANÁLISE DE SENSIBILIDADE
Figura A.1: Mapeamento de um ponto P (ξ, η) do espaço paramétrico para um ponto P (x, y) espaço carte-
siano.
ou, matricialmente,
[ ] x1 y1
N1 (ξ, η),ξ N2 (ξ, η),ξ N3 (ξ, η),ξ N4 (ξ, η),ξ x2 y2
J (ξ, η) = ; (A.8)
N1 (ξ, η),η N2 (ξ, η),η N3 (ξ, η),η N4 (ξ, η),η x3 y3
x4 y4
Observando-se A.5, pode-se deduzir que a inversa da matriz Jacobiana Γ (ξ, η), dada por,
−1
Γ (ξ, η) = J (ξ, η) ; (A.10)
u,x
[ ]
u,ξ
u,y Γ (ξ, η)2×2 02x2 u,η
= ; (A.11)
v,x
02x2 Γ (ξ, η)2×2 v,ξ
v,y v,η
ou, sucintamente,
ε = Bd; (A.17)
E a matriz C é a matriz constitutiva que transforma o vetor de deformações ε em vetor de tensões σ
para o material de comportamento linear elástico ( lei de Hooke ).
σ = Cε; (A.18)
No caso de um problema plano, as componentes do vetor de deformação ε são:
εx = u,x
εy = v,y (A.19)
γxy = u,y + v,x
130 APÊNDICE A. EXEMPLO DE ANÁLISE DE SENSIBILIDADE
ou, matricialmente,
u,x
εx 1 0 0 0
u,y
εy = 0 0 0 1 (A.20)
v,x
γxy 0 1 1 1
v,y
ou, sucintamente,
ε = Hu,c (A.21)
Usando agora A.12 e A.14, a expressão A.21 pode ser reescrita como:
Sendo t a espessura do elemento. A integração da matriz de rigidez é feita no plano paramétrico por
integração numérica porque, para o elemento isoparamétrico, as funções em questão estão definidas no plano
paramétrico.
A matriz C vale para problemas de estado plano de tensão:
1 υ 0
E
C= υ 1 0 ; (A.25)
1 − υ2 1−υ
0 0 2
∑
ng
t
K8×8 = t B (ξg i , ηg i ) 8×3 C3×3 B (ξg i , ηg i )3×8 det (J (ξg i , ηg i ))wξ i wη i ; (A.27)
i=1
Agora, uma vez revisitada a formulação da matriz de rigidez K de um elemento isoparamétrico quadri-
lateral de 4 nós, a questão da análise de sensibilidade da matriz de rigidez K em relação a uma coordenada
nodal arbitrária pode ser formulada. A coordenada será designada por xij que corresponde à coordenada na
linha i (nó i ) e coluna j (x para j = 1 e y para j = 2) da matriz X definida em A.8 e A.9.
A expressão A.27 nos permite obter a expressão para a derivada de K em relação à coordenada xij :
dK {∑ [ ]
ng dBi t t dBi
= t i=1
dxij 8×3 C 3×3 B i3×8 + B i 8×3 C3×3 dxij 3×8 det (Ji ) +
dxij 8×8 } (A.28)
Bti8×3 C3×3 Bi3×8 d(det
dxij
Ji )
wξ i wη i ;
131
Onde Bi e Ji são agora os valores das matrizes B (ξ, η) e J (ξ, η) calculados nos pontos de Gauss ξgi , ηgi .
Fazendo k = 2/j, a sensibilidade do determinante da matriz Jacobiana em qualquer ponto ξ, η em relação a
xij pode ser obtida por:
sendo que,
dΓ(ξ,η)
dΓu(ξ, η) 02×2
= ;
dxij 2×2
dΓ(ξ,η) (A.31)
dxij 4×4 02×2 dxij 2×2
A sensibilidade da inversa da matriz Jacobiana, Γ(ξ, η) em relação à coordenada xij pode ser obtida a
partir do produto indicado a seguir:
JΓ = I; (A.32)
Derivando-se os dois lados da equação A.32 chega-se a,