Você está na página 1de 136

Programação Matemática: Teoria, Algoritmos e Aplicações na

Engenharia

Luiz Eloy Vaz


Anderson Pereira
Ivan F. Menezes

Rio de Janeiro, 08 de agosto de 2012


Sumário

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

2 Fundamentos de Otimização sem Restrições (OSR) 13


2.1 Série de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Condições de Mı́nimo no Problema de OSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.1 Condição de Primeira Ordem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.2 Condição de Segunda Ordem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3 Métodos de Otimização sem Restrições (OSR) 19


3.1 Métodos de Busca Unidimensional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1.1 Método de Passo Constante ou Incremental . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1.2 Método de Armijo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.3 Método da Bisseção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.4 Método da Seção Áurea (Golden Section, em inglês) . . . . . . . . . . . . . . . . . . . 20
3.1.5 Método da Ortogonalidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1.6 Método Secante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2 Métodos de Direção de Busca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2.1 Método Univariante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2.2 Método de Powell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2.2.1 Direções Conjugadas no Método de Powell . . . . . . . . . . . . . . . . . . . 26
3.2.2.2 Convergência do Método de Powell . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.3 Método do Máximo Declive (Steepest Descent, em inglês) . . . . . . . . . . . . . . . . 31
3.2.4 Método de Fletcher–Reeves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.5 Método de Hestenes–Stiefel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2.6 Método de Polak–Ribière . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2.7 Método de Newton–Raphson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.8 Métodos Quase–Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.8.1 Algoritmo de Correção de Posto Um . . . . . . . . . . . . . . . . . . . . . . . 37
3.2.8.2 Algoritmo de Correção de Posto Dois ou DFP (Davison–Fletcher–Powell) . . 39
3.2.8.3 Algoritmo BFGS (Broyden–Fletcher–Goldfarb–Shanno) . . . . . . . . . . . . 39

4 Fundamentos de Otimização Com Restrições (OCR) 41


4.1 Condições de Mı́nimo no Problema de OCR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.1.1 Condições de Primeira Ordem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.1.1.1 Problemas com Restrições de Igualdade . . . . . . . . . . . . . . . . . . . . . 41
4.1.1.2 Problemas com Restrições de Desigualdade . . . . . . . . . . . . . . . . . . . 43
4.1.1.3 Problema Geral de Otimização com Restrições . . . . . . . . . . . . . . . . . 45
4.1.2 Condições de Segunda Ordem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.1.2.1 Problemas com Restrições de Igualdade . . . . . . . . . . . . . . . . . . . . . 45

i
ii SUMÁRIO

4.1.2.2 Problemas com Restrições de Desigualdade . . . . . . . . . . . . . . . . . . . 46


4.2 Os Multiplicadores de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.2.1 Exemplo de Aplicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.3 Dualidade de Wolfe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.3.1 Exemplos Teóricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.3.1.1 Programação Linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.3.1.2 Programação Quadrática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

5 Métodos Indiretos em OCR 53


5.1 Método de Penalidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.2 Método de Barreira . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

6 Problemas Especiais em OCR 59


6.1 O Problema de Programação Linear (PL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
6.1.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
6.1.2 Fundamentos matemáticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
6.1.2.1 Dependência linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
6.1.2.2 Bases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.1.2.3 Posto (ranking) de uma matriz Amxn . . . . . . . . . . . . . . . . . . . . . . 64
6.1.2.4 Soluções básicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6.1.2.5 Pontos e conjuntos de pontos . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6.1.2.6 Teoremas importantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
6.1.3 Algoritmo Simplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
6.1.3.1 Formulação do problema de PL . . . . . . . . . . . . . . . . . . . . . . . . . 70
6.1.3.2 Hipóteses preliminares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
6.1.3.3 Redução de uma solução compatı́vel qualquer para uma solução compatı́vel
básica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
6.1.3.4 Algumas definições e notações . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6.1.3.5 Formulação do método Simplex . . . . . . . . . . . . . . . . . . . . . . . . . 75
6.1.3.6 Soluções ilimitadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.1.3.7 Condições de otimização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.1.3.8 Alternativa ótima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.1.3.9 Pontos extremos e soluções compatı́veis básicas . . . . . . . . . . . . . . . . . 82
6.1.3.10 Solução compatı́vel básica inicial . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.2 O Problema de Programação Quadrática (PQ) . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.2.1 Eliminação de restrições de igualdade . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.2.2 Problemas de Programação Linear Complementar (PLC) . . . . . . . . . . . . . . . . 88
6.2.3 Algoritmo de Lemke para a solução do PLC . . . . . . . . . . . . . . . . . . . . . . . . 89
6.2.3.1 Esquema de Pivoteamento de Lemke . . . . . . . . . . . . . . . . . . . . . . . 89

7 O Problema Geral de Programação Não-Linear (PNL) 93


7.1 Método de Programação Linear Seqüencial (PLS) . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.2 Método dos Centros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
7.3 Método das Direções Viáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
7.3.1 Solução Inicial Viável . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
7.3.2 Restrições de Igualdade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
7.4 Método do Gradiente Reduzido Generalizado (GRG) . . . . . . . . . . . . . . . . . . . . . . . 103
7.5 Método de Programação Quadrática Seqüencial (PQS) . . . . . . . . . . . . . . . . . . . . . . 105
7.5.1 Problema P1 (problema original) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
7.5.2 Problema P2 (subproblema de PQS relativo a P1) . . . . . . . . . . . . . . . . . . . . 106
SUMÁRIO 1

8 Análise de Sensibilidade 109


8.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
8.2 Métodos de Análise de Sensibilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
8.2.1 Método das Diferenças Finitas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
8.2.2 Método Direto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
8.2.3 Método Adjunto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
8.3 Comparação entre os Métodos de Análise de Sensibilidade . . . . . . . . . . . . . . . . . . . . 111
8.4 Aplicação dos Métodos de Análise de Sensibilidade . . . . . . . . . . . . . . . . . . . . . . . . 112
8.4.1 Análise Linear Elástica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
8.4.1.1 Método das Diferenças Finitas . . . . . . . . . . . . . . . . . . . . . . . . . . 112
8.4.1.2 Método Direto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.4.1.3 Método Adjunto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.4.2 Problema de Autovalores e Autovetores . . . . . . . . . . . . . . . . . . . . . . . . . . 114
8.4.2.1 Método das Diferenças Finitas . . . . . . . . . . . . . . . . . . . . . . . . . . 114
8.4.2.2 Método Direto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
8.4.2.3 Método Adjunto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
8.4.3 Problema de Análise Não Linear Estática . . . . . . . . . . . . . . . . . . . . . . . . . 116
8.4.3.1 Método das Diferenças Finitas . . . . . . . . . . . . . . . . . . . . . . . . . . 117
8.4.3.2 Método Direto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
8.4.3.3 Método Adjunto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
8.4.4 Problemas de Carga Limite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
8.4.4.1 Método das Diferenças Finitas . . . . . . . . . . . . . . . . . . . . . . . . . . 118
8.4.4.2 Método Direto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
8.4.4.3 Método Adjunto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
8.4.5 Problemas de Fluxo Térmico Transiente . . . . . . . . . . . . . . . . . . . . . . . . . . 120
8.4.5.1 Método das Diferenças Finitas . . . . . . . . . . . . . . . . . . . . . . . . . . 121
8.4.5.2 Método Direto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
8.4.5.3 Método Adjunto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
8.4.6 Problemas de Análise Dinâmica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
8.4.6.1 Método das Diferenças Finitas . . . . . . . . . . . . . . . . . . . . . . . . . . 123
8.4.6.2 Método Direto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
8.4.6.3 Método Adjunto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

A Exemplo de Análise de Sensibilidade 127


2 SUMÁRIO
Parte I

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.1 O Problema Geral de Programação Matemática


O problema geral de Programação Matemática (PM) pode ser representado matematicamente como:


 min f (x) x ∈ ℜn



s.t. hk (x) = 0 k = 1...m (1.1)



 cl (x) ≤ 0 l = 1...p

xli ≤ xi ≤ xui i = 1...n
e pode ser descrito nos seguintes termos: minimizar a função f (x), dita função objetivo, de n variáveis
contidas no vetor x, designado de vetor das variáveis de projeto, sendo que as n variáveis estão submetidas
(“s.t.”, subjected to, em inglês) a m restrições de igualdade hk (x), p restrições de desigualdade cl (x) e n res-
trições laterais do tipo maior ou igual a um limite inferior, xli (l, do inglês lower limit) e um limite superior
xui (u, do inglês upper limit).

O problema geral gera vários sub-problemas tais como:

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.

1.2 Exemplo de Aplicação em Otimização de Estruturas


Para os engenheiros de projeto, sejam eles civis, mecânicos, aeronáuticos ou navais, a aplicação clássica do
problema de Programação Matemática é a otimização de estruturas.

1.2.1 Treliça Plana de Duas Barras


Para se entender a importância do estudo da otimização estrutural, considerar o problema apresentado na
Figura 1.1.

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

Figura 1.1: Treliça Plana de Duas Barras.

– r2 (raio da seção transversal da barra 2)


– H (dimensão vertical da treliça)

• Informações adicionais (restrições laterais):

– 0.4 ≤ r2 ≤ 1 (intervalo de variação de r2 )


– 1 ≤ H ≤ 7 (intervalo de variação de H)

Em função das variáveis r2 e H, o volume (V ) da barra 2 é dado por:

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

Cálculo das Tensões nas Barras


Fazendo-se o equilı́brio das forças horizontais (vide Figura 1.2), tem-se:
8 CAPÍTULO 1. INTRODUÇÃO

N1 P
y
a

N2

Figura 1.2: Esforços nas Barras da Treliça.

N1 = N2 cos(α) (1.4)

onde

H
sen(α) = √
H2 + L2
e
L
cos(α) = √
H + L2
2

Na direção vertical deve-se ter:


P = N2 sen(α) (1.5)

Combinando-se as Equações (1.4) e (1.5) chega-se a:

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

Como N1 < N2 , tem-se que, a tensão crı́tica é σ2 .


1.2. EXEMPLO DE APLICAÇÃO EM OTIMIZAÇÃO DE ESTRUTURAS 9

Tensão Crı́tica de Euler

π 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

Com as expressões acime pode-se definir as restrições como:

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

O problema proposto pode ser formulado da seguinte maneira:




 min V (r2 , H)







 s.t. g1 (r2 , H) ≤ 0

g2 (r2 , H) ≤ 0
(1.11)

 g3 (r2 , H) ≤ 0







 0.4 ≤ r2 ≤ 1

1≤H≤7

Resultados

O problema proposto em 1.11 foi resolvido para diferentes dados de entrada conforme a tabela 1.1.

dados resultados restrições


função objetivo modo de falha
σe r1 E r2 H g1 g2 g3
350 0.3 2000 0.52012 2.0210 0 −0.24983 0 1.9164 1e3
350 0.4 2000 0.49219 1.1368 0 0 −0.32885 1.1523 1e2
350 0.5 2000 0.50718 1 −0.27244 0 −0.44856 1.1429 2
500 0.3 2000 0.46664 1.4147 0 −0.28396 0 1.1852 1e3
350 0.3 20000 0.45049 2.021 0 0 −0.8223 1.4376 1e2
350 0.4 20000 0.49219 1.1368 0 0 −0.93288 1.1523 1e2
350 0.5 20000 0.50718 1 −0.27243 0 −0.94486 1.1429 2
500 0.3 20000 0.4 1.4147 0 −0.02549 −0.81478 0.8708 1

Tabela 1.1: Resultados.


10 CAPÍTULO 1. INTRODUÇÃO

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

(a) σE = 350 e r1 = 0.3 (b) σE = 350 e r1 = 0.4

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

(c) σE = 350 e r1 = 0.5 (d) σE = 500 e r1 = 0.3

Figura 1.3: Curvas para o módulo de eslasticidade igual a 2000.


1.2. EXEMPLO DE APLICAÇÃO EM OTIMIZAÇÃO DE ESTRUTURAS 11

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

(a) σE = 350 e r1 = 0.3 (b) σE = 350 e r1 = 0.4

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

(c) σE = 350 e r1 = 0.5 (d) σE = 500 e r1 = 0.3

Figura 1.4: Curvas para o módulo de eslasticidade igual a 20000.


12 CAPÍTULO 1. INTRODUÇÃO
Capı́tulo 2

Fundamentos de Otimização sem


Restrições (OSR)

2.1 Série de Taylor


A aproximação de uma função f (x) de uma variável, em torno de um ponto x0 , por meio da série de Taylor
é um recurso utilizado em Programação Matemática, e será aqui apresentado para facilitar a compreensão
de várias passagens matemáticas e demonstrações ao longo desse capı́tulo.
A série de Taylor, designada pela função s(x), é dada pela seguinte expressão:

1 df (x) 1 d2 f (x) 2
s (x) ≈ f (x0 ) + (x − x0 ) + (x − x0 ) + · · · (2.1)
1! dx x=x0 2! dx2 x=x0
A série acima foi truncada no termo de segunda ordem (assim denominado por conter a segunda derivada
de f ) e apresenta o seguinte termo genérico de ordem n:

1 dn f (x) n
(x − x0 ) (2.2)
n! dxn x=x0
A aproximação é tanto melhor quanto mais próximo x estiver de x0 e quanto mais termos a série contiver.
É possı́vel observar as seguintes propriedades da função aproximadora s(x) no ponto x0 :

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)

e H(x) é a matriz Hessiana1 de f (x), cujos elementos são dados por:

∂ 2 f (x)
hij (x) = , i, j = 1 · · · n (2.5)
∂xi ∂xj

Exemplo 2.1 – Série de Taylor para Função de Uma Variável


Aproximar f (x) = sin(x) em torno do ponto x0 = π4 .

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).

Exemplo 2.2 – Série de Taylor para Função de Duas Variáveis


{ }t
Obter a aproximação de f (x) = sin(x1 ) sin(x2 ) em torno do ponto x0 = π4 , π4 .

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

da teoria das Funções Algébricas e dos Invariantes.


2.1. SÉRIE DE TAYLOR 15

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

Figura 2.1: Aproximações em Série de Taylor da Função sin(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)

2.2 Condições de Mı́nimo no Problema de OSR


2.2.1 Condição de Primeira Ordem
A condição de primeira ordem para que o vetor x seja um mı́nimo local x∗ da função f (x) é dada por:

g (x)|x=x∗ = g (x∗ ) = 0 (2.13)

ou seja, o vetor gradiente g(x) deve ser nulo em x = x∗ .


Para provar essa condição, considerar s(x) uma aproximação de f (x) em série de Taylor, em torno de
x∗ , até o termo de segunda ordem:

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:

f (x) − f (x∗ ) ≈ s (x) − f (x∗ ) ≈ [g(x∗ )] (x − x∗ )


t
(2.15)

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:

df (x∗ ) ≈ ∥g (x∗ )∥ ∥dx∥ cos(α) (2.17)

Fixando-se o módulo de dx e deixando-se α variar, df (x∗ ) será uma função apenas de α, ou seja:

df (α) ≈ ∥g (x∗ )∥ ∥dx∥ cos(α) (2.18)

No mı́nino local deve-se ter, para arbitrário α:

df (α) ≈ ∥g (x∗ )∥ ∥dx∥ cos(α) ≥ 0 (2.19)

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)

que é conhecida como a condição de mı́nimo local de primeira ordem.


2.2. CONDIÇÕES DE MÍNIMO NO PROBLEMA DE OSR 17

2.2.2 Condição de Segunda Ordem


Se o ponto x∗ for um mı́nimo, ele deverá satisfazer a condição de primeira ordem, g (x∗ ) = 0 (Eq. 2.21)
e, portanto, a série de Taylor s(x) em torno de x∗ pode ser reescrita desprezando-se o segundo termo e
truncada no terceiro termo, ou seja:
1
s (x) ≈ f (x∗ ) + (x − x∗ ) H(x∗ ) (x − x∗ )
t
(2.22)
2
Analogamente às Equações (2.15) e (2.16), a Equação (2.22) pode ser escrita como:
1
df (x∗ ) ≈(x − x∗ ) H(x∗ ) (x − x∗ )
t
(2.23)
2
Para que x∗ seja um mı́nimo local, a Equação (2.22) deve satisfazer:

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

nulo. Desta forma:


{ }
∗ ∗ 0
∇f (x ) = g(x ) =
0
satisfazendo-se assim a condição de mı́nimo de primeira ordem.
A Hessiana de f (x) avaliada em x∗ é:
[ ]
802 −400
∇2 f (x∗ ) = H(x∗ ) =
−400 200
Sabe-se que uma matriz A é positiva definida se todos os seus autovalores forem positivos, ou seja, se todos
os valores de λ que satizfazem a equação

