Unificação PROGRAMAÇÃO EM LÓGICA. Unificação. Unificação. Unificação. Unificação. Linguagem Prolog Parte III

Tamanho: px
Começar a partir da página:

Download "Unificação PROGRAMAÇÃO EM LÓGICA. Unificação. Unificação. Unificação. Unificação. Linguagem Prolog Parte III"

Transcrição

1 PROGRAMAÇÃO EM LÓGICA CIÊNCIA DA COMPUTAÇÃO FACAPE Faculdade de Ciências Aplicadas e Sociais de Petrolina Linguagem Prolog Parte III Prof. Sergio Ribeiro Adaptado do material da Profª Elaine Ribeiro Universidade Federal de Uberlândia (UFU) É o processo em que, dados dois termos como entrada, se verifica se eles se casam. Dados dois termos, diz-se que eles unificam se: eles são idênticos, ou as variáveis de ambos os termos podem ser instanciadas com objetos de maneira que, após a substituição das variáveis por esses objetos, os termos se tornam idênticos. 2 Isto significa que: maria e maria se unificam. 42 e 42 se unificam. mulher(maria) e mulher(maria) se unificam. Isto também significa que: vicente e maria não se unificam. mulher(maria) e mulher(joana) não se unificam. 3 Os termos abaixo se unificam? maria e X mulher(z) e mulher(maria) ama(maria,x) e ama(x,vicente) X=maria, X=vicente. Por quê? Após trabalhar na primeira meta, Prolog instanciou a variável X com maria, e assim ele não pode mais unificá-la com vicente. Logo, a segunda meta falha. 4 Se os termos não unificam, dizemos que o processo falha. Se eles unificam, então o processo é bem-sucedido. Exemplo: data(d, M, 1994) e data(x, março, A) unificam data(d, M, 1994) e data(x, Y, 94) não unificam 5 Regras que determinam se dois termos S e T unificam: 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. Inversamente, se T é uma variável, então T é instanciada com S. Se S e T são estruturas, então unificam somente se: S e T tem o mesmo functor principal, e todos os seus componentes correspondentes também unificam. A instanciação resultante é determinada pela unificação dos componentes. Exemplo: triângulo(ponto(1, 1), A, ponto(2, 3)) e triângulo(x, ponto(4, Y), ponto(2, Z))? 6 1

2 O operador de unificação é representado por = (=/2). Este operador não tem a mesma semântica da igualdade aritmética e atua tentando unificar os termos existentes à sua direita e esquerda. Por exemplo, a operação ponto(x,2) = ponto(3,y) resulta bem sucedida com X instanciada com 3 e Y com 2. Já as operações ponto(x,2) = ponto(y,3) e k1(z) = k2(a) não são bem sucedidas, não ocorrendo instanciação. Por quê? 7 Exemplos com termos complexos: k(s(g),y) = k(x,t(k)). X=s(g) Y=t(k) k(s(g),t(k)) = k(x,t(y)). X=s(g) Y=k 8 Base de Conhecimento 1 Base de Conhecimento 1 tocaguitarra(joana). festa. tocaguitarra(joana). festa. tocaguitarra(joana). tocaguitarra(maria). tatuada(joana). ERROR: predicate tatuada/1 not defined. festa :: Cláusulas escuta_musica(iolanda) :- tocaguitarra(maria) :- escuta_musica(iolanda) :- tocaguitarra(maria) :- tocaguitarra(maria). tocaguitarra(iolanda). Existem cinco cláusulas nesta base de conhecimento: dois fatos e três regras. O final de uma cláusula é marcado com um ponto final

3 :: Predicados Base de Conhecimento 3 escuta_musica(iolanda) :- tocaguitarra(maria) :- tocaguitarra(vicente) :- escuta_musica(vicente), tocaguitarra(bruno) :- feliz(bruno). tocaguitarra(bruno) :- Existem três predicados nesta base de conhecimento: feliz, escuta_musica e tocaguitarra. A vírgula "," expressa conjunção em Prolog Base de Conhecimento 3 :: Expressando Disjunção Base de Conhecimento 4 :: Solicitando Alternativas tocaguitarra(vicente) :- escuta_musica(vicente), tocaguitarra(bruno) :- feliz(bruno). tocaguitarra(bruno) :- tocaguitarra(vicente) :- escuta_musica(vicente), tocaguitarra(bruno) :- feliz(bruno); ama(vicente, maria). ama(marcelo, maria). mulher(x). X=maria; X=joana; X=iolanda Base de Conhecimento 4 :: Consulta Composta Base de Conhecimento 5 ama(vicente, maria). ama(marcelo, maria). ama(marcelo,x), mulher(x). X=maria. ama(abobrinha,x), mulher(x). ama(vicente,maria). ama(marcelo,maria). tem_ciumes(x,y) :- ama(x,z), ama(y,z). tem_ciumes(marcelo,w). W=vicente; W=marcelo;

4 Base de Conhecimento 6 Interpretações Semânticas grande(urso). % Cláusula 1 grande(elefante). % Cláusula 2 pequeno(gato). % Cláusula 3 marrom(urso). % Cláusula 4 preto(gato). % Cláusula 5 cinza(elefante). % Cláusula 6 escuro(z) :- % Cláusula 7 preto(z). escuro(z) :- % Cláusula 8 marrom(z). Qual o resultado da consulta: escuro(x), grande(x). X = urso 19 Declarativa: Não depende da ordem das cláusulas nem da ordem dos objetivos dentro das cláusulas. Procedimental: Depende da ordem dos objetivos e cláusulas. Aqui a ordem pode afetar a eficiência de um programa. Operacional: Representa um procedimento para satisfazer a lista de objetivos no contexto de um dado programa. A saída desse procedimento é o valor-verdade da lista de objetivos com a respectiva instanciação de sua variáveis. 20 Execução do Prolog Busca pela Prova programa executor objetivos Agora que conhecemos a unificação, começaremos a aprender como Prolog busca em base de conhecimento para ver se uma consulta é satisfeita. Em outras palavras: nós começaremos a aprender sobre a busca pela prova. sucesso/falha instanciações Exemplo 1: árvore de busca Exemplo 2: árvore de busca base de dados f(a). f(b). g(a). g(b). h(b). k(x) :- f(x), g(x), h(x). k(y). Y=b. consulta K(Y). f(y), g(y), h(y). g(a), h(a). g(b), h(b). h(a). h(b). 23 base de dados consulta ama(vicente,maria). ama(marcelo,maria). tem_ciume(a,b) :- ama(a,c), ama(b,c). tem_ciume(x,y). X=vicente Y=vicente; X=vicente Y=marcelo; X=marcelo Y=vicente; X=marcelo Y=marcelo. ama(b,maria). B=vicente A=vicente C=maria tem_ciume(x,y). X=A Y=B ama(a,c), ama(b,c). B=marcelo ama(b,maria). B=vicente A=marcelo C=maria B=marcelo 24 4

5 Referência Luis, A. M. Palazzo, Introdução à Programação Prolog, Educat, Slides da Profa Solange ICMC-USP Inteligência Artificial. 25 5

Sintaxe e Semântica de Programas Prolog

Sintaxe e Semântica de Programas Prolog Sintaxe e Semântica de Programas Prolog Thiago A. S. Pardo Solange Rezende Inteligência Artificial 1 Objetos em Prolog Objetos (Termos) Objetos Simples Estruturas Constantes (Atômicos) Variáveis Átomos

Leia mais

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

Aula 2 Programação Lógica Sintaxe Prolog. Profa. Elaine Faria UFU -2014 Aula 2 Programação Lógica Sintaxe Prolog Profa. Elaine Faria UFU -2014 Créditos O material a seguir consiste de adaptações e extensões dos originais gentilmente cedidos pelo Prof. Alexsandro Santos Soares

Leia mais

BUSCA DE SOLUÇÕES EM PROLOG

BUSCA DE SOLUÇÕES EM PROLOG 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:

Leia mais

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

Programação Lógica PROLOG. Programação Lógica: Prolog Programação Lógica PROLOG PROGRAMAÇÃO LÓGICA COM PROLOG 1 Programação Lógica: Prolog Programação Lógica: um estilo diferente de programar, muito diferente das linguagens de programação convencionais como

Leia mais

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

Programação Lógica. A Linguagem Prolog. Paulo Henrique Ribeiro Gabriel Faculdade de Computação Universidade Federal de Uberlândia Programação Lógica A Linguagem Prolog Paulo Henrique Ribeiro Gabriel phrg@ufu.br Faculdade de Computação Universidade Federal de Uberlândia 21 de agosto de 2015 Paulo H. R. Gabriel (FACOM/UFU) Programação

Leia mais

A linguagem Prolog. Sintaxe, terminologia e semântica informal: Os objectos de dados em Prolog são chamados termos.

A linguagem Prolog. Sintaxe, terminologia e semântica informal: Os objectos de dados em Prolog são chamados termos. A linguagem Prolog Sintaxe, terminologia e semântica informal: Os objectos de dados em Prolog são chamados termos. Um termo ou é uma constante, ou uma variável ou um termo composto. As constantes incluem

Leia mais

Sintaxe e Semântica de Programas Prolog

Sintaxe e Semântica de Programas Prolog Inteligência Artificial Sintaxe e Semântica de Programas Prolog José Augusto Baranauskas Departamento de Física e Matemática FFCLRP-USP Sala 228 Bloco P2 Fone (16) 602-4439 Esta aula trata da sintaxe e

Leia mais

Variáveis o nome de uma variável pode ser qualquer sequência de caracteres alfanuméricos que começa com uma letra maiúscula ou com um underscore (_).

Variáveis o nome de uma variável pode ser qualquer sequência de caracteres alfanuméricos que começa com uma letra maiúscula ou com um underscore (_). Figura: Capa do Livro Hamburger, H., Richards, D. Logic and Language Models for Computer Science, Prentice Hall. Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado

Leia mais

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

Programação Lógica. Controle (Bactracking, Cut, Fail) Paulo Henrique Ribeiro Gabriel Programação Lógica Controle (Bactracking, Cut, Fail) Paulo Henrique Ribeiro Gabriel phrg@ufu.br Faculdade de Computação Universidade Federal de Uberlândia 7 de outubro de 2015 Paulo H. R. Gabriel (FACOM/UFU)

Leia mais

Recursão PROGRAMAÇÃO EM LÓGICA. Recursão. Sonho Recursivo. Recursão. Recursão. Linguagem Prolog Parte IV

Recursão PROGRAMAÇÃO EM LÓGICA. Recursão. Sonho Recursivo. Recursão. Recursão. Linguagem Prolog Parte IV PROGRAMAÇÃO EM LÓGICA Recursão CIÊNCIA DA COMPUTAÇÃO FACAPE Faculdade de Ciências Aplicadas e Sociais de Petrolina Linguagem Prolog Parte IV Usado desde a arte (em figuras, telas, etc) como também em Matemática

Leia mais

Predicados extra lógicos. Prof. Elaine Faria e Hiran Nonato Programação Lógica UFU 2012

Predicados extra lógicos. Prof. Elaine Faria e Hiran Nonato Programação Lógica UFU 2012 Predicados extra lógicos Prof. Elaine Faria e Hiran Nonato Programação Lógica UFU 2012 Créditos O material a seguir consiste de adaptações e extensões dos originais gentilmente cedidos pelo Prof. Alexsandro

Leia mais

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

Inteligência Artificial. Prolog. Aula 2 Introdução (cont.) Universidade Estadual do Oeste do Paraná Curso de Bacharelado em Ciência da Computação http://www.inf.unioeste.br/~claudia/ia2017.html Inteligência Artificial Prolog Aula 2 Introdução (cont.) Características

Leia mais

Fundamentos. Paradigma de Programação Lógico. Marco A L Barbosa

Fundamentos. Paradigma de Programação Lógico. Marco A L Barbosa Fundamentos Paradigma de Programação Lógico Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. Conteúdo Visão mais detalhada

Leia mais

PROGRAMAÇÃO EM LÓGICA

PROGRAMAÇÃO EM LÓGICA PROGRAMAÇÃO EM LÓGICA CIÊNCIA DA COMPUTAÇÃO FACAPE Faculdade de Ciências Aplicadas e Sociais de Petrolina Linguagem Prolog Parte II Prof. Sergio Ribeiro Adaptado do material de: Prof José Augusto Universidade

Leia mais

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

Objetivo PROGRAMAÇÃO EM LÓGICA. Conteúdo. Referências Bibliográficas. Introdução. Introdução. Linguagem Prolog Parte I PROGRAMAÇÃO EM LÓGICA Objetivo CIÊNCIA DA COMPUTAÇÃO FACAPE Faculdade de Ciências Aplicadas e Sociais de Petrolina Linguagem Prolog Parte I Prof. Sergio Ribeiro Adaptado do material de: Profª Elaine Ribeiro

Leia mais

Linguagens Lógicas. Aluno: Victor Rocha

Linguagens Lógicas. Aluno: Victor Rocha Linguagens Lógicas Aluno: Victor Rocha Roteiro Introdução Cálculo de Predicados Proposições Conectores Lógicos Variáveis Tipos de Cláusulas fatos regras Banco de Dados Prolog Fatos em Prolog Questões Unificação

Leia mais

UNIDADE ACADÊMICA: Faculdade de

UNIDADE ACADÊMICA: Faculdade de UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE COMPUTAÇÃO BACHARELADO EM SISTEMAS DE INFORMAÇÃO PLANO DE DISCIPLINA DISCIPLINA: Programação Lógica ( X ) SEMESTRAL - ( ) ANUAL CÓDIGO: GSI010 PERÍODO: 2

Leia mais

Eugénio Oliveira Outros docentes da cadeira:

Eugénio Oliveira  Outros docentes da cadeira: eco@fe.up.pt www.fe.up.pt/~eco.html Outros docentes da cadeira: Daniel Moura- T e P dcm@fe.up.pt Rui Gomes- P rjgomes@fe.up.pt 1 Objectivos Adquirir familiaridade com os paradigmas da, Programação com

Leia mais

Prolog. MATA56 - Paradigmas de Linguagens de Programação, UFBA, Prof. Rodrigo Rocha Prolog. Iniciando.

Prolog. MATA56 - Paradigmas de Linguagens de Programação, UFBA, Prof. Rodrigo Rocha Prolog. Iniciando. Prolog MATA56 - Paradigmas de Linguagens de Programação, UFBA, 2016.1. Prof. Rodrigo Rocha (rodrigo@dcc.ufba.br) Baseada na lógica de primeira ordem (lógica de predicados) Concebida na década de 1970

Leia mais

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

[B&A] Computação na Lógica de Predicados [B&A] Computação na Lógica de Predicados Soluções dos Exercícios 1. Transforme as seguintes fbf s para a forma normal prenex, elimine os quantificadores e transforme-as para a forma normal clausal. (a)

Leia mais

Linguagens Lógicas. Alunos: Josiane Novais Cláudio Moisés

Linguagens Lógicas. Alunos: Josiane Novais Cláudio Moisés Linguagens Lógicas Alunos: Josiane Novais Cláudio Moisés Declarativos em vez de baseados em procedimentos Sintaxe diferente das linguagens imperativas e funcionais. Semântica é pouco semelhante a linguagem

Leia mais

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

SCC Capítulo 5 Representação de Conhecimento através do Prolog SCC-630 - Capítulo 5 Representação de Conhecimento através do Prolog João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São

Leia mais

Conferência Predicados de corte e falha

Conferência Predicados de corte e falha Inteligência Artificial Conferência Predicados de corte e falha O Docente: MSc. Angel Alberto Vazquez Sánchez Objetivo Descreva como funcionam os predicados "!" E "fail". Use os predicados de corte e falha

Leia mais

Prof. A. G. Silva. 24 de agosto de Prof. A. G. Silva Programação em Lógica 24 de agosto de / 1

Prof. A. G. Silva. 24 de agosto de Prof. A. G. Silva Programação em Lógica 24 de agosto de / 1 Programação em Lógica Prof. A. G. Silva 24 de agosto de 2017 Prof. A. G. Silva Programação em Lógica 24 de agosto de 2017 1 / 1 Termos Referem-se a todas as construções sintáticas da linguagem Um termo

