computação evolucionária fundamentos teóricos de ag · gene → caractere, número ou bit(s)...
TRANSCRIPT
Computação Evolucionária
Prof. Rafael Stubs Parpinelli
DCC / UDESC-Joinville
Fundamentos Teóricos de AG
Fundamentos teóricos de AG
• Terminologia, AG canônico• Definição formal e operação• Critérios de término• Codificação• Função objetivo e função de fitness• Operadores genéticos básicos• Convergência, exploração e diversidade
genética• Escalonamento de fitness• Métodos de seleção
• Influência da Biologia (Genética e Ecologia)• Relembrando...
– Um organismo é definido pelos seus cromossomos (Homo Sapiens: 23 pares)
– Cada cromossomo tem inúmeros genes (H.sapiens 50.000 genes no total) e seqüências inter-gênicas
– Cada gene contém exons e outras seqüências não-codificantes (introns)
– Parte dos exons quanto ligados seqüencialmente e tomados em triplas serão os códons que codificam uma proteína com função biológica
Terminologia
Terminologia Ambiente → Espaço de busca do problema Cromossomo → Vetor solução ou indivíduo Locus → Posição no cromossomo Gene → Caractere, número ou bit(s) Genótipo → Estrutura, parâmetros Fenótipo → Solução ou ponto no espaço de busca Epistasia → Interferência entre genes Pleitropia → Quando um gene influencia múltiplas
características fenotípicas Poligenia → Quando uma característica fenotípica é
determinada pela interação de vários genes Ploidia → Relativo ao número de genes no cromossomo Geração → Iteração
• Haploide: um único cromossomo – em geral organismos simples (bactérias). Exemplos de multiploidia:– Diploide – mamíferos– Triploide – salamandra– Tetraploide – batata– Hexaploide – trigo
• Na multiploidia os cromossomos são homólogos e trazem a mesmo informação
• No caso de AG, a multiploidia serve como “memória”, permitindo múltiplas soluções e a preservação de informação em ambientes dinâmicos (reduz o efeito destrutivo dos operadores genéticos)
Multiploidia
Definição formal de parâmetros• Baseado em Hoffmeister e Bäck (1990)• Definição de um AG simples como uma 8-tupla:
Critérios de término
• Parar após um período determinado de tempo ou número máximo de gerações
• Parar quando a média de fitness da população estiver próxima ao mínimo ou máximo
• Parar quando não houver melhora significativa do máximo
• Parar quando o ótimo for atingido• Parar quando encontrar uma solução melhor do
que outra existente (segundo algum critério)
Princípios da codificação• A codificação é um dos dois problemas fundamentais na
aplicação de AG’s em problemas práticos• Um problema mal codificado pode impedir a
convergência do AG ou a obtenção de uma boa solução• Princípios da codificação:
– Princípio dos blocos construtivos significativos• Como uma regra prática útil, sempre se deve colocar parâmetros
importantes ou que tenham alguma inter-relação juntos ou próximos no string, de modo a constituir blocos construtivos úteis
– Princípio dos alfabetos mínimos• O usuário deverá selecionar o menor alfabeto que permita a
expressão natural do problema• Para a maioria dos casos, a representação é simples e direta
através do mapeamento das variáveis do problema em um string binário. Ou seja, cada variável é digitalizada com o número de bits que for necessário para alcançar a precisão desejada do problema
Tipos de Codificação Binário: 1D, 2D, 3D Real Inteiro Ordem Árvore, ...
Ex de cromossomo segmentado com diferentes tipos de codificação: Um certo engenheiro precisa otimizar um projeto visando minimizar os custos. Para isso, ele deve ordenar a entrega de 20 caixas, além de decidir o volume de cada uma e se em determinada entrega ela deve ou não ser usada.
10 18 1 19 8 13 ..... ..... .....1,3 9,1 5,8 3,0 1,4 3,3 1 1 1 10 0
SEGMENTO DE ORDEM SEGMENTO REAL SEGMENTO BINÁRIO
1 Cromossomo
Codificação binária• Codificação de números inteiros
– Binário natural
• Ex: Achar o tamanho de uma string (número de bits) para uma função f(x) que varia entre [-5, 5].
• Codificação de números reais em binário– Quantização ou “discretização”: mapeamento em um
intervalo binário finito– Número de bits proporcional à precisão (arbitrária). Ex:
10-2
• Ex: Achar o tamanho de uma string (número de bits) para uma função f(x) que varia entre [-5, 5], considerando uma precisão de duas casas decimais
2L−1<Xmax−Xminprecisão
<2L
2L−1<Xmax−Xmin<2L
Codificação binária• Codificação de múltiplos parâmetros
– Cada variável = um gene– Concatenação de vários parâmetros em um único
string
• Mapeamento Genótipo Fenótipo (ajuste de escala)– b = [bL-1bL-2...b2b1b0] bi {0, 1}
– d = (i=0...L-1)bi2i, valor decimal de “b”
– Mapeamento bdx
x=Xmin+( Xmax−Xmin2L−1 )∗db d x
0L-10L-2...00 0 Xmin
1L-11L-2...11 2L Xmax
• Quando se tem muitas variáveis e é necessário alta precisão– Cromossomos muito longos espaço de busca intratável! Ex:
• 100 variáveis, cada uma no intervalo [-500, 500]• Precisão de 6 dígitos decimais• 30 bits por variável
• Espaço de busca: 23000 101000
• Processamento é rápido• Exige operadores específicos
– Mutação: randômica ou incremental– Crossover aritmético
Codificação com números reais
Codificação para problemas combinatoriais
• Alternativas para permutações– Utilizar números inteiros– Utilizar um alfabeto restrito– Utilizar binário e decodificar adequadamente
• Implica em operadores genéticos especialmente adaptados para preservar a integridade do cromossomo
Função objetivo x Função de fitness• Mapeamento fobjetivo ffitness
• Por definição ffitness é não negativa e desejavelmente deve ser normalizada em um intervalo conhecido
• Minimização de custo:
• Maximização de lucro:
Restrições• Muitas aplicações reais exigem que a função objetiva seja
submetida a restrições:
• As restrições limitam os valores possíveis das variáveis do problema e afetam diretamente a codificação do problema
• Como satisfazer as restrições– Desprezar a solução
– Fazer uma codificação especial, adaptada para cada variável
– Permitir uma codificação mais flexível e aplicar penalidades no caso de violação de restrições
Minimizar f(x)s.t. h
i(x) ≤ 0, i = 1, ..., q
gj(x) = 0, j = 1, ..., m
L ≤ x ≤ U
Aplicação de penalidades• A aplicação de penalidades à função objetivo transforma o
problema numa forma unconstrained:
. Θ é a função de penalidade
. r e c são coeficientes de penalidade
Os coeficientes de penalidade (r e c) ponderam o quão grave é a violação das restrições para o problema
• O conjunto das penalidades deve ser normalizado na mesma faixa de valores da normalização da função objetivo
Maximização de função algébrica
• A função possui 12 máximos locais e 1 máximo global
• Pergunta-se:– Qual o espaço de
busca para uma precisão de 4 casas decimais?
• Pergunta-se:– Qual o tamanho do indivíduo do AG para
cobrir todo o espaço de busca?– Faça o mapeamento Genótipo x Fenótipo para
os seguintes indivíduos:• 0000000000000000 d? x?
• 0000000000000101 d? x?
• 1000000000000111 d? x?
• 1111111111111111 d? x?
– Defina a função de fitness para o problema.
Maximização de função algébrica
Roteiro para modelagem de problemas utilizando AGs
• Definir a natureza do problema:– Maximização, minimização ou multiobjetivos
• Combinatorial ou não• Decidir se uma busca exaustiva ou métodos exatos são mais
indicados• Codificação
– Identificar o conjunto de variáveis e o possível relacionamento entre elas– Definir o formato de codificação: binário natural, inteiro, real ou outro– Definir a precisão necessária de cada variável– Definir o tamanho de cada gene e do cromossomo
• Definir a função objetivo• Restrições
– Identificar as restrições aplicáveis às variáveis– Definir como tratar as restrições– Determinar a função e o coeficiente de penalidade
• Definir a função de fitness e sua normalização
Exercício: fábrica de rádios(projete o problema para um AG)
• Considere uma fábrica de rádios que possui duas linhas de produção– Rádios Standard
– Rádios Luxo
• Informações dos rádios Standard– Linha de produção comporta um máximo de 24 funcionários
– Cada rádio consome 1 homem/dia para ser produzido– Cada rádio fornece R$30,00 de lucro
• Informações dos rádios Luxo– Linha de produção comporta um máximo de 32 funcionários
– Cada rádio consome 2 homem/dia para ser produzido
– Cada rádio fornece R$40,00 de lucro
• A fábrica possui um total de 40 funcionários a serem alocados nas duas linhas de produção
• Objetivo: Maximizar o lucro diário.
• Encontre os valores de fitness para os seguintes indivíduos:– 1011001111
Lucro(ST, LX) = 940
Fitness(ST, LX) = 940/1360 – 0,125 = 0,56
– 1011111110
Lucro(ST, LX) = 1010
Fitness(ST, LX) = 1010/1360 – 0 = 0,74
Exercício: fábrica de rádios(projete o problema para um AG)
ST LX ST LX13 30
Decimal
ST LX10 16Gen Fen
10110 01111
ST LX ST LX29 15
Decimal
ST LX23 8Gen Fen
10111 11110
Menossignificativo
Maissignificativo
• Uma fábrica de computadores produz 2 modelos de computadores– Modelo A: lucro de R$180,00 e requer 1 gabinete
pequeno e 1 unidade de disco– Modelo B: lucro de R$300,00 e requer 1 gabinete
grande e 2 unidades de disco
• Existem no estoque:– 60 unidades do gabinete pequeno– 50 unidades do gabinete grande– 120 unidades de disco
• Qual deve ser o esquema de produção que maximiza o lucro?
Exercício: fábrica de computadores (projete o problema para um AG)
• Encontre os valores de fitness para os seguintes indivíduos:– 011011010100
– 111100100100
Exercício: fábrica de computadores
Seleção• Seleção não é operador genético• A seleção é um processo executado a
priori a fim de selecionar indivíduos sobre os quais serão aplicados os operadores genéticos
• É na seleção onde se evidencia o processo de seleção natural de Darwin
• Os indivíduos mais bem adaptados ao ambiente têm maior probabilidade de se reproduzir e passar seu material genético para os descendentes
Métodos de seleção:Seleção proporcional
• É o método clássico também conhecido como roulette wheel (roleta). Utiliza fitness relativo.
• Pode se tornar ineficiente induzindo a convergência prematura para máximos locais
i string fitness Fit. Rel. (%)
1 011101 169 14,4
2 111000 576 49,2
3 011000 64 5,5
4 101011 361 30,9
Soma 1170 100%
• Ranking Uniforme (ordenamento ou graduação)– Os cromossomos são ordenados de acordo
com a função objetivo. Os valores de fitness são atribuídos com base somente nesta ordem
• Ex: para 100 indivíduos, poderia atribuir fitness 100 para o melhor indivíduo, 99 para o segundo melhor e assim por diante
• Amostragem estocástica sem reposição– Calcula-se o fitness relativo de cada indivíduo
(idem à roleta) e, para cada vez que um indivíduo é selecionado, subtrai-se 1 da probabilidade esperada, até que seja 0
Métodos de seleção
• Amostragem determinística– Calcula-se a probabilidade esperada de cópias de
cada indivíduo e, de modo determinístico, alocam-se cópias correspondentes às partes inteiras dos valores esperados. As partes fracionárias são colocadas em ordem e as cópias restantes retiradas desta lista
• Resto estocástico– Idem ao anterior mas as partes fracionárias são
usadas para compor uma roleta
• Torneio estocástico– Seleciona-se k indivíduos aleatoriamente, ordena-se,
e apenas o melhor (ou 2) é selecionado
Métodos de seleção
Métodos de seleção:alguns parâmetros de classificação
• Seleção estática x Seleção dinâmica
• Seleção preservativa x Seleção extintiva
Métodos de seleção:alguns parâmetros de classificação
• Seleção elitista x Seleção pura
f : Ι→ℜ
f (ait)−1°f (ait−1): Ι→Ι
Operador de crossover (recombinação)
• Realiza busca local (exploitation), através de recombinação de genes de dois cromossomos-pai, gerando dois cromossomos-filho
• Variações: 1-ponto, 2-pontos, ...
Operador de mutação• Realiza busca global (exploration), através de
uma modificação aleatória de um bit• Objetivos:
– Introduzir novos indivíduos na população
– Evitar a perda irrecuperável de informação genética
• Probabilidade de mutação (pm):– Se for muito alta: busca aleatória– Se for muito baixa: busca localizada
– Em geral, pm=1/ por bit
Operador de inversão
• Tem efeito equivalente a várias mutações• É aplicável a cromossomos de comprimento
elevado• Pode ser útil em problemas de permutação
Operadores de ordenamento
• Utilizado em problemas combinatoriais / permutação
• Não se pode utilizar crossover tradicional pois gera soluções inválidas
• Codificação específica, geralmente com números inteiros– PMX, CX, ...
PMX – Partially Matched Crossover• O algoritmo tem três passos:
– Escolhe-se aleatoriamente dois pontos para corte– Trocam-se as partes da matching section– Mapeia-se o restante dos alelos
• Cada filho tem um ordenamento parcialmente determinado por cada um de seus pais
Definições• On-line performance é a média de todas as
avaliações de fitness até o momento – medida do desempenho instantâneo
• Off-line performance é a média dos melhores indivíduos de cada geração – medida da convergência
Definições• Diversidade genética
– Medida de não-semelhança entre indivíduos de uma população. Para AGs em geral pode ser medida pela distância de Hamming entre os indivíduos.
• Pressão seletiva– Efeito das discrepâncias de fitness entre
indivíduos da população na preferência pela seleção. Quanto maiores as diferenças, maior a pressão seletiva em benefício dos valores mais altos de fitness.
Pressão seletiva x Diversidade genética
• Problema– Nas primeiras gerações ocorre convergência
prematura– Alta diversidade genética– Alta discrepância de fitness– Alta pressão seletiva– Rápida perda de diversidade genética– Convergência prematura
– Em gerações maduras ocorre “chegada lenta”– Baixa diversidade– Baixas discrepâncias de fitness– Baixa pressão seletiva– Evolução lenta ou estagnação
• Solução– Controlar pressão seletiva
Controle de pressão seletiva• É interessante que a pressão seletiva seja
baixa no início do processo evolutivo
• Nas últimas gerações é interessante aumentar a pressão seletiva
• Métodos de escalonamento– Escalonamento linear, ranking, janelamento,
sigma-truncation– Evitam que alguns super-indivíduos
dominem a população no início da busca e geralmente produzem melhores resultados na otimização de problemas multimodais
Escalonamento linear• Objetivo:
– Manter o fitness escalonado médio igual ao fitness não-escalonado médio
• O valor máximo escalonado seja igual ao valor médio escalonado vezes uma constante ‘C’ (razão desejada entre o fitness escalonado do melhor indivíduo e o fitness escalonado médio)
• Promove “compressão” e “expansão” de escalaCoeficientescalculados a cada geração
• Dados os valores não-escalonados fmin, fmax e favg, e o valor da constante C, calcula-se os valores de e :
Escalonamento linear
se f min>C∗f avg− f max
C−1
então { α=f avg∗(C−1)
f max− f avg
β=f avg∗(f max−C∗f avg)
f max−f avg} senão { α=
f avgf avg− f min
β=− f min∗f avgf avg− f min
}
Escalonamento linear• Dada duas tabelas com populações em estágios diferentes. Pede-se:
– Classifique a “idade” das populações (nova ou madura) e justifique a resposta.
– Complete a tabela e indique qual o valor mais adequado para a constante C para cada população, justificando a resposta.
Definições
• Elitismo: – Elitismo é a manutenção dos k-melhores indivíduos de
uma geração para a geração seguinte– É um complemento aos métodos de seleção
– Para problemas unimodais acelera a convergência, aumentando a busca local
– Para problemas multimodais pode tornar mais difícil a busca
– Deve ser utilizado com cuidado pois pode induzir à convergência prematura se o método de seleção for “agressivo”
• Diferenças entre gerações (Generation Gap)– Foi definido por DeJong em 1975– É uma maneira de permitir a sobreposição ou
não de duas populações consecutivas• G = 1. É o modelo tradicional sem sobreposição,
onde 100% da população é substituída a cada geração. Este é o modelo geracional (generational).
• 0 < G < 1. G novos indivíduos serão gerados para substituir parte da população. Causa uma desaceleração da velocidade de evolução. Este é o modelo de estado estável (steady-state).
Definições
Definições• Nichos e espécies
– Inspiração na natureza onde espécies diferentes se agrupam num mesmo nicho ecológico competindo entre si pelos recursos naturais.
– Em AGs, se dá através da manutenção de sub-populações estáveis com baixa competição entre as mesmas.
– Dois objetivos básicos em se utilizar nichos:• Quando se deseja não apenas uma solução mas um
conjunto das melhores soluções;• Permitir uma melhor exploração do espaço de busca
para problemas multimodais.• Manutenção da diversidade genética
Definições• Compartilhamento (Sharing)
– Transforma o fitness crú de um indivíduo em fitness compartilhado
– A ideia é que existe uma quantidade fixa e limitada de recursos disponíveis em cada nicho. Indivíduos que ocupam o mesmo nicho terão que compartilhar estes recursos
– Diminui o nível de competição entre indivíduos que estejam distantes no espaço de busca
– A semelhança pode ser a nível de fenótipo ou de genótipo
– Quando há muitos indivíduos próximos, ocorre uma diminuição dos fitness desse grupo
– Este processo limita o crescimento indiscriminado de uma sub-população numa região do espaço de busca
Fitness Sharing Medida de distância (dissimilaridade)
entre indivíduos deve ser calculada
Esta distância deve ser normalizada Indivíduos idênticos possuem valor zero (0) O maior valor de dissimilaridade possui
valor um (1). Maior discrepância. A função de compartilhamento determina
quando dois indivíduos irão compartilhar seus fitness e também é normalizada
Zero (0) para os indivíduos mais distantes Um (1) para indivíduos idênticos
Fitness Sharing O fitness compartilhado pode ser
calculado por
Note que um indivíduo sempre compartilha o fitness com ele próprio:
O denominador nunca será menor que 1
Fitness Sharing A função de compartilhamento pode ser
definida por
A constante σ determina o tamanho do nicho e α determina o formato da curva
Definições• Fator de crowding (fc)
– Um novo indivíduo gerado substitui o indivíduo mais semelhante a ele na população antiga, escolhido entre fc indivíduos escolhidos aleatoriamente na população.
– Diminui a competição inter-espécies (indivíduos muito diferentes) e aumenta a competição intra-espécies.
– Melhora a exploração do espaço de busca através da manutenção da diversidade genética.
– Útil para busca de vários sub-ótimos.