linguagem push gilberto souza egc - computação evolucionária - 2005 gilberto souza egc -...

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

Upload: internet

Post on 17-Apr-2015

114 views

Category:

Documents


2 download

TRANSCRIPT

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

Linguagem PUSHLinguagem PUSH

Gilberto SouzaEGC - Computação

Evolucionária - 2005

Gilberto SouzaEGC - Computação

Evolucionária - 2005

Page 2: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 22

EstruturaEstrutura

• Programação Genética

• Linguagem PUSH

• Programação Genética

• Linguagem PUSH

Page 3: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 33

O que é Programação Genética

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

• 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

Page 4: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 44

O que é Programação Genética

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

• Técnica de Aprendizado de máquina– Permitir ao computador aprender

• Algoritmos evolucionários– Otimizar uma população de programas

Page 5: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 55

SoluçõesSoluções

O que é Programação Genética

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.

• 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.

Muito boas

Programa de computador Função de Fitness

Algoritmo específico para um problema

boas

ruins péssimas

Page 6: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 66

O que é Programação Genética

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

• 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

Page 7: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 77

Implementações de PGImplementaçõ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

• 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

Page 8: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 88

Programa de ComputadorPrograma de Computador

int funcao (int time) { int temp1, temp2; if (time > 10) { temp1 = 3; } else { temp1 = 4; } temp2 = temp1 + 1 + 2; return (temp2);}

int funcao (int time) { int temp1, temp2; if (time > 10) { temp1 = 3; } else { temp1 = 4; } temp2 = temp1 + 1 + 2; return (temp2);}

TimeTime SaídaSaída00 6611 6622 6633 6644 6655 6666 6677 6688 6699 661010 661111 771212 77

Page 9: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 99

Programa de ComputadorPrograma de Computador

int funcao (int time) { int temp1, temp2; if (time > 10) { temp1 = 3; } else { temp1 = 4; } temp2 = temp1 + 1 + 2; return (temp2);}

int funcao (int time) { int temp1, temp2; if (time > 10) { temp1 = 3; } else { temp1 = 4; } temp2 = temp1 + 1 + 2; return (temp2);} ( + 1 2 ( IF ( > TIME ( + 1 2 ( IF ( > TIME

10) 3 4))10) 3 4))

Page 10: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 1010

Operações genéticasOperações genéticas

• Reprodução

• Mutação

• Recombinação (crossover)

• Reprodução

• Mutação

• Recombinação (crossover)

Page 11: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 1111

ReproduçãoReprodução

Page 12: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 1212

MutaçãoMutação

Page 13: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 1313

Recombinação - Crossover

Recombinação - Crossover

Page 14: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

Linguagem PUSHLinguagem PUSH

Page 15: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 1515

OrigemOrigem

• Projeto PUSH para computação evolucionária autônoma criada em 2001 por Lee Sperctor

http://hampshire.edu/lspector/push.html

• Projeto PUSH para computação evolucionária autônoma criada em 2001 por Lee Sperctor

http://hampshire.edu/lspector/push.html

Page 16: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 1616

Mecanismos Evolucionários

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

• 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

Page 17: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 1717

Mecanismos Evolucionários

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

• 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

Page 18: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 1818

Sistema de evolução auto-construtivo

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

• 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

Page 19: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 1919

Vida ArtificialVida Artificial

• Tierra– Não evolui soluções computacionais

• Avida– Sem crossover

• Amoeba– Necessita de muito poder computacional

• Tierra– Não evolui soluções computacionais

• Avida– Sem crossover

• Amoeba– Necessita de muito poder computacional

Page 20: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 2020

TierraTierra• Barras são

os indivíduos que moram em espaço de memória

• Barras são os indivíduos que moram em espaço de memória

Page 21: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 2121

TierraTierra

• Visão de um indivíduo dentro do ambiente

• Visão de um indivíduo dentro do ambiente

Page 22: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 2222

AVidaAVida

• Cada cor representa um genótipo diferente

• Cada cor representa um genótipo diferente

Page 23: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 2323

AmoebaAmoeba

• a - amoeba / n - núcleo / f - comida / e - enzima / v - vacuole / nt - nutrientes / w - dejetos

• a - amoeba / n - núcleo / f - comida / e - enzima / v - vacuole / nt - nutrientes / w - dejetos

Page 24: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 2424

Objetivos da Linguagem Push

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

• Expressividade– Múltiplos tipos de dados– Módulos– Estruturas de controle complexas

• Auto-construção– Manipular e produzir programas

• Uniformidade sintática

Page 25: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 2525

Características da linguagem

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

• 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

Page 26: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 2626

Características da linguagem

Características da linguagem

PilhaPilhaintegerinteger

PilhaPilhafloatfloat

PilhaPilhabooleanboolean

PilhaPilhaCODECODE

PilhaPilhaNAMENAME

PilhaPilhatypetype

PilhaPilhaEXECEXEC

Page 27: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 2727

Características da linguagem

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

• Seqüências completas de código podem ser movidas para pilha CODE - recursão

• Criação “on the fly” de programas

• Linguagem interpretada

Page 28: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 2828

Características da linguagem

Características da linguagem

• Exemplo de soma:(2 3 INTEGER.+)

• Exemplo de soma:(2 3 INTEGER.+) 2

3

...

...

...

5

2

3

...

...

integer

...

...

...

...

Page 29: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 2929

Características da linguagem

Características da linguagem