Leia mais

Controle de Retrocesso. Programação Lógica. Controle de Retrocesso. Controle de Retrocesso

Controle de Retrocesso. Programação Lógica. Controle de Retrocesso. Controle de Retrocesso Programação Lógica Prolog: controle de retrocesso, predicado especial corte (!), verificação de tipos, exemplos O retrocesso (backtracking) é um processo pelo qual todas as alternativas de solução para

Leia mais

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de Exercícios de Programação Lógica.

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de Exercícios de Programação Lógica. Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de Exercícios de Programação Lógica Conceitos Básicos Dica: Resolva todos os exercícios no papel e, somente quando estiverem

Leia mais

03/04/2016 LÓGICA MATEMÁTICA. Prof. Esp. Fabiano Taguchi. Introdução ao Prolog

03/04/2016 LÓGICA MATEMÁTICA. Prof. Esp. Fabiano Taguchi.  Introdução ao Prolog LÓGICA MATEMÁTICA Prof. Esp. Fabiano Taguchi fabianotaguchi@gmail.com http://fabianotaguchi.wordpress.com Introdução ao Prolog 1 PROLOG PROgramming in LOGic Linguagem utilizada para resolver problemas

Leia mais

Faculdade de Informática PUCRS Lógica para Computação Lista de Exercícios Sintaxe e Semântica da Lógica de Predicados Prof.

Faculdade de Informática PUCRS Lógica para Computação Lista de Exercícios Sintaxe e Semântica da Lógica de Predicados Prof. Faculdade de Informática PUCRS Lógica para Computação Lista de Exercícios Sintaxe e Semântica da Lógica de Predicados Prof. Alfio Martini 1. Seja OP = {{d}, {f, g}, Ar F }, onde d é uma constante, Ar F

Leia mais

Introdução à Programação em Prolog

Introdução à Programação em Prolog Introdução à Programação em Prolog Thiago A. S. Pardo Solange Rezende Exercício em duplas Introdução (1 de 4) Escrever um programa completo em C que armazene quem gosta de quem e que responda sim ou não

Leia mais

GSI010 - Programação Lógica Predicados extra-lógicos

GSI010 - Programação Lógica Predicados extra-lógicos GSI00 - Programação Lógica Predicados extra-lógicos Aula de hoje Predicados extra-lógicos Operações com listas Operações com as bases de fatos Predicados extra-lógicos Definição Predicado para trabalhar

Leia mais

Capítulo 3 Lógica de Primeira Ordem

Capítulo 3 Lógica de Primeira Ordem Capítulo 3 Lógica de Primeira Ordem Lógica para Programação LEIC - Tagus Park 1 o Semestre, Ano Lectivo 2007/08 c Inês Lynce and Luísa Coheur Bibliografia Baseados nos slides de Andrew Rice, Universidade

Leia mais

Capítulo 3 Lógica de Primeira Ordem

Capítulo 3 Lógica de Primeira Ordem Capítulo 3 Lógica de Primeira Ordem Lógica para Programação LEIC - Tagus Park 1 o Semestre, Ano Lectivo 2007/08 c Inês Lynce and Luísa Coheur Bibliografia Martins J.P., Lógica para Programação, Capítulo

Leia mais

SCC Capítulo 2 Lógica de Predicados

SCC Capítulo 2 Lógica de Predicados SCC-630 - Capítulo 2 Lógica de Predicados João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br/~joaoluis

Leia mais

Retrocesso e corte. Paradigma de Programação Lógico. Marco A L Barbosa

Retrocesso e corte. Paradigma de Programação Lógico. Marco A L Barbosa Retrocesso e corte Paradigma de Programação Lógico Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. Conteúdo Retrocesso

Leia mais

3 Estabilidade dos Difeomorfismos Morse-Smale

3 Estabilidade dos Difeomorfismos Morse-Smale 3 Estabilidade dos Difeomorfismos Morse-Smale No último capítulo foi apresentado o nosso objeto de estudo (os difeomorfismos Morse-Smale) e a propriedade que estamos interessados em observar (Estabilidade

Leia mais

Paradigmas de Linguagens de Programação. Linguagens de Programação Lógicas

Paradigmas de Linguagens de Programação. Linguagens de Programação Lógicas Linguagens de Programação Lógicas Cristiano Lehrer Introdução Uma metodologia de programação diferente. Expressar programas na forma de lógica simbólica e a utilização de inferência lógica para produzir

Leia mais

Linguagens Formais e Autômatos (LFA)

Linguagens Formais e Autômatos (LFA) Linguagens Formais e Autômatos (LFA) Aula de 16/09/2013 Conversões e Transformações 1 Conversões de Gramáticas LR em LL e vice-versa Qual é a ideia? S S a a a = a b c b c ε ε a a Seja GRD uma gramática

Leia mais

Capítulo 3 Lógica de Primeira Ordem

Capítulo 3 Lógica de Primeira Ordem Capítulo 3 Lógica de Primeira Ordem Lógica para Programação LEIC - Tagus Park 1 o Semestre, Ano Lectivo 2007/08 c Inês Lynce and Luísa Coheur Bibliografia Baseados nos slides de Andrew Rice, Universidade

Leia mais

Introdução. Introdução. Motivação. Motivação. Solução INTELIGÊNCIA ARTIFICIAL CÁLCULO RELACIONAL (PARTE I)

Introdução. Introdução. Motivação. Motivação. Solução INTELIGÊNCIA ARTIFICIAL CÁLCULO RELACIONAL (PARTE I) Introdução 2 INTELIGÊNCIA ARTIFICIAL CÁLCULO RELACIONAL (PARTE I) O Cálculo Relacional (CR) é uma extensão do Cálculo Proposicional que possui maior capacidade de representação de conhecimento O CR é também

Leia mais

Inteligência Artificial IA IV. RACIOCÍNIO BASEADO EM REGRAS

Inteligência Artificial IA IV. RACIOCÍNIO BASEADO EM REGRAS Inteligência Artificial IA Prof. João Luís Garcia Rosa IV. RACIOCÍNIO BASEADO EM REGRAS Parte 2 2004 Um Sistema de Dedução Regressivo Uma propriedade importante da lógica é a dualidade entre asserções

Leia mais

Lógica e Programação - Folha de trabalho n. 3

Lógica e Programação - Folha de trabalho n. 3 Lógica de 1 ā ordem Linguagens, termos, fórmulas e semântica 1 Seja L uma linguagem de 1 ā ordem com igualdade e tal que F 0 = {a, b}, F 1 = {g}, F 2 = {f, h}, R 1 = {R, S} e R 2 = {P, Q}. i. O comprimento

Leia mais

Conferencia 6 Estruturas, pregados para o trabalho com estruturas, seletores. MSc. Angel Alberto Vazquez Sánchez

Conferencia 6 Estruturas, pregados para o trabalho com estruturas, seletores. MSc. Angel Alberto Vazquez Sánchez Conferencia 6 Estruturas, pregados para o trabalho com estruturas, seletores MSc. Angel Alberto Vazquez Sánchez Objetivo Caracterizar as estruturas como elemento importante da programação no Prolog. 2/41

Leia mais

Lógica Computacional (CC2003)

Lógica Computacional (CC2003) Lógica Computacional (CC2003) Nelma Moreira Lógica Computacional 21 Conteúdo 1 Mais Teorias (decidíveis) 1 1.1 Resolução para a lógica proposicional................ 4 1.2 Cláusulas...............................

Leia mais

Lógica Computacional (CC2003) Lógica e Programação (CC216)

Lógica Computacional (CC2003) Lógica e Programação (CC216) Lógica Computacional (CC2003) Lógica e Programação (CC216) Nelma Moreira Lógica Computacional 24 Conteúdo 1 Introdução à Programação em Lógica 1 2 Unificação 1 2.1 Substituições.............................

Leia mais

Gênesis S. Araújo Pré-Cálculo

Gênesis S. Araújo Pré-Cálculo Gênesis Soares Jaboatão, de de 2016. Estudante: PAR ORDENADO: Um par ordenado de números reais é o conjunto formado por dois números reais em determinada ordem. Os parênteses, em substituição às chaves,

Leia mais

30/04/2013. Prof. Hudson Costa

30/04/2013. Prof. Hudson Costa Prof. Hudson Costa PROLOG é uma linguagem de programação que é utilizada para resolver problemas que envolvam objetos e relações entre objetos. Em PROLOG o que se define basicamente são objetos e relações

Leia mais

A Ideia de Continuidade. Quando dizemos que um processo funciona de forma contínua, estamos dizendo que ele ocorre sem interrupção.

A Ideia de Continuidade. Quando dizemos que um processo funciona de forma contínua, estamos dizendo que ele ocorre sem interrupção. Polos Olímpicos de Treinamento Curso de Álgebra - Nível 2 Prof. Marcelo Mendes Aula 5 A Ideia de Continuidade Quando dizemos que um processo funciona de forma contínua, estamos dizendo que ele ocorre sem

Leia mais

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

CENTRO UNIVERSITÁRIO LUTERANO DE PALMAS PROLOG. Elias Melgaço Chaves Júnior Jonatas Luiz da Costa Rafael Gonçalves Barreira CENTRO UNIVERSITÁRIO LUTERANO DE PALMAS PROLOG Elias Melgaço Chaves Júnior Jonatas Luiz da Costa Rafael Gonçalves Barreira Roteiro Linguagens de Programação em Lógica: histórico THIS IS PROLOG!!!! SWI-Prolog

Leia mais

Fundamentos de Lógica Matemática

Fundamentos de Lógica Matemática Webconferência 6-29/03/2012 Introdução à Lógica de Predicados Prof. L. M. Levada http://www.dc.ufscar.br/ alexandre Departamento de Computação (DC) Universidade Federal de São Carlos (UFSCar) 2012/1 Introdução

Leia mais

Programação Orientada a Objetos. Programação Lógica

Programação Orientada a Objetos. Programação Lógica Programação Orientada a Objetos Programação Lógica Cristiano Lehrer, M.Sc. Introdução Uma metodologia de programação diferente. Expressar programas na forma de lógica simbólica e a utilização de inferência

Leia mais

Exemplo:- CONTROLE DE RETROCESSO. Construir um programa Prolog para implementar a função:

Exemplo:- CONTROLE DE RETROCESSO. Construir um programa Prolog para implementar a função: CONTROLE DE RETROCESSO O retrocesso (backtracking) é um processo pelo qual todas as alternativas de solução para uma dada consulta são tentadas exaustivamente. No Prolog, o retrocesso é automático. É possível

Leia mais

SCC Capítulo 3 Prova Automática de Teoremas

SCC Capítulo 3 Prova Automática de Teoremas SCC-630 - Capítulo 3 Prova Automática de Teoremas João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos

Leia mais

Introdução à linguagem Prolog

Introdução à linguagem Prolog Introdução à linguagem Prolog Lógica Computacional 2 o ano LCC 2011/2012 1 Preâmbulo Ao longo do semestre iremos na disciplina de Lógica Computacional fazer uso da linguagem Prolog. O interpretador adoptado

Leia mais

Isometrias do Plano Euclidiano

Isometrias do Plano Euclidiano Isometrias do Plano Euclidiano Semana do ICE 2013 Semana do ICE 2013 () Isometrias do Plano Euclidiano 1 / 7 O Plano Euclidiano E O Plano Euclidiano E é o plano euclidiano da geometria clássica (ensino

Leia mais

Sintaxe e Semântica de Programas Prolog

Sintaxe e Semântica de Programas Prolog Sintaxe e Semântica de Programas Prolog Esta aula trata da sintaxe e semântica de conceitos básicos em Prolog relacionados à manipulação de listas Lista é uma das estruturas mais simples em Prolog, muito

Leia mais

Métodos Numéricos Zeros Posição Falsa e Ponto Fixo. Professor Volmir Eugênio Wilhelm Professora Mariana Kleina

Métodos Numéricos Zeros Posição Falsa e Ponto Fixo. Professor Volmir Eugênio Wilhelm Professora Mariana Kleina Métodos Numéricos Zeros Posição Falsa e Ponto Fixo Professor Volmir Eugênio Wilhelm Professora Mariana Kleina Método da Posição Falsa 2 Método da Posição Falsa O processo consiste em dividir/particionar

Leia mais

Prolog: Programação em

Prolog: Programação em Capítulo 7 Prolog: Programação em Lógica em Prática It is not really difficult to construct a series of inferences, each dependent upon its predecessor and each simple in itself. If, after doing so, one

Leia mais

Programação em lógica - tem suas raízes no cálculo de predicados, proposto por Frege em 1879.

Programação em lógica - tem suas raízes no cálculo de predicados, proposto por Frege em 1879. Figura: Capa do Livro Hamburger, H., Richards, D. Logic and Language Models for Computer Science, Prentice Hall. Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado

Leia mais

Modelo Booleano Wendel Melo

Modelo Booleano Wendel Melo Wendel Melo Faculdade de Computação Universidade Federal de Uberlândia Recuperação da Informação Adaptado do Material da Profª Vanessa Braganholo - IC/UFF Modelo simples; Baseado em teoria dos conjuntos

Leia mais

parent parent corpo, corpo 1 2 Prolog - João C. P. da Silva

parent parent corpo, corpo 1 2 Prolog - João C. P. da Silva Prolog é uma linguagem de programação utilizada para resolução de problemas que envolvem objetos e relações entre objetos. s José possui um livro. O carro é vermelho. Duas pessoas são irmãs se ambas são

Leia mais

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial INF 1771 Inteligência Artificial Aula 09 Prolog Edirlei Soares de Lima Variáveis Variáveis são representadas através de cadeias de letras, números ou _ sempre começando com letra

Leia mais

Introdução. História. História 18/03/2012. Lógica para Ciência da Computação. O que é Lógica?

Introdução. História. História 18/03/2012. Lógica para Ciência da Computação. O que é Lógica? IFMG-Formiga Introdução Lógica para Ciência da Computação O que é Lógica? É a formalização de linguagem e raciocínio, além de meios para expressar (dar significado) a essas formalizações. Profª. Danielle

Leia mais

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial Edirlei Soares de Lima INF 1771 Inteligência Artificial Aula 08 Introdução ao Prolog Introdução O Prolog é uma linguagem de programação baseada em lógica de primeira ordem. Não é

Leia mais

Modelo Booleano Wendel Melo

Modelo Booleano Wendel Melo Wendel Melo Faculdade de Computação Universidade Federal de Uberlândia Recuperação da Informação Adaptado do Material da Profª Vanessa Braganholo - IC/UFF Modelo simples; Baseado em teoria dos conjuntos

Leia mais

Listas em Prolog. Listas

Listas em Prolog. Listas Listas em Prolog Esta aula trata da estrutura de dados lista e programas Prolog para processamento de listas Inteligência Artificial 1 Listas Lista é uma das estruturas mais simples em Prolog, muito comum

Leia mais

Paradigma de Programação Lógico. Marco A L Barbosa

Paradigma de Programação Lógico. Marco A L Barbosa Introdução Paradigma de Programação Lógico Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. Conteúdo Introdução Imperativo

Leia mais

PROLOG Resumo. 1. Introdução.

PROLOG Resumo. 1. Introdução. PROLOG Jacir de Oliveira, José Alencar Philereno Faculdade de Informática de Taquara Igrejinha - RS - Brazil jacirdeoliveira@faccat.t.br, a lencar@philler.com.br Resumo. A lógica é a ciência do pensamento

Leia mais

Sintaxe e Semântica de Programas Prolog

Sintaxe e Semântica de Programas Prolog Inteligência Artificial Sintaxe e Semântica de Programas Prolog José Augusto Baranauskas Departamento de Física e Matemática FFCLRP-USP Nesta aula será vista a sintaxe e semântica de conceitos básicos

Leia mais

Elisabete Raposo Freire Departamento de Matemática Universidade dos Açores 21 Abril 2012

Elisabete Raposo Freire Departamento de Matemática Universidade dos Açores 21 Abril 2012 Elisabete Raposo Freire Departamento de Matemática Universidade dos Açores 21 Abril 2012 Problema de Einstein (adaptado) Existem 5 casas de 5 cores diferentes. Em cada casa vive uma pessoa de nacionalidade

Leia mais

Inteligência Artificial IA IV. RACIOCÍNIO BASEADO EM REGRAS

Inteligência Artificial IA IV. RACIOCÍNIO BASEADO EM REGRAS Inteligência Artificial IA Prof. João Luís Garcia Rosa IV. RACIOCÍNIO BASEADO EM REGRAS Parte 1 2004 Introdução A forma como um corpo de conhecimento sobre um certo campo é expresso por um especialista

Leia mais

Inteligência Artificial Apontamentos para as aulas Luís Miguel Botelho

Inteligência Artificial Apontamentos para as aulas Luís Miguel Botelho Inteligência Artificial Apontamentos para as aulas Luís Miguel Botelho Departamento de Ciências e Tecnologias da Informação ISCTE-IUL - Instituto Universitário de Lisboa Dezembro de 2016 1 Notas sobre

Leia mais

2. Linguagem de Programação Prolog

2. Linguagem de Programação Prolog Inteligência Artificial - IBM1024 2. Linguagem de Programação Prolog Prof. Renato Tinós Local: Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 2. Linguagem de Programação Prolog 2.1.

Leia mais

Mecanismos de Controle

Mecanismos de Controle Mecanismos de Controle Prof. Dr. Silvio do Lago Pereira Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo Introdução Embora o Prolog seja uma linguagem de programação declarativa,

Leia mais

MAT Aula 21/ Segunda 26/05/2014. Sylvain Bonnot (IME-USP)

MAT Aula 21/ Segunda 26/05/2014. Sylvain Bonnot (IME-USP) MAT 0143 Aula 21/ Segunda 26/05/2014 Sylvain Bonnot (IME-USP) 2014 1 Teorema fundamental do cálculo Teorema (Teorema fundamental do cálculo, parte 1) Se f for contínua em [a, b] então a função g definida

Leia mais

6. OPERADORES E ARITMÉTICA

6. OPERADORES E ARITMÉTICA 6. OPERADORES E ARITMÉTICA 6.1 OPERADORES Na matemática costuma-se escrever expressões como 2*a + b*c onde + e * são operadores e 2, a, b e c são argumentos. Em particular, + e * são denominados operadores

Leia mais

Alfabeto da Lógica Proposicional

Alfabeto da Lógica Proposicional Ciência da Computação Alfabeto da Lógica Sintaxe e Semântica da Lógica Parte I Prof. Sergio Ribeiro Definição 1.1 (alfabeto) - O alfabeto da é constituído por: símbolos de pontuação: (, ;, ) símbolos de

Leia mais

Conferência Árvores de resolução SLD

Conferência Árvores de resolução SLD Inteligência Artificial Conferência Árvores de resolução SLD O Docente: MSc. Angel Alberto Vazquez Sánchez Objetivo Construir uma árvore de resolução SLD a partir de um objetivo do PROLOG, aplicando o

Leia mais

Sherlock Holmes The Dancing Men

Sherlock Holmes The Dancing Men Capítulo 5 Prolog It is not really difficult to construct a series of inferences, each dependent upon its predecessor and each simple in itself. If, after doing so, one simply knocks out all the central

Leia mais

Propriedades das Funções Deriváveis. Prof. Doherty Andrade

Propriedades das Funções Deriváveis. Prof. Doherty Andrade Propriedades das Funções Deriváveis Prof Doerty Andrade 2005 Sumário Funções Deriváveis 2 Introdução 2 2 Propriedades 3 3 Teste da derivada segunda para máimos e mínimos 7 2 Formas indeterminadas 8 2 Introdução

Leia mais

EXERCÍCIOS DE PROGRAMAÇÃO EM LÓGICA

EXERCÍCIOS DE PROGRAMAÇÃO EM LÓGICA FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO EXERCÍCIOS DE PROGRAMAÇÃO EM LÓGICA LUÍS PAULO REIS DANIEL CASTRO SILVA MESTRADO INTEGRADO EM ENGENHARIA INFORMÁTICA E COMPUTAÇÃO PROGRAMAÇÃO EM LÓGICA

Leia mais

Representação de Conhecimento

Representação de Conhecimento Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Representação de Conhecimento Inteligência Artificial Site: http://jeiks.net E-mail: jacsonrcsilva@gmail.com

Leia mais

Linguagens de Programação Programação Lógica (Prolog)

Linguagens de Programação Programação Lógica (Prolog) Linguagens de Programação Programação Lógica (Prolog) Andrei Rimsa Álvares Sumário Introdução Prolog Unificação Mais sobre Prolog Resumo INTRODUÇÃO Linguagens de Programação Programação Impera?va vs. Lógica

Leia mais

Programação de Computadores:

Programação de Computadores: Instituto de C Programação de Computadores: Introdução a Algoritmos (Parte II) Luis Martí Instituto de Computação Universidade ederal luminense lmarti@ic.uff.br - http://lmarti.com Roteiro da Aula de Hoje

Leia mais

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

Inteligência Artificial IA III. PROVA AUTOMÁTICA DE TEOREMAS Inteligência Artificial IA Prof. João Luís Garcia Rosa III. PROVA AUTOMÁTICA DE TEOREMAS 2004 Representação do conhecimento Suponha o seguinte corpo de conhecimento (exemplo 1): 1. Marco era um homem.

Leia mais

Lista de Exercícios VII - Geometria

Lista de Exercícios VII - Geometria Lista de Exercícios VII - Geometria Prof. Michel Barros Silva - UFCG/CCTA 1. Construa o gráco e encontre o foco e a equação da diretriz: a)x = y b)y = 6x c)y = 8x d)x + y = 0 e)y x = 0 f)y + x = 0 g)x

