A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Inferência.

Apresentações semelhantes


Apresentação em tema: "Inferência."— Transcrição da apresentação:

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 Prolog REGRA 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 Prolog REGRA 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 Prolog REGRA 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 Prolog REGRA 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 Prolog REGRA 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 Prolog EXEMPLO 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 Prolog EXEMPLO 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 Prolog EXEMPLO DE PROGRAMA E CONSULTAS
Consultas e respostas (continuação): ? presa(X) peixe peixinho quati raposa coelho cavalo

14 A Linguagem Prolog RECURSÃ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 Prolog RECURSÃ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 Prolog RECURSÃ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 Prolog RECURSÃO (exemplo)
? na_cadeia_alimentar(urso,Y) resposta: peixe quati raposa cavalo peixinho alga coelho mato

18 A Linguagem Prolog RECURSÃO (exemplo)
urso peixe urso quati urso raposa urso cavalo urso peixe peixe peixinho peixinho alga


Carregar ppt "Inferência."

Apresentações semelhantes


Anúncios Google