Computação Evolutiva: Programação Genética

Slides:



Advertisements
Apresentações semelhantes
Unidade VII Algoritmos Genéticos
Advertisements

Métodos Iterativos.
Algoritmos Genéticos Alex F. V. Machado. Algoritmos Genéticos Quanto melhor um indivíduo se adaptar ao seu meio ambiente, maior será sua chance de sobreviver.
gerador de código intermediário
Amintas engenharia.
Amintas engenharia.
ANÁLISE DISCRIMINANTE
Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres CT VII - Sala 32 Departamento de Informática Centro.
ESTIMAÇÃO.
Mineração de Dados Avaliação de Classificadores
Fundamentos dos Algoritmos Genéticos Alex F. V. Machado.
Algoritmos e Estrutura de Dados I
Mutação de Interface Interface Mutation: An Approach for Integration Testing Marcio E. Delamaro José C. Maldonado Aditya P. Mathur.
ÉLDMAN DE OLIVEIRA NUNES E AURA CONCI INSTITUTO DE COMPUTAÇÃO UFF
Implementação de AG no Balanceamento Interativo de Linhas de Montagem
Reconhecimento de Padrões Computação Evolutiva
Algoritmos Genéticos Marcone Jamilson Freitas Souza
Reconhecimento de Padrões Segmentação
Computação Evolutiva: Estratégias Evolutivas
Otimização de Funções Contínuas via Algoritmos Genéticos Adaptado do trabalho realizado por: Frederico Heitor Mônica do Amaral.
Reconhecimento de Padrões Seleção de Características
Otimização de Funções Contínuas via Algoritmos Genéticos
Reconhecimento de Padrões Computação Evolutiva
Reconhecimento de Padrões Inteligência de Enxame
Busca Cega (Exaustiva)
Inteligência Artificial
Rejane Sobrino Pinheiro Tania Guillén de Torres
Métodos de Classificação por Seleção: HeapSort
Algoritmos Genéticos Rômulo Ferreira Douro.
Dividir-e-Conquistar
Análise Léxica Supondo o trecho de programa abaixo:
Apresentação Introdução à Programação Genética Título :
Algoritmos Genéticos - Capítulo 10 Representação Numérica
Contratos Modelagem Funcional.
Métodos Populacionais
Meta - heurísticas Prof. Aurora
Folha de Cálculo Como Dar Nome a Uma ou mais Células?
Otimização Prof. Benedito C. Silva IRN UNIFEI
Informática Teórica Engenharia da Computação
Aula prática 8 Ponteiros Monitoria de Introdução à Programação
Uma Introdução a Evolução Diferencial
Paradigma de Divisão e Conquista
Aula 14.
Introdução a Programação
Introdução e Busca Cega
Introdução aos Agentes Inteligentes Busca Cega (Exaustiva)
Sistema de equações lineares
Anne Magály de PaulaCanuto DIMAp/UFRN
1 A COMPUTAÇÃO MODERNA Valdemar W. Setzer Depto. de Ciência da Computação da USP
Algoritmos Genéticos Ricardo Prudêncio.
Inteligência Artificial
Equações algébricas e transcendentais
Processo de Decisão de Tomadas
1 Introdução aos Agentes Inteligentes Inventando Funções Heurísticas Flávia Barros.
Artigo: Berth allocation planning in the public berth system by genetic algorithms Akio Imai, Etsuko Nishimura, Stratos Papadimitriou, Heurística.
Algoritmos.
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.
ERROS E TRATAMENTO DE DADOS ANALÍTICOS
Algoritmos Genéticos Ricardo Prudêncio.
Linguagem de Programação I Parte IV
Computação Evolutiva Nome dado ao estudo de algoritmos cuja inspiração é o processo de evolução natural das espécies. Origem: trabalho de um pesquisador.
Algoritmo e Estrutura de Dados I Introdução ao conceito de algoritmo Márcia Marra
FEATURE SELECTION. Introdução  Estudo de metodologias relacionadas a seleção de atributos  Maldição da dimensionalidade  O número de atributos do desenvolvedor.
Algoritmos Genéticos ÝIntrodução ÝHistórico ÝAlgoritmo Genético Básico: 3Representação de um indivíduo 3Função de aptidão 3Operadores genéticos 3Critério.
Algoritmos Genéticos Uma visão geral do método Cláudio M. N. A. Pereira.
Taís Sineiro Herig Laboratório de Genômica e Expressão / UNICAMP
Sistemas Inteligentes Busca Cega (Exaustiva)
Métodos Populacionais. Mantém um conjunto de soluções candidatas e não só uma solução Cada solução será modificada e avaliada Hill-Climbing paralelos.
1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco.
Universidade do Sul de Santa Catarina Ciência da Computação Técnicas de Inteligência Artificial Aula 10 Algoritmos Genéticos Max Pereira.
Transcrição da apresentação:

Computação Evolutiva: Programação Genética Pontifícia Universidade Católica do Paraná Curso de Especialização em Inteligência Computacional 2004/2005 Computação Evolutiva: Programação Genética Luiz Eduardo S. Oliveira, Ph.D. soares@ppgia.pucpr.br http://www.ppgia.pucpr.br/~soares

Objetivos Introduzir os principais conceitos da programação genética (PG).

Introdução As três áreas da computação evolutiva que vimos até agora envolveram estruturas definidas com strings. Binárias Reais PG evolui programas de computador os quais são representados através de árvores de sintaxe abstrata.

Introdução Principais diferenças entre AG e PG: Objetivo Os membros da população são estruturas executáveis e não strings. A fitness dos indivíduos são conseguidas através da execução dessas estruturas. Objetivo Aprendizagem por indução Ensinar os computadores a se auto programarem Estratégia: Criar-testar-modificar (similar aos humanos).

Introdução

Representação Árvore de sintaxe abstrata Funções aparecem nos nós internos e constantes e variáveis nos nas folhas 3 * ( x + 6 )

Implementação A implementação consiste em: Determinar o conjunto de nós terminais. Determinar o conjunto de funções válidas. Determinar a medida de fitness. Selecionar os parâmetros de controle. Determinar as condições de parada.

Implementação As funções são limitadas pela linguagem de programação utilizada na construção dos programas, como por exemplo: Funções matemáticas: seno, cosseno, etc.. Funções aritméticas: +,-, *, / Operadores Booleanos (E, OU, NÃO) Operadores condicionais: Se, Então

Implementação Cada função tem uma determinada aridade (número de argumentos). Duas propriedades desejáveis em uma aplicação Fechamento Suficiência

Fechamento Garantir a viabilidade de árvores de sintaxe abstrata. O conjunto de funções válidas deve aceitar, como argumento, qualquer valor que possa ser retornado por qualquer função ou terminal. Garante que a árvore será avaliada corretamente. Ex: Divisão: Matematicamente não se pode dividir um número por zero. Solução: Divisão protegida >> Divisão por zero retorna 1

Suficiência O conjunto de funções + o conjunto de terminais deve ser capaz de representar uma solução para o problema. Deve existir alguma evidência que tais funções e terminais resolvam o problema Caso contrário, o algoritmo não convergirá. Todas as funções possíveis. Espaço de busca enorme.

Principais Parâmetros Tamanho da população Número máximo de gerações. Probabilidade de reprodução e cruzamento. Tamanho máximo do indivíduo. Profundidade da árvore.

Entendendo a PG Algoritmo clássico: Inicializar a população inicial. Determinar a fitness de cada indivíduo. Realizar a reprodução de acordo com o valor da fitness e da probabilidade de reprodução. Realizar o cruzamento. Voltar ao passo 2 até que uma condição de parada seja alcançada.

Criando um indivíduo. Definir o conjunto de funções F e terminais T. Cada tem associada uma aridade superior a zero O conjunto T é composto pelas variáveis, constantes e funções de aridade zero.

