Вы находитесь на странице: 1из 9

1

Implementação de um Algoritmo Genético


Frederico G. Guimarães e Marcelo C. Ramalho

físicas e químicas podem ser capazes de explicar a vida


Abstract—Uma discussão sobre os Algoritmos Genéticos, inteligente.
sua estrutura e seus componentes, é apresentada neste Técnicas de busca baseadas em alguma informação
trabalho. Um AG será implementado e submetido a uma heurística são empregadas em muitas aplicações da
função teste conhecida. Uma técnica para gerar a população Inteligência Artificial. Quando o espaço de busca é grande
inicial será proposta e comparada com a distribuição demais para uma busca exaustiva, também denominada
aleatória.
busca “cega” ou de “força bruta”, e é difícil identificar
algum conhecimento que possibilite reduzir o espaço de
Index Terms—Algoritmos Genéticos, algoritmos
busca, não se tem outra escolha a não ser usar outras
evolutivos, computação evolutiva, métodos de otimização,
métodos de populações, métodos estocásticos. técnicas de busca mais eficientes para alcançar soluções
ótimas.
I. INTRODUÇÃO
III. CONCEITOS BIOLÓGICOS
s Algoritmos Genéticos, AG’s, são técnicas de
O busca baseadas nas Teorias da Evolução. Nos AG’s
as variáveis do problema são representadas como
A. As idéias evolucionistas de Darwin (Darwinismo)
Em meados do século XIX, Charles Darwin (1809-
genes em um cromossomo, também denominado
1882) revolucionou todo o pensamento acerca da evolução
indivíduo. Cada coordenada de um ponto no espaço
da vida e de nossas origens, provocando a maior discussão
solução pode ser entendida como um gene. O indivíduo é
que já houve a respeito de uma teoria científica. Em seus
o próprio ponto, formado pelo conjunto de coordenadas
dois livros - Sobre a Origem das Espécies por Meio da
(genes). Os AG’s utilizam elementos como a sobrevivência
Seleção Natural (1859), e A Descendência do Homem e
dos mais aptos e a troca de informação genética de uma
Seleção em Relação ao Sexo (1871) - Darwin defendia que
forma estruturada, porém aleatória. O AG apresenta um
o homem, tal qual os outros seres vivos, é resultado da
grupo de soluções candidatas, denominada População, na
evolução.
região de soluções. Através de mecanismos como a seleção
Em seus estudos, Darwin concluiu que nem todos os
natural e o uso de operadores genéticos, tais como a
organismos que nascem sobrevivem ou, o que é mais
mutação e o cruzamento, os cromossomos com melhor
importante, reproduzem-se. Os indivíduos com mais
aptidão são encontrados. A seleção natural garante que os
oportunidades de sobrevivência seriam aqueles com
cromossomos mais aptos gerem descendentes nas
características mais apropriadas para enfrentar as
populações futuras. Usando um operador de cruzamento, o
condições ambientais. Esses indivíduos teriam maior
AG combina genes de dois cromossomos pais previamente
probabilidade de reproduzir-se e deixar descendentes.
selecionados para formar dois novos cromossomos, os
Nessas condições as variações favoráveis tenderiam a ser
quais têm uma grande possibilidade de serem mais aptos
preservadas e as desfavoráveis, destruídas.
que os seus genitores.
É um lento e constante processo de seleção ao longo das
gerações, através do qual as espécies podem se diversificar,
II. COMPUTAÇÃO E VOLUTIVA
tornando-se mais adaptadas ao ambiente em que vivem.
A inteligência natural é o produto de milhões de anos de Nascia assim o conceito de Seleção Natural, a grande
evolução biológica. Simular processos evolutivos contribuição de Darwin à teoria da evolução.
biológicos complexos pode nos levar a descobrir como a O mecanismo de evolução proposto por Darwin pode ser
evolução conduz sistemas vivos em direção à inteligência resumido em seis etapas:
superior. 1. Os indivíduos de uma mesma espécie mostram muitas
Uma das áreas da computação evolutiva que mais tem se variações na forma e na fisiologia;
destacado é o campo dos Algoritmos Genéticos (AG’s), 2. Boa parte dessas variações é transmitida aos
que são baseados no princípio evolutivo da seleção natural. descendentes;
A Modelagem da Imunidade e a Vida Artificial são 3. Se todos os indivíduos de uma espécie se
disciplinas similares que se baseiam na idéia de que leis reproduzissem, as populações cresceriam
exponencialmente;
4. Como os recursos naturais são limitados, os indivíduos
Trabalho referente à disciplina de “Otimização” do curso de graduação de uma população lutam por sua sobrevivência e de
em Engenharia Elétrica da Universidade Federal de Minas Gerais, ministrada
pelos professores Jaime Arturo Ramirez e Ricardo Hiroshi Caldeira
sua prole;
Takahashi. Junho de 2001. 5. Portanto, somente alguns, os mais aptos, sobrevivem e
Foi desenvolvido por: deixam descendentes. A sobrevivência e a reprodução
Frederico Gadelha Guimarães, graduando em Engenharia Elétrica.
Correio eletrônico: fredgadelha@yahoo.com.br
dependem das características desses indivíduos que,
Marcelo Cherem Ramalho, graduando em Engenharia Elétrica.
Correio eletrônico: mccherem@yahoo.com.br
2

por serem hereditárias, serão transmitidas aos seus Como resultado do seu trabalho, em 1975, Holland edita
filhos; [2] e, em 1989, David Goldberg edita [1], hoje
6. Através dessa seleção natural, as espécies serão considerados os livros mais importantes sobre AG’s.
representadas por indivíduos cada vez mais adaptados.
O principal problema da teoria darwiniana foi a falta de V. O ALGORITMO GENÉTICO
uma teoria satisfatória que explicasse a origem e a Os Algoritmos Genéticos ocupam lugar de destaque
transmissão das variações. entre os paradigmas da Computação Evolutiva devido a
Darwin não conseguiu responder adequadamente estas uma série de razões dentre as quais:
críticas e, somente com a posterior descoberta das Leis de 1. Apresentam-se como o paradigma mais completo da
Mendel e das Mutações, foi que esses problemas puderam Computação Evolutiva visto que englobam de forma
ser resolvidos. Apesar disso, não há dúvida de que a teoria simples e natural todos os conceitos nela contidos;
moderna da evolução deve mais a Darwin do que a 2. Apresentam resultados bastante aceitáveis, com
qualquer outro cientista, e seu conceito de seleção natural relação à precisão e recursos empregados (fáceis de
continua válido até hoje. implantar em computadores domésticos de porte
B. Seleção Natural médio), para uma ampla gama de problemas de difícil
resolução por outros métodos;
A idéia básica de seleção natural foi apresentada por
3. São muito flexíveis, aceitam sem grandes dificuldades
Charles Darwin e representa uma das maiores conquistas
uma infinidade de alterações na sua implementação e
no campo científico, particularmente, na ciência biológica.
permitem fácil hibridização (vantagem importante no
É o mecanismo de seleção que impõe uma certa ordem ao
caso de aprendizagem) inclusive com técnicas não
processo de evolução.
relacionadas à Computação Evolutiva;
A primeira parte do processo, se caracteriza pela
4. Em relação aos outros paradigmas da Computação
obtenção de variedade genética e é realizada ao acaso. Já a
Evolutiva, são os que exigem menor conhecimento
Segunda parte, composta pela seleção, é em certo grau
específico do problema em questão para o seu
determinada pelos fatores ecológicos do ambiente.
funcionamento , o que os torna altamente versáteis e,
Através da seleção natural, a freqüência de um gene
além disso, agregam conhecimento específico com
vantajoso aumenta gradativamente na população. A
pouco esforço;
vantagem conferida pelo gene pode se refletir em um
5. São o paradigma mais usado dentro da Computação
maior tempo de sobrevivência do indivíduo, aumentando
Evolutiva e, junto com as Redes Neurais, os mais
assim a quantidade de filhos que ele produz. Pode implicar
usados de toda a Computação Natural.
também uma fertilidade maior do indivíduo que, mesmo
Na prática, nós podemos implementar facilmente um
sobrevivendo menos tempo, poderá deixar um número
AG com o simples uso de strings de bits, no caso da
maior de filhos que seu competidor. Finalmente, o gene
codificação binária, ou caracteres para representar os
poderá aumentar a sua freqüência se ele fornecer ao
cromossomos e, com simples operações de manipulação de
indivíduo maior capacidade de proteção. Assim, mesmo se
bits podemos implementar cruzamento, mutação e outros
ele tiver menos filhos, suas chances de atingir a época de
operadores genéticos. Na fig. 1, podemos ver a
reprodução serão maiores.
simplicidade de representação de um indivíduo composto
por cinco cromossomos (as variáveis do problema), cada
IV. REVISÃO HISTÓRICA
um composto por seis genes (codificação binária
A. Precursores dos AG’s utilizando-se seis bits), por meio de uma string de valores
binários.
A primeira tentativa de representação, por meio de um
modelo matemático, da teoria de Darwin, surgiu com o
110000 010101 101001 110100 001101
livro The Genetic Theory of Natural Selection, escrito pelo
Fig. 1. Representação binária de um indivíduo de cinco cromossomos (cinco
biólogo evolucionista R. A. Fisher. A evolução era, tal variáveis), cada cromossomo contendo seis genes.
como a aprendizagem, uma forma de adaptação, diferindo
apenas na escala de tempo. Em vez de ser o processo de O pseudocódigo de um AG básico é mostrado a seguir.
uma vida, era o processo de gerações. Como era feita em Nele podemos ver que os AG’s começam com uma
paralelo por um conjunto de organismos, tornava-se mais população de N estruturas aleatórias (indivíduos), onde
poderosa que a aprendizagem. cada estrutura codifica uma solução do problema. O
A seguir, John Holland dedicou-se ao estudo de desempenho de cada indivíduo é avaliado com base numa
processos naturais adaptáveis, tendo inventado os AG’s em função de avaliação de aptidão. Os melhores tenderão a ser
meados da década de 60. Ele desenvolveu os AG’s em os progenitores da geração seguinte, melhorando, de
conjunto com seus alunos e colegas da Universidade de geração para geração, através da troca de informação.
Michigan nos anos 60 e 70, com o objetivo de estudar
Algoritmo Genético:
formalmente o fenômeno da adaptação como ocorre na t 0;
natureza, e desenvolver modelos em que os mecanismos da IniciaPopulação P(t);
adaptação natural pudessem ser importados para os Avalia P(t);
enquanto não parada faça
sistemas computacionais. t t+1;
P’ SelecionaPares P(t);
Recombina P’;
Muta P’;
3

