Computação Evolucionária

Propaganda
Computação Evolucionária
Prof. Rafael Stubs Parpinelli
DCC / UDESC-Joinville
[email protected]
www.joinville.udesc.br/portal/professores/parpinelli
• Bibliografia básica:
– Goldberg, D.E., Genetic Algorithms in
Search, Optimization, and Machine
Learning. Addison-Wesley, 1989.
• Bibliografia Auxiliar:
– Artigos científicos e tutorias
– Outros livros
• Softwares:
– GALOPPS, Matlab ToolBox.
www2.joinville.udesc.br/~coca/
Natureza como inspiração

Processos naturais → Métodos computacionais

Evolução das espécies

Grupos sociais

Sinapses dos neurônios

Sistema imunológico

Estratégias de busca por alimento

Relações ecológicas entre diferentes
populações
Origens/Inspiração da Comp. Evol.
• Charles Darwin, séc. 19:
– A evolução dos seres vivos é baseada na Princípio
da Seleção Natural;
– Indivíduos mais fortes e mais bem adaptados ao
ambiente têm maior chance de sobrevivência e dar
continuidade à sua espécie.
• Evolução como um processo inteligente de
otimização:
– Inspiração para construção de paradigmas
computacionais que imitem a evolução das espécies,
como forma de otimização.
Hipóteses de Darwin
• O número de filhos geralmente é maior do que o
número de pais
• O número de indivíduos de uma mesma espécie
é mais ou menos constante
• Dentro de uma mesma espécie os indivíduos
apresentam pequenas diferenças ente si
• Algum processo de variação contínua deve ser
responsável pela introdução de novas
informações na carga genética dos indivíduos
• Não há limite para a introdução sucessiva de
variações genéticas
Seleção natural e evolução
• A seleção natural é probabilística
• A seleção natural atua sobre os indivíduos
de uma espécie
• A conseqüência, a longo prazo, é a
evolução da espécie
Computação Evolucionária
• Inteligência Artificial (clássica) versus Inteligência
Computacional
– IA: modelos computacionais inspirados (ou que tentam simular)
no raciocínio humano (Sistemas Especialistas)
– IC: Modelos computacionais inspirados na natureza (Sistemas
Fuzzy, Redes Neurais Artificiais, Computação Evolucionária)
• Linhas de desenvolvimento principais:
–
–
–
–
Algoritmos Genéticos (AG)
Programação Genética (PG)
Programação Evolucionária (PE)
Estratégias Evolucionárias (EE)
IC e CE
Computação Natural
Vida
Artificial
Autômatos
Celulares
Sistemas
Dinâmicos
Não-Lineares
Lógica
Fuzzy
Redes
Neurais
Artificiais
Computação
de DNA
Inteligência
Computacional
Computação
Evolucionária
Soft-Computing
-Neuro-fuzzy
-Neuro-evolutivo
-Neuro-imune
Inteligência
Artificial Clássica
-Métodos de Busca
-Inferência Lógica
-Sistemas
Especialistas
Computação
Quântica
Inteligência de
Enxame
Sistemas
Imunológicos
Artificiais
Escopo da Computação
Evolucionária
• O escopo de aplicação da CE e em OTIMIZAÇÃO
• Áreas de aplicação (inúmeras)
–
–
–
–
–
Engenharias
Computação
Pesquisa Operacional
Design
Biomédica ...
• Problemas de outras naturezas
– Fazer a modelagem como se fosse um problema de otimização
• Aprendizado: max(qtd. inf. absorvidas); min(qtd. erros conceituais);
mix(tempo aprendizado); ...
CE como método de otimização
• Projeto de Otimização:
– Muitos parâmetros a serem otimizados
– Muitas restrições a serem satisfeitas
– Complexo espaço de busca
• CE
– Facilita a tarefa de projeto gerando soluções
subótimas ou mesmo ótimas
• CE emprega um método intuitivo:
– Processo criativo
– Refinamento iterativo e interativo
Vantagens da CE
• Não requer um conhecimento matemático
profundo do problema ao qual é aplicado
• Baixo custo de implementação
• Facilmente hibridizável com outras técnicas
• Facilmente adaptável a muitas classes de
problemas, inclusive problemas multiobjetivos
• Modularizável e paralelizável
• Capaz de manipular restrições (adaptável)
• Trabalha com população de soluções
• Pode ser a única alternativa viável
Desvantagens da CE
• Pouco embasamento teórico, ou seja, a
prática se desenvolveu mais do que a
teoria
• Ajustes de parâmetros: requer
conhecimento prévio ou tentativa-e-erro
• Não é intrinsecamente melhor do que
qualquer outro algoritmo de otimização
Algoritmo Evolutivo: refinamentos
sucessivos
•
•
•
•
•
•
•
Gere soluções para o problema
Avalie as soluções (fç. fitness)
Se a melhor solução satisfaz, pare
Selecione as melhores soluções
Construa novas soluções utilizando partes das
melhores soluções (crossover)
Eventualmente modifique as soluções
(mutação)
Volte ao passo 2.
Algoritmo Evolucionário (AG) #1
• Fenótipo x Genótipo
Algoritmo Evolucionário (AG) #2
• População de possíveis soluções
– Busca paralela
Algoritmo Evolucionário (AG) #3
• Função de fitness
– Mede o quão boa é uma solução para o problema
Algoritmo Evolucionário (AG) #4
• Seleção
– Implementa e guia o processo evolutivo
– Seleciona os indivíduos mais aptos a se reproduzir e
passar o seu material genético
– Métodos probabilísticos ou determinísticos
Algoritmo Evolucionário (AG) #5
• Reprodução e operadores genéticos
– Crossover: recombinação de material genético de dois
pais – realiza busca local (exploitation: aproveitamento)
– Mutação: variação aleatória – realiza busca global
(exploration: investigação)
Algoritmo Evolucionário (AG) #6
• Critério de parada do algoritmo
– Número pré-determinado de gerações
– Quando não há mais melhoria
– Quando atingiu o ótimo
Abrangência da disciplina
•
•
•
•
•
O que é? (AG, PG, ...)
Como funciona?
Para que serve?
Como se utiliza?
Por que funciona? ???????
Download