Leia mais

Alteração da Base de Dados. Programação Lógica. Alteração da Base de Dados. Alteração da Base de Dados

Alteração da Base de Dados. Programação Lógica. Alteração da Base de Dados. Alteração da Base de Dados Programação Lógica Prolog: alteração da base de dados, predicados que fornecem, exemplos Profa Heloisa de Arruda Camargo Alguns predicados do Prolog modificam a base de dados em tempo de execução abolish(pred)

Leia mais

Nelma Moreira. Aula 17

Nelma Moreira. Aula 17 Lógica e Programação Nelma Moreira Aula 17 Conteúdo 1 Programação em Lógica 1 1.1 Resolução para a lógica proposicional................ 1 1.2 Cláusulas............................... 3 1.3 Conversão para

Leia mais

ATIVIDADES EM SALA DE AULA Cálculo I -A- Humberto José Bortolossi

ATIVIDADES EM SALA DE AULA Cálculo I -A- Humberto José Bortolossi ATIVIDADES EM SALA DE AULA Cálculo I -A- Humberto José Bortolossi http://www.professores.uff.br/hjbortol/ 08 Continuidade e O Teorema do Valor Intermediário [0] (2008.) (a) Dê um exemplo de uma função

Leia mais

Lógica Computacional (CC2003)

