Anais do I WORCAP, INPE, São José dos Campos, 25 de Outubro de 2001, p. 42 - 44
Algoritmo Genético Híbrido como Solução para Problemas Numéricos
Felipe Leonardo Lôbo Medeiros*, 1, Lamartine Nogueira Frutuoso Guimarães**, 2
(1)Inteligência Artificial
Laboratório Associado de Computação e Matemática Aplicada
Instituto Nacional de Pesquisas Espaciais (INPE)
(2)Divisão de Energia Nuclear
Instituto de Estudos Avançados (IEAv)
(*)Mestrado, Bolsa CAPES, e-mail: [email protected] (**) Orientador e-mail:
[email protected]
Resumo
Este trabalho propõe a utilização da técnica de Inteligência Artificial denominada algoritmo genético
híbrido, para solucionar o problema da determinação de estados estacionários de sistemas dinâmicos
lineares e não lineares, em função de parâmetros do próprio sistema. O desenvolvimento dos métodos
mutação heurística, mutação heurística não uniforme e epidemia também é proposto. O problema que se
quer resolver consiste em solucionar sistemas lineares e não lineares do tipo AX + B = 0, encontrando o
vetor X solução do sistema. Problemas deste tipo normalmente apresentam comportamento multi-modal,
com alto índice de mínimos e máximos locais. Algoritmos genéticos têm sido aplicados com eficiência a
problemas com tal comportamento. Bons resultados foram obtidos a partir de testes com dois modelos
dinâmicos de um gerador de vapor, dados por sistemas de ordem três e cinco da forma AX + B = 0.
Palavras-Chave: estados estacionários, sistemas dinâmicos, algoritmo genético híbrido, resultados
1-Introdução
As simulações de muitos artefatos científicos e de engenharia, são realizadas através de
representações matemáticas destes, dadas por sistemas de equações diferenciais ordinárias. Tais sistemas
necessitam de estados estacionários bem determinados, a partir dos quais, efeitos de transitórios possam
ser testados e avaliados. A determinação do estado estacionário de um sistema dinâmico linear ou não
linear baseia-se em solucionar o sistema matricial dado por AX + B = 0, o qual contém a dinâmica do
processo. Porém as soluções exatas ou aproximadas de diversos sistemas são impossíveis para exemplos
realísticos, devido ao tamanho do sistema e à complexidade de modelos não lineares ([3]). A utilização de
algoritmos genéticos surge como solução para tais problemas, pois têm sido aplicados com eficiência na
determinação de soluções aproximadas de sistemas de elevada ordem, e de sistemas que apresentam
comportamento multi-modal e/ou são não diferenciáveis ([5]).
2-Algoritmo Genético
Basicamente, algoritmo genético é um método de busca global que simula a teoria da evolução para
solucionar um determinado problema. Consiste em simular a evolução de uma população de indivíduos,
onde cada indivíduo representa uma possível solução do problema. Inicialmente, uma população é
formada através da criação aleatória dos seus indivíduos. Cada indivíduo é avaliado e recebe um valor
denominado valor de aptidão. O valor de aptidão representa o quão próxima da solução, está a possível
solução representada pelo indivíduo. Baseados nos valores de aptidão, são selecionados os indivíduos que
serão utilizados na etapa de reprodução. Na reprodução, novos indivíduos são obtidos a partir da
aplicação de operadores genéticos nos indivíduos selecionados. As gerações são criadas até que uma
condição de parada seja satisfeita. Uma condição de parada pode ser alcançar um determinado valor de
aptidão ou um número máximo de gerações. Um algoritmo genético híbrido será utilizado e elaborado
através da união de um algoritmo genético convencional com um método de busca local. Este método é
uma solução para os problemas multi-modais e consiste em dividir o espaço de busca em NP regiões, e
fazer com que um mesmo número de populações explore cada uma destas regiões (semelhante ao método
de formação de nichos [4]).
3-Metodologia
A aplicação de algoritmo genético exige a modelagem do problema ao qual será aplicado. A
modelagem consiste na especificação do indivíduo, função de aptidão, população ou populações, seleção,
operadores genéticos e métodos auxiliares como o método epidemia.
3.1-Indivíduo
Anais do I WORCAP, INPE, São José dos Campos, 25 de Outubro de 2001, p. 42 - 44
A obtenção do estado estacionário de um sistema dinâmico linear ou não linear baseia-se em
solucionar o sistema apresentado na forma matricial AX + B = 0, encontrando o vetor X solução do
sistema. Para o problema proposto, cada indivíduo representa um vetor X e é composto por uma estrutura
formada por um vetor de números reais e por um valor de aptidão. A representação segue as mesmas
características da representação real proposta por Michalewicz ([3]). O vetor é formado por N números
reais, e representa todos os componentes do vetor X, onde N é a ordem do sistema. O esquema de um
indivíduo indi é apresentado :
x2
x1
...
xN
Figura 1 – representação dos componentes do vetor X representado pelo indivíduo.
Valor de aptidão de indi = Fapi (indi)
Onde : indi representa um indivíduo. Os componentes xj , j=1, ..., N, representam os componentes do
vetor X, que é representado pelo indivíduo indi (i = 1, ..., TP). TP é o tamanho da população.
3.2-Populações
Um número NP de populações é utilizado com o objetivo de explorar NP regiões do espaço de busca.
Cada componente do indivíduo representa um parâmetro do sistema dinâmico, portanto possui um
domínio finito, isto é, um intervalo fechado de variação de valores. A divisão do espaço de busca consiste
em dividir o domínio de um componente xj (j = 1 , ... , N) do indivíduo em NP regiões. O componente
escolhido para pivô da divisão, é o componente do vetor X (representado pelo indivíduo) que possui o
maior domínio ([LI , LS]).
xk componente que apresenta o maior domínio [LI , LS].
R1 – [LI , ls1]
R2 – [li1 , ls2]
R3 – [li2 , ls3]
...
RNP – [liNP-1 ,LS ]
P2
P3
...
Figura 2 – representação da divisão do espaço de busca
P1
PNP
Onde : Ri representam cada região do espaço de busca. Pi (i = 1, ..., NP) representam as populações.
LI e LS representam os limites iniciais inferior e superior do domínio do componente xk. lir e lsr (r = 1, ...,
NP -1) representam os limites inferiores e superiores das regiões do espaço de busca.
3.3-Função de Aptidão
A função de aptidão elaborada para o problema proposto, é baseada na própria equação do sistema. A
possível solução representada por um indivíduo é a solução do sistema quando todas as componentes do
vetor S (onde S = AX + B) forem iguais a zero. A aproximação do vetor X representada pelo indivíduo é
utilizada na equação do sistema. O vetor S sofre uma interpretação pois, se cada componente do vetor S
se aproxima de zero indica que o vetor X, representado pelo indivíduo, se aproxima da solução do
sistema. Então, quanto menor o valor de aptidão, mais apto é o indivíduo.
Fapi (indi) =
n
∑
j =1
s
j
, onde S = AX + B e n é a ordem do sistema. Fapi (indi) representa o
valor de aptidão do indivíduo indi (i = 1, ..., TP).
S = [ s1
s2
s3
...
sn ]
3.4-Seleção
O método elitismo está sendo utilizado. Este método força o algoritmo genético a reter algum número
de melhores indivíduos a cada geração. A eficiência do algoritmo genético é garantida com a seleção,
pois os indivíduos mais aptos apresentam maior tendência a serem selecionados e a emitir seu código
genético pelas próximas gerações.
3.5-Operadores Genéticos
Os operadores genéticos são responsáveis pela reprodução da população. Estes simulam os
operadores genéticos existentes nos seres vivos. Três tipos de operadores serão utilizados : recombinação
genética geométrica ou crossover geométrico, mutação heurística e mutação heurística não uniforme.
3.5.1-Crossover Geométrico
Anais do I WORCAP, INPE, São José dos Campos, 25 de Outubro de 2001, p. 42 - 44
O crossover geométrico, proposto por Michalewicz ([2]), gera um novo indivíduo (filho) por meio de
dois indivíduos pais.
indk’ = { y1 , y2 , y3 , ... , yN } , k e k’ = 1, ..., N
Pais : indk = { x1 , x2 , x3 , ... , xN }
CrossoverGeométricoMichalewicz (indk , indk’) = {
x1 y1 , x2 y2 ,
x3 y3 , ... ,
xN y N }
Onde : N é a ordem do sistema neste caso.
3.5.2-Mutação Heurística e Mutação Heurística Não Uniforme
Estes operadores genéticos geram um novo indivíduo a partir de um indivíduo pai. A mutação
heurística consiste em adicionar ou subtrair um determinado valor v a um componente xi (i = 1, ..., N)
selecionado aleatoriamente no indivíduo. O valor v afetará o componente de acordo com o valor de
aptidão do indivíduo. Para um indivíduo pouco apto, o valor v deve ser alto para efetuar uma forte
alteração no componente xi representado no indivíduo. Para um indivíduo muito apto, o valor v deve ser
baixo com o objetivo de realizar apenas um ajuste fino no componente xi. A mutação heurística não
uniforme diferencia-se por efetuar a operação em todos os componentes do indivíduo pai.
4-Epidemia
O procedimento evita que a população permaneça em um mínimo local. O procedimento consiste em
verificar se a população tende a um mínimo local. Quando a população tende a um mínimo local,
verifica-se se o melhor indivíduo atual é mais apto que o melhor indivíduo armazenado anteriormente : se
for mais apto ele é armazenado substituindo o outro e a população é novamente gerada; se o melhor
indivíduo atual não for mais apto, a população é novamente gerada e o indivíduo armazenado
anteriormente é copiado para a nova população.
5-Desenvolvimento de um Protótipo e Testes
Um protótipo de um algoritmo genético foi elaborado e implementado seguindo as especificações
descritas na metodologia. Testes foram realizados com o objetivo de determinar as condições iniciais de
um modelo dinâmico de um gerador de vapor dado por um sistema de ordem cinco da forma AX + B = 0.
Este modelo foi proposto por Guimarães e Flores ([1]). Alguns resultados são apresentados :
N. de gerações
x2
x3
x4
x5
x1
Artigo
292.2475
282.2662
279.9821
275.8742
5.7566
Teste 1
292.055
281.972
279.664
275.514
5.72221
1528
Teste 2
292.16
282.13
279.834
275.706
5.74041
993
Tabela comparativa entre as aproximações (vetores X) do artigo e as encontradas nos testes 1 e 2.
Condição de parada : valor de aptidão < 0.01. As aptidões das aproximações de solução apresentadas
nos testes 1 e 2 são respectivamente : 0.00871879 e 0.00998337. Taxa de crossover e mutação iguais a
100% e 5% respectivamente. Número de populações (NP) igual a 6 e tamanho de cada população (TP)
igual a 200.
Obs. : O procedimento epidemia e as mutações heurística e heurística não uniforme foram utilizadas
em todos os testes. Resultados satisfatórios também foram obtidos utilizando-se apenas uma população.
6-Referências
[1] Guimarães, L.; Flores, P. T. Modelos Dinâmicos Simplificados de Gerador de Vapor como
Ferramenta de Ensino, CTA / IEAv / EAN-R, 1997.
[2] Melville, B. Steady-state Simulation of Large Nonlinear Systems, Mathematical Modeling in
Industry-A Workshop for Graduate Students, (1996).
[3] Michalewicz, Z. Genetic Algorithms + Data Structures = Evolution Programs, Springer, 1996.
[4] Parthasarathy, P.; Goldberg, D.; Burns, S. Tackling Multimodal Problems in Hybrid Genetic
Algorithms, Department of General Engeneering, Umiversity of Illinnois, 2001.
[5] Tsutsui, S.; Fujimoto, Y. Forking Genetic Algorithm with Blocking and Shrinking Modes (fGA).
In: Proceedings of the Fifth Internacional Conference on Genetic Algorithms. University of
Illinois, 1993, 206-213.
Download

Algoritmo Genético híbrido como solução para - mtc-m16c:80