• Outro Exemplo:(1 2 3.0 4.0 INTEGER.+ FLOAT.*)

• Outro Exemplo:(1 2 3.0 4.0 INTEGER.+ FLOAT.*)

3

1

2

+

...

12.0

3.0

4.0

*

...

integer

float

...

...

...

Page 30: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 3030

Estrutura de códigoEstrutura de código

• Leitura da esquerda para direita

• (2 3 +)• (( 2 3 ) +)• (2 ((3)) (+))• 2 3 +

• Leitura da esquerda para direita

• (2 3 +)• (( 2 3 ) +)• (2 ((3)) (+))• 2 3 +

Page 31: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 3131

Tipo CODETipo 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

• 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

Page 32: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 3232

Tipo NAMETipo NAME• Definição variável:

FLOAT 3.14 PI SET ;; variável PIDUP * PI GET * ;; executa PI * R^2

• Sub-rotinas ou estruturas de controle( FACTORIAL EXEC.DEFINE

(CODE.QUOTE (INTEGER.POP 1) CODE.QUOTE (CODE.DUP 1

INTEGER.− FACTORIAL INTEGER.*) INTEGER.DUP 2 INTEGER.< CODE.IF))

5 ;; entrada

FACTORIAL ;; chamada

• Definição variável:FLOAT 3.14 PI SET ;; variável PIDUP * PI GET * ;; executa PI * R^2

• Sub-rotinas ou estruturas de controle( FACTORIAL EXEC.DEFINE

(CODE.QUOTE (INTEGER.POP 1) CODE.QUOTE (CODE.DUP 1

INTEGER.− FACTORIAL INTEGER.*) INTEGER.DUP 2 INTEGER.< CODE.IF))

5 ;; entrada

FACTORIAL ;; chamada

Page 33: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 3333

Tipo NAMETipo NAME• Laço do tipo WHILE:

(WHILE EXEC.DEFINE (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

1 ; entrada CODE.QUOTE (INTEGER 2 *) ; corpo do laço CODE.QUOTE (INTEGER.DUP 50 < ) ; condiçãoWHILE ; executa o laço while

• Laço do tipo WHILE: (WHILE EXEC.DEFINE (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

1 ; entrada CODE.QUOTE (INTEGER 2 *) ; corpo do laço CODE.QUOTE (INTEGER.DUP 50 < ) ; condiçãoWHILE ; executa o laço while

Page 34: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 3434

PushGPPushGP

• 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

• 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

Page 35: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 3535

PushGPPushGP

1. População inicial gerada aleatoriamente

2. Cada programa é avaliado por aptidão de acordo com o problema - fase de torneio

3. Mutação dos pais4. Crossover dos pais5. Geração de uma nova população

1. População inicial gerada aleatoriamente

2. Cada programa é avaliado por aptidão de acordo com o problema - fase de torneio

3. Mutação dos pais4. Crossover dos pais5. Geração de uma nova população

Page 36: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 3636

ExemploExemplo

• Regressão inteira• Regressão inteira

Page 37: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 3737

Evolução auto-construtiva

Evolução auto-construtiva

• Pushpop– População de programas push

• Programas que se auto-modificam para gerar novos programas– seleção natural / reprodução

• Pushpop– População de programas push

• Programas que se auto-modificam para gerar novos programas– seleção natural / reprodução

Page 38: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 3838

Evolução auto-construtiva

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

• 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

Page 39: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 3939

Evolução auto-construtiva

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

• 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

Page 40: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 4040

Evolução auto-construtiva

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

• 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

Page 41: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 4141

Evolução auto-construtiva

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

• 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

Page 42: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 4242

Evolução auto-construtiva

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

• 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

Page 43: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 4343

Evolução auto-construtiva

Evolução auto-construtiva

• Exemplo em BREVE - http://www.spiderland.org/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

• Exemplo em BREVE - http://www.spiderland.org/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

Page 44: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 4444

SwarmEvolve 1.0SwarmEvolve 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

• 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

Page 45: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 4545

SwarmEvolve 1.0SwarmEvolve 1.0

• Comportamento emergente– Formação de nuvens de uma mesma espécie - controle sobre a fonte de energia

• Comportamento emergente– Formação de nuvens de uma mesma espécie - controle sobre a fonte de energia

Page 46: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 4646

SwarmEvolve 1.0SwarmEvolve 1.0

Page 47: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 4747

SwarmEvolve 2.0SwarmEvolve 2.0

• Sistema de evolução auto-construtivo

• Fontes de energia - esferas• Agentes - programa Push

– Vetor de aceleração– Cor do agente

• Sistema de evolução auto-construtivo

• Fontes de energia - esferas• Agentes - programa Push

– Vetor de aceleração– Cor do agente

Page 48: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 4848

SwarmEvolve 2.0SwarmEvolve 2.0

• Cor do agente usada como mecanismo de “tags”

• Agentes mudam dinamicamente de cor

• Cor do agente usada como mecanismo de “tags”

• Agentes mudam dinamicamente de cor

Page 49: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 4949

SwarmEvolve 2.0SwarmEvolve 2.0

• Comportamento emergente– Compartilhamento de energia entre agentes

• Comportamento emergente– Compartilhamento de energia entre agentes

Page 50: Linguagem PUSH Gilberto Souza EGC - Computação Evolucionária - 2005 Gilberto Souza EGC - Computação Evolucionária - 2005

EGC / UFSCEGC / UFSC 5050

SwarmEvolve 2.0SwarmEvolve 2.0