Lógica Computacional (CC2003) Lógica Computacional (CC2003) Nelma Moreira Lógica Computacional 24 Conteúdo 1 Introdução à Programação em Lógica 1 1.1 Resolução SLD............................ 1 1 Introdução à Programação em Lógica

Leia mais

Lógica para computação - Linguagem da Lógica de Predicados

Lógica para computação - Linguagem da Lógica de Predicados DAINF - Departamento de Informática Lógica para computação - Linguagem da Lógica de Predicados Prof. Alex Kutzke ( http://alex.kutzke.com.br/courses ) 13 de Outubro de 2015 Razões para uma nova linguagem

Leia mais

Matemática discreta e Lógica Matemática

Matemática discreta e Lógica Matemática AULA 1 - Lógica Matemática Prof. Dr. Hércules A. Oliveira UTFPR - Universidade Tecnológica Federal do Paraná, Ponta Grossa Departamento Acadêmico de Matemática Ementa 1. Lógica proposicional: introdução,

Leia mais

MAT 121 : Cálculo Diferencial e Integral II. Sylvain Bonnot (IME-USP)

MAT 121 : Cálculo Diferencial e Integral II. Sylvain Bonnot (IME-USP) MAT 121 : Cálculo Diferencial e Integral II Sylvain Bonnot (IME-USP) 2014 1 Informações gerais Prof.: Sylvain Bonnot Email: sylvain@ime.usp.br Minha sala: IME-USP, 151-A (Bloco A) Site: ver o link para

Leia mais

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

Lógica de primeira ordem (Capítulo 8 - Russell) Inteligência Artificial Lógica de primeira ordem (Capítulo 8 - Russell) Inteligência Artificial Estrutura 1- Contextualização 2- Definições 3- Lista de exercício 4- Prolog 5- Regras em Prolog - Mundo Wumpus 6- Aplicação do Mundo

Leia mais

Universidade Federal Fluminense - UFF-RJ

Universidade Federal Fluminense - UFF-RJ Anotações sobre equações funcionais Rodrigo Carlos Silva de Lima Universidade Federal Fluminense - UFF-RJ rodrigo.uff.math@gmail.com 1 Sumário 1 Equacões funcionais 3 1.1 f(x + y) = f(x).f(y)..............................

Leia mais

20/11/2012. Prof. Hudson Costa

20/11/2012. Prof. Hudson Costa Prof. Hudson Costa PROLOG é uma linguagem de programação que é utilizada para resolver problemas que envolvam objetos e relações entre objetos. Em PROLOG o que se define basicamente são objetos e relações

Leia mais

Lógica Computacional DCC/FCUP 2017/18

Lógica Computacional DCC/FCUP 2017/18 2017/18 1 Lógica de primeira ordem Linguagens da lógica de primeira ordem Termos Fórmulas Semântica de Lógica de primeira ordem Lógica de primeira ordem Na lógica proposicional não é possível representar

Leia mais

A Lógica de Primeira Ordem

A Lógica de Primeira Ordem Capítulo 10 A Lógica de Primeira Ordem A Lógica de Primeira Ordem: A necessidade de uma linguagem mais expressiva O cálculo proposicional possui limitações com respeito a codificação de sentenças declarativas.

Leia mais

Interação com o usuário

Interação com o usuário Erick Galani Maziero Estagiário PAE SCC-230 Inteligência Artificial Informação explícita Conhecimento inferido ou deduzido (máquina prolog) Pode-se desejar programar proceduralmente Interação com o usuário

Leia mais

Lógica para Computação

Lógica para Computação Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br Resolução e PROLOG Passos para obter a forma clausal de uma fbf: 1. Obter a forma normal

Leia mais

Linguagens de Programação Aula 15

Linguagens de Programação Aula 15 Linguagens de Programação Aula 15 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Linguagem Haskell 2 Na aula de hoje Paradigma Lógico Linguagem Prolog (PROgrammation en LOGique) 3 Introdução

Leia mais