Avalia P’; complexos tais como redes neurais e sistemas


P(t+1) Sobreviventes P(t),P’(t);
fimenquanto de inferência nebulosos.
fim
A. Parâmetros Genéticos
Pelo que foi apresentado até o momento, pode-se notar É importante também, analisar de que maneira alguns
que a principal inovação dos AG’s em relação aos demais parâmetros influem no comportamento dos Algoritmos
métodos de busca é a implementação de um mecanismo de Genéticos, para que se possa estabelecê-los conforme as
seleção de soluções no qual, em curto prazo, os melhores necessidades do problema e dos recursos disponíveis.
têm maior probabilidade de sobreviver e, em longo prazo, Serão listados a seguir alguns Parâmetros Genéticos
os melhores têm maior probabilidade de ter descendência. utilizados.
Desta forma, o mecanismo de seleção se divide em dois 1) Tamanho da População
segmentos: o primeiro escolhe os elementos que vão O tamanho da população determina o número de
participar da transformação (operador de seleção) e o outro cromossomos na população, afetando diretamente o
escolhe os elementos que vão sobreviver (operador de desempenho global e a eficiência dos AG’s. Com uma
substituição). população pequena o desempenho pode cair, pois, deste
Cabe ainda destacar que os AG’s são métodos de busca: modo, a população fornece uma pequena cobertura do
§ Cega: não têm conhecimento específico do espaço de busca do problema. Uma grande população
problema a ser resolvido, tendo como guia geralmente fornece uma cobertura representativa do
apenas a função objetivo; domínio do problema, além de prevenir convergências
§ Codificada: não trabalham diretamente com o prematuras para soluções locais ao invés de globais. No
domínio do problema e sim com representações entanto, para se trabalhar com grandes populações, são
dos seus elementos; necessários maiores recursos computacionais, ou que o
§ Múltipla: executa busca simultânea em um algoritmo trabalhe por um período de tempo muito maior.
conjunto de candidatos; 2) Taxa de Cruzamento
§ Estocástica: combinam regras probabilísticas e Quanto maior for esta taxa, mais rapidamente novas
determinísticas com alguma proporção estruturas serão introduzidas na população. Mas se esta for
variável. Esse conceito se refere tanto às fases muito alta a maior parte da população será substituída e
de seleção como às de transformação. pode ocorrer perda de estruturas de alta aptidão. Com um
A vantagem principal dos AG’s ao trabalharem com o valor baixo, o algoritmo pode tornar-se muito lento.
conceito de população, ao contrário de muitos outros 3) Tipo de Cruzamento
métodos que trabalham com um só ponto, é que eles O tipo de cruzamento a ser utilizado determina a forma
encontram segurança na quantidade. Tendo uma como se procederá a troca de segmentos de informação
população de pontos bem adaptados, é reduzida a entre os “casais” de cromossomos selecionados para
possibilidade de alcançar um falso ótimo. Os AG’s cruzamento. Mais adiante serão explanados alguns tipos de
conseguem grande parte de sua amplitude simplesmente cruzamento utilizados mas deve-se levar em conta que
ignorando informação que não constitua parte do objetivo, existem muitas outras escolhas disponíveis para usuários
enquanto outros métodos se sustentam fortemente nesse de AG’s. O ideal seria testar diversos tipos de cruzamento
tipo de informação e, em problemas nos quais a em conjunto com as outras configurações do AG em uso
informação necessária não está disponível ou se apresenta para verificar qual apresenta um melhor resultado.
de difícil acesso, estes outros métodos falham. Em suma, 4) Taxa de Mutação
os AG’s podem ser aplicados praticamente em qualquer Determina a probabilidade em que uma mutação
problema. ocorrerá. Mutação é utilizada para dar nova informação
Apesar de aleatórios, eles não são caminhadas aleatórias para a população e também para prevenir que a população
não direcionadas, ou seja, buscas totalmente sem rumo, se sature com cromossomos semelhantes (Convergência
pois exploram informações históricas para encontrar novos Prematura). Uma baixa taxa de mutação previne que uma
pontos de busca onde são esperados melhores dada posição fique estagnada em um valor, além de
desempenhos. Isto é feito através de processos iterativos, possibilitar que se chegue em qualquer ponto do espaço de
onde cada iteração é chamada de geração. busca. Com uma taxa muito alta a busca se torna
As principais vantagens dos AG’s podem ser resumidas essencialmente aleatória além de aumentar muito a
no que se segue: possibilidade de que uma boa solução seja destruída. A
§ São procedimentos de busca paralela que melhor Taxa de Mutação é dependente da aplicação mas,
podem ser implementados em máquinas de para a maioria dos casos é entre 0,001 e 0,1.
processamento paralelo, acelerando em muito o B. Estrutura e Componentes básicos
processo;
§ São aplicáveis a problemas de otimização Como não há uma definição rigorosa para “Algoritmo
contínuos e discretos; Genético” a qual seja aceita por todos os componentes da
§ São estocásticos e, portanto, menos sujeitos a comunidade da computação evolutiva, podemos dizer que
ficarem presos em mínimos locais, freqüentes a maioria dos métodos denominados AG’s têm pelo menos
em muitos problemas práticos de otimização; os seguintes elementos em comum:
§ Sua flexibilidade facilita a estruturação e § Uma população de cromossomos;
identificação de parâmetros em modelos § Seleção de acordo com a aptidão;
§ Cruzamento (“crossover”) para gerar novas
4

