BUSCA DE SOLUÇÕES EM PROLOG

Documentos relacionados
Linguagem de Programação I

Lógica para computação Professor Marlon Marcon

Origem do PROLOG. Lógica e PROLOG

Universidade Estadual do Oeste do Paraná CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS Colegiado de Informática. Curso de Bacharelado em Informática

Fundamentos de Programação. Diagrama de blocos

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO PROGRAMA DE EDUCAÇÃO TUTORIAL - MATEMÁTICA PROJETO FUNDAMENTOS DE MATEMÁTICA ELEMENTAR

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto

UNIVERSIDADE FEDERAL DA BAHIA ESCOLA POLITÉCNICA DEPARTAMENTO DE ENGENHARIA QUÍMICA ENG 008 Fenômenos de Transporte I A Profª Fátima Lopes

UM JOGO BINOMIAL 1. INTRODUÇÃO

Informática I. Aula Aula 19-20/06/06 1

Inteligência Artificial

Método de ordenação - objetivos:

Resolução da Prova de Raciocínio Lógico do MPOG/ENAP de 2015, aplicada em 30/08/2015.

Aula 11: Desvios e Laços

COMO PESQUISAR. Formulário de Pesquisa por Bases de Dados, Palavras e Pesquisa Avançada

Prof. Daniela Barreiro Claro

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE EDUCAÇÃO. Elaborado por Gildenir Carolino Santos Grupo de Pesquisa LANTEC

PARECER Nº, DE RELATORA: Senadora ADA MELLO I RELATÓRIO

Série Rações Semanais Xpath e XSLT Rogério Araújo

Biblioteca Escolar da EB2 Dr. Manuel de Oliveira Perpétua. Como pesquisar na internet

ECONOMIA DA EDUCAÇÃO Módulo 1 Princípios de Economia

Unidade Regras complementares das citações

Inteligência Competitiva (IC)

Linguagem de Programação

Análise de Requisitos

MÓDULO 2 Topologias de Redes

Pós-Graduação em Computação Distribuída e Ubíqua

Lista de Exercícios 5: Soluções Teoria dos Conjuntos

CLÁUDIA REGINA LUIZ PROJETO PARA CRIAÇÃO DA REVISTA CIENTÍFICA ON-LINE: Biblioteconomia e Informação

Este Procedimento Operacional Padrão define as etapas necessárias para o processo de inventário em um estoque, filial ou loja no APLWeb.

Linguagem Lógica Prolog

Fundamentos de Bancos de Dados 3 a Prova Caderno de Questões

Exemplos. Jogo dos oito :-) Mundo dos blocos (ex: torre de Hanoi) Poblema das rainhas. Criptoaritmética. Missionários e Canibais.

CRIAÇÃO DE TABELAS NO ACCESS. Criação de Tabelas no Access

Notas de aula de Lógica para Ciência da Computação. Aula 11, 2012/2

Banco de Dados I. Prof. Edson Thizon

RESENHAS REVIEWS RESPONSABILIDADE CIVIL DA ATIVIDADE MÉDICA NO CÓDIGO DE DEFESA DO CONSUMIDOR

ENG1000 Introdução à Engenharia

Processamento de Dados aplicado à Geociências. AULA 1: Introdução à Arquitetura de Computadores

M =C J, fórmula do montante

Aula 5. Uma partícula evolui na reta. A trajetória é uma função que dá a sua posição em função do tempo:

MODELO SUGERIDO PARA PROJETO DE PESQUISA

EDITAL PARA INSCRIÇÃO DE TRABALHOS NO III CURSO DE EXTENSÃO SOBRE O TRABALHO DO ASSISTENTE SOCIAL NA EDUCAÇÃO DO IFMG

2 Conceitos Básicos. onde essa matriz expressa a aproximação linear local do campo. Definição 2.2 O campo vetorial v gera um fluxo φ : U R 2 R

Teste de hipótese em modelos normais lineares: ANOVA

Conteúdo programático

[RESOLUÇÃO] Economia I; 2012/2013 (2º semestre) Prova da Época Recurso 3 de Julho de 2013

Tratamento e Análise de Dados e Informações (TADI)

PESQUISA OPERACIONAL -PROGRAMAÇÃO LINEAR. Prof. Angelo Augusto Frozza, M.Sc.

Módulo de Contrato Agora OS

A opinião do autor não reflete, necessariamente, o entendimento da Comissão de Valores Mobiliários.

Cap. II EVENTOS MUTUAMENTE EXCLUSIVOS E EVENTOS NÃO- EXCLUSIVOS

CIBERESPAÇO E O ENSINO: ANÁLISE DAS REDES SOCIAIS NO ENSINO FUNDAMENTAL II NA ESCOLA ESTADUAL PROFESSOR VIANA

Ondas EM no Espaço Livre (Vácuo)

Obs: grifos (verde): grifo sobre minhas observações Grifos (cinza): grifo sobre observações relevantes do autor

Conceito Básicos de Programação com Objetos Distribuídos. Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 1

Código ANBIMA de Regulação e Melhores Práticas. Novo Mercado de. Renda Fixa

Programação de Computadores I. Linguagem C Função

Universidade Federal de Goiás Campus Catalão Departamento de Matemática

Comandos de Eletropneumática Exercícios Comentados para Elaboração, Montagem e Ensaios

Teoria de Jogos. Algoritmo Minimax e Alfa-Beta AED

mercado de cartões de crédito, envolvendo um histórico desde o surgimento do produto, os agentes envolvidos e a forma de operação do produto, a

Mobilidade: implicações económicas. Prof. João Confraria ( UCP )

MANUAL DO AVALIADOR O que é uma Feira de Ciência? Por que avaliar os trabalhos? Como os avaliadores devem proceder?

Unidade 1: O Computador

Práticas de linguagem: textos e contextos da escrita na educação infantil

Introdução à orientação a objetos

AULA 07 Distribuições Discretas de Probabilidade

EGEA ESAPL - IPVC. Resolução de Problemas de Programação Linear, com recurso ao Excel

Métricas de Software

Álgebra Linear Aplicada à Compressão de Imagens. Universidade de Lisboa Instituto Superior Técnico. Mestrado em Engenharia Aeroespacial

Manual Remessa Bancária

Estruturas de Repetição

Função. Adição e subtração de arcos Duplicação de arcos

CONSELHO SUPERIOR DA MAGISTRATURA

2. ALGORITMOS. Unesp Campus de Guaratinguetá

Segurança e Preservação de Dados

Disciplina: Trabalho de Conclusão de Curso

FACULDADE MULTIVIX CURSO DE ENGENHARIA DE PRODUÇÃO 2º PERÍODO MARIANA DE OLIVEIRA BERGAMIN MONIQUE MATIELLO GOMES THANIELE ALMEIDA ALVES

Sistemas Distribuídos

Manual SAGe Versão 1.2

Eleição de Líder. Alysson Neves Bessani Departamento de Informática Faculdade de Ciências da Universidade de Lisboa

RELATÓRIO SIMPLIFICADO FINAL PSICOLOGIA GENÉTICA DE JEAN PIAGET 2ª UNIDADE. Instrução Geral ao Relatório:

Dados internacionais de catalogação Biblioteca Curt Nimuendajú

QUESTIONÁRIO SATISFAÇÃO

Se inicialmente, o tanque estava com 100 litros, pode-se afirmar que ao final do dia o mesmo conterá.

BCC402 Algoritmos e Programação Avançada. Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Tóffolo 2011/1

MINISTÉRIO DA EDUCAÇÃO FUNDO NACIONAL DE DESENVOLVIMENTO DA EDUCAÇÃO DIRETORIA DE ASSISTÊNCIA A PROGRAMAS ESPECIAIS

Termo genérico que se aplica a vários tipos de diagramas que enfatizam interações de objetos.

* Lógica Proposicional Formas de Argumento

FUNDAÇÃO EDUCACIONAL DE ANDRADINA NOME DO(S) AUTOR(ES) EM ORDEM ALFABÉTICA TÍTULO DO TRABALHO: SUBTÍTULO DO TRABALHO, SE HOUVER

Programação de Aulas 1º Ano 3º Bimestre De 07/08 a 20/09

Sejam P1(x1,y1) e P2(x2,y2) pontos pertencentes ao plano. A equação da reta pode ser expressa como: ou

2 Workshop processamento de artigos em serviços de saúde Recolhimento de artigos esterilizados: é possível evitar?

UNIVERSIDADE DO TOCANTINS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PRÁTICA EM PROGRAMAÇÃO DE SISTEMAS

A 'BC' e, com uma régua, obteve estas medidas:

PROJETO DE REDES Prof. José Maurício S. Pinheiro UniFOA

Exemplo COMO FAZER UM TRABALHO ESCOLAR O QUE DEVE CONSTAR EM UM TRABALHO ESCOLAR? Um Trabalho Escolar que se preze, de nível fundamental, deve conter:

Transcrição:

PR UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ BUSCA DE SOLUÇÕES EM PROLOG Resolução em PROLOG: Unificação e substituição 1

UNIFICAÇÃO EM PROLOG HISTÓRICO 2

