A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Gilberto Souza EGC - Computação Evolucionária

Apresentações semelhantes


Apresentação em tema: "Gilberto Souza EGC - Computação Evolucionária"— Transcrição da apresentação:

1 Gilberto Souza EGC - Computação Evolucionária - 2005
Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária

2 Estrutura Programação Genética Linguagem PUSH EGC / UFSC

3 O que é Programação Genética
Metodologia autônoma de inspiração biológica (seleção natural) para gerar programas de computador os quais serão usados para resolver problemas específicos EGC / UFSC

4 O que é Programação Genética
Técnica de Aprendizado de máquina Permitir ao computador aprender Algoritmos evolucionários Otimizar uma população de programas EGC / UFSC

5 O que é Programação Genética
Seria mais fácil programar um algoritmo que possa medir a quantidade de sucesso em resolver um problema do que escrever o programa em si. Soluções Programa de computador Função de Fitness Algoritmo específico para um problema boas Muito boas ruins péssimas EGC / UFSC

6 O que é Programação Genética
Linguagem que permita modificação aleatória de código Código = símbolos de alto nível Combinação uniforme dos símbolos Dicionário para associar entradas ao símbolos EGC / UFSC

7 Implementações de PG Estruturas em forma de árvore (Koza)
Árvores de instruções e dados Lisp Representação linear Seqüência de instruções e dados C, Pascal, Java, etc. Representação baseada em pilhas Pilhas utilizadas para armazenar dados/instruções Push EGC / UFSC

8 Programa de Computador
Time Saída 0 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 6 10 6 11 7 12 7 int funcao (int time) { int temp1, temp2; if (time > 10) { temp1 = 3; } else { temp1 = 4; } temp2 = temp ; return (temp2); EGC / UFSC

9 Programa de Computador
int funcao (int time) { int temp1, temp2; if (time > 10) { temp1 = 3; } else { temp1 = 4; } temp2 = temp ; return (temp2); ( ( IF ( > TIME 10) 3 4)) EGC / UFSC

10 Operações genéticas Reprodução Mutação Recombinação (crossover)
EGC / UFSC

11 Reprodução EGC / UFSC

12 Mutação EGC / UFSC

13 Recombinação - Crossover
EGC / UFSC

14 Linguagem PUSH

15 Origem Projeto PUSH para computação evolucionária autônoma criada em 2001 por Lee Sperctor EGC / UFSC

16 Mecanismos Evolucionários
Sistemas reprodutivos são definidos por programadores Parâmetros pré-definidos para evolução Co-evolução biológica “não” possui mecanismos pré-estabelecidos EGC / UFSC

17 Mecanismos Evolucionários
Sistema de evolução auto-construtivo Sistema computacional evolucionário que constrói adaptativamente seus próprios mecanismos de reprodução e diversificação enquanto está sendo executado EGC / UFSC

18 Sistema de evolução auto-construtivo
Evolução de mecanismos melhores adaptados a uma classe de problemas que os projetados manualmente Modelo de evolução natural para pesquisa em evolução biológica e vida artificial EGC / UFSC

19 Vida Artificial Tierra Avida Amoeba Não evolui soluções computacionais
Sem crossover Amoeba Necessita de muito poder computacional EGC / UFSC

20 Tierra Barras são os indivíduos que moram em espaço de memória
EGC / UFSC

21 Tierra Visão de um indivíduo dentro do ambiente EGC / UFSC

22 AVida Cada cor representa um genótipo diferente EGC / UFSC

23 Amoeba a - amoeba / n - núcleo / f - comida / e - enzima / v - vacuole / nt - nutrientes / w - dejetos EGC / UFSC

24 Objetivos da Linguagem Push
Expressividade Múltiplos tipos de dados Módulos Estruturas de controle complexas Auto-construção Manipular e produzir programas Uniformidade sintática EGC / UFSC

25 Características da linguagem
Push derivada da linguagem Forth, baseada em pilhas para cada tipo de dados Instruções retiram argumentos de pilhas apropriadas e colocam de volta o resultados nessas pilhas Instruções que não possuem todos os dados (pilha vazia) para execução são descartadas EGC / UFSC

26 Características da linguagem
Pilha integer Pilha float Pilha boolean Pilha CODE Pilha NAME Pilha type Pilha EXEC EGC / UFSC

27 Características da linguagem
Seqüências completas de código podem ser movidas para pilha CODE - recursão Criação “on the fly” de programas Linguagem interpretada EGC / UFSC

28 Características da linguagem
Exemplo de soma: (2 3 INTEGER.+) integer ... 2 3 ... 5 2 3 ... EGC / UFSC

29 Características da linguagem
Outro Exemplo: ( INTEGER.+ FLOAT.*) integer float ... 3 1 2 + ... 12.0 3.0 4.0 * ... EGC / UFSC

30 Estrutura de código Leitura da esquerda para direita (2 3 +)
(( 2 3 ) +) (2 ((3)) (+)) 2 3 + EGC / UFSC

31 Tipo CODE Manipulação de listas como em LISP Recursão
Modificação de código permite auto-modificação de programas Morfogênese e ontogênese EGC / UFSC

32 Tipo NAME Definição variável: Sub-rotinas ou estruturas de controle
FLOAT 3.14 PI SET ;; variável PI DUP * PI GET * ;; executa PI * R^2 Sub-rotinas ou estruturas de controle ( FACTORIAL EXEC.DEFINE (CODE.QUOTE (INTEGER.POP 1) CODE.QUOTE (CODE.DUP INTEGER.− FACTORIAL INTEGER.*) INTEGER.DUP 2 INTEGER.< CODE.IF)) ;; entrada FACTORIAL ;; chamada EGC / UFSC

33 Tipo NAME (WHILE EXEC.DEFINE Laço do tipo WHILE:
(BODY CODE.SET CONDITION CODE.SET ;; anexa argumentos BODY CODE.GET CONDITION CODE.GET ;; re-push argumentos para recursão BODY CODE.GET WHILE CODE.GET CODE.APPEND ;; push o corpo e faz chamada recursiva CODE.QUOTE (CODE.POP CODE.POP) ;; push o código para terminar CONDITION CODE.GET CODE.DO ;; executa condição CODE.IF) ) ;; finaliza apropriadamente ; entrada CODE.QUOTE (INTEGER 2 *) ; corpo do laço CODE.QUOTE (INTEGER.DUP 50 < ) ; condição WHILE ; executa o laço while EGC / UFSC

34 PushGP Ambiente de programação genética
Programas são selecionados para reprodução via torneio Em cada geração uma população é gerada por mutação, crossover e reprodução perfeita EGC / UFSC

35 PushGP População inicial gerada aleatoriamente
Cada programa é avaliado por aptidão de acordo com o problema - fase de torneio Mutação dos pais Crossover dos pais Geração de uma nova população EGC / UFSC

36 Exemplo Regressão inteira EGC / UFSC

37 Evolução auto-construtiva
Pushpop População de programas push Programas que se auto-modificam para gerar novos programas seleção natural / reprodução EGC / UFSC

38 Evolução auto-construtiva
Produção de filhos Programas são responsáveis pela produção de seus próprios filhos Uso de pilha CHILD Evitar confusão com o processo de recursão da linguagem EGC / UFSC

39 Evolução auto-construtiva
Seleção Filhos são produzidos durante a avaliação de fitness Via torneio Seleção aleatória de n indivíduos 1 filho é escolhido aleatoriamente dos n indivíduos EGC / UFSC

40 Evolução auto-construtiva
Reprodução sexual Instruções especiais e pilha EXPRESSION Estratégias de seleção Baseada em genótipos Baseada em fenótipos Baseada por relacionamentos EGC / UFSC

41 Evolução auto-construtiva
Diversidade Controle de diversidade por meio de restrições: Sintática Filhos diferentes dos pais População não pode ter programas idênticos Semântica Limite no número de filhos Variação no peso do fitness através da população EGC / UFSC

42 Evolução auto-construtiva
Competência de reprodução Indivíduos capazes de fazer filhos diversos os quais eles próprios façam filhos diversos Seleção favorecerá a sobrevivência dos filhos de pais mais bem adaptados Aumentar a chance de instruções reprodutivas serem incorporadas ao filhos EGC / UFSC

43 Evolução auto-construtiva
Exemplo em BREVE - SwarmEvolve Experimento de emergência de comportamento coletivo em uma população de agentes voadores Comportamento determinado pela evolução de programas ao invés de uma equação de movimento controlado EGC / UFSC

44 SwarmEvolve 1.0 Três classes de agentes
Vermelho, azul e púrpura Mais escuro menos energia Fontes de energia - para promover a “orientação por objetivo” Hexágono amarelo EGC / UFSC

45 SwarmEvolve 1.0 Comportamento emergente
Formação de nuvens de uma mesma espécie - controle sobre a fonte de energia EGC / UFSC

46 SwarmEvolve 1.0 EGC / UFSC

47 SwarmEvolve 2.0 Sistema de evolução auto-construtivo
Fontes de energia - esferas Agentes - programa Push Vetor de aceleração Cor do agente EGC / UFSC

48 SwarmEvolve 2.0 Cor do agente usada como mecanismo de “tags”
Agentes mudam dinamicamente de cor EGC / UFSC

49 SwarmEvolve 2.0 Comportamento emergente
Compartilhamento de energia entre agentes EGC / UFSC

50 SwarmEvolve 2.0 EGC / UFSC


Carregar ppt "Gilberto Souza EGC - Computação Evolucionária"

Apresentações semelhantes


Anúncios Google