populações; busca e devem ser habilitados procedimentos úteis para


§ Mutação aleatória para produzir novos distingui-las.
indivíduos. 3) Critério de Parada
Os cromossomos componentes da população de um AG, Devem ser determinadas as condições nas quais se
assumem tipicamente a forma de strings binárias. Cada considera que o AG encontrou uma solução aceitável ou
posição dentro dessa string tem dois alelos possíveis: 0 e 1. tenha fracassado no processo de busca e não faça sentido
Cada cromossomo pode ser visto como um ponto no espaço continuar.
de busca das soluções candidatas. O AG processa 4) Funções de avaliação e aptidão
populações de cromossomos, efetuando substituições Deve ser determinada a função de avaliação mais
sucessivas de uma população por outra. Os AG’s requerem apropriada para o problema, assim como a função de
uma função de aptidão que atribua um valor (valor de aptidão que utilizará o AG para resolvê-lo.
aptidão ou fitness) para cada cromossomo da população 5) Operadores Genéticos
atual. O valor de aptidão de cada cromossomo depende de Denominação dada aos operadores utilizados para
quão bem este cromossomo resolve o problema dado. efetuar a reprodução. Todo AG faz uso de pelo menos três
Um esquema gráfico da estrutura de um AG básico seria Operadores Genéticos (levando em conta o AG básico):
como o apresentado na fig. 2. seleção, cruzamento e mutação. Estes não são os únicos
possíveis e além de tudo admitem variações.
População
Seleção 6) Critérios de Seleção
Auxiliar
A seleção deve dirigir o processo de busca em favor dos
indivíduos mais aptos. Isto pode ser feito de várias
maneiras como, por exemplo, por amostragem direta, por
População Transformação
amostragem aleatória simples ou por amostragem
estocástica.
7) Critérios de Substituição
Substituição Descendência Os critérios com que se selecionam os criadores não
necessariamente têm que ser os mesmos usados para
Fig. 2. Esquema gráfico da estrutura de um AG básico. selecionar os sobreviventes, logo a necessidade de
especificá-los separadamente.
Como pode ser visto, uma população Pop(t) que consta 8) Parâmetros de Funcionamento
de M membros é submetida a um processo de seleção onde Um AG precisa que sejam fornecidos certos parâmetros
será gerada uma população auxiliar PopAux(t) de C de funcionamento tais como o tamanho da população, as
criadores. Dessa população auxiliar será extraído um probabilidades de aplicação dos Operadores Genéticos, a
subgrupo de indivíduos denominados progenitores que são precisão da codificação, etc.
os que efetivamente vão se reproduzir. Fazendo uso dos
operadores genéticos, os progenitores passarão por uma VI. OPERADORES GENÉTICOS
série de transformações na fase de reprodução, por meio
São os operadores genéticos que transformam a
das quais serão gerados os S indivíduos componentes da
população através de sucessivas gerações, estendendo a
Descendência. Para formar a nova população, Pop(t+1),
busca até chegar a um resultado satisfatório. Um algoritmo
devem ser selecionados M sobreviventes dos C+S da
genético padrão evolui, em suas sucessivas gerações,
população auxiliar e da descendência, o que é feito na fase
mediante o uso de três operadores básicos:
de Substituição. A fase de Seleção é realizada em duas
§ Seleção: realiza o processo de adaptabilidade e
etapas com finalidade de emular as duas vertentes do
sobrevivência.
princípio de seleção natural: seleção de criadores ou
§ Cruzamento: representa o acasalamento entre
Seleção e seleção de sobreviventes para a próxima geração
os indivíduos.
ou Substituição.
§ Mutação: introduz modificações aleatórias.
C. Métodos e critérios para a implementação de um AG Outros operadores têm sido propostos na literatura e
Para implementar-se um AG, é necessário definir de entre eles o mais utilizado é o Elitismo.
forma correta alguns métodos e critérios. A. Seleção
1) Critério de Codificação A idéia principal do operador de seleção em um
Tendo em vista que os AG’s trabalham com algoritmo genético é oferecer aos melhores indivíduos da
manipulação de strings de determinados alfabetos população corrente preferência para o processo de
(representação), deve-se especificar a codificação com a reprodução, permitindo que estes indivíduos possam passar
qual se faz corresponder cada ponto do domínio do as suas características às próximas gerações. Isto funciona
problema com um Gene ou conjunto de Genes do como na natureza, onde os indivíduos altamente adaptados
Cromossomo. ao seu ambiente possuem naturalmente mais oportunidades
2) Critério de tratamento dos indivíduos não factíveis para reproduzir do que aqueles indivíduos considerados
Nem sempre é possível estabelecer uma correspondência mais fracos.
ponto-a-ponto entre o domínio do problema e o conjunto
de strings binárias (ou de outro alfabeto utilizado) usadas B. Cruzamento
para resolvê-lo. Como conseqüência, nem todas as strings Pode-se dizer que a principal característica de distinção
(indivíduos) codificam indivíduos válidos do espaço de
5

