Representação do conhecimento

849 views
726 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
849
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
16
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Representação do conhecimento

  1. 1. ConhecimentoTermo abstracto usado para capturar a compreensão de um indivíduonum domínio específico.  área de conhecimento bem delimitada, focalizada. Volume Decisão/Acção Competência Conhecimento Informação Estruturada Dados ValorExistem várias teorias que explicam como se organiza o conhecimento humano naresolução de problemas – Vários Tipos de Conhecimento 1
  2. 2. Tipos de Conhecimento • Conhecimento Procedimental • Conhecimento Declarativo • Meta-Conhecimento • Conhecimento Heurístico • Conhecimento EstruturalRepresentação do Conhecimento Método usado na codificação do conhecimento contido na Base de Conhecimento do Sistema PericialNão existe uma representação única ideal para todos os tipos deconhecimento 2
  3. 3. Conhecimento Procedimental• Descreve como um problema é resolvido ou como agir perante uma dada situação (como fazer).• Regras, estratégias, agendas e procedimentos são representações típicas para este tipo de conhecimento. Sangrador de Combustível OK? Sim Não Há fugas de ar de Verificar circuito de admissão ? alimentação Sim Não Reparar fugas de Descida de ar rotação? Sim Não Teste de Posição parafuso Mariposa OK? ralenti OK? Sim Não Sim Não ... Reparar válvula Teste de mariposa Compressão ... OK? Sim Não ... 3
  4. 4. Conhecimento Declarativo• Descreve o que é conhecido acerca de um determinado problema. Inclui declarações (statements) que são assumidas como verdadeiras ou falsas e que descrevem um objecto ou conceito.• Corresponde a uma representação descritiva.Exemplo Fumar pode provocar cancro no pulmão.• Conhecimento Declarativo – é mais transparente – mais facilmente entendido, mais fácil de manter• Representações procedimentais – são mais eficientes, mas mais difíceis de manter 4
  5. 5. Meta-Conhecimento• Conhecimento acerca do próprio conhecimento.• é usado para aceder a conhecimento mais orientado para resolver determinado problema• Aumenta a eficiência de resolução do problema dirigindo o raciocínio para o subconjunto de conhecimento mais adequado• Representado através de meta-regras – regras que descrevem como usar outras regras Exemplo Se o carro não pega E o sistema eléctrico está operacional Então usar regras relativas ao circuito de alimentação 5
  6. 6. Conhecimento Heurístico• Reflecte o conhecimento obtido com toda a experiência que se detém ao lidar com um determinado tipo de problema• É obtido pela experiência prévia na resolução de um grande número de problemas de uma determinada especialidade, é essencialmente empírico• Muitas vezes assume o aspecto de regras de bom senso ou de “Rules of Thumb”Exemplo Para elaborar horários considerando salas devemos começar com as salas que impõem mais restrições; Numa máquina de pintura fazer as mudanças de tintas sempre das mais claras para as mais escuras. 6
  7. 7. Conhecimento EstruturalDescreve a estruturação do conhecimento, ou seja, o modelo mentalque o perito tem na resolução de um determinado tipo de problema.Pode indicar conceitos e sub-conceitos na estruturação doconhecimento.Exemplo com as anomalias no Betão Tipos de Anomalias no Betão Fissura Excesso de Ar Excesso de Água Grande grau de Silicato Tricálcio no Cimento Factores Climatéricos Temperatura Inconstante Chocho Má vibração Falta de Inertes Finos Cofragem não estanque Excesso de Inertes Grossos .... 7
  8. 8. Tipos de Conhecimento Regras Estratégias AgendasConhecimento Procedimental Procedimentos ConceitosConhecimento Declarativo Objectos Factos Conhecimento acerca de outros tipos deMetaconhecimento conhecimento e como usá-loConhecimento Heurístico Regras de bom-senso Conjuntos de RegrasConhecimento Estrutural Relações entre Conceitos Relações entre Objectos 8
  9. 9. Conhecimento do Perito• não e geralmente baseado em definições claras nem em algoritmos precisos• é composto por teorias de carácter geral, mas também por regras de dedo, estratégias e truques aprendidos com a experiência ...  heurísticas ... utilizadas para simplificar a resolução de problemas, para identificar situações comuns• é muito dependente do domínio• pode estar continuamente sujeito a mudança  Consequências Separação explícita entre conhecimento e algoritmos para aplicação do conhecimento Sistema Pericial = Conhecimento + Inferência 9
  10. 10. Níveis de ConhecimentoConhecimento Superficial• faz uma descrição básica (superficial) do conhecimento Exemplo SE o depósito de gasolina está vazio ENTÃO o carro não irá funcionar• é muito limitado, por exemplo, explicar a alguém os fenómenos que se passam• não traz valor acrescentado por ser demasiadamente genérico e básico• é um tipo de conhecimento que tira relações causa-efeito - “caixa preta” (no sentido de não se observar o interior dos sistemas) 10
  11. 11. Níveis de ConhecimentoConhecimento Profundo• considera a estrutura causal e interna de um sistema e contempla a interacção entre os componentes desse sistema• É mais difícil de adquirir, representar e validar• A representação com redes semânticas ou enquadramentos (frames) é a mais adequada. 11
  12. 12. Representação do ConhecimentoNecessário formalismos:• Utilizáveis em computador• Com forma próxima da do conhecimento do perito• Que facilitem as operações de recolha, organização, manutenção, validação .... .... transparentes 12
  13. 13. Representação do ConhecimentoAlguns formalismos de representação do conhecimento maisvocacionados para o desenvolvimento de Sistemas Periciais : • Tripletos Objecto-Atributo-Valor e Listas de Propriedades • Relações de Classificação e Pertença (IS-A e IS-PART) • Redes Semânticas • Enquadramentos (Frames) • Guiões • Regras • Lógica 13
  14. 14. Tripletos Objecto-Atributo-Valor (O-A-V)Caracterizam os valores de determinados atributos de um dadoobjectoO objecto pode ser uma entidade física (carro) ou uma entidadeconceptual (empréstimo) has is Objecto Atributo Valor 14
  15. 15. Tripletos Objecto-Atributo-Valor (O-A-V)ExemploTripletos associados a um carro carro-marca-opel carro-modelo-astra carro-cilindrada-1400 carro-nºportas-4 carro-côr-verde ...Os tripletos podem vir afectados de valores numéricos que expressam acerteza, ou incerteza, que se tem no conhecimento em causa.Exemplo Previsão do tempo é de chuva com 60% de certeza (previsão- tempo-chuva – CF = 0.6) 15
  16. 16. Listas de PropriedadesNo exemplo carro-marca-opel carro-modelo-astra carro-cilindrada-1400 carro-nºportas-4 carro-côr-verde ...O nome do objecto aparece muitas vezes, visto que temos muitosatributos para o mesmo objecto.Nessas situações podemos usar listas de propriedades, nas quaispara um dado objecto temos uma lista de pares atributo‑valor.Lista de propriedades para o carro: carro-[marca-opel, modelo-astra, cilindrada-1400, nºportas-4, côr-verde,...]. 16
  17. 17. Limitações• Os tripletos e as listas de propriedades têm limitações quando se pretende representar conhecimento declarativo sobre atributos de objectos que estejam em modificação.• Nessas situações o conhecimento é dinâmico e temos que modificar o valor de um atributo.Exemplo tripletos dinâmicos que se referem ao estado de um disjuntor (aberto ou fechado) e ao modo de operação de uma linha (manual ou automático): disjuntor_D - estado-aberto. linha_L - modo_operação - manual. 17
  18. 18. Relações de Classificação (IS-A) Animal Selvagem IS-A IS-A Animal IS-A IS-A IS-A IS-A Canino Animal Doméstico Felino IS-A IS-A IS-A IS-A IS-A IS-A Lobo Cão Gato Tigre 18
  19. 19. Relações de Pertença (IS-PART)As relações de pertença (IS-PART) organizam o conhecimentoatravés da composição ou decomposição de componentes. Mobiliário de Cozinha IS-PART IS-PART Cadeira Mesa IS-PART IS-PART IS-PART IS-PART IS-PART Pernas da Cadeira Encosto Assento Pernas da Mesa Tampo 19
  20. 20. Relações de Classificação (IS-A) e dePertença (IS-PART)As relações IS-A e IS-PART podem ser combinadas na mesmarepresentação. Computador IS-PART IS-PART IS-PART CPU teclado monitor ....... ....... IS-A Pentium 4 ....... 20
  21. 21. Redes Semânticas• São um método de representação do conhecimento através de um grafo directo composto por nós e arcos• Os nós representam objectos (físicos ou abstractos), as suas propriedades e valores• Os arcos representam relações entre os nós• As relações IS-A e IS-PART são vulgarmente usadas como etiquetas dos arcos, podem ser usadas outras etiquetas à nossa escolha (tem, desloca-se, respira, etc) que capturam conhecimento 21
  22. 22. Redes Semânticas A sas Ar te m r e s p ir a IS -A IS -A IS -A A m a r e lu s C a n á r io A ve A n im a l d e s lo c a ç ã o IS -A IS -A P in g u im B la c k & W h it e Voo d e s lo c a ç ã o Andar 22
  23. 23. Modo de OperaçãoQuando se coloca uma questão a um Nó,este procura nos seus arcos locais por uma etiqueta que coincidacom a questãose não existir procura a resposta via as suas ligações IS_A, ou seja,passa a questão até um Nó que contenha um arco com a resposta.deslocação Amarelus ? deslocação deslocação deslocação Utilizador Amarelus Canário Ave vôo vôo vôo deslocação Vôo 23
  24. 24. Inferência sobre Redes SemânticasPara descrever o processo de inferência nas Redes Semânticasvamos usar lógica:Cada ligação Relação Obj1 Obj2É traduzido para relação (Obj1,Obj2)Deslocação Amarelus ? Is_a (Amarelus,Canário). Is_a (Canário, Ave). deslocação(Ave,Voo). 24
  25. 25. Inferência sobre Redes SemânticasO tratamento de excepções no mecanismo de herança faz-se impondouma restrição ao mecanismo de herança  algo dito explicitamente sobrepõe-se aos factos herdadosdeslocação Black&White? Is_a (Black&White,Pinguim). deslocação(Pinguim,andar). Is_a (Pinguim, Ave). Is_a (Ave,animal). respira(Ave,Ar).  herda todas as características da superclasse excepto aquelas explícitas no próprio Nó 25
  26. 26. Características Redes Semânticas• simplicidade de representação - devido às características de herança – Amarelus herda todas as propriedades de Aves• as Redes Semânticas estão na origem da Programação Orientada a Objectos• permitem uma redução no tempo de pesquisa, visto que os nós estão directamente ligados aos nós vizinhos com interesseDesvantagens:• podem permitir inferências inválidas• não têm uma norma de interpretação - a interpretação depende dos programas que a manipulam. 26
  27. 27. Exemplo• Uma ave é um animal.• A maneira normal de movimentação das aves é voar.• Uma ave está activa durante o dia.• Um albatroz é uma ave.• Uma albatroz é preto e branco.• O tamanho normal do albatroz é 115 cm.• O Alberto é um albatroz.• O tamanho do Alberto é 120 cm.• Um pinguim é uma ave.• Um pinguim é branco e preto.• A maneira normal de movimentação dos pinguins é andar.• O Tweety é um pinguim.Questões: – Qual o método de movimentação do Alberto ? – Qual o método de movimentação do Tweety ? 27
  28. 28. Exemplo andar deslocação IS-A diurna tweety Pinguim IS-A actividade cor Preto e IS-A Ave Animal Branco cor deslocação IS-A IS-A Alberto Albatroz Vôo tamanho tamanho 120 cm 115 cm 28
  29. 29. Enquadramentos (Frames)• Introduzido em 1975 por Marvin Minsky• Permitem representar conhecimento de um conceito ou objecto• Um enquadramento é uma versão enriquecida de um registo ou de um objecto: • Propriedades • Herança: características, comportamentos• É possível criar Instâncias dos Enquadramentos• Adequados para sistemas complexos, de larga escala, envolvendo valores por defeito e quantidades elevadas de dados conhecidos a-priori 29
  30. 30. Frames - Campos• Identificador• Slots – são representados em gavetas (slots) – correspondem aos atributos – Cada slot tem • identificação • valor que toma por defeito (quando nenhum valor foi ainda atribuído) • valor actual (espaço onde são guardadas as alterações ao atributo) Nome do frame Nome do slot 1 Valor por defeito - slot 1 Valor actual slot 1 Nome do slot 2 Valor por defeito - slot 2 Valor actual slot 2 30
  31. 31. Definição de Frames em LPA Flexframe <nome_do_frame> [{is a|is an|is a kind of} <frame_pai>] [,<outro_frame_pai>,…] [;] [ [ default <slot> {is|is a|are} <valor> ] [ and default <outro_slot> {is|is a|are} <outro_valor> [and … ] ] [;] [ inherit <slot> from <nome_do_frame_herda> [ and do not inherit <slot> [ and …] ] ] ]. • nome_do_frame é o nome do frame (atómico) • frame_pai, outro_frame_pai e nome_do_frame_herda são nomes de frames (com o mesmo formato) definidos noutro local • slot e outro_slot são identificações dos slots pertencentes ao frame nome_do_frame. • valor e outro_valor são valores por defeito que os slots tomam respectivamente. 31
  32. 32. Relações entre FramesPermitem implementar características de herança entre FramesTipos de Relações • “is a” ou “is an” : relação de dependência hierárquica entre frames • “inherit” : herança de slot(s) de frames que não estão na mesma linha de hierarquia • “do not inherit” : ausência de herança de slot(s) de frame(s) hierarquicamente superiores • um slot ser ele mesmo um frame 32
  33. 33. “Is a” SimplesO frame_filho herda todos os slots de frame_pai frame_pai slot_1 valor_1 slot_2 valor_2 Is a frame_filho frame frame_pai default slot_1 is valor_1 and slot_3 valor_3 default slot_2 is valor_2. slot_4 valor_4 frame frame_filho is a frame_pai default slot_3 is valor_3 and default slot_4 is valor_4. 33
  34. 34. “Is a” MúltiploExemplo Mamífero pele pelo habitat terra frame mamifero movimento anda,nada default pele is pelo and default habitat is terra and Is a default movimento are {anda,nada}. Felino cauda longa frame felino is a mamifero default cauda is longa and pernas 4 default pernas are 4. 34
  35. 35. “Inherit”Herança de slot(s) de frames que não estão na mesma linha de hierarquia frame_pai outro_frame slot_1 valor_1 slot_3 valor_3 slot_2 valor_2 slot_4 valor_4 Is a inherit frame_filho frame frame_pai default slot_1 is valor_1 and slot_5 valor_5 default slot_2 is valor_2. slot_6 valor_6 frame outro_frame default slot_3 is valor_3 and default slot_4 is valor_4. frame frame_filho is a frame_pai default slot_5 is valor_5 and default slot_6 is valor_6 ; inherit slot_4 from outro_frame. 35
  36. 36. “Inherit” - Exemplo Pássaro Mamífero pele penas pele pelo habitat árvore habitat terra movimento voa movimento anda,nada Is a inheritframe passaro Pinguim.... pele lisaframe mamifero habitat terra......frame pinguim is a passaro default pele is lisa and default habitat is terra ; inherit movimento from mamifero. 36
  37. 37. “do not inherit”Ausência de herança de slot(s) de frame(s) hierarquicamente superiores frame_pai slot_1 valor_1 slot_2 valor_2 frame frame_pai default slot_1 is valor_1 and Is a Do not inherit default slot_2 is valor_2. frame_filho frame frame_filho is a frame_pai slot_3 valor_3 default slot_3 is valor_3 and slot_4 valor_4 default slot_4 is valor_4 ; do not inherit slot_2. 37
  38. 38. “do not Inherit” - Exemplo Pássaro pele penas habitat árvore movimento voa Is a Do not inherit frame passaro Pinguim default pele is penas pele lisa default habitat is arvore and habitat terra default movimento is voa; frame pinguim is a passaro default pele is lisa and default habitat is terra ; do not inherit movimento. 38
  39. 39. Um slot como FrameO slot tem como valor por defeito o nome de um frame que pode depoisser acedido como tal frame_1 frame_2 slot_1 slot_3 valor_3 slot_2 valor_2 slot_4 valor_4 frame frame_1 default slot_1 is frame_2 and default slot_2 is valor_2. frame frame_2 default slot_3 is valor_3 and default slot_4 is valor_4. 39
  40. 40. Exercício Definir em termos de frames em LPA-flex a estrutura Empregado nome morada vencimento 0 Is an Is a Is a Programador Relações Públicas categoria prog categoria rel_pub num_pr 0 Gestor de Projecto categoria gest_proj Projecto identificacao lista_prog nothing sistema linguagem gestor rel_pub estado em construção 40
  41. 41. frame empregado frame projecto default nome is and default identificacao is and default morada is and default lista_prog is nothing and default vencimento is 0. default sistema is andframe programador is an empregado default linguagem is and default categoria is prog. default gestor is and default rel_pub is andframe gestor de projecto is an empregado default estado is em construcao. default categoria is gest_proj.frame relacoes publicas is an empregado default categoria is rel_pub and default num_pr is 0. 41
  42. 42. Instância de um Frame• é um elemento do conjunto que o frame representa, ou uma particularização da classe• podem ser vistas como frames cujos slots estão restringidos apenas ao valor actual• as instâncias, contrariamente aos frames, só podem ter um pai• é possível introduzir novos atributos a instâncias Frame Instância Nome do Enquadramento Tweety Nome do Ave Enquadramento Classe Ave Propriedades Nº Asas 2 Propriedades Cor Branco Voa Verd Nº Asas 2 Actividade Desc Voa Falso Actividade Desc 42
  43. 43. Definição de InstânciaAs instâncias podem ser definidas: • no programa • em execução (através de acções)Definição no programa instance <nome_da_instancia> [ is a | is an | is a kind of | is an instance of <nome_do_frame> ] [;] [ [ <slot> is|is a|are <valor> ] [ and <outro_slot> is|is a|are <outro_valor> [and … ] ] [;] [ inherit <slot> from <nome_do_frame_herda> [ and do not inherit <slot> [ and …] ] ] ].Exemplo instance Tweety is a passaro; Cada vez que se tenha de criar uma movimento are {voa, nada}; nova instância é necessário: cor is branco&preto. • acrescentar a instância ao programa • reinicia-lo  ineficiente ! 43
  44. 44. Questões e RespostasPermitem a comunicação entre o LPA Flex e o utilizadorTipos de questões • Questões de menu question <nome_da questão> <Texto a apresentar pela questão> ; choose {one | some} of <grupo_de_escolha>. • Questões de introdução question <nome_da questão> <Texto a apresentar pela questão> ; input {number | name | set}. 44
  45. 45. Questões e Respostas - ExemplosQuestão de Menu group tipos_hobbies estudar, ler, praticar_desporto. question tempos_livres O que faz nos seus tempos livres ? ; choose some of tipos_hobbies.Questão de introdução question int_numero Introduza um numero ; input number. 45
  46. 46. Acções• São uma colecção de directivas para execução• correspondem aos predicados em PROLOG (sintaxe diferente)• só existe uma definição possível para cada acção• uma acção pode ter um número arbitrário de argumentos• são úteis para aceder ou mostrar valores de slots, criar instânciasSintaxe action <nome_da_acção> do <directiva_1> [ and <directiva_2> [ and … ] ]. 46
  47. 47. Acções% Gruposgroup animais mamifero, passaro, felino, pinguim.% Questões Acção para criar uma instância em execução deQuestion escolher_animal qualquer tipo de animalEscolha o animal;choose some of animais. action cria_animal (TipoAnimal , NomeAnimal )question introduzir_nome do ask escolher_animalIntroduza o nome; and check that TipoAnimal is escolher_animalinput name and ask introduzir_nome and check that NomeAnimal is introduzir_nome and NomeAnimal is a new TipoAnimal. 47
  48. 48. Programação gerida por dadosAssociados aos Frames existem procedimentos que são activadossempre que são realizadas operações de actualização, acesso oucriação de uma instância do Frame.Tipos de procedimentos geridos por dados: • Launches • Constraints • Demons • Watchdogs 48
  49. 49. Programação gerida por dados procedimentos geridos por dados frames slots acesso actualização antes depois launches watchdogs constraints demons 49
  50. 50. LaunchProcedimento gerido por dados invocado sempre que uma novainstância de um qualquer frame é criada.Quando uma nova instância é criada, todas as launches existentessão verificadas e aquelas cujas condições se verifiquem sãoexecutadas.É composto por três partes distintas: • Contexto: teste para verificação de uma condição (qual o frame de que foi criada a instância) • Teste: um teste de condições para verificar se o launch deve actuar • Acção: uma série de comandos a serem executados se todas as condições forem satisfeitas. 50
  51. 51. LaunchSintaxe launch <nome_da_launch> when [the] <{valor | variável}> is a new < nome_do_frame > [ and <condiçao> [and …] ] then <acção_1> [ and <acção_2> [ and … ] ].Exemplo frame empregado default sexo is masculino. launch novo_empregado when Pessoa is a new empregado and sexo of Pessoa is masculino then questoes_sexo_masculino( Pessoa ). instance pedro is an empregado. 51
  52. 52. Constraint• Uma restrição é algo que afecta um slot individualmente• é implementada de forma a que restrinja a alteração ao conteúdo do slot da forma desejada• é activada sempre que um determinado slot esteja prestes a ser alterado, sendo invocada imediatamente antes do conteúdo do slot ser realmente alterado, para validar a alteraçãoÉ composto por três partes distintas: • Contexto: teste para verificação de uma condição (qual o slot a ser restringido) • Teste: um teste de condições para verificar se a restrição deve actuar • Erro: uma série de comandos a serem executados se as restrições não forem satisfeitas. 52
  53. 53. ConstraintSintaxe constraint <nome_da_restrição> when [the] <slot > [ of < nome_do_frame> ] changes to <{valor|variável}> [ and <condiçao> [and …] ] then check [that] <verificação_1> [ and < verificação _2> [ and … ] ] [ otherwise <acção_1> [ and <acção_2> [ and … ] ] ].Exemplo frame empregado default sexo is masculino. constraint tipo_sexo when the sexo of Pessoa changes to S and Pessoa is some empregado then check that S is included in {masculino, feminino} otherwise nl and write( Nao e possivel ) and nl. instance pedro is an empregado. 53
  54. 54. Demon• é invocada sempre que existe alteração a um determinado valor de um qualquer atributo,• É executada imediatamente depois da alteração ter acontecido• não restringe a alteração, existe apenas para invocar uma acção depois da alteração ocorrerÉ composta por três partes distintas: • Contexto: teste para verificação de uma condição (qual o slot a provocar acções ) • Teste: um teste de condições • Acção: uma série de comandos a serem executados se as restrições não forem satisfeitas. 54
  55. 55. DemonSintaxe demon <nome_da_demon> when [the] <slot> [ of < nome_do_frame> ] [changes from <{valor|variável}> ] to {valor|variável}> [ and <condiçao> [and …] ] then <acção_1> [ and <acção_2> [ and … ] ] ].Exemplo frame empregado default sexo is masculino. demon qual_sexo when the sexo of Pessoa changes from S1 to S2 and Pessoa is some empregado and S1 is different from S2 then write( A mudanca de sexo e pouco habitual! ) and nl. 55
  56. 56. Watchdog • implementam restrições de acesso aos valores dos atributos • sempre que um valor de um determinado atributo é pedido, e imediatamente antes deste ser fornecido, verificam automaticamente as condições de acesso • baseiam o seu funcionamento em condições que permitem ou não a disponibilização de informação.É composto por três partes distintas: • Contexto: teste para verificação de uma condição (qual o slot a ter restrições de acesso ) • Teste: um teste de condições para verificar se a restrição deve actuar • Erro: uma série de comandos a serem executados se restrições não forem satisfeitas. 56
  57. 57. WatchdogSintaxe watchdog <nome_do_watchdog> when [the] <slot > [ of < nome_do_frame> ] is requested [ and <condiçao> [and …] ] then check [that] <verificação_1> [ and < verificação _2> [ and … ] ] [ otherwise <acção_1> [ and <acção_2> [ and … ] ] ].Exemplo frame conta default saldo is 0. frame utilizador default nome is and default acesso is 0. watchdog seguranca_de_conta when the saldo of the Conta is requested and Conta is some conta then check that the acesso of utilizador is above 99 otherwise nl and write( Acesso negado ao utilizador ) and write( utilizador`s nome ). 57
  58. 58. Frames• facilitam o processamento orientado pelas expectativas, através do uso de procedimentos geridos por dados, ficam num estado de espera até serem realmente necessários• permitem uma boa organização do conhecimento• são auto-guiáveis, ou seja, eles são capazes, por si só, de determinar quando devem ser aplicados, se não forem aplicáveis podem sugerir outros Enquadramentos que o sejam.• permitem guardar valores dinâmicosDesvantagens• são pouco adequados a novas situações• a explicitação de conhecimento heurístico, comum em regras, é complexa 58
  59. 59. Guiões (Scripts)Especificam uma sequência estereotipada de acontecimentos que normalmenteacontecem e que se seguem para representar conhecimento procedimental.Contêm um conjunto de “slots” dos seguintes tipos: – Condições de entrada – que devem ser atendidas para que os eventos descritos no guião possam ocorrer – Resultados – que irão ser verdadeiros após a ocorrência dos eventos descritos no guião – Objectos – representando objectos envolvidos nos eventos do guião – Participantes – representando entidades que estão envolvidas nos eventos do guião – Cenas – sequências de eventos que ocorremSão adequados: – para os casos em que temos sequências tipificadas (por exemplo, as fases da análise de um incidente) – para descrever planos que devem ser seguidos (por exemplo, os tratamentos a seguir para a cura de uma doença). 59
  60. 60. Guiões (Scripts)Participantes: cliente, empregado, dono,...Objectos: mesa, cadeira, refeição, ....Condições de entrada: cliente com apetite e dinheiro, mesa/vaga disponível,...Condições de saída: cliente satisfeito, cliente com menos dinheiro, dono com mais dinheiro,...Cena 1: cliente entra no restaurante, aguarda por lugar, senta-seCena 2: cliente chama empregado, pede menu, escolhe,... ....Cena N: cliente chama empregado, pede conta, paga, sai. 60
  61. 61. RegrasModelo psicológico do comportamento humano (regras deprodução): Estímulos AcçõesÉ uma forma de conhecimento procedimental  associa informação dada com alguma acçãoNeste modelo, um processador cognitivo tenta disparar as regrasactivadas pelos estímulos adequados  É o papel do motor de inferência 61
  62. 62. Forma Geral Se Antecedente Então Consequente1 Senão Consequente2 Ou Se Condição1 E ... E CondiçãoN Então Conclusão11 E ... E Conclusão 1M Senão Conclusão21 E ... E Conclusão 2MAs condições do antecedente podem também estar ligadas por OU: Condição1 E ... E CondiçãoN OU CondiçãoN1 E .... 62
  63. 63. Forma Geral Regra1 Se SensorA tem valor > 50 Então temperatura da água é muito alta Senão temperatura da água é normalAlternativa (de mais fácil validação): Regra 1a: Se SensorA tem valor > 50 Então temperatura da água é muito alta Regra 1b: Se SensorA tem valor <= 50 Senão temperatura da água é normal 63
  64. 64. Antecedentes Disjuntivos Se A = x OU B = y Então C = kPode converter-se em Se A = x Então C = k Se B = y Então C = kVantagem Mais fácil o acompanhamento da inferência 64
  65. 65. Forma GeralFormato das regras regra Identificador : se LHS então RHS1ExemploRegra r1: SE Bot_1=actuado E Bot_2=actuado ENTÃO Sistema_A=activado LHS RHS 65
  66. 66. RegrasLHS (Left-Handed Side)• contempla as condições que terão que ser atendidas para que a regra seja aplicável• pode envolver a conjunção, disjunção e negação de termos• os termos podem ser factos básicos ou termos gerados pelas conclusões de outras regras - hipóteses ou conclusões intermédias 66
  67. 67. RegrasRHS (Right-Handed Side)• corresponde às conclusões ou acções que se podem obter caso as condições sejam verdadeiras• alguns sistemas só permitem uma conclusão por regra (Cláusulas de Horn)• outros permitem mais do que uma conclusão• as conclusões podem ser intermédias, se entrarem no LHS de outras regras (também recebendo o nome de hipóteses) ou conclusões definitivas 67
  68. 68. Regras vs. Triplos OAV Regra 1a:Se SensorA tem valor > 50 Então temperatura da água é muito alta Se Então Objecto Sensor A Água Atributo tem valor temperatura Valor > 50 muito alta 68
  69. 69. Regras vs. Triplos OAV• As condições e as conclusões serão genericamente designadas por átomos• Os átomos podem ser: • Triplos Objecto|Atributo|Valor • Pares Atributo/Valor (objectos implícitos) 69
  70. 70. Pares Atributo/Valor vs. Triplos OAVSe classificação > 14 Objectos implícitosEntão admitir ao Mestrado Se Então Objecto Classificação Admissão Mestrado Valor > 14 Sim• Melhor Se classificação do aluno > 14 Objectos explícitos Então Aluno Estado de Admissão Mestrado = Sim Se Então Objecto Aluno Aluno Atributo Classificação Admissão Mestrado Valor > 14 Sim 70
  71. 71. Tipos de RegrasRelação Recomendação Se bateria descarregada Se o automóvel não arranca Então o automóvel não arrancará Então arranjar cabosOrientação Heurística Se o automóvel não arranca Se o automóvel não arranca E sistema de alimentação = Ok E carro modelo Ford, 1975 Então verificar sistema eléctrico Então Verificar Circuito de AlimentaçãoEstratégia Se o automóvel não arranca Então 1º verificar sistema de alimentação em seguida o sistema eléctrico 71
  72. 72. Classificação das Regras quanto à IncertezaRegras de Validade absoluta Regra da implicação usada na Lógica Ex: mortal (X) SE humano (X) má (ideia) SE mau-humor (patrão) AND pedir (patrão, aumento)Regras de Validade Incerta Regras com grau de certeza Ex: Se Inflação Elevada Então Taxas de Juro Elevadas FC=0,8 Regras com probabilidades associadas 72
  73. 73. Regras Variáveis Se ?X é Empregado E ?X Idade > 65 Então ?X pode reformar-se.O motor de inferência processa a memória de trabalho de modo aencontrar factos que verifiquem ambas as condições João é Empregado. João Idade = 75. Maria é Empregado. Maria Idade = 35. João pode reformar-se. 73
  74. 74. Regras Causais vs. Regras de DiagnósticoUma regra de Produção numa Base de Conhecimento pode estar emuma das seguintes formas: • Causas influenciam a verosimilhança de sintomas (efeitos), ou • Sintomas observados afectam a verosimilhança de todas as suas causasRegras Causais R1 SE torniquete funcionou ENTÃO relva húmida (FC) R2 SE choveu ENTÃO relva húmida (FC)Regra Tipo Diagnóstico R3 SE relva húmida ENTÃO choveu (FC) 74
  75. 75. Regras Causais vs. Regras de Diagnóstico• A mistura numa mesma Base de Conhecimentos dos dois tipos de Regras (que aliás representam conhecimento verdadeiro) pode ser desastrosa.No exemplo anterior: A aplicação da Regra R1 seguida de R3  levaria a concluir que choveu porque o torniquete funcionou• As Bases de Conhecimento devem ser consistentes e incorporar regras apenas um dos tipos de regras• São preferíveis Regras do tipo Causal porque assim representa-se o modelo teórico de causa a efeito.• Bases de Conhecimento com Regras Causais são ditas Baseadas em Modelos 75
  76. 76. Principais Propriedades daRepresentação de Conhecimento com RegrasModularidadeCada regra define uma pequena parte do conhecimento relativamenteindependente das outras regrasIncrementalidadeNovas regras podem ser acrescentadas à Base de Conhecimento demaneira relativamente independentePossibilidade de ModificaçãoRegras podem ser modificadas de maneira relativamente independnteTransparênciaPermite explicações de raciocínio (questões Como ? E Porquê ?) 76
  77. 77. Problemas das Representações por Regras Ave (X)  Deslocação ( X, Voar) Não está correctamente correcta porque existem excepçõesUma possível solução é a introdução de excepções e o uso da negaçãopor falhaAve (X) E ¬pinguim(X) E ¬avestruz(X)  Deslocação( X, Voar)  Isto torna difícil gerir todas as excepçõesTratamento de excepções através de regras:• tem a desvantagem de implicar não só acrescentar novas regras (ex. sobre aves que não voam) como também modificar outras regras (regras gerais que descrevem as aves) 77
  78. 78. Representação de Conhecimento com RegrasExemploBase de Conhecimento para análise de um problema de inundação numandarConceptualização• Sintomas possíveis cozinha Ok / Com água, hall Ok / Com água, WC Ok / Com água• Outros parâmetros janela aberta/fechada, choveu/não choveu janela• Causas (diagnósticos) possíveis cozinha choveu fuga de água na cozinha / no WC WC hall 78
  79. 79. Relacionamento dos sintomas com as causasR1: Se hall com água E cozinha Ok Então fuga de água no WCR2: Se hall com água E WC Ok Então problema na cozinhaR3: Se janela da cozinha fechada ou não choveu Então não entrou água de foraR4: Se não entrou água de fora E problema na cozinha Então fuga de água na cozinha 79
  80. 80. LógicaLógica - forma de representação de conhecimento mais usada aonível de computação.ExemploNa compreensão de texto em Língua Natural é usual transformarfrases em representações em lógicaLógicas mais usuais: Lógica Proposicional Lógica de Predicados (ou Cálculo de Predicados)Outras Lógicas: Lógica Modal Lógica Temporal 80
  81. 81. LógicaEm Lógica os símbolos representam conhecimento e os operadoressão aplicados aos símbolos para dar origem a raciocínios lógicos Operador Símbolos Conjunção (AND) ∧, &, ∩, . Disjunção (OR) ∨, ∪ , + Negação (NOT) ¬,∼ Implicação →, ⊃ Equivalência ≡ 81
  82. 82. Lógica ProposicionalUsa proposições para a representação do conhecimento e raciocíniosobre esse mesmo conhecimento.ExemploRepresentar através de A a proposição que indica: hoje está a chover → A = hoje está a chover.Se quisermos provar a verdade da proposição hoje está a choverÉ necessário provar a verdade da variável A. 82
  83. 83. Lógica ProposicionalTabela de Verdade da Conjunção Tabela de Verdade da Negação A B C=A∧ B A C=¬A F F F F V F V F V F V F F V V VTabela de Verdade da Disjunção Tabela de Verdade da Equivalência A B C=A∨ B A B A≡ B F F F F F V F V V F V F V F V V F F V V V V V V 83
  84. 84. Lógica ProposicionalTabela de Verdade da Implicação AB ≡ ¬ A ∨ B A B C=A→B F F V F V V V F F V V VExemplo SE a bateria está em baixo ENTÃO o carro não vai arrancar 84
  85. 85. Algumas Equivalênciasna Lógica ProposicionalNome da Propriedade EquivalênciaIdempotência A→B ≡ ¬A ∨ B A ∧ ¬A ≡ F A ∨ ¬A ≡ VPropriedade Comutativa A∧B≡B∧A A∨B≡B∨APropriedade Distributiva A ∧ (B ∨ C) ≡ (A ∧ B) ∨ (A ∧ C) A ∨ (B ∧ C) ≡ (A ∨ B) ∧ (A ∨ C)Propriedade Associativa A ∧ (B ∧ C) ≡ (A ∧ B) ∧ C A ∨ (B ∨ C) ≡ (A ∨ B) ∨ CAbsorção A ∨ (A ∧ B) ≡ A A ∧ (A ∨ B) ≡ ADeMorgan ¬ (A ∧ B) ≡ ¬A ∨ ¬B ¬ (A ∨ B) ≡ ¬A ∧ ¬B 85
  86. 86. Limitação da Lógica ProposicionalDificuldade em expressar conhecimento que necessite dequantificadores (todos, alguns).Exemplo “todos os seres humanos são mortais”e sabendo que “alguém é um ser humano”inferir que esse “alguém é mortal” ∀C [ser_humano(C) → mortal(C)] 86
  87. 87. Lógica de Predicados• Baseada no trabalho de Gottfried Frege• Opera com predicados e argumentos• As frases estabelecem relações entre objectos - pessoas, entidades físicas, conceitos• Os predicados têm a ver com as relações• Os argumentos têm a ver com os objectos• Inclui os quantificadores: universal (∀ - qualquer) e existencial (∃ - existe)ExemploEm vez de representar uma proposição através de um simbolo P = Portugal é um país europeu fica(portugal, europa) → predicado 87
  88. 88. Símbolos da Lógica de PredicadosConstantes - usadas para designar objectos ou propriedades dos predicadosEx. temperatura, maria, ...Predicados - dividem-se em duas partes: o predicado (asserção acerca doobjecto) e o argumento (representa o(s) objectos(s) da proposição)Ex: gosta (joão, maria)Variáveis – usadas para representar classes gerais de objectos ou propriedadesEx: gosta (X, Y)Funções - permitem relacionar entidades de um conjunto com um elementoúnico de um outro conjunto.Ex: pai (joão) = antónio mãe (joana) = maria amigos(pai (joão), mãe (joana)) = amigos (antónio, maria)Estes símbolos são manipulados usando os operadores da Lógica Proposicional 88
  89. 89. Representação de Frases emLógica de PredicadosTodas as crianças gostam de gelados ∀C [criança(C) → gosta(C, gelado)]Há um oceano que banha Portugal ∃O [oceano(O) → banha(O,portugal)]Algumas aves migram ∃A [ave(A) → migra(A)] 89
  90. 90. Raciocínio usando a Lógica de Predicados• Requer a capacidade de inferir conclusões a partir dos factos disponíveis  Através do uso dos operadores do Cálculo de PredicadosInferência SE p é verdadeiro E ( p → q) também é verdadeiro ENTÃO q é verdadeiroNova informação é inferida com base em informação conhecidausando regras e/ou implicações “modus ponens” 90
  91. 91. Exemplo D C A E B MesaObjectos cubo(a) cubo(b) cubo(d) triângulo(c) esfera(e) pega(pega) mesa(mesa)Relações em_cima(a, mesa) em_cima(b, mesa) em_cima(e, mesa) em_cima(d, a) em_cima(c, b) estado(pega,livre)Escrever as implicações que permitam – colocar um bloco em cima do outro – verificar se um bloco está livre – verificar que blocos estão por debaixo 91
  92. 92. Exemplo - BlocosColocar um bloco em cima do outroCondições: Pega tem de segurar bloco a colocar em cima Tem de haver pelo menos um bloco livre para se colocar bloco em cima ∀X ∃Y [ pega_segura(X) ∧ livre(Y) → coloca_em_cima(X, Y) ]verificar se um bloco está livre ∀X ( ¬ ∃Y em_cima(Y,X) → livre(X) )verificar que blocos estão por debaixo ∀X ∀Y ( em_cima(Y,X) → em_baixo (X,Y) ) 92
  93. 93. RaciocínioCapacidade humana em trabalhar com conhecimento, factos eestratégias de resolução de problemas por forma a obter conclusõesEntender – como os humanos raciocínam – como trabalham com a informação relativa a um dado problemaPermite delinear o processo de inferência num Sistema Pericial 93
  94. 94. Mecanismos de Raciocínio Indução (do particular para o geral) Dados Hipóteses Dedução (do geral para o particular) Abdução (gerando explicações) Evidências 94
  95. 95. Raciocínio Dedutivo• Modo de raciocinar através do qual se parte de um princípio conhecido em direcção a um princípio desconhecido• Do geral para o específico• De uma premissa para uma conclusão lógicaExemplo SE objecto A maior que objecto B E objecto B é maior que objecto C ENTÃO objecto A também é maior que objecto CLógica de Predicados ∀A ∀B ∀C [maior(A,B) ∧ maior(B,C) → maior(A,C)] 95
  96. 96. Raciocínio IndutivoA Indução é definida como o modo de raciocinar a partir de factosparticulares na direcção de uma conclusão geral.Exemplo P(a) é verdadeiro P(b) é verdadeiroEntão, por indução, concluímos que ∀X P(X) é verdadeiroO Raciocínio Indutivo está na base das Técnicas de Aprendizagemusadas em Descoberta de Conhecimento a partir de grandes Bases dedados, Ex: Traçar o perfil de clientes 96
  97. 97. Raciocínio Abdutivo • Observamos algo como sendo verdadeiro e conjecturamos sobre o que pode ter levado a essa observação • Tipo de raciocínio usado geralmente na produção de explicações • Não garante que se chegue a conclusões verdadeiras se A→ B é verdadeiro e B é verdadeiro então A também será possivelmente verdadeiroTal conclusão será sustentada no histórico anterior ou apenas no sensocomum.Exemplo ∀X [nada(X) → molhado(X)]Com base neste conhecimento e usando raciocínio abdutivo se nosaparecer alguém molhado vamos admitir que esse alguém esteve a nadar 97
  98. 98. Modus PonensÉ a base do raciocínio dedutivo Se p é verdadeiro e ( p → q) também é verdadeiro então q é verdadeiroExemplo “se alguém está a nadar então está molhado”. ∀X [nada(X) → molhado(X)] p = nada(X) e q = molhado(X)Se soubermos que X está a nadar e sabendo que quem nada se molhaentão podemos, pelo “modus ponens”, concluir que X está molhado. 98
  99. 99. Modus PonensExemplo 1. Se temperatura > 38.2º então paciente tem febre E1 → E2 2. Se paciente tem febre então prescrever 1 aspirina E2 → E3Provar E3 assumindo que o paciente tem temperatura > 38.2ºEstado-0 Estado-1 Estado-21. E1→E 2 1. E1→E 2 1. E1→E 2• E → E 2 3 2. E → E 2 3 2. E → E 2 31. E1 3. E1 3. E1 4. E2 4. E2 5. E3 99
  100. 100. Modus Tollens Se a declaração se (p → q) é verdadeiro e q é falso então podemos inferir que p é falsa. O “modus tollens” é a base do raciocínio baseado em regras.Exemplo “se alguém está a nadar então está molhado”. ∀X [nada(X) → molhado(X)] p = nada(X) e q = molhado(X)Se soubermos que X não está molhado então podemos inferir que X nãoestá a nadar. 100
  101. 101. Princípio da ResoluçãoEstratégia de inferência com a qual se tenta provar que a negação doobjectivo ¬O não é Verdadeiro – Prova por Refutação.Prova Automática de Teoremas baseada no Princípio da Resolução: Para provar A 1. transformam-se os axiomas garantidamente verdadeiros na forma clausal, usando os princípios da idempotência: A→B ≡ ¬A ∨ B, A ∧¬A ≡ F, A ∨¬A ≡ V 2. de seguida junta-se ¬A 3. se por aplicação da regra de resolução a situação na prova falha 4. conclui-se que ¬A é falso e portanto A é verdadeiro 101
  102. 102. Princípio da Resolução – ExercícioExemplo 1. Se temperatura > 38.2º então paciente tem febre E1 → E2 ≡ ¬ E1 ∨ E2 2. Se paciente tem febre então prescrever 1 aspirina E2 → E3 ≡ ¬ E2 ∨ E3Pretende-se provar E3, (ou seja, prescrever 1 aspirina) de acordo com oPrincípio da Resolução assumimos ¬ E3 e acrescentamos este facto àlista de axiomas. 102
  103. 103. Resolução – ExercícioEstado-01.¬ E1 ∨ E2 ¬ E1 ∨ E22.¬ E2 ∨ E3 ¬ E2 ∨ E33. E1 ¬ E1 ∨ E34.¬ E3Estado-1 Estado-2..... ......1. E1 E1 3. E12.¬ E3 ¬ E1 ∨ E3 4. ¬ E33. ¬ E1 ∨ E3 E3 5. ¬ E1 ∨ E3 6. E3Axiomas 4 e 6 revelam uma contradição, pelo que, ¬ E3 é falso eportanto E3 é verdadeiro 103
  104. 104. Resolução – ExercícioDados os axiomas 1. p 2. ( p ∧ q ) → r 3. ( s ∨ t ) → q 4. tProvar → r1º Converter para a Forma Clausal e acrescentar ¬ r 1. p 2. ¬ p ∨ ¬ q ∨ r 3. ¬ s ∨ q 4. ¬ t ∨ q 5. t 6. ¬ r 104
  105. 105. Resolução – Exercício ¬ p ∨ ¬ q ∨ r ¬ r ¬ p ∨ ¬ q p ¬ q ¬ t ∨ q ¬ t t 105
  106. 106. UnificaçãoNa Lógica Proposicional é simples verificar se dois literais não podem serverdadeiros simultaneamente, pois L e ¬L são contraditóriosNa Lógica de Predicados este processo de “matching” dos axiomas é maiscomplicado uma vez que podem conter variáveis.Por exemplo homem(João) ∧ ¬ homem (João) são contraditóriosenquanto que homem(João) ∧ ¬ homem ( Spot ) não sãoÉ então necessário um mecanismo de identificação (matching) ou deunificação que irá tentar instanciar possíveis valores para as variáveis combase nos axiomas existentes.Por exemplo homem (X) ∧ ¬ homem (Spot ) são contraditórios poishomem (X) e homem ( Spot ) podem ser unificados 106
  107. 107. Representação de ConhecimentoExprima as seguintes frases usando a Lógica de Predicados de 1ª ordem• Os gatos são mamíferos• Todo o mamífero tem um progenitor• O filho de um gato é um gato• Teco é um gato• Teco é progenitor do NavalhaProve que Navalha é um gato, pela regra de:• Modus ponens• Princípio da Resolução 107
  108. 108. Definição doa Axiomas através daLógica de Predicados de 1ª ordem• Os gatos são mamíferos ∀g [ gato(g) → mamifero(g) ]• Todo o mamífero tem um progenitor ∀g ∃p [ mamifero(g) → progenitor(p,g) ]• O filho de um gato é um gato ∀g [ gato(g) ∧ progenitor( g, f ) → gato(f) ]• Teco é um gato gato (Teco)• Teco é progenitor do Navalha progenitor ( Teco, Navalha) 108
  109. 109. Modus Ponens Provar → gato(Navalha)Estado-01. gato(g) → mamifero(g)2. mamifero(g) → progenitor(p,g)3. gato(g) ∧ progenitor( g, f ) → gato(f)4. gato ( Teco)5. progenitor ( Teco, Navalha)Pelos Axiomas 3,4,5 e Teco/g, Navalha/ fgato ( Teco) ∧ progenitor ( Teco, Navalha) → gato ( Navalha)6. gato ( Navalha) 109
  110. 110. Resolução Provar → gato(Navalha)Estado-0 1. ¬ gato(g) ∨ mamifero (g) 2. ¬ mamifero (g) ∨ progenitor( p, g) 3. ¬ gato(g) ∨ ¬ progenitor( g, f) ∨ gato(f) 4. gato ( Teco) 5. progenitor ( Teco, Navalha) 6. ¬gato(Navalha) 110
  111. 111. Resolução¬gato( Navalha ) ¬ gato(g) ∨ ¬ progenitor( g, f ) ∨ gato(f) Navalha / f ¬ gato(g) ∨ ¬ progenitor( g, Navalha ) gato ( Teco) Teco / g ¬ progenitor ( Teco, Navalha) progenitor ( Teco, Navalha) 111
  112. 112. Representação de ConhecimentoConsidere o seguinte texto:“ Os gatos gostam de peixe. Os gatos comem tudo do que gostam. Teco é um gato” – Exprima as frases em Lógica de Predicados de 1ª ordem. – Usando a regra de resolução prove por refutação, com base no conhecimento anterior que “o Teco come peixe” 112
  113. 113. ResoluçãoOs gatos gostam de peixe ∀g [ gato(g) → gosta (g, peixe) ]Os gatos comem tudo do que gostam ∀g [ gosta (g, c) → come (g, c) ]Teco é um gato gato ( Teco)Provar → come (Teco, peixe) 113
  114. 114. ResoluçãoProvar → come (Teco, peixe)ResoluçãoEstado-0 1. ¬ gato(g) ∨ gosta (g, peixe) 2. ¬ gosta (g, c) ∨ come (g, c) 3. gato ( Teco) 4. ¬come (Teco, peixe) 114
  115. 115. ResoluçãoProvar → come (Teco, peixe)Resolução ¬come (Teco, peixe) ¬ gosta (g, c) ∨ come (g, c) ¬ gosta (Teco, peixe) ¬ gato(g) ∨ gosta (g, peixe) ¬ gato ( Teco) gato (Teco) 115
  116. 116. Representação de ConhecimentoRepresente as afirmações seguintes usando lógica de predicados de1ª ordem – Um animal pesado come muito – Os elefantes são animais grandes – Todos os elefantes têm um alimento preferido – Dumbo é um elefante – Todos os animais grandes são pesados – O amendoim é um alimentoProvar → Dumbo come muito 116
  117. 117. Definição doa Axiomas através daLógica de Predicados de 1ª ordem – ∀a [ animal (a, pesado) → come(a,muito) ] – ∀a [ elefante(a) → animal (a, grande) ] – ∀a ∃c [elefante(a) → alimento (c, preferido) ] – elefante (Dumbo) – ∀a [ animal (a, grande) → animal (a, pesado) ] – alimento (amendoim) 117
  118. 118. ResoluçãoProvar → Dumbo come muito come(Dumbo, muito)Estado-0 1. ¬ animal (a,pesado) ∨ come (a, muito) 2. ¬ elefante (a) ∨ animal (a, grande) 3. ¬ elefante (a) ∨ alimento (c, preferido) 4. elefante (Dumbo) 5. ¬ animal (a, grande) ∨ animal (a, pesado) 6. Alimento (amendoim) 7. ¬come (Dumbo, muito) 118
  119. 119. ResoluçãoProvar → come(Dumbo, muito)8 1¬come (Dumbo, muito) ¬ animal (a,pesado) ∨ come (a, muito) 5 ¬ animal(Dumbo, pesado) ¬ animal (a, grande) ∨ animal (a, pesado) 2 ¬ animal (Dumbo, grande) ¬ elefante (a) ∨ animal (a, grande) 4 ¬ elefante (Dumbo) elefante (Dumbo) 119

×