|A − λI| = 0
forem positivos.
18 CAPÍTULO 2. FUNDAMENTOS DE OTIMIZAÇÃO SEM RESTRIÇÕES (OSR)

Usando-se os valores de H(x∗ ) na equação acima tem-se:


[ ] [ ] [ ]
802 −400 1 0 802 − λ −400
− λ = = λ2 − 1002λ + 400 = 0
−400 200 0 1 −400 200 − λ
Obtendo-se os valores λ1 = 0.39936 e λ2 = 1001.6. Como λ1 > 0 e λ2 > 0 pode-se concluir que H(x∗ ) é
positiva definida.

Outra maneira de se testar se a matriz A é positiva definida envolve o cálculo de n determinantes, ou


seja:

A1 = a11

a a12
A2 = 11
a21 a22

a11 a12 a13

A3 = a21 a22 a23

a31 a32 a33

..
.

a11 a12 a13 ··· a1n

a21 a22 a23 ··· a2n

a31 a32 a33 ··· a3n
An =
..
.

an1 an2 an3 ··· ann

A matrix A será positiva definida se todos os valores de A1 , A2 , A3 , . . . , An forem positivos.


Os determinantes das submatrizes quadradas de H são:

H1 = 802 = 802 > 0

802 −400
H2 = = 802 × 200 − (−400) × (−400) = 400 > 0
−400 200
Então a matrix H é positiva definida e, portanto, o ponto x∗ = {1, 1} corresponde a um ponto de mı́nimo
t

de f (x).

Capı́tulo 3

Métodos de Otimização sem


Restrições (OSR)

3.1 Métodos de Busca Unidimensional


A fórmula de recorrência, comumente utilizada nos métodos de otimização, é dada por:

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.

3.1.1 Método de Passo Constante ou Incremental


O método de passo constante ou incremental é o mais simples da famı́lia dos métodos de busca unidimensional
e surgiu associado ao método de direção de busca univariante, também o mais primitivo da famı́lia dos
métodos de direção de busca.
A idéia básica deste método de passo constante consiste na escolha de um incremento ∆α que será usado
na expressão:

αi+1 = αi + ∆α, i = 0, . . . , n (3.2)


0
O valor de α na expressão (3.2) deve ser igual a zero e o número de iterações deve ser o necessário para
se obter o mı́nimo de f (α). A cada novo valor de α na iteração i + 1, f (α) deve ser avaliada para saber se
seu valor é menor do que o encontrado na iteração anterior. Caso não seja, faz-se αk = αi , i.e., o valor de α
que minimiza f (α) foi encontrado e é colocado em αk , para se avançar para xk+1 .
O algoritmo de passo incremental adota ∆α constante nas duas primeiras iterações. A partir da terceira
iteração o valor de ∆α vai sendo dobrado em relação ao valor anterior. Os incrementos para cada nova
iteração, a partir da terceira, passam a ser 2∆α, 4∆α, 8∆α, · · · . Espera-se com isso acelerar o processo
iterativo e diminuir o número de avaliações de f (α). Como no caso de ∆α constante, o processo iterativo é
interrompido assim que se obtém um αi+1 para o qual f (α) é maior do que na iteração anterior.
A escolha de ∆α é uma tarefa delicada, pois o incremento tem que ser compatı́vel com a ordem de
grandeza da variável x. Se a variável x for uma dimensão em mm o valor do incremento ∆α deve ser
diferente daquele para o qual a variável x seja dada em Km. A precisão de αk depende do valor relativo de
∆α em relação ao valor de αk .
1 Em algumas referências, o termo line search é traduzido como “busca linear” ou “busca unidirecional”.

19
20 CAPÍTULO 3. MÉTODOS DE OTIMIZAÇÃO SEM RESTRIÇÕES (OSR)

3.1.2 Método de Armijo


Esse método, assim como os de passo constante ou incremental, é chamado de método de busca inexata, pois
não se preocupa em obter o valor exato de α que minimiza f (α) e sim caminhar na direção de decréscimo
até que não seja mais possı́vel com o incremento ∆α escolhido. O método faz uso do conceito de “taxa de
decréscimo” m. O valor de α pode ser incrementado como no método de passo constante ou incremental. A
determinação de αk se dá quando a seguinte restrição é violada:

f (xk + αdk ) ≥ r(α) = f |α=0 − mα (3.3)


k k
onde α é o valor de α para o qual a função f é maior do que o valor da reta r que passa por f (x ) (que
corresponde ao valor de f para α = 0) e tem inclinação −m. A taxa de decréscimo m deve ser um valor
entre 0.2 e 0.4 dependendo do problema. Recomenda-se o valor m = 0.3.

f(a) f(a)

r(a)

ak a
Figura 3.1: Método da Armijo.

3.1.3 Método da Bisseção


O método da Bisseção objetiva encontrar o mı́nimo de f (α) no intervalo ou região de busca 0 ≤ α ≤ β. Caso
o mı́nimo não esteja na região de busca pré-definida, o método converge para αk = 0 ou para αk = β. Para
a busca do mı́nimo, o intervalo é subdividido em dois intervalos iguais, pelo ponto α = β/2. Cada um desses
dois novos intervalos é, por sua vez, subdividido em outros dois intervalos iguais e assim sucessivamente. Em
cada nova divisão, um intervalo é escolhido para continuar a busca do mı́nimo e o outro é descartado. Para
se escolher o intervalo descartado, calcula-se f no ponto médio dos dois intervalos. O intervalo descartado é
aquele que apresenta o maior valor de f no seu ponto médio. A idéia do método é reduzir progressivamente
a região de busca em torno do mı́nimo. A precisão de αk depende do critério de convergência adotado para
se interromper as iterações.

3.1.4 Método da Seção Áurea (Golden Section, em inglês)


Para se explicar o conceito da razão áurea, deve-se introduzir, inicialmente, a sequência de Fibonacci. Essa
sequência, denominada FN , gera números que começam com N = 0 e F0 = 1 e segue com N = 1 e F1 = 1.
A partir daı́ utiliza-se a seguinte fórmula de recorrência:
3.1. MÉTODOS DE BUSCA UNIDIMENSIONAL 21

FN = FN −1 + FN −2 (3.4)

Com os números de Fibonacci FN , pode-se definir a razão de Fibonacci, RF , da seguinte forma:

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

Tabela 3.1: Sequência de Fibonacci para N = 0 até N = 10.

É 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

Figura 3.2: Intervalos de Busca do Método da Seção Áurea.

0 a1e a1d b

a1e a2e a2d b

a1e a3e a3d a2d

a3e a4e a4d a2d

a3e a5e a5d a4d

a6e a6d
a3e a5d

Figura 3.3: Escolha dos Intervalos de Busca no Método da Seção Áurea.


3.1. MÉTODOS DE BUSCA UNIDIMENSIONAL 23

O comprimento do novo intervalo é dado por:

β − α1e = β − (1 − R) β = R β (3.6)

Como o ponto inicial do intervalo é α1e e seu comprimento R β, os dois novos pontos seriam:

α2d = α1e + R (R β) e α2e = β − R (R β) = (1 − R2 ) β (3.7)

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)

com raı́zes iguais a:



−1 + 5
R1 = = 0.61803 . . . (3.10)
2


−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.

3.1.5 Método da Ortogonalidade


Sejam x(α) = xk + αdk , o próximo ponto para um determinado valor de α, e f [x(α)] o valor da função f
nesse ponto. Derivando-se f [x(α)] em relação a α, obtém-se:

df [x(α)] ∂f (x) dx t
= = {g [x(α)]} dk (3.12)
dα ∂x dα

O valor αk de α que minimiza f [x(α)] a partir de xk na direção dk é obtido da condição:

df (α)
=0 (3.13)

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

Figura 3.4: Comportamento do Método da Ortogonalidade.

3.1.6 Método Secante


O método de Newton faz uso das segundas derivadas para minimizar uma função f (α), ou seja:

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:

f ′ (αk ) αk−1 − f ′ (αk−1 ) αk


αk+1 =
f ′ (αk ) − f ′ (αk−1 )

3.2 Métodos de Direção de Busca


Nesta seção, serão apresentados os seguintes métodos de direção de busca: Univariante; Powell; Máximo
Declive; Fletcher–Reeves; Hestenes–Stiefel; Polak–Ribière; e Newton-Raphson, além dos métodos Quase-
Newton: de Correção Um; DFP e BFGS.
Os métodos Univariante e de Powell são da famı́lia dos métodos de ordem zero, os de Máximo Declive,
Fletcher–Reeves, Hestenes–Stiefel e Polak–Ribière pertencem à famı́lia dos métodos de primeira ordem e,
finalmente, o método de Newton-Raphson pertence à famı́lia dos métodos de segunda ordem. Os métodos
Quase-Newton, apesar de serem efetivamente de primeira ordem, têm ambição de funcionar como métodos
de segunda ordem. Os métodos de direção de busca define uma expressão para de obter dk . A partir daı́, o
mı́nimo de f (x (α)) será procurado ao longo da reta x (α) = xk + αdk .
3.2. MÉTODOS DE DIREÇÃO DE BUSCA 25

3.2.1 Método Univariante


No método Univariante, a direção de busca na iteração k é definida por:

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.

3.2.2 Método de Powell


O método Univariante é computacionalmente pouco eficiente e requer, em geral, muitas iterações até a
solução. Uma maneira de acelerar esse processo é incorporar uma nova direção de busca, denominada
de movimento padrão, ao conjunto de n direções de busca, no final de cada ciclo iterativo formado por n
iterações. Durante os n primeiros ciclos, uma direção padrão é incorporada, ao fim de cada ciclo, ao conjunto
das n direções de busca do ciclo, substituindo uma das direções univariantes que é descartada. Depois de n
ciclos, nenhuma direção univariante deve restar no conjunto de direções de busca. Essas novas direções de
busca foram propostas por Powell e são obtidas de acordo com a expressão abaixo:
26 CAPÍTULO 3. MÉTODOS DE OTIMIZAÇÃO SEM RESTRIÇÕES (OSR)

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.

A metodologia do método de Powell pode ser resumida nos seguintes passos:

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.

3.2.2.1 Direções Conjugadas no Método de Powell

Considerações Iniciais

• Se um determinado método de minimização sempre encontra o mı́nimo de uma função quadrática em


um número de passos (operações) proporcional ao tamanho do problema (n variáveis), este método é
dito “quadraticamente convergente” [3].
• Se um método quadraticamente convergente é aplicado a uma função genérica para a qual a série de
Taylor é dominada pelo seu termo quadrático, espera-se que o método tenha uma convergência rápida.
• Muitos métodos quadraticamente convergentes se baseiam no conceito de “direções conjugadas”.
• Se uma função quadrática q(x), de n variáveis, é minimizada sequencialmente, uma vez em cada direção
de um conjunto de n direções linearmente independentes (LI) e Q–conjugadas (a definição de Q será
vista adiante), o mı́nimo global será obtido em até n passos, independentemente do ponto inicial x0 .

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 .

x(α) = xa + αda (3.22)


Uma vez obtido αa , chega-se ao ponto x(αa ) que, doravante, será denominado de ya , ou seja:

ya = xa + αa da (3.23)
e, da condição de mı́nimo em ya :

dq [x(α)] ∂q(x) dx(α) t


= = {g [x(αa )]} da = 0 (3.24)
dα ∂x dα
onde:

g [x(αa )] = Q x(αa ) − b (3.25)


Partindo-se de ya na direção de da , pode-se prever que αa = 0 pois ya é um mı́nimo nessa direção. Logo:
t
[Q (ya + 0da ) − b] da = 0 (3.26)
ou:
t
[Q ya − b] da = 0 (3.27)
b a
Considerando-se agora a minimização de q(x) a partir de x , na mesma direção d , tem-se:

x (α) = xb + αda (3.28)


Denominando-se x(αb ) doravante de yb e, com raciocı́nio análogo ao anterior, tem-se em yb :

y b = xb + α b d a (3.29)

dq [x(α)] ∂q(x) dx(α) { [ ]}t a


= = g x(αb ) d =0 (3.30)
dα ∂x dα
onde:
[ ]
g x(αb ) = Q x(αb ) − b (3.31)
Analogamente, partindo-se de yb na mesma direção de da , pode-se prever que αb = 0 pois yb é um
mı́nimo nessa direção. Logo:

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

iterativo descrito acima até as posições ya e yb , respectivamente.

a
d
a b
a y -y
y a
d
a
x
b
x b
y

Figura 3.6: Direções Q–Conjugadas do Método Powell [3].

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.

3.2.2.2 Convergência do Método de Powell

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:

α0 d0 + α1 d1 + · · · + αn−1 dn−1 = 0 (3.37)


( )t
Nesse caso, os vetores di são linearmente dependentes. Pré-multiplicando-se a equação acima por di Q,
chega-se a:
( )t
αi di Q di = 0 (3.38)
uma vez que as demais parcelas se anulam porque o conjunto de vetores é Q–conjugado. Todavia, como Q
deve ser positiva semi-definida em q (x), então:
( i )t
d Q di ≥ 0, logo: αi = 0
o que contradiz a hipótese inicial, de αi não serem todos nulos, e assim o conjunto de vetores di é LI.
Dessa forma, o conjunto dos n vetores di pode formar uma base para o espaço de n–dimensões e, portanto,
o vetor x∗ desse espaço, solução do problema de minimização de q (x), pode ser representado nessa base por:

x∗ = α0 d0 + α1 d1 + · · · + αn−1 dn−1 (3.39)


( i )t
Pré-multiplicando-se ambos os lados da equação acima por d Q e considerando-se o que já foi visto
até o momento, obtém-se:
( i )t ( i )t
i d Q x∗ d b
α = t = t (3.40)
(di ) Q di (di ) Q di
Conclui-se portanto, que, quando se tem um conjunto de n vetores Q–conjugados, pode-se obter x∗
usando a expressão (3.39) e com os valores de αi calculados segundo (3.40) a partir da matriz Q, do vetor
b e do conjunto de vetores di , como indicado.
A solução x∗ pode ser vista como uma aplicação da fórmula geral de recorrência dos métodos de OSR,
partindo-se de x0 = 0 e indo-se, sucessivamente, aos pontos x1 , x2 , · · · , até o ponto xk+1 , ou seja:

xk+1 = α0 d0 + α1 d1 + · · · + αk dk ; (3.41)
Após n passos, chega-se ao ponto x∗ :

x∗ = α0 d0 + α1 d1 + · · · + α(n−1) dn−1 (3.42)

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)

converge para a solução x∗ que minimiza q(x) depois de n passos, ou seja: xn = x∗ .


Demonstração
Como os vetores di são LI, é possı́vel representar qualquer vetor do espaço de x usando esses vetores
como base do espaço, ou seja:

x∗ − x0 = α0 d0 + α1 d1 + · · · + αn−1 dn−1 (3.46)


( )t
Pré-multiplicando-se a expressão acima por dk Q, obtém-se:
( )t ( )
k dk Q x∗ − x0
α = t (3.47)
(dk ) Q dk
Considerando-se a expressão acima como um processo iterativo, ter-se-ia na iteração k o ponto xk , ou
seja:

xk − x(0) = α0 d0 + α1 d1 + · · · + αk−1 dk−1 (3.48)


( k )t
Pré-multiplicando-se mais uma vez por d Q e lembrando-se que o conjunto é Q–conjugado, obtém-se:
t ( )
(dk ) Q xk − x0 = 0 (3.49)
A expressão de αk na Equação (3.47) pode ser reescrita como:
( k )t [( ) ( )]
k d Q x∗ − xk + xk − x0
α = t (3.50)
(dk ) Q dk
Como:

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:

ds2 (xk + αdk )


=0 (3.55)

obtendo-se:
( )t ( )t
gk dk + α dk Q dk = 0 (3.56)
que fornece o mesmo valor de αk , ou seja:
3.2. MÉTODOS DE DIREÇÃO DE BUSCA 31

( )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

Figura 3.7: Passos do Método de Powell.

3.2.3 Método do Máximo Declive (Steepest Descent, em inglês)


O método do Máximo Declive utiliza o gradiente como sendo a direção de busca, ou seja:

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:

df (x) ≈ ∥g(x)∥ ∥s∥cos(θ) (3.61)


onde θ é o ângulo entre os vetores g(x) e s. Para um dado ponto x, df depende apenas de θ, já que os
módulos dos vetores s e gradiente de f em x são conhecidos.
O valor de θ que minimiza df é θ = π, quando cos(θ) = −1, ou seja, quando s tem a direção de:

s = d = −g(x)

3.2.4 Método de Fletcher–Reeves


