3.10 Resultados num´ericos
4.1.3 Otimiza¸c˜ao unidimensional: M´etodo da Se¸c˜ao ´ Aurea
eficientes quando a fun¸c˜ao a ser minimizada ´e cont´ınua na primeira derivada. V´arios outros m´etodos, como o m´etodo de Newton, s˜ao somente apropriados quando a segunda derivada ´e facilmente calculada.
4.1.2
Otimiza¸c˜ao com restri¸c˜oes
Na otimiza¸c˜ao com restri¸c˜oes, o objetivo geral ´e transformar o problema em um conjunto de subproblemas que podem ser resolvidos usando um processo iterativo. Uma grande parte dos m´etodos transformam um problema com res- tri¸c˜oes em um problema sem restri¸c˜oes. Nestes casos o problema com restri- ¸c˜oes ´e resolvido usando uma seq¨uˆencia de otimiza¸c˜ao sem restri¸c˜oes parame- trizadas, a qual, no limite, converge para um problema com restri¸c˜oes. Atu- almente estes m´etodos s˜ao considerados relativamente ineficientes e tem sido trocados por m´etodos que est˜ao focados em solu¸c˜oes de equa¸c˜oes de Kuhn- Tucker (KT). As equa¸c˜oes de KT s˜ao condi¸c˜oes necess´arias para otimizar problemas com restri¸c˜ao. A solu¸c˜ao das equa¸c˜oes de KT forma a base para muitos algoritmos de programa¸c˜ao n˜ao-linear. Estes algoritmos esfor¸cam-se para calcular os Multiplicadores de Lagrange diretamente.
4.1.3
Otimiza¸c˜ao unidimensional: M´etodo da Se¸c˜ao
´
Aurea
O m´etodo da Se¸c˜ao ´Aurea estima o m´aximo, m´ınimo ou zero de uma fun¸c˜ao de uma vari´avel. ´E uma t´ecnica popular por v´arias raz˜oes: primeiro, se a fun¸c˜ao assumida for unimodal, ou seja, possui somente um ponto de m´aximo ou de m´ınimo no intervalo de busca, esta n˜ao precisa ter derivadas cont´ınuas (Bazarra et al., 1993). Segundo, ao contr´ario das t´ecnicas polinomiais ou
outras baseadas no ajuste de curvas, a raz˜ao de convergˆencia para o m´etodo da se¸c˜ao ´aurea ´e conhecida.
Para ilustrar os fundamentos do m´etodo, considere como problema de- terminar o m´ınimo de uma fun¸c˜ao f , sendo f uma fun¸c˜ao de uma vari´avel independente x. Assumindo que os limites maior e menor de x s˜ao xl e xu,
respectivamente, e as fun¸c˜oes calculadas em cada um dos limites s˜ao, respec- tivamente fl e fu (Figura 4.2), escolhe-se dois pontos intermedi´arios x1 e x2,
sendo x1 < x2, e avalia-se as fun¸c˜oes nestes pontos, dadas como f1 e f2,
respectivamente.
Como foi assumido que a fun¸c˜ao ´e unimodal, x1ou x2 s˜ao os novos limites.
Neste caso, f1 ´e maior que f2. Ent˜ao, como foi assumido que s´o existe um
m´ınimo no intervalo, este n˜ao estar´a entre xl e x1. Deste modo, x1 forma o
novo limite menor e tem-se um novo intervalo limitado por x1 e xu.
Como pr´oximo passo, precisa-se escolher um ponto adicional, x3, no qual
´e avaliado f3. No nosso exemplo, comparando f2 e f3, pode-se ver que f3
´e maior, e ent˜ao x3 ´e trocado por xu como o limite maior. Repete-se este
processo at´e encontrar a tolerˆancia desejada.
Precisa-se determinar um m´etodo para escolher os pontos interiores x1, x2,
x3, ..., para reduzir o limite rapidamente. Como, depois da escolha inicial xl,
xu e x1 a fun¸c˜ao ´e avaliada em cada itera¸c˜ao, ´e mais eficiente um algoritmo
que reduza os limites a uma mesma raz˜ao em cada itera¸c˜ao. ´E preciso escolher cada x1 que ser´a o novo limite menor ou x2 que ser´a o novo limite maior para
que estes valores sejam sim´etricos sobre o centro do intervalo, assim:
Assumindo que a raz˜ao:
r = x2− x1 xu− xl
(4.2) ´e constante ao longo das itera¸c˜oes, tem-se, substituindo (4.1) em (4.2):
r = x2− x1 xu− xl
= xu+ xl− 2x1 xu− xl
(4.3) Na pr´oxima itera¸c˜ao, se x1 se tornar o novo limite menor xl, ent˜ao x2 se
tornar´a x1 e a raz˜ao (4.3) se torna:
r = xu+ x1− 2x2 xu− x1 (4.4) Igualando-se (4.3) e (4.4), tem-se: xu+ xl− 2x1 xu − xl = xu+ x1− 2x2 xu− x1 (4.5) Ap´os algumas manipula¸c˜oes alg´ebricas, tem-se:
x1− xl
xu− xl
= x2− x1 xu− x1
(4.6) Por conveniˆencia, assuma que: xl = 0, e xu = 1. Agora x2 = 1 − x1 e a
equa¸c˜ao (4.2) ´e escrita como:
x1 = 1 − 2x1
1 − x1
(4.7) Simplificando:
x21− 3x1+ 1 = 0 (4.8)
Da equa¸c˜ao (4.8), tem-se duas ra´ızes: x1 =
3 ±√5
2 ⇒ {
x1 = 0.38197
Ignora-se a segunda ra´ız porque neste caso x1 ´e maior que o limite maior.
Desta forma, tem-se, finalmente:
x1 =
3 −√5
2 = 0.38197 (4.10)
x2 = 1 − x1 = 0.61803 (4.11)
A raz˜ao destas solu¸c˜oes ´e o n´umero conhecido como Se¸c˜ao Dourada: x2
x1
= 1.61803 (4.12)
que ´e empregado desde a idade antiga em constru¸c˜oes e desenhos. Da´ı o nome do m´etodo.
A se¸c˜ao dourada proporciona uma seq¨uˆencia ideal para dividir o intervalo e encontrar o valor m´ınimo de f . Pode-se definir os pontos interiores x1 e
x2 em termos de xl, xu e τ , onde: τ = 3 − √ 5 2 = 0.38197 = x1 (4.13) x1 = (1 − τ )xl+ τ xu (4.14) x2 = τ xl+ (1 − τ )xu (4.15)
O m´etodo da sec¸c˜ao ´aurea se baseia na t´ecnica de limita¸c˜ao da busca a um intervalo, isto ´e, consiste em reduzir os limites do universo da busca at´e que o intervalo formado pelos limites seja menor que um erro admiss´ıvel (Vanderplaats, 1999).
Como em um processo iterativo, precisa-se definir um crit´erio para a identificar quando o processo converge para a solu¸c˜ao aceit´avel. Assumindo
um intervalo inicial de incerteza, xu − xl, deseja-se reduzir o intervalo para
algum ε do intervalo inicial, chamado de tolerˆancia relativa, ou para algum ∆x que ´e uma tolerˆancia absoluta. O valor de ε ser´a encontrado da seguinte forma:
ε = ∆x
xu− xl
(4.16) Pode-se converter a tolerˆancia relativa ε para o n´umero m´aximo de fun¸c˜oes avaliadas. Assim, requer-se trˆes fun¸c˜oes para serem avaliadas: fl, f1 e fu,
para que o intervalo seja reduzido de τ (38%) em cada itera¸c˜ao. A tolerˆancia espec´ıfica ε ser´a:
ε = (1 − τ )N −3 (4.17)
onde N ´e o n´umero total de fun¸c˜oes a serem avaliadas, incluindo as trˆes iniciais, fl, f1 e fu. Da equa¸c˜ao (4.17) tem-se:
N = ln(ε)
ln(1 − τ ) + 3 = −2.078ln(ε) + 3 (4.18)
Por exemplo, se desejar reduzir o intervalo para 1% do intervalo inicial, ε = 0.01. De (4.18) tem-se:
N = 9.6 + 3 = 12.6 = 13 (4.19)
ou seja, 13 ´e o n´umero de fun¸c˜oes avaliadas.
Pode-se usar N como crit´erio de convergˆencia para terminar o processo de itera¸c˜ao. A tabela (4.1) mostra a tolerˆancia relativa para o n´umero de fun¸c˜oes N avaliadas.
O fluxograma 4.1 mostra como o algoritmo da se¸c˜ao ´aurea deve ser im- plementado.
xl, fl, xu, fu, N τ = 0.381966 x1= (1 −τ )xl+τ xu f1=f (x1) x2=τ xl+ (1 −τ )xu f2=f (x2) k = 3 k = k + 1 k ≥ N f1> f2 xu=x2 fu=f2 xl=x1 fl=f1 fl=f2 xl=x2 fl=f1 xl=x1 x2=τ xl+ (1 −τ )xu x1= (1 −τ )xl+τ xu f2=f (x2) f1=f (x1) Fim Sim Sim N˜ao N˜ao Iniciar
x
lx
ux
1x
2x
3f
uf
lf
3f
1f
2Intervalo inicial
Depois do primeiro passo
Depois do segundo passo
N ε N ε N ε 3 1 9 0.05573 15 0.00311 4 0.61803 10 0.03444 16 0.00192 5 0.38197 11 0.02129 17 0.00119 6 0.23607 12 0.01316 18 0.00073 7 0.14590 13 0.00813 19 0.00045 8 0.09017 14 0.00503 20 0.00028
Tabela 4.1: Raz˜ao de convergˆencia para o m´etodo da se¸c˜ao ´aurea.
4.1.4
Otimiza¸c˜ao multi-dimensional: M´etodo Simplex
1. O m´etodo simplex b´asico
O m´etodo Simplex (Spendley et al., 1962) ´e um m´etodo seq¨uencial de otimiza¸c˜ao que pode ser empregado tanto para maximizar como minimizar uma resposta. Um simplex ´e uma figura geom´etrica em n dimens˜oes, cons- titu´ıdo de n + 1 pontos. Cada dimens˜ao corresponde a uma vari´avel a ser otimizada. Um simplex em duas dimens˜oes ´e um triˆangulo, em trˆes dimens˜oes ´e um tetraedro, e assim sucessivamente. O m´etodo pode ser estendido para maiores dimens˜oes, mas n˜ao ser´a f´acil a visualiza¸c˜ao do simplex. Apesar disto, o m´etodo Simplex pode ser aplicado, teoricamente, para a otimiza¸c˜ao de qualquer n´umero de vari´aveis.
O procedimento de otimiza¸c˜ao, no m´etodo Simplex, come¸ca pela escolha dos n + 1 pontos onde ser´a feita a avalia¸c˜ao da resposta. Na Figura 4.3 temos um exemplo do processo para o qual a otimiza¸c˜ao come¸ca com os pontos P0,
P1 e P2. Esses formam um triˆangulo e atrav´es da an´alise da figura, o ponto
P0 mostra ter a pior resposta dos trˆes. Uma conclus˜ao l´ogica ´e que a melhor
resposta est´a na dire¸c˜ao oposta a este ponto. Portanto, o simplex ´e refletido de modo que o ponto P3, oposto ao ponto P0, seja obtido. Os pontos P1,
P2 e P3 juntos formam um novo simplex. O procedimento ´e repetido suces-
sivamente, descartando-se a pior resposta. Portanto, o objetivo do m´etodo seq¨uencial Simplex ´e for¸car o simplex a mover-se para a regi˜ao de resposta ´otima. As decis˜oes requeridas para que isso aconte¸ca constituem as chamadas “regras” do procedimento simplex.
2. O m´etodo simplex modificado
Em 1965, Nelder e Mead propuseram modifica¸c˜oes no procedimento o- riginal de movimenta¸c˜ao do simplex b´asico, que permitiu obter um ponto ´otimo estacion´ario com suficiente precis˜ao e clareza, al´em de permitir um desenvolvimento mais r´apido do simplex em dire¸c˜ao ao ´otimo, originando o denominado M´etodo Simplex Modificado (MSM). A principal diferen¸ca do M´etodo Simplex Modificado em rela¸c˜ao ao m´etodo que lhe deu origem ´e que podem ser alterados o tamanho e a forma do simplex. As regras de movimenta¸c˜ao do m´etodo Simplex b´asico s˜ao v´alidas e a estas foram acrescidas, por Nelder e Mead, outras que caracterizam o m´etodo simplex modificado.
Considera-se inicialmente, a minimiza¸c˜ao de uma fun¸c˜ao de n vari´aveis, sem restri¸c˜oes. P0, P1, ..., Pn s˜ao os (n+1) pontos no espa¸co de n dimens˜oes
definindo o simplex.
Escreve-se yi para o valor da fun¸c˜ao em Pi, e define-se:
yh = max(yi)
yl = min(yi)
A seguir, ´e definido P como sendo o centr´oide dos pontos com i 6= h, e escrevemos [PiPj] como sendo a distˆancia de Pi at´e Pj. A cada est´agio do
P
0P
1P
2P
3P
4P
5x
1x
2processo Ph ´e trocado por um novo ponto, onde s˜ao usadas trˆes opera¸c˜oes:
reflex˜ao, contra¸c˜ao e expans˜ao.
A reflex˜ao de Ph ´e denotada por P∗, e suas coordenadas s˜ao definidas pela
rela¸c˜ao:
P∗ = (1 + α)P − αPh (4.20)
onde α ´e uma constante positiva chamada de coeficiente de reflex˜ao, de forma que:
[P∗P ] = α[P
hP ] (4.21)
Se y∗ est´a entre y
h e yl, ent˜ao Ph ´e trocado por P∗ e come¸ca novamente
com um novo simplex. Se y∗ < y
l, isto ´e, se a reflex˜ao definiu um novo m´ınimo, ent˜ao expande-se
P∗ para P∗∗ atrav´es da rela¸c˜ao:
P∗∗= γP∗+ (1 − γ)P (4.22)
onde γ ´e o coeficiente de expans˜ao, o qual ´e maior que 1, e ´e a raz˜ao entre as distˆancias [P∗∗P ] e [P∗P ].
Se y∗∗< y
l, troca-se Ph por P∗∗ e reinicia-se o processo. Mas se y∗∗> yl,
ent˜ao tem-se uma falha de expans˜ao, e troca-se Ph por P∗ antes de reiniciar.
Se na reflex˜ao de P para P∗ encontrar y∗ > y
i para todo i 6= h, ou seja, se
trocando P por P∗ tornou y∗ o ponto de m´aximo, ent˜ao, define-se um novo
Ph no lugar do antigo Ph ou de P∗, qual dos dois tiver o valor menor de y.
Em seguida calcula-se P∗∗ a partir da equa¸c˜ao:
P∗∗= βP
onde β ´e o coeficiente de contra¸c˜ao que est´a entre 0 e 1 e representa a raz˜ao entre as distˆancias [P∗∗P ] e [P P ]. Aceita-se P∗∗ no lugar de P
h e reinicia,
a n˜ao ser que y∗∗ > min(y
h, y∗), ou seja, o ponto contra´ıdo ´e pior que o
melhor entre Ph e P∗. Para tal falha de contra¸c˜ao, troca-se todos os Pi por
(Pi+ Pl)/2 e reinicia o processo (Nelder e Mead, 1965).
Como crit´erio de parada, tem-se a restri¸c˜ao
rX
(yi− y)2/n < ε (4.24)
onde ε ´e um valor pequeno, maior que zero, previamente definido. O m´etodo completo ´e dado no fluxograma (4.4).