Plano de Aula Histórico O que é um Sistema Especialista? Arquitetura de um Sistema Especialista Problemas na construção de SEs Exemplos Shells de SE Histórico (1960s) General Problem Solver (GPS) leis do pensamento + máquinas poderosas Funcionamento planejamento + sub-goaling ex. estou com fome => comer => pedir pizza => telefonar => ir para a sala => sair do quarto... O sistema Logic Theorist deu certo mas.... em geral, GPS não funciona fraca representação de conhecimento humanos são bons só em domínios restritos Histórico (1960-1970) Primeiros Sistemas Especialistas DENDRAL Objetivo Inferir estrutura molecular de componentes desconhecidos dadas a massa espectral e a resposta nuclear magnética Conhecimento especializado poda a busca por possíveis estruturas moleculares Fez sucesso publicações científicas Representação procedimental de conhecimento Histórico (1960-1970) MYCIN Objetivo: Diagnosticar rapidamente meningite e outras infecções bacterianas, e prescrever tratamento Representação de conhecimento baseada em regras probabilistas em torno de 500 Fez sucesso acima de 90% de acerto Introduziu explicação sobre “raciocínio” e boa interface com usuário Histórico (1960-1970) MYCIN Exemplo de regra if the infection is meningitis and the type of infection is bacterial and the patient has undergone surgery and the patient has under gone neurosurgery and the neurosurgery-time was < 2 months ago and the patient got a ventricular-urethral-shunt then infection = e.coli(.8) or klebsiella(.75) Histórico (1980) Problema da General Electric: Aposentadoria de David Smith engenheiro especialista em falhas de motores elétrico- diesel de locomotivas Solução convencional Treinamento de engenheiros novatos Construção do CATS-1 (DELTA) Meses de entrevista, 3 anos p/ primeiro protótipo Permite diagnóstico em poucos minutos Existe um em cada oficina Dá treinamento: é amigável e explica decisões Sistemas Especialistas Definição sistemas que empregam o conhecimento humano para resolver problemas que requererem a presença de um especialista. Área de aplicação de mais sucesso da IA Exemplo mais difundido dos Sistemas Baseados em Conhecimento Sistemas Baseados em Conhecimento SBC SE Aplicam conhecimento especializado na solução de problemas complexos Representam conhecimento do domínio de forma explícita Conceitos Básicos de SE Expertise Conhecimento especializado adquirido por longo treinamento, leitura e/ou experiência Especialista Quem possui o conhecimento, a experiência, conhece os métodos, e tem a habilidade de aplicálos para dar conselhos e resolver problemas. Engenheiro de conhecimento Guia a aquisição e a representação do conhecimento especializado, bem como a implementação e refinamento do SE. Tarefas Comuns dos SEs Diagnóstico Escalonamento Reparo e prescrição Recomendação e alocação Monitoramento e detecção Controle: monitoramento, diagnóstico e reparo Instrução Simulação Construção e projeto Otimização Interpretação e abstração de dados Classificação Previsão Domínios de Aplicação dos SEs Aeroespacial Agricultura Aplicações militares Automação industrial e controle de equipamento Concepção e construção auxiliada por computadores Gerenciamento de informação Manutenção de equipamento Matemática Medicina Meio ambiente Meteorologia Educação Mineração Eletrônica Química Engenharias Finanças e negócios Serviços legais Transportes Para que utilizar SEs? Substituir o especialista Melhorar acesso temporal e geográfico a conhecimento especialista sobre um domínio Diminuir gastos com pessoal Auxiliar o especialista Melhorar confiabilidade e eficiência Integrar o conhecimento de vários especialistas Mais confiabilidade, qualidade e eficiência Capturar o “conhecimento agregado” de uma organização Evitar dependência de gurus Viabilizar o treinamento de novatos Benefícios do desenvolvimento de SEs Processo de introspecção e modelagem: Aprofunda o conhecimento sobre a tarefa e o domínio do(s) especialista(s) Melhora consideravelmente o meta-conhecimento sobre a tarefa e o domínio do(s) especialista(s) Processo de elicitação dos requisitos e de implantação do SE na organização: Dissemina conhecimento do(s) especialista(s) Esclarece a natureza da tarefa, seu papel na organização, sua utilidade e suas limitações Pode identificar necessidade de re-engenharia organizacional Requisitos específicos de SEs Especialista humano é capaz de: Resolver eficientemente problemas muito complexos Selecionar o conhecimento relevante e o grau de detalhe adequado para cada caso Explicar seu raciocínio para um colega Aprender com a experiência Reestruturar constantemente seu conhecimento Manter consistência do raciocínio, apesar de usar conjunto de regras possivelmente contraditórias Requisitos Específicos de SEs Especialista humano é capaz de identificar que “partes” do seu conhecimento para executar uma tarefa em um domínio podem ser reaproveitadas para tarefas ou domínio diferentes, porém com aspectos semelhantes Tudo isto requer meta-conhecimento Contudo O desempenho do especialista cai gradativamente à medida que lhe falta conhecimento Etapas na construção de SE-BCs Nível de Conhecimento Nível Lógico Nível de Implementação AQUISIÇÃO FORMULAÇÃO BC IMPLEMENTAÇÃO REFINAMENTO Atores de um SE 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 SE 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 do conhecimento utilizando linguagens sem fundamentação matemática Regras de produção às vezes com fatores de incerteza Redes semânticas ou frames Regras de produção + frames Aquisição do conhecimento visto como processo de transferência Sistemas centralizados e individuais Sistemas isolados implementados com shells de sistemas especialistas Sistemas Especialistas da 2a geração Representação do conhecimento 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 híbridos Sistemas Especialistas da 2a geração Aquisição de conhecimento como processo de modelagem e reuso de conhecimento Utilização de aquisição automática Integração dos SEs em sistemas maiores: APIs entre linguagens de representação de conhecimento e linguagens de programação amplamente utilizadas (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 SEs e Engenharia de Software Processo de desenvolvimento Flexibilidade de modelagem Rigor formal para garantir confiabilidade Prototipagem rápida Requisitos organizacionais Colaboração de equipes grandes e culturalmente heterogêneas Problemática comum entre SEs e Engenharia de Software Controle de versões Planejamento de projeto: controle dos prazos e dos custos Verificação, validação e teste Reuso de conhecimento ontologias, componentes SEs e BD Requisitos de Bases de Conhecimento estratégicas de SEs de grande porte: persistência escalabilidade de processamento gerenciamento de memória secundária acesso em leitura e escritura distribuído e concorrente recuperação segurança SEs e BD SE influenciou o surgimento das áreas de: BD dedutivos BD dedutivos orientados a objetos Pode reutilizar soluções de: BD objeto-relacionais Web semântica Shells de Sistemas Especialista Sistemas que incluem: Máquina de inferências Interface de aquisição do conhecimento Pelo menos do conhecimento dinâmico que descreve instâncias particulares do problema a tratar Interface de explicação do raciocínio Shells de SEs Interface de aquisição do conhecimento Evita que o usuário precise definir a priori o conhecimento dinâmico (e.g., sintomas da minha doença) necessário para resolver a tarefas em questão (diagnóstico da minha doença). Permitem que o sistema consulte o usuário durante a execução de uma instância solicitando dados (conhecimento) que faltam (e.g., sintomas) para a solução do problema (e.g., diagnóstico) guiado pelo seu processo de raciocínio (raciocínio progressivo ou regressivo) Shells de SEs Permitem ao usuário questionar o sistema em qualquer ponto de seu processo de raciocínio trace Algumas Estatísticas Evolução do mercado de SEs Evolução do mercado de SEs Balanço Benefícios do S.E. Criação de repositório de conhecimento Crescimento de produtividade e qualidade Habilidade de resolver problemas complexos Flexibilidade e modularidade Operação em ambientes arriscados Credibilidade Capacidade de trabalhar com informações incompletas ou incertas Fornecimento de treinamento Problemas e Limitações Aquisição ainda difícil e está sujeita a um grande número de dificuldades (preconceitos) Avaliação de desempenho difícil Desenvolvimento longo e manutenção delicada Só apresentam alto desempenho em domínios pequenos Não aprendem e não são robustos Últimos desenvolvimentos e tendências Ferramentas de desenvolvimento + OOP Integração com outros sistemas ex. banco de dados e sistemas de suporte à decisão Tratamento de incerteza Redes Bayesianas Aprendizagem de máquina