Escolar Documentos
Profissional Documentos
Cultura Documentos
3.1. Introdução
O domínio de aplicação da simulação digital à optimização define-se pela complexidade das funções
objectivas, cujo tratamento, pelos métodos analíticos, é impossível ou muito trabalhoso.
Frequentemente, usa-se, também a simulação digital em certas etapas da optimização por métodos
analiticos, como por exemplo, na programação dinâmica.
Como regra, a simulação digital aplica-se aos métodos de programação não linear que se baseiam em
métodos numéricos de optimização. Actualmente são conhecidos numerosos métodos de
programação não linear; no entanto, é difícil dizer qual deles o melhor. Trata-se de um caso especial
de optimização, em que quase cada problema a optimizar pode ser resolvido com eficiência por um
método apropriado e antes de o aplicar é impossível afirmar se é mais eficiente do que outro ou não.
coordenadas ( X (0)
1 , X 2 ;..., X n ) a que se chama passo. É evidente, que no caso da procura do
(0) (0)
máximo de uma função objectiva, o passo realizado é racional se levar ao melhoramento da função
objectiva, i.e.
RX 10 X 10 ; ; X n0 X n0 RX 10 ; ; X n0 (3.1)
Caso contrário, a passagem não tem sentido. A figura 3.1 apresenta alguns caminhos de procura do
máximo duma função bidimensional. Como se vê, nem todos os caminhos são óptimos para
conseguir o extremo da função. Qual é então, o caminho óptimo? É o que, a partir do ponto inicial
leve ao extremo da função, no menor número de passos, pois, para cada um dos realizados, é
necessário calcular a função objectiva e verificar a condição (3.1). Isso poderia conseguir
seleccionando a direcção óptima e o tamanho óptimo do passo. Como se faz? Em geral, o tamanho
e a direcção do passo é função das coordenadas do ponto a partir da qual se faz a passagem; no
entanto, há vários modos de selecionar o passo, os quais se poderiam juntar em três grupos:
a. Técnicas de busca directa;
b. Técnicas de gradiente;
c. Técnicas de busca aleatória.
Figura 3.1: Representação esquemática duma função bidimensional e os caminhos possíveis para o
seu óptimo, Ro, a partir do ponto inicial A.
As técnicas de busca directa baseiam-se na exploração de um certo domínio de variação das variáveis
do processo, através da realização de passos, cujo sentido, bem como a dimensão, são anteriormente
e arbitrariamente determinados e independentes do ponto em jogo, comparando os valores da
função objectiva segundo a condição (3.1). Em geral, a essência das técnicas deste grupo consiste
em:
- Elaborar o algoritmo de variação de sentidos dos passos .
- Escolher o tamanho dos passos. Não há recomendações gerais para a selecção do tamanho dos
passos, no entanto, ele não deve ser demasiado grande, pois pode passar extremos sem os detectar
ou localizá-los com erros consideráveis; por outro lado, um passo demasiado pequeno aumenta,
considerávelmente, o número total de passos para atingir o extremo, o que também não é desejável.
- Explorar todo o domínio, consoante o algoritmo elaborado de variação de sentido com os passos
determinados,
Iniciamos o nosso estudo pela procura de extremos de funções de uma só variável. É evidente que,
para funções deste tipo, não é necessário elaborar o algoritmo de variação de sentido dos passos,
dado que, a função, tem um só sentido. Por outro lado, todas as técnicas conhecidas permitem
localizar o extremo dentro de um certo intervalo [a,b] em que a função é unimodal. Se se esperarem
vários extremos dentro do intervalo em consideração faz-se a divisão do intervalo inicial em
subintervalos, de tal maneira que se assegure a detecção de todos os extremos e ao mesmo tempo se
opere com subintervalos unimodais. Sem fundamentar referem-se três técnicas de optimização duma
função objectiva com uma só variável.
d (b a)2 2
ba
ln
s2 d 1
ln 2
s – nº de passos (calculado)
em que, d é o zero absoluto de localização do extremo, depois do cálculo da função objectiva S
vezes. Nos passos posteriores, a função objectiva calcula-se só em 2 pontos do passo anterior. O
cálculo da função objectiva é a parte mais trabalhosa dessa técnica.
Consiste em:
- Dividir em 3 partes o intervalo inicial [a,b], dentro do qual se pretende encontrar o extremo, de tal
maneira que, os dois subintervalos, ligados com os pontos fronteiros a e b, sejam iguais a
Li 0.382(a b)
- Calcular, nos 4 pontos obtidos, incluindo os pontos fronteiros, a função objectiva, e, entre eles,
seleccionar o ponto com o melhor valor da função objectiva.
- Determinar o novo intervalo [a,b] em torno do ponto óptimo obtido, que consta dos dois
subintervalos, dispostos de ambos os lados do ponto óptimo.
- Repetir as três primeiras etapas até se atingir a precisão desejada que está em função do número de
cálculos da função objectiva e se define pela fórmula
d
d 0.5(b a)(0.618) s 3 (0.618) s 3
0.5(b a)
K 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Fk 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2589 4185
X 2 X1 Fs 3
Se o passo não teve êxito, i.e. R(X1)<R(a), procurando o máximo
X 3 X 1 Fs 4
executar o passo seguinte
- Prosseguir o cálculo a partir do último ponto com a diminuição contínua do passo, de acordo com
a expressão genérica do passo i:
i Fs 2
Se o último passo i 1tiver êxito i.e. R(Xi+1) < R(Xi) procurando o mínimo, então o passo seguinte
que se faz a partir do ponto Xi+1
será
X i 2 X i 1 i 1
caso contrário será
X i 2 X i i 1
Continuar o cálculo até a utilização de todos os números de Fibonacci de acordo com a sequência
Fs 2 i 0,1, , S 3
Esta técnica conduz a um erro absoluto
ba
d
Fs
Comparando as três técnicas tratadas conclui-se que, a técnica de Fibonacci é mais eficiente, pois, o
mesmo número de cálculos da função objectiva leva a um erro absoluto menor do que os dois
primeiros. Por exemplo: para o intervalo [a,b]=1 e calculando 21 vezes a função objectiva obtemos,
para a técnica de 5 pontos,
211
d 2 2
2 11 0.000488
si 1 2 3 4 5
yi 5 6.25 5 1.25 -5
Etapa 2
- Selecção do novo intervalo de pesquisa [0; 0.5]
0.5 0
2 0.125
4
- Cálculo dos valores da função objectiva em cada ponto
si 1 6 2 7 3
Etapa 3
- Selecção do novo intervalo de pesquisa [0.125; 0.375]
0.375 0.125
3 0.0625
4
- Cálculo dos valores da função objectiva em cada ponto
si 6 8 2 9 7
Etapa 4
- Selecção do novo intervalo de pesquisa [0.1875;0.3125]
0.3125 0.1875
4 0.03125
4
- Cálculo dos valores da função objectiva em cada ponto
si 8 10 2 11 9
Etapa 5
- Selecção do novo intervalo de pesquisa [0.21875; 0.28125]
0.28125 0.21875
5 0.015625
4
- Cálculo dos valores da função objectiva em cada ponto
si 10 12 2 13 11
Etapa 6
- Selecção do novo intervalo de pesquisa [0.23438; 0.26563]
0.26563 0.23438
6 0.0078125
4
- Cálculo dos valores da função objectiva em cada ponto
si 12 14 2 15 13
Etapa 7
- Selecção do novo intervalo de pesquisa [0.24219; 0.25781]
0.25781 0.24219
7 0.003905
4
- Cálculo dos valores da função objectiva em cada ponto
si 14 16 2 17 15
Etapa 8
- Selecção do novo intervalo de pesquisa [0.24609; 0.25391]
0.25391 0.24609
8 0.001955
4
- Cálculo dos valores da função objectiva em cada ponto
si 16 18 2 19 17
si 1 2 3 4
xi 0 0.382 0.618 1
yi 5 5.902 3.541 -5
Etapa 2
- Selecção do novo intervalo de pesquisa [0; 0.618] L2 = 0.382(0.618) = 0.236
P1 = L2 + a = 0.236 + 0 = 0.236
P2 = b – L2 = 0.618 – 0.236 = 0.382
si 1 5 2 3
Etapa 3
- Selecção do novo intervalo de pesquisa [0; 0.382] L3 = 0.382(0.382-0) = 0.1459
- Cálculo dos valores da função objectiva em cada ponto
si 1 6 5 2
Etapa 4
- Selecção do novo intervalo de pesquisa [0.1459; 0.382] L4 = 0.382(0.382-0.1459) = 0.090
- Cálculo dos valores da função objectiva em cada ponto
si 6 5 7 2
si 6 8 5 7
Etapa 6
- Selecção do novo intervalo de pesquisa [0.2017; 0.292] L6 = 0.382(0.292-0.2017) = 0.0344
- Cálculo dos valores da função objectiva em cada ponto
si 8 5 9 7
Etapa 7
- Selecção do novo intervalo de pesquisa [0.236; 0.292] L7 = 0.382(0.292-0.236) = 0.0213
si 5 9 10 7
Etapa 8
- Selecção do novo intervalo de pesquisa [0.236; 0.2707] L8 = 0.382(0.2707-0.236) = 0.0132
- Cálculo dos valores da função objectiva em cada ponto
si 5 11 9 10
Etapa 9
- Selecção do novo intervalo de pesquisa [0.236; 0.2576] L9 = 0.382(0.2576-0.236) = 0.008136
- Cálculo dos valores da função objectiva em cada ponto
si 5 12 11 9
Etapa 10
- Selecção do novo intervalo de pesquisa [0.2443; 0.2576] L10 = 0.382(0.2576-0.2443) = 0.00504
- Cálculo dos valores da função objectiva em cada ponto
si 12 11 13 9
Etapa 11
- Selecção do novo intervalo de pesquisa [0.2443; 0.2525] L11 = 0.382(0.2525-0.2443) = 0.00313
- Cálculo dos valores da função objectiva em cada ponto
si 12 14 11 13
Etapa 12
- Selecção do novo intervalo de pesquisa [0.2474; 0.2525] L12 = 0.382(0.2525-0.2474) = 0.00195
- Cálculo dos valores da função objectiva em cada ponto
si 14 11 15 13
Olhando para x(s=11) e x(s=15) vê-se que eles têm o mesmo valor de yi, quando assim acontece,
escolhe-se arbitrariamente um dos pontos.
Etapa 13
Escolhamos arbitrariamente o ponto x(s=15)
- Selecção do novo intervalo de pesquisa [0.2494; 0.2525] L12 = 0.382(0.2525-0.2494) = 0.00118
- Cálculo dos valores da função objectiva em cada ponto
si 11 15 16 13
Avaliando os valores da função objectiva calculados vemos que o óptimo atinge-se para x(s=11) ou
x(s=15), onde o valor de y = 6.24999 ≈ 6.25.
Solução:
yopt = 6.25
xopt = 0.2494 ou xopt = 0.2506
b. Técnica de Fibonacci
x Є [0,1]
ε = 0.001
b a 1 0
N 1000
d 0.001
Assim, para N = 1000 e da tabela dos valores de Fibonacci, o respectivo número de Fibonacci será:
Fs-1 < N < Fs
Fs-1 = 987 (s = 15)
Fs = 1597 (s = 16)
s = 16
ou seja: 987 < N < 1597
Portanto, para a técnica de Fibonacci será necessário realizar 16 teste para se alcançar o óptimo
requerido.
O passo mínimo de busca do extremo é
b a 1 0
0.000626
Fs 1597
Cálculo do valor da função objectiva no ponto “a”
(0). a = 0
y(a) = y(0) = 5
(1). X1 = a + ΔFs-2 = 0 + 0.000626*610 = 0.382
y(X1) = y(0.382) = 5.90
O valor da função melhorou, ou seja, demos um passo com êxito
Vamos aplicar a técnica de Fibonacci, para encontrar o máximo da função R = 5 + 10x1 – 20x12
x Є [0,1]
ε = 0.001
b a 1 0
N 1000
d 0.001
Assim, para N = 1000 e da tabela dos valores de Fibonacci, o respectivo número de Fibonacci será:
Fs-1 < N < Fs
Fs-1 = 987 (s = 15)
Fs = 1597 (s = 16)
s = 16
ou seja: 987 < N < 1597
Portanto, para a técnica de Fibonacci será necessário realizar 16 teste para se alcançar o óptimo
requerido.
O passo mínimo de busca do extremo é
b a 1 0
0.000626
Fs 1597
Cálculo do valor da função objectiva no ponto “a”
(0). a = X1,1 = 0
R(a) = R(X1,1) = y(0) = 5
(1). X1,2 = a + ΔFs-2 = 0 + 0.000626*610 = 0.382
R(X1,2) = y(0.382) = 5.90
O valor da função melhorou, ou seja, demos um passo com êxito
Solução final
X1opt ≈ 0.25
X2opt = 0.235
R(X1opt, X2opt) = 7.078
um máximo. Na equação (a) Xj,k+1 é o valor da variável no passo (k+1) Xj,k é o mesmo mas no passo
R
anterior, h é o parâmetro do passo, e é a derivada da função objectiva em ordem à variação Xj
X jp
no ponto de mudança de direcção, p, incluindo o seu sinal.
3. Precisar o extremo através da técnica dada no ponto 2, mas com o passo dividido por dois,
iniciando o deslocamento a partir do último ponto em que não se respeita qualquer uma das
condições anteriores anteriores, mudando o sentido do deslocamento. Continuar da mesma maneira
até se atingir a precisão desejada. Como se vê, a precisão do extremo faz-se do mesmo modo que na
técnica de Gauss-Zeidel.
4. No ponto do extremo ao longo da variável Xj calcular todas as derivadas, com excepção, da dada
em ordem a Xj e seleccionar a maior derivada. Repetir os pontos 2 e 3 até se atingir o extremo para
todas as variáveis e que se confirma mediante a satisfação da condição:
2
n R 2R 2R 2R
X d X 2 X 2 2
i ,0 1, 0 2, 0 2, 0
R
x1,11 x1,9 h ( x1,9 ) 0.40 0.2 * 0.28 0.344
x1
R(x1,11; x2,11) = R(0.344; 0.6) = 25.3346 ; o valor da FO melhorou
R
x1,12 x1,11 h ( x1,9 ) 0.344 0.2 * 0.28 0.288
X1
R(x1,12; x2,12) = R(0.288; 0.6) = 25.3353; o valor da FO melhorou
2
2 R
1 x = 0.0061 < d
i ,0
Tabela de resultados
2
R R 2 R
i x1 x2
x1 x2
R(xi) 1 x
i ,0
1 0 1 1 -0.4 25.100 1.1600 > d
2 0.2 1 - - 25.236 (m) -
3 0.4 1 -0.28 -0.4 25.244 (m) 0.2384 > d
4 0.6 1 - - 25.124 (p) -
5 0.4 0.92 - - 25.273 (m) -
6 0.4 0.84 - - 25.295 (m) -
7 0.4 0.76 - - 25.311 (m) -
8 0.4 0.68 - - 25.321 (m) -
9 0.4 0.60 -0.28 0.0 25.324 (m) 0.0784 > d
10 0.4 0.52 - - 25.321 (p) -
11 0.344 0.60 - - 25.3346(m) -
12 0.288 0.60 0.0784 0.0 25.3353(m) 0.0061 < d
Solução
x1opt = x1,12 = 0.288
x2opt = x2,12 = 0.60
R(x1opt, x2opt ) = 25.3353
Solução
x1opt = x1,9 = 0.286
x2opt = x2,9 = 0.238
R(x1opt, x2opt ) = 7.095
Solução
x1opt = x1,29 = 0.285
x2opt = x2,29 = 0.238
R(x1opt, x2opt) =7.0954