Você está na página 1de 13

Sensibilidade em Otimização 1

Objetivo: Calcular as derivadas da função objetivo e


restrições em relação às variáveis de projeto

dF(x) ∆x 2 d 2 F( x) ∆x 3 d 3F( x)
F(x + ∆x) = F(x) + ∆x + + + ....
dx 2 dx 2 6 dx 3

Permite analisar a mudança do comportamento da estrutura


devido a pequenas mudanças de seus parâmetros (dimensões,
propriedades de materiais, etc…) com custo menor do que
realizar novas análises.

Métodos para o • Diferenças Finitas


cálculo de • Métodos Semi-analíticos Precisão
sensibilidade • Métodos Analíticos aumenta

Prof. Dr. Emilio C. Nelli Silva

Sensibilidade em Otimização 2

Considere um sistema mecânico modelado pelo sistema linear abaixo:


[K ]{U}= {F}   A12 2 − A1  u1  = 3 
2

      onde A1=1
 2 4 
4 + 2A1  u2 
2
2 − A1
Determine o valor numérico da sensibilidade da função
f={U}t[K]{U} em relação à A1 usando:
a) Método analítico;
b) Método semi-analítico (∆A1=0,01)
c) Método de diferenças finitas (∆A1=0,01);
Método Analítico
df ∂f dU  ∂f 
= + zT , onde : z = ∇f  z i = 
dA1 ∂A1 dA1  ∂u i 

Prof. Dr. Emilio C. Nelli Silva

1
Sensibilidade em Otimização 3

Primeiro Passo: Calcular {U} para A1=1


1 1 u1  3
[K ]{U} = {F}      =    {U} = 
1  6 − 1 3 1 14
 =  
1 6 u 2  4 5 − 1 1  4 5  1 
dU
Segundo Passo: Método Direto – calcular
dA1
dU dF dK dU  dF dK  dF
K = - U = K −1  - U   =0
dA1 dA1 dA1 dA1  dA1 dA1  dA1
dU  dK  dK  A − A1   1 − 1
 = K −1  - U ; = 2 1  = 2 
dA1  dA1  dA1 − A1 2 A1  − 1 2 
−1
dU 1 1 1  2  1 − 1 14  2  6 − 1  1 − 1 14
 =   −     =−   =
dA1 5 1 6  5 − 1 2   1   25 − 1 1  − 1 2   1 
1 − 36
=  
5  10 
Prof. Dr. Emilio C. Nelli Silva

Sensibilidade em Otimização 4

Terceiro Passo: cálculo de z

 ∂f 
 ∂u  ∂f ∂{U}
t
t ∂[K ] ∂{U}
z =  1 ;
∂f ∂u1
= [K ]{U}+ {U} {U}+ {U} [K ]
t
=
  ∂u1 ∂u1 ∂u1

 ∂u2 
1 1 1 u1  1 1 1
= {1 0}[K ]{U}+ {U} [K ]  = {1 0}   + {u1 u2 }
t
   =
0 1 6 u2  1 6 0
∂f 0
= 2(u1 + u2 )  = {0 1}[K ]{U}+ {U} [K ]  = 2(u1 + 6u2 ) 
t

∂u2 1
 2(u + u )  6
z= 1 2 = 
2(u1 + 6u2 ) 8
Prof. Dr. Emilio C. Nelli Silva

2
Sensibilidade em Otimização 5

Quarto Passo: cálculo de ∂f


∂A1
t ∂[K ]  A − A1  1 − 1
∂f
= {U} {U} = 2{U}t  1 {U} = 2{U}t  {U} =
∂A1 ∂A1 − A1 2 A1  − 1 2 
1 − 1 14 68
=
2
{14 1}   =
25 − 1 2   1  5
Quinto Passo: cálculo da derivada final
df ∂f dU 68 1 − 36
= + zT = + {6 8}  = 13,6 − 27,2 = −13,6
dA1 ∂A1 dA1 5 5  10 

Prof. Dr. Emilio C. Nelli Silva

Sensibilidade em Otimização 6

