Ensino Superior Lógica Matemática e Computacional 6 – Introdução aos Sistemas Especialistas Amintas Paiva Afonso 1 Inteligência Artificial • O campo da Inteligência Artificial (IA) tenta compreender as entidades inteligentes para construir entidades inteligentes. • Construir máquinas (computadores) com um nível de inteligência igual ou superior aos humanos! • As abordagens de IA podem organizar-se em 4 categorias: 2 Inteligência Artificial Raciocínio/ Pensamento Comportamento Sistemas que pensam como os Humanos Sistemas que pensam Racionalmente Sistemas que agem como os Humanos Sistemas que agem Racionalmente Modelação do Ser Humano Outros Modelos Foco de Interesse 3 IA Simbólica Fundamenta-se em: • Representação do conhecimento; e • Métodos de Busca. 4 IA Simbólica • Representação do conhecimento: 1. 2. 3. 4. 5. Lógica proposicional e predicativa; Regras de produção; Redes semânticas; Frames e scripts; ... 5 IA Simbólica • Métodos de Busca: 1. 2. 3. 4. 5. 6. 7. Espaço de estados; Busca em profundidade; Busca em largura; Busca heurística (A*); Busca em feixe; Têmpera simulada; ... 6 Exemplo: um pequeno jogo... • Estado inicial: <XX_YY> • Estado objetivo: <YY_XX> • Ações (operações): 1. X_ => _X 2. XX_ => _XX 3. XY_ => _YX e e e _Y => Y_ _YY => YY_ _XY => YX_ 7 Exemplo: uma solução 1. 2. 3. 4. 5. 6. 7. 8. 9. <XX_YY> (estado inicial) <X_XYY> (ação 1a) <XYX_Y> (ação 2b) <XYXY_> (ação 1b) <XY_YX> (ação 3a) <_YXYX> (ação 3a) <Y_XYX> (ação 1b) <YYX_X> (ação 3b) <YY_XX> (ação 1a) 8 Exemplo: uma falha 1. 2. 3. 4. 5. 6. <XX_YY> (estado inicial) <X_XYY> (ação 1a) <XYX_Y> (ação 2b) <XYXY_> (ação 1b) <XY_YX> (ação 3a) <XYY_X> (ação 1b) Falha !!!! 9 Exemplo: árvore de busca 1. 2. 3. 4. 5. <XX_YY> (estado inicial) <X_XYY> (ação 1a) OU <XXY_Y> (ação 1b) OU <_XXYY> (ação 2a) OU <XXYY_> (ação 2b) Qual escolher ? (heurística ?) 10 Sistemas Especialistas • Os especialistas humanos são capazes de atingir um alto desempenho na medida em conhecem muito bem as suas áreas de especialização; • Um Sistema Especialista (SE) é um programa de computador que utiliza conhecimento específico do domínio de um problema e emula a metodologia e desempenho de um especialista para obter soluções de problemas neste domínio. 11 Sistemas Especialistas • O conhecimento inerente a um Sistema Especialista é um ponto chave na sua construção, e é normalmente definido por engenheiros do conhecimento; • Para tal são consultados especialistas no domínio do problema e tenta-se codificar numa linguagem formal todo o conhecimento que estes adquiriam ao longo da sua experiência, nomeadamente heurísticas e truques. 12 Sistemas Especialistas • Os Sistemas Especialistas não imitam necessariamente a estrutura da mente humana, nem os mecanismos da inteligência; • São programas práticos que usam estratégias heurísticas desenvolvidas por humanos na resolução de classes específicas de problemas; • São uma classe de programas na área da Inteligência Artificial, e têm contribuído para o sucesso desta área através de vários produtos comerciais desenvolvidos e aplicações. 13 Sistemas Especialistas Programa Sistema Especialista Representação do Conhecimento Implícita Explicita Realidade expressa em termos de Modelos Matemáticos Modelos Cognitivos Conhecimento traduzido em Algoritmos O computador executa Processamento numérico (cálculos) Estruturas hierárquicas Redes Semânticas Regras Árvores de decisão Tabelas de decisão Redes de Inferência Processamento simbólico (inferências) Tipo de Resultados Numéricos Conhecimento 14 Categorias dos Problemas • Interpretação: formar conclusões a partir de dados; • Predição: projetar consequências de situações; • Diagnóstico e reparo : determinar a causa de maus funcionamentos, e prescrever e implementar soluções; • Projeto: configurar componentes de forma a atingir um objetivo; • Planejamento: obter a sequência de passos para atingir um objetivo; • Monitoração: comparar o comportamento de um sistema com aquilo que seria de esperar; • Tutoriais: detectar e corrigir deficiências, e auxiliar processos de aprendizagem; • Controle: governar o comportamento de um sistema. 15 Tecnologia dos Sistemas Especialistas Arquitetura ESPECIALISTA/ ENG. CONHECIMENTO/ PROGRAMADOR BASE DE CONHECIMENTO SHELL INTERFACE COM USUÁRIO: MOTOR DE INFERÊNCIA DADOS ESPECÍFICOS DO CASO PERGUNTA/RESPOSTA ORIENTADO POR MENUS LINGUAGEM NATURAL GRÁFICO USUÁRIO EXPLANAÇÃO APRENDIZAGEM 16 Quando desenvolver um SE • O problema justifica o custo e esforço de construção do SE; • Não existem especialistas disponíveis (no local) para resolver diretamente o problema; • Existem especialistas para cooperarem na construção do SE; • O problema pode ser solucionado através de raciocínio simbólico (próximo dos humanos); • O problema não requer “senso comum”; • O problema não pode ser resolvido através de métodos computacionais tradicionais; • O problema não é demasiado grande nem demasiado genérico. 17 Desenvolvimento de SE • Envolve o Engenheiro de Conhecimento, o Especialista do domínio do problema e o Usuário final; • Criação Rápida de Protótipos: Aquisição do Conhecimento Modelagem do Sistema Correção Programação • Metodologia Centrada no Cliente; • Sucessivas iterações nas quais as possibilidades são postas à prova pelos futuros usuários. 18 Criação de SE • Linguagens de Programação: C++, LISP, PROLOG • Shells: – Acadêmicos: MYCIN - EMYCIN, CLIPS, GUIDON, TEIRESIAS, VM, CENTAUR... – Comerciais: Deciding Factor, Exsys, M-1, Savoir, ExpertEase, Guru, Crystal... • Ambientes de Programação (de IA): – ILOG... • Aplicações: – Business Insight... 19 Raciocínio Baseado em Regras • Representação do conhecimento para a resolução do problema através de regras do tipo “se...então...” (regras de produção) • Exemplo: Se (Qualifica = SIM) e (Média < 3,5) e (Experiência >= 2) Então (Posição = engenheiro de serviço) 20 Arquitetura Clássica de um SE Base de Conhecimento Regras Fatos Subsistema de aquisição de conhecimento Memória de Trabalho Motor de Inferência: Controle e Inferência Subsistema de explanação Especialista / Eng. Conhecimento Interface com o usuário Usuário 21 Motor de Inferência Regras (MR) Fatos (MF) Pattern Matching Conjunto de conflitos (CC) Resolução de conflitos Regra (s) escolhida(s) Motor de Inferência: Controle e Inferência Disparo da(s) regra(s) Alterações em MF (MR) 22 Exemplo: um pequeno SE Problema: • Oferta de emprego a um candidato em uma empresa. • Variáveis de entrada: Descoberta (Sim / Não), Diploma (Sim / Não), Experiência (em anos), Média (nota média do histórico); • Variáveis de saída: Posição (Nenhuma / Pesquisa / Eng. De Serviço / Eng. De Produto), Qualifica (Sim / Não). 23 Exemplo: um pequeno SE Variáveis: • Descoberta: o candidato fez alguma descoberta? • Diploma: o candidato tem curso superior ? • Experiência: quantos anos de experiência tem o candidato ? • Média: qual a nota média do candidato em seu curso superior ? • Posição:que posição deve ser oferecida ao candidato ? • Qualifica: o candidato se qualifica para uma posição ? 24 Exemplo: um pequeno SE Regras: • R1: SE (Diploma = Não) ENTÃO (Posição =Nenhuma); • R2: SE (Diploma = Sim) ENTÃO (Qualifica = Sim); • R3: SE (Diploma = Sim) E (Descoberta = Sim) ENTÃO (Posição = Pesquisa); 25 Exemplo: um pequeno SE • R4: SE (Qualifica = Sim) E (Média <= 7,0 ) E (Experiência >= 2) ENTÃO (Posição = Eng. De Serviço); • R5: SE (Qualifica = Sim) E (Média < 7,0) E (Experiência < 2) ENTÃO (Posição = Não); 26 Exemplo: um pequeno SE • R6: SE (Qualifica = Sim) E (Média > 7,0) ENTÃO (Posição = Eng. de Produto); 27 Encadeamento para frente Procedimento básico: Até que a solução pertença a MF faça: – Compare a MF e MR e obtenha o CC; – Escolha uma (várias) (resolução de conflitos); regra(s) no CC – Dispare a(s) regra(s) escolhida(s) (acrescenta / retira fatos da MT). 28 Encadeamento para frente Fatos iniciais (M0): • F0: (Diploma = Sim); • F1: (Experiência = 1,5); • F2: (Média = 8,0); • F3: (Descoberta = Não). Inferência 1: Dispara R2; • F4: (Qualifica = Sim); 29 Encadeamento para frente Fatos atuais (M1): • F0: (Diploma = Sim); • F1: (Experiência = 1,5); • F2: (Média = 8,0); • F3: (Descoberta = Não). • F4: (Qualifica = Sim); Inferência 2: Dispara R6; • F5: (Posição = Eng. De Produto). 30 Encadeamento para frente Fatos atuais (M2): • F0: (Diploma = Sim); • F1: (Experiência = 1,5); • F3: (Média = 8,0); • F4: (Descoberta = Não). • F5: (Qualifica = Sim); • F6: (Posição = Eng. De Produto). Não há mais regra a disparar. 31 Encadeamento para trás Procedimento básico: • Escolha uma hipótese H da Pilha de Hipóteses; • Até que a hipótese seja comprovada (pertença a MF): – Escolha uma regra R cuja conclusão seja H; – Tente provar as (recursivamente); premissas de R • Se não for possível , escolha outra hipótese. 32 Encadeamento para trás Fatos iniciais (M0): • F0: (Diploma = Sim); • F1: (Experiência = 1,5); • F2: (Média = 8,0); • F3: (Descoberta = Não). 33 Encadeamento para trás Possui Pilha de Hipóteses a serem provadas / negadas. Hipótese: • H0: (Posição = Nenhuma); Pela regra R1, substituída por: • H1: (Diploma = Não), é negada por M0; • A hipótese é descartada. 34 Encadeamento para trás Nova hipótese: • H2: (Posição = Pesquisa); Pela regra R3, substituída por (H3) e (H4): • H3: (Diploma = Sim), e • H4: (Descoberta = Sim). H3 confirmada por M0, H4 não; Não há regra cuja conclusão seja H4, logo H4 e H2 são descartadas. 35 Encadeamento para trás Nova hipótese: • H5: (Posição = Eng. De Serviço); Pela regra R4, substituída por (H6), (H7) e (H8): • H6: (Qualifica = Sim); • H7: (Média < 7,0); • H8: (Experiência >= 2). H7 negada por M0, (como também H8), H5 descartada. 36 Encadeamento para trás Nova hipótese: • H9: (Posição = Eng. De Produto); Pela regra R6, substituída por (H10) e (H11): • H10: (Qualifica = Sim); • H11: (Média > 7,0). H10 e H11 confirmadas por M0, H9 confirmada. 37 Encadeamento para trás • Outra possibilidade: usuário a cada passo: inquisição do • Caso não haja regra cuja conclusão confirme a hipótese, uma pergunta é feita ao usuário para se obter o valor da variável. 38 Raciocínio Baseado em Modelos • Em vez de se utilizarem heurísticas na resolução de um problema; • A análise é fundamentada diretamente na especificação e funcionalidade do sistema físico (um modelo do sistema); • Normalmente aplica-se no diagnóstico; • O sistema é simulado assim como a estrutura e funcionamento das suas componentes; • Exemplo de um circuito de somadores e multiplicadores. 39 Raciocínio Baseado em Casos • Regras heurísticas e modelos teóricos são dois tipos de informação que os especialistas humanos utilizam para resolver problemas; • Outra estratégia utilizada é o raciocínio baseado em casos (Case-Based Reasoning CBR); • Utiliza uma base de dados com soluções de problemas para resolver novas situações; • Exemplos: medicina, justiça, programação de computadores, arquitetura, história... 40 Algoritmo de inferência 1. Procurar casos similares na memória, aqueles cuja solução pode ser aplicada à nova situação (características comuns) 2. Modificar um desses casos para aplicar à situação nova (alterar sequência dos passos que levam de um estado inicial a um estado final) 3. Aplicar o caso transformado ao novo problema 4. Guardar a solução com uma medida do sucesso ou insucesso para uso futuro. 41 Raciocínio Baseado em Regras • vantagens: – – – – – modo direto modular desempenho facilidades de explanação as regras encaixam-se naturalmente na procura num espaço de estados – o processo de inferência é fácil de seguir e depurar – os passos para a solução do problema são facilmente inspecionáveis – separação do controle e do conhecimento 42 Raciocínio Baseado em Regras • desvantagens: – regras altamente heurísticas, falta de profundidade – não manuseiam falta de informação ou valores inesperados – a explicação baseia-se na prova e não nas bases teóricas – muito específico na aplicação 43 Raciocínio Baseado em Casos • vantagens: – codificação direta de conhecimento histórico (e.g. reparações) – permite obter a solução a partir de um caso apropriado não necessitando de todo o processo de resolução do problema – evita erros do passado e explora os sucessos (aprendizagem) 44 Raciocínio Baseado em Casos • vantagens: – não é necessária uma análise extensiva do domínio do conhecimento – aquisição de conhecimento e sua codificação relativamente fáceis 45 Raciocínio Baseado em Casos • desvantagens: – explanação difícil – desempenho computacional (bases de dados extensas) – difícil definir critérios de similaridade 46 Raciocínio Baseado em Modelos • vantagens: – uso de conhecimento funcional/estrutural – robustez (ao contrário do baseado em regras) – algum conhecimento é transferível entre tarefas (teorias genéricas...) – explicação causal 47 Raciocínio Baseado em Modelos • desvantagens: – falta de conhecimento heurístico – requer um modelo explícito do domínio (nem sempre é possível (e.g. finanças) – complexidade – situações excepcionais (um componente avariado) 48 Outras possibilidades • Raciocínio Baseado em Representações Híbridas – regras+casos – regras+modelos – modelos+casos • Raciocínio com Incerteza ou Informação Incompleta: – Probabilidades – Fatores de certeza – Sistemas difusos 49 Referências Sobre IA em geral: • S.J. Russel; P. Norvig. Artificial Intelligence. Prentice Hall, 1995, http://aima.cs.berkeley.edu/. • E. Rich; K. Knight. Inteligência Artificial. Makron Books, 1994, http://www.cs.utexas.edu/users/ear/ e http://www.isi.edu/naturallanguage/people/knight.html . 50 Referências Sobre SE: • M. Stefik. “Introduction to Knowledge Systems”, Morgan Kaufmann, 1995. • P. Harmon, D. King. “Expert Systems: AI in Business”, John Wiley & Sons, 1985. • K. Parsaye, M. Chignell. “Expert Systems for Experts”, John Wiley & Sons, 1988. 51 52