38
Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos para Engenharia. Grupo EsCeL, www.inf.ufpr.br/escel

Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Embed Size (px)

Citation preview

Page 1: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos

Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos para Engenharia. Grupo EsCeL, www.inf.ufpr.br/escel

Page 2: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Motivação

Algoritmos Genéticos e Evolutivos são eficientes métodos de otimização e planejamento inspirados na natureza baseados nos princípios da evolução natural e genética.

Devido a sua eficiência e simples princípios, estes métodos são usados em uma variedade de problemas de otimização e aprendizado de maquina.

Page 3: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Ambientação

ModeloComputa-

cional

Natureza

ModeloBiológico

Teoria de Darwin

Teoria de Computação Evolucionária

Page 4: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Exemplos de Aplicações Reais

• Projeto de Antenas• Projeto de Drogas• Classificação Química• Circuitos Elétricos• Escalonamento de

Fabricas (Volvo, Deere, outras)

• Projeto de Turbina• Projeto de Carros

“Crashworthy”• Projeto de Redes

• Projeto de Sistemas de Controle

• Parâmetros de Produção• Projeto de Satélite• Stock/commodity/ analises/

tendências• Ajuste de Celulares• Data Mining

Page 5: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Sumário

• Computação Evolutiva– Conceitos básicos

• Algoritmos Genéticos• Projetos

Page 6: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Computação Evolucionária

• Área da Inteligência Artificial que engloba um conjunto de métodos computacionais inspirados na Teoria da Evolução das Espécies.

• auto-organização e o comportamento adaptativo

Page 7: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Ramos

• Estratégias Evolucionárias: – ênfase na auto-adaptação. O papel da recombinação é

aceito, mas como operador secundário.• Programação Evolutiva:

– Previsão do comportamento de máquinas de estado finitas. • Algoritmos Genéticos:

– Indivíduos contém um genótipo formado por cromossomos• Programação Genética

– Evolução de programas• Estimativa de Distribuição

– AG competentes

Page 8: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Historia• Estratégias Evolutivas:• Desenvolvida por Rechenberg, Schwefel, etc.

em 1960.• Foco: Otimização de parâmetros de valores

reais• Individuo: vetor de parâmetros de valores reais• Reprodução: Mutação Gaussiana dos

parâmetros• M pais, K>>M filhos

Page 9: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Historia

• Programação Evolutiva:• Desenvolvida por Fogel in 1960• Objetivo: evoluir comportamento

inteligente• Indivíduos: Maquina de estado finita• Filhos via mutação das MEF• M pais, M filhos

Page 10: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Historia

• Algoritmos Genéticos:• Desenvolvidos por Holland em 1960s• Objetivo: robustos, sistemas adaptativos • Utiliza uma codificação “genética” de pontos• Reprodução via mutação e recombinação do

código genético.• M pais, M filhos

Page 11: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Historia

• Programação Genética• Desenvolvidos por Koza em 1990s• Objetivo: Evolução de programas• Reprodução via recombinação do código

genético.• M pais, M filhos

Page 12: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Historia

• Alg. de Estimativa de Distribuição• Inicia com os trabalhos de Baluja 1994• AG competentes ???• Modelam os relacionamentos entre as

variáveis do indivíduos.• Evoluem o modelo

– Alguns utilizam redes bayesianas para isto

Page 13: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Estado Atual

• Grande variedade de Algoritmos Evolutivos

• Grande variedade de aplicações– Otimização, busca, aprendizado, adaptação

• Analise– teórico– experimental

Page 14: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Características Comuns

• Uso de um processo de evolução pseudo-Darwinian para solucionar problemas difíceis.

• Computação Evolutiva

Page 15: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Evolução Natural

• Embora tenham origens bastante diversas, todas essa abordagens têm em comum o modelo conceitual inicial

Page 16: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Características Comuns

• Usam um processo de evolução baseado em Darwin para resolver problemas computacionais de IA

• Inspirados na Teoria da Evolução: os indivíduos mais adaptados sobrevivem

Page 17: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Elementos Chaves de Algoritmos Evolucionários

• Uma população de indivíduos• A noção de fitness• Um ciclo de nascimento e morte baseados

na fitness• A noção de herança

Page 18: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Visão Geral doAlgoritmo Evolucionário

população depais

população defilhos solução

seleçãorecombinaç

ão

Page 19: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Visão Geral doAlgoritmo Evolucionário

1. Gerar uma população inicial aleatoriamente

2. Fazer até um critério de parada:– selecionar indivíduos para pais (fitness)– produzir filhos– selecionar indivíduos para morrer (fitness)

3. Retornar um resultado

Page 20: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Algorithmos Geneticos

