View
0
Download
0
Category
Preview:
Citation preview
GSI010 - Programacao Logica
Organizacao da disciplina
I prof. Marcelo Keese Albertini
I albertini@facom.ufu.br
I Sala 1A-230I http://www.facom.ufu.br/~albertini/prolog
I Informacoes sobre a disciplinaI plano de aulaI notasI trabalhosI datasI slidesI avisosI listas de exercıciosI exemplos de aula
Avaliacao
I 3 provas teoricas, somando 85 pontosI 1a. prova: 05/07/2013, valendo 25 pontosI 2a. prova: 16/08/2013, valendo 30 pontosI 3a. prova: 20/09/2013, valendo 30 pontos
I listas de exercıcios preparatorios e trabalhos, somando 15pontos
Referencias Bibliograficas
Na biblioteca
I Clocksin, W. E and Mellish, C.S. Programming in Prolog, 2nded. 1984.
I Arariboia, G. Inteligencia Articial: um curso pratico. 1988.
I Bratko, I. Prolog Programming for Artificial Intelligence, 2nded. 1990.
Na InternetI Luiz A. M. Palazzo. Introducao a programacao Prolog
I http://puig.pro.br/Logica/palazzo.pdf
I Eloi L. Favero. Programacao em Prolog: uma abordagempratica
I http://www3.ufpa.br/favero
I Patrick Blackburn, Johan Bos and Kristina Striegnitz. LearnProlog Now!
I http://www.learnprolognow.org
Introducao
I Conceitos fundamentais da Programacao em Logica
I Desenvolvimento de aplicacoes em PrologI Implementacao utilizada: Swi-Prolog
I http://www.swi-prolog.org
O que e Prolog
I Introducao aos conceitos basicos da programacao em logica eda linguagem Prolog.
I Fatos e regras.
I Resolucao, unificacao, corte e negacao.
I Recursao, controle da execucao e estruturas de dados.
I Semantica declarativa e procedimental.
I Desenvolvimento de aplicacoes em Prolog.
Sintaxe do Prolog
Paradigma logicoI paradigma declarativo
I descrevem o problema, em vez da solucaoI descreve o que deve ser feito, em vez de como
Principal linguagem
I Prolog: Programming in Logic
Sintaxe do Prolog
Porque declarativo?
I declaracao de fatos
I declaracao de regrasI execucao de codigo por meio de consultas
I o prolog avalia consultas de acordo com as regras e fatospreviamente definidos
I o que nao esta declarado e falso ou tem resposta negativa
I conceito de mundo fechado
Declaracoes
ConhecimentoJoao que amava Teresa que amava Raimundo que amava Mariaque amava Joaquim que amava Lili que nao amava ninguem. Joaofoi para os Estados Unidos, Teresa para o convento, Raimundomorreu de desastre, Maria ficou para tia, Joaquim suicidou-se e Lilicasou com J. Pinto Fernandes que nao tinha entrado na historia.
Transformando em fatos
1 amava ( jo ao , t e r e s a ) .2 amava ( t e r e s a , ra imundo ) .3 amava ( raimundo , joaqu im ) .4 amava ( joaquim , l i l i ) .5 f o i p a r a ( jo ao , e s t a d o s u n i d o s ) .6 f o i p a r a ( t e r e s a , convento ) .7 f o i p a r a ( raimundo , c eu ) .8 f o i p a r a ( joaquim , ceu ) .9 f o i p a r a ( l i l i , f e r n a n d e s ) .
E as letras maiusculas?
Declaracoes
ConhecimentoJoao que amava Teresa que amava Raimundo que amava Mariaque amava Joaquim que amava Lili que nao amava ninguem. Joaofoi para os Estados Unidos, Teresa para o convento, Raimundomorreu de desastre, Maria ficou para tia, Joaquim suicidou-se e Lilicasou com J. Pinto Fernandes que nao tinha entrado na historia.
Transformando em fatos
1 amava ( jo ao , t e r e s a ) .2 amava ( t e r e s a , ra imundo ) .3 amava ( raimundo , joaqu im ) .4 amava ( joaquim , l i l i ) .5 f o i p a r a ( jo ao , e s t a d o s u n i d o s ) .6 f o i p a r a ( t e r e s a , convento ) .7 f o i p a r a ( raimundo , c eu ) .8 f o i p a r a ( joaquim , ceu ) .9 f o i p a r a ( l i l i , f e r n a n d e s ) .
E as letras maiusculas?
Declaracoes
ConhecimentoJoao que amava Teresa que amava Raimundo que amava Mariaque amava Joaquim que amava Lili que nao amava ninguem. Joaofoi para os Estados Unidos, Teresa para o convento, Raimundomorreu de desastre, Maria ficou para tia, Joaquim suicidou-se e Lilicasou com J. Pinto Fernandes que nao tinha entrado na historia.
Transformando em fatos
1 amava ( jo ao , t e r e s a ) .2 amava ( t e r e s a , ra imundo ) .3 amava ( raimundo , joaqu im ) .4 amava ( joaquim , l i l i ) .5 f o i p a r a ( jo ao , e s t a d o s u n i d o s ) .6 f o i p a r a ( t e r e s a , convento ) .7 f o i p a r a ( raimundo , c eu ) .8 f o i p a r a ( joaquim , ceu ) .9 f o i p a r a ( l i l i , f e r n a n d e s ) .
E as letras maiusculas?
Aplicacoes da programacao logica
I Sistemas Baseados em ConhecimentoI sistemas que aplicam mecanismos automatizados de
racioncınio para a representacao e inferencia de conhecimento
I Bancos de Dados “Inteligentes”I sistemas que empregam “agentes” de busca de dados com
base em criterios
I Sistemas EspecialistasI sistemas que emulam a especializacao humana em algum
domınio especıfico
I Processamento da Linguagem NaturalI usada para desenvolvimento de ferramentas para a
comunicacao homem-maquina em geral e para a construcao deinterfaces
Aplicacoes
I NASAI Clarissa: interface de voz para execucao de procedimentos da
Estacao Espacial Internacional
I Industria de aviacao, em solucoes de planejamento eescalonamento
I coordena 30% do trafico aereo do mundo (2010)I http://www.travelport.com/Careers/InternshipI Estagio 2013: Experience in one or more of the following
languages: .NET (C#, ASP), C++, Prolog, C, Java,HTML/CSS
I Prolog “comercial”I Artigo SICStus Prolog–the first 25 years, 2010
I Mineracao de dadosI busca automatica em bancos de dados por padroes e
relacionamentos significantesI RDS (Compumine usando SICStus Prolog)
Mudanca de paradigma
Desenvolvimento
I pensar declarativamente, nao mais em “procedimentos”
I modo de abordar problemas e diferente
I linguagem de alto nıvel
I permite a rapida construcao de prototiposI permite abordar problemas complexos com pouco codigo
I mecanismo de busca de solucoes para problema e inerente aoProlog
Base de conhecimento 1
1 mulher ( mar ia ) .2 mulher ( j o a n a ) .3 mulher ( i o l a n d a ) .4 t o c a V i o l a o ( j o a n a ) .5 f e s t a .
1 ?− mulher ( mar ia ) .2 t r u e3 ?− t o c a V i o l a o ( j o a n a ) .4 t r u e5 ?− t o c a V i o l a o ( mar ia ) .6 f a l s e
Base de conhecimento 1
1 mulher ( mar ia ) .2 mulher ( j o a n a ) .3 mulher ( i o l a n d a ) .4 t o c a V i o l a o ( j o a n a ) .5 f e s t a .
1 ?−
mulher ( mar ia ) .2 t r u e3 ?− t o c a V i o l a o ( j o a n a ) .4 t r u e5 ?− t o c a V i o l a o ( mar ia ) .6 f a l s e
Base de conhecimento 1
1 mulher ( mar ia ) .2 mulher ( j o a n a ) .3 mulher ( i o l a n d a ) .4 t o c a V i o l a o ( j o a n a ) .5 f e s t a .
1 ?− mulher ( mar ia ) .2
t r u e3 ?− t o c a V i o l a o ( j o a n a ) .4 t r u e5 ?− t o c a V i o l a o ( mar ia ) .6 f a l s e
Base de conhecimento 1
1 mulher ( mar ia ) .2 mulher ( j o a n a ) .3 mulher ( i o l a n d a ) .4 t o c a V i o l a o ( j o a n a ) .5 f e s t a .
1 ?− mulher ( mar ia ) .2 t r u e3 ?−
t o c a V i o l a o ( j o a n a ) .4 t r u e5 ?− t o c a V i o l a o ( mar ia ) .6 f a l s e
Base de conhecimento 1
1 mulher ( mar ia ) .2 mulher ( j o a n a ) .3 mulher ( i o l a n d a ) .4 t o c a V i o l a o ( j o a n a ) .5 f e s t a .
1 ?− mulher ( mar ia ) .2 t r u e3 ?− t o c a V i o l a o ( j o a n a ) .4
t r u e5 ?− t o c a V i o l a o ( mar ia ) .6 f a l s e
Base de conhecimento 1
1 mulher ( mar ia ) .2 mulher ( j o a n a ) .3 mulher ( i o l a n d a ) .4 t o c a V i o l a o ( j o a n a ) .5 f e s t a .
1 ?− mulher ( mar ia ) .2 t r u e3 ?− t o c a V i o l a o ( j o a n a ) .4 t r u e5 ?−
t o c a V i o l a o ( mar ia ) .6 f a l s e
Base de conhecimento 1
1 mulher ( mar ia ) .2 mulher ( j o a n a ) .3 mulher ( i o l a n d a ) .4 t o c a V i o l a o ( j o a n a ) .5 f e s t a .
1 ?− mulher ( mar ia ) .2 t r u e3 ?− t o c a V i o l a o ( j o a n a ) .4 t r u e5 ?− t o c a V i o l a o (
mar ia ) .6 f a l s e
Base de conhecimento 1
1 mulher ( mar ia ) .2 mulher ( j o a n a ) .3 mulher ( i o l a n d a ) .4 t o c a V i o l a o ( j o a n a ) .5 f e s t a .
1 ?− mulher ( mar ia ) .2 t r u e3 ?− t o c a V i o l a o ( j o a n a ) .4 t r u e5 ?− t o c a V i o l a o ( mar ia ) .6
f a l s e
Base de conhecimento 1
1 mulher ( mar ia ) .2 mulher ( j o a n a ) .3 mulher ( i o l a n d a ) .4 t o c a V i o l a o ( j o a n a ) .5 f e s t a .
1 ?− mulher ( mar ia ) .2 t r u e3 ?− t o c a V i o l a o ( j o a n a ) .4 t r u e5 ?− t o c a V i o l a o ( mar ia ) .6 f a l s e
Base de conhecimento 1
1 mulher ( mar ia ) .2 mulher ( j o a n a ) .3 mulher ( i o l a n d a ) .4 t o c a V i o l a o ( j o a n a ) .5 f e s t a .
1 ?− t a t u a d a ( j o a n a ) .2 ERROR: p r e d i c a t e t a t u a d a /1 not d e f i n e d .34 ?− f e s t a .5 t r u e
Base de conhecimento 1
1 mulher ( mar ia ) .2 mulher ( j o a n a ) .3 mulher ( i o l a n d a ) .4 t o c a V i o l a o ( j o a n a ) .5 f e s t a .
1 ?−
t a t u a d a ( j o a n a ) .2 ERROR: p r e d i c a t e t a t u a d a /1 not d e f i n e d .34 ?− f e s t a .5 t r u e
Base de conhecimento 1
1 mulher ( mar ia ) .2 mulher ( j o a n a ) .3 mulher ( i o l a n d a ) .4 t o c a V i o l a o ( j o a n a ) .5 f e s t a .
1 ?− t a t u a d a ( j o a n a ) .2 ERROR: p r e d i c a t e t a t u a d a /1 not d e f i n e d .3
4 ?− f e s t a .5 t r u e
Base de conhecimento 1
1 mulher ( mar ia ) .2 mulher ( j o a n a ) .3 mulher ( i o l a n d a ) .4 t o c a V i o l a o ( j o a n a ) .5 f e s t a .
1 ?− t a t u a d a ( j o a n a ) .2 ERROR: p r e d i c a t e t a t u a d a /1 not d e f i n e d .34 ?− f e s t a .5
t r u e
Base de conhecimento 1
1 mulher ( mar ia ) .2 mulher ( j o a n a ) .3 mulher ( i o l a n d a ) .4 t o c a V i o l a o ( j o a n a ) .5 f e s t a .
1 ?− t a t u a d a ( j o a n a ) .2 ERROR: p r e d i c a t e t a t u a d a /1 not d e f i n e d .34 ?− f e s t a .5 t r u e
Introducao
Usuario InterfaceMotor deInferencia
Base deconhecimento
consultas
respostas
O prolog e baseado em:
I Fatos
I Regras
I Consultas
Programacao em Prolog
Fatos
I sao entendidos como relacoes entre objetos
I constituem-se de afirmacoes que sao feitas ao prolog
I sao verdades nas quais o prolog ira basear-se para responderas consultas solicitadas
I arvore genealogica
Programacao em Prolog
Joao Maria
Ana Jose
Barbara
Iris
Jorge
Fatos
1 p r o g e n i t o r ( maria , j o s e ) .
Programacao em prolog
Regras
I especificacao de algo que pode ser verdadeiro se algumascondicoes forem satisfeitas
I e composta de duas partes: conclusao (esquerda) e condicao(direita)
I exemplo: relacao Filho.
1 f i l h o (X, Y) :− p r o g e n i t o r (Y, X) .
Programacao em prolog
Consultas
I questionamentos que serao respondidos avaliando-se os fatose regras
I Joao e filho de Jose?→ ?− filho (joao , jose ) .I Quem e o filho de Jose?→?− filho (X, jose ) .I Quem sao os filhos de Joao?→?−filho(X,joao) .
I X e uma variavel que representa um objeto desconhecido
I variaveis sao escritas com a primeira letra em maiusculo
Base de conhecimento 21 p r o g e n i t o r ( maria , j o s e ) .2 p r o g e n i t o r ( jo ao , j o s e ) .3 p r o g e n i t o r ( jo ao , ana ) .4 p r o g e n i t o r ( j o s e , j u l i a ) .5 p r o g e n i t o r ( j o s e , ı r i s ) .6 p r o g e n i t o r ( ı r i s , j o r g e ) .7
8 f i l h o (X, Y) :− p r o g e n i t o r (Y, X) .
Dando nomes aos bois:
I fato: progenitor(maria, jose).I regra: filho(X, Y) :- progenitor(Y, X).
I cabeca (da regra): filho(X, Y)I corpo (da regra): progenitor(Y, X)
I clausula: um fato ou uma regra (sao 7 nessa base)
I marcado por ponto final
I functor: filho(X,Y)
I argumentos: filho(X, Y)
Base de conhecimento 21 p r o g e n i t o r ( maria , j o s e ) .2 p r o g e n i t o r ( jo ao , j o s e ) .3 p r o g e n i t o r ( jo ao , ana ) .4 p r o g e n i t o r ( j o s e , j u l i a ) .5 p r o g e n i t o r ( j o s e , ı r i s ) .6 p r o g e n i t o r ( ı r i s , j o r g e ) .78 f i l h o (X, Y) :− p r o g e n i t o r (Y, X) .
Dando nomes aos bois:
I fato: progenitor(maria, jose).
I regra: filho(X, Y) :- progenitor(Y, X).
I cabeca (da regra): filho(X, Y)I corpo (da regra): progenitor(Y, X)
I clausula: um fato ou uma regra (sao 7 nessa base)
I marcado por ponto final
I functor: filho(X,Y)
I argumentos: filho(X, Y)
Base de conhecimento 21 p r o g e n i t o r ( maria , j o s e ) .2 p r o g e n i t o r ( jo ao , j o s e ) .3 p r o g e n i t o r ( jo ao , ana ) .4 p r o g e n i t o r ( j o s e , j u l i a ) .5 p r o g e n i t o r ( j o s e , ı r i s ) .6 p r o g e n i t o r ( ı r i s , j o r g e ) .78 f i l h o (X, Y) :− p r o g e n i t o r (Y, X) .
Dando nomes aos bois:
I fato: progenitor(maria, jose).I regra: filho(X, Y) :- progenitor(Y, X).
I cabeca (da regra): filho(X, Y)I corpo (da regra): progenitor(Y, X)
I clausula: um fato ou uma regra (sao 7 nessa base)
I marcado por ponto final
I functor: filho(X,Y)
I argumentos: filho(X, Y)
Base de conhecimento 21 p r o g e n i t o r ( maria , j o s e ) .2 p r o g e n i t o r ( jo ao , j o s e ) .3 p r o g e n i t o r ( jo ao , ana ) .4 p r o g e n i t o r ( j o s e , j u l i a ) .5 p r o g e n i t o r ( j o s e , ı r i s ) .6 p r o g e n i t o r ( ı r i s , j o r g e ) .78 f i l h o (X, Y) :− p r o g e n i t o r (Y, X) .
Dando nomes aos bois:
I fato: progenitor(maria, jose).I regra: filho(X, Y) :- progenitor(Y, X).
I cabeca (da regra): filho(X, Y)
I corpo (da regra): progenitor(Y, X)
I clausula: um fato ou uma regra (sao 7 nessa base)
I marcado por ponto final
I functor: filho(X,Y)
I argumentos: filho(X, Y)
Base de conhecimento 21 p r o g e n i t o r ( maria , j o s e ) .2 p r o g e n i t o r ( jo ao , j o s e ) .3 p r o g e n i t o r ( jo ao , ana ) .4 p r o g e n i t o r ( j o s e , j u l i a ) .5 p r o g e n i t o r ( j o s e , ı r i s ) .6 p r o g e n i t o r ( ı r i s , j o r g e ) .78 f i l h o (X, Y) :− p r o g e n i t o r (Y, X) .
Dando nomes aos bois:
I fato: progenitor(maria, jose).I regra: filho(X, Y) :- progenitor(Y, X).
I cabeca (da regra): filho(X, Y)I corpo (da regra): progenitor(Y, X)
I clausula: um fato ou uma regra (sao 7 nessa base)
I marcado por ponto final
I functor: filho(X,Y)
I argumentos: filho(X, Y)
Base de conhecimento 21 p r o g e n i t o r ( maria , j o s e ) .2 p r o g e n i t o r ( jo ao , j o s e ) .3 p r o g e n i t o r ( jo ao , ana ) .4 p r o g e n i t o r ( j o s e , j u l i a ) .5 p r o g e n i t o r ( j o s e , ı r i s ) .6 p r o g e n i t o r ( ı r i s , j o r g e ) .78 f i l h o (X, Y) :− p r o g e n i t o r (Y, X) .
Dando nomes aos bois:
I fato: progenitor(maria, jose).I regra: filho(X, Y) :- progenitor(Y, X).
I cabeca (da regra): filho(X, Y)I corpo (da regra): progenitor(Y, X)
I clausula: um fato ou uma regra (sao 7 nessa base)
I marcado por ponto final
I functor: filho(X,Y)
I argumentos: filho(X, Y)
Base de conhecimento 21 p r o g e n i t o r ( maria , j o s e ) .2 p r o g e n i t o r ( jo ao , j o s e ) .3 p r o g e n i t o r ( jo ao , ana ) .4 p r o g e n i t o r ( j o s e , j u l i a ) .5 p r o g e n i t o r ( j o s e , ı r i s ) .6 p r o g e n i t o r ( ı r i s , j o r g e ) .78 f i l h o (X, Y) :− p r o g e n i t o r (Y, X) .
Dando nomes aos bois:
I fato: progenitor(maria, jose).I regra: filho(X, Y) :- progenitor(Y, X).
I cabeca (da regra): filho(X, Y)I corpo (da regra): progenitor(Y, X)
I clausula: um fato ou uma regra (sao 7 nessa base)I marcado por ponto final
I functor: filho(X,Y)
I argumentos: filho(X, Y)
Base de conhecimento 21 p r o g e n i t o r ( maria , j o s e ) .2 p r o g e n i t o r ( jo ao , j o s e ) .3 p r o g e n i t o r ( jo ao , ana ) .4 p r o g e n i t o r ( j o s e , j u l i a ) .5 p r o g e n i t o r ( j o s e , ı r i s ) .6 p r o g e n i t o r ( ı r i s , j o r g e ) .78 f i l h o (X, Y) :− p r o g e n i t o r (Y, X) .
Dando nomes aos bois:
I fato: progenitor(maria, jose).I regra: filho(X, Y) :- progenitor(Y, X).
I cabeca (da regra): filho(X, Y)I corpo (da regra): progenitor(Y, X)
I clausula: um fato ou uma regra (sao 7 nessa base)I marcado por ponto final
I functor: filho(X,Y)
I argumentos: filho(X, Y)
Base de conhecimento 21 p r o g e n i t o r ( maria , j o s e ) .2 p r o g e n i t o r ( jo ao , j o s e ) .3 p r o g e n i t o r ( jo ao , ana ) .4 p r o g e n i t o r ( j o s e , j u l i a ) .5 p r o g e n i t o r ( j o s e , ı r i s ) .6 p r o g e n i t o r ( ı r i s , j o r g e ) .78 f i l h o (X, Y) :− p r o g e n i t o r (Y, X) .
Dando nomes aos bois:
I fato: progenitor(maria, jose).I regra: filho(X, Y) :- progenitor(Y, X).
I cabeca (da regra): filho(X, Y)I corpo (da regra): progenitor(Y, X)
I clausula: um fato ou uma regra (sao 7 nessa base)I marcado por ponto final
I functor: filho(X,Y)
I argumentos: filho(X, Y)
Base de conhecimento 3
1 f e l i z ( i o l a n d a ) .2
3 e s c u t a m u s i c a ( mar ia ) .4 e s c u t a m u s i c a ( i o l a n d a ) :− f e l i z ( i o l a n d a ) .56 t o c a V i o l a o ( mar ia ) :− e s c u t a m u s i c a ( mar ia ) .7 t o c a V i o l a o ( i o l a n d a ) :− e s c u t a m u s i c a ( i o l a n d a ) .
Sao cinco clausulas na base de conhecimento.Sao tres predicados, feliz, escuta musica e ...
1 ?− t o c a V i o l a o ( mar ia ) .23 t r u e45 ?− t o c a V i o l a o ( i o l a n d a ) .67 t r u e
Base de conhecimento 3
1 f e l i z ( i o l a n d a ) .23 e s c u t a m u s i c a ( mar ia ) .4 e s c u t a m u s i c a ( i o l a n d a ) :− f e l i z ( i o l a n d a ) .5
6 t o c a V i o l a o ( mar ia ) :− e s c u t a m u s i c a ( mar ia ) .7 t o c a V i o l a o ( i o l a n d a ) :− e s c u t a m u s i c a ( i o l a n d a ) .
Sao cinco clausulas na base de conhecimento.Sao tres predicados, feliz, escuta musica e ...
1 ?− t o c a V i o l a o ( mar ia ) .23 t r u e45 ?− t o c a V i o l a o ( i o l a n d a ) .67 t r u e
Base de conhecimento 3
1 f e l i z ( i o l a n d a ) .23 e s c u t a m u s i c a ( mar ia ) .4 e s c u t a m u s i c a ( i o l a n d a ) :− f e l i z ( i o l a n d a ) .56 t o c a V i o l a o ( mar ia ) :− e s c u t a m u s i c a ( mar ia ) .7 t o c a V i o l a o ( i o l a n d a ) :− e s c u t a m u s i c a ( i o l a n d a ) .
Sao cinco clausulas na base de conhecimento.
Sao tres predicados, feliz, escuta musica e ...
1 ?− t o c a V i o l a o ( mar ia ) .23 t r u e45 ?− t o c a V i o l a o ( i o l a n d a ) .67 t r u e
Base de conhecimento 3
1 f e l i z ( i o l a n d a ) .23 e s c u t a m u s i c a ( mar ia ) .4 e s c u t a m u s i c a ( i o l a n d a ) :− f e l i z ( i o l a n d a ) .56 t o c a V i o l a o ( mar ia ) :− e s c u t a m u s i c a ( mar ia ) .7 t o c a V i o l a o ( i o l a n d a ) :− e s c u t a m u s i c a ( i o l a n d a ) .
Sao cinco clausulas na base de conhecimento.Sao tres predicados, feliz, escuta musica e ...
1 ?− t o c a V i o l a o ( mar ia ) .2
3 t r u e45 ?− t o c a V i o l a o ( i o l a n d a ) .67 t r u e
Base de conhecimento 3
1 f e l i z ( i o l a n d a ) .23 e s c u t a m u s i c a ( mar ia ) .4 e s c u t a m u s i c a ( i o l a n d a ) :− f e l i z ( i o l a n d a ) .56 t o c a V i o l a o ( mar ia ) :− e s c u t a m u s i c a ( mar ia ) .7 t o c a V i o l a o ( i o l a n d a ) :− e s c u t a m u s i c a ( i o l a n d a ) .
Sao cinco clausulas na base de conhecimento.Sao tres predicados, feliz, escuta musica e ...
1 ?− t o c a V i o l a o ( mar ia ) .23 t r u e4
5 ?− t o c a V i o l a o ( i o l a n d a ) .67 t r u e
Base de conhecimento 3
1 f e l i z ( i o l a n d a ) .23 e s c u t a m u s i c a ( mar ia ) .4 e s c u t a m u s i c a ( i o l a n d a ) :− f e l i z ( i o l a n d a ) .56 t o c a V i o l a o ( mar ia ) :− e s c u t a m u s i c a ( mar ia ) .7 t o c a V i o l a o ( i o l a n d a ) :− e s c u t a m u s i c a ( i o l a n d a ) .
Sao cinco clausulas na base de conhecimento.Sao tres predicados, feliz, escuta musica e ...
1 ?− t o c a V i o l a o ( mar ia ) .23 t r u e45 ?− t o c a V i o l a o ( i o l a n d a ) .6
7 t r u e
Base de conhecimento 3
1 f e l i z ( i o l a n d a ) .23 e s c u t a m u s i c a ( mar ia ) .4 e s c u t a m u s i c a ( i o l a n d a ) :− f e l i z ( i o l a n d a ) .56 t o c a V i o l a o ( mar ia ) :− e s c u t a m u s i c a ( mar ia ) .7 t o c a V i o l a o ( i o l a n d a ) :− e s c u t a m u s i c a ( i o l a n d a ) .
Sao cinco clausulas na base de conhecimento.Sao tres predicados, feliz, escuta musica e ...
1 ?− t o c a V i o l a o ( mar ia ) .23 t r u e45 ?− t o c a V i o l a o ( i o l a n d a ) .67 t r u e
Base de conhecimento 4
1 f e l i z ( v i c e n t e ) .2 e s c u t a m u s i c a ( bruno ) .3 t o c a V i o l a o ( v i c e n t e ) :− e s c u t a m u s i c a ( v i c e n t e ) ,4 f e l i z ( v i c e n t e ) .5 t o c a V i o l a o ( bruno ) :− f e l i z ( bruno ) .6 t o c a V i o l a o ( bruno ) :− e s c u t a m u s i c a ( bruno ) .7 t o c a V i o l a o ( bruno ) :− f e l i z ( bruno ) ; e s c u t a m u s i c a ( bruno ) .8 t o c a V i o l a o ( v i c e n t e ) :− \+ f e l i z ( mar ia ) .
Leia-se
I operador “dois pontos hıfen” “:-”: se
I operador “vırgula” ,: “e” (conjuncao)
I operador “ponto-e-vırgula” ; : “ou” (disjuncao)
I operador “\+”: negacao
Variaveis
1 mulher ( mar ia ) .2 mulher ( j o a n a ) .3 mulher ( i o l a n d a ) .4 ama( v i c e n t e , mar ia ) .5 ama( jo ao , mar ia ) .6 ama( abobr inha , c o e l h i n h o ) .7 ama( c o e l h i n h o , a b o b r i n h a ) .
1 ?− mulher (X) .2 X = mar ia
;3 X = j o a n a ;4 X = i o l a n d a .5 ?
Operador ; significa “ou”
Variaveis
1 mulher ( mar ia ) .2 mulher ( j o a n a ) .3 mulher ( i o l a n d a ) .4 ama( v i c e n t e , mar ia ) .5 ama( jo ao , mar ia ) .6 ama( abobr inha , c o e l h i n h o ) .7 ama( c o e l h i n h o , a b o b r i n h a ) .
1 ?− mulher (X) .2 X = mar ia ;3 X = j o a n a
;4 X = i o l a n d a .5 ?
Operador ; significa “ou”
Variaveis
1 mulher ( mar ia ) .2 mulher ( j o a n a ) .3 mulher ( i o l a n d a ) .4 ama( v i c e n t e , mar ia ) .5 ama( jo ao , mar ia ) .6 ama( abobr inha , c o e l h i n h o ) .7 ama( c o e l h i n h o , a b o b r i n h a ) .
1 ?− mulher (X) .2 X = mar ia ;3 X = j o a n a ;4 X = i o l a n d a
.5 ?
Operador ; significa “ou”
Variaveis
1 mulher ( mar ia ) .2 mulher ( j o a n a ) .3 mulher ( i o l a n d a ) .4 ama( v i c e n t e , mar ia ) .5 ama( jo ao , mar ia ) .6 ama( abobr inha , c o e l h i n h o ) .7 ama( c o e l h i n h o , a b o b r i n h a ) .
1 ?− mulher (X) .2 X = mar ia ;3 X = j o a n a ;4 X = i o l a n d a .5 ?
Operador ; significa “ou”
Base de conhecimento 5
1 mulher ( mar ia ) .2 mulher ( j o a n a ) .3 mulher ( i o l a n d a ) .4 ama( v i c e n t e , mar ia ) .5 ama( jo ao , mar ia ) .6 ama( abobr inha , c o e l h i n h o ) .7 ama( c o e l h i n h o , a b o b r i n h a ) .
Usando o operador vırgula ,
1 ?− ama( abobr inha , X) , mulher (X) .2 f a l s e
Base de conhecimento 6
1 mulher ( mar ia ) .2 mulher ( j o a n a ) .3 mulher ( i o l a n d a ) .4 ama( v i c e n t e , mar ia ) .5 ama( jo ao , mar ia ) .6 ama( abobr inha , c o e l h i n h o ) .7 ama( c o e l h i n h o , a b o b r i n h a ) .89 tem ciumes (X, Y) :− ama(X, Z) , ama(Y, Z) .
1 ?− tem ciumes ( jo ao ,W) .2 W = v i c e n t e ;3 W = j o a o ;4 f a l s e .5 ?−
Base de conhecimento 7
Fatos
1 g o s t a ( joao , p e i x e ) .2 g o s t a ( joao , mar ia ) .3 g o s t a ( maria , l i v r o ) .4 g o s t a ( pedro , l i v r o ) .5 g o s t a ( maria , f l o r ) .6 g o s t a ( maria , v i n h o ) .
Qual e o resultados de:
1 ?− g o s t a ( maria , X) .2 ?− g o s t a (X, l i v r o ) .3 ?− g o s t a (Quem , Oque ) .4 ?− g o s t a (X, Y) .5 ?− g o s t a (X, X) .6 ?− g o s t a ( a , b ) .7 ?− g o s t a (A, p e i x e ) .
Referencias
I Luis, A. M. Palazzo, Introducao a programacao prolog,Educat, 1997
I Slides da Profa. Solange - ICMC - USP
Recommended