Escolar Documentos
Profissional Documentos
Cultura Documentos
de
Programação
Profa. Vandecia Fernandes – BiCT/ECP/UFMA
Referências: Sebesta, Robert W. Conceitos de linguagens de programação. 11. ed. 2018., Varejão, F. M. Linguagens de
Programação: Conceitos e Técnicas. 2004. Agradecimentos aos professores Alex Barradas e Sergio Costa.
Roteiro
• O paradigma lógico
• Introdução ao prolog
2
Tipos de Paradigmas
Estruturado
Impera'vo
Orientado a
objetos
Funcional
Declarativo
Lógico
3
Tipos de Paradigmas
Estruturado
Imperativo
Orientado a
objetos
Funcional
Declarativo
Lógico
4
Introdução
• Linguagens para programação lógica:
5
Programação Lógica
6
Aplicações da programação lógica
• Sistemas de gerenciamento de bases de dados relacionais
7
Aplicações da programação lógica
• Sistemas especialista
8
Aplicações da programação lógica
• Processamento de linguagem natural
• Certos tipos de PLN podem ser feitos com programação lógica: interfaces de
linguagem natural para sistemas de software, como bases de dados inteligentes
e outros sistemas baseados em conhecimento
9
Lógica Formal
• Proposições:
• sentença lógica que pode ou não ser verdadeira. Consiste em objetos e
relacionamentos entre objetos.
• Exemplo: “Maria gosta de flores” gosta(maria,flores)
• Lógica simbólica:
• Usada para as três necessidades básicas da lógica formal:
• expressar proposições;
• expressar os relacionamentos entre proposições;
• Descrever como novas proposições podem ser inferidas a partir de outras
proposições que se presume verdadeiras.
10
Lógica Formal
11
Proposições
• Em proposições:
12
Proposições
• Esses operadores são definidos por aquilo que chamamos de tabelas verdade.
13
Tabela verdade
p ¬p
V F
F V
14
Tabela verdade
p q p∧q p∨q
V V V V
V F F V
F V F V
F F F F
15
Tabela verdade
p q p⟹q p⟺q
V V V V
V F F F
F V V F
F F V V
16
Lógica Formal
17
Lógica Formal
• Exemplo:
Para todo número primo x, existe um outro número primo y, tal que y é
maior do que x.
18
Função com valor boleano
• Função com valor boleano - resultado verdadeiro (true) ou falso (false).
• Exemplos:
• primo(x)
• verdadeiro (true), se o valor inteiro x for um número primo;
• falso (false) em caso contrário.
• fala(x, y)
• verdadeiro se a pessoa x fala a língua y.
19
Função com valor boleano
• Exemplos:
• ∀x(fala(x, Russo))
• verdadeiro se todos no planeta falam russo;
• falso, caso contrário.
20
Função com valor boleano
• Exemplos:
• ∃x(fala(x, Russo))
• verdadeiro se pelo menos uma pessoa no planeta fala russo;
• falso em caso contrário.
• ∀x∃y(fala(x,y))
• verdadeiro se toda pessoa no planeta fala uma linguagem;
• falso em caso contrário.
21
Cálculo de predicados
• O cálculo de predicados fornece um método de expressar coleções de
proposições.
• Resolução:
• regra de inferência que permite às proposições inferidas serem computadas a
partir de proposições dadas
• fornece um método com aplicação potencial para a prova automática de
teoremas.
• Uma cláusula de Horn tem uma parte mais importante h (atributo) , e um corpo
(lista de atributos p1, p2, . . ., pn).
h ← p1, p2, . . ., pn
h é true somente se p1, p2, . . . e pn forem simultaneamente true.
24
Prolog
• Programming in logic.
25
Prolog
• Ideia:
• Desenvolver uma linguagem de programação baseada em lógica.
26
Prolog
• SWI-Prolog:
• http://www.swi-prolog.org/
• TurboProlog;
• LPAProlog;
• GNUProlog;
• ...
• Online:
• https://swish.swi-prolog.org/
27
Prolog - SWISH
28
Prolog - SWISH
Base de
Conhecimento
Respostas
Prompt
29
Prolog
• Um programa em Prolog é composto de:
30
Prolog - Fatos
• Fatos:
• Servem para estabelecer um relacionamento existente entre objetos de um
determinado contexto de discurso
• Predicados: idenRficadores de relacionamentos
• Átomos: idenRficadores de objetos
31
Fatos
• Exemplos:
• mulher(maria).
• valioso(ouro).
• gosta(pedro, maria).
• entrega(jose, livro, maria).
32
Fatos
• A aridade é a quantidade de argumentos:
• mulher(maria). % 1 ou mulher/1
• valioso(ouro). % 1 ou valioso/1
• gosta(pedro, maria). % 2 ou gosta/2
• entrega(jose, livro, maria). % 3 ou entrega/3
33
Consultas
• Consultas:
• Exemplo:
?- gosta(maria,pedro).
• A resposta será yes ou no, de acordo com os fatos estabelecidos.
34
Variáveis
• Variáveis
• Variáveis distingüem-se dos objetos por terem nomes iniciados com letra maiúscula.
• Exemplo:
gosta(maria, flores).
gosta(maria, pedro).
gosta(paulo, maria).
?- gosta(maria, X).
X = flores
• Exemplo:
• turma(matemaRca, turma1, rodrigo).
• turma(fisica, turma2, rodrigo).
• turma(fisica, turma3, ivan).
• %% Consulta: Quais sao as disciplinas de Rodrigo (não exibe as turmas)?
turma(D, _T, rodrigo).
36
Prolog
• Conjução (E) – usa-se a , (vírgula)
• Negação – not
• Comparação:
== (igual)
\== (diferente).
37
Prolog - Regras
• Regras:
38
Regras
• Exemplo:
39
Grafos de relacionamentos
• Exemplo:
40
Consulta
41
Consulta
• Backtracking:
• É um procedimento que segue o padrão busca em profundidade.
• A árvore é percorrida sistemaGcamente de cima para baixo e da esquerda para a direita.
• Exemplo:
42
Exercício
• Considere a árvore genealógica a seguir:
43
Exercício
44
Exercício
2-Defina as relações: pai, mãe, filho, filha e irmãos
45
Exercício
3- Defina as relações: tio, tia, primo, prima
46
NOTA DE ESCLARECIMENTO: Direito de Imagem
https://portais.ufma.br/PortalUfma/paginas/noticias/noticia.jsf?id=57033
47