Algoritmos Genéticos
Aula I – Introdução
Universidade Estadual do Oeste do Paraná
Curso de Bacharelado em Ciência da Computação
Inteligência Artificial
Roteiro
▪ Introdução
▪ Computação Evolutiva
▪ Algoritmos Genéticos (AGs) e Inspiração Biológica
▪ Funcionamento básico (busca pela solução)
▪ Algoritmo básico
▪ Exercício
Introdução
“Quanto melhor um indivíduo se adaptar ao seu meio
ambiente, maior será sua chance de sobreviver e
gerar descendentes.”
(DARWIN, 1859)
Introdução
“Quanto melhor um indivíduo se adaptar ao seu meio
ambiente, maior será sua chance de sobreviver e
gerar descendentes.”
(DARWIN, 1859)
Adaptação como inteligência (Piaget)
A adaptação de um organismo pode ser medida pelo
sucesso do mesmo em sua vida
Fundamentação Teórica
▪ Algoritmos Genéticos (AGs), são métodos de otimização inspirados em evolução▪ J. Holland (1975), D. Goldberg (1989)
▪ Teoria da Evolução▪ Indivíduos mais adaptados sobrevivem e transmitem
suas características para as gerações seguintes
▪ Charles Darwin (Origem das Espécies, 1859)
Introdução
▪ Computação evolutiva ou evolucionária é um ramo
da Ciência da Computação que propõe um
paradigma alternativo à computação tradicional.
▪ É utilizado quando não se tem conhecimento prévio
de como encontrar a solução.
Computação Evolutiva/Evolucionária
▪ A Computação Evolutiva/Evolucionária compreende
um conjunto de técnicas de busca e otimização
inspiradas na evolução natural das espécies.
▪
▪ Cria-se uma população de indivíduos que vão
reproduzir e competir pela sobrevivência.
▪ Os melhores sobrevivem e transferem suas
características a novas gerações.
Computação evolutiva: AGs
▪ Algoritmos Genéticos são o ramo mais conhecido
da Computação Evolutiva
▪ Considerado um método de busca cega
▪ Não tem conhecimento específico sobre o problema;
▪ Guiado apenas pela função objetivo.
▪ São inspirados nos processos genéticos de
organismos biológicos para procurar soluções
ótimas ou sub-ótimas.
Algoritmos Genéticos
Inspiração biológica
▪ Evolução é o processo através do qual ocorrem as mudanças ou transformações nos seres vivos ao longo do tempo, deixando-o mais capacitado para conseguir viver no seu ambiente.
Algoritmos Genéticos
Inspiração biológica
▪ A seleção natural é um processo de evolução(essencial à vida) que explica a adaptação e especialização dos seres vivos em determinadosambientes.
Algoritmos Genéticos
Inspiração biológica
Cromossomos
▪ Todo organismo vivo consiste de células.
▪ Em cada célula existe o mesmo conjunto de
cromossomos
▪ Cromossomos consistem de genes – sequências
de DNA - que servem para determinar
características de um indivíduo
Algoritmos Genéticos
Inspiração biológica
Reprodução
◼ Durante o processo de reprodução ocorre a
recombinação (crossover) de genes, ou seja,
genes dos pais se combinam para formar novos
cromossomos.
◼ Os descendentes criados podem sofrer
mutações, ou seja, os elementos do DNA podem
ser trocados.
Conceitos utilizados em AGs (Artero)
▪ Genes: correspondem a uma representação de algum parâmetro de interesse, de acordo com algum alfabeto, podendo usar valores inteiros, reais e cadeias de caracteres. O mais comum é utilizar alfabeto binário: 0 e 1.
▪ Cromossomos: correspondem a uma cadeia de genes que representam cada indivíduo da população. Ex: cromossomo1={100001011101}▪ Evoluem ao longo das gerações;
▪ Indivíduos: um indivíduo corresponde a um cromossomo e representa as soluções a serem encontradas em um problema de otimização.
Conceitos utilizados em AGs (Artero)
▪ População: a população é formada por um conjunto de indivíduos que irão competir pela sobrevivência e pela reprodução, objetivando perpetuar suas características. ▪ População: conjunto de todas as soluções
(cromossomos) com as quais trabalha o sistema
▪ Geração: uma geração corresponde a uma população em um certo período. Corresponde aos valores dos indivíduos obtidos em uma dada interação.
Conceitos utilizados em AGs (Artero)
▪ Função de aptidão: é usada para medir a habilidade do indivíduo para sobreviver e se reproduzir. São funções matemáticas que devem ser maximizadas ou minimizadas, de acordo com o problema a ser resolvido.▪ Aptidão representa sua habilidade em solucionar o
problema em questão.
Retomando…
▪ Espaço de Busca ▪ Possíveis soluções de um problema
▪ Meta:▪ Encontrar a solução que corresponda ao ponto de
máximo (ou mínimo) da função objetivo
Exemplo
▪ Achar ponto máximo da função
▪ f(x) = xsen(10πx) + 1, -1 ≤ x ≤ 2
Otimização - Dificuldades
▪ Alguns problemas podem ter espaços de busca
muito grandes
▪ Muitos algoritmos não são capazes de localizar o
ótimo global na presença de múltiplos ótimos
locais
AGs (Artero)
▪ Os Algoritmos Genéticos apresentam características
que os diferem das técnicas de otimização
convencionais:
▪ Trabalham, na maioria das vezes, com codificação do
conjunto de parâmetros e não com os próprios
parâmetros;
▪ Trabalham com uma população e não com um valor.
Algoritmos Genéticos
▪ Geração de um conjunto inicial de soluções que
são iterativamente melhoradas
▪ População de indivíduos (cromossomos)
▪ Busca de soluções seguem um processo
evolutivo
▪ Seleção dos mais aptos + Transmissão de
características
Algoritmos Genéticos
Algoritmos Genéticos
▪ Passo 1: Geração de uma população inicial com indivíduos
escolhidos aleatoriamente
▪ Passo 2: Cálculo da aptidão
▪ Cálculo da função de fitness (usando função objetivo)
▪ Passo 3: Seleção de indívíduos mais aptos
▪ Passo 4: Geração de uma nova população a partir dos indivíduos
selecionados e ir para Passo 2
▪ Operadores (cruzamento e mutação)
Algoritmos Genéticos
Inicialização
▪ É gerada uma população de n indivíduos, onde
cada um deles representa uma possível solução
para o problema (um ponto no espaço de soluções).
▪ Geralmente estes indivíduos recebem valores
aleatórios, mas caso o projetista tenha um
conhecimento considerável do problema a ser
abordado (heurísticas) ele pode fazer com que
estes indivíduos iniciais recebam valores
direcionados.
Algoritmos GenéticosSeleção ou Cálculo da Aptidão
▪ A avaliação permite ao AG determinar sua
proximidade à solução ótima do problema.
▪ A avaliação é feita através da função objetivo, que
irá dirigir o processo de busca.
▪ Dado um cromossomo, a função objetivo consiste
em calcular um valor numérico de “adaptação”, que
se supõe, seja proporcional à sua "utilidade" ou
"habilidade" de representar a solução do problema
em questão.
Algoritmos Genéticos
Seleção ou cálculo de aptidão
▪ A seleção visa fazer com que os indivíduos mais
aptos tenham prioridade na escolha para
reprodução, aumentando a probabilidade de
transmitir seu código genético às próximas gerações
▪ Quanto melhores forem os indivíduos selecionados
para reprodução, melhores serão os indivíduos
gerados à partir deles (mas isto é uma suposição -
nem sempre ocorre).
Algoritmos Genéticos (Artero)Seleção ou Cálculo da Aptidão
▪ A seleção é usada para escolher os indivíduos para a
reprodução, podendo ser realizada de diferentes
maneiras, porém, as propostas mais comuns são:
▪ Seleção aleatória: são escolhido, aleatoriamente,
dois indivíduos da população.
▪ Seleção por torneio: são escolhidos,
aleatoriamente, dois indivíduos da população e o
melhor deles, segundo a função de aptidão, é o
escolhido para a reprodução. Repete-se para
encontrar o segundo indivíduo para participar do
cruzamento.
Algoritmos Genéticos (Artero)Seleção ou Cálculo da Aptidão
▪ Seleção usando roleta: as habilidades de todos os
indivíduos da população são calculadas e os valores
obtidos corresponderão, proporcionalmente, aos
setores de uma roleta.
▪ Girando a roleta a chance dos setores maiores
serem selecionados será maior.
▪ Ex. C4 e C2 com maior habilidade para sobreviver =
maior chance de serem selecionados.
Algoritmos Genéticos (Artero)
Cruzamento (crossover)
▪ Ocorre o cruzamento entre o material genético de
dois indivíduos.
▪ No caso binário, são usados pontos de corte
posicionados aleatoriamente entre os bits.
▪ Dois exemplos: um com 1 corte e outro com dois
cortes.
▪ A quantidade necessária de cruzamentos é aquela
que leva a uma nova geração com a mesma
quantidade de indivíduos que a população inicial.
Algoritmos Genéticos (Artero)
Mutação
▪ O cromossomo pode ser modificado em algumas de
suas partes, assumindo características que não
pertencem aos pais.
▪ A probabilidade da mutação ocorrer é muito baixa,
em torno de 1%.
▪ No caso binário, a mutação consiste em inverter
alguns bits.
Algoritmos Genéticos
Mutação
▪ Garante a diversidade das características dos
indivíduos da população;
▪ Permite que sejam introduzidas informações que
não estiveram presentes em nenhum dos
indivíduos;
▪ Proporciona uma busca aleatória, oferecendo
oportunidade para que mais pontos do espaço de
busca sejam avaliados;
Algoritmos Genéticos
Condição de parada
▪ Para determinar o final da evolução pode-se fixar:
▪ Número de gerações;
▪ Número de indivíduos criados;
▪ Atingir um ponto ótimo;
▪ Ou ainda:
▪ Tempo de processamento;
▪ Grau de similaridade entre os elementos numa população.
Exemplo (Artero)
Exemplo (Artero)
Exemplo (Artero)
Exemplo (Artero)
Observações Importantes (Prudêncio)
▪ Operador Crossover considera características
importantes presentes nos pais
▪ Aplicado a uma taxa relativamente alta, mas cuidado
com efeitos destrutivos
▪ Operador Mutação explora novas características
nos indivíduos que seriam possivelmente úteis
▪ Aplicado a uma taxa relativamente baixa, mas
dependendo do problema e operador use taxas mais
altas
Observações Importantes (Prudêncio)
▪ Convergência Prematura
▪ Em algumas execuções, AG pode convergir para soluções
iguais
▪ Cromossomos com boa aptidão (mas ainda não ótimos) que geram
filhos com pouca diversidade
▪ Nesses casos, aconselha-se:
▪ Aumento da taxa de mutação e crossover
▪ Evitar a inserção de filhos duplicados
Observações Importantes (Prudêncio)
▪ Critérios de Parada
▪ Número máximo de gerações
▪ Função objetivo com valor ótimo alcançado (quando esse
valor é conhecido)
▪ Convergência na função objetivo (i.e., quando não ocorre
melhoria significativa da função)
Observações Importantes (Prudêncio)
▪ População inicial
▪ Não pode ser excessivamente pequena
▪ Pouca representatividade do espaço de busca
▪ Não pode ser excessivamente grande
▪ Demora na convergência
▪ Para melhorar a representatividade população inicial pode
possuir indivíduos igualmente espaçados no espaço de
busca
Algoritmos Genéticos -Aplicações
▪ Em problemas difíceis de otimização, quando não
existe nenhuma outra técnica especifica para
resolver o problema.
▪ Otimização de funções numéricas em geral
▪ Otimização combinatória
▪ Problema do caixeiro viajante
▪ Problema de transporte, alocação
▪ Problemas de conexão (árvore, emparelhamento, caminhos).
▪ Otimização multiobjetivo
Algoritmos Genéticos
Referências:
ARTERO, Almir Olivette. Inteligência Artificial, teórica
e prática. São Paulo: Livraria da Física, 2009.
Lâminas do prof. Ricardo Prudêncio e Estéfane G. M.
de Lacerda
Sites da Internet.