HISTÓRIA A PARTIR DE 1950 1958 forma clausal: simplificação do cálculo de predicados emprega cláusulas que são disjunções de literais pode haver cláusula vazia 1960 Dag Prawitz propôs um novo tipo de operação sobre objetos que,mais tarde, veio a ser conhecida por unificação 1965 a programação em lógica se torna possível com o desenvolvimento do Princípio da Resolução por J.A. Robison (utilizado em PROLOG). 1969 Cordell Green princípio da resolução + programação de computadores: mecanismo de extração de respostas 3

HISTÓRIA A PARTIR DE 1950 1972 primeiro interpretador experimental num grupo liderado por Alain Colmerauer na Universidade de Aix-Marseille (PROLOG Programmation en Logique) 1974 Robert Kowalski deu uma interpretação procedimental da lógica estabelecendo as condições que nos permitem entendê-la como uma linguagem de programação 1977 PROLOG de Edimburgo (linguagem de referência): David H. D. Warren, Luís Moniz Pereira e outros pesquisadores da Universidade de Edimburgo Fonte: PALAZZO, L.A.M. Introdução a Programação PROLOG, 2006. 4

INTERPRETAÇÃO PROCEDIMENTAL 5

INTERPRETAÇÃO PROCEDIMENTAL DA LÓGICA 6

NEGAÇÃO POR FALHA 7

