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:
A primeira parte do
exercício é abrir o projeto do exemplo e identificar os
principais arquivos e classes:
Figura
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
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
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
É 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.
É 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.
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:
