Post on 07-Apr-2016
COMPLEX : Uma evolução do SIMPLEX
Otimização de ProcessosCOQ – 897
PEQ/COPPE/UFRJ
Método SIMPLEX
• Spendley et al., Technometris,4 (p.441),1962
• Idéia simples e robusta• Fácil implementação
Elementos do SIMPLEX
• Elementos definidos para problemas em várias dimensões
• Número de vértices do SIMPLEX equivale ao número de dimensões mais 1
Passos no SIMPLEX
• Avanço na direção colinear àquela que é definida pelo pior ponto e pelo centróide, no sentido oposto;
• Reflexão do ponto xW tendo como linha de base a aresta xBxN.
xW
xB
xN
xCxR
Localização do Centróide
• Localização vetorial do centróide
• Corresponde ao ponto médio no espaço vetorial
xW
xB
xN
xC
nxBxNxWxC
n = número de vértices do simplex
Avanço na direção escolhida• O novo ponto
corresponderá a diferença dos vetores vezes coeficiente de avanço, tendo como ponto de partida o centróide
• Abandona-se sempre o pior ponto avaliado pela Fobj
xW
xB
xN
xC
xC -xWalfa(xC -xW)
xC + alfa (xC - xW)
Otimização com o SIMPLEX
• Varredura na direção do ponto de ótimo
Problemas no SIMPLEX
• Regra de avanço rígida• Pouco refinamento da solução
Método COMPLEX
• Nelder, A.J. & Mead, R., The Computer Journal, 3 (p.308), 1965
• O poliedro que representa o SIMPLEX poderá ser não regular
• Possibilidade de adicionar vértices extras
Elementos do COMPLEX
• Elementos irregulares que avançam mais rapidamente nas direções mais vantajosas
Passos no COMPLEX
• Reflexão (=SIMPLEX)• Expansão• Contração Positiva• Contração Negativa
Alg
oritm
o do
CO
MPL
EXInicia a Otimização
Construção doSIMPLEX
Avaliação ,ordenamento dosvalores da Fobj edeterminação do
centróide
Reflexão
xR é melhorque xB ?
xR é melhorque xN ?
xR é melhorque xW ?
Tolerânciaalcançada ?
Expansão
xE é melhorque xR ?
xW = xE xW = xR xW = xC
Termina
xR = xC +alfa( xC -xW )
xE = xC +gama( xC -xW )
Contração nadireção positiva
Contração nadireção negativa
Sim
Não
Sim
Não
Sim
Não
Sim
Não
Sim
Não
xC = xC +beta( xC -xW )
xC = xC -beta( xC -xW )
gama > 1
alfa = 1
0 < beta < 1
Função Teste22
2121 ),( xxxxu
-10 -8 -6 -4 -2 0 2 4 6 8 10-10
-8
-6
-4
-2
0
2
4
6
8
10
start pointoptimum
Solução na MatLab com o COMPLEX
Função de Rosenbrock• Função “banana”: 2
122
1221 )1()(100),( xxxxxu
-20
-10
0
10
20
-150-100
-500
50100
150
Gráfico de Níveis da Função “banana”
Solução no MatLab – “banana”• Rotina programada pelo Prof. Argimiro
-20 -15 -10 -5 0 5 10 15 20-20
-15
-10
-5
0
5
10
15
20start pointoptimum
Desempenho: COMPLEX — “banana”
Nº de avaliações da Fobj
PontoInicial
Rosenbrock COMPLEX
(10,10) 273 304
(-10,10) 279 283
(-10,-10) 479 187
(10,-10) 543 198
Função Alpina212121 )()(),( xxxsinxsinxxu
Solução no MatLab - Alpina• Rotina programada pelo Prof. Argimiro
0 1 2 3 4 5 6 7 8 9 100
1
2
3
4
5
6
7
8
9
10start pointoptimum
4.5 5 5.5 6 6.5 7 7.5 8 8.5 9
3.5
4
4.5
5
5.5
6
6.5 start pointoptimum
Região da Solução - Alpina
Mais de perto ...
7.2 7.4 7.6 7.8 8 8.2 8.4 8.6
4.2
4.4
4.6
4.8
5
5.2
5.4
5.6
5.8 start pointoptimum
Avaliação do Número de Vértices Extras22
2121 ),( xxxxu
-10 -8 -6 -4 -2 0 2 4 6 8 10-10
-8
-6
-4
-2
0
2
4
6
8
10start pointoptimum
r=0; nS=125-10 -8 -6 -4 -2 0 2 4 6 8 10
-10
-8
-6
-4
-2
0
2
4
6
8
10start pointoptimum
r=1; nS=167
-10 -8 -6 -4 -2 0 2 4 6 8 10-10
-8
-6
-4
-2
0
2
4
6
8
10start pointoptimum
r=2; nS=208 r=3; nS=258
-10 -8 -6 -4 -2 0 2 4 6 8 10-10
-8
-6
-4
-2
0
2
4
6
8
10start pointoptimum
Conclusões• Método Robusto• Eficiência comparável aos demais métodos diretos• Testes com os fatores alfa, beta e gama mostraram
que o número de avaliações da função objetivo altera-se significativamente
• Aumentar o número de vértices não ofereceu vantagens imediatas
• Excelente capacidade de refino da solução