O método de Fletcher–Reeves é uma extensão do Método dos Gradientes Conjugados. Utilizando-se da
fórmula geral de recorrência dos métodos de OSR, o método dos Gradientes Conjugados visa, de forma
iterativa, minimizar somente funções quadráticas q (x). Ele apresenta uma expressão para gerar direções
de busca dk+1 , na iteração k + 1, que têm a propriedade de serem Q–conjugadas em relação a todas as
k direções geradas anteriormente. Essa propriedade garante que o processo iterativo para minimizar uma
função quadrática q (x) converge em n passos. Vale lembrar que, ao minimizar a função quadrática q (x), o
método terá encontrado a solução do sistema de equações lineares Q x = b.

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 ;

8. Se: gk+1 = 0 =⇒ Fim;


t
(gk+1 ) Q dk
9. β k = (dk )t Q dk
;

10. dk+1 = −gk+1 + β k dk ;

11. k = k + 1;

12. Volta para o passo 5.

A fórmula que permite o cálculo de β k (passo 9 do algoritmo acima) é obtida pré-multiplicando-se a


( )t
expressão que calcula a direção dk+1 (passo 10 do algoritmo acima) por dk Q, ou seja:
( k )t ( )t ( )
d Q dk+1 = dk Q −gk+1 + β k dk = 0 (3.62)
k k+1
Como as direções d e d são Q–conjugadas, chega-se a:
( )t
k gk+1 Q dk
β = t (3.63)
(dk ) Q dk
3.2. MÉTODOS DE DIREÇÃO DE BUSCA 33

Exemplo 3.1 – Método dos Gradientes Conjugados

Considerar a seguinte função quadrática:

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:

A função f pode ser representada por:

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}

Desta forma: x∗ = x3 e o valor da função objetivo no ponto de mı́nimo é: −12.7500.




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

3.2.5 Método de Hestenes–Stiefel


Este método se diferencia do método de Fletcher–Reeves no cálculo do parâmetro β k , o qual é dado pela
seguinte expressão:
( )t [ k+1 ]
k gk+1 g − gk
β = t (3.65)
(dk ) [gk+1 − gk ]

3.2.6 Método de Polak–Ribière


Semelhantemente ao método de Hestenes–Stiefel, o método de Polak–Ribière apresenta uma expressão par-
ticular para o cálculo do parâmetro β k , a qual é dada por:
( )t ( )t
k gk+1 gk+1 − gk+1 gk
β = t (3.66)
(gk ) gk
3.2. MÉTODOS DE DIREÇÃO DE BUSCA 35

3.2.7 Método de Newton–Raphson


No método de Newton–Raphson, a direção de busca é dada por:
( )−1 k
dk = − Hk g (3.67)
k
Para se entender a expressão da direção( de busca
) d no método de Newton–Raphson, deve-se, inicial-
mente, representar a função f (x) no ponto xk + dk por uma aproximação em série de Taylor de segunda
ordem s2 (x) na vizinhança do ponto xk , onde gk e Hk são, respectivamente, o gradiente e a matriz Hessiana
de f (x) avaliados no ponto xk :
( ) ( ) ( )t 1 ( k )t k k
s2 xk + dk = f xk + gk dk + d H d (3.68)
2
Para se obter o mı́nimo de s2 , em relação à direção dk , calcula-se:
( )
ds2 xk + dk
=0 (3.69)
ddk
onde se obtém:
( )−1 k
dk = − Hk g (3.70)

3.2.8 Métodos Quase–Newton


Os métodos Quase-Newton são assim chamados devido à semelhança da sua expressão para obtenção da
direção de busca com a expressão do método de Newton-Raphson (vide Equação 3.70).
Uma das versões mais utilizadas do método Quase-Newton é a que consiste na aproximação da inversa
da matriz Hessiana. Nessa versão, a direção de busca é obtida da seguinte forma:

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 = Q xk+1 − b (3.78)

( )
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

Sk+1 δ ig = δ ix , 0≤i≤k (3.86)


para que Sk+1 seja uma boa aproximação de Q−1 .
3.2. MÉTODOS DE DIREÇÃO DE BUSCA 37

3.2.8.1 Algoritmo de Correção de Posto Um


Um dos esquemas mais antigos e conhecidos para a obtenção da aproximação da inversa de Q é a correção
de posto um (rank one correction, em inglês), que é realizada a partir da seguinte expressão básica:
( )t
Sk+1 = Sk + ak zk zk (3.87)
O termo “correção de posto um” se deve ao fato de que a atualização de Sk é feita através de sua soma
com uma matriz de posto um, uma vez que ela é obtida pelo produto de um vetor coluna pelo mesmo vetor
transposto sendo o resultado multiplicado por um escalar:
 k  
[ ( )t ]  z1 
 [
 .. k 
]
posto zk zk = posto  .  z1 · · · zn  = 1
k
(3.88)

 k 
zn
Qualquer matriz inicial S0 dos métodos Quase-Newton deve ser simétrica e positiva definida e as ex-
pressões de atualização preservam essas propriedades. Para i = k, a equação secante é dada por:

δ 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

ou ainda, utilizando-se a Equação (3.93):


( )( )t
δ kx − Sk δ kg δ kx − Sk δ kg
Sk+1 = Sk + ( )t ( ) (3.96)
δ kg δ kx − Sk δ kg
38 CAPÍTULO 3. MÉTODOS DE OTIMIZAÇÃO SEM RESTRIÇÕES (OSR)

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:

δ ix = Sk+1 δ ig , ∀i < k (3.97)


Revendo-se o que foi dito até aqui, o método parte de um ponto inicial x0 e de uma aproximação inicial
S . A partir desse ponto, calcula-se g0 , obtém-se α0 e utiliza-se a fórmula de recorrência para se chegar ao
0

novo ponto x1 . Na iteração i o esquema se repete, 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:

δ ix = Sk+1 δ ig , ∀i < k (3.105)


A prova da validade da expressão (3.105) se dará por indução, ou seja, supondo-se que ela é válida para
Sk e i < k, ou seja, para as etapas anteriores.
Como a expressão foi provada ser verdadeira para i = k, então vale:

δ 0x = S1 δ 0g (3.106)

Pós-multiplicando-se a expressão (3.103) com i = k por δ ig obtém-se:


[( ) ( )t ]
t
Sk+1 δ ig = Sk δ ig + yk δ kx δ ig − δ kg Sk δ ig (3.107)

onde:

k
δ kx − Sk δ kg
y = ( )t ( ) (3.108)
δ kg δ kx − Sk δ kg

Pela hipótese de indução:


[( )t ( )t ]
Sk+1 δ ig = δ ix +y k
δ kx δ ig − δ kg δ ix (3.109)
3.2. MÉTODOS DE DIREÇÃO DE BUSCA 39

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)

3.2.8.2 Algoritmo de Correção de Posto Dois ou DFP (Davison–Fletcher–Powell)


No algoritmo de posto dois a expressão para a atualização de Sk é dada por:
( )t ( )t
δ kx δ kx Sk δ kg δ kg Sk
Sk+1 = S k + ( )t − ( )t (3.113)
δ kx δ kg δ kg Sk δ kg

Dá-se o nome de atualização de posto dois, pelo fato da matriz que se adiciona a Sk ser de posto dois.

3.2.8.3 Algoritmo BFGS (Broyden–Fletcher–Goldfarb–Shanno)


A expressão para a atualização de Sk no método BFGS é apresentada a seguir:
[( ) ( )t ] ( )t
t ( )t ( )t
k k k k k
δ x δ g + δ g S δ g δ kx δ kx Sk δ kg δ kx + δ kx Sk δ kg
Sk+1 = Sk + [( ) ]2 − ( )t (3.114)
t
k
δx δg k δ kx δ kg

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

Implementação do método Quase-Newton BFGS

• Inicialização e primeira iteração (k = 0):

1. Escolher x0 e S0 , aproximação de H−1 , geralmente como sendo a matriz identidade (I);


2. Calcular g0 a partir de x0 e d0 = −S0 g0 ;
3. Obter α0 por busca unidimensional minimizando f (x0 + αd0 );
4. Avançar para a próxima iteração: x1 = x0 + α0 d0 ;

• Iteração k + 1

1. Calcular gk+1 a partir de xk+1 ;


2. Obter os vetores δ kx e δ kg (vide Equações 3.74);
3. Calcular os vetores vk e wk (vide Equações 3.120);
4. Calcular a direção de busca dk+1 (vide Equação 3.118);
5. Obter αk+1 por busca unidimensional minimizando f (xk+1 + αdk+1 );
6. Avançar para a próxima iteração: xk+2 = xk+1 + αk+1 dk+1 .
Capı́tulo 4

Fundamentos de Otimização Com


Restrições (OCR)

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 .

4.1 Condições de Mı́nimo no Problema de OCR


4.1.1 Condições de Primeira Ordem
4.1.1.1 Problemas com Restrições de Igualdade
Considerar o seguinte problema de otimização com restrições de igualdade apenas:

 min f (x)
(4.2)

s.t. hk (x) = 0, k = 1 . . . m
Seja x∗ um mı́nimo local desse problema. Portanto, não é possı́vel dar um passo viável, a partir de x∗ ,
que seja também um passo de decréscimo de f (x).
A série de Taylor de primeira ordem para a restrição hk (x), em torno do ponto x∗ e com um passo s,
fornece:

hk (x∗ + s) ≈ hk (x∗ ) + st ∇h∗k (4.3)


onde o vetor ∇h∗k é o gradiente de hk (x) em x∗ .
Para que o passo s seja viável, é preciso que a restrição hk seja satisfeita no ponto (x∗ + s). Como ela é
satisfeita em x∗ (ou seja: hk (x∗ ) = 0), isso significa que deve-se ter:

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)

f (x∗ + s) ≈ f (x∗ ) + st g∗ (4.5)


onde g∗ é o vetor gradiente de f (x) em x∗ .
Para que o passo s seja de decréscimo, é preciso que f (x∗ + s) seja menor do que f (x∗ ), ou seja:

st g ∗ ≤ 0 (4.6)

Mostra-se que, se g for expresso por:


m

g =− λ∗k ∇h∗k (4.7)
k=1

então não é possı́vel dar um passo viável e de decréscimo s a partir de x∗ e, consequentemente, x∗ é um


mı́nimo local do problema representado pela Equação (4.2).
A Equação (4.7) significa que g∗ , vetor gradiente de f (x) em x∗ , deve ser uma combinação linear dos
gradientes das restrições em x∗ , ou ainda, o vetor g∗ deve pertencer ao espaço cuja base é definida pelos
vetores ∇h∗k . O escalar λk é denominado multiplicador de Lagrange associado à restrição k.

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 ∇h∗k = −ut ∇h∗k = 0 (4.9)


pois u é ortogonal a ∇h∗k e, de acordo com a expressão (4.4), s é um passo viável a partir de x∗ . Deve-se
verificar se s é também um passo de decréscimo a partir de x∗ . Para que isto ocorra, s deve satisfazer à
Equação (4.6), ou seja:

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

Portanto, s, além de ser um passo viável, é também um passo de decréscimo a partir de x∗ .

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.

Para se encontrar x∗ e λ∗k que satisfaçam as equações:


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

é conveniente definir a função Lagrangeana como:


m
L(x, λ) = f (x) + λk hk (x) (4.14)
k=1

Para se encontrar o mı́nimo da função Lagrangeana, deve-se ter:

∂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.

4.1.1.2 Problemas com Restrições de Desigualdade


Considerar, agora, o seguinte problema de otimização com restrições de desigualdade apenas:

 min f (x)
(4.17)

s.t. cl (x) ≤ 0, l = 1...p
Seja x∗ um mı́nimo local desse problema. Portanto, não é possı́vel dar um passo viável, a partir de x∗ ,
que também seja um passo de decréscimo de f (x).
A série de Taylor de primeira ordem para a restrição cl (x), em torno do ponto x∗ e com um passo s, é
dada por:

cl (x∗ + s) ≈ cl (x∗ ) + st ∇c∗l (4.18)


onde o vetor ∇c∗l é o gradiente de cl (x) em x . ∗

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.

1c ∗ é dita ativa se cj (x∗ ) = 0.


j (x )
44 CAPÍTULO 4. FUNDAMENTOS DE OTIMIZAÇÃO COM RESTRIÇÕES (OCR)

Seja s um passo que satisfaz:

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)

µ∗l ≥ 0, l = 1...p (4.33)

µ∗l c∗l = 0, l = 1...p (4.34)


A expressão (4.34) é chamada de condição de complementaridade e significa que, se a restrição de desi-
gualdade não estiver ativa, o multiplicador de Lagrange associado deve ser nulo.
2 Mais detalhes sobre a teoria de matrizes inversas generalizadas podem ser vistos na Referência [8].
4.1. CONDIÇÕES DE MÍNIMO NO PROBLEMA DE OCR 45

4.1.1.3 Problema Geral de Otimização com Restrições


Seja um problema geral de OCR:


 min f (x)


 s.t. hk (x) = 0, k = 1 . . . m

cl (x) ≤ 0, l = 1 . . . p
A função Lagrangeana associada é dada por:


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

λ∗k = ∀ valor, k = 1...m

µ∗l ≥ 0, l = 1...p

λ∗k h∗k = 0, k = 1...m

µ∗l c∗l = 0, l = 1...p

4.1.2 Condições de Segunda Ordem


4.1.2.1 Problemas com Restrições de Igualdade
Considerar que os vetores ∇h∗k são linearmente independentes em x∗ . Da definição de função Lagrangeana,
pode-se escrever que, para o ponto (x∗ + s):


m
L(x∗ + s, λ∗ ) = f (x∗ + s) + λ∗k hk (x∗ + s) (4.35)
k=1

ou, pela série de Taylor de segunda ordem:


1 t
L (x∗ + s, λ∗ ) = L (x∗ , λ∗ ) + st ∇L∗ + s W∗ s (4.36)
2
onde W∗ é a Hessiana da função Lagrangeana L no ponto (x∗ , λ∗ ) e L,x , é o vetor das derivadas parciais
de L em relação às variáveis x. Como a função Lagrangeana no ponto (x∗ , λ∗ ) é dada por:


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)

pode-se reescrever a aproximação de Taylor, como:


1 t
L (x∗ + s, λ∗ ) = f (x∗ ) + s W∗ s (4.40)
2
Para que s seja uma direção viável, deve-se ter:

hk (x∗ + s) = 0, k = 1...m (4.41)


o que também significa dizer, considerando (4.35), que:

L (x∗ + s, λ∗ ) = f (x∗ + s) (4.42)


Combinando-se as Equações (4.40) e (4.42) obtém-se:
1 t
f (x∗ + s) = f (x∗ ) + s W∗ s (4.43)
2
E, se x∗ é um mı́nimo local, então:

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.

4.1.2.2 Problemas com Restrições de Desigualdade


As condições de segunda ordem para problemas com restrições de desigualdade só serão estudadas em relação
às restrições ativas, pois, para restrições inativas, µ∗l = 0, e portanto, elas não estarão presentes na função
Lagrangeana. Como no item anterior, da definição de função Lagrangeana, pode-se escrever para o ponto
(x∗ + s):


p
∗ ∗ ∗
L(x + s, µ ) = f (x + s) + µ∗l cl (x∗ + s) (4.46)
l=1

ou, pela série de Taylor de segunda ordem:


1 t
L (x∗ + s, µ∗ ) = L (x∗ , µ∗ ) + st ∇L∗ + s W∗ s (4.47)
2
onde, novamente, W∗ é a Hessiana da função Lagrangeana L no ponto (x∗ , µ∗ ) e ∇L é o vetor das
derivadas parciais da função Lagrangeana em relação às variáveis x. Como a função Lagrangeana no ponto
(x∗ , µ∗ ) é dada por:


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:

cj (x∗ + s) ≤ 0 e µ∗j ≥ 0 (4.52)


Nessas condições, nada se pode afirmar sobre o sinal do produto:

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:

cj (x∗ + s) = cj (x∗ ) + st ∇c∗j e ainda: cj (x∗ ) = 0 (ou seja: ativa)


então:
1 t
f (x∗ + s) − f (x∗ ) = s W∗ s (4.58)
2
e, se x∗ é um mı́nimo local, então:

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)

Portanto, se s é um vetor numa direção viável em relação às direções ativas:

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)

4.2 Os Multiplicadores de Lagrange


Os multiplicadores de Lagrange representam a sensibilidade da função objetivo ou da função Lagrangeana
na solução em relação à uma perturbação em uma dada restrição ativa. Em outras palavras, o quanto a
função objetivo (ou Lagrangeana) mudaria, caso houvesse uma perturbação numa dada restrição ativa. Para
simplificar a demonstração, será considerado um problema de minimização com uma restrição de igualdade
apenas. Matematicamente, a mudança na função objetivo (ou Lagrangeana) para uma dada perturbação ε
pode ser medida na restrição por:

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:

