computação evolucionária fundamentos teóricos de ag · gene → caractere, número ou bit(s)...

54
Computação Evolucionária Prof. Rafael Stubs Parpinelli DCC / UDESC-Joinville [email protected] Fundamentos Teóricos de AG

Upload: vuongtuong

Post on 24-Nov-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Computação Evolucionária

Prof. Rafael Stubs Parpinelli

DCC / UDESC-Joinville

[email protected]

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

AG canônico

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)

Genótipo X Fenótipo

Genótipo X Fenótipo

Decodificação

Seleção

Codificação

Recombinação

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 de fitness• É o ponto mais crítico de uma aplicação real• Abordagem da caixa preta

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

CX – Cycle Crossover

• Não usa pontos de corte• Mantém o ponto de início para completar um ciclo

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.