dU
Segundo Passo: Método Adjunto – calcular
dA1
1  6 − 1 6 1 28
Kλ = z  λ = K −1z  λ =   =  
5 − 1 1  8 5  2 
df ∂f  dF dK  68 1  2  1 − 1 14 
= + λT  − U  = + {28 2} 0 −    =
dA1 ∂A1  dA1 dA1  5 5  5 − 1 2   1  
= 13,6 − 27,2 = −13,6
Método Semi-Analítico
Primeiro Passo: calcular dK
dA1
dK K ( A1 + ∆A1 ) − K ( A1 ) 1   1,012 2 − 1,012   1 2 − 1 
≅ = 
0,01  2 − 1,012 2 
−  =
dA1 ∆A1 4 + 2 1,01  2 − 1 4 + 2 
( )
1  0,0201 − 0,0201  2,01 − 2,01
= =
0,01 − 0,0201 0,0402  − 2,01 4,02 

Prof. Dr. Emilio C. Nelli Silva

3
Sensibilidade em Otimização 7

Segundo Passo: cálculo de ∂f


∂A1
t ∂[K ]
{U} = 1 {14 1}
∂f 2,01 − 2,01 14 357
= {U}   = = 14,28
∂A1 ∂A1 25 − 2,01 4,02   1  25
dU
Terceiro Passo: Método Adjunto – calcular
dA1
1  6 − 1 6 1 28
Kλ = z  λ = K −1z  λ =   =  
5 − 1 1  8 5  2 

df ∂f  dF dK  357
= + λT  − U  = +
dA1 ∂A1  dA1 dA1  25
2   2,01 − 2,01 14  357
+ {14 1} 0 − 1    = − 27,33 = −13,06
5  5 − 2,01 4,02   1   25
Prof. Dr. Emilio C. Nelli Silva

Sensibilidade em Otimização 8

Método de Diferenças Finitas


df f A1 + ∆A1
−f A1
{U}t A + ∆A [K ] A + ∆A {U} A + ∆A − {U}t A [K ] A {U} A
1 1 1 1 1 1
≅ = 1 1 1

dA1 ∆A1 ∆A1


 1,012 2 − 1,012  u1   3
[K ] A + ∆A {U} A + ∆A = {F}     = 
1 1 1 1
2 − 1,01
2
(
4 + 2 1,012 )
 u2  A1 + ∆A1 4
−1
u  1,0201 0,9799 3 2,73022
  1 =   = 
u2  A1 + ∆A1 0,9799 6,0402 4 0,21931
t
2,73022 1,0201 0,9799 2,73022
 f A1 + ∆A1
=    = 9.068
 0,21931 0,9799 6,0402  0,21931

[K ] A {U} A = {F}  
1 2 − 1   u1  3  u1  1  6 − 1 3
   =   =   
1 1
2 − 1 4 + 2 u2  A1 4 u2  A1 5 − 1 1  4
t
1 14 2,8 2,8 1 1 2,8 df 9.068 − 9,2
=  =  f A1
=  1 6 0,2 = 9,2  dA ≅ = −13,2
5  1  0,2 0,2    1 0,01
Prof. Dr. Emilio C. Nelli Silva

4
Sensibilidade em Otimização 9

Elaborando melhor o método analítico

df ∂f dU  ∂f 
= + zT , onde : z = ∇f  z i = 
dA1 ∂A1 dA1  ∂u i 

t ∂[K ]
{U}+ d {U} [K ]{U}+ {U}t [K ] d {U};
t
df
= {U}
dA1 ∂A1 dA1 dA1
t
d {U} −1  dF dK  −1  dK  d {U}  dK 
t
dK
= [K ]  U  = [K ]  − U   =  − U  [K ] = −U t [K ]−1
−t

dA1  dA1 dA1   dA1  dA1  dA1  dA1
t ∂[K ]  

df
= {U} {U}− U t dK [K ]−1 [K ]{U}+ {U}t [K ][K ]−1  − dK U  =
dA1 ∂A1 dA1  dA 1 
∂[K ]
= {U}
t
{U}− U t dK {U}− {U}t dK U = −U t dK {U}
∂A1 dA1 dA1 dA1

Prof. Dr. Emilio C. Nelli Silva

Sensibilidade em Otimização 10

Considere um sistema mecânico modelado pelo sistema linear abaixo:


 1 1  
1 + 3 −
0   u1  0
A1 
3
2 A
{[K ] − ω 2 [M ] {u} = 0   A11
}  −ω2  1   =  
 − 3 3+ 3
1   0 A1  u2  0 onde A1=1
 A1 
 A1 
Determine o valor numérico da sensibilidade da função ω1 em
relação à A1 usando:
a) método analítico;
b) Método semi-analítico (∆A1=0,01);
c) método de diferenças finitas (∆A1=0,01);
Método Analítico
 du    dK dM  
   −  −µ u 
(K − µM ) − Mu   dA1    dA1 dA1   dω1
=
1 dµ
 − uTM  = 
 0   dµ   1 T dM 
dA1 2ω1 dA1
u u
 dA1   2 dA1 
Prof. Dr. Emilio C. Nelli Silva

5
Sensibilidade em Otimização 11

[K ] = 
− 1
2 d [K ] 3 − 1 1 
[M ] = 
2 0 d [M ] 2 0
; ; = 4 ; = 
− 1 4  0 1  dA1 A1  1 − 1 dA1 0 1 

 2 − 1 2 2 0  u1  0 2 1 − ω 2 ( ) − 1  u1  0


  − ω 0 1 u  = 0     =   
 − 1 4     2     − 1 4 − ω 2  u2  0
2 1 − ω 2
 det 
( ) −1 
( )( )
= 0  2 1− ω 2 4 − ω 2 −1 = 0 
2
 −1 4 −ω 
2 2
 µ1 = ω1 = 0,842; µ 2 = ω 2 = 4,16  ω1 = 0,918; ω 2 = 2,04
0,316 − 1   u1  0  u1  3,158
ω12 = 0,842      =    u1 = 3,158u2    =  
 − 1 3,158 u 2  0 u2 1  1 

− 6,32 − 1   u1  0  u1  − 0,16


ω 2 2 = 4,16      =    u1 = −0,16u 2    =  
 −1 − 0,16 u2  0 u2  2  1 
Prof. Dr. Emilio C. Nelli Silva

Sensibilidade em Otimização 12

µ1 = 0,842;

[K ] − µ1[M ] = 
2 − 1 2 0 0,316 − 1 
 − 0,842 = ;
− 1 4  0 1  − 1 3,158
 u1  3,158 2 0 3,158 6,316
  =   [M ]{u} =   = ;
u 2 1  1  0 1   1   1 
2 0
{u}t [M ] = {3,158 1}  = {6,316 1}
0 1

 dK dM   − 1 1  2 0 3,158
 − µ1 u1 = 3  − 0,842    =
 dA1 dA1    1 − 1  0 1   1 
− 4,684 3  3,158 − 11,792
 3  = 
 − 3,842  1   5,632 
t
1 T dM 1 3,158 2 0 3,158
2
u1
dA1
u1 = 
2 1 
 0 1  1  = 10,475
   Prof. Dr. Emilio C. Nelli Silva

6
Sensibilidade em Otimização 13

0,316 − 1 6,316 
du  − 11,792
 
du 
  1,239 
 − 1 3,158   dA1     dA1    dω 1 dµ
1  = 5,632    = 2,653   1 =
dµ   dµ  
 =
dA 2 * 0,918 dA
6,316 1 0     10,475    − 1,509 1 1

 dA1     dA1   
= −0.822
Método Semi-Analítico

d [K ] [K ] A1 + ∆A1 − [K ] A1 1  1,971 − 0,971  2 − 1 


= =  − =
dA1 ∆A1 0,01 − 0,971 3,971  − 1 4  
1 − 0,029 0,029  − 1 1 
=   = 2,9 
0,01  0,029 − 0,029  1 − 1
d [M ] [M ] A1 + ∆A1 − [M ] A1 1 2,02 0  2 0 
= =  − =
dA1 ∆A1 0,01  0 1,01 0 1 
1 0,02 0  2 0
= =
0,01  0 0,01 0 1
Prof. Dr. Emilio C. Nelli Silva

Sensibilidade em Otimização 14

Portanto:
 dK dM   − 1 1  2 0 3,158
 − µ1 u1 = 2,9   − 0,842    =
 dA1 dA1    1 − 1  0 1   1 
− 4,584 2,9  3,158 − 11.576
 2,9  = 
 − 3,742  1   5.4162 

Assim:
0,316 − 1 6,316 
du  − 11,576
 
du 
  1,25 
 − 1 3,158   dA1     dA1    dω1 1 dµ1
 1   dµ   = 5, 4162   dµ   2,58  
 = = =
        dA 2 * 0,918 dA1
6,316 1 0   10,475   − 1,487  1

 dA1    dA1  
= −0.81

Prof. Dr. Emilio C. Nelli Silva

7
Sensibilidade em Otimização 15

Método de Diferenças Finitas


dµ1 µ1 A1 + ∆A1 − µ1 A1 dω1 ω1 A1 + ∆A1 − ω1 A1
≅ ; ≅
dA1 ∆A1 dA1 ∆A1
Para A1=1,01:
 1 1  
