1 / 18

Inferência

Inferência. A Linguagem Prolog FATOS. Os fatos permitem definir os predicados: - Exemplo: um sistema ecológico para especificar a cadeia alimentar come (urso, peixe) come (urso, raposa) % predicado binário come (cavalo, mato) animal (urso)

varian
Download Presentation

Inferência

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Inferência

  2. A Linguagem Prolog FATOS • Os fatos permitem definir os predicados: - Exemplo: um sistema ecológico para especificar a cadeia alimentar come (urso, peixe) come (urso, raposa) % predicado binário come (cavalo, mato) animal (urso) animal (peixe) % predicado unário animal (raposa)

  3. A Linguagem Prolog CONSULTAS • De posse do programa Prolog (base de dados , podemos fazer consultas . Exemplos: ? come (cavalo, mato) Resposta: yes ? come (urso, coelho) Resposta: no ? come (urso, X) Resposta: peixe coelho

  4. A Linguagem Prolog REGRAS • Uma regra é a descrição de um predicado através de uma implicação Exemplo: “um animal é presa se é comido por outro animal”. come(Y,X) ^ animal(X) -> presa(X) em Prolog: presa(X) :- come(Y,X), animal(X)

  5. A Linguagem Prolog REGRAS e CONSULTAS • Acrescentando a nova regra à BD podemos fazer novo tipo de consulta come (urso, peixe) come (urso, raposa) % predicado binário come (cavalo, mato) animal (urso) animal (peixe) % predicado unário animal (raposa) presa(X) :- come(Y,X), animal(X) % regra ?-presa(x) resposta: peixe e raposa

  6. A Linguagem PrologREGRA DE INFERÊNCIA: RESOLUÇÃO • As regras e os fatos de um programa prolog correspondem à fórmulas de 1a ordem transformada em Cláusulas de Horn. • Prolog trata as regras como sendo quantificadas universalmente • A regra de inferência usada pelo interpretador prolog é a regra da resolução. Como foi obtida a resposta do exemplo anterior?

  7. A Linguagem PrologREGRA DE INFERÊNCIA: RESOLUÇÃO • Observe que a regra (Cláusula de Horn) presa(X) :- come(Y,X), animal(X) Corresponde a wff xy(come(Y,X) ^ animal(X)) -> presa(X) Corresponde a cláusula ~(come(X,Y) ^ animal(X)) v presa(x) ~come(X,Y) v ~animal(X) v presa(x)

  8. A Linguagem PrologREGRA DE INFERÊNCIA: RESOLUÇÃO • Regra da resolução : Duas cláusulas de Horn são resolvidas em uma nova cláusula se uma delas contiver um predicado negado que corresponda a um predicado não-negado na outra cláusula. A nova cláusula elimina o termo de correspondência e fica disponível para uso em resposta a pergunta. As variáveis são substituídas por constantes associadas de maneira consistente

  9. A Linguagem PrologREGRA DE INFERÊNCIA: RESOLUÇÃO • ? presa(X) • O Prolog procura, na BD, por uma regra com o predicado presa(X) como o conseqüente • Busca outras cláusulas que possam ser resolvidas com a regra • Faz as substituições das variáveis na cláusula regra 1. ~come(X,Y) v ~animal(X) v presa(X) 2. come(urso,peixe) 3. ~animal(peixe) v presa(peixe) {resolvente de 1 e 2} 4. animal (peixe) 5. presa (peixe) {resolvente de 3 e 4} • Refaz o processo procurando na BD outra cláusula a resolver com a cláusula da regra. Encontrará come(urso,peixe)

  10. A Linguagem PrologREGRA DE INFERÊNCIA: RESOLUÇÃO • Outro exemplo: acrescentando à BD a regra: “x é caçado se é presa” caçado(X) :- presa(X) Como é feita a consulta que segue? ? caçado(X) • a regra na forma simbólica é: presa(X) -> caçado(X) • a cláusula correspondente é: ~(presa(X) v caçado(X) • essa cláusula é resolvida com a da regra de definição de presa e seguindo a resolução obtém as respostas: peixe raposa

  11. A Linguagem PrologEXEMPLO DE PROGRAMA E CONSULTAS come (urso, peixe) come (peixe,peixinho) come (peixinho,alga) come (quati,peixe) come(urso,quati) come (urso, raposa) come(raposa,coelho) come (coelho, mato) come(urso,cavalo) come(cavalo,mato) come(gato-selvagem,cavalo) animal(urso) animal(peixe) animal(peixinho) animal(quati) animal(raposa) animal(coelho) animal(cavalo) animal(gato-selvagem) planta(mato) planta(alga) presa(X) :- come(Y,X), animal(X)

  12. A Linguagem PrologEXEMPLO DE PROGRAMA E CONSULTAS • Consultas e respostas: ? animal(coelho) yes ? come(gato-selvagem,mato) no ? come(X,peixe) urso quati ? come(X,Y),planta(Y) peixinho alga coelho mato cavalo mato

  13. A Linguagem PrologEXEMPLO DE PROGRAMA E CONSULTAS • Consultas e respostas (continuação): ? presa(X) peixe peixinho peixe quati raposa coelho cavalo cavalo

  14. A Linguagem PrologRECURSÃO • As regras em Prolog são implicações lógicas • Podem depender de fatos: presa(X) :- come(X,Y),animal(X) • Podem depender de outras regras: caçado(X) :- presa(X) • Podem depender da própria regra: com definição recursiva

  15. A Linguagem PrologRECURSÃO • Exemplo: usar a BD ecológica para definir a relação na-cadeia-alimentar(X,Y) com o significado: ”Y está na cadeia alimentar de X” que por sua vez pode significar duas coisas: • X come Y diretamente • X come algum animal que come algum animal que come algum animal ... que come Y

  16. A Linguagem PrologRECURSÃO (exemplo) • O caso 2. pode ser reescrito como: 2’. “X come Z e Y está na cadeia alimentar de Z” • O caso 1. é o ponto de parada da regra recursiva • A regra incorpora os casos 1 e 2’: na_cadeia_alimentar(X,Y) :- come(X,Y) na_cadeia_alimentar(X,Y) :- come(X,Z), na_cadeia_alimentar(Z,Y)

  17. A Linguagem PrologRECURSÃO (exemplo) ? na_cadeia_alimentar(urso,Y) resposta: • peixe • quati • raposa • cavalo • peixinho • alga • peixe • peixinho • alga • coelho • mato • mato

  18. A Linguagem PrologRECURSÃO (exemplo) urso peixe urso quati urso raposa urso cavalo urso peixe peixe peixinho peixinho alga

More Related