é a livre combinação dos elementos de F e T Criando um indivíduo Espaço de busca é a livre combinação dos elementos de F e T Considere por exemplo: e Ou seja, o conjunto das funções válidas é o conjunto das operações aritméticas com aridade 2 Os terminais são compostos por x, 3 e 6. Uma expressão que pode ser produzida é

Criando uma População Aleatória Primeiramente escolhe-se uma função aleatória de Para cada elemento de f escolhe-se um elemento de {F U T} O processo segue até que se tenha apenas terminais como nós folha da árvore. Especifica-se um limite máximo para a profundidade da árvore para se evitar árvores muito grandes.

Criando uma População Aleatória O sucesso da PG depende bastante da qualidade da população inicial. Variedade na composição dos programas Permitindo assim que a recombinação leve à convergência.

Fitness Cada programa de computador é avaliado em termos de quão bem ele realiza (ou executa) sua tarefa em um ambiente particular de um problema. Por exemplo, executando-se o programa e verificando-se o erro produzido no resultado. Quanto mais próximo de zero, melhor é o programa.

Operadores Genéticos Reprodução Cruzamento Mutação Permutação Edição Encapsulamento Destruição

Reprodução Um indivíduo da população é selecionado de acordo com algum método baseado na fitness (Roleta, por exemplo) O indivíduo é copiado sem qualquer alteração para a próxima geração

Cruzamento Dois programas são selecionados e são recombinados para gerar outros dois programas. Um ponto aleatório de cruzamento é escolhido em cada programa pai e as árvores abaixo destes pontos são trocadas.

Cruzamento

Cruzamento AG X GP Cruzamento em AG: Cruzamento em GP Se os pais são idênticos, ambos os filhos serão idênticos. Cruzamento em GP Como a chance de gerar pontos de corte idênticos é pequena, logo a probabilidade de gerar filhos iguais é pequena.

Mutação Seleciona-se um ramo aleatório na árvore e cria-se um novo ramo aleatório no lugar. Inserir diversidade.

Permutação Escolhe-se um ponto interno de uma expressão Escolha aleatória do ramo a ser permutado.

Permutação Quando a permutação não tem influência nenhuma? Operação comutativa.

Edição Proporciona um meio para editar e simplificar expressões

Edição Pode ser utilizada de duas maneiras Consome bastante tempo Externo a execução Durante a execução Consome bastante tempo Controlada por parâmetro 1 – Aplica-se em todas as gerações 0 – Não é aplicada > 1 – Freqüência de aplicação

Edição Tornar a expressão menos vulnerável ao cruzamento (NOT(NOT(NOT(NOT(X))))) X Reduz a variedade de estruturas disponíveis para o cruzamento.

Encapsulamento Forma de identificar sub-árvores potencialmente úteis e dar a elas um nome para que sejam referenciadas e usadas posteriormente. Seleciona-se um ponto interno de uma árvore com boa fitness.

Encapsulamento Remove-se a sub-árvore localizada no ponto selecionado. Uma nova função é definida para referenciar esta sub-arvore.

Encapsulamento A nova função não tem argumentos. O conjunto das funções é acrescido desta nova função. A função encapsulada é fator potencial para interromper o efeito do cruzamento, pois a função torna-se um ponto indivisível.

Destruição Operação assexuada Forma de reduzir o número de indivíduos medíocres nas primeiras gerações. Utiliza-se a fitness para realizar esta operação Utilizada em outras estratégias evolutivas também.

Critério de Parada Máximo de gerações ou ponto ótimo Designação do resultado: Melhor indivíduo que apareceu em qualquer geração da população.

Exemplo de Aplicação Regressão Encontrar uma expressão matemática que melhor se ajuste a uma amostra de dados. y=-1.57+1.41x Reta da regressão Modelo que pode ser utilizado para fazer previsão. Cuidado na extrapolação dos limites da base de aprendizagem. idade tamanho

Exemplo Encontrar o relacionamento entre o raio e o período de órbita de um planeta em torno do sol. Dados fornecidos:

Exercício Considere as duas árvores. Faça uma operação de cruzamento e mutação e avalie a fitness com base na tabela anterior. Compare o seu resultado com o período fornecido.