Algoritmos Genéticos Uma visão geral do método Cláudio M. N. A. Pereira.

96
Algoritmos Genéticos Uma visão geral do método Cláudio M. N. A. Pereira

Transcript of Algoritmos Genéticos Uma visão geral do método Cláudio M. N. A. Pereira.

Algoritmos GenéticosUma visão geral do método

Cláudio M. N. A. Pereira

Sumário

• Introdução à Computação Evolucionária;

• Algoritmo Genético

Computação Evolucionária

Computação Evolucionária compreende um conjunto de modelos e técnicas computacionais inspirados na teoria da evolução das espécies.

As principais áreas de sua utilização são:- Otimização- Inteligência Artificial (Aprendizado de Máquina)

Computação Evolucionária - CE

Algumas aplicações:- Projetos automatizados- Planejamento de tarefas e agendamentos

- alocação de recursos (máquinas/pessoal)- planejamento de manutenções em sistemas- planejamento de rotas

- Aprendizado de máquina- robôs autônomos- jogos

- Descoberta de conhecimento em bases de dados

Aplicações da CE

Projetos automatizadosO que se deseja projetar

Programa de simulação

computacional

Resultado dasimulação

- O especialista propõe projeto inicial- O projeto é simulado em computador- Os resultados são analisados pelo especialista- O especialista procura adequar o projeto à sua

finalidade

Proposta de projeto

Especialista

Aplicações da CE

Planejamento e alocação de tarefasO que se deseja planejar

Checa disponibilidadedos professores

Resultado daconsulta- O coordenador propõe grade horária

- Verifica em um BD a disponibilidade de professores

- Adequa a proposta à disponibilidade- Resolve pendências

Proposta de planejamento

Aplicações da CE

Aprendizado de Máquina

Teste da solução

Resultado do teste- O especialista propõe um algoritmo ou

regras- A solução do problema utilizando o

algoritmo é testada- Com os resultados do teste o especialista

adequa o algoritmo/regras

Proposta de algoritmo ou regras

Aplicações da CE

Nas aplicações anteriores, a Computação Evolucionária pode fazer as vezes do especialista, testando, avaliando soluções e propondo melhorias em busca de uma solução ótima.

ComputaçãoEvolucionária

Computação Evolucionária

Algumas técnicas/ferramentas da CE:

- Algoritmos Genéticos (o pai de todos)

- Programação Evolucionária (estruturas de dados mais elaboradas de acordo com a aplicação)

- Classifier Systems (Machine Learning: aprendizado de regras)

- Programação Genética (Machine Learning: aprendizado de programas em geral)

Algoritmos Genéticos

Algoritmos Genéticos são técnicas de otimização global inspiradas na teoria da evolução das espécies.

“Pontos fortes” dos AG’s

• Opera sobre uma codificação genérica dos parâmetros da otimização;

• Otimização em escopo global;

• Não necessita de conhecimento, a priori, de características do espaço de busca;

Otimização

Definição 1:

É a busca da melhor solução para um determinado problema.

Definição 2:

É maximizar ou minimizar algo.

Um processo de otimização clássico

1 Propor candidato a solução;

2 Obtém-se saídas de interesse e avalia-se os objetivos;

3 Baseado em algum tipo de análise do resultado obtido, propõe-se nova tentativa.4 Voltar ao passo 2

Algumas técnicas clássicas

1 Conhecimento especialista;

3 Programação inteira;

2 Busca gradiente (por exemplo: programação linear + análise de sensibilidade);

4 Técnicas baseadas na análise do espaço de busca (derivadas, limites, etc);

5 etc;

Uma tarefa difícil

Otimização global e sem conhecimento do espaço de busca.

Otimização Global

V1

V2

Função Multi-modal (vários sub-ótimos)

Ótimo Local ou sub-ótimo

Ótimo Global

O Clássico “Hill-Climbing”

1 “Chuta-se” ponto inicial;

3 Analisa-se a tendência, ou seja, a direção e sentido para onde deve caminhar a próxima tentativa;

2 Avalia a proposta;

4 Novo “chute”;

5 Se parar de melhorar, FIM, senão, volta para 2”;

O Clássico “Hill-Climbing”

V1

V2

Chute inicial

Melhora

O Clássico “Hill-Climbing”

V1

V2

Tentativa 2

O Clássico “Hill-Climbing”

V1

V2

Tentativa 3

O Clássico “Hill-Climbing”

V1

V2

Tentativa 4

O Clássico “Hill-Climbing”

V1

V2

Tentativa 5

Um dilema

• Técnicas formais de otimização global demandam conhecimento do espaço de busca (concavidade, limites, derivadas, etc)

• Técnicas que não demandam conhecimento do espaço de busca são susceptíveis à convergência local.

Proposta de solução

Utilizar algoritmos baseados em população, como por exemplo:

Algoritmos Genéticos (AG).

O preço da solução

Elevado custo computacional, quando comparado com o custo demandado por técnicas tradicionais, como as mencionadas anteriormente.

AG´s e Otimização Global

• Parte de uma população de candidatos;

• Possui operadores (genéticos) que proporcionam diversidade de busca, gerando candidatos em novas regiões do domínio de busca.

V1

V2

AG´s e Otimização Global

V1

V2

AG´s e Otimização Global

V1

V2

AG´s e Otimização Global

V1

V2

AG´s e Otimização Global

V1

V2

AG´s e Otimização Global

V1

V2

AG´s e Otimização Global

V1

V2

AG´s e Otimização Global

V1

V2

AG´s e Otimização Global

Redondezas do Ótimo Global

Onde aplicar os AG’s

Problemas multi-modais (vários sub-ótimos) onde não se tem conhecimento do espaço de busca a ser explorado.

Problemas onde as técnicas convencionais não são aplicáveis

Problemas onde o custo computacional de sua solução através de métodos convencionais torna-se impraticável (ex. Caixeiro Viajante)

A metáfora dos Algoritmos Genéticos

Numa dada população, os indivíduos mais fortes têm mais chances de reprodução e, conseqüentemente, de passar suas características para seus descendentes, gerando, assim, uma população cada vez mais adaptada ao meio.

Nos Algoritmos Genéticos

Meio

Adaptação

Espaço de busca

Cumprimento dos objetivos

Otimização automática (via computador)

• Definição de uma estrutura de dado para conter um candidato à solução.

• Definição de uma forma de avaliação do resultado, considerando os objetivos e as restrições do problema.

• Mecanismo de controle e geração de novos candidatos a solução.

Nos Algoritmos Genéticos

Controle e geração de novos candidatos

Operações de seleção, cruzamento, mutação, elitismo...

Avaliação Função Objetivo

Estrutura de Dado Genótipo ou cromossoma

Genótipo

• É a estrutura de dado que codifica um candidato à solução;

• Nos AG´s clássicos isto é feito através de uma “string” binária de tamanho fixo;

Função Objetivo

• É a função que reúne as saídas de interesse e avalia o quão “boa” é a solução proposta;

• O valor da função objetivo para um indivíduo é chamado prêmio ou aptidão (“fitness”).

O Algoritmo Genético Clássico

1. Inicializa população de candidatos à solução;

2. Avalia população de candidatos;

3. Seleciona candidatos para operações genéticas;

5. Atualiza população de candidatos;

6. Se criterio parada atingido, FIM, senão, volta para 2;

4. Opera e transforma população de candidatos;

O Algoritmo Genético Clássico

InícioInicializa(População);Enquanto (NÃO Terminar) Faça

Avalia (Pop);NovaPopulação := Seleciona (População);Opera (NovaPopulação);Populaçao := NovaPopulação;

Fim Enquanto;Fim.

Problema exemplo

• Problema: Obter valores de V1 (podendo variar entre 1 e 32) e V2 (podendo variar entre 0 e 15.5) de forma que se obtenha o maior valor de f(V1,V2) = V1 + V2.

v1

v2f

Exemplo de Genótipo

1 0 0 0 1 0 0 0 1 1

v1

v2

v1 v2

18 1.5

Genótipo

Gene 1

Codificação das variáveis Codificação de um candidato à solução:

Gene 2

0 - 00000 0.5 - 00001

15.5 - 1111115.0 - 11110

...

1 - 00000

32 - 11111

2 - 00001

31 - 11110...

O Algoritmo Genético Clássico

1. Inicializa população de candidatos à solução;

2. Avalia população de candidatos;

3. Seleciona candidatos para operações genéticas;

5. Atualiza população de candidatos;

6. Se critério parada atingido, FIM, senão, volta para 2;

4. Opera e transforma população de candidatos;

Indivíduo Genótipo v1 v2

1

2

3

4

5

6

Inicialização

É a geração aleatória de uma população inicial.

0 0 0 1 1 0 0 0 1 00 1 0 1 0 1 1 1 1 00 1 1 0 0 0 0 1 0 00 0 1 0 1 0 1 0 1 10 0 0 1 0 0 0 0 0 01 1 1 0 0 1 1 1 0 0

4 110 1513 25 52 029 14

Indivíduo Genótipo v1 v2 f(v1,v2)

1

2

3

4

5

6

Avaliação

Cálculo da função objetivo para cada candidato.

5251510243

0 0 0 1 1 0 0 0 1 00 1 0 1 0 1 1 1 1 00 1 1 0 0 0 0 1 0 00 0 1 0 1 0 1 0 1 10 0 0 1 0 0 0 0 0 01 1 1 0 0 1 1 1 0 0

4 110 1513 25 52 0

29 14

O Algoritmo Genético Clássico

1. Inicializa população de candidatos à solução;

2. Avalia população de candidatos;

3. Seleciona candidatos para operações genéticas;

