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? ???????