Title: Intelig
1Universidade Federal de Campina
Grande Departamento de Sistemas e Computação
Curso de Bacharelado em Ciência da Computação
- Inteligência Artificial I
- Resolução de Problemas (Parte VI)
- Informações Adicionais
- Prof.a Joseana Macêdo Fechine
- joseana_at_dsc.ufcg.edu.br
- Carga Horária 60 horas
Figura Capa do Livro Hamburger, H., Richards, D.
Logic and Language Models for Computer Science,
Prentice Hall.
2Em Busca de Soluções
- Tópico
- Ilustrações Algoritmos de Busca Local
- Algoritmos Genéticos
3Algoritmos Genéticos
4Algoritmos Genéticos
Fontehttp//rico_linden.tripod.com/GA/
5Algoritmos Genéticos
- Esboço do Algoritmo Genético
- Início Geração aleatória de uma população de n
cromossomos. -
- Adaptação Verificar a função objetivo f(x) de
cada cromossomo x. - População Cria-se uma nova população pela
repetição a seguir - Seleção Selecione um par de cromossomos da
população de acordo com a adaptação de cada um
(os mais bem adaptados tem maior chance de serem
escolhidos) - Crossover Produza dois descendentes (filhos)
realizando cruzamento com os cromossomos dos
pais. O ponto para a realização do cruzamento
deve ser aleatório. - Mutação Com uma certa probabilidade, o
descendente sofre mutação em cada posição no
cromossomo. - Aceitação Coloque os descendentes em uma nova
população, juntamente com a melhor solução da
geração velha.
6Algoritmos Genéticos
- Esboço do Algoritmo Genético
- Troca Substitua a população velha pela nova.
- Teste Se a condição de finalização é
satisfeita, pare, e retorne a melhor solução da
população atua. - Adaptação
- Laço Volte ao passo 1
7Algoritmos Genéticos
- Assim como na natureza, a informação deve ser
codificada nos cromossomos (ou genomas) - A reprodução, que no caso dos GA, é equivalente à
reprodução sexuada, se encarregará de fazer com
que a população evolua. - A mutação cria diversidade, mudando
aleatoriamente gens dentro de indivíduos. - A reprodução e a mutação são aplicadas em
indivíduos selecionados dentro da população.
8Algoritmos Genéticos
- Questões importantes
- Como criar cromossomos e qual tipo de codificação
usar? - É a primeira pergunta que deve ser feita ao
resolver um problema com AG. - A codificação dependerá fortemente do problema.
- Como escolher os pais para a realização do
crossover? - A geração de uma população a partir de duas
soluções pode causar a perda da melhor solução. O
que fazer?
9Algoritmos Genéticos
- Representação Cromossomial
- Cada pedaço indivisível desta representação
gene. - A representação cromossomial é completamente
arbitrária. - É interessante apenas que algumas regras gerais
sejam seguidas - A representação deve ser a mais simples possível
- Se houver soluções proibidas ao problema, então
elas não devem ter uma representação - Se o problema impuser condições de algum tipo,
estas devem estar implícitas na representação.
10Algoritmos Genéticos
11Algoritmos Genéticos
- Codificação binária
- É a mais comum devido a sua simplicidade
- Cada cromossomo é uma string de bits 0 ou 1
- Crom A 1 0 1 1 0 0 1 0 1 1
- Crom B 1 1 1 1 1 1 0 0 0 0
- Exemplo de uso problema da mochila
- O problema É dada uma lista de coisas com preços
e tamanhos. É fornecido o valor da capacidade da
mochila. Escolha as coisas de forma a maximizar o
valor daquilo que cabe dentro da mochila, sem
ultrapassar sua capacidade. - Codificação Cada bit é usado para dizer se a
coisa correspondente está ou não na mochila.
12Algoritmos Genéticos
- Codificação por permutação
- Mais usado em problemas de ordenação
- Cada cromossomo é uma string de números que
representa uma posição numa seqüência - Crom A 1 5 3 2 6 4 7 9 8
- Crom B 8 5 6 7 2 3 1 4 9
- Exemplo de uso problema do caixeiro viajante
- O problema São dadas cidades e as distâncias
entre elas. O caixeiro viajante tem que visitar
todas elas, sem viajar mais do que o necessário.
A solução do problema consiste em encontrar a
seqüência de cidades em que as viagens devem ser
feitas de forma que a distância percorrida seja a
mínima possível. - Codificação os cromossomos descrevem a ordem em
que o caixeiro irá visitar as cidades.
13Algoritmos Genéticos
- Codificação por valor
- Usado em problemas nos quais valores mais
complicados são necessários - Cada cromossomo é uma seqüência de valores
- Crom A 1.2324 5.3243 0.4556 2.3293 2.4545
- Crom B ABDJEIFJDHDIERJFDLDFLFEGT
- Crom C (back), (back), (right), (forward),
(left) - Exemplo de uso dada uma estrutura, encontrar
pesos para uma rede neural. - O problema É dada uma rede neural com
arquitetura definida. Encontre os pesos entre os
neurônios da rede de forma a obter a resposta
desejada da rede. - Codificação Valores reais num cromossomo
representam pesos em uma rede neural.
14Algoritmos Genéticos
- Função de Avaliação
- É a maneira utilizada pelos AG para determinar a
qualidade de um indivíduo como solução do
problema em questão. - É uma nota dada ao indivíduo na resolução do
problema. - Será usada para a escolha dos indivíduos pelo
módulo de seleção de pais, sendo a forma de
diferenciar entre as boas e as más soluções para
um problema. - Dada a generalidade dos AG, a função de
avaliação, em muitos casos, é a única ligação
verdadeira do programa com o problema real.
15Algoritmos Genéticos
- Função de Avaliação
- Também chamada de função de custo (função de
aptidão). - Calcula então um valor numérico que reflete quão
bons os parâmetros representados no cromossomo
resolvem o problema. - Usa todos os valores armazenados no cromossomo
(os parâmetros) e retorna um valor numérico, cujo
significado é uma métrica da qualidade da solução
obtida usando-se aqueles parâmetros. - A função de avaliação deve ser tal que se o
cromossomo c1 representa uma solução melhor do
que o cromossomo c2, então a avaliação de c1 deve
ser maior do que a avaliação de c2.
16Algoritmos Genéticos
- Seleção dos Pais
- O método de seleção de pais deve simular o
mecanismo de seleção natural - Pais mais capazes geram mais filhos
- Pais menos aptos também podem gerar descendentes.
- Temos que privilegiar os indivíduos com função de
avaliação alta, sem desprezar completamente
aqueles indivíduos com função de avaliação
extremamente baixa - Até indivíduos com péssima avaliação podem ter
características genéticas que sejam favoráveis à
criação de um indivíduo ótimo. Estas
características podem não estar presentes em
nenhum outro cromossomo.
17Algoritmos Genéticos
- Seleção dos Pais
- Método simples e muito adotado método da roleta
viciada. - Criamos uma roleta (virtual) na qual cada
cromossomo recebe um pedaço proporcional à sua
avaliação (a soma dos pedaços não pode superar
100). - Rodamos a roleta.
- O selecionado será o indivíduo sobre o qual ela
parar.
18Seleção de Pais
19Algoritmos Genéticos
- Seleção dos Pais
- Exemplo (cont.) Graficamente, temos
20Algoritmos Genéticos
- Operadores de Crossover e Mutação
- Iremos trabalhar agora com a versão mais simples
dos operadores genéticos. - Nesta versão, eles atuam em conjunto, como se
fossem um só.
21Algoritmos Genéticos
- Operador de Crossover
- Vamos começar com o operador de crossover mais
simples, chamado de operador de crossover de um
ponto. - Depois de selecionados dois pais pelo módulo de
seleção de pais, um ponto de corte é selecionado.
- Um ponto de corte constitui uma posição entre
dois genes de um cromossomo. - Cada indivíduo de n genes contem n-1 pontos de
corte.
22Algoritmos Genéticos
gen
1
2
Pontos de Corte
3
4
23Algoritmos Genéticos
- Operador de Crossover
- Depois de sorteado o ponto de corte, separa-se os
pais em duas partes uma à esquerda do ponto de
corte e outra à direita. - É importante notar que não necessariamente estas
duas partes têm o mesmo tamanho. - Primeiro filho composto através da concatenação
da parte esquerda do primeiro pai com a parte
direita do segundo pai. - Segundo filho composto através da concatenação
das partes que sobraram (a metade esquerda do
segundo pai com a metade à direita do primeiro
pai).
24Algoritmos Genéticos
- Operador de Crossover
- A operação deve ser realizada sobre os
cromossomos dos pais para a criação de
descendentes - Crom1 11010 00100110110
- Crom2 11011 11000011110
- Filho 1 11010 11000011110
- Filho 2 11011 00100110110
25Algoritmos Genéticos
Outro exemplo
Um exemplo de crossover de um ponto. (a) dois
indivíduos são escolhidos. (b) um ponto (4) de
crossover é escolhido. (c) são recombinadas as
características, gerando dois novos indivíduos.
Fonte http//www.icmc.usp.br/andre/research/gene
tic/index.htm
26Algoritmos Genéticos
- Operador de Mutação
- Depois de compostos os filhos, entra em ação o
operador de mutação. - Este opera da seguinte forma
- Ele tem associada uma probabilidade extremamente
baixa (da ordem de 0,5) - Sortea-se um número entre 0 e 1.
- Se ele for menor do que a probabilidade
pré-determinada então o operador atua sobre o
gene em questão, alterando-lhe o valor
aleatoriamente. - Repete-se então o processo para todos os gens
componentes dos dois filhos.
27Algoritmos Genéticos
- Operador de Mutação
- O objetivo da mutação é evitar que as soluções na
população fiquem apenas num mínimo local - Filho1 antes 1101111000011110
- Filho2 antes 1101100100110110
- Filho1 depois 1100111000011110
- Filho2 depois 1101101100110100
Outro exemplo
Fonte http//www.icmc.usp.br/andre/research/gene
tic/index.htm
28Algoritmos Genéticos
(a)
(b)
Pai 1
Pai 1
Selecionamos um ponto de corte
Pai 2
Pai 2
Depois do operador de crossover
Filho 1
Filho 1
Depois do operador de mutação
Gen alterado pela mutação
Filho 2
Filho 2
(d)
(c)
29Algoritmos Genéticos
- Módulo da População
- Responsável pelo controle da população.
- Por simplicidade, população não pode crescer
- permite que armazenemos a população em um vetor
de tamanho constante. - Pais têm que ser substituídos conforme os filhos
vão nascendo - Pode parecer estranho, visto que estamos
acostumados a ver a população humana sempre
crescendo. - Entretanto, simula bem ambientes de recursos
limitados.
30Algoritmos Genéticos
- Módulo da População
- Forma simples de obtenção
- A cada atuação do operador genético são criados
dois filhos. - Estes vão sendo armazenados em um espaço auxiliar
até que o número de filhos criado seja igual ao
tamanho da população. - Neste ponto o módulo de população entra em ação.
- Todos os pais são então descartados e os filhos
copiados para cima de suas posições de memória,
indo tornar-se os pais da nova geração.
31Algoritmos Genéticos
- Aspectos Práticos
- A implementação prática de um AG requer atenção
para várias questões - 1. Escolha da Função de Avaliação/Aptidão
- 2. Problemas de convergência
- 3. Escolha da Técnica de Seleção
- 4. Lacuna entre gerações (generation gap)
32Algoritmos Genéticos
- Algoritmo Genético Aplicado ao Caixeiro Viajante
- 1. Uma população inicial é gerada aleatoriamente.
Cada indivíduo da população é uma rota. Lembrando
que as cidades não podem ser repetidas. - 2. Cada indivíduo é avaliado definindo seu
fitness (valor de adequação) que é inversamente
proporcional a distância total da rota. - 3. Um número aleatório de indivíduos (pode ser
predefinido) é selecionado na roleta. - 4. Alguns dos indivíduos selecionados passam por
alterações, através dos operadores genéticos
(crossover e mutação). - 5. Uma nova população é gerada e repete-se os
passos do 2 ao 5 até que um número pré-definido
de gerações seja alcançado.
33Algoritmos Genéticos
- Exemplo de simulação solução para o Problema do
Caixeiro Viajante (PCV) - http//lsin.unisantos.br/lvcon/experimento?id3