5. Atualiza população de candidatos;

6. Se convergiu, FIM, senão, volta para 2;

4. Opera e transforma população de candidatos;

Seleção Proporcional

Indivíduo f

1 5

2 25

3 15

4 10

5 2

6 43

A fitness indica o tamanho do arco correspondente ao indivíduo

Seleção Proporcional

Seleção Proporcional

Seleção Proporcional

Seleção Proporcional

Seleção Proporcional

Seleção Proporcional

Seleção Proporcional

Seleção Proporcional

Seleção Proporcional

Seleção Proporcional

Seleção Proporcional

Seleção Proporcional

Seleção Proporcional

Seleção Proporcional

Seleção Proporcional

Seleção Proporcional

Seleção Proporcional

Seleção Proporcional

Seleção Proporcional

Seleção Proporcional

Seleção Proporcional

Seleção Proporcional

Seleção Proporcional

Seleção Proporcional

Seleção Proporcional

Seleção Proporcional

Seleção Proporcional

Seleção Proporcional

Indivíduo 6 selecionado

O Algoritmo Genético Clássico

1. Inicializa população de candidatos à solução;

2. Avalia população de candidatos;

3. Seleciona candidatos para operações genéticas;

5. Atualiza população de candidatos;

6. Se convergiu, FIM, senão, volta para 2;

4. Opera e transforma população de candidatos;

Operações genéticas clássicas

• Cruzamento (“crossover): é a troca de informação genética entre indivíduos (mistura de soluções).

• Mutação: é a alteração aleatória de parte do genótipo (no AG clássico, 1 bit).

Cruzamento (“crossover”)

1 0 1 0 1 0 0 0 1 1

0 0 0 1 1 0 0 0 0 1

1 0 1 0

0 0 0 1 1 0 0 0 1 1

1 0 0 0 0 1

Pais Filhos

Ponto de crossover (escolhido aleatoriamente)

Mutação

• Escolhe-se uma posição aleatoriamente e inverte-se este bit.

1 0 1 0 0 0 0 0 1 1

Antes da mutação

Ponto de mutação (escolhido aleatoriamente)

Mutação

• Escolhe-se uma posição aleatoriamente e inverte-se este bit.

1 0 1 0 1 0 0 0 1 1

Depois da mutação

Ponto de mutação (escolhido aleatoriamente)

Elitismo

• Técnica utilizada para eliminar a possibilidade de perda do melhor indicíduo até então encontrado. Isto é feito através da simples cópia do melhor indivíduo para a próxima geração.

Alguns critérios de parada

• avaliação da similaridade entre os indivíduos da população;

• estagnação do processo de evolução;

• número máximo de gerações;

Teoria dos Esquemas

• Um esquema é um “template” que caracteriza grupos de indivíduos através de um padrão de similaridade. A representação de um esquema: é feita através de um alfabeto ternário {0, 1, *} onde o * é um “don´t care” (pode significar tanto um 0 quanto um 1 na posição indicada).

• A Teoria dos Esquemas estuda o comportamento dinâmico dos esquemas durante a evolução do AG.|

Teoria dos Esquemas

Exemplos de esquema: H1 = 110** H2 = *00

Indivíduos representadospor H1: 11000, 11001, 11010 e 11011por H2: 100 e 000

Teoria dos Esquemas

• Para se estudas a influência das operações genéticas sobre um determinado esquema, são definidas duas grandezas:

Largura Definida do esquema ()

Ordem do esquema (o)

Teoria dos Esquemas

• Largura Definida (): diferença entre o primeiro e o último bit fixos (diferentes de *)

Ex: (1**10**) = 5-1 = 4

Esta grandeza está relacionada com a probabilidade de um esquema ser destruído em um crossover.

Teoria dos Esquemas

• Ordem (o): número de bits fixos (diferentes de *)

Ex: (1**10**) = 3

Esta grandeza está relacionada com a probabilidade de um esquema ser destruído em uma mutação.

Teoria dos Esquemas

Definção:

m(H,t): quantidade de indivíduos representados pelo esquema H na geração t.

Teoria dos Esquemas

Considerando apenas a seleção proporcional à fitness:

fHftHmtHm

fiHfntHmtHm

)(),()1,(

)(),()1,(

Teoria dos Esquemas

Probabilidade de sobrevivência a um crossover probabilidade pc de crossover:

1)(1

lHpp csc

Teoria dos Esquemas

Probabilidade de sobrevivência a um mutação com probabilidade pm de mutação:

)(11

1 )(

Hoppp

pp

msm

Homsm

Teoria dos Esquemas

Obtêm-se então:

mc pHo

lHp

fHftHmtHm )(

1)(1)(),()1,(

Teoria dos Esquemas

Denomina-se “building blocks” os esquemas de baixa ordem e pequena largura definida, com fitness acima da média. Estes esquemas tendem a proliferar e formar a base da evolução.