Prolog e lógica Jacques Robin, DI-UFPE www.di.ufpe.br/~jr.

Slides:



Advertisements
Apresentações semelhantes
Presenter’s Notes Some Background on the Barber Paradox
Advertisements

“Wh” Questions Perguntas com “Wh”
Direct Object Pronouns The direct object is a noun, nominal group, or a pronoun that answers the question….Who / Whom or What. The direct object directly.
Fundamentos de Prolog: uma breve introdução à programação em lógica Jacques Robin, DI-UFPE
THE PASSIVE VOICE. Para enfatizar a ação praticada, e não quem a praticou. Television was invented in Quando a mensagem (em geral escrita) tem tom.
INPAs insights on LBA (and its role as the coordinating institution): (based on and the message from INPAs General Director, Dr Adalberto Val, and on former.
Por Dave Batty 3/2012 T Disciplinando alunos no programa Desafio Jovem Teen Challenge Staff Training Course T iTeenChallenge.org.
Simple Present.
Copyright no direito americano: o caso Leslie Kelly v. Arriba Soft Corp. 1.
1 O direito americano A análise das excepções concentra-se no fair use: o direito americano permite a um utilizador exigir o acesso à obra e a sua reprodução.
RELATIVE CLAUSE / RELATIVE PRONOUNS
PENSAMENTOS DE EMMANUEL Nº 1 Emmanuel EMMANUELS THOUGHTS Nº 1 Emmanuel.
Relative Pronouns Pronomes Relativos
Passado Simples Inglês Prof.:Marina.
Disciplina: Inglês Prof.: Marina 19/04/2010
III REUNIÃO DE COORDENAÇÃO REGIONAL DA BVS Lewis Joel Greene Editor Brazilian Journal of Medical and Biological Research Medical School of Ribeirão Preto.
Experiências de Indução.
ANÁLISE DA PRODUÇÃO EM PERIÓDICOS ( ) SEGUNDO NOVOS ESTRATOS VITÓRIA, ES – OUTUBRO 2008 Kenneth Camargo – IMS/UERJ Cláudia Medina – IESC/UFRJ.
SQL Exercícios de Revisão Profa. Sandra de Amo Programa de Pós-graduação em Ciência da Computação – UFU
Possessive Pronouns. Ao contrário dos possessives adjectives, os possessives pronouns não são seguidos de substantivo, pois o estão substituindo. Eles.
Indirect Speech By Laecio Miranda.
MODAL VERBS.
Rodar Prolog2 no Unix Shell Conectar-se em limoeiro. Incluir /usr/local/prolog2/sys no seu path. Digitar prolog2 no prompt Unix. Digitar consult(" ").
Departamento de Informática
Correção dos exercícios de engenharia do conhecimento em LIFE Jacques Robin, DI-UFPE
Correção dos exercícios de engenharia do conhecimento em Prolog Jacques Robin, DI-UFPE
Correção dos exercícios de engenharia do conhecimento em Prolog
LIFE: integração de predicados, funções e classes
LIFE: integração de predicados, funções e classes
A.4. Trabalhando com elementos de biblioteca STL – Standard Template Libraby Disponibiliza um conjunto de classes templates, provendo algoritmos eficientes.
Inferência em lógica de primeira ordem
FORTRAN 90 Denise Yumi Takamura.
CE-262 Ontologia e Web Semântica Prof. José M Parente de Oliveira
Interpolação Introdução Conceito de Interpolação
1 Seja o resultado de um experimento aleatório. Suponha que uma forma de onda é associada a cada resultado.A coleção de tais formas de ondas formam um.
Uniform Resource Identifier (URI). Uniform Resource Identifiers Uniform Resource Identifiers (URI) ou Identificador de Recursos Uniforme provê um meio.
THE PRESENT CONTINUOUS TENSE (presente contínuo)
Refere-se a pessoas em situações formais
Em português correspondem às conjunções, locuções, advérbios, etc.
Introdução a Programação em Lógica e Prolog
Indirect Object Pronouns - Pronomes Pessoais Complemento Indirecto
By Búzios Slides Blowin in the win Sincronizado Bob Dylan.
Números de 0 a 1,000,000,000 É uma dúvida de muitos estudantes do nível básico como dizer os números em inglês. Segue abaixo a lista de 0 a 1,000,000,000.
PROF.ª DANIELLE CACERES DA SILVA
Avaliação Constituição dos grupos de trabalho:
Lecture 4 Pressure distribution in fluids. Pressure and pressure gradient. Hydrostatic pressure 1.
Quality Management (J07) Overview BR
Lógica de Predicados Implementação de Resolução. Em Lógica de 1ª. Ordem Resolução não é uma simples extensão da Resolução da Lógica Proposicional O processo.
Introdução a Programação em Lógica e Prolog
Introdução à Criptografia Moderna – 2ª Lista de Exercícios
English Classes Relative Pronouns.
Intercutural studies. Brazil has many schools prepared to receive students in other coutries coming to the exchange student.
Cigré/Brasil CE B5 – Proteção e Automação Seminário Interno de Preparação para a Bienal 2006 Rio de Janeiro, setembro/06.
RELATÓRIO CEMEC 06 COMPARAÇÕES INTERNACIONAIS Novembro 2013.
Microprocessadores 8051 – Aula 3 Interrupção
© 2012 Autodesk Autodesk Revit para projetos executivos de arquitetura Módulo 2: Otimizando a modelagem para documentação Tiago Marçal Ricotta Gerente.
Unit 22 Relative Clauses and Pronouns.
VOCÊ JÁ FALA INGLÊS FLUENTEMENTE?
Milhões de estrelas, colocadas nos céus, por um Deus. Millions of stars placed in the skies, by one God.
How do you identify passives in Portuguese? Os jogos olímpicos são disputados a cada 4 anos. Mais um carro foi incendiado no Rio. O novo ar condicionado.
Introdução a Programação em Lógica e Prolog
Programação em Lógica Indutiva Jacques Robin DI-UFPE.
Introdução a Programação em Lógica e Prolog Jacques Robin CIn-UFPE Aula I/II.
One God Um Deus.
Sunday School Adolescents Theme: Evangelism.
Sunday Bible School Theme: Evangelism Children & Intermediates
Simple Present Tense. . In English the Simple Present is used to express actions that are made with a certain frequency, like go to school, work, study…
One God Um Deus.
Introdução a Programação em Lógica e Prolog
Transcrição da apresentação:

Prolog e lógica Jacques Robin, DI-UFPE

Cláusulas de Horn * Formulas de L1: em forma normal implicativa com uma conclusão única e positiva ie, da forma: * Muitas mas nem todas as formulas de L1 tem conjunto equivalente de cláusulas de Horn, cex: * Lógica de Horn:

Cláusulas Prolog e cláusulas de Horn * Fatos Prolog: cláusulas de Horn com premissa única T implícita ex: C. T => C * Regras Prolog: outras cláusulas de Horn ex: C :- P1,...,Pn. P1 &... & Pn => C * Premissas de cláusulas com a mesma conclusão são implicitamente disjuntivas: ex: {C :- P1,...,Pn., C :- Q1,...,Qm} (P1&... & Pn) v (Q1 &... & Qm) => C * Escopo das variáveis = uma cláusula

West é criminoso? : em L1 * Requisitos em inglês 1. It is crimimal for an American to sell weapons to an hostile country 2. Nono owns missiles 3. Nono acquires all its missiles from West 4. West is American 5. Nono is a nation 6. Nono is an enemy of the USA 0. Is West a crimimal? * Em L1 1. V P,W,N american(P) & weapon(W) & nation(N) & hostile(N) & sells(P,N,W) => criminal(P) 2. E W owns(nono,W) & missile(W) 3. V W owns(nono,W) & missile(W) => sells(west,nono,W) 7. V X missile(W) => weapon(W) 8. V X enemy(N,america) => hostile(N) 4. american(west) 5. nation(nono) 6. enemy(nono,america) 9. nation(america)

West é criminoso? em formal normal * Em L1: V P,W,N american(P) & weapon(W) & nation(N) & hostile(N) & sells(P,N,W) => criminal(P) E W owns(nono,W) & missile(W) V W owns(nono,W) & missile(W) => sells(west,nono,W) V X missile(W) => weapon(W) V X enemy(N,america) => hostile(N) american(west) nation(nono) enemy(nono,america) nation(america) * Em formal normal american(P) & weapon(W) & nation(N) & hostile(N) & sells(P,N,W) => criminal(P) owns(nono,m1) missile(m1) owns(nono,W) & missile(W) => sells(west,nono,W) missile(W) => weapon(W) enemy(N,america) => hostile(N) american(west) nation(nono) enemy(nono,america) nation(america)

West é criminoso? em Prolog * Em lógica de Horn: american(P) & weapon(W) & nation(N) & hostile(N) & sells(P,N,W) => criminal(P) owns(nono,m1) missile(m1) owns(nono,W) & missile(W) => sells(west,nono,W) missile(W) => weapon(W) enemy(N,america) => hostile(N) american(west) nation(nono) enemy(nono,america) nation(america) * Em Prolog: criminal(P) :- american(P), weapon(W), nation(N), hostile(N), sells(P,N,W). owns(nono,m1). missile(m1). sells(west,nono,W) :- owns(nono,W), missile(W). weapon(W) :- missile(W). hostile(N) :- enemy(N,america). american(west). nation(nono). enemy(nono,america). nation(america).

Interpretador Prolog: controle e busca * Aplica regra de resolução: com estratégia linear (sempre tenta unificar ultimo fato a provar com a conclusão de uma cláusula do programa), na ordem de escritura das cláusulas no programa, com encadeamento de regras para trás, busca em profundidade e da esquerda para direita das premissas das cláusulas, e com backtracking sistemático e linear quando a unificação falha, e sem occur-check na unificação. * Estratégia eficiente mas incompleta.

Verificação de ocorrência * Ao contrario da unificação da resolução: unificação de Prolog é sem occur-check, quando chamado com uma variável X e um literal l, instância X com l, sem verificar antes se X ocorre em l. * Junto com a busca em profundidade: faz que Prolog pode entrar em loop com regras recursivas, ex: c(X) :- c(p(X)). gera lista infinita de objetivos: c(p(U)), c(p(p(U))), c(p(p(p(U)))),... cabe ao programador de não escrever tais regras, torna a unificação linear no lugar de quadrática no tamanho dos termos a unificar

West é criminoso? busca criminal(P) :- american(P), weapon(W), nation(N), hostile(N), sells(P,N,W). owns(nono,m1). missile(m1). sells(west,nono,W) :- owns(nono,W), missile(W). weapon(W) :- missile(W). hostile(N) :- enemy(N,america). american(west). nation(nono). enemy(nono,america). nation(america). criminal(west)? <- yes. american(west)? -> yes. weapon(W)? <- W = m1. t missile(W)? -> W = m1. nation(N)? -> N = nono. hostile(nono)? <- yes. t enemy(nono,america)? -> yes. sells(west,nono,m1)? <- yes. t owns(nono,m1)? -> yes. t missile(m1)? -> yes.

West é criminoso? backtracking criminal(P) :- american(P), weapon(W), nation(N), hostile(N), sells(P,N,W). owns(nono,m1). missile(m1). sells(west,nono,W) :- owns(nono,W), missile(W). weapon(W) :- missile(W). hostile(N) :- enemy(N,america). american(west). nation(america). enemy(nono,america). nation(nono). criminal(west)? <- yes. american(west)? -> yes. weapon(W)? <- W = m1. t missile(W)? -> W = m1. nation(N)? -> N = america. hostile(america)? <- no. t enemy(america,america)? -> no. backtrack: nation(N), N \ {america}? -> N = nono. hostile(nono)? <- yes. t enemy(nono,america)? -> yes. sells(west,nono,m1)? <- yes. t owns(nono,m1)? -> yes. t missile(nono,m1)? -> yes.

Prolog devolve a primeira resposta g1(a). g21(a). g3(a). g4(a). g1(b). g21(b). g22(b). g3(b). g(X) :- g1(X), g2(X). g(X) :- g3(X), g4(X). g2(X) :- g21(X), g22(X). $ prolog ?- consult(g.pl). yes ?- g(U). U = b ?- ; U = a ?- ; no ?- halt. $

Forçar o backtracking para obter todas as respostas g1(a). g21(a). g3(a). g4(a). g1(b). g21(b). g22(b). g3(b). g(X) :- g1(X), g2(X). g(X) :- g3(X), g4(X). g2(X) :- g21(X), g22(X). g(U)? <- U = b. * g1(U)? -> U = a. * g2(a)? <- no. g21(a)? -> yes. g22(a)? -> no. * g1(U), U \ {a}? -> U = b. * g2(b)? <- yes. g21(b)? -> yes. g22(b)? -> yes. ; * g1(U), U \ {a,b} ? -> no.

Backtracking em cascatas g1(a). g21(a). g3(a). g4(a). g1(b). g21(b). g22(b). g3(b). g(X) :- g1(X), g2(X). g(X) :- g3(X), g4(X). g2(X) :- g21(X), g22(X). g(U), g \ {g1,g2}? <- U = a. * g3(U)? -> U = a. * g4(a)? -> yes. ; * g3(U), U \ {a}? -> U = b. * g4(b)? -> no. * g3(U), U \ {a,b}? -> no. g(U), g \ {g1,g2 ; g3,g4}? -> no.

Prolog: sintaxe 1 * fato -> fa. (abrev. para Formula Atômica) * regra -> fa0 :- fa1,..., faN. * consulta -> fa1,..., faN. * fa -> pred(termo1,..., termoN) | preop termo1 termo2 | termo1 inop termo2 | termo1 termo2 postop * termo -> constante | variável | fa * constante -> átomos | numeros * pred -> átomo * Ao invés de L1: nenhuma distinção entre predicados e funções ausência da igualdade semântica

Prolog: sintaxe 2 * variável ex: G, Glr, geber-ramalho, 1geber, _glr, _ * átomo ex: g, glr, =>, geber_ramalho, geber1, geber ramalho * número ex: 23 * termos, fatos, regras e consultas sem variáveis: instanciados (ground) ex.: person(bob,40,cs). * termos, fatos e regras com variáveis: universais ex.: pai(X,adao). ancestral(X,A) :- pai(X,P), ancestral(P,A). * consultas com variáveis: existenciais ex.: ? pai(F,P).

Prolog: semântica * Programa Prolog P possui 2 semânticas: semântica declarativa t semântica das formulas de Lp correspondendo as cláusulas de P t 3 abordagens: ¤conjunto mínimo de termos instanciados verificando P (base de Herbrand, model-theoretic) ¤procedimento de verificação de uma consulta (resolução, proof-theoretic) ¤operador de ponto fixo gerando todas as a formulas atômicas conseqüências lógicas de P semântica procedimental t execução de P pelo interpretador Prolog

Estudo de caso: a terrível novela requisitos em Inglês * 1. A soap opera is a TV show whose characters include a husband, a wife and a mailman such that: * 2. the wife and the mailman blackmail each other * 3. everybody is either alcoholic, drug addict or gay * 4. Dick is gay, Jane is alcoholic and Harry is a drug addict * 5. the wife is always an alcoholic and the long-lost sister of her husband * 6. the husband is always called Dick and the lover of the mailman * 7. the long-lost sister of any gay is called either Jane or Cleopatra * 8. Harry is the lover of every gay * 9. Jane blackmails every drug addicted lover of Dick * 10. soap operas are invariably terrible! * 0. Who are the characters of a terrible TV show?

Exercício 1: A terrível novela em L1

Exercício 2: A terrível novela em Prolog

Estudo de caso: o banco de dados acadêmico requisitos em Inglês * 1. Bob is 40 and is the manager of the CS department. 2. His assistants are John and Sally. 3. Marys highest degree is an MS. 4. She works at the CS department and is friend to Bob and Sally. * 5. Every faculty is a midaged person who writes article, makes in the average $50,000 a year and owns a degree of some kind, typically a PhD. * 6. A facultys boss is both a faculty and a manager. * 7. Every person has a name, friends who must be persons, and children who also must be persons. * 8. Every employee is affiliated to some department, has a boss who is also an employee and joint work on reports with other employees. * 9. Every department has a manager who is an employee and assistants who are both employees and students * 10. A boss is an employee who is the manager of another employee of the same department. 11. A joint work is a paper that is written by two faculties * 0a: Who are the midaged employees of the CS department and who are their boss? * 0b: Who published jointly with Mary in the Journal of the ACM? * 0c: Where did Mary published joint work with Phil?

Exercício 3: O banco de dados acadêmico em Prolog

Exercício 4: O banco de dados acadêmico em L1