L [x∗ (ε), λ∗ (ε), ε] = f [x∗ (ε)] + λ∗ (ε) [h(x) − ε] (4.66)


Pela regra da cadeia:

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,

L (x, λ, ε) = f (x) + λ [h(x) − ε] (4.69)


logo:
[ ]
dL df dλ dh(x)
= + [h(x) − ε] + λ −1 (4.70)
dε dε dε dε
Porém, na solução:

h(x) − ε = 0 (4.71)
e, consequentemente:
4.3. DUALIDADE DE WOLFE 49

dh(x)
−1=0 (4.72)

assim, pode-se afirmar que:

dL df
= (4.73)
dε dε
e, finalmente, chega-se a:

df
=λ (4.74)

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.

4.2.1 Exemplo de Aplicação

4.3 Dualidade de Wolfe


O conceito de dualidade permite, a partir de um dado problema de programação matemática, chamado
primal, obter um outro problema, chamado dual, cuja solução tem relação com a solução do problema primal.
Além disso é possı́vel, conhecendo-se a solução de um deles, obter a solução do outro. Essa possibilidade é
interessante por vários motivos. O primeiro deles é que, muitas vezes, é mais conveniente, sob o ponto de
vista da eficiência computacional, resolver o problema dual ao invés do primal (e vice-versa). Em outras
situações, a formulação de um problema de programação matemática resulta da aplicação de um teorema
das ciências de engenharia. Quando isso acontece, o problema dual de programação matemática representa,
normalmente, a formulação de um teorema dual ao primeiro. Esse é o caso da análise limite de estruturas
via programação matemática. A teoria da plasticidade das estruturas apresenta dois teoremas para o cálculo
do fator de colapso em estruturas que são os teoremas do limite inferior e do limite superior. Quando se
formulam os dois teoremas como problemas de programação matemática, eles se apresentam como duais, ou
seja, um seria o primal e o outro o dual. Mesmo que só houvesse um teorema da análise limite, a dualidade
permitiria formular dois problemas duais.
A dualidade de Wolfe permite mostrar que, dado um problema primal (PP):


 min f (x)

(4.75)

 s.t. hk (x) = 0, k = 1 . . . m

cl (x) ≤ 0, l = 1 . . . p
e sua respectiva função Lagrangeana (que deve ser uma função convexa):


m ∑
p
L(x, λ, µ) = f (x) + λk hk (x) + µl cl (x) (4.76)
k=1 l=1

seu problema dual (PD) é dado por:




 max L(x, λ, µ)



∂L(x,λ,µ)
s.t. =0 (4.77)


∂x

 λ ≥ 0, k = 1...m
 k
µl ≥ 0, l = 1...p

As soluções dos problemas primal e dual se relacionam da seguinte forma:


50 CAPÍTULO 4. FUNDAMENTOS DE OTIMIZAÇÃO COM RESTRIÇÕES (OCR)

• 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∗ , λ∗ , µ∗ ).

• O vetor x∗ do PP é igual ao vetor (λ∗ , µ∗ ) do PD e vice versa.

Para se provar a dualidade de Wolfe, começa-se relembrando a função Lagrangeana do PP na solução,


ou seja:


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

λ∗k = ∀ valor, k = 1...m (4.79)

µ∗l ≥ 0, l = 1...p

λ∗k h∗k = 0, k = 1...m

µ∗l c∗l = 0, l = 1...p


Na solução do PP, onde x = x∗ , λ = λ∗ e µ = µ∗ , e valem as condições KKT, pode-se escrever:

L(x∗ , λ∗ , µ∗ ) = f (x∗ ) (4.80)


Por outro lado, deixando-se variar os multiplicadores de Lagrange e mantendo-se x = x∗ , obtém-se:


m ∑
p
L(x∗ , λ, µ) = f (x∗ ) + λk hk (x∗ ) + µl cl (x∗ ) (4.81)
k=1 l=1

Impondo-se as restrições:

λk ≥ 0, k = 1...m e µl ≥ 0, l = 1...p (4.82)


para todos os multiplicadores de Lagrange, pode-se afirmar que:

L(x∗ , λ∗ , µ∗ ) ≥ L(x∗ , λ, µ) (4.83)


pois, com os multiplicadores de Lagrange negativos, ter-se-ia:


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∗ , λ, µ) ≥ L(x, λ, µ) (4.87)


e, consequentemente, conforme já foi demonstrado anteriormente:

L(x∗ , λ∗ , µ∗ ) ≥ L(x∗ , λ, µ) ≥ L(x, λ, µ) (4.88)


ou, simplesmente:

L(x∗ , λ∗ , µ∗ ) ≥ L(x, λ, µ) (4.89)


Vale lembrar que só foi possı́vel obter a expressão acima com a imposição de duas restrições, nomeada-
mente:

∂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.

4.3.1 Exemplos Teóricos


4.3.1.1 Programação Linear
Considerando-se o problema de programação linear padrão (PL) formulado a seguir como um problema
primal:


 min z = ct x + f0

(4.91)

 s.t. At x ≤ b

x≥0
onde, a função objetivo z é um hiper–plano no espaço das variáveis x positivas e o vetor b ≥ 0. Os
vetores coluna x e c têm dimensão n × 1, o vetor b tem dimensão m × 1 e a matriz A das restrições lineares
n×m. Introduzindo-se os multiplicadores λ e π associados, respectivamente, ao primeiro e ao segundo grupo
de restrições, pode-se obter a função Lagrangeana do problema e seu vetor gradiente em relação a x:

L(x, λ, π) = ct x + λt (At x − b) − π t x + f0 (4.92)

∂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)

Explicitando-se o vetor c na restrição acima e substituindo-o na função objetivo, obtém-se:


t
(−Aλ + π) x + λt (At x − b) − π t x = −bt λ + f0 (4.95)
Pode-se agora, considerando que π ≥ 0, reescrever o problema dual simplesmente como:


 max −bt λ

(4.96)

 s.t. −A λ ≤ c

λ≥0
Observe-se que o PD obtido também é um problema de programação linear e quando se tem menos
restrições do que variáveis no problema primal (m < n), o problema dual terá menos variáveis do que
restrições e vice-versa.

4.3.1.2 Programação Quadrática


Considerando-se agora um problema primal de programação quadrática padrão, ou seja:

 min 12 xt Q x + f t x
(4.97)

s.t. At x ≤ b
onde os vetores coluna x e f têm dimensão n×1, o vetor b tem dimensão m×1, a matriz A, das restrições
lineares, tem dimensão n×m e, finalmente, a matriz Q, positiva-definida, tem dimensão n×n. Introduzindo-
se m multiplicadores λ associados às restrições, pode-se obter a função Lagrangeana do problema e seu vetor
gradiente em relação a x da seguinte forma:
1 t
L(x, λ) = x Q x + f t x + λt (At x − b) (4.98)
2
∂L(x, λ)
=Qx+f +Aλ (4.99)
∂x
Com eles, é possı́vel formular o problema dual de Wolfe associado ao problema primal, ou seja:


 max 12 xt Q x + f t x + λt (At x − b)

(4.100)

 s.t. Qx+f +Aλ=0

λ≥0
Explicitando-se x no primeiro grupo de restrições:

x = Q−1 (−A λ − f ) (4.101)


E usando-se essa expressão para eliminar x da função objetivo, como foi feito no exemplo anterior,
chega-se ao problema dual:

 max − 21 λt (At Q−1 A) λ − λt (b + At Q−1 f ) − 12 f t Q−1 f
(4.102)

s.t. λ≥0
Vale observar que o PD obtido também é um problema de programação quadrática com variáveis λ. O PD
tem m variáveis e m restrições e pode ser mais conveniente de ser resolvido do ponto de vista computacional
do que o PP se m < n. Uma vez obtido λ∗ , o vetor x∗ pode ser recuperado da seguinte forma:

Q x∗ = −A λ∗ − f (4.103)
Capı́tulo 5

Métodos Indiretos em OCR

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.

5.1 Método de Penalidade


Para se ilustrar o método de penalidade, proposto por Courant em 1947, considera-se um problema simples
de minimização de uma função com uma restrição de igualdade:

 min f (x)
(5.1)

s.t. h(x) = 0
A função de penalidade para esse problema é dada por:
1 2
Φ(x, rp ) = f (x) + rp [h(x)] (5.2)
2
onde rp é o fator de penalidade.
É possı́vel mostrar, como será visto mais adiante, que a solução do problema de OCR proposto acima,
x∗ , é um ponto limite de uma sequência a ser definida, ou seja, que essa sequência converge para x∗ .

Principais Passos do Método de Penalidade:

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:

xk ←− min Φ(x, rpk ) (5.3)

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

4. Terminar o processo iterativo quando houver convergência de xk .

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:

1. Φ(xk , rpk ) é não decrescente.


[ ]2
2. h(xk ) é não crescente.

3. f (xk ) é não decrescente.

Seja rpk < rpl , então:

Φ(xk , rpk ) ≤ Φ(xl , rpk ) (5.4)


pois xk minimiza Φ(x, rpk ). Por outro lado:

Φ(xl , rpk ) ≤ Φ(xl , rpl ) (5.5)


pois rpk < rpl . Analogamente:

Φ(xl , rpl ) ≤ Φ(xk , rpl ) (5.6)


pois xl minimiza Φ(x, rpl ).
Com as desigualdades definidas acima é possı́vel escrever a cadeia completa de desigualdades, ou seja:

Φ(xk , rpk ) ≤ Φ(xl , rpk ) ≤ Φ(xl , rpl ) ≤ Φ(xk , rpl ) (5.7)


Comparando-se o primeiro e o terceiro termos da cadeia de desigualdades:

Φ(xk , rpk ) ≤ Φ(xl , rpl ) (5.8)


o que demonstra 1.
Comparando-se o quarto e o primeiro termos da cadeia:
1 k [ ]2 1 [ ]2
f (xk ) + rp h(xk ) ≤ f (xk ) + rpl h(xk ) (5.9)
2 2
ou:
[ ]2
(rpl − rpk ) h(xk ) ≥ 0 (5.10)
Analogamente, comparando-se o terceiro e o segundo termos da cadeia:
[ ]2
(rpl − rpk ) h(xl ) ≥ 0 (5.11)
Como na cadeia, a diferença entre o quarto e o primeiro termos é maior do que a diferença entre o terceiro
e segundo, é possı́vel afirmar que, observando-se as duas últimas desigualdades:
{[ ]2 [ ]2 }
(rpl − rpk ) h(xk ) − h(xl ) ≥0 (5.12)

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

Φ(xk , rpk ) ≤ Φ(xl , rpk ) (5.14)


pode-se escrever:
1 k [ ]2 1 [ ]2
f (xk ) + rp h(xk ) ≤ f (xl ) + rpk h(xl ) (5.15)
2 2
ou ainda:
[ ] 1 {[ ]2 [ ]2 }
f (xl ) − f (xk ) + rpk h(xl ) − h(xk ) ≥0 (5.16)
2
Analisando-se a desigualdade acima, pode-se dizer que a segunda parcela entre chaves, {}, é negativa
(vide expressão 5.13). Logo, pode-se afirmar que a primeira parcela entre colchetes é positiva, pois está
sendo diminuı́do um valor dessa parcela e, ainda assim, obtém-se um resultado positivo, o que prova 3, ou
seja:

f (xl ) ≥ f (xk ) (5.17)



Definindo-se f como:

f ∗ = min f (x) { ∀x | h(x) = 0 } (5.18)


∗ ∗
onde f é o valor da função de objetivo f (x) no ponto x , ponto que minimiza f (x) e atende à restrição
h(x) = 0. Então é possı́vel afirmar que:

Φ(xk , rpk ) ≤ Φ(x, rpk ) { ∀x | h(x) = 0 } = f ∗ (5.19)


pois, por definição, xk é o ponto que minimiza Φ(x, rpk ) e x∗ não. Logo, em resumo:

Φ(xk , rpk ) ≤ f ∗ (5.20)


Baseado nas conclusões acima, pode-se construir a Figura 5.1, que mostra como se dá a convergência das
iterações do método de penalidade para a solução do problema de OCR.

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

e o processo iterativo seria o mesmo adotado no caso anterior.

Para o problema de OCR com uma restrição de desigualdade, ou seja:



 min f (x)
(5.22)

s.t. c(x) ≤ 0
a função de penalidade é modificada para:
1 2
Φ(x, rp ) = f (x) + rp {max [0, c(x)]} (5.23)
2
de forma a penalizar a função objetivo apenas quando a restrição for violada. Quando existem várias
restrições de desigualdade, a função de penalidade é dada por:

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)]}

Figura 5.1: Processo de Convergência do Método de Penalidade.

5.2 Método de Barreira


O método de penalidade para restrições de desigualdade é também chamado de método exterior porque ele
tem a caracterı́stica de se aproximar da solução pela região não viável, ou seja, violando as restrições. Essa
caracterı́stica não é vantajosa porque, se o processo iterativo for interrompido por qualquer razão, como mal
condicionamento numérico, a solução obtida não é uma solução viável do problema.
No método da barreira (ou método interior), a convergência se dá do interior da região das soluções
viáveis para o contorno dela. Essa caracterı́stica torna a solução em cada iteração do processo uma solução
viável, o que é interessante. O método usa a denominação barreira porque a função de barreira se torna
infinita no contorno da região viável. As funções de barreira mais usadas por esse método são mostradas a
seguir para restrições de desigualdade.

• Função de Barreira Inversa (Carrol, 1961) [2]:


p
−1
Φ(x, rb ) = f (x) + rb [cl (x)] (5.25)
l=1

• Função de Barreira Logaritmica (Frisch, 1955) [4]:


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:

rbk = 101−k (5.27)


O processo iterativo do método de barreira segue os mesmos passos que foram definidos para o método
de penalidade. As restrições de igualdade podem ser introduzidas de forma semelhante a que foi apresentada
no Método de Penalidade, ou seja:
5.2. MÉTODO DE BARREIRA 57

1 ∑
m
2

p
−1
Φ(x, rp , rb ) = f (x) + rp [hk (x)] + rb [cl (x)] (5.28)
2
k=1 l=1

A Figura 5.2 ilustra o comportamento dos dois métodos.

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)

Figura 5.2: Comportamento dos Métodos de Penalidade e de Barreira.


58 CAPÍTULO 5. MÉTODOS INDIRETOS EM OCR
Capı́tulo 6

Problemas Especiais em OCR

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 O Problema de Programação Linear (PL)

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:

min f (x1 , x2 ) = −5x1 − 3x2


s.t. g1 (x1 , x2 ) = 3x1 + 5x2 ≤ 15
g2 (x1 , x2 ) = 5x1 + 2x2 ≤ 10 (6.1)
x1 ≥ 0
x2 ≥ 0

A solução gráfica do problema está indicada a seguir

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

Figura 6.1: Representação gráfica do problema de PL.

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.

A solução do problema acima está no ponto A com coordenadas x1 = 1, 053 e x2 = 2, 368.

f (x1 , x2 ) = −12, 368

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

(a) Soluções ilimitadas (b) Solução inexistente

direção de
crescimento de f
x2

direção de
x2

crescimento de f

x1 x1

(c) Soluções múltiplas (d) Restrições redundantes

Figura 6.2: Anomalias em modelos de Programação Matemática.

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

Tipo de produto Tempo total em horas por


Tipo de Máquina
1.0 2.4 3.0 4.0 máquina por semana
A 1.5 1.0 2.0 1.0 2000
B 1.0 5.0 1.0 3.5 8000
C 1.5 3.0 3.5 1.0 5000
Unidade de lucro (em reais) 5.24 7.30 8.34 4.18

1, 5x1 + x2 + 2, 4x3 + x4 ≤ 2000 (maquina A)


x1 + 5, 0x2 + x3 + 3, 5x4 ≤ 8000 (maquina B) (6.2)
1, 5x1 + 3, 0x2 + 3, 5x3 + x4 ≤ 5000 (maquina C)
As restrições do tipo xj ≥ 0 são óbvias uma vez que a quantidade de produtos deve ser não negativa.
Pretende-se maximizar o lucro da oficina por semana, desse modo, a função objetivo deve ser:

5, 24x1 + 7, 30x2 + 8, 34x3 + 4, 18x4 (6.3)


A primeira parcela da função objetivo representa o lucro obtido com a produção de um número x1 de
produtos do tipo 1. Do mesmo modo, a segunda a terceira e a quarta parcelas representam o lucro obtido
com os produtos do tipo 2, 3 e 4 respectivamente.
A solução desse problema é:
x1 = 294, 118, x2 = 1500, x3 = 0, x4 = 58, 824 e o lucro correspondente f (x1 , x2 , x3 , x4 ) = 12740 reais.
No problema em questão os resultados devem ser arredondados para números inteiros por representarem
número de unidades produzidas.

6.1.2 Fundamentos matemáticos


Nesse item serão revisitados alguns conceitos básicos de álgebra linear que facilitam a compreensão do
algoritmo simplex que será apresentado no próximo item.

6.1.2.1 Dependência linear


Um vetor a pertencente a um espaço n dimensional En é dito ser uma combinação linear dos vetores
a1 , a2 , . . . , ak pertencentes a En se a pode ser escrito como:

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

Considerando em (6.5) que λm ̸= 0, vem:


6.1. O PROBLEMA DE PROGRAMAÇÃO LINEAR (PL) 63


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

Como uma base é formada por vetores LI,

λ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

Para pelo menos um δi ou δ diferente de zero.


δ não pode ser igual a zero em (6.13) pois isso iria contradizer a hipótese de que o conjunto ai , i =
1, . . . , r − 1 seja LI.
Eliminando b de (6.13) com o uso de (6.12), vem


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

Substituindo (6.16) em (6.15), vem:

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

Assim, como já foi demonstrado, a1 , . . . , au−1 , bv , é também uma base de En .


O vetor bv−1 pode agora ser representado nessa base


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)

caso u > v ou u = v, respectivamente.


Se u < v chega-se a uma situação em que sobram alguns bj fora da base que poderiam ser representados
pelos vetores da base. Isso é impossı́vel pois para ser uma base o conjunto deve ser L.I, logo u ≥ v.
É possı́vel agora começar com a base bj e inserir os vetores aj nessa base. Isso iria a conduzir a que
então v ≥ u.
A única solução possı́vel para as condições u ≥ v e v ≥ u é u = v.
Para se determinar o número de vetores necessários para formar uma base do espaço En é suficiente
encontrar somente uma base, todas as outras bases devem ter então o mesmo número de vetores do que essa
base encontrada. Como se sabe que n vetores unitários ei formam uma base para o espaço En , então todas
as bases devem ter n vetores.

6.1.2.3 Posto (ranking) de uma matriz Amxn

As colunas de Amxn podem ser consideradas vetores do espaço En .


O posto de uma matriz A, mxn, expresso por r(A), é o número máximo de colunas linearmente inde-
pendentes em A.
6.1. O PROBLEMA DE PROGRAMAÇÃO LINEAR (PL) 65

6.1.2.4 Soluções básicas


Seja o sistema de equações

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.

6.1.2.5 Pontos e conjuntos de pontos


A notação

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 todo realλ} (6.27)


O segmento de reta que une dois pontos x1 e x2 é definido 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 = z (não todos ci nulos), (6.29)


sendo c e x vetores coluna n × 1 e z um escalar, é um hiperplano.
Em E2 esse hiperplano se degenera numa reta e em E3 num plano.
Se z = 0 o hiperplano passa pela origem, ou seja, o vetor x = 0 pertence ao hiperplano:

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:

x = λx2 + (1 − λ)x1 , 0<λ<1 (6.37)


O conjunto da Figura 6.3 não é um conjunto convexo pois a linha reta que une x1 e x2 não pertence ao
conjunto.

x1
x2

x2

x1

Figura 6.3: Representação gráfica de um conjunto não convexo.

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

ct x = ct {λx2 + (1 − λ)x1 } = λ + (1 − λ)z = z (6.39)


A interseção de dois conjuntos convexos é um conjunto convexo.
Sejam dois conjuntos convexos X1 e X2 e x1 , x2 dois pontos quaisquer pertencentes ao conjunto X3
interseção de X1 e X2 , ou seja, X3 = X1 ∩ X2 .
Logo,

 λx2 + (1 − λ) x1 ∈ X1 , 0 ≤ λ ≤ 1
(6.40)

λx2 + (1 − λ) x1 ∈ X2 , 0 ≤ λ ≤ 1
Assim,

λ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

Figura 6.4: Ponto no interior de um triângulo.

Da Figura é possı́vel escrever

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

ω = λ2 x2 + (1 − λ2 )λ2 x1 + (1 − λ1 )(1 − λ2 )x3 (6.45)


Seja agora,

µ1 = (1 − λ2 )λ1 ; µ2 = λ2 e µ3 = (1 − λ1 )(1 − λ2 ) (6.46)


É óbvio que µi ≥ 0 e µ1 + µ2 + µ3 = 1, assim


3 ∑
3
ω= µi xi ; µi ≥ 0; µi = 0 (6.47)
i=1 i=1

ou seja, os pontos w de um triângulo em E2 representam uma combinação convexa dos vértices do


triângulo.
6.1. O PROBLEMA DE PROGRAMAÇÃO LINEAR (PL) 69

6.1.2.6 Teoremas importantes


Nesse item serão listados alguns teoremas sem preocupação com demonstrações.

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

Figura 6.5: Conjunto fechado X limitado por ct x <= z.

É possı́vel demonstrar que dado um ponto limite w de um conjunto convexo X, então, ct x = z é


chamado um hiperplano suporte de w se ct w = z e se todo o conjunto X estiver contido no semi-
espaço fechado produzido pelo hiperplano, isto é, ct u ≥ z, ou então, ct u ≤ z para todo u ∈ x. A
Figura 6.7 esclarece:

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 = λx2 + (1 − λ)x1 ; 0 < λ < 1; x1 , x2 ∈ x (6.48)


70 CAPÍTULO 6. PROBLEMAS ESPECIAIS EM OCR

t
cw= z

t
cu< z
x2 w2

x1

Figura 6.6: Hiperplano suporte de w.

então

x1 , x2 ∈T

Isso é verdade porque



 ct t = λct x2 + (1 − λ) ct x1 = z
(6.49)

ct x1 ≥ z, ct x2 ≥ z

pois ct x é um hiperplano suporte.


Considerando que λ ≥ 0 e 1 − λ > 0 pode-se concluir que ct t = z exige que

ct x1 = ct x2 = z (6.50)

ou seja, x1 , x2 ∈ T . Assim, se t é um ponto extremo de T , não existem outros pontos x1 e x2 em X


tais que t possa ser escrito como uma combinação convexa desses pontos, com 0 < λ < 1. Portanto,
um ponto extremo em T é um ponto extremo em X.

6.1.3 Algoritmo Simplex


6.1.3.1 Formulação do problema de PL
Num problema de PL procura-se encontrar r variáveis não-negativas xj ≥ 0, j = 1, . . . , r que devem maxi-
mizar ou minimizar uma função linear

z = c1 x1 + c2 x2 + · · · + cr xr (6.51)
satisfazendo m desigualdades ou igualdades lineares da forma

ai1 x1 + ai2 x2 + · · · + air xr {≤ ou = ou ≥}bi , i = 1, . . . , m (6.52)


supondo-se que todas as constantes aij , bi e cj sejam conhecidas.
6.1. O PROBLEMA DE PROGRAMAÇÃO LINEAR (PL) 71

U
T={X S}

x2
x0
x1
t
x2 t
S={x | c w = z}

Figura 6.7: Espaço T.

É 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

Analogamente, para as restrições de desigualdade do tipo ≥,


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

Deste modo, as restrições originais se transformam num sistema de restrições de igualdade



r
ahj xj + xr+h = bh ; h = 1, . . . , u
j=1

r
akj xj − xr+k = bk ; k = u + 1, . . . , v (6.57)
j=1

r
apj xj = bp ; p = v + 1, . . . , m
j=1

Na forma matricial o sistema descrito em (6.57) pode ser escrito como

Ax = b (6.58)
72 CAPÍTULO 6. PROBLEMAS ESPECIAIS EM OCR

onde A é uma matriz m × (r + v), x um vetor (r + v) × 1 e b um vetor m × 1.


Observe que o número de variáveis no problema transformado é igual a r + v porque foram adicionadas v
variáveis (u de folga e v−u de excesso) às r variáveis iniciais, uma variável para cada restrição de desigualdade
≥ ou ≤.
Como novas variáveis de folga e de excesso foram introduzidas no problema, é necessário atualizar a
função objetivo z como

z = c1 x1 + c2 x2 + · · · + cr xr + 0xr+1 + · · · + 0xr+v (6.59)


ou sucintamente,


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.2 Hipóteses preliminares


De inı́cio, as seguintes suposições são admitidas como verdadeiras.

 r (A) = r (Ab ) sendo Ab = (A, b)
(6.63)

r (A) = m
onde m é o número de restrições.
A é a matriz dos coeficientes e Ab a matriz aumentada. Se isto não for verdadeiro as equações são
inconsistentes e não há solução para o problema de PL.
Num problema tı́pico de PL há mais variáveis que restrições e r(A) = m assegura que nenhuma equação
é redundante.

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)

Ax = b com r(A) = m (6.64)


Então, se há uma solução compatı́vel, ou seja, que satisfaça (6.64) e x ≥ 0, há também uma solução
compatı́vel básica xb que satisfaz

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.

6.1.3.4 Algumas definições e notações


Conforme visto no item 6.1.2.1, as restrições de um problema de PL são agora escritas como um conjunto
de m equações lineares e n incógnitas

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

já que tanto o vetor cb como yj , são vetores coluna m × 1.


Para cada aj em A é possı́vel calcular um vetor yj segundo (6.76) e um zj segundo (6.80). A definição
de zj será importante na formulação do método Simplex.

6.1.3.5 Formulação do método Simplex


O método Simplex pressupõe que uma solução compatı́vel básica xb é conhecida para o sistema (6.75).
A obtenção de uma solução básica inicial será discutida mais adiante.
Para se obter a solução básica xb , uma matriz B foi formada com m colunas LI de A.

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:

1. Qual coluna de B deve sair da base?

2. Qual coluna aj fora da base deve entrar na base?

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

E as colunas fora da aj representadas por


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

O novo valor da função objetivo para a nova solução compatı́vel básica é


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

Observe que ĉbi = cbi (i ̸= r) e ĉbr = cj .


É conveniente incluir no somatório em (6.92) o termo nulo
6.1. O PROBLEMA DE PROGRAMAÇÃO LINEAR (PL) 77

( )
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:

max 3x1 + 2x2 + x


3 
[ ]  x1  { }
3 2 2 8
s.t. x =
3 4 1  2  7
x3
ou seja
 
 3 
c= 2
 
1
[ ]
3 2 2
A=
3 4 1
e
{ }
8
b=
7
78 CAPÍTULO 6. PROBLEMAS ESPECIAIS EM OCR

Seja a matriz B formada com as colunas a3 na coluna 1 e a2 na coluna 2.


[ ]
2 2
B=
1 4
[ ]
−1 1 4 −2
B =
6 −1 2
a solução básica correspondente é compatı́vel.
{ }
3
xb = B−1 b =
1
e
{ }
1
y1 = B−1 a1 =
1/2
o vetor cB é formado com os valores do vetor c correspondentes às colunas 3 e 2 que formaram a matriz B.
Assim
{ }
1
cb =
2
A única coluna fora da base é a1 , logo,

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

ẑ = ĉtb x̂b = 7 > z = 5 (6.102)


A nova solução básica com ẑ > z.
6.1. O PROBLEMA DE PROGRAMAÇÃO LINEAR (PL) 79

6.1.3.6 Soluções ilimitadas


A Figura 6.2(a) do item 6.1.1 mostra que é possı́vel se ter uma solução ilimitada para um problema da PL.
O algoritmo Simplex é capaz de indicar quando o problema tem solução ilimitada.
Seja uma coluna aj fora da base para a qual todo yij < 0, i = 1, . . . , m.
Seja a solução básica


m
xbi bi = b (6.103)
i=1

e o valor da função objetivo correspondente

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

logo, substituindo (6.106) em (6.105),


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

yij ≤ 0 (i = 1, . . . , m) e cj − zj > 0 ou cj − zj < 0 (6.110)

6.1.3.7 Condições de otimização


Seja uma solução compatı́vel básica que satisfaz

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

Substituindo (6.116) em (6.114), vem:


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

no entanto, reescrevendo (6.111), como

xb1 b1 + · · · + xbm bm = b (6.119)


E comparando (6.119) com (6.118), verifica-se que:


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

yj = B−1 aj = B−1 Bei = ei (6.121)


Se aj estiver na coluna i de B. assim,

zj = ctb yj = ctb ei = cbi = cj (6.122)


logo, para as colunas aj que formam a base B

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

em (6.124), e reagrupando, vem:


   
∑ n  ∑n 
xj y1j cb1 + · · · + xj ymj cbm ≥ z ∗ (6.126)
   
j=1 j=1

e usando (6.120)

xb1 cb1 + · · · + xbm cbm ≥ z ∗ (6.127)


Observe agora que o somatório do lado esquerdo da expressão (6.127) é igual a z0 conforme definido em
(6.113), logo,

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.

6.1.3.8 Alternativa ótima


O valor ótimo da função objetivo para qualquer problema de PL é único, mas o conjunto de variáveis que
produz o valor ótimo da função objetivo não é necessariamente único.
Sejam k diferentes soluções compatı́veis básicas xb1 , xb2 , . . . , xbk que sejam também ótimas.
Seja qualquer combinação convexa dessas soluções


k ∑
k
x= µi xbi , µi ≥ 0, i = 1, . . . , k, µi = 1; (6.128)
i=1 i=1

Já que cada xbi ≥ 0 e µi ≥ 0 segue que x ≥ 0.


Além disso, como para cada i, Axbi = b, vem


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,

zo = max z = ct xbi ; i = 1, . . . , k (6.130)


o valor da função objetivo para x é


k ∑
k ∑
k
ct x = ct µi xbi = µi ct xbi = µi zo = zo (6.131)
i=1 i=1 i=1

portanto x é também uma solução ótima.


82 CAPÍTULO 6. PROBLEMAS ESPECIAIS EM OCR

Em resumo, pode-se enunciar que:


“Se xb1 , xb2 , . . . , xbk são k soluções compatı́veis básicas ótimas diferentes para um problema de PL, então,
qualquer combinação convexa dessas soluções será também uma solução ótima”.
Isso mostra que se houver duas ou mais soluções compatı́veis básicas ótimas, haverá um número infinito
de soluções ótimas não necessariamente básicas.

x2

x=m1xb1+m2xb2 a1x=b1

xb1

x
xb2
a2x=b2

a3x=b3

Figura 6.8: Alternativa Ótima.

6.1.3.9 Pontos extremos e soluções compatı́veis básicas


Nesse item será mostrado que toda solução compatı́vel básica é um ponto extremo do conjunto convexo
de soluções compatı́veis, e que todo ponto extremo é uma solução compatı́vel básica pára o conjunto de
restrições.
Seja a solução compatı́vel básica, xb , m × 1

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

x = λx1 + (1 − λ)x2 ; 0<λ<1 (6.134)


Admitindo-se que existam essas soluções compatı́veis
{ } { }
u1 u2
x1 = e x2 = (6.135)
v1 v2
sendo u1 e u2 vetores m × 1 e v1 e v2 vetores (n − m) × 1.
Substituindo x dado em (6.133), e x1 e x2 , dados em (6.135) na expressão (6.134) vem
{ } { } { }
xb u1 u2
=λ + (1 − λ) (6.136)
0 v1 v1
6.1. O PROBLEMA DE PROGRAMAÇÃO LINEAR (PL) 83

Examinando o segundo grupo de equações em (6.136), ou seja

0 = λv1 + (1 − λ)v2 (6.137)


Pode-se afirmar que v1 = v2 = 0 pois λ e (1 − λ) ≥ 0 e v1 , v2 ≥ 0. Assim,

Ax1 = Bu1 = b e Ax2 = Bu2 = b (6.138)


Como o vetor que representa as coordenadas do vetor b na base B é único, então

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,

x∗i + ελi > 0 e x∗i − ελi > 0; i + 1, . . . , k (6.143)


Seja um vetor coluna λ com n componentes diferentes de zero que tenha os λi nas k primeiras posições
e zero nas demais (n − k) componentes, então, observando (6.143), pode-se escrever
{
x1 = x∗ + ελ
(6.144)
x2 = x∗ − ελ
,além disso, devido a (6.141),

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

6.1.3.10 Solução compatı́vel básica inicial


O ponto de partida na solução de problemas de PL pelo Método Simplex é uma solução compatı́vel básica
inicial xb . Essa solução inicial corresponde a uma dada matriz básica B formada por m colunas L.I. da
matriz das restrições A, sendo m o número de linhas de A ou de restrições do problema.

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,

yj = B−1 aj = Iaj = aj ; j = 1, . . . , n (6.152)


Como os custos associados às variáveis de folga são nulos,

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

Axr + Ixa = b; (6.155)


onde xa é o vetor das variáveis artificiais m × 1, I é uma matriz identidade m × m e xr o vetor das
variáveis originais n × 1 de (6.149). Seja M um número grande e i um vetor m × 1 com todas as componentes
iguais a 1.
Seja o problema original dado por,

 max z = ct x
s.t Ax = b (6.156)

x≥0
e o problema modificado com o uso das variáveis artificiais dado por,

max z = ct xr − M it xa  

s.t
(6.157)
Axr + Ixa = b  

xr ≥ 0; xa ≥ 0;
O vetor das variáveis no problema (6.157) é xr , xa . Uma solução compatı́vel básica inicial para o problema
modificado (6.157) pode ser xb = 0, xa que satisfaz as restrições em (6.157), já que xa = b e b ≥ 0.
Vale observar ainda que a solução do problema (6.157) é a mesma solução do problema (6.156) uma vez
que, na solução de (6.157) o vetor das variáveis artificiais xa deve ser nulo de modo a maximizar z. Com
xa = 0, os dois problemas são idênticos, mas em (6.157), uma solução compatı́vel básica inicial pode ser
facilmente encontrada, o que não acontece com (6.156).
O método descrito acima para se obter uma solução compatı́vel básica inicial é conhecido como Método
de Charnes.
Esse método apresenta algumas dificuldades. A primeira delas é a escolha do valor de M. Se ele for
muito maior do que os coeficientes da matriz A do problema, podem surgir problemas numéricos durante a
resolução pelo Método Simplex e uma resposta incorreta pode ser obtida. Outra dificuldade é o aumento
significativo do número de variáveis no problema modificado (6.157) em relação ao problema original (6.156).
Um método alternativo para a obtenção da solução compatı́vel básica inicial do problema de PL que
contorna alguns dos problemas do Método de Charnes é o Método das Duas Fases desenvolvido por Dantzig
et all.
Na primeira fase desse método, o seguinte problema é resolvido,

max z = −it xa 


s.t
(6.158)
Axr + Ixa = b  

xr ≥ 0; xa ≥ 0;
A solução compatı́vel básica inicial desse problema pode ser a mesma solução compatı́vel básica inicial
do problema (6.157), ou seja, xb = {0, xa }.
Ao se resolver o problema (6.158), o vetor xa será nulo e a solução x∗r será uma solução compatı́vel básica
também para o problema original, mas não a solução compatı́vel básica ótima do problema original, uma vez
que as funções objetivas dos dois problemas (6.156) e (6.158) são diferentes. Ela pode, todavia ser adotada
como solução compatı́vel básica inicial para o problema original.
Na segunda fase do método, o problema original é resolvido usando a solução ótima de (6.158) como
solução compatı́vel básica inicial.
Em resumo, as duas fases seriam,
Fase I: resolve-se o problema dado a seguir,

max z = it xa 
s.t Axr + Ixa = b

xr ≥ 0; xa ≥ 0;
Fase II: resolve-se o problema original dado a seguir usando como solução compatı́vel básica inicial a
solução ótima do problema da fase I.
86 CAPÍTULO 6. PROBLEMAS ESPECIAIS EM OCR


 max z = ct x
s.t. Ax = b

x≥0

6.2 O Problema de Programação Quadrática (PQ)


O problema de programação quadrática é definido como,
1 t
min q (x) = x Qx + f t x
2 (6.159)
s.t. Nt x = n
At x ≥ b
Onde,
x é o vetor das variáveis n × 1,
Q é uma matriz quadrada n × n positiva-definida,
f um vetor n × 1,
N uma matriz p × n (p restrições de igualdade),
A uma matriz m × n (m restrições de desigualdade),
n um vetor p × 1 e
b um vetor m × 1.
O problema de PQ se caracteriza, portanto por uma função objetivo q(x) quadrática e restrições lineares.
No problema padrão de PQ existem apenas restrições de desigualdade lineares e as variáveis são positivas.
Ele pode então ser escrito na seguinte forma,
1 t
min q (x) = x Qx + f t x
2 (6.160)
s.t. At x ≥ b
x≥0

6.2.1 Eliminação de restrições de igualdade


Em geral, qualquer problema de programação quadrática pode ser colocado na forma padrão eliminando-se
as restrições de igualdade e transladando-se as variáveis para que elas se tornem positivas. Uma operação
inversa à translação permite recuperar o valor inicial das variáveis. Nesse item será mostrado como é possı́vel
eliminar as restrições de igualdade lineares via inversa generalizada.
Seja a restrição de igualdade dada por (com n ≥ m):

At m×n xn×1 = bm×1


Sejam e as matrizes,

An×m , Sn×m e Zn×(n−m)


Sendo que,

At m×n Sn×m = Im×m

At m×n Zn×(n−m) = 0m×(n−m)


Onde Im×m é uma matriz identidade e 0m×(n−m) uma matriz nula. Nesse caso, diz-se que Sn×m é a
inversa generalizada à direita de At m×n (ou que a matriz St m×n é a inversa generalizada à esquerda de
An×m ) e que Zn×(n−m) é a matriz do espaço nulo de At m×n .
É possı́vel mostrar que o vetor das variáveis xn×1 pode ser escrito como,

xn×1 = Sn×m bm×1 + Zn×(n−m) y(n−m)×1 (6.161)


6.2. O PROBLEMA DE PROGRAMAÇÃO QUADRÁTICA (PQ) 87

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,

An×m = Q1 n×m Rm×m (6.164)


onde Q é uma matriz ortogonal n × n (Q Q = I), R é uma matriz triangular superior m × m, Q1 é uma
t

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,

Q1 t Q2 = 0m×(n−m) e Q2 t Q1 = 0(n−m)×m (6.166)


e que,

Q1 t Q1 = Im×m e Q2 t Q2 = I(n−m)×(n−m) (6.167)


Vamos verificar o produto

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

De novo, considerando a decomposição de A, dada em (6.164),

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)

6.2.2 Problemas de Programação Linear Complementar (PLC)


Vimos que um problema de PQ padrão é definido como,
1 t
min q (x) = x Qx + f t x
2 (6.177)
s.t. At x ≥ b
x≥0
Vamos agora introduzir os multiplicadores de Lagrange y e u associados respectivamente ao primeiro e
segundo grupo de restrições e obter a função lagrangeana do problema,
1 t ( )
L (x, y, u) = x Qx + f t x − yt At x − b − ut x (6.178)
2
As condições se K-K-T do problema acima são,

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≥0; z≥0; wt z = 0 ; (6.186)


O problema definido acima é denominado Problema Linear Complementar (PLC), e ele corresponde às
condições de K-K-T do problema quadrático padrão. Um dos algoritmos mais eficientes para resolver esse
problema é o algoritmo de Lemke.

6.2.3 Algoritmo de Lemke para a solução do PLC


O conjunto w̄, z̄ é uma solução do PLC se, e somente se, ele satisfizer a equação básica,

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.

6.2.3.1 Esquema de Pivoteamento de Lemke


O esquema de pivoteamento de Lemke permite encontrar a solução viável de um PLC.
Considere uma variável escalar adicional z0 e um vetor coluna com todos os elementos iguais a 1 e com a
mesma dimensão n de w e z. A equação básica do PLC é então modificada fornecendo um PLC aumentado
com uma equação básica aumentada como indicado a seguir,

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

O exemplo a seguir esclarece. Seja o PLC original,


      
 w1   −3  2 −1 1  z1 
w2 = 0 +  −1 2 1  z2 (6.193)
     
w3 2 −1 −1 0 z3
O problema aumentado correspondente com o vetor coluna unitário e e a variável não-básica z0 , seria,
 
       z1 
 w1   −3  2 −1 1 1   

  z2
w2 = 0 + −1 2 1 1 (6.194)
     z3 
w3 2 −1 −1 0 1   

z0
Inicialização

z1 = z2 = z3 = 0 (6.195)
Logo,

w = q + ez0 (6.196)
Determinação do par pivot,

Primeira linha; −3 + 1z0 = 0 → z0 = 3;


Segunda linha; 0 + 1z0 = 0 → z0 = 0;
Terceira linha; 2 + 1z0 = 0 → z0 = −2;
Para que o vetor satisfaça w ≥ 0 na primeira iteração, escolhe-se o maior z0 = 3 e seu par é w1 (primeira
linha). O par pivot é (w1 ,z0 )
Assim, explicitando-se z0 na primeira linha de (6.194), obtém-se:

 z0 = 3 − 2z1 + 1z2 − 1z3 + 1w1
w2 = 0 − 1z1 + 1z2 − 1z3 + 1z0 (6.197)

w3 = 2 − 1z1 + 1z2 − 1z3 + 1z0
Substituindo z0 da primeira expressão acima na segunda e terceira expressão, chega-se a,
 
       z1 
 z0   3  −2 1 −1 1   

  z2
w2 = 3 + −3 3 0 1 (6.198)
     z3 
w3 5 −3 0 −1 1   

w1
Observe que, com o pivoteamento, o vetor q se tornou positivo e se manterá assim durante os novos
pivoteamentos, o que leva a soluções equivalentes viáveis do PLC aumentado. A solução, no entanto não é
uma solução complementar estrita porque tanto w1 como z1 , que deveriam ser estritamente complementares
na solução do PLC original, são nulos. Devemos, portanto, realizar um novo pivoteamento até encontrar a
solução viável estritamente complementar. Para se obter complementaridade estrita, z1 ≥ 0,

Primeira linha; 3 − 2z1 = 0 → z1 = 3/2


Segunda linha; 3 − 3z1 = 0 → z1 = 1
Terceira linha; 5 − 3z1 = 0 → z1 = 5/3
Para que o vetor satisfaça w ≥ 0 a partir da segunda iteração, escolhe-se o menor z1 positivo, z1 = 1 e
seu par é w2 (segunda linha). O par pivot é (w2 ,z1 )
Assim, explicitando-se z1 na segunda linha de (6.198), obtém-se:

 z0 = 3 − 2z1 + 1z2 − 1z3 + 1w1
z1 = 1 − 31 w2 + 1z2 + 0z3 + 13 w1 (6.199)

w3 = 5 − 3z1 + 0z2 − 1z3 + 1w1
Substituindo z1 da segunda expressão acima na primeira e terceira expressão, chega-se a,
6.2. O PROBLEMA DE PROGRAMAÇÃO QUADRÁTICA (PQ) 91

 
       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,

Primeira linha; 1 − 1z2 = 0 → z2 = 1


Segunda linha; 1 + 1z2 = 0 → z2 = −1
Terceira linha; 2 − 3z2 = 0 → z2 = 2/3
Para que o vetor satisfaça w ≥ 0, escolhe-se o menor z2 positivo, z2 = 2/3 e seu par é w3 (terceira linha).
O par pivot é (w3 ,z2 )
Assim, explicitando-se z2 na terceira linha de (6.200), obtém-se:

 z0 = 1 + 32 w2 − 1z2 − 1z3 + 13 w1
z1 = 1 − 31 w2 + 1z2 + 0z3 + 13 w1 (6.201)

z2 = 32 + 13 w2 − 13 w3 − 1z3 + 0w1
Substituindo z2 da terceira da expressão acima na primeira e segunda expressão, chega-se a,
 
       w2 
 z0   1/3  1/3 1/3 −2/3 1/3   

  w3
z1 = 5/3 + 0 −1/3 −1/3 1/3 (6.202)
    
 z3  
z2 2/3 1/3 −1/3 −1/3 0  
w1
Agora o par w3 , z3 é nulo e devemos fazer novo pivoteamento. Para se obter complementaridade estrita,
z3 ≥ 0,

Primeira linha; 1/3 − 2/3z3 = 0 → z3 = 1/2


Segunda linha; 5/3 − 1/3z3 = 0 → z3 = 5
Terceira linha; 2/3 − 1/3z3 = 0 → z3 = 2
Para que o vetor satisfaça w ≥ 0, escolhe-se o menor z3 positivo, z3 = 1/2 e seu par é z0 (primeira linha).
O par pivot é (z3 ,z0 )
Assim, explicitando-se z3 na primeira linha de (6.202), obtém-se:

 1 1 1 3 1

 z3 = + w2 + w3 − z3 + w1

 2 2 2 2 2
5 1 1 1
z1 = + 0w2 − w3 − z3 + w1 (6.203)

 3 3 3 3


 z2 = 2 + 1 w2 − 1 w3 − 1 z3 + 0w1
3 3 3 3
Substituindo z3 da primeira da expressão acima na segunda e terceira expressão, chega-se a,
 
       w2 
 z3   1/2  1/2 1/2 −3/2 1/2 
 

  w3
z1 = 3/2 + −1/6 −1/2 1/2 1/6 (6.204)
     z0 
z2 1/2 1/6 −1/2 1/2 −1/6   

w1
Como z0 voltou ao lado direito da expressão e passa a ser nulo, a solução alternativa viável encontrada
para o PLC aumentado é também solução viável do PLC original e o processo iterativo termina. A solução
é então,

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

O Problema Geral de Programação


Não-Linear (PNL)

Para se solucionar o problema geral de Programação Matemática, ou seja, um problema de Programação


Não Linear (PNL) com restrições de igualdade, desigualdade e laterais, vários algoritmos têm sido emprega-
dos. Alguns são mais eficientes quando o problema tem predominância de restrições de igualdade e outros,
ao contrário, quando o número de restrições de desigualdade é significativamente maior que o número de
restrições de igualdade.
Nesse capı́tulo serão apresentados vários algoritmos para a solução de problemas de OCR. Uma discussão
sobre a eficiência dos algoritmos para solução de cada tipo de problema será apresentada. Exemplos de
aplicação na Engenharia Civil serão formulados e resolvidos pelos algoritmos propostos.
Como mencionado no capı́tulo 4, o problema geral de OCR é definido da seguinte forma:


 min f (x)



s.t. hk (x) = 0, k = 1...m (7.1)



 c l (x) ≤ 0, l = 1 . . . p

xl i ≤ xi ≤ xu i , i = 1 . . . n
onde x é o vetor das variáveis de projeto, f (x) a função objetivo a ser minimizada, hk (x) as restrições
de igualdade, cl (x) as restrições de desigualdade, e xl i e xu i , respectivamente, os limites inferior e superior
da variável xi que definem as restrições laterais.
O problema geral de OCR é resolvido de forma iterativa. Em cada iteração, um subproblema “s” é
gerado com o resultado da iteração anterior, doravante denominado x0 , e um novo incremento δx para o
vetor das variáveis é obtido a partir da solução do subproblema. Os subproblemas gerados são do tipo dos
problemas apresentados no Capı́tulo 6 (PL e PLC).
Uma vez obtida a solução do subproblema, o vetor das variáveis x é atualizado com a determinação do
passo α por meio de uma busca unidimensional, ou seja:

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.

7.1 Método de Programação Linear Seqüencial (PLS)


Seja x0 a solução do subproblema de uma dada iteração do Método PLS. A partir dessa solução, tanto a
função objetivo como as restrições são aproximadas via expansão em séries de Taylor truncadas nos termos de
primeira ordem. O subproblema gerado usando as aproximações lineares da função objetivo e das restrições

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

Ponto ótimo c1(x)=0


Aproximação verdadeiro
linear para
c2(x0)=0
c2(x)=0

x1

Aproximação
do ponto ótimo

Figura 7.1: Problema Linearizado.

É 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

Figura 7.2: Exemplo de Problema Subrestringido.

7.2 Método dos Centros

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

Figura 7.3: Ilustração do Centro da Hiperesfera Inscrita.

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:

∇cl (x) = ∇cl (x0 ) (7.9)


devido à aproximação linear, tem-se:
t
cl (x0 ) + [∇cl (x0 )] s
dhl = − (7.10)
∥∇cl (x0 )∥
Seja agora r o raio da maior hiperesfera inscrita no espaço viável linearizado. Como as distâncias dos
contornos linearizados ao centro da hiperesfera não podem ser maiores do que o raio, deve-se ter:
7.3. MÉTODO DAS DIREÇÕES VIÁVEIS 97

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.

7.3 Método das Direções Viáveis

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

Figura 7.4: Exemplo de Direções Viáveis.

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)

Minimizar a expressão 7.14 é equivalente a maximizar β na seguinte desigualdade:

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∥ ≤ γ

onde “l” são as restrições ativas do problema e γ um parâmetro escalar.


A última restrição do subproblema definido em 7.20 procura limitar o modulo do vetor s pois o que se
pretende é maximizar o produto interno dos vetores ∇f (x0 ) e s sem que o módulo de s seja maximizado, o
que também aumentaria o valor do produto interno.
Algumas questões ainda precisam ser definidas, tais como:

1. Quando uma restrição de desigualdade está ativa?

2. Como se escolher os valores de θl ?

3. Como limitar o módulo do vetor s, ou seja, qual deve ser o valor de γ ?

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

Figura 7.5: Influência de θl na Direção de Busca.

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

Figura 7.6: Exemplos de Direções de Busca Úteis e Viáveis.

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

onde λ e µ′ são os multiplicadores de Lagrange associados respectivamente às restrições Ay ≤ 0 e


yt y − 1 ≤ 0.
Seja agora:

µ = −2µ′ e z = −Ay (7.28)

logo, as expressões 7.26 podem-se ser reescritas como:

p = At λ + µ y
z ≥ 0; yt y − 1 ≤ 0;
(7.29)
λ ≥ 0; µ≥0
λt z = 0; µ (yt y − 1) = 0

Pré-multiplicando-se a primeira expressão em (7.29) por “−A” obtém-se:

−Ap = −AAt λ − µAy (7.30)

e considerando-se:

v = −µ A y = µ z
(7.31)
e
c = −A p

as expressões 7.29 podem-se ser reescritas como:




 −A At λ + v = c

z ≥ 0; v ≥ 0;
(7.32)

 y t
y − 1 ≤ 0; λ ≥ 0; µ ≥ 0

λt v = 0; µ (yt y − 1) = 0

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

7.3.1 Solução Inicial Viável


O Método das Direções Viáveis é um método de primeira ordem (pois utiliza as primeiras derivadas de f (x)
e cl (x) para definir seu subproblema). Foi desenvolvido para problemas que tenham apenas restrições de
desigualdade e é também um método de pontos interiores, ou seja, onde todas as soluções parciais obtidas
em cada iteração bem, como a solução inicial ‘x0 , devem estar contidas na região viável.
Uma questão que surge na aplicação prática do método é: como se obter uma solução inicial viável?
O enfoque básico é formular um subproblema na primeira iteração que, a partir de um vetor arbitrário
x0 , permita obter um outro vetor que seja viável. A idéia básica desse subproblema é desprezar a restrição
que impõe que a solução do subproblema (7.20) seja útil, ou seja, que a solução forneça uma função objetivo
menor ou igual a solução inicial não viável x0 .
Se uma restrição cl (x0 ) é radicalmente violada, seu correspondente valor de θl torna-se muito alto. Por
razoes numéricas, se θl > 50 considera-se θl = 50.
Considerando-se as observações acima, o subproblema definido em (7.35) pode fornecer um passo s que
aponte para dentro da região viável a partir de uma solução inicial não viável x0 .

7.3.2 Restrições de Igualdade


Como já mencionado, o Método das Direções Viáveis é basicamente um método para problemas com apenas
desigualdades. Uma maneira de utilizar o método em problemas que também apresentem restrições de
igualdade é converter essas restrições em desigualdades equivalentes, conforme indicado a seguir:


 ∑
l
 min ϕ(x) = f (x) − rk hk (x)
k=1 (7.35)



hk (x) ≤ 0; k = 1 . . . l

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.

7.4 Método do Gradiente Reduzido Generalizado (GRG)


O Método do Gradiente Reduzido Generalizado é uma extensão de um método de gradiente reduzido an-
terior, que resolvia apenas problemas com restrição de igualdade. Na versão generalizada as restrições de
desigualdade são transformadas em restrições de igualdade usando o artifı́cio de se acrescentar uma variável
de folga para cada restrição de desigualdade.
A idéia básica do método é encontrar uma direção de busca que permita, a partir de um ponto viável,
ou seja, sobre as superfı́cies que representam as restrições viáveis, encontrar um novo ponto viável com valor
da função objetivo menor de que o valor anterior.
Devido as não-linearidades das restrições essa direção pode não ser encontrada. O que se faz então é
determinar uma direção que siga “de perto” as restrições para um passo pequeno. Como o passo dado
conduz a um ponto que não satisfaz precisamente as restrições devido às não linearidades, o método de
Newton Raphson é usado para se encontrar um novo ponto, a partir da solução encontrada na primeira
etapa (a qual satisfaz as restrições). Como já mencionado, o problema é modificado com a introdução das
variáveis de folga, ou seja:
104 CAPÍTULO 7. O PROBLEMA GERAL DE PROGRAMAÇÃO NÃO-LINEAR (PNL)



 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:

hk (x) = 0; k = 1···m + l (7.39)


e as restrições laterais como sendo:

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:

hk (x0 ) = 0; k = 1···m + l (7.42)


para que o novo ponto x, dado por:
{ } { } { }
z z0 dz
x = x0 + s, ou = + (7.43)
y y0 dy
seja um ponto viável, então:

dhk (x) = 0; k = 1···m + l (7.44)


ou, para uma aproximação linear do vetor dh(x) que contém as componentes dhk (x):

dh(x0 ) = A(x0 ) dz + B(x0 ) dy = 0 (7.45)


onde:
{
t t
[aj (x0 )] = [∇hk (x0 )],z k = 1···m + l
t t (7.46)
[bj (x0 )] = [∇hk (x0 )],y k = 1···m + l

são as linhas de matriz A(x0 ) e B(x0 ).


7.5. MÉTODO DE PROGRAMAÇÃO QUADRÁTICA SEQÜENCIAL (PQS) 105

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)

A expressão (7.49) define o gradiente reduzido generalizado gR (x0 ), ou seja:


{ }t
t −1
gR (x0 ) = [∇f (x0 )],z − [B(x0 )] A(x0 ) [∇f (x0 )],y (7.50)

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.

7.5 Método de Programação Quadrática Seqüencial (PQS)


A idéia fundamental do método de PQS é aproximar a função objetivo por uma função quadrática e as
restrições por funções objetivos em torno de xo para formular o seguinte subproblema:




 f (xo ) + ∇f (xo )t s + 21 st W(xo ) s

 min

s.t. gj (xo ) + ∇gj (xo )t s ≤ 0; j = 1, ..., m
(7.54)

 h (x
h o ) + ∇h (x
h o )t
s = 0 h = 1, ..., ℓ




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.

7.5.1 Problema P1 (problema original)


}
min f (x)
(7.55)
s.t. h (x) = 0
Função lagrangeana do problema P1

L1 (x, λ) = f (x) − λh(x) (7.56)


condições de Kuhn-Tucher de P1

∇L1 (x, λ),x = ∇f (x) − λ∇h(x) = 0


(7.57)
h(x) = 0
O primeiro passo da solução das condições de Kuhn-Tucher via método de Newton-Raphson é,
( )
∇L1,x xk + δxk , λk + δλk = 0
( ) (7.58)
h xk + δxk = 0
ou

∇Lk1,x + W1k δxk − δλk ∇hk,x = (7.59)

hk + ∇hkt k
,x δx = 0 (7.60)
onde W1k é a matriz hessiana de L1 (x, λ) na iteração k.

7.5.2 Problema P2 (subproblema de PQS relativo a P1)


}
min f (xo )t s + 21 st W1 (xo )s
(7.61)
h(xo ) + ∇h(xo )t s = 0
Função lagrangeana do problema P2
1 ( )
t t
L2 (s, λ) = ∇f (xo ) s + st W1 (xo ) s − λ h (xo ) + ∇h (xo ) s (7.62)
2
Condições de Kuhn-Tucher de P2

∇L2 (s, λ),s = ∇f (xo ) + W1 (xo ) s − λk+1 ∇h (xo ) (7.63)


ou

∇f (xo ) − λk ∇h (xo ) + W1 (xo ) s − δλk ∇h (xo ) = 0 (7.64)


ou ainda

∇L1 (xo , λ),x + W1 (xo ) s − δλk ∇h (xo ) = 0


t (7.65)
h (xo ) + ∇h (xo ) s = 0
Vale observar que as equações (7.55) e (7.58) são idênticas ao se substituir xk e δxk em (7.55) por xo e
s em (7.58). Isso significa que resolver o subproblema P2 de PQ do problema original P1 equivale a obter
7.5. MÉTODO DE PROGRAMAÇÃO QUADRÁTICA SEQÜENCIAL (PQS) 107

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.

8.2 Métodos de Análise de Sensibilidade


8.2.1 Método das Diferenças Finitas
O Método das Diferenças Finitas (MDF) mais simples é o Método Frontal. Nele, a Equação (8.1) é aproxi-
mada por:

∂r (x) ∆r r (x + ∆xi ei ) − r(x)


≈ = (8.2)
∂xi ∆xi ∆xi
onde r (x) é um vetor de respostas da estrutura, ∆xi ei é uma perturbação na componente xi do vetor
das variáveis x e ei é um vetor com a componente i igual a 1 e demais componentes 0.

109
110 CAPÍTULO 8. ANÁLISE DE SENSIBILIDADE

Outra aproximação frequentemente usada é conhecida como Método das Diferenças Centrais, ou seja:

∂r (x) ∆r r(x + ∆xi ei ) − r(x − ∆xi ei )


≈ = (8.3)
∂xi ∆xi 2∆xi
Em geral, o valor do tamanho do passo ∆xi varia de 10−4 xi a 10−2 xi . O tamanho do passo não deve
ser nem muito alto, para não produzir erro de truncamento, nem muito baixo, para não causar erro de
arredondamento.

8.2.2 Método Direto


Seja um conjunto de restrições de igualdade que definem as equações de estado do problema, por exemplo, as
equações de equilı́brio estático de uma estrutura de comportamento linear elástico discretizada pelo método
dos elementos finitos:

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, x) ∂c(r, x) ∂c(r, x) dr


= + (8.5)
dxi ∂xi ∂r dxi
ou ainda, sucintamente:

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.

8.2.3 Método Adjunto


Seja a restrição de igualdade1 de um problema de otimização dada por:

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

que representa a análise de sensibilidade da restrição h em relação à variável ou ao parâmetro xi , e µ o


vetor linha dado por:

∂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).

8.3 Comparação entre os Métodos de Análise de Sensibilidade


A primeira observação a ser feita aqui é que tanto o Método das Diferenças Finitas quando o Método Direto
fornecem:

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.

8.4 Aplicação dos Métodos de Análise de Sensibilidade


8.4.1 Análise Linear Elástica
A equação de estado deste problema é da seguinte forma:

c (u(x), x) = K(x) u(x) − fa (x) = 0 (8.18)


onde: K representa a matriz de rigidez da estrutura discretizada por elementos finitos, fa é o vetor das
cargas nodais aplicadas e u é o vetor dos deslocamentos nodais.
No MEF as tensões em cada elemento são dadas por:

σ 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.

8.4.1.1 Método das Diferenças Finitas


Caso a análise de sensibilidade desejada seja a relacionada ao vetor dos deslocamentos nodais u(x) em relação
à componente xi do vetor de variáveis de projeto, deve-se calcular:

 K(x) u(x) = fa (x) =⇒ u(x)
(8.20)

K(x + ∆ xi ei ) u(x + ∆ xi ei ) = fa (x + ∆ xi ei ) =⇒ u(x + ∆ xi ei )
e, em seguida:

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.

8.4.1.2 Método Direto


A expressão da análise de sensibilidade da resposta r no Método Direto é dada pela Equação (8.9), ou seja:
∂r
Z = −pi
∂ xi
Com Z e pi definidos em (8.7).
Para a análise de sensibilidade dos deslocamentos, tem-se r = u.
O problema linear elástico c é dado pela Equação (8.18), ou seja:

c (u(x), x) = K (x) u (x) − fa (x) = 0


logo:

 Z=K
(8.24)

pi = ∂K
∂ xi u− ∂ fa
∂ xi

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.

8.4.1.3 Método Adjunto


Neste método, a sensibilidade da restrição h é dada pela Equação (8.16), ou seja:
dh ∂h
= + λt pi
d xi ∂ xi
onde: λ é obtido pela Equação (8.15):

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):

c (u(x), x) = K(x) u(x) − fa (x)


114 CAPÍTULO 8. ANÁLISE DE SENSIBILIDADE

Obtém-se:


 Z = ∂∂ uc = K



pi = ∂∂xci = ∂∂ xKi u − ∂ fa
(8.26)


∂ xi



µ = ∂∂ uh = ej

onde ej é um vetor com valor 1 na posição j e 0 nas demais.


Assim, as Equações (8.15) e (8.16) podem ser reescritas como:
 t
 K λ = −ej

( ) (8.27)

 dh
d xi = 0 + λt ∂K
∂ xi u− ∂ fa
∂ xi

8.4.2 Problema de Autovalores e Autovetores


A equação de estado do problema de vibrações não amortecidas e do problema de análise de carga crı́tica de
uma estrutura discretizada por elementos finitos é dada por:

K Φ − αM Φ = 0 (8.28)

onde K é a matriz de rigidez e M é a matriz de massa (problemas de vibração) ou a matriz de rigidez


geométrica (problemas de análise de carga crı́tica). Para o problema de vibração, α representa o quadrado
de uma frequência natural da estrutura (α = w2 ) e Φ o vetor dos modos de vibração. Para o problema de
cálculo de carga crı́tica, α representa o fator de carga crı́tica e Φ o modo de flambagem. As duas matrizes
K e M são simétricas e K é positiva semi-definida.
O vetor Φ é, geralmente, normalizado em relação à matriz de massa de modo que:

Φt M Φ = 1 (8.29)

8.4.2.1 Método das Diferenças Finitas

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 )

As sensibilidades de α e Φ são, então, obtidas de:






d xi ≈ ∆α
∆ xi = α(x+∆ xi ei )−α(x)
∆ xi
(8.32)

 Φ(x+∆ xi ei )−Φ(x)

d xi ≈ ∆Φ
∆ xi = ∆ xi
8.4. APLICAÇÃO DOS MÉTODOS DE ANÁLISE DE SENSIBILIDADE 115

8.4.2.2 Método Direto


O problema em questão é definido por duas equações de estado, (8.28) e (8.29), ou seja:

 c1 (α, Φ) = K Φ − α M Φ = 0
(8.33)

c2 (α, Φ) = 1 − Φt M Φ = 0
Nesse caso, o vetor r é formado por dois tipos de respostas, os autovalores (α) e os autovetores (Φ).
Desse modo, para se obter Z é preciso proceder como indicado:
 d c1 ∂ c1 ∂ c1 d α ∂ c1 d Φ
 d xi = ∂ xi + ∂ α d xi + ∂ Φ d xi =0
(8.34)
 d c2 ∂ c2 ∂ c2 d α ∂ c2 d Φ
d xi = ∂ xi + ∂ α d xi + ∂ Φ d xi =0
ou, reagrupando-se os termos na forma matricial:
 ∂ c1 ∂ c1
  dΦ
  ∂ c1 
∂Φ ∂α  d xi   ∂ xi 
  =− (8.35)
∂ c2 ∂ c2  dα   ∂ c2 
∂Φ ∂α d xi ∂ xi

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

Na segunda das Equações (8.36) foi feito uso da simetria da matriz M.


Comparando-se a Equação (8.36) com a expressão geral (Equação 8.9), é possı́vel afirmar que:
  

 K − α M −M Φ

 Z= 



 −Φ t

 M 0




e (8.37)



  ( ) 

  dK − α dM Φ  

 


d xi d xi

 p i =

 
 

− 12 Φt dd M
xi Φ

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

Como mencionado anteriormente:

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

com d xi obtido a partir da Equação (8.36).

8.4.2.3 Método Adjunto


As expressões gerais para a análise de sensibilidade da restrição h em relação à variável de projeto ou
parâmetro xi são dadas nas Equações (8.15) e (8.16) para o Método Adjunto. As expressões gerais para
a matriz Z e o vetor pi , utilizados em (8.15) e (8.16), respectivamente, estão definidas na Equação (8.7),
enquanto que para o vetor µ a expressão geral é dada na Equação (8.12).
Utilizando-se as expressões acima referidas e as expressões de estado do problema em questão, dadas
pelas Equações (8.28) e (8.29), foram obtidas no item anterior as expressões de Z e pi para o problema
particular de autovalores e autovetores definidas em (8.37).
Um restrição tı́pica do problema de autovalor e autovetor procura impor limites inferiores e superiores
para as frequências próprias no problema dinâmico e um limite inferior para o parâmetro de carga crı́tica no
problema de análise de carga crı́tica.
Tomando-se esse último caso para se definir uma restrição, obtém-se:

h(α, Φ) = α − αmin ≤ 0 (8.41)

Nesse caso, o vetor µ, definido em (8.26), passa a ser dado por:


{ ∂h
}
µ= ∂α = e1 (8.42)
∂h
∂Φ

dh
o que permitiria obter λ e d xi por meio das Equações (8.15) e (8.16), respectivamente, sendo:

∂h
=0
∂ xi

8.4.3 Problema de Análise Não Linear Estática


A equação de estado para a análise não linear de estruturas pode ser escrita como:

f (u, x) = α fa (x) (8.43)

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:

Kt (u0 , x) ∆ u = α fa (x) − f (u0 , x) (8.44)

onde u0 são os deslocamentos acumulados até o penúltimo incremento de α, Kt (u0 , x) é a matriz de


rigidez tangente, avaliada em u = u0 , e ∆ u são os deslocamentos da última iteração do incremento atual.
O vetor u deve ser atualizado da seguinte forma:

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

8.4.3.1 Método das Diferenças Finitas


Para a análise de sensibilidade do vetor de deslocamentos u em relação a uma dada variável (ou parâmetro)
xi , o primeiro passo consiste em realizar uma análise não linear com valores de α e x que forneça u(x). Para
essa análise pode-se usar o Método de Newton–Raphson, um Método Quase–Newton ou outros que forneça
u(x), ou seja:

f (u, x) = α fa (x) =⇒ u(x) (8.46)


Em seguida, uma nova análise não linear deve ser realizada para um valor de xi perturbado de ∆ xi , tal
que forneça u(x + ∆ xi ei ), isto é:

f (u, x + ∆ xi ei ) = α fa (x + ∆ xi ei ) =⇒ u(x + ∆ xi ei ) (8.47)


A sensibilidade de u em relação a xi é, então, dada por:

du ∆u u(x + ∆ xi ei ) − u(x)
≈ = (8.48)
d xi ∆ xi ∆ xi

8.4.3.2 Método Direto


Reescrevendo-se a equação de estado (8.43) como:

c (u(x), x) = f (u(x), x) − α fa (x) = 0 (8.49)


pode-se obter as expressões dadas em (8.7) particularizadas para o problema não linear, ou seja:
∂c
Z= = Kt (u(x), x) (8.50)
∂u
e:

∂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.

8.4.3.3 Método Adjunto


Para aplicar o Método Adjunto na análise de sensibilidade é necessário obter, além da matriz Z e do vetor
pi , obtidos no item anterior, o vetor µ, definido em (8.12), para se obter o vetor adjunto λ.
Para se obter µ, conforme a Equação (8.12), é preciso definir uma restrição h. Seja, por exemplo, h uma
restrição em deslocamento do tipo:

h (uj (x), x) = uj − uj ≤ 0 (8.53)


onde uj é a componente j do vetor de deslocamentos nodais u e uj é um deslocamento prescrito associado
ao mesmo grau de liberdade. Sendo, neste caso, r = u, tem-se:
∂h ∂h
µ= = = ej (8.54)
∂r ∂u
Com µ pode-se calcular λ por meio da Equação (8.15) e, em seguida, a sensibilidade de h em relação a
xi por meio da Equação (8.16), considerando-se que a derivada explı́cita de h em relação a xi é nula.
118 CAPÍTULO 8. ANÁLISE DE SENSIBILIDADE

8.4.4 Problemas de Carga Limite


Para um fator de carga crı́tica α∗ a matriz de rigidez tangente Kt (u(x), x) torna-se singular. Nesse caso,
diz-se que a estrutura atingiu um ponto de bifurcação ou de carga limite. É possı́vel descobrir qual dos dois
casos ocorre ao se diferenciar a Equação (8.43) em relação a um parâmetro β que cresce monotonicamente,
ou seja:

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)

onde o asterisco (∗) designa grandezas calculadas no ponto crı́tico.


Pré-multiplicando-se a Equação (8.55) por vt , obtém-se:

dα t
v fa (x) = 0 (8.57)

Em um ponto limite:


=0 (8.58)

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:


̸= 0 (8.59)

Logo:

vt fa (x) = 0 (8.60)

indicando que o modo de flambagem v é ortogonal ao vetor de cargas fa .

8.4.4.1 Método das Diferenças Finitas

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

para um dado valor de α. Nesse caso, α é o valor de carga limite α∗ (x).


No Método das Diferenças Finitas, para se obter a sensibilidade de α∗ em relação a xi , o valor de xi é
perturbado de ∆ xi e uma nova análise não linear é realizada até que um novo ponto limite seja encontrado,
ou seja, até que α∗ (x + ∆ xi ei ) seja determinado.
A sensibilidade de α∗ em relação a xi é dada então por:

d α∗ ∆ α∗ α∗ (x + ∆ xi ei ) − α∗ (x)
≈ = (8.61)
d xi ∆ xi ∆ xi
8.4. APLICAÇÃO DOS MÉTODOS DE ANÁLISE DE SENSIBILIDADE 119

8.4.4.2 Método Direto


As equações de estado que identificam um ponto limite são (vide Equação 8.49, fazendo-se α = α∗ ):

c [u∗ (x), x] = f (u∗ , x) − α∗ fa (x) (8.62)



Além disso, a matriz de rigidez tangente em u , ou seja:

∂ f
K∗t =
∂ u u=u∗
deve ser singular e seu autovetor associado ao autovalor nulo deve satisfazer:

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

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.

8.4.4.3 Método Adjunto


No Método Adjunto, como já visto anteriormente, é necessário obter o vetor µ, além da matriz Z e do vetor
pi , para se obter a sensibilidade da restrição h em relação a xi .
Seja a restrição h dada por:

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

Na Equação (8.71), o vetor λ multiplica uma matriz Z de dimensão (n + 1) × n e o produto é igual a um


vetor µ de dimensão (n + 1) × 1. A dimensão de λ é, portanto, n × 1.
É importante observar que, se λ for dado por:

λ = λα 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.

8.4.5 Problemas de Fluxo Térmico Transiente


A equação de estado de um problema de fluxo térmico transiente com o meio discretizado por elementos
finitos é dada por:

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.

8.4.5.1 Método das Diferenças Finitas


No Método das Diferenças Finitas a solução da Equação (8.81) deve ser obtida passo a passo (de ∆ t em
∆ t), ao longo do tempo para x e para x + ∆ xi ei , ou seja, com as matrizes K e C e os vetores q0 e q1
montados com x na primeira análise e x + ∆ xi ei na segunda. Na primeira análise obtém-se T(t, x) e na
segunda T(t, x + ∆xi ei ) no instante t. Caso a sensibilidade para uma nova variável xi seja necessária, uma
nova análise ao longo do tempo precisa ser feita até o instante t.
A sensibilidade de T em relação a xi no instante t é dada então por:

d T ∆ T(tp ) T(tp , x + ∆xi ei ) − T(tp , x)
≈ = (8.82)
d xi t=tp ∆x ∆ xi

8.4.5.2 Método Direto


A equação de estado do problema de fluxo térmico transiente é dada pela expressão (8.81) para uma análise
via algoritmo de integração direta do tipo definido em (8.79) sendo o vetor resposta r igual ao vetor T
avaliado no instante t1 (ou seja, T1 ):

c (T1 (x), x) = [C + ξ ∆t K] T1 − [C − (1 − ξ) ∆t K] T0 − ∆t [(1 − ξ) q0 + ξ q1 ] = 0 (8.83)


A partir da Equação (8.83) é possı́vel obter Z e pi , ou seja:

 ∂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

que permitem obter a sensibilidade de T1 em relação a xi conforme a Equação (8.9), ou seja:


122 CAPÍTULO 8. ANÁLISE DE SENSIBILIDADE

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.

8.4.5.3 Método Adjunto


Como já foi visto anteriormente, no Método Adjunto é preciso obter, além de Z e pi o vetor µ para se
calcular a sensibilidade da restrição h em relação a xi . Seja a restrição h dada por:

h (T1i ) = T1i − T1i ≤ 0 (8.86)


onde T1i é a componente i do vetor T1 e T1i é um valor prescrito para esta variável.
O vetor µ para o problema em questão vale:

∂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.

8.4.6 Problemas de Análise Dinâmica


A equação de equilı́brio de um problema de análise dinâmica para uma estrutura discretizada por elementos
finitos é:

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)

u0 , v0 e a0 são, respectivamente, os vetores de deslocamentos, velocidades e acelerações no instante t0 , u1 ,


v1 e a1 são as mesmas grandezas no instante t1 e, finalmente, α e δ são parâmetros do algoritmo. Um dos
mais populares algoritmos da famı́lia dos algoritmos de Newmark é o que considera α = 41 e δ = 12 . Este
algoritmo é incondicionalmente estável. Para esses valores de α e δ as expressões (8.89) podem ser rescritas
como:

∆ t2
 u 1 = u 0 + ∆ t v0 + 4 (a0 + a1 )
(8.91)
 ∆t
v1 = v0 + 2 (a0 + a1 )
Explicitando-se a1 na primeira das Equações (8.91) e substituindo-se na segunda, obtém-se:

 a1 = ∆4t2 (u1 − u0 ) − ∆4 t v0 − a0
(8.92)

v1 = 2
∆t (u1 − u0 ) − v0
Substituindo-se as expressões de v1 e a1 , dadas em (8.92), na equação de equilı́brio dinâmico (8.88) para
o instante t = t1 , ou seja:

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 .

8.4.6.1 Método das Diferenças Finitas


Para se obter a análise de sensibilidade da resposta em relação a uma variável ou parâmetro no Método das
Diferenças Finitas a expressão (8.94) deve ser resolvida duas vezes até o instante para o qual se deseja obter
a análise de sensibilidade. Na primeira solução as variáveis ou parâmetros em relação aos quais a análise de
sensibilidade será feita são considerados com seus valores iniciais. Em seguida, a variável ou parâmetro em
questão deve ser perturbada e uma nova análise deve ser realizada até o instante desejado. Para o caso de
se desejar a sensibilidade do vetor de deslocamentos no instante t = tp deve-se fazer:

d u ∆ u u(tp , x + ∆ xi ei ) − u(tp , x)
≈ = (8.95)
d xi t=tp ∆ xi t=tp ∆ xi

8.4.6.2 Método Direto


A equação de estado do problema de análise dinâmica para uma análise via algoritmo de integração direta
de Newmark com α = 14 e δ = 12 pode ser escrita com base na Equação (8.94), onde r = u1 , ou seja:

[ ] [ ] [ ]
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

que permitem obter:


∂ u1
= Z−1 pi
∂ xi
Quando as derivadas explı́citas de K, C e M são obtidas analiticamente o método Direto é dito Analı́tico,
se obtidas por diferenças finitas, o método é dito Semi-analı́tico.

8.4.6.3 Método Adjunto


Como já mencionado, para a análise de sensibilidade pelo Método Adjunto uma restrição deve ser definida.
Seja a restrição:

h (u1i ) = u1i − u1i ≤ 0 (8.98)


onde u1i e u1i são, respectivamente, a componente i do vetor de respostas u1 num dado instante t = tp
e o valor prescrito para esta componente i de u1i no mesmo instante.
O vetor µ para este problema é dado por:
∂h
µ= = ei (8.99)
∂ u1
O vetor λ pode ser obtido a partir de µ usando a Equação 8.15, ou seja:

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.

[9] Jasbir S. Arora, ‘Introduction to Optimum Design’, McGraw-Hill, 1989.

[10] Bathe, Klaus-Jürgen., ‘Finite Element Procedures in Engineering Analysis’, Prentice Hall Inc. 1996.

125
126 REFERÊNCIAS BIBLIOGRÁFICAS
Apêndice A

Exemplo de Análise de Sensibilidade

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.

Pode-se definir agora a matriz Jacobiana J(ξ, η) como,


[ ]
dx dy
dξ dξ
J (ξ, η) = dx dy ; (A.6)
dη dη

e, fazendo uso de A.1, obtém-se:


[ ∑4 dNi (ξ,η) ∑4 dNi (ξ,η)
]
xi yi
J (ξ, η) = ∑4i=1 dξ
dNi (ξ,η) ∑i=1
4

dNi (ξ,η) ; (A.7)
i=1 dη xi i=1 dη yi

ou, matricialmente,
 
[ ] x1 y1
N1 (ξ, η),ξ N2 (ξ, η),ξ N3 (ξ, η),ξ N4 (ξ, η),ξ  x2 y2 
J (ξ, η) =  ; (A.8)
N1 (ξ, η),η N2 (ξ, η),η N3 (ξ, η),η N4 (ξ, η),η  x3 y3 
x4 y4

onde o sub-ı́ndice ,ξ ou ,η significam a derivada em relação a ξ e η respectivamente.


Sucintamente, A.8 pode ser reescrita como:

J (ξ, η)2×2 = DNx (ξ, η)2×4 X4×2 ; (A.9)

Observando-se A.5, pode-se deduzir que a inversa da matriz Jacobiana Γ (ξ, η), dada por,

−1
Γ (ξ, η) = J (ξ, η) ; (A.10)

transforma derivadas paramétricas de ϕ em derivadas cartesianas de ϕ. Sendo assim, pode-se escrever:


129

   

 u,x 
 [ ]
 u,ξ 

   
u,y Γ (ξ, η)2×2 02x2 u,η
= ; (A.11)
 v,x
 
 02x2 Γ (ξ, η)2×2  v,ξ
 

   
v,y v,η
ou, sucintamente,

u,c 4×1 = Γu (ξ, η)4×4 u,p 4×1 ; (A.12)


Onde, u,c é o vetor que contém as derivadas cartesianas das componentes de deslocamentos u e v, u,p
o vetor que contém as derivadas paramétricas das componentes de deslocamentos u e v e Γu a matriz que
transforma derivadas paramétricas dos deslocamentos em derivadas cartesianas dos deslocamentos.
As expressões A.2 permitem escrever:
  

 u,ξ 
N1 (ξ, η),ξ 0 N2 (ξ, η),ξ 0
   N1 (ξ, η),η 0 N (ξ, η) 0
u,η
= 
2 ,η
 v   0 N (ξ, η) 0 N (ξ, η),ξ


,ξ 

1 ,ξ 2
v,η 0 N1 (ξ, η),η 0 N2 (ξ, η),η  

 u1 

 v1 




 (A.13)
· · · N3 (ξ, η),ξ 0 N4 (ξ, η),ξ 0 
 u 



2 

· · · N3 (ξ, η),η 0 N4 (ξ, η),η 0  v2

··· 0 N3 (ξ, η),ξ 0 N4 (ξ, η),ξ  
 u3 
 
··· 0 N3 (ξ, η),η 0 N4 (ξ, η),η  
 v3 


 
 u4 
 

 
v4
ou, sucintamente,

u,p 4×1 = DNd (ξ, η)4×8 d4×1 (A.14)


sendo d o vetor dos deslocamentos nodais.
É possı́vel demonstrar também que o determinante da matriz Jacobiana é o fator de escala que transforma
a área elementar dξdη no quadrado paramétrico em área elementar correspondente no quadrilátero do plano
cartesiano dA, como indicado a seguir.

dA = det (J (ξ, η))dξdη; (A.15)


A matriz de rigidez de um elemento finito qualquer pode ser obtida por:

K = Bt CBdv; (A.16)

onde a matriz B é a matriz de compatibilidade cinemática que transforma deslocamentos nodais em


deformações no interior do elemento.

ε = 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:

ε = H Γu (ξ, η) DNd (ξ, η) d; (A.22)


O que permite concluir que para o elemento em questão vale,

B (ξ, η)3×8 = H3×4 Γu (ξ, η)4×4 DNd (ξ, η)4×8 ; (A.23)


e a matriz de rigidez pode ser dada por:
∫ 1 ∫ 1
t
K8×8 = t B (ξ, η) 8×3 C3×3 B (ξ, η)3×8 det (J (ξ, η))dξdη; (A.24)
−1 −1

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

Para problema de estado plano de deformação:


 υ

1 0
E (1 − υ)  υ
(1−υ)

C=  1 0 ; (A.26)
(1 + υ) (1 − 2υ) (1−υ)
1−2υ
0 0 2 (1−υ)

sendo E o módulo de elasticidade e ν o coeficiente de Poisson do material.


A integração da matriz de rigidez é feita por integração numérica pelo Método de Gauss. Se forem usados
ng pontos de Gauss com coordenadas paramétricas ξgi e ηgi e pesos de integração wξi e wηi , A.24 pode ser
reescrita como:


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:

d(det (J(ξ, η)) {∑ }


k 4
= (−1) DNx(ξ, η)1,i m=1 DNx (ξ, η)2,m Xm,k +
dxij {∑ } (A.29)
j 4
(−1) DNx (ξ, η)2,i m=1 DNx (ξ, η)1,m Xm,k ;

A sensibilidade da matriz B em relação a xij é dada por:

dB(ξ, η) d(Γu (ξ, η))


= H3×4 DNd (ξ, η)4×8 ; (A.30)
dxij 3×8 dxij 4×4

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,

d(JΓ) d(J) d(Γ)


= Γ+J = 0; (A.33)
dxij dxij dxij
Da qual se pode obter,

d(Γ) d(J) d(J)


= −J−1 Γ = −Γ Γ; (A.34)
dxij dxij dxij
A sensibilidade da matriz Jacobiana J (ξ, η) em relação à coordenada xij pode ser obtida por:

d (J (ξ, η)) d (X)


= DNx (ξ, η) = DNx (ξ, η) E; (A.35)
dxij dxij
sendo que os elementos da matriz E de dimensão 4 × 2, como a matriz X, serão todos nulos a exceção do
elemento eij da linha i e coluna j que deverá ter o valor 1.

Você também pode gostar