Escolar Documentos
Profissional Documentos
Cultura Documentos
NÃO LINEARES
RESUMO
Os algoritmos genéticos utilizam conceitos provenientes do princípio de evolução natural para abordar uma série
ampla de problemas, em especial de otimização. Robustos, genéricos e facilmente adaptáveis, consistem de uma
técnica amplamente estudada e utilizada em diversas áreas. O cálculo de raízes de equações não lineares é um
problema muito estudado em matemática computacional e, dentro de certas condições, bastante mal condicionado.
Isso faz com que a implementação de algoritmos numéricos para determinar as raízes de equações algébricas e
transcendentes traga consigo grandes problemas como a instabilidade numérica e cancelamento catastrófico, dentre
outros. Além disso, os processo iterativos tradicionais não podem garantir a convergência para um problema em
geral. O objetivo principal deste trabalho é estudar o comportamento dos algoritmos genéticos e aplicá-lo ao cálculo
de raízes de equações não lineares.
1. INTRODUÇÃO
Otimização, num sentido amplo significa melhorar o que já existe, ou seja, projetar o
novo com mais eficiência e menor custo. A própria evolução da espécie pode ser vista como um
processo de otimização: ao longo do tempo, os seres vivos se tornam cada vez mais adaptados a
um meio ambiente em constante mudança. Atualmente, existe uma tendência de buscar modelos
encontrados na natureza para representar métodos de otimização (Haupt, 1998). Tudo indica que
os processos naturais relacionados aos seres vivos são bem concebidos e adaptam-se ao mundo
científico. Algoritmos Genéticos fazem parte de uma família de modelos computacionais
inspirados na evolução: algoritmos evolutivos – simulam processos naturais aplicando a soluções
de problemas reais – surgidos então como novas alternativas para resolução de problemas
complexos.
Processo de otimização consiste em melhorar a performance, com o objetivo de alcançar
um ou vários pontos ótimos. É desta forma que funcionam os Algoritmos Genéticos (AGs). Eles
combinam a sobrevivência do mais adaptado, com uma troca de informações ao mesmo tempo
aleatória e estruturada. Os AGs trabalham seguindo as seguintes etapas, que serão detalhadas na
próxima seção. Primeiramente, é gerada uma população de palavras ou cromossomos (strings),
que são seqüências de códigos, geralmente de forma binária, que representam determinados
parâmetros. Durante o processo evolutivo esta população é avaliada e uma porcentagem será
mantida podendo ainda sofrer modificações em suas características fundamentais através de
cruzamento e/ou mutação, gerando descendentes para a próxima geração. Este processo,
chamado de reprodução é repetido até que uma solução satisfatória seja encontrada. Então por
este processo de seleção obtém-se os indivíduos melhores adaptados que neste caso seriam os
valores que fornecem os pontos ótimos. Por isso podemos classificá-los como métodos
randômicos de otimização, diferenciando das técnicas clássicas de otimização que podem
apresentar algumas dificuldades numéricas e problema de robustez relacionadas com
continuidade das funções, multimodalidade, existência de máximos e mínimos locais.
Neste trabalho é apresentada uma aplicação do algoritmo genético para o cálculo de raízes
de equações não lineares. Para isto, o problema de achar as raízes deve ser transformado num
problema equivalente de máximos e mínimos, como mostrado na seção 3.
2. ALGORITMO GENÉTICO
cromossomo X1 X2 X3 X4 ... Xn
gene 1 0 1 1 0
alelo 1
Cromossomo 101101011001
x y
Algoritmos genéticos são algoritmos iterativos, e a cada iteração a população é
modificada, usando as melhores características dos elementos da geração anterior e submetendo-
as a três tipos básicos de operadores para produzir melhores resultados (Braga, 1998). Estes
operadores são denominados: Seleção, Cruzamento e Mutação.
Segundo Bittencourt (1998), O Algoritmo Genético básico realiza as seguintes funções:
inicializa a população de cromossomos (soluções);
avalia cada cromossomo da população;
cria novos cromossomos a partir da população atual (aplica mutação e cruzamento,
substituindo os ascendentes pelos descendentes);
termina, se o critério de fim for alcançado, se não, reinicializa.
Definir:
Função de Custo: F(xi)
Variáveis de Projeto: (xi)
Criar População
Avaliar custo
Seleção
Cruzamento
Mutação
Teste de convergência
Fim
A seguir é gerada uma população inicial de seis cromossomos obtida aleatoriamente, onde
cada gene é um vetor binário de m bits, sendo m em função da precisão exigida (nesse caso 10-2)
e da amplitude do intervalo que contém os pontos desejados (I = 9).
C1 = 1010010000
C2 = 0010100001
C3 = 1000010001
C4 = 0010010101
C5 = 1000010101
C6 = 1001101110
2.1 Seleção
É um processo que será atribuído às cadeias que possuem o maior valor objetivo e,
portanto uma probabilidade mais elevada de contribuir à geração seguinte, criando pelo menos
um descendente. Quanto maior o valor da função objetivo, maior são as chances do indivíduo
sobreviver no ambiente e reproduzir-se passando parte de seu material genético a gerações
posteriores (Braga, 1998).
Usando a probabilidade, expressa pela equação (2.1), tem-se que se o individuo for de
baixa adequabilidade, tem alta probabilidade de desaparecer da população, caso contrário, os
indivíduos terão grandes chances de permanecer na população. Sendo x um vetor com os valores
da população inicial.
f ( x)
Pi = , sendo F ( x) = f ( xi ) (2.1)
F ( x)
Para se calcular o valor da função de adaptação f(x), deve-se converter a seqüência binária
(base 2) para base 10, ou seja, deve-se decodificar um cromossomo, dadas pelas equações (2.2) e
(2.3).
Feito isso, temos que calcular o valor de x e y reais, dentro da região viável, com a
seguinte equação:
bi − a i
x = ai + x
2m − 1
(2.4)
b −a
y = ai + y i m i
2 −1
sendo:
Com a população inicial já definida, o próximo passo será o cálculo da função objetivo
(adaptação).
Utilizando o exemplo anterior, será mostrado o cálculo da função objetivo do primeiro
cromossomo criado para a população inicial (C1).
Seja C1 = 1010010000
m −1
x= bi × 2 i = 1 x 29 + 0 x 28 + 1 x 27 + 0 x 26 +0 x 25 + 1 x 24 + 0 x 23 + 0 x 22 + 0 x 21 + 0 x 20
i =0
m −1
x= bi × 2 i =
i =0
bi − ai
x = ai + x
2m − 1
9−0
x = 0 + 341 = 5.7713
210 − 1
e o valor da função é:
Os resultados para cada cromossomo da população inicial estão escritos no quadro abaixo:
Cromossomos x f(x)
1010010000 5.7713 -5.7099
0010100001 1.4164 15.8734
1000010001 4.6540 0.2334
0010010101 1.3109 9.2224
1000010101 4.6891 0.0372
1001101110 5.4721 3.9541
f (x) 23.6106
A função f(x) é o árbitro final que decide sobre a vida ou morte de cada cromossomo. O
mecanismo para seleção das melhores cadeias, ou seja, as mais adaptadas, são definidas pelo uso
das probabilidades proporcionais, dadas pela equação (2.1).
p1 = -0.2418
p2 = 0.6723
p3 = 0.0099
p4 = 0.3906
p5 = 0.0016
p6 = 0.1675
sendo p1 + p2 + p3 + p4 + p5 + p6 = 1,00
i
qi = Pj (2.5)
j =1
q1 = p1 = -0.2418
q2 = p1 + p2 = -0.2418 + 0.6723 = 0.4305
q3 = p1 + p2 + p3 = -0.2418 + 0.6723 + 0.0099 = 0.4403
q4 = p1 + p2 + p3 + p4 = -0.2418 + 0.6723 + 0.0099 + 0.3906 = 0.8310
q5 = p1 + p2 + p3 + p4 + p5 = -0.2418 + 0.6723 + 0.0099 + 0.3906 + 0.0016 = 0.8325
q6 = p1 + p2 + p3 + p4 + p5 + p6 = -0.2418 + 0.6723 + 0.0099 + 0.3906 + 0.0016 + 0.1675= 1,0000
A seguir deve-se selecionar as cadeias que irão contribuir para a geração seguinte. Esta
seleção considera um conjunto de números r, escolhidos randomicamente entre [0,1], em
quantidade igual ao número de cadeias.
A análise é feita através das seguintes opções:
Se r < q1, então se seleciona o 1º cromossomo (C1).
Se r > q1, então se passa para o subseqüente e faz a análise novamente.
Vale ressaltar que alguns cromossomos poderão ser selecionados mais de uma vez, ou
seja, os melhores serão copiados mais vezes, enquanto que outros irão morrer.
Utilizando o mesmo exemplo dado, considere que foram gerados os seguintes números
randômicos:
r1 = 0.1957
r2 = 0.2632
r3 = 0.7138
r4 = 0.9776
r5 = 0.6371
r6 = 0.5459
então seleciona C2
então seleciona C2
então seleciona C4
então seleciona C6
então seleciona C4
r6 = 0.5459 > q1 = -0.2418 r6 = 0.5459 > q2 = 0.4305 r6 = 0.5459 > q3 = 0.4403 r6 =
0.5459 < q4 = 0.8310
então seleciona C6
2.2 Cruzamento
r1 = 0,27 C1’> pc
r2 = 0,20 C2’< pc
r3 = 0,15 C3’< pc
r4 = 0,17 C4’< pc
r5 = 0,19 C5’< pc
r6 = 0,50 C6’> pc
k = 1 + 0,45 [ ( 10 - 1 ) - 1 ] = 4,6
C2’ - 0010100001
C3’ - 0010010101
C2” - 0010000001
C3” - 0010110101
e
C4’ - 1001101110
C5’ - 0010010101
C4” - 0010001110
C5” - 1001110101
C1” - 0010100001
C2” - 0010000001
C3” - 0010110101
C4” - 0010001110
C5” - 1001110101
C6’ - 0010010101
2.3 Mutação
C1” - 0010100001
C2” - 0010000001
C3” - 0010110101
C4” - 0010001110
C5” - 1001110101
C6’ - 0010010101
C1” - 0000100001
C2” - 0010010001
C3” - 0010110101
C4” - 0010001110
C5” - 1001010101
C6’ - 0010010101
Após a aplicação dos três operadores, encerra-se o ciclo da primeira geração. Assim, é
interessante observar como está ocorrendo a evolução dos cromossomos da população inicial.
Cromossomos x f(x)
C1” - 0000100001 0.2903 15.7162
C2” - 0010010001 1.2757 6.6126
C3” - 0010110101 1.5924 19.9158
C4” - 0010001110 1.2493 4.5975
C5” - 1001010101 5.2522 8.1512
C6’ - 0010010101 1.3109 9.2224
f (x) 64.2157
2.4 Finalização
Uma observação deve ser feita. Como a maioria dos códigos computacionais para
algoritmos genéticos costuma maximizar funções e caso de problemas de minimizar uma função,
a função objetiva pode ser reescrita como:
O cálculo das raízes de equações não lineares, em particular, a determinação dos zeros de
polinômios é um dos problemas mais antigos da matemática numérica. Dentro de certas
condições, o problema pode se apresentar como mal condicionado. Isto faz com que a
implementação de algoritmos numéricos para determinar as raízes de equações algébricas e
transcendentes traga consigo grandes problemas, como instabilidade numérica e cancelamento
catastrófico, dentre outros (Lopes et al, 1999). Por isso, neste trabalho, propõe-se uma nova
alternativa para a resolução dessa classe de problemas.
Teorema: Sejam f , f 'e f " , funções contínuas num intervalo [a, b], onde existe uma raiz
ξ . Supor que f '( x) ≠ 0 para x ∈ [a, b]. Então existe um intervalo [a , b ] ⊂ [a, b] , contendo a
raiz ξ , tal que se x0 ∈ [a, b ] , a seqüência {xn} gerada pelo processo iterativo
f ( xn )
x n +1 = x n −
f '( x n )
converge para a raiz.
4. RESULTADOS NUMÉRICOS
A título de ilustração, será testado duas funções utilizando os dois métodos (MNR e AG):
Exemplo 1: Seja f(x) = e-x - x
Newton Raphson:
Considerando que f(x) possui uma raíz no intervalo [0,1], procura-se uma aproximação
usando x0 = 0.5 e = 0.006, apresenta uma aproximação de x = 0.5671 com 2 iterações.
Sendo,
f ′( x) = −e − x − 1
tem-se o processo iterativo
f ( xn ) e−x − x
x n +1 = x n − x n +1 = x n + − x
f '( x n ) e +1
assim,
e − x0 − x 0
x1 = x 0 + = 0.5663 |x1 - x0| = 0.0663 > 0.006
e − x0 + 1
e − x1 − x
x 2 = x1 + − x1 1 = 0.5671 |x2 – x1| = 0.0008 < 0.006
e +1
Algoritmo Genético:
Newton Raphson:
Esse é um exemplo em que o MNR tem problema. De acordo com o método montou-se
uma tabela de 3 linhas e 7 colunas. Na primeira linha temos a condição inicial xo. Na segunda
linha o resultado r que ele apresenta e na terceira linha a quantidade de iteração n.
Algoritmo Genético:
Figura 4.1 Gráfico da função f(x). Figura 4.2 Gráfico da função objetiva g(x) = -
|f(x)|.
Figura 4.3 População inicial. Figura 4.4 Seleção dos cromossomos melhores
adaptados.
Figura 4.5 Melhor solução.
Para melhor sistematização será apresentado mais duas equações utilizando o AG.
Figura 4.1 Gráfico da função f(x). Figura 4.2 Gráfico da função objetiva g(x) = -
|f(x)|.
Figura 4.3 População inicial. Figura 4.4 Seleção dos cromossomos melhores
adaptados.
Na figura 4.6 a linha vermelha representa a melhor solução e a linha amarela representa a
evolução da população.
Figura 4.3 População inicial. Figura 4.4 Seleção dos cromossomos melhores
adaptados.
iv) O fato também dos AGs não utilizarem funções de derivação é uma vantagem,
pois evita cancelamento catastrófico.
HAUPT, Randy L. e Haupt Sue E. Practical Genetic Algorithm. New York: John Wiley & Sons,
Inc., 2002.
HOUCK, J.A. Joines e M.G. Kay. A Genetic Algorithm for Function Optimization:
a Matlab Implementation. NCSU-IE Technical Report,1995.