• Holland 1960• São algoritmos de busca• Objetivo: robusto, sistema adaptativo• Combinam: Sobrevivência do mais

ajustado com um estruturado, aleatório intercâmbio de informações

Page 21: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

AG

• Apesar de aleatórios, AG não funcionam unicamente com este conceito.

• Eles exploram informação histórica para experimentar novos pontos de busca.

Page 22: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Algoritmopopulação inicial

pais selecionados

filhos gerados

nova população

seleção (fitness)

operadoresgenéticos cruz repr mut

nova popcompleta?

não

sim

satisfeito c/a solução?

não

início

soluçãofim

sim

Page 23: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Terminologia Biológica

• Em AG são utilizados termos biológicos como analogia com a biologia.

• Cromossomo: codificação de uma possível solução – individuo

• Genes: Codifica uma característica particular

• Genótipo x Fenótipo

Page 24: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Indivíduos

• Material genético• Conjunto de atributos da solução• Cada atributo uma seqüência de bits e o

individuo como a concatenação das seqüências de bits

• Codificação binária, códigos

Page 25: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

População

• Conjunto de indivíduos que estão sendo cogitados como solução– Relacionado a dimensão do espaço de busca.– Populações pequenas têm grandes chances de

perder a diversidade necessária (exploração de todo o espaço de soluções)

– Populações grandes perderá grande parte de sua eficiência pela demora em avaliar a função de fitness

Page 26: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Reprodução

• Reprodução sexual, genes são trocados entre dois pais – crossover

• Os filhos são sujeitos a modificações, na qual bits elementares são mudados - mutação

Page 27: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Função de fitness

• Mede a adaptação do indivíduo ou quão boa é a solução dada por este indivíduo.

• Representativa do problema: diferencie uma solução boa de uma má.

• Heurística de busca no espaço de estado• Cuidados com o custo computacional.

Page 28: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Requisitos para usar AG

Representações das possíveis soluções do problema no formato de um código genético;

 População inicial que contenha diversidade suficiente para permitir ao algoritmo combinar características e produzir novas soluções;

Existência de um método para medir a qualidade de uma solução potencial;

 Um procedimento de combinação de soluções para gerar novos indivíduos na população;

 Um critério de escolha das soluções que permanecerão na população ou que serão retirados desta;

  Um procedimento para introduzir periodicamente alterações em algumas soluções da população. Desse modo mantém-se a diversidade da população e a possibilidade de se produzir soluções inovadoras para serem avaliadas pelo critério de seleção dos mais aptos.

Page 29: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Seleção

• O operador escolhe quais indivíduos participarão na criação da próxima geração

Page 30: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Exemplo

Indivíduos Fitness % Fitness10101010110101010111 12 23,08

00001001010101110010 8 15,38

00001100001011011101 9 17,31

00000110010010000010 6 11,54

11100011100010011111 12 23,08

00010101001000010000 5 9,62

Total 52 100,00

Page 31: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Roleta

23%

15%

17%12%

23%

10%

Page 32: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Reprodução

• Preserva características úteis• Introduz variedade e novidades• Estratégias

– Parentes únicos: clonar + mutação– Parentes múltiplos: recombinação + mutação

Page 33: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Métodos de Recombinação

• Cruzamento: cria novos indivíduos misturando características de dois indivíduos pais (crossover)

• Copia de segmentos entre os pais• Crossovers multi-ponto, dois pontos, um

ponto, uniforme e inversão

Page 34: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Cruzamento

• Pai 1: 10101010110101010111• Pai 2: 00001001010101110010• Cruzamento em um ponto

– 10101010110101110010, 00001001010101010111

• Cruzamento uniforme: os filhos são formados a partir dos bits dos pais (sorteado)

Page 35: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Mutação

• Esta operação inverte aleatoriamente alguma característica do indivíduo

• Cria novas características que não existiam

• Mantém diversidade na população

Page 36: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Balance Explotação-Exploração

• Pressão de seleção: explotação– Reduz o espaço de busca

• Reprodução: exploração– Expande o espaço de busca

• Balance– Seleção forte + taxas de mutação altas– Seleção fraca + taxas de mutação baixas

Page 37: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Quando AG é bom ?• Funções multímodas• Funções discretas ou continuas• Funções altamente dimensionais, incluindo

combinatórias• Dependência não linear dos parâmetros• Usada freqüentemente para obter solução a

problemas NP completos • Não usar quando outro método como hill-

climbing, etc., funciona bem

Page 38: Computação Evolutiva : Um Novo Paradigma Para a Resolução de Problemas Complexos Aurora Pozo Pós-graduação em Informática, Pós-graduação em Métodos Numéricos

Técnicas Avançadas em AGs

• AGs são apropriados para problemas complexos, mas algumas melhorias devem ser feitas