do AG em relação às outras técnicas é o uso do métodos de seleção que força os AG’s a reterem um certo
cruzamento. número de “melhores” indivíduos em cada geração. Tais
O operador Cruzamento é utilizado após o de seleção. indivíduos podem ser perdidos se eles não forem
Esta fase é marcada pela troca de segmentos entre “casais” selecionados para reprodução ou se eles forem destruídos
de cromossomos selecionados para dar origem a novos por cruzamento ou mutação. Muitos pesquisadores têm
indivíduos que formarão a população da próxima geração. encontrado no elitismo vantagens significativas para a
A idéia central do cruzamento é a propagação das performance dos AG’s [3].
características dos indivíduos mais aptos da população por O Elitismo consiste basicamente em realizar a etapa de
meio de troca de informações entre os mesmos o que dará seleção em duas partes:
origem a novos indivíduos. 1. Seleciona-se uma elite de E membros entre os
Existem dois tipos mais comuns de reprodução sexual melhores da população inicial, os quais serão
em AG’s, que dependem do tipo de representação das incorporados diretamente à população final, sem
variáveis. passar pela população auxiliar;
1) Cruzamento Binário 2. A população auxiliar é selecionada entre os N - E
Na representação binária pode-se escolher um ponto de membros restantes da população inicial.
“quebra” da string de bits e trocar os segmentos entre os Em geral, a elite tem um tamanho reduzido, 1 ou 2 para
dois indivíduos, gerando dois indivíduos diferentes. N=50, e a sua amostragem pode ser direta, escolhendo-se
2) Cruzamento Real simplesmente os melhores, ou por sorteio, escolhendo-se
No cruzamento real é traçado um segmento de reta os melhores entre os melhores da população. O esquema
unindo os dois pontos (indivíduos). São gerados gráfico do Elitismo pode ser visualizado na fig. 3.
aleatoriamente dois novos indivíduos sobre este segmento
População
de reta. Seleção Auxiliar
Pode-se criar um mecanismo de extrapolação, em que
este segmento de reta tem suas extremidades não em cima
de cada parceiro, mas um pouco além destes. Podemos Elite
também aplicar maior probabilidade dos descendentes População Transformação

“nascerem” mais próximos do melhor parceiro.


Combinando estes dois mecanismos, teremos o
Cruzamento Real Polarizado. Substituição Descendência

C. Mutação
Fig. 3. Esquema gráfico da estrutura de um AG com Elitismo.
A mutação é geralmente vista como um operador de
“background”, responsável pela introdução e manutenção VII. O PROBLEMA DA DIVERSIDADE DOS AG’S
da diversidade genética na população [2]. Ela trabalha
Um ponto fundamental para o bom funcionamento de
alterando arbitrariamente um ou mais componentes de
um AG é a existência de diversidade entre os indivíduos.
uma estrutura escolhida entre a descendência, logo após o
Ou seja, deve existir um certo grau de diversidade entre as
cruzamento, fornecendo dessa forma meios para a
aptidões dos indivíduos que compõe o conjunto de
introdução de novos elementos na população. Assim, a
possíveis soluções pois, do contrário, com um conjunto de
mutação assegura que a probabilidade de se chegar a
indivíduos muito semelhantes, o operador de cruzamento
qualquer ponto do espaço de busca nunca será zero. O
perde em muito a capacidade de troca de informações úteis
operador de mutação é aplicado aos indivíduos com uma
entre os indivíduos da população o que faz a busca em
probabilidade dada pela taxa de mutação. Como foi visto
certos casos progredir muito lentamente ou praticamente
no item Parâmetros Genéticos, geralmente se utiliza uma
estacionar.
taxa de mutação pequena, justamente por ser um operador
A necessidade de ter a diversidade controlada dentro de
genético secundário. O operador de mutação também
uma determinada população tem, como um dos seus
depende do tipo de representação utilizada.
maiores obstáculos, a necessidade de populações finitas e
1) Mutação Binária
não muito grandes. Caso contrário, uma técnica de AG
Na representação binária podemos realizar a mutação
poderia tornar-se não aplicável na prática, visto que,
simplesmente escolhendo aleatoriamente um bit para
controlar uma população absurdamente grande, a qual
sofrer mutação, ou seja, ser mudado. A mudança de um bit
tenha cálculos muito complexos para determinar a aptidão,
no indivíduo pode fazê-lo representar outro ponto
poderia ocasionar um esforço computacional muito grande.
completamente diferente do espaço.
Devemos lembrar que o esforço computacional será
2) Mutação Real
relativo ao tipo de aplicação pois, por exemplo, se tratando
Na representação real, podemos realizar a mutação
do controle de um robô móvel que dependa de respostas
mudando o indivíduo para outro ponto do espaço de acordo
em tempo real para desvio de obstáculos, um atraso de 1
com uma probabilidade gaussiana de média no próprio
segundo na tomada de uma decisão pode ser catastrófico.
indivíduo e com um certo desvio padrão dado.
Em suma, para que a seleção seja efetiva, a população
D. Elitismo deve conter, a todo instante, uma certa variedade de
O método mais utilizado para melhorar a convergência aptidões, o que, como foi visto com relação ao tamanho da
dos AG’s é o Elitismo. Ele foi primeiramente introduzido população, implica também em não ter uma disparidade
por Kenneth De Jong em 1975 e é uma adição aos vários muito grande de aptidões, pois costuma afetar
6

negativamente a diversidade da população. B. Geração da População Inicial


1) Inicialização Aleatória da População
VIII. REPRESENTAÇÃO E CODIFICAÇÃO DOS AG’S Neste tipo de inicialização da população, os N
As partes que relacionam um AG a um problema dado indivíduos são distribuídos aleatoriamente dentro do
são a codificação e a função de avaliação. espaço solução. Possui a desvantagem de possibilitar a
Se um problema pode ser representado por um conjunto ocorrência de regiões com concentração de pontos e outras
de parâmetros (genes), estes podem ser unidos para sem indivíduos. Entretanto, a distribuição aleatória
formarem uma cadeia de valores (cromossomo), este permite uma maior variabilidade dos resultados obtidos.
processo se chama codificação. Em genética, este conjunto Podemos obter informação adicional a cada vez que
representado por um cromossomo em particular é rodarmos o algoritmo para o problema.
referenciado como genótipo, contendo a informação 2) Inicialização Determinística da População
necessária para construir um organismo, conhecido como A população é distribuída uniformemente dentro do
fenótipo. Estes mesmos termos se aplicam em AG. Por espaço solução. Possui a vantagem de cobrir bem o espaço
exemplo, para se desenhar um prédio, um conjunto de solução porém, execuções sucessivas não trazem
parâmetros especificando o desenho da planta é o informação adicional, pois o estado de inicialização é
genótipo, e a construção final é o fenótipo. A adaptação de sempre o mesmo.
cada indivíduo depende de seu fenótipo, no qual se pode 3) Inicialização Aleatória com “Nicho”
inferir seu genótipo. A fim de solucionar o problema da possível ocorrência
Por exemplo, para um problema de maximizar uma de concentração de pontos devido a Inicialização Aleatória
função de três variáveis, se poderia representar cada da População, pode-se utilizar a técnica de “nichos”. Nesta
variável por um número binário de 10 bits, obtendo-se um técnica, é estabelecida uma região de cobertura para cada
cromossomo de 30 bits de longitude. indivíduo, chamada de nicho do indivíduo. No momento
Existem vários aspectos relacionados com a codificação que estamos gerando a população inicial, se dois ou mais
de um problema a serem levados em conta no momento de indivíduos aparecerem muito próximos, um deles é
sua realização: eliminado e outro é gerado aleatoriamente. O processo é
§ Deve ser utilizado um alfabeto o mais pequeno repetido até que todos os indivíduos estejam sozinhos
possível para representar os parâmetros. dentro de seu nicho.
Normalmente utilizam-se dígitos binários; Este processo garante que não haverá, na população
§ As variáveis que representam os parâmetros do inicial, indivíduos próximos uns dos outros, porém, não
problema devem ser discretizadas para poder garante que todo o espaço solução esteja sendo coberto
representar as strings de bits; inicialmente.
§ A maior parte dos problemas tratados com 4) Inicialização implementada
AG's são não lineares e muitas vezes existem Na inicialização da população que implementamos,
relações “ocultas” entre as variáveis que mesclamos as técnicas anteriores. Inicialmente, geramos
formam a solução; uma população uniformemente distribuída dentro do
§ O tratamento dos genótipos inválidos deve ser espaço solução. Em seguida, aplicamos uma perturbação
levado em conta para o desenho da codificação. aleatória em cada indivíduo. A perturbação máxima
permitida é determinada pelo nicho de cada indivíduo.
IX. A IMPLEMENTAÇÃO Dessa maneira, unimos as vantagens das técnicas
anteriores, isto é, garantimos uma cobertura ampla do
Implementamos um AG no Matlab, utilizando
espaço solução e a variabilidade característica da
codificação real para os indivíduos da população. A tabela
distribuição aleatória.
a seguir relaciona os parâmetros genéticos adotados na
A fig. 4 ilustra esta técnica onde 16 indivíduos são
implementação.
PARÂMETROS GENÉTICOS distribuídos uniformemente dentro do espaço solução
Tamanho da População 100 definido por:
Número Máximo de Gerações 200 x1 ∈ [0,7.5]
60%
Taxa de Cruzamento
x 2 ∈ [0,5]
Tipo de Cruzamento Real Polarizado
Taxa de Extrapolação 20%
Taxa de Mutação 5%
A seguir, são especificados outros aspectos da
implementação.
A. Critério de Parada
O algoritmo pára ou quando o número máximo de
gerações foi alcançado, ou quando os dez últimos ótimos
não variaram mais que um certo î. O valor adotado para î
foi de 0,0001.
7

Distribuiç ã o uniforme da populaç ã o 1) Amostragem Aleatória Simples ou Equiprovável


5
Neste critério todos os indivíduos têm chances iguais de
4.5
serem sorteados. São sorteados P indivíduos dentro dos N
4 integrantes da população para formarem a população de
3.5
progenitores, que irão efetivamente cruzar. P é
determinado pela taxa de cruzamento.
3
Coordenada x2

2) Amostragem Estocástica por Torneio


2.5 Neste critério são sorteados três indivíduos da população
2 e é realizado um “torneio” entre eles para escolher-se qual
irá efetivamente fazer parte da população de progenitores.
1.5
Em nossa implementação determinamos como vencedor do
1
torneio aquele indivíduo que possui maior aptidão, no
0.5 caso, o que possui menor valor da função objetivo.
0
0 1 2 3 4 5 6 7
F. Critérios de Substituição
Coordenada x1
Foram implementados e verificados quatro tipos
Fig. 4. Distribuição uniforme de 16 indivíduos dentro do espaço solução.
diferentes de substituição da população anterior pela nova.
Na fig. 4 é mostrada uma cruz maior sobre um dos
1) Substituição Imediata
indivíduos. Esta cruz estabelece a faixa para cada
Os descendentes substituem seus progenitores.
coordenada, no caso x1 e x2, dentro da qual estarão as
2) Substituição por Fator Cheio
coordenadas do indivíduo quando ele sofrer uma
Os descendentes substituem aqueles membros da
perturbação aleatória. A fig. 5 ilustra a população da fig. 4
população mais parecidos com eles.
após a perturbação.
3) Substituição por Inserção
Populaç ã o Inicial apó s perturbaç ã o
5 Os M descendentes substituem M membros da
4.5
população anterior, geralmente os M piores. A seleção dos
piores foi feita por torneio
4
4) Substituição por Inclusão
3.5 Os descendentes são somados aos progenitores em uma
3 única população e, desta, são selecionados os N melhores.
Coordenada x2

Da mesma forma, a seleção dos melhores foi feita por


2.5
torneio.
2

1.5 X. COMPARAÇÃO
1 Vamos comparar a técnica de geração da população
0.5
inicial que propusemos na seção anterior com a
Inicialização Aleatória. Vamos submeter dois algoritmos
0
0 1 2 3 4 5 6 7 genéticos, que diferem na maneira de gerar a população
Coordenada x1
inicial, à seguinte função teste, ilustrada na fig. 6.
Fig. 5. População após a perturbação aleatória.

Podemos observar na fig. 5 que a nova população


manteve a característica de nicho para cada indivíduo e o
espaço solução foi amplamente coberto pela população
inicial.
C. Reflexão
Eventualmente, após os processos de cruzamento e
mutação da população alguns indivíduos podem sair do
espaço solução, caindo em pontos não factíveis. Com o
método da Reflexão, estes indivíduos são refletidos para
dentro do espaço solução, voltando para pontos factíveis do
problema.
D. Elitismo
Em nossa implementação utilizamos o Elitismo Fig. 6. A função peaks.
escolhendo apenas um indivíduo para integrar a Elite: o
melhor. Este indivíduo será incluído na próxima geração A função teste é a função peaks, que já vem definida no
diretamente. Matlab e possui a característica de ser multimodal.
E. Critérios de Seleção Os algoritmos utilizados para teste utilizam ambos a
Amostragem Estocástica por Torneio como critério de
Foram implementados e verificados dois tipos diferentes
seleção e a Substituição por Inserção como critério de
de seleção dos indivíduos que irão efetivamente cruzar.
substituição.
8

XI. RESULTADOS Histograma - Inicializaç ã o Aleató ria


60

A fig. 7 ilustra a evolução da população inicial para a


população final. Pode-se observar que a população 50

converge para a região do ótimo global. A população


inicial, cujos indivíduos são mostrados na fig. 7 marcados 40
com um ‘x’, foi gerada pela técnica proposta. Pode-se
observar, como foi comentado anteriormente, que a

Amostras
30
população cobre todo o espaço de busca e não há
concentração de indivíduos em uma determinada região. 20
Evoluç ã o da Populaç ã o Inicial para a Final
3

10

0
0 20 40 60 80 100 120 140 160 180 200
1 Nú m e r o d e G e r a ç õ e s

Fig. 8. Histograma das amostras para o AG com Inicialização Aleatória


Coordenada y

da população.
0

Pode-se observar neste histograma que em 57% das


-1
vezes o AG alcançou o ótimo global em menos de 40
gerações. A barra mais à direita do histograma corresponde
-2
ao número de vezes, no caso 18%, em que o algoritmo
rodou entre 180 e 200 gerações e não alcançou o ótimo
-3
-3 -2 -1 0 1 2 3 global.
Coordenada x

Fig. 7. Evolução da população inicial, com 25 indivíduos, para a B. Inicialização Implementada


população final dentro do espaço de busca do ótimo para a função peaks.
Os resultados obtidos pelo AG utilizando a Inicialização
Marcados com um ‘x’ na figura estão os indivíduos da população inicial
utilizando-se a técnica proposta de inicialização. Marcados com um círculo, proposta são relacionados na tabela a seguir. A população
estão os indivíduos da população final. também continha 25 indivíduos.
RESULTADO DO TESTE
Os dois algoritmos foram rodados cem vezes com a Número de amostras 100
função peaks utilizando inicialmente uma população de Porcentagem de acerto 99
cem indivíduos. Ambos tiveram percentual de acerto de Média do no. de gerações 33,4040
100%. A seguir, o número de indivíduos na população foi Valor máximo 177
reduzido até encontrarmos um percentual de acerto Valor mínimo 1
inferior a 100%. Com uma população de 25 indivíduos, o
AG utilizando a técnica proposta de geração da população Na fig. 9 é ilustrado o histograma das amostras. A partir
inicial obteve percentual de acerto de 99%. Com esse dele podemos observar que em 75% das vezes o AG
mesmo número de indivíduos, o AG com inicialização atingiu a solução ótima em menos de 40 gerações.
aleatória obteve percentual de acerto de 82%. Além desta Histograma - Inicializaç ã o Proposta
60
diferença no percentual de acerto, o resultado do teste
mostrou uma diferença em relação à velocidade de
50
convergência para o ótimo global da função objetivo. Estes
resultados são detalhados a seguir.
40