CLOSED WORLD ASSUMPTION NEGAÇÃO POR FALHA tudo que não está declarado na base de conhecimentos ou que não é derivável é considerado falso por PROLOG. Esta falsidade deve ser lida como Assume-se que tubarão não é mamífero porque PROLOG não conseguiu demonstrar (nem sempre é correto ex. mamifero(raposa). ex075-00-closed-world-assumption.pl % Ao fazer a query %?- mamifero(tubarao). % false % % porque no mundo fechado deste programa, PROLOG nao % consegue demonstrar que raposa é mamífero. mamifero(gato). mamifero(cao). mamifero(baleia). 8

NEGAÇÃO POR FALHA Operador \+ \+ objetivo é satisfeito quando PROLOG não consegue demonstrar o objetivo negação por falha. ex080-00-negacaoporfalha.pl casado(pedro, maria). casado(joao, ana). casado(marcelo, raimunda). solteiro(x) :- \+ casado(x, _), \+ casado(_, X).?- solteiro(juca) responde true?- solteiro(x) responde false; não consegue dar nenhum exemplo de solteiro 9

UNIFICAÇÃO 10

UNIFICAÇÃO: CONCEITO Unificação Operação que ocorre entre dois termos PROLOG e que tenta torná-los idênticos por meio da instanciação Termo Sintaticamente todos os objetos são considerados termos. Assim, o menor conjunto de elementos que satisfaz: Toda constante é um termo Toda variável é um termo Se t1, t2,..., tn são termos e f é um átomo, então f(t1, t2,..., tn) também é um termo (f é um símbolo funcional n-ário ou um termo funcional *termos a partir daqui designam qualquer tipo de elemento (inclusive compostos como functors e listas) isto é diferente do que foi visto na definição da sintaxe de LPO, porém, note que a definição acima é compatível com o que foi visto anteriormente. 11

OPERAÇÃO DE UNIFICAÇÃO Dois termos unificam se são idênticos ou se após a substituição de suas variáveis por objetos, se tornam idênticos Exemplo data(d, M, 1994) e data(x, março, A) unificam se D = X M = março 1994 = A Contra-exemplos data(d, M, 1994) e data(x, Y, 94) não unificam 1994 <> 94 data(x, Y, Z) e ponto(x, Y, Z) data <> ponto 12

UNIFICAÇÃO MAIS GERAL?-data(D, M, 1994) = data(x, março, A) Há várias unificações possíveis... D=X, M=março, 1994=A (menos comprometida) D=1, X=1, M=março, 1994=A D=primeiro, X=primeiro, março, 1994=A Instanciações mais gerais são menos comprometidas Facilitam unificações posteriores! PROLOG utiliza instanciações deste tipo. 13

REGRAS DE UNIFICAÇÃO Se S e T são constantes então S e T unificam somente se ambos representam o mesmo objeto; Se S é uma variável e T é qualquer coisa, então S e T unificam com S instanciada com T; Se S e T são estruturas, unificam somente se: (1) S e T tem o mesmo functor principal, e (2) todos os seus componentes correspondentes também unificam. 14

PROCESSO DE UNIFICAÇÃO Exemplo de unificação com functor triângulo(ponto(1, 1), A, ponto(2, 3)) triângulo(x, ponto(4, Y), ponto(2, Z)) 1 Os termos unificam pois NESTA ORDEM: 1. triângulo = triângulo 2. ponto(1,1) = X 3. A = ponto(4, Y) 4. ponto(2, 3) = ponto(2, Z) 5. 3 = Z 15

UNIFICAÇÃO: UTILIDADE PROLOG pode ser interpretado declarativa, procedimental e operacionalmente. a utilidade da unificação passa por estes conceitos. 16

UNIFICAÇÃO: UTILIDADE Semântica declarativa de uma cláusula P :- Q, R a leitura declarativa é: P segue de Q e R Semântica procedimental de uma cláusula Para solucionar o problema P (ou atingir o objetivo P) primeiramente solucione o subproblema Q (ou sub-objetivo Q) depois solucione o subproblema R (ou sub-objetivo R) 17

UNIFICAÇÃO: UTILIDADE A semântica declarativa diz que um objetivo G é verdadeiro sse: há uma cláusula C no programa e há uma instância I da cláusula C tal que a cabeça de I é idêntica a G todos os objetivos no corpo de I são verdadeiros (satisfazíveis) 18

UNIFICAÇÃO: UTILIDADE Exemplo, dadas as cláusulas: 1. temfilho(x, Y) :- progenitor(x, Y). 2. progenitor(joao, maria).?temfilho(joao, Z) objetivo G a ser provado Objetivo G unifica com a cabeça de C1 temfilho(joao, Z) :- progenitor(joao, Z) instância de C1 pela unificação X/joao e Y/Z progenitor(joao, Z) é um novo objetivo Progenitor(joao, maria) unifica com progenitor(joao, Z) pela substituição de Z/maria, logo G é verdadeiro quando Z/Maria 19

UNIFICAÇÃO: UTILIDADE Semântica Operacional 20

BUSCA POR SOLUÇÕES 21

BUSCA POR SOLUÇÕES EM PROLOG Na busca de solução aos problemas PROLOG utiliza uma árvore de busca (search tree) explorando o corpo das cláusulas em profundidade. Dado um objetivo G procura uma cláusula cuja cabeça unifique com G por uma substituição θ As partes do corpo da cláusula passam a ser novos objetivos para a primeira subcláusula do corpo, procura uma cláusula... Por isto, a estratégia de busca é DEPTH-FIRST 22

backtracking base de conhecimentos θ = substituição 1. temfilho(x,y) :- progenitor(x,y). 2. progenitor(joao,maria). 3. progenitor(joao,ana).?temfilho(joao,y). objetivo G1 a ser provado EXEMPLO DE ÁRVORE DE BUSCA?temFilho(joao,Y) unifica com cláus. 1 θ=x/joao temfilho(joao, Y) :- progenitor(joao, Y) novo G2 a ser provado?progeniror(joao, Y) unifica com cláus. 2 θ=y/maria progenitor(joao, maria) Como é um fato, para a busca G2 foi provado?progenitor(joao, Y) unifica com cláus. 3 θ=y/ana progenitor(joao, ana) Como é um fato, para a busca G2 foi provado com uma solução alternativa θ=y/maria maria é uma substituição que satisfaz G2 e G1. θ=y/ana ana é uma substituição que satisfaz G2 e G1. 23

EXEMPLO DE ÁRVORE DE BUSCA?temFilho(joao,Y). Claus. 1: temfilho(x,y) θ=x/joao Claus. 2: progenitor(joao, maria) θ=y/maria progenitor(joao, Y) Claus. 3: progenitor(joao, maria) θ=y/ana progenitor(joao, maria) progenitor(joao, ana) backtracking Exercício: implemente a KB do slide anterior em PROLOG, ligue o trace e compare com a árvore de busca acima. Explique cada passo mostrado no trace (ex140-00-arvoredebusca.pl). 24

ESTRATÉGIA DE BUSCA DE SOLUÇÃO Assuma que o objetivo a provar (goal) é:? G1, G2,..., Gn O motor de inferência pesquisa a base de conhecimento (de cima para baixo) até encontrar uma regra cuja cabeça unifique com G1. Essa unificação produz uma substituição (o unificador mais geral ) θ Se C :- P1,..., Pm é a cláusula encontrada. θ é tal que C θ = G1 θ. O novo objetivo a provar é agora? P1θ,..., Pmθ, G2θ,..., Gnθ Se a cláusula encontrada é um fato F. θ é tal que F θ = G1 θ. O novo objectivo a provar é agora? G2θ,..., Gnθ A prova termina quando já não há mais nada a provar (o goal é vazio). O interpretador responde à questão inicial indicando a substituição a que têm que ser sujeitas as variáveis presentes na questão inicial, para produzir seção extraída de Maria J. Frade, Univ. do Minho 25