1 + 3 −
0  u1  0  1,971 − 0,971
A1  2,02 0  u1  0
3
 A1 2 A
 1  −ω2 1   =     −ω2     =   
 − 3 3+ 3
1   0 A1  u 2  0 − 0,971 3,971   0 1,01 u2  0
 A1 
 A1 
dµ1 0,8267 − 0.842 dω 1 dµ1
 µ1 = 0,8267; µ 2 = 4.08  ≅ = −1,53  1 = = −0,841
dA1 0,01 dA1 2 * 0,8267 dA1
0,8267 − 0,842
Se fosse
ω1
: Mas: dω1 ≅ = −0.837
ω2 dA1 ∆A1

ω1 df dω 1 ω1 dω2 2 dω dµ dω 1 dµ
f =  = 1 − 2  µ = ω1  2ω1 1 =  1= 
ω2 dA1 dA1 ω2 ω2 dA1 dA1 dA1 dA1 2ω1 dA1
df dµ 1 ω dµ
 = − 1
dA1 dA1 2ω1ω2 2ω2 3 dA1
Prof. Dr. Emilio C. Nelli Silva

Algoritmos Probabilísticos 16

Limitações dos algoritmos baseados na teoria de


Programação Matemática:
• não garantem que foi obtido o mínimo global (a menos que o
problema seja convexo). Devem ser feitas várias tentativas alterando-
se o “chute” inicial;
• não permitem lidar com variáveis discretas – informação de
derivadas é inútil ou não é definida (espaço de solução disjunto e
desconexo); introdução de múltiplos mínimos locais;
Solução Algoritmos Probabilísticos
• Maior probabilidade de obter o mínimo global;
• Permitem lidar com váriáveis discretas
• baseados em fenômenos observados na natureza
• processo de busca randômica guiada por decisões probabilísticas
Prof. Dr. Emilio C. Nelli Silva

8
Problema Discreto 17

Como lidar com variáveis discretas?


?
0 1
Mínimos locais
O problema considerando valores
discretos (zero ou um) é mal-posto, ou
seja, NÃO apresenta solução.
Essencialmente, o que acontece é que a
utilização de valores discretos origina
múltiplos mínimos locais causando
instabilidades numéricas. Isso também X1* X2*
x*
origina uma dependência da solução em
relação a discretização do problema.
Mínimo global

Prof. Dr. Emilio C. Nelli Silva

Simulated Annealing 18

Algoritmos
• “Simulated Annealing”
probabilísticos
• Algoritmos Genéticos
mais usados
“Simulated Annealing” ou Recozimento Simulado

Baseado num fenômeno de mecânica estatística relacioando com o


equilíbrio de um grande número de átomos em sólidos e líquidos numa
certa temperatura de solidificação de metais ou formação de cristais

Resfriamento rápido estado sólido pouco estável (átomos assumem


posições de mínimos locais de energia potencial na estrutura matricial
do metal). Para obter um estado mais estável de energia (mínimo
global) Recozimento: metal é reaquecido até altas temperaturas e
resfriado lentamente (átomos tem tempo para encontrar locais de
energia potencial mínima globais estáveis)
Prof. Dr. Emilio C. Nelli Silva

9
Simulated Annealing 19

Baseado no Algoritmo “Metropólis”


Dado T (temperatura) perturbação randômica da posição do átomo
calcula ∆E:
• Se ∆E<0 aceita nova configuração de átomos;
• Se ∆E>=0 decisão é baseada na seguinte função probabilística que
calcula a probabilidade de aceitação:
 − ∆E 
 
 k BT  kB – constante de Boltzmann
P(∆E ) = e
A decisão é obtida escolhendo-se de forma randômica um número
ρ em (0,1) e comparando com P(∆E):
Se ρ < P(∆E) configuração é aceita
Se ρ > P(∆E) configuração é rejeitada
Prof. Dr. Emilio C. Nelli Silva

Simulated Annealing 20

Note que:
• Se T é alto P(∆E) é próximo de 1;
• Se T é próximo de zero P(∆E) é muito pequeno;
Assim a cada temperatura um conjunto de estruturas atômicas seria
gerada pela perturbação randômica da posição até que o “equilíbrio
térmico” seja atingido (estado estável). A temperatura é reduzida e as
iterações são repetidas. Os passos são repetidos iterativamente
enquanto a temperatura é reduzida de forma lenta até atingir o mínimo
estado de energia.
Analogia com o problema matemático de otimização
Estados de energia funções objetivo
Configurações dos átomos variáveis de projeto x
Temperatura T parâmetro de controle de convergência
Somente valores de função são usados
Prof. Dr. Emilio C. Nelli Silva

10
Simulated Annealing 21

Desempenho do Método
• Temperatura T0;
• Atualização de T; “Cooling
• Número de iterações (combinações de variáveis de Schedule”
projeto) necessárias para atingir o “equilíbrio térmico”,
antes de reduzir T;
Se T0 é baixo baixa probabilidade de atingir o mínimo
Escolha de T0:  − ∆f 
 
 T  ∆f
P (∆E ) = 0,95 = e  0 
 T0 =
ln(1 / 0,95)
Regras de Atualização da temperatura:
• Tk +1 = αTk k = 0 ,1,2,...K 0,5 ≤ α ≤ 0,95
• Dividir [0,T0] em K passos: T = K − k T k = 0 ,1,2 ,...K
k 0
K
Prof. Dr. Emilio C. Nelli Silva

Simulated Annealing 22

Fluxograma do Método

Prof. Dr. Emilio C. Nelli Silva

11
Algoritmo Genético 23

Derivados da biologia Teoria de Darwin (sobrevivência do mais


resistente. Ao longo das gerações, características que são úteis para
sobrevivência são passadas adiante para os indivíduos sucessores.
Essas características são armazenadas na codificação dos
cromossomos. Os mecanismos da genética para troca randômica de
informações entre os cromossomos dos pais reprodutores são
baseadas nas seguintes operações: reprodução, cruzamento, ocasional,
mutação e inversão do código cromossômico.

Algoritmos Genéticos simulam os mecanismos da genética natural


para solução de problemas de otimização. Código cromossômico é
representado por uma “palavra”.As operações envolvem trocas
randômicas das localizações de números numa palvra. Utiliza
somente o valor da função.

Prof. Dr. Emilio C. Nelli Silva

Algoritmo Genético 24

Representação da combinação de variáveis de projeto palavras de


bits que “emulam” os cromossomos. Por exemplo:
{x1 , x2 , x3 , x4 } = {6,5,3,11} = 0110
{101 111011
{{ {
x1 x2 x3 x4

Ideal para variáveis discretas ou inteiras, no caso de variáveis


contínuas grande número de bits para representação (depende
da precisão desejada). Nesse caso, número m de dígitos binários
necessários para representar uma variável xi num intervalo xLi e
xUi com precisão xincr vale:

{x i
L
} (( )
≤ xi ≤ xiU  2 m ≥ xiU − xiL / x incr + 1 )
Prof. Dr. Emilio C. Nelli Silva

12
Algoritmo Genético 25

Trabalha com população de palavras (ou cromossomos) e não com


um único ponto do espaço de projeto Implementação com
vantagens em computadores paralelos. O resultado do algoritmo
genético é uma população de bons projetos (“palavras”).

Exemplo de seqüência de operações de um algoritmo genético:

1. Dimensão da população é escolhida e valor das variáveis em cada


“palavra” é decidido randomicamente (0s e 1s para os bits).
2. Reprodução: “palavras” com um bom valor de função objetivo
são copiadas para formar uma nova população (Teoria de
Darwin), ou seja, é aumentada a probabilidade de sua escolha em
relação ao resto da população. A nova população terá múltipla
cópias dos indíviduos mais resistentes.

Prof. Dr. Emilio C. Nelli Silva

Algoritmo Genético 26

3. Cruzamento: “palavras” da nova população são agrupadas


randomicamente em pares para o cruzamento. Um inteiro
randômico k é selecionado entre 1 e L-1, onde L é o
comprimento da palavra, e então (por exemplo, L=9 e k=5):
pai 1 : 01101 0111 palavra gerada 1 : 01101 0001
geram
pai 2 : 01001 0001 palavra gerada 2 : 01001 0111
Cruzamento de “um ponto”. Outras possibilidades:
cruzamento de “dois pontos” e “multi-ponto”.
4. Mutação: seleciona uma palavra randomicamente e altera seu
valor de 0 para 1 ou vice-versa. Evita uniformidade, ou seja, que
hajam muitas palavras iguais na mesma população, o que ocorre no
estágio da reprodução. Caso contrário, a chance de encontrar
melhores soluções seria reduzida. Efeito no desempenho do
algoritmo é secundário (1 mutação em 1000 operações de bit).
Prof. Dr. Emilio C. Nelli Silva

13

Você também pode gostar