You are here

Aula 2 - SOAR: Tutorial 1

Objetivos

Nesta aula, iniciaremos o estudo do SOAR. O SOAR é uma arquitetura cognitiva desenvolvida na Universidade de Michigan, pela equipe do Prof. John Laird. Maiores informações sobre o SOAR podem ser obtidas a partir da página Web do grupo, que pode ser encontrada aqui. A equipe do SOAR desenvolveu um tutorial em 9 passos que estaremos utilizando como base para o nosso curso. Na aula de hoje, desenvolveremos as atividades do Tutorial 1. As atividades devem ser documentadas utilizando-se screenshots das telas para cada atividade, que devem ser utilizadas no relatório das atividades do dia, de forma semelhante à realizada na primeira aula. Nesta aula, não teremos que fazer o upload de programas, que desenvolveremos para o WorldServer3D somente após terminado o estudo separado do SOAR.

Atividade 1: Instalando o SOAR

Faça o download do SOAR apropriado para sua plataforma. O SOAR pode ser obtido aqui, ou se este link não estiver funcionando, temos uma cópia local da Versão Linux 64 bits. Estamos fazendo o download do software acompanhado do tutorial, que utilizaremos nesta e nas próximas aulas. Uma versão sem o tutorial pode ser encontrada adicionalmente aqui. Para instalar o SOAR basta desempacotar o arquivo zip em algum lugar adequado. Como o SOAR utiliza bibliotecas desenvolvidas em C, é necessário fazer o download compatível com o seu sistema operacioanal. A versão para Linux 32 bits não funcionará em um Linux 64 bits, nem em Windows, mesmo que o código esteja em Java. O pessoal do SOAR poderia ter encapsulado tudo em um único delivery, como fizemos com o WorldServer3D, mas preferiram dispobilizar versões separadas para cada plataforma.

As atividades a seguir encontram-se detalhadas no arquivo Soar Tutorial Part 1.pdf, que se encontra na pasta Documentation.  Informações adicionais sobre a plataforma SOAR podem ser encontradas no arquivo SoarManual.pdf, na mesma pasta.

Atividade 2: Construindo um Agente SOAR Simples usando Regras

Nesta atividade, iremos construir um agente SOAR muito simples, somente para entender o funcionamento do SOAR, e gerar um Hello World utilizando a infra-estrutura do SOAR.

Criando um Agente SOAR e Utilizando o SOAR Debugger

Para executar o SOAR Debugger, execute o arquivo SoarJavaDebugger.sh, que se encontra na raiz da pasta onde foi instalado o SOAR. Ao executar o debugger, automaticamente é criado um agente SOAR, com o nome "soar1", que pode ser verificado no título da janela. Nos exercícios que faremos a seguir, estaremos depurando as etapas de funcionamento do SOAR, e portanto faremos uso do SOAR Debugger para trackear o funcionamento do SOAR passo a passo. Quando fizermos um uso em produção do SOAR, todo o código SOAR será executado em background, e o agente controlará o WorldServer3D sem o uso da ferramenta de depuração. 

Executando o Hello World do SOAR

Desenvolva o aplicativo Hello World do SOAR, conforme a descrição no texto do tutorial. Documente o processo e coloque no seu relatório.

Utilizando a Memória de Trabalho

Descubra como funciona a memória de trabalho do SOAR, e documente em seu relatório. Descubra, principalmente, como funciona o mecanismo de entrada e saída de dados do SOAR, que será importante depois quando utilizarmos o SOAR em produção.

Atividade 3: Agentes Simples utilizando Operadores

O mecanismo de operação do SOAR vai além de simplesmente executar regras. O mecanismo mais utilizado é o que faz uso dos assim chamados "operadores". Nesse mecanismo, algumas regras são utilizadas para propor "operadores", que depois vão concorrer para serem selecionadas pelo procedimento de decisão, para que ao final, algum operador seja executado. Investigue como funciona esse mecanismo, e documente em seu relatório.

Executando o Hello World com Operadores

Neste experimento, o programa "Hello World" desenvolvido na atividade 2 será agora modificado para fazer uso dos operadores, ilustrando seu funcionamento. Siga a instrução no texto do Tutorial e execute o programa "Hello World" com operadores.

Quais as vantagens que você pode imaginar para o uso de regras com operadores ? Como elas podem ser diferentes das regras convencionais ? Especule sobre isso em seu relatório.

Examinando a Memória de Trabalho

Examine a memória de trabalho, com o uso do SOAR Debugger e entenda o passo a passo da ação dos operadores. Documente em seu relatório.

Utilizando o Visual SOAR

Em princípio, os arquivos com as regras do SOAR são arquivos textos convencionais, podendo ser editados em qualquer editor de texto. Entretanto, a equipe do SOAR criou o VisualSoar, um editor com vantagens adicionais agregadas, que permite, segundo eles, uma melhor experiência no desenvolvimento de sistemas com o SOAR.

Utilizando o texto do Tutorial 1, investigue quais as vantagens adicionais que o VisualSOAR traz, e documente em seu relatório.

Atividade 4: Criando um Agente para o Water Jug Problem

O problema Water Jug é um problema clássico da IA, para o qual é necessário fazer uma busca em um espaço de estado finito e limitado. Entenda qual é a proposta desse problema, e como podemos representá-lo de tal forma que o mesmo possa ser solucionado por meio do Soar.

Utilizando o Tutorial 1 do Soar como guia, iremos desenvolver um agente capaz de resolver o problema Water Jug, ilustrando um potencial uso do Soar em um problema clássico.

Persistência de WMEs

A dinâmica de persistência dos WMEs na memória de trabalho não é tão trivial. Isso porque o Soar retira de tempos em tempos os WMEs que já foram utilizados. Seguindo o tutorial 1, tente entender essa dinâmica. Depois que uma regra é executada, por quanto tempo o resultado permanece na memória de trabalho ? Como o Soar resolve esse problema, para que os resultados da inferência de uma regra possam ser utilizados em outras regras, sem fazer explodir a memória de trabalho ? Descubra, e documente em seu relatório.

Elaboração de Estado

O tutorial 1 sugere, para a resolução do problema Water Jug, a utilização de uma estratégia que ele chama de elaboração de estado. Como funciona essa estratégia ? Descubra e documente em seu relatório.

Proposição de Operadores

Como funciona o mecanismo de proposição de operadores do Soar ? Execute o exemplo do tutorial 1 e descubra. Documente em seu relatório.

Aplicação de Operadores

Como o Soar faz para escolher os operadores que devem ser aplicados, a partir das proposições ? Descubra e documente em seu relatório.

Monitoramento de Estados e Operadores

Como é possível monitorar a operação do Soar, na aplicação dos operadores e regras ? Descubra e documente em seu relatório.

Reconhecimento do Estado Desejado

Após executar os operadores, o Soar cria novos estados. Como reconhecer que se chegou a um estado desejado ? Como o Soar faz isso ? Descubra, e documente em seu relatório.

Controle de Busca

Como evitar que a proposição de novos operadores e sua escolha aconteça de maneira cega ? Como fazer para que alguns operadores tenham preferência sobre outros ? Como utilizar esse mecanismo no Soar para guiar o processo de busca por um estado-solução ? Descubra e documente em seu relatório.

Conclusão

Quais as conclusões que você pode tirar dos experimentos desenvolvidos na aula de hoje ? Como o Soar se compara com um sistema de processamento de regras convencional, como um sistema especialista ? Quais as semelhanças ? Quais as diferenças ? Especule em seu relatório.

 

 

 

 

 

 

 

 

 

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer