COMPLEX : Uma evolução do SIMPLEX Otimização de Processos COQ – 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. xB xW xC xR xN Localização do Centróide • Localização vetorial do centróide • Corresponde ao ponto médio no espaço vetorial xB xW xN xB n n = número de vértices do simplex xC xW xC xN 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 xB xC-xW alfa(xC-xW) xW xC xN xC + alf a(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 Algoritmo do COMPLEX Inicia a Otimização Construção do SIMPLEX T ermina Sim Avaliação , ordenamento dos valores da Fobj e determinação do centróide Não T olerância alcançada ? Reflexão xR = xC+alf a(xC-xW) alfa = 1 xR é melhor que xB ? Não Sim xR é melhor que xN ? Sim Não Não xR é melhor que xW ? Sim Contração na direção positiva Expansão Contração na direção negativa xE = xC+gama(xC-xW) gam a > 1 xE é melhor que xR ? xC = xC+beta(xC-xW) Não 0 < be ta < 1 xC = xC-beta(xC-xW) Sim xW = xE xW = xR xW = xC Função Teste u( x1 , x2 ) x x 2 1 2 2 Solução na MatLab com o COMPLEX 10 8 start point optimum 6 4 2 0 -2 -4 -6 -8 -10 -10 -8 -6 -4 -2 0 2 4 6 8 10 Função de Rosenbrock • Função “banana”: u( x1 , x2 ) 100 ( x2 x12 ) 2 (1 x1 ) 2 Gráfico de Níveis da Função “banana” 20 10 -150 -100 0 -50 0 -10 50 100 -20 150 Solução no MatLab – “banana” • Rotina programada pelo Prof. Argimiro 20 start point optimum 15 10 5 0 -5 -10 -15 -20 -20 -15 -10 -5 0 5 10 15 20 Desempenho: COMPLEX — “banana” Nº de avaliações da Fobj Ponto Inicial (10,10) Rosenbrock COMPLEX 273 304 (-10,10) 279 283 (-10,-10) 479 187 (10,-10) 543 198 Função Alpina u( x1, x2 ) sin( x1 ) sin( x2 ) x1 x2 Solução no MatLab - Alpina • Rotina programada pelo Prof. Argimiro 10 start point optimum 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10 Região da Solução - Alpina 6.5 start point optimum 6 5.5 5 4.5 4 3.5 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 Mais de perto ... start point optimum 5.8 5.6 5.4 5.2 5 4.8 4.6 4.4 4.2 7.2 7.4 7.6 7.8 8 8.2 8.4 8.6 Avaliação do Número de Vértices Extras u( x1 , x2 ) x x 2 1 10 10 start point optimum 8 2 2 start point optimum 8 6 6 4 4 2 2 0 0 -2 -2 -4 -4 -6 -6 -8 -8 -10 -10 -10 -10 -8 -6 -4 -2 0 2 4 6 8 10 r=0; nS=125 -8 -6 -4 -2 0 2 4 6 8 10 r=1; nS=167 10 10 start point optimum 8 start point optimum 8 6 6 4 4 2 2 0 0 -2 -2 -4 -4 -6 -6 -8 -8 -10 -10 -8 -6 -4 -2 0 2 4 6 8 r=2; nS=208 10 -10 -10 -8 -6 -4 -2 0 2 4 6 8 10 r=3; nS=258 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