Agentes Simples utilizando Operadores
Nesta atividade foi executado o código do Hello World com operadores fornecido pelo tutorial do SOAR o estudo e compreenção de seu funcionamento.
sp {propose*hello-world | Declara Soar Production propose*hello-world |
(state <s> ^type state) | Se existe identificador com propriedade tipe de valor state, coloca o identificador em <s> |
--> | then |
(<s> ^operator <o> +) | adiciona um operador <o> com preferencia aceitável em <s> |
(<o> ^name hello-world)} | adiciona a propriedade name com valor hello-world em <o> |
sp {apply*hello-world | Declara Soar Production apply*hello-world |
(state <p> ^operator <o>) | Se existe identificador <p> com operador <o> |
(<o> ^name hello-world) | onde name de <o> valha hello-world |
--> | then |
(write |Hello World|) | escreve Hello World |
(halt)} | Halts |
Em um dado momento um estado pode possuir vários operadores selecionárveis, cada qual com sua preferência. É possível aumentar e reduzir a preferência de cada operador durante e execução. Regras definirão quais operadores serão selecionáveis naquele momento de execução e as preferências dos operadores uns sobre os outros. Assim, o agente produzirá um comportamento de seleção e aplicação de operações. O objetivo do programador é induzir o sistema a selecionar as operações corretas a serem aplicadas a cada momento de forma a resolver o problema em questão.
A imagem abaixo exibe o detalhamento da execução do Hello World com operador através do Soar Debugger. É possível ver na imagem o momento em que o agente 'proposes' o operador Hello-World modificando a memória de trabalho e em seguida o momento onde o operador é disparado, imprimindo Hello World e interrompendo a execução do agente.
clique na imagem para melhor visualização
Visual Soar
Uma das ferramentas disponibilas no pacote do SOAR é o Visual Soar. Esta ferramenta auxilia no desenvolvimento de projetos SOAR de forma a facilitar a criação, manutenção e documentação do código. As principais vantagens observadas no Visual Soar são:
- Coloração de texto com regras de sintaxe
- Auto formatação de texto com regras de sintaxe
- Templates para criação de regras e operadores
- Verificação de erros de sintaxe
- Auto complete
- Manutenção de um Data Map que:
- Permite buscar elementos de memória que nunca são criados ou testados
- Facilita vizualização da estrutura do agente como um todo
Na atividade 4 a seguir, foi feito intenso uso do visual soar e suas possibilidades ficam mais claras.