Sistema especialista se divide em duas palavras, que são Sistema - "Conjunto de elementos, materiais ou ideais, entre os quais se possa encontrar ou definir alguma relação" e Especialista - "Pessoa que se consagra com particular interesse e cuidado a certo estudo. Conhecedor, perito", sendo uma classe de programa de computador desenvolvido por pesquisadores de Inteligência artificial durante os anos 1970 e aplicado comercialmente durante os anos 1980. Em síntese, são programas constituídos por uma série de regras (às vezes também heurísticas) que analisam informações (normalmente fornecidas pelo usuário do sistema) sobre uma classe específica de problema (ou domínio de problema).Vasconcelos, V.V.;Martins Junior, P.P. Protótipo de Sistema Especialista em Direito Ambiental para Auxílio à decisão em Situações de Desmatamento Rural. NT-27. CETEC-MG. 2004. 80p.
Um termo relacionado é wizard (software) (em inglês). Como um sistema especialista, um wizard também é um programa de computador interativo que auxilia o usuário a resolver um problema. Normalmente, o termo wizard é empregado para designar programas que pesquisam uma base de dados procurando por critérios informados pelo usuário. Infelizmente, a distinção entre essas duas definições não é universal, e alguns programas baseados em regras são também chamados de wizards.
Um sistema especialista (SE) é desenvolvido a partir da necessidade de se processar informações não numéricas, é capaz de apresentar conclusões sobre um determinado tema, desde que devidamente orientado e "alimentado".
Um sistema especialista é uma forma de sistema baseado no conhecimento especialmente projetado para emular a especialização humana de algum domínio específico. Um SE irá possuir uma base de conhecimento formada de fatos e regras sobre o domínio, tal como um especialista humano faria, e devem ser capazes de oferecer sugestões e conselhos aos usuários.FLORES, C. D. Fundamentos dos Sistemas Especialistas. In: BARONE, D. A. C. (Ed.). Sociedades Artificiais: a nova fronteira da inteligência nas máquinas. Porto Alegre: Bookman, 2003.
Sistemas Multi-Especialistas são uma tendência moderna, visto que muitos problemas não são possíveis de se resolver com apenas um profissional especialista, mas apenas com toda uma equipe multidisciplinar. Nesse caso, o programa se torna especialista em dois ou mais ramos de áreas científicas distintas, e usa esses conhecimentos de forma integrada para fornecer o melhor aconselhamento possível.
Histórico Década de 1980 No início, segundo Passos [l989], as estratégias de resolução de problemas de propósitos gerais da inteligência artificial (IA), se mostraram muito ineficientes na solução de problemas complexos.
Década de 1970 Na década de 1970, ficou claro para os pesquisadores de IA que para conseguir que seus sistemas resolvessem satisfatoriamente problemas reais, era necessário incorporar neles grandes quantidades de conhecimentos sobre o problema. Isto fez surgir a necessidade o campo da "Engenharia do Conhecimento" que procura formas de viabilizar a utilização de conhecimentos de especialistas na solução de problemas complexos.
Esta tecnologia resultante desse campo de estudos, chamado Sistemas Especialistas, hoje é bastante usada em aplicações comerciais.
Os sistemas especialistas da década de 1970 utilizavam raciocínio lógico estrito, ignorando a incerteza, e logo se mostraram impraticáveis para a maioria dos domínios do mundo real. A geração seguinte de sistemas especialistas empregava técnicas probabilísticas, principalmente em domínios médicos. Apesar dos promissores resultados iniciais, não aumentaram a sua escala devido ao número elevado de probabilidades exigidas na distribuição conjunta total.
Em meados da década de 1970, foram desenvolvidas as abordagens baseadas em regras para a incerteza, que usavam como fundamento o sucesso de sistemas baseados em regras lógicas, acrescentando uma espécie de "fator de improvisação" a cada regra para acomodar a incerteza. Estes métodos serviram de base para inúmeros sistemas especialistas em medicina e outras áreas.Russel, Stuart J. Inteligência Artificial: tradução da segunda edição/ Stuart Russel, Peter Norvig. Rio de Janeiro: Elsevier, 2004.
Década de 1960 Foi criado o sistema Dendral em 1968
Tipos de problemas solucionados por sistemas especialistas Tipicamente, os problemas que podem ser solucionados por um sistema especialista são do tipo que seria atendido por um especialista humano - um médico ou outro profissional (na maioria dos casos). Especialistas reais no domínio do problema (que normalmente é bem específico, como por exemplo "'diagnosticar doenças de pele em adolescentes'") fornecem regras gerais indicando como analisariam o problema, tanto explicitamente com a ajuda de um analista de sistema experiente, como implicitamente, fazendo com que estes especialistas analisem casos de teste e usando programas de computador para analisar os dados de teste e, de forma limitada, derivar regras dessa análise.
Os sistemas especialistas trabalham com problemas cada vez mais difíceis, assim eles necessitam usar todas as técnicas disponíveis de Inteligência Artificial.
A fim de escolher o método mais apropriado (ou uma combinação de métodos) para um determinado problema, é necessário analisá-lo em várias dimensões-chaves.
Abaixo encontram-se os critérios que dão origem as classes de problemas e as classes propriamente ditas:
O problema pode ser decomposto em um conjunto (ou quase isto) de subproblemas independentes, menores e mais fáceis? - Decomponíveis; - Não-decomponíveis.
Certos passo em direção à solução podem ser ignorados ou pelo menos desfeitos caso fique provado que são imprudentes? - Ignoráveis: as etapas para a solução podem ser ignoradas. Exemplo: demonstração de teoremas; - Recuperáveis: as etapas para a solução podem ser desfeitas. Exemplo: quebra-cabeça de 8; - Irrecuperáveis: as etapas para a solução não podem ser desfeitas. Exemplo: xadrez.
A recuperabilidade de um problema tem papel importante na determinação da complexidade da estrutura de controle necessária para a solução do problema. - Ignoráveis: estrutura de controle simples que nunca retrocede; - Recuperáveis: estrutura de controle ligeiramente mais complicada (utilizará o retrocesso com uma estrutura de pilha na qual as decisões de pilha na qual as decisões são gravadas se precisarem ser desfeitas mais tarde), que às vezes comete erros; - Irrecuperáveis: sistema que depende muito esforço para tomar decisões (sistema de planejamento no qual toda uma sequência de passos é analisada de antemão, para descobrir onde levará, antes do primeiro passo ser realmente tomado), já que são definitivas.
O universo do problema é previsível? - Com resultado certo: podemos usar planejamento para gerar uma sequência de operadores que certamente levará a uma solução. Exemplo: quebra-cabeça de 8; - Com resultado incerto: podemos usar planejamento para, na melhor das hipóteses, gerar uma sequência de operadores com boas chances de levar a uma solução. Exemplo: bridge, truco, canastra. Para solucionar problemas desse tipo precisamos permitir que um processo de revisão de planos ocorra durante a execução do plano e que seja fornecida a realimentação necessária.
Uma boa solução para o problema pode ser considerada óbvia sem haver comparação com todas as soluções possíveis? - Aceitam qualquer caminho: podem ser solucionados em tempo razoável através do uso de heurísticas que sugerem bons caminhos a serem explorados. Exemplo: lógica de predicados para saber se Marcos ainda vive; - Só aceitam o melhor caminho: não existe a possibilidade de usarmos qualquer heurística que possa prever a melhor solução, portanto, será realizada uma busca mais exaustiva. Exemplo: problema do Caixeiro Viajante, encontrar a rota mais curta.
A solução desejada é um estado do mundo ou um caminho para um estado? - A solução é um estado do mundo. Exemplo: a compreensão da linguagem natural; - A solução é um caminho para um estado. Exemplo: o problema das jarras d'água.
Há necessidade absoluta de grande quantidade de conhecimento para resolver o problema, ou o conhecimento é importante apenas para limitar a busca? - Muito conhecimento é importante apenas para restringir a busca. Exemplo: xadrez. - Muito conhecimento é necessário até mesmo para que se possa reconhecer uma solução. Exemplo: folhar jornais diários para decidir qual deles apoia o governo e qual apoia a oposição nas próximas eleições.
Um computador que simplesmente receba o problema tem condições de retornar a solução, ou esta exige a interação entre o computador e a pessoa? - Solitário: o computador recebe a descrição de um problema e produz uma resposta sem nenhuma comunicação imediata e sem pedir nenhuma explicação sobre o processo de raciocínio. Exemplo: demonstrar um teorema; - Conversacional: existe comunicação intermediária entre uma pessoa e o computador, para proporcionar assistência adicional ao computador ou para proporcionar informações adicionais ao usuário, ou ambos. Exemplo: produzir um diagnóstico médico.
Não existe uma única maneira de resolver todos os problemas. Ao contrário, se analisarmos nossos problemas cuidadosamente e classificarmos nossos métodos de solução de acordo com o tipo de problema aos quais se adaptam, seremos capazes de trazer para cada novo problema muito do que aprendemos na solução de outros problemas semelhantes.
Tipos de raciocínio diagnósticoSox Jr HC. Medical decision making. In: Barondness JA, Carpenter G, Harvey AM. Diferential Diagnosis. Philadelphia: Lea & Fediger, 1994: 9-22, existem três tipos básicos de raciocínio diagnóstico:
1) o raciocínio fisiopatológico;
2) o raciocínio por reconhecimento de padrões;
3) o raciocínio probabilístico;
O raciocínio fisiopatológico é o mais difícil de simular em um programa de computador. Quando um paciente descreve história de febre há seis semanas, seguida três semanas depois por dor no quadrante superior direito de crescente severidade, o médico começa a imaginar uma massa que cresce e estabelece pressão em estruturas sensíveis à dor. Começa então a pensar em um abscesso hepático ou em um nódulo maligno com centro necrótico, causando resposta inflamatória.
Objetivos de sistemas especialistas O objetivo do sistema especialista é bastante restrito, considerando o objetivo dos modelos psicológicos: os SE's são conhecidos para reproduzir o comportamento de especialistas humanos na resolução de problemas do mundo real, mas o domínio destes problemas é altamente restrito.
Os primeiros sistemas especialistas que obtiveram sucesso em seus objetivos foram os sistemas Dendral e Mycin.
A partir dessa época, vários sistemas foram desenvolvidos e resolveram diversos problemas, em diferentes domínios, como por exemplo, agricultura, química, sistemas de computadores, eletrônica, engenharia, geologia, gerenciamento de informações, direito, matemática, física e medicina.
Algumas aplicações dos principais sistemas desenvolvidos entre os anos 70 e 80:
Dendral: determinar a fórmula estrutural dos compostos químicos.
Mycin: manipulações algébricas na física e na matemática.
HEURISCO: resolver problemas em diversas áreas, como por exemplo em jogos de xadrez, na biologia e até mesmo na matemática.Teixeira, João de Fernandes. Mentes e máquinas: uma introdução à ciência cognitiva. Porto Alegre: Artes Médicas, 1998
Applicato Se por um lado sistemas especialistas se destacaram na pesquisa em IA por achar aplicação prática no mundo real, por outro lado essa aplicação tem sido restrita. Sistemas especialistas são notoriamente limitados no domínio do conhecimento - um exemplo interessante e divertido é aquele onde um pesquisador de IA utilizou o sistema especialista de "doença de pele" para diagnosticar sarampo em seu carro enferrujado - e portanto propenso a cometer erros que um especialista humano facilmente detectaria.