A. Inicialização Aleatória da População


Amostras

A tabela a seguir relaciona os resultados obtidos pelo 30

AG utilizando Inicialização Aleatória da População e com


uma população de 25 indivíduos. Para o cálculo da média 20

do número de gerações que este AG levou para alcançar o


ótimo global foram consideradas, dentre as cem rodadas do 10

algoritmo, somente as que ele acertou.


RESULTADO DO TESTE 0
0 20 40 60 80 100 120 140 160 180 200
Número de amostras 100 Nú m e r o d e G e r a ç õ e s
Porcentagem de acerto 82 Fig. 9. Histograma das amostras para o AG com Inicialização da
Média do no. de gerações 37,0366 população proposta.
Valor máximo 200
Valor mínimo 2 Foi observado que mesmo reduzindo a população para
16 indivíduos, o AG com inicialização proposta obteve
A fig. 8 mostra o histograma das amostras. As amostras percentual de acerto de 96%, um resultado ainda bem
são o número de rodadas do algoritmo. Em cada rodada, o melhor que o obtido pelo AG com Inicialização aleatória.
número de gerações foi registrado.
9

XII. CONCLUSÕES [3] MITCHELL, Melanie. “An Introduction to Genetic Algorithms” MIT
Press Massachusetts, 1996.
A partir dos resultados podemos observar que a técnica [4] JANG, Jyh-Shing R., SUN, Chuen-Tsai, MIZUTANI, Eiji. “Neuro-
proposta neste trabalho para gerar a população inicial do Fuzzy and Soft Computing” Prentice Hall, Inc., 1997.
[5] Notas de Aula da disciplina “Otimização”
algoritmo genético contribui para uma melhor eficiência
do algoritmo. Conforme se pode observar nos dados
anteriores, a técnica proposta obteve, na média, um
número menor de gerações para atingir a solução do
problema. Além disso, entre as cem rodadas do algoritmo,
o maior número de gerações obtido foi menor do que na
inicialização aleatória. A solução ótima foi encontrada, no
geral, com um número menor de gerações na maioria das
vezes, mostrando que a técnica proposta possui uma
convergência mais rápida para o ótimo global. Isto pode
ser visualizado nos histogramas da fig. 8 e da fig. 9.
Entretanto, apesar de ser importante para o desempenho
do AG, o método de geração da população inicial não é o
fator mais significativo. Os componentes estruturais do AG
mais significativos em relação ao desempenho são os
critérios de seleção, substituição, mutação e cruzamento.
Estes componentes são os que mais fortemente influem no
resultado do AG pois afetam diretamente a evolução da
população em direção à solução do problema.
Porém, a inicialização proposta neste trabalho tem a
vantagem de cobrir todo o espaço solução, mas mantendo a
variabilidade característica da inicialização aleatória. O
fato de já cobrir inicialmente todo o espaço solução,
aumenta a probabilidade de termos pelo menos um
indivíduo próximo ou dentro da bacia do ótimo global. A
convergência se torna mais rápida pois, a população não
necessita “migrar” rumo ao mínimo global caso a geração
aleatória tenha, por azar, colocado os indivíduos distantes
do ponto ótimo. O processo de evolução se reduz a apenas
convergir a população para a região do ótimo através do
cruzamento dos indivíduos. Como o operador de
cruzamento tem o efeito de reduzir a região de abrangência
da população, se já garantirmos inicialmente que a
população está distribuída por todo o espaço solução,
podemos iniciar com uma taxa de cruzamento mais alta e
uma taxa de mutação mais baixa, pois estaremos
interessados apenas em concentrar a população e não mais
em explorar o espaço de busca.
A importância de diminuir o número de gerações, ou
seja, de iterações, para se alcançar a solução e, portanto,
aumentar a velocidade de convergência do AG é que
necessitaremos de menos avaliações da função objetivo.
Isso representa uma redução no custo computacional
inerente a certos problemas de otimização e do tempo de
execução do algoritmo.
Por fim, para se obter conclusões mais concretas testes
mais exaustivos, com um maior número de amostras, e
com funções objetivo diversas deveriam ser realizados.
Porém, com base no teste feito neste trabalho, podemos ver
que a técnica de inicialização da população sugerida
contribui para a melhora do desempenho do AG e para
uma redução do número de avaliações da função objetivo.

XIII. REFERÊNCIAS
[1] GOLDBERG, David E. “Genetic Algorithms in Search, Optimization
and Machine Learning” Addison-Wesley Co. Massachusetts, 1989.
[2] HOLLAND, John H. “Adaptation in Natural and Artificial Systems”
University of Michigan Press Ann Arbor, 1975.

Вам также может понравиться