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

Post on 18-Jan-2019

218 views 0 download

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

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.