segunda-feira, 30 de julho de 2012

SISTEMA ESPECIALISTA (SE)- Roberto S. Souza



O conceito de sistemas especialistas

Edward Feigenbaum, professor da Universidade de Stanford, pioneiro na tecnologia de sistemas especialistas - S.E.'s, define-os como "... um programa inteligente de computador que usa conhecimento e procedimentos de inferência para resolver problemas que são difíceis o suficiente para que sua solução necessite de um grau significativo de perícia humana." [FEI   63]        . Isto é, um sistema especialista é um sistema de computação que emula a habilidade de tomar decisões de um especialista humano.

Uma característica fundamental em sistemas especialistas é que o conhecimento do(s) especialista(s) é armazenado através de regras. Regras, neste contexto, são construções simples na forma:  Se alguma condição é verdadeira, Então faça alguma coisa. O uso de regras é interessante em algumas situações tendo em vista que permite a construção da definição de um determinado comportamento de maneira compacta. Se analisado em sua forma mais simples, um determinado comportamento caracteriza-se por um conjunto de ações e um conjunto de condições sob as quais as ações devem acontecer.
Um sistema especialista continuamente analisa um conjunto de elementos condicionais (conhecidos como regras) em relação a uma base de fatos (também conhecida como base de conhecimento) para verificar se alguma regra pode ser aplicada para aquele conjunto de fatos. Se a premissa é verdadeira, então o sistema especialista executa as ações associadas gerando novos fatos na base de conhecimento. Este processo de analisar a base e disparar regras é realizado por um componente denominado: máquina de inferência.
A aplicação desta tecnologia apresenta uma série de vantagens, dentre as quais, algumas são citadas por Gardner [GAR 92] a seguir:

1- solucionar problemas importantes que, de outro modo, deveriam ser solucionados por um perito humano;

2- flexibilidade na integração de novos conhecimentos ao conhecimento já armazenado;

3- auxílio aos usuários na elucidação, estruturação e transferência de conhecimento;

4- capacidade de mostrar seu conhecimento de uma forma facilmente compreensível;

5- disponibilização de explicações sobre suas recomendações;

6- capacidade de raciocinar com conhecimentos incompletos sobre a natureza de uma tarefa ou como a tarefa deve ser realizada de forma eficiente;

7- capacidade de tratar sentenças simples em linguagens naturais.

No exemplo do problema sendo considerado, as questões (b), (c) e (e) são aspectos importantes, que se utilizadas adequadamente em uma ferramenta de software, certamente podem contribuir significativamente no apoio ao aprendizado de lógica de programação.

 

REFERENCIA: MATTOS, Mauro M., FERNANDES Andrino, LÓPEZ Oscar C., - Sistema Especialista para Apoio ao Aprendizado de Lógica de Programação, UFSC -  Universidade Federal de Santa Catarina

Um comentário: