Raciocínio Automatizado

Documentos relacionados
Raciocínio Automatizado

Raciocínio Automatizado

Prof. Dr. Silvio do Lago Pereira

Lógica, Raciocínio Automatizado e Prolog

RACIOCÍNIO ABDUTIVO EM PROLOG

Planejamento Abdutivo no Cálculo de Eventos

Programação Lógica. Programação Lógica PROLOG

Mecanismos de Controle

Lógica Proposicional. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo

Engenharia do Conhecimento Raciocínio Não Monótono - 1. Raciocínio Não Monótono

Lógica Proposicional. LEIC - Tagus Park 2 o Semestre, Ano Lectivo 2007/08. c Inês Lynce c Luísa Coheur

Linguagem Prolog. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo

Nelma Moreira. Aula 17

Lógica Proposicional. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo

Lógica Computacional

Conferência Árvores de resolução SLD

Mecanismos de Controle

Lógica Computacional (CC2003)

Linguagem Prolog. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo

Programação em Lógica

Descrição do Mundo de Wumpus. Inteligência Artificial

Prof. Marcos A. Schreiner. 15 de junho de Prof. Marcos A. Schreiner (UFPR) 15 de junho de / 18

Recursividade e listas

Métodos de Verificação

Paradigmas de Programação. Programação Lógica. Profª Andréa Schwertner Charão DLSC/CT/UFSM

2284-ELE/5, 3316-IE/3

Programação Lógica. Controle (Bactracking, Cut, Fail) Paulo Henrique Ribeiro Gabriel

Lógica para Computação

Lógica Computacional

Lógica Computacional DCC/FCUP 2017/18

Lógica para Programação

Lógica de primeira ordem (Capítulo 8 - Russell) Inteligência Artificial

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ PROLOG PROF. CESAR A. TACLA UTFPR/CURITIBA

Lógica Computacional. Nelma Moreira. Departamento de Ciência de Computadores Faculdade de Ciências, Universidade do Porto

Programação Lógica. (Capítulo 11) LÓGICA APLICADA A COMPUTAÇÃO. Professor: Rosalvo Ferreira de Oliveira Neto

Introdução à Lógica Computacional. Circuitos: Maps de Karnaugh Lógica Proposicional: Prova por Refutação

Lógica para Programação

Lógica de Primeira Ordem. Capítulo 9

Linguagem Prolog. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo

Programação em Lógica. UCPEL/CPOLI/BCC Lógica para Ciência da Computação Luiz A M Palazzo Maio de 2010

SCC Capítulo 2 Lógica de Predicados

CURRÍCULO DO CURSO TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO (noturno) [Campus Araranguá] 20171

Lógica e prova de resolução Marco Henrique Terra

Lógica Computacional

Introdução. Esse programa recebeu o nome PROLOG (do francês PROgramation et LOGique ).

Fundamentos de Lógica Matemática

Fórmulas da lógica proposicional

BUSCA DE SOLUÇÕES EM PROLOG

SCC Capítulo 3 Prova Automática de Teoremas

Resolução Proposicional Fernando Bozza, Vanessa Maria da Silva

Cálculo proposicional

Capítulo 3 Lógica de Primeira Ordem

Lyneker Amorim (T1) Philipe Farias Rafael Mota Yure Bonifacio

Basicamente, um programa PROLOG é constituído por fatos acerca do domínio e regras que são sentenças ou fórmulas.

LÓGICA PARA COMPUTAÇÃO

UNIDADE ACADÊMICA: Faculdade de

Introdução. Programação em Lógica. Resolução na Lógica Proposional. Resolução na Lógica Proposional. Resolução na Lógica Proposional.

Conferência Predicados de corte e falha

Aula 8: Tableaux Analíticos

Capítulo 3 Lógica de Primeira Ordem

Recursividade e listas

Fundamentos de Lógica Matemática

Lógica Computacional DCC/FCUP 2017/18

CENTRO UNIVERSITÁRIO LUTERANO DE PALMAS PROLOG. Elias Melgaço Chaves Júnior Jonatas Luiz da Costa Rafael Gonçalves Barreira

[B&A] Computação na Lógica de Predicados

Lógica Computacional Aula 1

Lógica Proposicional. LEIC - Tagus Park 2 o Semestre, Ano Lectivo 2007/08. c Inês Lynce c Luísa Coheur

INF 1771 Inteligência Artificial

Lógica para Computação Primeiro Semestre, Aula 10: Resolução. Prof. Ricardo Dutra da Silva

Indução. Método de Prova por Indução. Jon Barwise e John Etchemendy, Capítulo: 16

Inteligência Artificial. Prolog. Aula 2 Introdução (cont.)

Lógica. Professor Mauro Cesar Scheer

Lógica Computacional

Objetivo PROGRAMAÇÃO EM LÓGICA. Conteúdo. Referências Bibliográficas. Introdução. Introdução. Linguagem Prolog Parte I

UMA INTRODUÇÃO A PROLOG

MATEMÁTICA DISCRETA E LÓGICA MATEMÁTICA PROF. APARECIDO EDILSON MORCELLI

Inteligência Artificial IA III. PROVA AUTOMÁTICA DE TEOREMAS

Nelma Moreira. Departamento de Ciência de Computadores da FCUP. Aula 20

JOÃO NUNES de SOUZA. LÓGICA para CIÊNCIA da COMPUTAÇÃO. Uma introdução concisa

SCC Capítulo 5 Representação de Conhecimento através do Prolog

Lógica Computacional

Roteiro de Aula Prática

Curso: Análise e Desenvolvimento de Sistemas. (Conceitos Práticos de Lógica de Programação)

LÓGICA PARA COMPUTAÇÃO

PCS Inteligência Artificial

Busca no espaço de estados (parte I)

Programação Lógica. A Linguagem Prolog. Paulo Henrique Ribeiro Gabriel Faculdade de Computação Universidade Federal de Uberlândia

Dedução Natural e Sistema Axiomático Pa(Capítulo 6)

Inteligência Artificial

Lógica Clássica Proposicional

Lógica Computacional

impossível conclusão falso premissas verdadeiro

Lógica Matemática 1. Semana 7, 8 e 9. Material Previsto para três semanas

Aula 2 Programação Lógica Sintaxe Prolog. Profa. Elaine Faria UFU -2014

PCS 2428 / PCS 2059 lnteligência Artificial. Lógica de Predicados. Representação de Conhecimento. Uranus. Aphrodite Kronos Atlas Prometheus

Capítulo 3 Lógica de Primeira Ordem

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 15 Agentes que Raciocinam Logicamente

Lógica Computacional. Normalização e Formas Normais. Literais, Cláusulas e Monómios; Formas Normais NNF, CNF e DNF. Algoritmos de Conversão

Fórmulas Bem Formadas (wff) Prioridade dos Conectivos. Prioridade dos Conectivos. Semântica do CR. Semântica do CR

Transcrição:

Raciocínio Automatizado Prof. Dr. Silvio do Lago Pereira Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo

Introdução Raciocínio automatizado simula raciocínio lógico por por meio de de processos computacionais SLD-refutação é um procedimento para raciocínio automatizado que apresenta as seguintes características: restringe-se à uma classe de fórmulas denominadas cláusulas de Horn usa um mecanismo de prova por refutação, que combina unificação e resolução usa uma estratégia de busca em profundidade para controlar as inferências introduz o conceito de predicados computáveis (ou predefinidos no sistema) introduz o conceito de negação por falha finita Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 2

Inferência com cláusulas de Horn Cláusulas de de Horn São São fórmulas da da forma ϕ ϕ 1, 1,..., ϕ nn para n 0, onde ϕ é uma conclusão e ϕ 1, 1,..., ϕ n são n são premissas (condições) Tipos de cláusulas: Fato...: ϕ Regra...: ϕ ϕ 1,..., ϕ n Consulta...: ϕ 1,..., ϕ n Contradição...: Um Um programa lógico é composto apenas por por fatos fatos e regras! Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 3

Inferência com cláusulas de Horn Inferências com cláusulas de Horn são efetuadas sempre entre: um fato e uma consulta α 0 β 1, β 2,, β n β 2,, β n uma regra e uma consulta a unificação de α 0 e β 1 tem efeito colateral no valor dos demais literais (i.e., na nova consulta) α 0 α 1, α 2,, α m β 1, β 2,, β n α 1, α 2,, α m, β 2,,..., β n O resultado de de uma uma inferência é uma uma nova nova consulta ou ou uma uma contradição! Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 4

Inferência com cláusulas de Horn Exemplo 1 inferência entre fato e consulta pai(adao adao,abel abel) pai(adao adao,y),y), pai(y,z) pai(abel abel,z),z) {Y=abel abel} Exemplo 2 inferência entre regra e consulta avo(x,z) pai(x,y), pai(y,z) avo(adao adao,a),a), pai(a,b) pai(adao adao,y),y), pai(y,a), pai(a,b) {X=adao adao,, Z=A} Z=A} Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 5

SLD-refutação Programa lógico 1 O que que é saudável? (1) (1) bebe(ze bebe(ze ze,pinga) ze,pinga) (2) (2) bebe(mane,agua bebe(mane,agua agua) agua) (3) (3) vivo(mane) vivo(mane) (4) (4) saudavel(x) saudavel(x) bebe(y,x), bebe(y,x), vivo(y) vivo(y) Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 6

SLD-refutação Programa lógico 1 O que que é saudável? (1) (1) bebe(ze bebe(ze ze,pinga) ze,pinga) (2) (2) bebe(mane,agua bebe(mane,agua agua) agua) (3) (3) vivo(mane) vivo(mane) (4) (4) saudavel(x) saudavel(x) bebe(y,x), bebe(y,x), vivo(y) vivo(y) Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 7

SLD-refutação Programa lógico 1 O que que é saudável? (1) (1) bebe(ze bebe(ze ze,pinga) ze,pinga) (2) (2) bebe(mane,agua bebe(mane,agua agua) agua) (3) (3) vivo(mane) vivo(mane) (4) (4) saudavel(x) saudavel(x) bebe(y,x), bebe(y,x), vivo(y) vivo(y) Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 8

SLD-refutação Programa lógico 1 O que que é saudável? (1) (1) bebe(ze bebe(ze ze,pinga) ze,pinga) (2) (2) bebe(mane,agua bebe(mane,agua agua) agua) (3) (3) vivo(mane) vivo(mane) (4) (4) saudavel(x) saudavel(x) bebe(y,x), bebe(y,x), vivo(y) vivo(y) Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 9

SLD-refutação Programa lógico 1 O que que é saudável? (1) (1) bebe(ze bebe(ze ze,pinga) ze,pinga) (2) (2) bebe(mane,agua bebe(mane,agua agua) agua) (3) (3) vivo(mane) vivo(mane) (4) (4) saudavel(x) saudavel(x) bebe(y,x), bebe(y,x), vivo(y) vivo(y) Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 10

SLD-refutação Programa lógico 2 Ana Ana fala fala que que idioma? (1) (1) nasceu(ana nasceu(ana ana,brasil ana,brasil brasil) brasil) (2) (2) nasceu(yves nasceu(yves yves,franca) yves,franca) (3) (3) idioma(brasil idioma(brasil brasil,portugues brasil,portugues portugues) portugues) (4) (4) idioma(franca,frances idioma(franca,frances frances) frances) (5) (5) estudou(ana estudou(ana ana,frances ana,frances frances) frances) (6) (6) fala(a,c) fala(a,c) nasceu(a,b), nasceu(a,b), idioma(b,c) idioma(b,c) (7) (7) fala(d,e) fala(d,e) estudou(d,e) estudou(d,e) Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 11

SLD-refutação Programa lógico 2 Yves Yves fala fala que que idioma? (1) (1) nasceu(ana nasceu(ana ana,brasil ana,brasil brasil) brasil) (2) (2) nasceu(yves nasceu(yves yves,franca) yves,franca) (3) (3) idioma(brasil idioma(brasil brasil,portugues brasil,portugues portugues) portugues) (4) (4) idioma(franca,frances idioma(franca,frances frances) frances) (5) (5) estudou(ana estudou(ana ana,frances ana,frances frances) frances) (6) (6) fala(a,c) fala(a,c) nasceu(a,b), nasceu(a,b), idioma(b,c) idioma(b,c) (7) (7) fala(d,e) fala(d,e) estudou(d,e) estudou(d,e) Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 12

SLD-refutação Exercício 1 Em Prolog, o operador é omitido nas cláusulas do tipo fato e substituído por :- nas cláusulas do tipo regra. Ademais, toda cláusula deve ser finalizada com.. Usando esta convenção, codifique o programa a seguir em Prolog e faça as seguintes consultas: Eva namora com Ary? Ivo namora com Ana? Ary namora com quem? Programa lógico 3 (1) (1) gosta(ary gosta(ary ary,eva ary,eva eva) eva) (2) (2) gosta(ivo gosta(ivo ivo,ana) ivo,ana) (3) (3) gosta(ivo gosta(ivo ivo,eva ivo,eva eva) eva) (4) (4) gosta(eva gosta(eva eva,ary eva,ary ary) ary) (5) (5) gosta(ana,ary gosta(ana,ary ary) ary) (6) (6) namora(a,b) namora(a,b) gosta(a,b), gosta(a,b), gosta(b,a) gosta(b,a) Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 13

SLD-refutação Exercício 2 Em Prolog, o predicado predefinido trace/0 permite rastrear o raciocínio feito pelo motor de inferência do sistema, ao responder a uma consulta. Usando este predicado para rastrear as consultas a seguir e desenhe a árvore de refutação correspondente:?- namora(eva eva,ary ary).?- namora(ivo ivo,ana).?- namora(ary ary,q). Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 14

SLD-refutação Exercício 3 Codifique o programa a seguir em Prolog e rastreie o raciocínio do sistema ao responder às seguintes consultas: Quem é avô de Enos? Seth é avô de quem? Caim é irmão de quem? Programa lógico 4 (1) (1) pai(adão,caim pai(adão,caim caim) caim) (2) (2) pai(adão,abel pai(adão,abel abel) abel) (3) (3) pai(adão,seth pai(adão,seth seth) seth) (4) (4) pai(seth pai(seth seth,enos seth,enos enos) enos) (5) (5) avô(a,c) avô(a,c) pai(a,b), pai(a,b), pai(b,c) pai(b,c) (6) (6) irmão(d,e) irmão(d,e) pai(f,d), pai(f,d), pai(f,e) pai(f,e) Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 15

Predicados computáveis Predicado computável é um um predicado avaliado diretamente pelo pelo procedimento de de refutação, sem sem que que este este tenha que que estar definido no no programa lógico. Exemplos: operadores aritméticos: +, -, *, / operadores relacionais: =,, <,, >, A SLD-refutação sinaliza fracasso se se um um predicado computável resulta em em falso! Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 16

Predicados computáveis Programa lógico 5 Quem é irmão de de Caim? (1) (1) pai(adão,caim pai(adão,caim caim) caim) (2) (2) pai(adão,abel pai(adão,abel abel) abel) (3) (3) pai(adão,seth pai(adão,seth seth) seth) (4) (4) irmão(x,y) irmão(x,y) pai(z,x), pai(z,x), pai(z,y), pai(z,y), X X Y Y Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 17

Predicados computáveis Exercício 4 Com base no programa a seguir, mostre como SLD-refutação responde à consulta (no Prolog, o operador é representado por \= ): Quem é infiel? Programa lógico 6 (1) (1) gosta(ary ary,eva eva) eva) (2) (2) gosta(ivo ivo,ana),ana) (3) (3) gosta(ary ary,bia),bia) (4) (4) gosta(eva eva,ary ary) ary) (5) (5) namora(a,b) gosta(a,b), gosta(b,a) (6) (6) infiel(c) namora(c,d), gosta(c,e), D E Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 18

Negação por falha finita Hipótese do do mundo fechado: tudo tudo o que que é verdadeiro está estádeclarado! Mecanismo de de negação por falha finita Ao Ao encontrar um um literal negativo ( λ ( λ λ) λ) o sistema dispara uma sub-prova do do literal complementar (λ): (λ): se se a prova de de λ termina com com sucesso, a prova de de λ λ termina com com fracasso se se a prova de de λ termina com com fracasso, a prova de de λ λ termina com com sucesso Prolog implementa negação por falha finita através do predicado computável not/1 /1. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 19

Negação por falha finita Programa lógico 7 Quem voa? voa? (1) (1) ave(fred ave(fred fred) fred) (2) (2) ave(bob) ave(bob) (3) (3) pimguim(fred pimguim(fred fred) fred) (4) (4) voa(x) voa(x) ave(x), ave(x), pinguim(x) pinguim(x) Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 20

Negação por falha finita Exercício 5 Com base no programa a seguir, mostre como SLD-refutação responde às consultas: diferente(bola,bola) diferente(bola,bala) Programa lógico 8 (1) (1) igual(x,x) (2) (2) diferente(x,y) igual(x,y) Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 21

Fim