Algoritmos Genéticos

Propaganda
Algoritmos Genéticos
Rodolfo Duarte e Sousa
Algoritmos Genéticos
Escrito por
Rodolfo Duarte e Sousa
[email protected]
http://student.dei.uc.pt/~rsousa/sa
Os algoritmos genéticos são uma técnica de solução
baseada na teoria da evolução de Charles Darwin,
que tem ganho bastante popularidade em todo o
mundo ao longo dos últimos anos.
Os algoritmos genéticos (AG) estão inseridos nos Sistemas
Inspirados na Natureza, simulando sistemas naturais é possível
aplica-los a solução de problemas reais. São métodos generalizados
de simulação e optimização que simulam processos naturais de
evolução, usando a teoria da evolução de Charles Darwin. Através da
combinação e adaptação com outros operadores genéticos, são
criados processos robustos e de aplicabilidade. Estes algoritmos são
baseados
nos
processos
genéticos
dos
organismos
biológicos,
aplicando uma possível solução a um problema de cromossoma
composto por uma cadeia de bits e caracteres. Estes cromossomas
representam indivíduos que são levados ao longo de períodos de
tempo (igual aos processos reais) evoluindo de acordo com os
princípios da sobrevivência dos mais aptos e de selecção natural,
descritos pelo Darwin no seu livro “Origem das Espécies”. Simulando
estes processos, AG são capazes de atingir soluções para problemas
reais.
Tal como na natureza, os indivíduos tentam competir por água,
comida e território, predominando os mais fortes e morrendo aqueles
que não conseguem viver ou reproduzir-se. Desta forma os genes dos
mais fortes prevalecem e dão origem a novos indivíduos mais fortes e
Simulação Avançada
Pág. 1/7
Algoritmos Genéticos
Rodolfo Duarte e Sousa
mais adaptados ao meio em que vivem. Os AG usam uma analogia
igual ao fenómeno da evolução da natureza, onde cada indivíduo
representa uma possível solução para o problema. Dependendo da
resposta que cada indivíduo dá ao problema, é atribuído um valor de
adaptação. Aos indivíduos mais adaptados é dado a oportunidade de
se
reproduzir
com
outros
da
mesma
espécie,
produzindo
descendentes com os genes de ambas as partes. Se um AG for
correctamente desenvolvido os seus resultados serão possíveis
soluções para o problema proposto.
Os AG são eficientes para encontrar soluções óptimas em uma
grande variedade de problemas, pois não impõem a rigidez dos
modelos matemáticos usados pelos métodos tradicionais.
Os operadores genéticos influenciam os indivíduos em
sucessivas gerações, estendendo a simulação da solução até uma
altura satisfatória. Estes operadores são necessários para que a
população diversifique e mantenha características de adaptação
adquiridas pelas gerações anteriores.
Os operadores de selecção, é seleccionar os pais para
aumentar a probabilidade de os indivíduos (com bons valores da
função objectivo) se reproduzam. Pode-se eleger os pais usando um
operador genético por exemplo o cruzamento. Às vezes a escolha de
um mecanismo de selecção adequado permite um tratamento
matemático mais rigoroso.
Os operadores de mutação são úteis para a introdução e
manutenção
da diversidade
genética dos indivíduos (alterando
arbitrariamente as suas características) fornecendo assim, meios para
o aparecimento de novos indivíduos na população. Desta forma este
operador assegura que a probabilidade de chegar a qualquer ponto
do espaço nunca será zero. Este operador tem uma taxa de
probabilidade baixa.
Simulação Avançada
Pág. 2/7
Algoritmos Genéticos
Rodolfo Duarte e Sousa
O operador de cruzamento é responsável que durante a
reprodução se herdem características dos indivíduos em causa. Este
operador é considerado o mais predominante, desta forma a sua taxa
de probabilidade deve ser superior à de mutação.
É
importante
também,
analisar
de
que
maneira
alguns
parâmetros influenciam no comportamento dos AGs, para que se
possa estabelecê-los conforme as necessidades do problema e dos
recursos disponíveis. Alguns dos parâmetros genéticos mais
utilizados:
Tamanho da População: o tamanho da população influencia o
desempenho global e eficiência dos AGs. Uma população pequena
oferece uma pequena cobertura do espaço de simulação, limitando as
soluções finais. Uma grande população fornece uma melhor cobertura
do domínio do problema e previne a convergência prematura para
soluções locais. Entretanto, com uma grande população tornam-se
necessários
recursos
computacionais
maiores,
ou
mais
tempo
computacional.
Taxa de Cruzamento: quanto maior for esta taxa, mais
rapidamente surge novos indivíduos. No entanto, isto pode originar
um efeito indesejado pois maior parte da população será substituída
podendo ocorrer perda de estruturas de alta aptidão. Com um valor
baixo, o algoritmo pode tornar-se muito lento.
Taxa de mutação: uma baixa taxa de mutação previne que
uma dada posição fique estagnada em um valor, além de possibilitar
que se chegue em qualquer ponto do espaço de simulação. Com uma
taxa muito alta a simulação torna-se essencialmente aleatória.
Intervalo de Geração: controla a percentagem da população
que será substituída durante a próxima geração. Com um valor alto,
a maior parte da população será substituída, mas com valores muito
altos pode ocorrer perda de estruturas de alta aptidão. Com um valor
muito baixo, o algoritmo torna-se lento.
Simulação Avançada
Pág. 3/7
Algoritmos Genéticos
Rodolfo Duarte e Sousa
No contexto para se encontrar uma solução óptima para
problemas de optimização combinatória de grande escala, uma
algoritmo genético básico funciona da seguinte forma. Uma
população inicial de cromossomas (os pais em potencial de uma nova
população) se mantém à margem de todo o processo evolutivo. A
cada um deles se atribui uma característica que está relacionada com
o objectivo do problema. Cada cromossoma está representado por
um ponto no espaço de simulação.
Desde o início que se tem concentrado grandes esforços
estudando as muitas variações deste esquema básico dos AGs.
Independentemente
da
sofisticação
de
um
AG,
existem
cinco
componentes que devem ser incluídas:
1. Uma representação, em termos de cromossomas, das
configurações do nosso problema
2. Uma maneira de criar as configurações da população
inicial
3. Uma
função
de
evolução
que
permite
ordenar
os
cromossomas de acordo com um a função objectivo
4. Operadores genéticos que permitam alterar a composição
dos novos cromossomas gerados pelos pais durante a
reprodução
5. Valores dos parâmetros que o algoritmo genético usa,
tamanho da população, probabilidades associadas com
aplicação dos operadores genéticos, etc.
Simulação Avançada
Pág. 4/7
Algoritmos Genéticos
Rodolfo Duarte e Sousa
Diagrama básico de um AG
Há dois aspectos importantes na Programação de Algoritmos
Genéticos que diferem um pouco da programação habitual.
Primeiro: é muito mais difícil detectar erros na programação, já
que as centenas de linhas de código se utilizaram unicamente como
melhoras sobre um esquema inicial de evolução, em muitos casos o
programa funcionará e ainda funcionará bons resultados executando
funções incorrectas, ou que não fazem o que nós achamos que
deveriam fazer.
Isto pode ser resolvido com mais programação. Uma possível
solução é estabelecer dois modos de execução do programa (modo
“normal” e modo “debug”) de forma
que no segundo modo se
executem certas comprovações sobre os processos executados,
realizando testes em modo debug e distribuindo o programa em
modo normal.
Segundo: quando se programa AG as ideias geniais nem
sempre são tão geniais. Nem sempre as centenas de linhas de código
consistem em melhoras sobre um esquema inicial de evolução. É
muito comum a existência de parâmetros que diminuem o número de
ciclos necessários para se chegar à resposta desejada, na prática não
rentáveis
dado
o
incremento
da
duração
dos
ciclos.
Quando
adicionamos uma ideia genial é interessante contemplar sempre no
programa ambas as opções, a inclusão do contrário da ideia genial, e
comparar os resultados em diversas situações. Aqui é onde se
Simulação Avançada
Pág. 5/7
Algoritmos Genéticos
Rodolfo Duarte e Sousa
encontra o verdadeiro problema, já que as opções que podem ser
prejudiciais em execuções curtas poderiam ser muito úteis na
execução mais longas (simulações mais complexas), e precisamente
estas provas nem sempre são possíveis. O mesmo ocorre na
natureza,
em
que
as
ideias
geniais
para
resolver
problemas
ecológicos podem não ser tão geniais assim. Combates constantes a
pragas nem sempre são bem sucedidos porque os cientistas se
deparam com a mutação e uma posterior resistência ao mesmo
combate.
Um sistema com bom desempenho em um ambiente dinâmico,
geralmente exige soluções adaptativas. Sistemas Adaptativos
tentam
resolver
problema
e
problemas
utilizando
acumulando
estas
conhecimento
informações
para
gerar
sobre
o
soluções
aceitáveis. Estes problemas, tipicamente, se encontram nas áreas de
configuração de sistemas complexos, a locação de tarefas, selecção
de rotas, e outros problemas de optimização. Alguns exemplos de
sistemas adaptativos:

Controle de sistemas dinâmicos

Composição musical

Simulação de modelos biológicos

Evolução Interactiva de Imagens
Uma tendência relativamente nova no campo dos AGs é a
incorporação de técnicas de busca local. Traz alguns resultados
desalentadores dos AGs a ser aplicados a algum problema
(especialmente
aos
mais
complexos)
de
optimização
combinatória, os investigadores começaram a buscar novas
maneiras para estender os AGs a obter melhores resultados.
Um passo importante nesta direcção foi dado por Muhlenbein
com o desenvolvimento de Algoritmos Genéticos Paralelos,
Simulação Avançada
Pág. 6/7
Algoritmos Genéticos
Rodolfo Duarte e Sousa
PGAs, que permitem que os indivíduos na população melhorem
o seu desempenho mediante melhoras iterativas. Nos PGAs
também permitem que os indivíduos se seleccionem entre eles
por processos locais, o que facilita a sua implementação em
sistemas concorrentes.
Simulação Avançada
Pág. 7/7
Download