You are here

Atividades: 1 e 2

Aula 13 - LIDA 2: Exemplos de Implementação Prática



Objetivo

O objetivo da aula de hoje é executar um tutorial prático utilizando a arquitetura LIDA.

Atividade 1

Faça o download com o tutorial prático do LIDA aqui. Se você fez o download da arquitetura LIDA na aula passada, é possível que esse mesmo arquivo lhe tenha sido enviado por e-mail. Nesse caso, utilize a versão mais recente do mesmo, que é a que lhe foi enviada. Abra o arquivo zip e o instale em sua máquina. Verifique a árvore de diretórios, com os arquivos instalados, para os dois exemplos que estudaremos na aula de hoje, o exercício básico e o exercício de Artificial Life. Observe principalmente o arquivo LIDA-Tutorial-Exercises.pdf, que contém o roteiro dos exercícios que seguiremos na aula de hoje. - download realizado.

Atividade 2 - Tutorial Project I

Siga o roteiro apresentado no arquivo LIDA-Tutorial-Exercises.pdf e execute as seguintes atividades:

  • Basic Agent Exercise 0


A primeira parte do exercício é abrir o projeto do exemplo e identificar os principais arquivos e classes:


Figura 1


  • Basic Agent Exercise 1


Para o inicio da simulação é necessário clicar no botão Start/Pause. É possível rodar um número determinado de ticks ativando o "Step Mode" e definidno o número de tick no editbox. Também é possível modificar a "velocidade de simulação" com o parâmetro Tick duration.

Na parte inferior estão as abas com a informação do Logging e do arquivo de configuração.

A primeira coluna é o número da entrada de log; a segunda coluna é o tick ao qual foi feito o log; a seguinte coluna é o nível de severidade; depois o nome do logger e finalmente a mensagem.



Figura 2


  • Basic Agent Exercise 2


No PAM Table é possível verificar se os valores de ativação no Node red e do Node square são 1 quando é apresentado um quadrado vermelho e Node blue e Node circle são 1 quando apresentado o circulo azul. Na figura de embaixo, quado o quadrado vermelho é trocado por um circulo azul, os valores dos Nós no PAM Table são decrementados até chegar a zero.



Figura 3


Arquivo de propriedades modificado e novo código inserido:


Figura 4


Execução após alteração:


Figura 5


  • Basic Agent Exercise 3


O diagrama a seguir apresenta os elementos com o traço pontilhado que serão adicionados nesta parte do Tutorial


Figura 6


Inclusão do modulo Enviroment:


Figura 7


Ate o momento o agente ainda não percebe a presença do circulo azul, isto ocorre porque ainda não foram inseridos os detetores de características (feature detectors), mesmo quando o quadro vermelho é reconhecido ele ainda não transfere a informação ao Perceptual Buffer. Isso acontece porque a conexão entre o PAM e o Workspace ainda não foi definida no arquivo de declaração do agente. Essa conexão corresponde ao "Move Percept" no modelo LIDA


Figura 8


A seguir sera apresentada a inclusão do PAMListener


Figura 9


Após adicionar o PamListener a informação do PAM passa para o Perceptual Buffer



Figura 10


Para detetar o circulo azul é necessário adicionar o feature detectors, isto é feito adicionando a task blueDetector e circleDetector no modulo PerceptualAssociativeMemory


Figura 11


O objetivo do programa é que o agente responda quando surgir o quadrado vermelho ou o circulo azul. Quado o quadrado vermelho aparecer então selecionar o botão 1; se o circulo azul aparecer, selecionar o botão 2. Neste momento ele não cumpre a segunda ação já que não possui "attention codelet" no GlobalWorkspace.


Para realizar a ação do agente quando é apresentado para ele o circulo azul é adicionada uma tarefa de execução chamada blueCircleCodelet



Figura 12


Programa terminado: O agente seleciona o botão 1 quando aparece o quadrado vermelho e o botão 2 quando aparece o circulo azul



Figura 13

  • Advanced Exercise 1


É possível rodar o agente sem usar o GUI, para isso basta alterar o valor de lida.gui.enable para false

Figura 14


Também é possível modificar a forma como é apresentada a informação do Logging, ela pode ser apresentada no console ou em um arquivo. A configuração do Logging é feita através do arquivo logging.properties.


  • Advanced Exercise 2


É possível modificar o número de ticksPerRun de uma tarefa para trocar a forma como executa. O valor de ticksPerRun pode ser localizado na definição do codelet no arquivo de configuração do Agente.


  • Advanced Exercise 3

Nesta parte do tutorial sera realizada a tarefa onde o agente detecta o estado de "vazio" e realiza a ação de "releasePress". Para isso foi criada uma classe de feature detector e adicionada em um codelet.

1.) Foi criado um feature detector para o estado empty (quando o quadrado for branco). O feature detector é uma classe chamada EmptyFeatureDetector:





Figura 15


2) Foi adicionado o novo feature detector como nova tarefa (task) dentro do arquivo factoryData.xml:


Figura 16


3) Adicionado o nó empty na lista "nodes" do modulo PerceptualAssociativeMemory:


Figura 17


4) No arquivo basicAgent.xml foi definido o codelet como BasicAttentionCodelet com o parâmetro empty:


Figura 18


5) Criação do esquema no ProceduralMemory:


Figura 19


6) Associação do algoritmo de ação no SensoryMotorMemory:


Figura 20


Na seguinte imagem pode-se verificar que o agente detecta o estado empty no PAM Table.


Figura 21


Na imagem a seguir e possivel verificar que o estado empty que é transmitido ao Perceptual Buffer


Figura 22


Na seguinte imagem pode-se verificar que a ação é tomada executada:


Figura 23


Na seguinte imagem pode-se verificar que a ação de releaseButton é executada apos o botão 2 ser selecionado, completando a tarefa proposta.



Figura 24

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer