Sistemas Especialistas Jacques Robin CIn-UFPE Roteiro O que é um sistema especialista? Para que serve um sistema especialista? Arquitetura de um sistema especialista Representação do conhecimento para sistemas especialista Problemática comum ou semelhante aos sistemas especialistas e outras áreas da computação Problemática específica aos sistemas especialistas Shells de sistema especialista O que é um sistema especialista ? Sistemas especialistas como aplicação da IA Software que usa uma técnica de raciocínio automático qualquer para executar uma tarefa: puramente cognitiva normalmente executa por um especialista humano com um desempenho comparável e este Um especialista é uma pessoa que adquiriu: através um treinamento formal e uma experiência prática, ambos extensivos um conhecimento sobre um certo domínio e uma habilidade a executar uma certa tarefa que são raros e de alta valor agregada Visão holística e ecumênica O que é um sistema especialista ? Sistemas especialistas como conjunto de técnicas de IA Software que: executa uma tarefa puramente cognitiva normalmente executa por um especialista humano com um desempenho comparável e este usando uma técnica de raciocínio automática simbólica, especialmente regras de produção e frames Visão divisória e partidária IA lógica e probabilista x IA sem fundamentos matemáticos IA simbólica x IA numérica (nebulosa, conexionista, evolucionista) IA monolítica x IA distribuída e multi-agentes Stand-alone AI x Embedded AI Classes de tarefas dos sistemas especialistas Próprias: Diagnóstico Reparo e prescrição Monitoramento e detecção Controle: monitoramento, diagnóstico e reparo Instrução Simulação Comuns a resolução de restrição: Escalonamento Recomendação e alocação Construção e projeto Otimização Comuns a mineração de dados: Interpretação e abstração de dados Classificação Previsão Domínios de aplicações dos sistemas especialistas Aeroespacial Agricultura Armamento e aplicações militares Automação industrial e controle de equipamento Computação Concepção e construção auxiliada por computadores Descoberta cientifica diversa Educação Eletrônica Energia Engenharias diversas Financias e negócios Geologia Gerenciamento da informação Manutenção de equipamento Matemática Medicina Meio ambiente Meteorologia Mineração Química Serviços legais Telecomunicações Transportes Casos de uso de sistemas especialistas Substituir o especialista Auxiliar o especialista Melhora confiabilidade e eficiência Integrar o conhecimento de vários especialista Melhora acessibilidade temporal, geográfica e econômica do conhecimento especialista Automação pela incorporação do raciocínio especialista dentro de máquinas Melhor confiabilidade, qualidade e eficiência Capturar o conhecimento de valor agregado de uma organização Evita dependência de gurus que estão sobrecarregados, se aposentam ou são contratados por um concorrente Permite treinamento de novatos Benefícios colaterais do desenvolvimento de sistemas especialistas Envolve um processo de conscientização do(s) especialista(s) e da organização Processo de introspecção e modelagem: Melhora conhecimento da tarefa e do domínio do(s) especialista(s) Melhora radicalmente meta-conhecimento da tarefa e do domínio do(s) especialista(s) Melhora radicalmente conhecimento do(s) especialista(s) do potencial e limitações da tecnologia da informação Processo de licitação dos requisitos e de implantação do sistema na organização: Dissemina conhecimento do(s) especialista(s) Esclarece consideravelmente a natureza profunda da tarefa, seu papel na organização, sua utilidade real, suas limitações Podem identificar necessidade de re-engenharia organizacional Requisitos específicos de sistemas especialistas Especialista humano é capaz: Resolver eficientemente problema muito complexo Escolher conhecimento relevante e grau de detalhe adequado para cada caso Explicar seu raciocínio para um colega Aprender com a experiência Re-estruturar constantemente seu conhecimento Manter consistência do raciocínio apesar de usar conjunto de regras possivelmente contraditórias Identificar qual parte do seu conhecimento para executar uma tarefa em um domínio pode ser reaproveitado para tarefas ou domínio diferentes porém com aspectos semelhantes Seu desempenho cai gradativamente a medida que lhe falta conhecimento Tudo isso requer meta-conhecimento Personagens oriundos de um sistema especialista Especialista Construtor de Ferramentas Testa Conhecimento Documentado Constrói Ferramentas, Linguagens Usa Usa Fornece Vendedor Adquire Conhecimento Engenheiro de Conhecimento Coopera Constrói Constrói Construtor do sistema Conecta Equipe de Suporte Fornece Suporte Sistema Especialista Usa Usuário Final Arquitetura de um sistema especialista Usuário Dados do problema Respostas Máquina de Inferência Base de conhecimento dinâmico Base de conhecimento estático Interface de explicação do raciocínio Sistema de aquisição do conhecimento Especialista Engenheiro de conhecimento Sistemas especialistas da 1a geração Representação com linguagens sem fundamentos matemáticos: Regras de produção as vezes com fatores de incerteza Redes semânticas e frames Regras de produção + frames Aquisição do conhecimento como processo de transferência Sistemas isolados implementados com shells de sistemas especialistas Sistemas centralizados e individuais Sistemas especialistas da 2a geração Representação: explícita com linguagens formais: Programação em lógica no lugar de regras de produção Redes bayesianas no lugar de fatores de incerteza Lógicas descritivas no lugar de frames implícita via representação numérica: Redes neurais, algoritmos genéticos, sistemas numéricos híbridos Aquisição de conhecimento como: processo de modelagem e reuso de conhecimento (ontologias) aprendizagem de máquina Integração dos sistemas especialistas em sistemas maiores API entre linguagens de representação de conhecimento e linguagens de programação largamente divulgadas (C, C++, Java) representação procedimental do conhecimento diretamente nas linguagem de programação largamente divulgadas Sistemas distribuídos e multi-agentes Problemática comum entre sistemas especialistas e engenharia de software Processo de desenvolvimento Flexibilidade de modelagem Rigor formal para confiabilidade Prototipagem rápido Requisitos organizacionais Colaboração de equipes grandes e culturalmente heterogêneas Controle de versões Planejamento de projeto: controle dos prazos e dos custos Verificação, validação e teste Reuso de conhecimento (ontologias, componentes) Problemática comum entre sistemas especialistas e banco de dados Requisitos de base de conhecimento estratégicas de sistemas especialistas de grande porte: Deu nascimento as áreas de: persistência escalabilidade de processamento gerenciamento de memória secundária acesso em leitura e escritura distribuído e concorrente recuperação segurança BD dedutivas BD dedutivas orientadas a objetos Pode se reaproveitar de soluções: BD objeto-relacionais Web semântica Problemática comum entre sistemas especialistas e sistemas de distribuídos Áreas: Sistemas multi-agentes Agentes de gerenciamento da informação na internet Web semântica Questões: Protocolos de comunicação entre agentes Linguagens padrões de representação do conhecimento e de meta-conhecimento API entre máquinas de inferências e linguagens de middleware para interoperabilidade Shells de sistemas especialista Sistemas incluindo: Máquina de inferências Interface de aquisição do conhecimento (ao mínimo do conhecimento dinâmico descrevendo instâncias particular do problema a tratar) Interface de explicação do raciocínio Evita o usuário definir de ante mão o que constitui o conhecimento dinâmico necessário para resolver uma instância particular da tarefa genérica do sistema especialista Permite o sistema pedir para o usuário o conhecimento faltando guiado pelo seu processo de raciocínio Permite o usuário questionar o sistema em qualquer ponto do seu raciocínio