quarta-feira, 1 de dezembro de 2010

Sistemas Especialista – SE

Introdução

    O interesse pelos sistemas especialistas (SE) iniciou na década de 70 através do ramo da inteligência artificial que estuda o processamento simbólico. Esses sistemas são capazes de lidar com uma quantidade de dados muito grande sobre uma determinada área, com o objetivo de simular a ação de um especialista ou perito no assunto.
    Para determinados problemas e aplicações onde há um consenso entre os peritos da área, os sistemas especialistas podem se tornar capazes de gerar soluções de forma rápida e precisa. Já para aplicações onde o conhecimento ainda não é bem estabelecido ou que a solução é dependente da previsão/intuição do perito, se torna mais complexa a construção de um sistema especialista eficiente.
    Esses sistemas possuem outros potenciais interessantes. Eles podem procurar padrões complexos na base de conhecimento, sendo capazes de encontrar novas associações que dificilmente seriam descobertas por um perito humano. Também são capazes de aprender e gerar novas regras a partir da sua utilização.
    Este trabalho apresenta as algumas das principais diferenças entre o modelo de sistemas especialistas e convencionais (SC). São apresentados também alguns exemplos de sistemas que já foram construídos e, por fim, será detalhada a arquitetura do sistema CLIPS.


Sistemas Especialistas vs. Sistemas convencionais: principais diferenças
Quanto à representação do conhecimento
SC - conhecimento normalmente é determinístico e fixo. Parte dele situa-se na memória e parte no próprio código do programa.
SE - conhecimento é independente da utilização do programa e é chamado de declarativo.  O acesso ao conhecimento é feito por associação.
Quanto ao aprendizado
SC - para alterar o domínio de utilização de um SC normalmente é necessário alteração no código do sistema.
SE - como se trata de uma aplicação da inteligência artificial, o programa pode ter capacidade de aprender com sua utilização e resolver mais problemas do que inicialmente projetado. Esse aprendizado é possível apenas alterando de forma automática (ou não) as regras do sistema, sem a necessidade de alterar o código do programa.
Quanto aos papéis no sistema

SC

  • Usuário: interage com o sistema e com o desenvolvedor para especificar o sistema
  • Desenvolvedor: interage com o usuário e trabalha na implementação do sistema

SE
  • Usuário final: apenas interage com o sistema através de diálogos
  • Especialista no problema:  interage com o engenheiro do conhecimento para repassar seus conhecimentos
  • Engenheiro do conhecimento: trabalha com a representação do conhecimento do especialista no sistema

Exemplos de Sistemas Especialistas
    Diversos sistemas já foram projetados e construídos, desde a década de 60. Abaixo estão listados alguns dos sistemas e seus propósitos:

  1. Mycin - diagnóstico de doenças do sangue e recomendação de antibióticos.
  2. Dendral - auxiliar na inferência da origem de uma molécula, através do espectro de massa.
  3. Prospector - auxiliar na prospecção mineral.
  4. R1 - auxiliar no pedido de compras máquinas VAX.
  5. SETH - tratamento para envenenamento.
  6. CLIPS - motor para sistemas de diagnóstico.


O Sistema CLIPS

O sistema CLIPS foi desenvolvido na década de oitenta utilizando a linguagem C (ANSI), e não LISP como a maioria dos sistemas baseados em regras. Seu nome significa "C" Language Integration Production System.

Motor de inferência

O CLIPS utiliza um algoritmo de casamento de padrões (pattern-matching) com encadeamento para frente (forward chaining), como mostra a Figura 1. O motor de inferência do CLIPS suporta adição dinâmica de regras, checagem estática e dinâmica de integridade (constraint) e estratégias de resolução de conflitos configuráveis.


forward chainning pattern matching
Figura 1: Casamento de padrões com encadeamento para frente.


Representação do conhecimento

    A linguagem que o CLIPS utiliza para representação do conhecimento é similar com a utilizada no OPS5 e no ART. Podem ser utilizadas as seguintes contruções:
  • afirmações e retrações simples de fatos
  • templates
  • regras/produções if-then
  • objetos e instâncias
Linguagem interna do CLIPS

    O CLIPS também possui uma linguagem orientada à objetos (COOL) que suporta:
  • abstração de dados / encapsulamento - atributos de instâncias só são acessíveis através de mensagens
  • herança múltipla
  • polimorfismo - ligação dinâmica quando um gerenciador de mensagens é ativado
  • casamento de padrões com objetos COOL
    O desenvolvedor da base de conhecimento pode definir um esquema de objetos dentro do CLIPS, escrever classes, instanciar objetos e iniciar inferências nas classes e em fatos. A Figura 2 mostra como o desenvolvedor pode interagir com o esquema de objetos do CLIPS.

cool

Figura 2: Estratégia de desenvolvimento da base de conhecimento orientada à objetos.

Utilizando o clips

    Todas as funcionalidades do CLIPS podem ser acessadas através de chamadas da API C, permitindo embutir o clips em qualquer aplicação que necessite de um comportamento baseado em regras.  As construções do clips podem ser manipuladas através da interpretação dos programas ou através da ligação das contruções compiladas com a aplicação do usuário.

Desvantagens do CLIPS
  • Não suporta encadeamento reverso (backward chaining)
  • Suporta objetos porém seu projeto interno não é em C++
  • Não inclui bibliotecas e rotinas prontas: foi projetado para ser um motor de inferência

Considerações finais
Os sistemas especialistas podem ser úteis na resolução de muitos problemas, podem servir na redução de custos, descoberta de associações que especialistas no assunto podem não conhecer. Além disso eles podem servir no auxílio em situações de emergência pois possuem uma disponibilidade maior que um perito e não possuem emoções que podem alterar o diagnóstico em casos críticos.
Referências
American Association for Artificial Intelligence - Expert systems - http://www.aaai.org/AITopics/html/expert.html 
Luis O. Alvares - Notas de Aula - http://www.inf.ufrgs.br/~alvares/teaching/Sistemas%20Especiali.pdf
Davis, R., Buchanan, B.G., and Shortliffe, E.H., "Production Systems as a Representation for a Knowledge-based Consultation Program," Artificial Intelligence, 8, (1), pp. 15-45, 1977.
Buchanan, B.G. and Feigenbaum, E.A., "DENDRAL and Meta-DENDEAL: Their Applications Dimension," Artificial Intelligence, 11, pp. 5-24, 1978.
Duda, R., Gaschnig, J., and Hart, P., "Model Design in the PROSPECTOR Consultant System for Mineral Exploration," D. Michie, ed., Expert Systems in the Micro-Electronic Age, Edinburgh University Press, pp. 153-167, 1979.
McDermott, J., and Bachant, J., "R1 Revisited: Four Years in the Trenches," AI Magazine, V, (3), pp. 21-32, Fall 1984.
Seth - http://www.chu-rouen.fr/dsii/publi/seth.html
Clips - http://rd13doc.cern.ch/Atlas/Notes/108/Note108-1.html

Nenhum comentário:

Postar um comentário