Beruflich Dokumente
Kultur Dokumente
Murilo Naldi
Na aula anterior...
Vimos que alguns processos de busca
possuem como objetivo encontrar
soluções cada vez melhores para um
determinado problema
Ou seja, sair de um determinado estado
em busca de um estado melhor
Exemplos: algoritmos de subida de
encosta e têmpera simulada
2
Subida de encosta
Consiste em mudar sempre para uma
solução melhor do que anterior,
segundo uma determinada heurística
3
Têmpera Simulada
Escolhe o próximo estado aleatoriamente com
o objetivo de escapar de mínimos locais
Utiliza um parâmetro de temperatura T
4
Algoritmos Evolutivos (AEs)
Também aplicados em problemas de
busca por soluções melhores.
Inspirado na “Teoria da Evolução” de
Charles Darwin.
Na natureza todos os indivíduos dentro
de um ecossistema competem entre si
por recursos.
5
Algoritmos Evolutivos
Indivíduos de uma espécie pouco aptos
possuem menor chance de gerar prole
Essa descendência reduzida faz com
que suas características possuam uma
menor probabilidade de serem
propagadas
O contrário ocorre com os indivíduos
mais aptos!
6
Legal, mas e daí?
Imagine que um possível estado, ou
seja, uma solução para o problema
possa ser representado como um
indivíduo
Nesse caso, um conjunto de soluções é
uma população
A ideia é aplicar a seleção natural como
processo de busca por soluções
melhores
7
Visão Geral
8
Indivíduo
Na natureza, as características dos
indivíduos são codificadas em genes
Um conjunto específico de genes é
chamado de genótipo.
O genótipo é a base do fenótipo, que é
a expressão das características físicas e
mentais codificadas pelos genes.
9
Indivíduo em um AE
Genótipo é composto por um cromossomo,
ou seja, vetores de números:
Binários
Inteiros
Reais
10
Exemplo
Considere o problema de produção da aula
anterior (só que um pouco mais desafiador).
O lucro dado pelas quantidades x1, x2 e x3
de três determinados produtos, construídos
por segundo, é dado por uma função f(∙) em
centenas de reais.
Exemplo:
i ={x1 = 4, x2 = 2, x3 = 7}, f(i) = 0,05
ou seja, se produzo 4 unidades do produto 1, 2
do produto 2 e 7 do produto 3, tenho 5 reais de
lucro
11
Genótipo do exemplo
Se i é uma possível solução do problema,
podemos codificar essa solução em um
genótipo, ou seja, em um cromossomo.
Por exemplo, uma sequência de números
inteiros:
12
Fenótipo do exemplo
O fenótipo está relacionado com o resultado
que a solução i, representada pelo genótipo ci,
consegue obter.
Funções são utilizadas para medir quão bom
é um resultado.
Quanto melhor o resultado, mais apta está a
solução.
Por esse motivo, chamamos a função
utilizada para avaliar um indivíduo como
função de aptidão.
13
Exemplo
Consideremos o indivíduo i ={x1 = 4, x2 = 2,
x3 = 7}. O resultado de se gerar produtos
nas quantidades especificadas por i é o
lucro f(i).
Podemos então utilizar a função de lucro
para avaliar soluções/indivíduos e,
portanto, como função de aptidão
A aptidão de i então será f(i) = 0,05
14
População
Para aplicar seleção natural é preciso
que haja uma população, ou seja, um
conjunto de indivíduos
Cada indivíduo representa uma solução
É importante que haja diversidade entre
os indivíduos, especialmente no início
do algoritmo, para que a busca possa
ocorrer em diferentes locais do espaço
de soluções (estados).
15
População Inicial
16
População Inicial
É a primeira população do AE
17
Exemplo
Considere os três estados a seguir, de forma
que cada um seja uma possível solução para o
problema de produção.
19
Avaliação
Todas os indivíduos gerados em um AE
devem ser avaliados
Afinal, é necessário saber quão apto é
cada indivíduo
Uma vez avaliados, os indivíduos
podem ser comparados entre si
Essencial para aplicar seleção natural
20
Exemplo
Vamos supor que a função que calcula o
lucro seja esta a seguir:
2
x 1 −2 x 1 x 2 + x 2 x 3
f ( i )= 3
x3 + x1
21
Exemplo
Calculando a aptidão de cada indivíduo
temos que:
23
Seleção
Depois que avaliamos todos os indivíduos
da população, devemos gerar uma nova
população
f (ci )
pi = | P|
f (c )
j 1
j
25
Seleção Proporcional
Podemos comparar a seleção
proporcional como uma roleta em que a
fatia correspondente a cada indivíduo
segue pi
Conceitualmente, uma probabilidade é
dada por um valor positivo entre 0 e 1
Por esse motivos, os valores devem ser
tratados antes de serem usados
26
Exemplo
Voltemos para as aptidões dos
cromossomos f(c1)= 0,0310, f(c2)= 0,0179
e f(c3)= -0,0081
Não podemos ter probabilidades
negativas e queremos dar chance a todos
Uma possibilidade consiste em normalizar
os dados para um novo intervalo de
valores
27
Normalização
Consiste em transportar dados que estão
em um intervalo para o outro mantendo a
mesma proporção entre eles
Para normalizar um número x que está no
intervalo [menor1,maior1] para o intervalo
[menor2,maior2] usamos:
maior2 menor2
n( x) = ( x menor1 ) menor2
maior1 menor1
28
Exemplo
Vamos normalizar os valores das
aptidões do intervalo [-0,0081, 0,0310]
para o intervalo [1,10] por exemplo
29
Exemplo
Agora podemos calcular as probabilidades
de selecionar cada indivíduo da população
30
Seleção Determinística
Método de Torneio
Primeiramente, os indivíduos são
sorteados aleatoriamente e comparados
entre si
Em seguida, é selecionado o indivíduo
que possui maior
aptidão dentre os
dois comparados
31
Seleção Determinística
(μ,φ) : Os μ melhores indivíduos são
selecionados para gerar φ descendentes.
32
Operadores Genéticos
33
Operadores Genéticos
Operadores genéticos são responsáveis
pela modificação dos cromossomos ao
longo das gerações
São os responsáveis pela busca de
novas soluções
Podem ser guiados ou não
Quando guiados, utilizam algum tipo de
heurística que influência (guia) a forma
como são utilizados
34
Operadores Genéticos
Vamos estudar dois tipos de
operadores genéticos:
Cruzamento ou recombinação
Mutação
35
Cruzamento
Os indivíduos selecionados são cruzados
dois a dois
O cruzamento ou recombinação combina
características dos indivíduos selecionados
para gerar novos indivíduos
A ideia é obter indivíduos melhores
Algoritmos evolutivos que possuem
cruzamento são chamados de algoritmos
genéticos
36
Cruzamento
Os indivíduos selecionados são
chamados de progenitores
Os indivíduos gerados são chamados
de descendentes
O cruzamento mais simples consiste
em trocar os cromossomos de um par
de progenitores em um determinado
ponto
37
Exemplo
Sejam os cromossomos c1 e c2 selecionados
para cruzamento
39
Mutação
Modifica parte do cromossomo
(aleatoriamente ou por heurística), de modo
a gerar uma nova característica no indivíduo
que não foi recebida de seus progenitores
Objetiva gera soluções inéditas
A taxa de mutação é o parâmetro que define
a probabilidade de um cromossomo sofrer
mutação
40
Exemplo
Considere que o descendente c4 foi
selecionado para a mutação
Parte do seu cromossomo foi alterada
aleatoriamente para gerar uma
característica nova
41
Mutação e busca
Aplicar mutação é equivalente a fazer a
busca evolutiva “saltar” para outro ponto
no espaço do soluções
42
Elitismo
Os operadores de cruzamento e mutação
alteram os indivíduos de uma população
para outra
Essa alteração nem sempre melhora a
população
Por isso, é interessante manter um
conjunto com o(s) melhor(es) indivíduo(s)
de uma população para outra
Essa prática é chamada elitismo
43
Nova População
44
Nova População
Depois que os indivíduos da população
anterior são selecionados e os
operadores evolutivos são aplicados,
uma nova geração é formada
A partir da nova população, todo o
processo é aplicado novamente
Cada ciclo completo do AE é chamado
de geração
45
Critérios de parada
Em algum ponto da execução do AE é
preciso que ele pare
Não há regra estabelecida para todos os
casos
Exemplos:
Convergência da população
Número máximo de gerações
Limite de gerações sem melhora
46
Convergência da população
Mesmo com um bom operador de mutação,
com o passar das gerações, determinadas
características avaliadas como as mais
aptas tendem a dominar a população
Esse processo é chamado de
convergência da população
Uma população converge quando há pouca
diversidade entre seus indivíduos
Parar o AE quando isso ocorre é uma
prática comum
47
Número máximo de gerações
O AE termina quando um determinado
número de gerações for alcançado
Esse número deve ser pré-estabelecido
com cuidado
Se subestimado, o AE pode terminar antes
de encontrar boas soluções
Se superestimado, o tempo de execução
poderá ser alto e o AE pode executar
muitas gerações sem melhora
48
Limite de gerações sem melhora
Consiste em impor ao AE um limite de
gerações das quais não haja aumento da
maior aptidão encontrada entre os
indivíduos das populações
Assim como o número máximo de
gerações, esse limite também deve ser
estabelecido com cautela
Entretanto, esse limite possui maior relação
com a convergência da população do que o
critério anterior
49
População Final
50
População Final
A população final é o resultado do AE
Se elitismo foi aplicado, é nela que estará a
melhor solução encontrada
Caso contrário, é recomendado armazenar
o indivíduo mais apto fora das populações
A população final pode ser analisada por
um especialista do domínio, de forma à
permitir a seleção de alguns de seus
indivíduos
51
Funcionamento do AE
Para permitir uma visualização do
funcionamento do AE, considere a
função a seguir
Duas variáveis são combinadas
52
Funcionamento do AE
Considere o seguinte
corte, em que as regiões
mais altas estão
coloridas em tons de
vermelhos e as mais
baixas em tons de azul
O objetivo é encontrar os
picos mais altos (maiores
valores)
53
Exemplo: População Inicial
Inicialmente, os indivíduos
representam soluções
distantes, sorteadas no
espaço de busca
Cada um será avaliado e
as características dos mais
aptos terão maior chance
de serem mantidas nas
gerações futuras
54
Exemplo: Otimização
Com o passar das
gerações, os indivíduos
se aproximam cada vez
mais dos pontos mais
altos, a medida que
aptidão da população
vai se aprimorando
55
Exemplo: População Final
É esperado que nas
populações finais os
indivíduos representem
as melhores soluções
ou, ao menos, soluções
próximas das melhores
56
Agradecimentos
82
Bibliografia
LINDEN, R. Algoritmos Genéticos.
Brasport. 2008
83