Um Simulador de Comportamento Animal Baseado numa Especificação Formal da Análise do Comportamento de B. F. Skinner

Tipo Iniciação científica
Aluno Paulo Salem da Silva
Orientadora Ana C. V. de Melo
Introdução

Desenvolvida por Burrhus Frederic Skinner, a Análise do Comportamento (em inglês, Behavior Analysis) é um ramo da Psicologia alinhado com os preceitos da chamada escola Comportamental (em inglês, Behaviorism). A Análise do Comportamento busca compreender o comportamento dos organismos através de relações entre os estímulos ambientais por eles recebidos e suas ações correspondentes. Tais relações estabelecem classes de comportamentos, as quais possuem propriedades específicas e bem definidas.

Do ponto de vista da Ciência da Computação, a simplicidade e precisão dessa teoria sugerem a possibilidade de uma implementação. Isto é, parece factível simular organismos em ambientes segundo as definições e resultados experimentais da Análise do Comportamento.

Um simulador assim concebido teria uma dupla utilidade. Em primeiro lugar, poderia servir como uma ferramenta para a Psicologia, na medida em que permitiria não só a realização de experimentos com organismos virtuais, como também a possibilidade de se testar novas teorias mediante o ajuste de parâmetros do simulador. Em segundo lugar, tal programa poderia ser adaptado não para simular criaturas, mas para dotar sistemas computacionais de capacidades comportamentais análogas.

Neste trabalho, propomos a criação de tal simulador. Para tanto, o trabalho é dividido em duas etapas fundamentais:

  • a especificação formal dos conceitos da Análise do Comportamento;
  • a construção de um programa que implemente tal especificação.

Topo

Objetivos

Como dito acima, o trabalho é dividido em duas etapas principais: uma especificação formal de uma teoria psicológica e uma implementação de tal especificação. Contudo, visto a dificuldade em se prever precisamente a complexidade da especificação, torna-se inviável garantir, a priori, que poderemos concluir ambas as etapas satisfatoriamente no decorrer do ano. Assim, estabelecemos o desenvolvimento da especificação como nosso objetivo primário, colocando a implementação em segundo plano. Cabe ressaltar, porém, que acreditamos que será possível ter pelo menos uma implementação parcial do sistema.

Nas próximas subseções descrevemos mais detalhadamente no que se constitúi a especificação formal, bem como sua implementação.

A especificação formal

Uma vez que visamos implementar uma teoria, é necessário que tenhamos um modelo matemático que a descreva precisamente, de maneira que a implementação não seja feita em cima de decisões arbitrárias. Embora os conceitos da Análise do Comportamento sejam razoavelmente claros e bem definidos, desconhecemos alguma formalização matemática deles. Por conseguinte, é necessário que estabeleçamos tal formalização antes de procedermos com a implementação.

A formalização que estamos desenvolvendo é baseada na literatura do campo, sobretudo em Science and human behavior [Skinner1953] e Learning [Catania1998]. Procuramos ser fiéis aos conceitos descritos na literatura, na medida do possível. Contudo, é concebível que no decorrer do processo nos vejamos com a obrigação de acrescentar ou remover elementos da teoria, de maneira a possibilitar uma formalização apropriada.

No tocante à notação, estamos utilizando o método formal Z [Jacky1996].

A implementação do simulador

O simulador deverá ser capaz de simular organismos e suas interações com ambientes, segundo as definições da especificação formal. Ademais, deverá ser suficientemente flexível para acomodar mudanças em algorítmos específicos. Isto é, embora o programa vise atender a uma determinada especificação, ele deverá ser capaz de acomodar mudanças em pontos específicos, de maneira a permitir experimentos com diferentes algorítmos. Pensamos que haverá um núcleo rígido e diversas políticas substituíveis operando sobre ele. Por exemplo, tomemos a classe de comportamentos conhecida como comportamento operante. Tal classe é definida tanto por propriedades estruturais (i.e., os elementos que compõe um comportamento da classe), quanto por propriedades dinâmicas (e.g., a maneira pela qual um comportamento torna-se mais ou menos provável). Imaginamos que as propriedades estruturais farão parte do núcleo do sistema, enquanto que as dinâmicas provavelmente serão passíveis de substituição.

Pensamos no simulador como um componente de software que por si só não fornece serviços a usuários. Ele proverá um motor fundamental sobre o qual aplicativos poderão ser construídos. Tais aplicativos definirão o que consideram um organismo e seu ambiente, cabendo ao simulador explorar as conseqüências de tais definições. Embora possa-se definir organismos "usuais" (i.e., animais), não será preciso limitar-se a isso, na medida em que qualquer definição que forneça sensores, atuadores e outros mecanismos poderá valer-se das capacidades do simulador. Por exemplo, podemos imaginar um processador de textos, digamos, que se adapta aos gostos do usuário, o qual poderia "treiná-lo" tal como treinaria um cão.

Vemos muitas possibilidades de aplicativos. Contudo, no momento, eles não são o foco do projeto. Pretendemos, naturalmente, fornecer ao menos um aplicativo de exemplo que demonstre as capacidades do simulador. Mas aplicações mais complexas ficam como possibilidades a serem estudadas no futuro.

Topo

Atividades já realizadas

A multidisciplinaridade do projeto implica em duas linhas paralelas de trabalho. Por um lado temos o estudo dos conceitos da Psicologia envolvidos e, por outro, o estudo das técnicas de formalização e dos mecanismos para a implementação do simulador.

No que se refere à Psicologia, estudamos o conteúdo completo de Science and human behavior [Skinner1953] e agora estamos procedendo com a leitura de Learning [Catania1998]. Vale comentar que foi a leitura daquele que nos motivou a elaborar este projeto.

Quanto à formalização, já produzimos um esboço inicial, estudamos os fundamentos do método Z e elaboramos parte da especificação final.

Como esboço inicial, construímos uma ontologia que explicita os elementos principais da teoria, bem como algumas de suas relações, valendo-nos da ferramenta Protégé [Protege]. Essa ontologia teve como objetivo primário melhorar nossa compreensão da teoria psicológica envolvida. Pensamos, contudo, que ela possa ter outras utilidades, e estudaremos essa possibilidade no decorrer do projeto.

Até há pouco tempo atrás, o método formal Z nos era algo desconhecido. Assim, foi necessário empregar uma quantidade razoável de esforço em seu aprendizado. Com o que aprendemos, já produzimos parte da especificação formal, embora muito precise ser revisado. A grosso modo, estimamos que já temos um quarto do produto final.

Com relação à implementação, ainda não possuímos nada.

Topo

Cronograma

Baseando-nos no nosso progresso até o presente momento, estimamos o seguinte cronograma para o segundo semestre:

Julho

Finalização da estrutura básica da especificação. Pretendemos ter, ao final de Julho, todas as principais definições prontas.

Agosto

Melhorias na especificação. Nesta etapa pretendemos acrescentar detalhes à estrutura fundamental.

Setembro

Melhorias na especificação. Como estaremos com a especificação quase completa neste ponto, trata-se de um bom momento para verificar-se propriedades lógicas a respeito da especificação.

Outubro

Projeto do sistema e implementação inicial.

Novembro

Melhorias na implementação.

Conforme havíamos comentado anteriormente, nossa prioridade é a especificação formal, não sua implementação. De modo que, se tornar-se necessário, as fases de implementação serão suprimidas. Acreditamos, todavia, que o cronograma proposto acima é razoável.

Topo

Estrutura esperada da monografia

A monografia será dividida em duas partes. A primeira abordará os aspectos técnicos do trabalho, enquanto a segunda tratará dos aspectos subjetivos tanto do trabalho em si quanto da relação dele com o Bacharelado em Ciência da Computação.

  • Parte técnica
    • Introdução
      • Visão geral e motivação
      • Aplicações da tecnologia desenvolvida
        • Aplicações na Psicologia
        • Aplicações na Ciência da Computação
    • Conceitos e tecnologias estudadas
      • Psicologia
        • Visão geral de algumas abordagens psicológicas
        • Alguns conceitos de Behaviorism e Behavior Analysis
      • Métodos formais
        • Visão geral da área de métodos formais
        • O método Z
        • Aplicação do método Z para modelagem do nosso simulador
      • Programação
        • Padrões de design e arquiteturais relavantes
        • Algorítmos e estruturas de dados relevantes
        • Considerações sobre a plataforma e linguagem da implementação
    • Atividades realizadas
    • Resultados e produtos obtidos
      • Especificação formal
      • Simulador
    • Conclusão
    • Bibliografia
  • Parte subjetiva
    • Desafios e frustrações
    • Disciplinas relevantes
    • Interação com pessoas
    • Planos para o futuro

Topo

Referências
[Catania1998]

Catania, C. A. Learning. 4 ed. Prentice Hall, 1998.

[Jacky1996]

Jacky, J. The Way of Z: Practical programming with formal methods. Cambridge Univeristy Press, 1996.

[Protege]

The Protégé Ontology Editor and Knowledge Acquisition System. Disponível em: http://protege.stanford.edu/. Acessado em: 19 de agosto de 2004.

[Skinner1953]

Skinner, B. F. Science and Human Behavior. The Free Press, 1953.

Topo