Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2:...

41
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

Transcript of Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2:...

Page 1: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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

Page 2: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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

Page 3: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

Introdução

“Quanto melhor um indivíduo se adaptar ao seu meio

ambiente, maior será sua chance de sobreviver e

gerar descendentes.”

(DARWIN, 1859)

Page 4: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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

Page 5: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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)

Page 6: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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.

Page 7: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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.

Page 8: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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.

Page 9: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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.

Page 10: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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.

Page 11: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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

Page 12: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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.

Page 13: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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.

Page 14: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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.

Page 15: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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.

Page 16: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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

Page 17: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

Exemplo

▪ Achar ponto máximo da função

▪ f(x) = xsen(10πx) + 1, -1 ≤ x ≤ 2

Page 18: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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

Page 19: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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.

Page 20: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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

Page 21: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

Algoritmos Genéticos

Page 22: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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)

Page 23: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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.

Page 24: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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.

Page 25: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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).

Page 26: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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.

Page 27: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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.

Page 28: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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.

Page 29: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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.

Page 30: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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;

Page 31: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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.

Page 32: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

Exemplo (Artero)

Page 33: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

Exemplo (Artero)

Page 34: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

Exemplo (Artero)

Page 35: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

Exemplo (Artero)

Page 36: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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

Page 37: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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

Page 38: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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)

Page 39: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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

Page 40: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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

Page 41: Inteligência Artificial Iclaudia/Geneticos_v1.pdf · problema a ser resolvido. ... Passo 2: Cálculo da aptidão ... em calcular um valor numérico de “adaptação”, que se supõe,

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.