You are here

SOAR Tutorial 9

 

Part IX: Episodic Memory

Episodic memory (EpMem) é um mecanismo no Soar que automaticamente captura, armazena e temporalmente indexa o estado do agente.

 

1. A Short Demonstration

Primeiro é feito um exemplo de captura do episódio e o que contem a sua memória.

Foi feito um programa em SOAR com os seguintes comandos:

epmem --set trigger dc

epmem --set learning on

watch --epmem

 

Depois de fazer click no botão de “Step” duas vezes é obtida a seguinte saída:

 

A massagem apresenta a criação de um Episode com ID 1. Pode-se ver o conteúdo da episodic memory usando o comando epmem --print que tem como parâmetro o ID do episódio. Assim a saída do comando epmem --print 1 é

 

É possível obter uma imagem gráfica do conteúdo da memória utilizando o comando

command-to-file epmem.gv epmem --viz 1

 

2. Episodic Storage

Episodic storage é automático e captura o estado-maior (top-state) do agente na working memory. Para habilitar o armazenamento do Episodic Memory é necessário executar o seguinte comando:

epmem --set learning on

Por padrão, episodic memory armazena novos episódios cada vez que um elemento da Working Memory é adicionada à Working Memory que tem o identificador output-link.

O seguinte parâmetro importante é o momento quando episodic memory armazena os episódios. Por padrão, este processo acontece no final da fase de saída. Mas SOAR permite que o processo aconteça no final da fase de decisão. Esto se pode habilitar com o seguinte comando:

epmem --set phase selection

Para habilitar a saída com a informação do episodic memory é necessário executar o seguinte comando:

watch --epmem

 

3. Agent Interation

Os agentes interagem com a episodic memory através de estruturas especiais na working memory. SOAR automaticamente cria um epmem link em cada estado, e cada epmem link tem uma sub-estrutura especializada: um command link e um result link para o feedback da episodic memory.

A saída do SOAR ao executar o comando print --depth 10 <s> é:

Como será descrito mais na frente, o agente, através de regras, enche e mantêm o command link e a arquitetura enche e mantêm o result link

4. Cue-Based Retrieval.

O método principal como um agente pode obter o conhecimento da episodic memory é chamado

cue-based retrieval: o agente solicita da episodic memory um episódio que mais se aproxime a uma sugestão nos elementos da working memory. A sintaxe do comando é (<cmd> ^query <cue>), onde <cue> forma a raiz da sugestão. O comando retorna o episódio mais recente com a máxima contagem.

 

5. Temporal Progression

Outra maneira para que o agente possa obter informação da episodic memory é obtendo o episódio que está temporalmente, antes ou depois do último episódio que foi obtido. A sintaxe do comando são:

(<cmd> ^previous <id>) para obter o episódio passado, e (<cmd> ^next <id>) para obter o episódio seguinte. Aqui <id> é o identificador do episódio.

 

 

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer