unificaÇÃo em prolog - dainf.ct.utfpr.edu.brtacla/logica/prolog/000-introducaoao... · 3 prof....
TRANSCRIPT
![Page 1: UNIFICAÇÃO EM PROLOG - dainf.ct.utfpr.edu.brtacla/logica/prolog/000-IntroducaoAo... · 3 PROF. CESAR A. TACLA UTFPR/CURITIBA PROLOG: UTILIZAÇÃO Seu uso evita que o programador](https://reader031.vdocuments.mx/reader031/viewer/2022021911/5c22c09009d3f20b058c6bfc/html5/thumbnails/1.jpg)
1 PROF. CESAR A. TACLA UTFPR/CURITIBA
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
PR
PROLOG
![Page 2: UNIFICAÇÃO EM PROLOG - dainf.ct.utfpr.edu.brtacla/logica/prolog/000-IntroducaoAo... · 3 PROF. CESAR A. TACLA UTFPR/CURITIBA PROLOG: UTILIZAÇÃO Seu uso evita que o programador](https://reader031.vdocuments.mx/reader031/viewer/2022021911/5c22c09009d3f20b058c6bfc/html5/thumbnails/2.jpg)
2 PROF. CESAR A. TACLA UTFPR/CURITIBA
PROLOG: UTILIZAÇÃO
A principal utilização da linguagem
Prolog reside no domínio da
programação simbólica, não-numérica,
sendo especialmente adequada à solução
de problemas, envolvendo objetos e
relações entre objetos.
(Palazzo, 1997)
![Page 3: UNIFICAÇÃO EM PROLOG - dainf.ct.utfpr.edu.brtacla/logica/prolog/000-IntroducaoAo... · 3 PROF. CESAR A. TACLA UTFPR/CURITIBA PROLOG: UTILIZAÇÃO Seu uso evita que o programador](https://reader031.vdocuments.mx/reader031/viewer/2022021911/5c22c09009d3f20b058c6bfc/html5/thumbnails/3.jpg)
3 PROF. CESAR A. TACLA UTFPR/CURITIBA
PROLOG: UTILIZAÇÃO
Seu uso evita que o programador
descreva os procedimentos necessários
para a solução de um problema,
permitindo que ele expresse
declarativamente apenas a sua estrutura
lógica, através de fatos, regras e consultas
(Palazzo, 1997)
![Page 4: UNIFICAÇÃO EM PROLOG - dainf.ct.utfpr.edu.brtacla/logica/prolog/000-IntroducaoAo... · 3 PROF. CESAR A. TACLA UTFPR/CURITIBA PROLOG: UTILIZAÇÃO Seu uso evita que o programador](https://reader031.vdocuments.mx/reader031/viewer/2022021911/5c22c09009d3f20b058c6bfc/html5/thumbnails/4.jpg)
4 PROF. CESAR A. TACLA UTFPR/CURITIBA
PROLOG: ALGUMAS CARACTERÍSTICAS INTERESSANTES
Representa uma implementação da lógica como
linguagem de programação
(Palazzo, 1997)
Permite a obtenção de respostas alternativas
Representa programas e dados através do mesmo
formalismo
Suporta código recursivo e iterativo para a
descrição de processos e problemas, dispensando
os mecanismos tradicionais de controle, tais como
while, repeat, etc;
![Page 5: UNIFICAÇÃO EM PROLOG - dainf.ct.utfpr.edu.brtacla/logica/prolog/000-IntroducaoAo... · 3 PROF. CESAR A. TACLA UTFPR/CURITIBA PROLOG: UTILIZAÇÃO Seu uso evita que o programador](https://reader031.vdocuments.mx/reader031/viewer/2022021911/5c22c09009d3f20b058c6bfc/html5/thumbnails/5.jpg)
5 PROF. CESAR A. TACLA UTFPR/CURITIBA
EXEMPLO INICIAL
progenitor(maria, josé).
progenitor(joão, josé).
progenitor(joão, ana).
progenitor(josé, júlia).
progenitor(josé, íris).
progenitor(íris, jorge).
?- progenitor(maria, josé).
True
Motor
de
inferência
![Page 6: UNIFICAÇÃO EM PROLOG - dainf.ct.utfpr.edu.brtacla/logica/prolog/000-IntroducaoAo... · 3 PROF. CESAR A. TACLA UTFPR/CURITIBA PROLOG: UTILIZAÇÃO Seu uso evita que o programador](https://reader031.vdocuments.mx/reader031/viewer/2022021911/5c22c09009d3f20b058c6bfc/html5/thumbnails/6.jpg)
6 PROF. CESAR A. TACLA UTFPR/CURITIBA
EXEMPLO INICIAL
progenitor(maria, josé).
progenitor(joão, josé).
progenitor(joão, ana).
progenitor(josé, júlia).
progenitor(josé, íris).
progenitor(íris, jorge).
?- progenitor(maria, josé).
True
Motor
de
inferência
Fatos consulta
Resposta(s)
![Page 7: UNIFICAÇÃO EM PROLOG - dainf.ct.utfpr.edu.brtacla/logica/prolog/000-IntroducaoAo... · 3 PROF. CESAR A. TACLA UTFPR/CURITIBA PROLOG: UTILIZAÇÃO Seu uso evita que o programador](https://reader031.vdocuments.mx/reader031/viewer/2022021911/5c22c09009d3f20b058c6bfc/html5/thumbnails/7.jpg)
7 PROF. CESAR A. TACLA UTFPR/CURITIBA
EXEMPLO INICIAL
progenitor(maria, josé).
progenitor(joão, josé).
progenitor(joão, ana).
progenitor(josé, júlia).
progenitor(josé, íris).
progenitor(íris, jorge).
?- progenitor(X, josé).
X = maria;
X = joão;
False.
Motor
de
inferência
Respostas alternativas que satisfazem a consulta
![Page 8: UNIFICAÇÃO EM PROLOG - dainf.ct.utfpr.edu.brtacla/logica/prolog/000-IntroducaoAo... · 3 PROF. CESAR A. TACLA UTFPR/CURITIBA PROLOG: UTILIZAÇÃO Seu uso evita que o programador](https://reader031.vdocuments.mx/reader031/viewer/2022021911/5c22c09009d3f20b058c6bfc/html5/thumbnails/8.jpg)
8 PROF. CESAR A. TACLA UTFPR/CURITIBA
PRIMEIROS PASSOS
SWI PROLOG
![Page 9: UNIFICAÇÃO EM PROLOG - dainf.ct.utfpr.edu.brtacla/logica/prolog/000-IntroducaoAo... · 3 PROF. CESAR A. TACLA UTFPR/CURITIBA PROLOG: UTILIZAÇÃO Seu uso evita que o programador](https://reader031.vdocuments.mx/reader031/viewer/2022021911/5c22c09009d3f20b058c6bfc/html5/thumbnails/9.jpg)
9 PROF. CESAR A. TACLA UTFPR/CURITIBA
EXECUTAR NO LINUX
1. Abra um xterm
2. No xterm, swipl
3. No ambiente PROLOG tecle emacs
![Page 10: UNIFICAÇÃO EM PROLOG - dainf.ct.utfpr.edu.brtacla/logica/prolog/000-IntroducaoAo... · 3 PROF. CESAR A. TACLA UTFPR/CURITIBA PROLOG: UTILIZAÇÃO Seu uso evita que o programador](https://reader031.vdocuments.mx/reader031/viewer/2022021911/5c22c09009d3f20b058c6bfc/html5/thumbnails/10.jpg)
10 PROF. CESAR A. TACLA UTFPR/CURITIBA
Exemplo em Lógica Proposicional
% ?- voa.
titi. % titi eh uma proposicao verdadeira (fato)
passaro :- titi. % regra
voa :- passaro. % regra
Fatos e regras, mas fatos também são regras!
exLP-020-titi
![Page 11: UNIFICAÇÃO EM PROLOG - dainf.ct.utfpr.edu.brtacla/logica/prolog/000-IntroducaoAo... · 3 PROF. CESAR A. TACLA UTFPR/CURITIBA PROLOG: UTILIZAÇÃO Seu uso evita que o programador](https://reader031.vdocuments.mx/reader031/viewer/2022021911/5c22c09009d3f20b058c6bfc/html5/thumbnails/11.jpg)
11 PROF. CESAR A. TACLA UTFPR/CURITIBA
Exemplo em Lógica Proposiciona
% E de uma menina?
% ?- menina.
%
estudaNoPrimeiroGrau.
sexoFeminino.
crianca :- estudaNoPrimeiroGrau.
menina :- sexoFeminino, crianca.
exLP-010-00-menina
Regras com vários antecedentes
![Page 12: UNIFICAÇÃO EM PROLOG - dainf.ct.utfpr.edu.brtacla/logica/prolog/000-IntroducaoAo... · 3 PROF. CESAR A. TACLA UTFPR/CURITIBA PROLOG: UTILIZAÇÃO Seu uso evita que o programador](https://reader031.vdocuments.mx/reader031/viewer/2022021911/5c22c09009d3f20b058c6bfc/html5/thumbnails/12.jpg)
12 PROF. CESAR A. TACLA UTFPR/CURITIBA
Exemplo em lógica proposicional
Múltiplas respostas
No exemplo anterior, acrescente mais um fato afirmando que a tal
pessoa estuda no jardim de infância (além de estudar no 1º. grau).
Faça o trace manual.
Compare-o com o trace obtido automaticamente.
exLP-010-02-menina
![Page 13: UNIFICAÇÃO EM PROLOG - dainf.ct.utfpr.edu.brtacla/logica/prolog/000-IntroducaoAo... · 3 PROF. CESAR A. TACLA UTFPR/CURITIBA PROLOG: UTILIZAÇÃO Seu uso evita que o programador](https://reader031.vdocuments.mx/reader031/viewer/2022021911/5c22c09009d3f20b058c6bfc/html5/thumbnails/13.jpg)
13 PROF. CESAR A. TACLA UTFPR/CURITIBA
SINTAXE
variáveis: em MAIÚSCULAS Símbolos de
constantes: em minúsculas
predicados: em minúsculas
![Page 14: UNIFICAÇÃO EM PROLOG - dainf.ct.utfpr.edu.brtacla/logica/prolog/000-IntroducaoAo... · 3 PROF. CESAR A. TACLA UTFPR/CURITIBA PROLOG: UTILIZAÇÃO Seu uso evita que o programador](https://reader031.vdocuments.mx/reader031/viewer/2022021911/5c22c09009d3f20b058c6bfc/html5/thumbnails/14.jpg)
14 PROF. CESAR A. TACLA UTFPR/CURITIBA
OPERADORES ARITMÉTICOS E RELACIONAIS
SWI PROLOG
![Page 15: UNIFICAÇÃO EM PROLOG - dainf.ct.utfpr.edu.brtacla/logica/prolog/000-IntroducaoAo... · 3 PROF. CESAR A. TACLA UTFPR/CURITIBA PROLOG: UTILIZAÇÃO Seu uso evita que o programador](https://reader031.vdocuments.mx/reader031/viewer/2022021911/5c22c09009d3f20b058c6bfc/html5/thumbnails/15.jpg)
15 PROF. CESAR A. TACLA UTFPR/CURITIBA
OPERADORES RELACIONAIS
X = Y X e Y são iguais;
X \= Y X e Y são diferentes;
X < Y X é menor que Y;
X > Y X é maior que Y;
X =< Y X é menor ou igual a Y;
X >= Y X é maior ou igual a Y.
X =:= Y X e Y são iguais (p/ números);
X =\= Y X e Y são diferentes (p/ números).
![Page 16: UNIFICAÇÃO EM PROLOG - dainf.ct.utfpr.edu.brtacla/logica/prolog/000-IntroducaoAo... · 3 PROF. CESAR A. TACLA UTFPR/CURITIBA PROLOG: UTILIZAÇÃO Seu uso evita que o programador](https://reader031.vdocuments.mx/reader031/viewer/2022021911/5c22c09009d3f20b058c6bfc/html5/thumbnails/16.jpg)
16 PROF. CESAR A. TACLA UTFPR/CURITIBA
OPERADORES RELACIONAIS
CUIDADOS
?- 3 = 2 + 1.
Interpretação:
o símbolo 3 é igual ao símbolo 2 + 1?
FALSO
?- 3 is 2 + 1. ou 3 =:= 2 + 1.
Interpretação:
o símbolo 3 é igual ao símbolo que resulta da operação 2 + 1?
VERDADEIRO
![Page 17: UNIFICAÇÃO EM PROLOG - dainf.ct.utfpr.edu.brtacla/logica/prolog/000-IntroducaoAo... · 3 PROF. CESAR A. TACLA UTFPR/CURITIBA PROLOG: UTILIZAÇÃO Seu uso evita que o programador](https://reader031.vdocuments.mx/reader031/viewer/2022021911/5c22c09009d3f20b058c6bfc/html5/thumbnails/17.jpg)
17 PROF. CESAR A. TACLA UTFPR/CURITIBA
ARITMÉTICOS
Operadores aritméticos X+Y soma de X e Y;
X – Y diferença de X e Y;
X * Y multiplicação de X por Y;
X / Y divisão de X por Y;
X mod Y resto da divisão de X por Y.
Exemplo: X is 6 mod 4.
Se teclar 6 mod 4 direto não funciona!
![Page 18: UNIFICAÇÃO EM PROLOG - dainf.ct.utfpr.edu.brtacla/logica/prolog/000-IntroducaoAo... · 3 PROF. CESAR A. TACLA UTFPR/CURITIBA PROLOG: UTILIZAÇÃO Seu uso evita que o programador](https://reader031.vdocuments.mx/reader031/viewer/2022021911/5c22c09009d3f20b058c6bfc/html5/thumbnails/18.jpg)
18 PROF. CESAR A. TACLA UTFPR/CURITIBA
ATRIBUIÇÃO
Atribuição de valores numéricos “is”: ?- X is 10 + 2.
Negação de predicados: \+ not
![Page 19: UNIFICAÇÃO EM PROLOG - dainf.ct.utfpr.edu.brtacla/logica/prolog/000-IntroducaoAo... · 3 PROF. CESAR A. TACLA UTFPR/CURITIBA PROLOG: UTILIZAÇÃO Seu uso evita que o programador](https://reader031.vdocuments.mx/reader031/viewer/2022021911/5c22c09009d3f20b058c6bfc/html5/thumbnails/19.jpg)
19 PROF. CESAR A. TACLA UTFPR/CURITIBA
PROGRAMAS BÁSICOS
![Page 20: UNIFICAÇÃO EM PROLOG - dainf.ct.utfpr.edu.brtacla/logica/prolog/000-IntroducaoAo... · 3 PROF. CESAR A. TACLA UTFPR/CURITIBA PROLOG: UTILIZAÇÃO Seu uso evita que o programador](https://reader031.vdocuments.mx/reader031/viewer/2022021911/5c22c09009d3f20b058c6bfc/html5/thumbnails/20.jpg)
20 PROF. CESAR A. TACLA UTFPR/CURITIBA
PROGRAMAÇÃO BÁSICA
Básico
ex000-00-PrimeirosPassosEmPROLOG.txt
Representação de fatos e regras
ex005-00-RegrasProducao-Aprovado.pl
ex010-00-comida.pl
Modelos de LPO em PROLOG
ex170-00-teoria-modelo.pl
ex180-00-jogo-da-velha.pl
ex190-00-coloracao-mapa.pl
![Page 21: UNIFICAÇÃO EM PROLOG - dainf.ct.utfpr.edu.brtacla/logica/prolog/000-IntroducaoAo... · 3 PROF. CESAR A. TACLA UTFPR/CURITIBA PROLOG: UTILIZAÇÃO Seu uso evita que o programador](https://reader031.vdocuments.mx/reader031/viewer/2022021911/5c22c09009d3f20b058c6bfc/html5/thumbnails/21.jpg)
21 PROF. CESAR A. TACLA UTFPR/CURITIBA
PROGRAMAÇÃO
RECURSIVIDADE
ex030-00-expressividade-simpsons.pl
ex040-00-recursividade-simpsons.pl
ex200-00-mapaAciclico-sol.pl