Carregar apresentação
A apresentação está carregando. Por favor, espere
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.