Buscar

Introdução à Linguagem Prolog

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

PROLOG
Programmation en Logique
1 - LÓGICA
PROLOG
Estudo das estruturas de raciocínio
Lógica formal
Lógica matemática
Lógica de predicados
Lógica nebulosa
...
2 - HISTÓRIA
PROLOG
Origem
Motivação: Lógica Formal e Cálculo Predicacional.
Criada em 1972, na França, por Alain Colmerauer na Universidade de Aix-Marseille.
Desenvolvimento impulsionado pelo desenvolvimento dos Sistemas Computacionais de Quinta Geração
3 -APLICAÇÕES DA PROLOG
PROLOG
Principais Aplicações
Sistemas Baseados em Conhecimentos
Sistemas de Base de Dados
Sistemas Especialistas
Processamento da Linguagem Natural
Educação
Modelagem de Arquiteturas Não-Convencionais
Inteligência Artificial
4 – PARADIGMA LÓGICO
PROLOG
PROGRAMAÇÃO VOLTADA À LÓGICA
Planner
PROLOG
Mercury
Visual Prolog
Oz
Frill
Paradigma Declarativo – Lógico
Definições:
Paradigma Declarativo: 
Foca na solução e não no problema propriamente dito.
Paradigma Declarativo (Lógico): 
Pergunta chave: “Qual é o problema?”
Descobrir um algoritmo geral para solucionar problemas
Obstaculo: encontrar um algoritmo geral que resolva determinado tipo de problema.
Paradigma Declarativo – Lógico
Desvantagens.
Variáveis de programa sem tipo
Vantagens.
Alto nível de abstração
Determinação de todas as soluções possíveis para determinado problema.
Exemplo:
Cálculo de Predicados
Predicado;
Preposição;
Cálculo;
Exemplos de Predicados:
P(x) : “(x) é P”;
P(x,y) : “(x) é P de (y)”.
Cálculo de Predicados
Exemplo de Proposição:
P: “Cristina é estudante de computação”;
PROLOG
LP usada para solucionar problemas que envolvem objetos e suas relações
Declaração;
Definição;
Resposta.
PROLOG
Estabelecer Relações;
Usado em:
Bioquímica;
Inteligência Artificial;
Automação de Projetos.
Estruturas do PROLOG
Termos (variáveis)
X, _4, altura, Quem.
Fatos
amiga(joana,maria).
amiga(clara,maria).
Questões
?- amiga(joana,Quem) , amiga(clara,Quem).
Exemplo:
Banco de dados (meta-dados)
Regra
amiga(joana,maria).
amiga_intima(Ela1,Ela2) :-
amiga(Ela1,Ela2),
amiga(Ela2,Ela1),
ama(Ela1,Ela2),
ama(Ela2,Ela1).
amiga(maria,joana).
amiga(maria,clara).
amiga(clara,maria).
ama(joana,maria).
ama(maria,joana).
Pergunta
?- amiga_intima(maria, clara).
PROGRAMASCONVENCIONAIS
PROGRAMAS EM LÓGICA
Processamento Numérico
Processamento Simbólico
Soluções Algorítmicas
Soluções Heurísticas
Estruturasde Controle e Conhecimento Integradas
Estruturasde Controle e Conhecimento Separadas
Difícil modificação
Fácil modificação
Somente respostas totalmente corretas
Incluirespostas parcialmente corretas
Somente a melhor solução possível
Incluem todas as soluções possíveis
5 - PROLOG
PROLOG
Prolog
Orientada ao Processamento Simbólico
Semântica declarativa
Programas reversíveis
Permite obter respostas alternativas
Suporta recursão e iteração
Compilada
Principais Características
Paradigma Lógico
Processamento Simbólico
Soluções Heurísticas
Estrutura de Controle e Conhecimentos Separadas
Fácil Modificação
Respostas Parcialmente Corretas
Inclui todas as soluções possíveis
Linguagem de Programação/Especificações
Capacidade Dedutiva
Representação de relações reversíveis
Recursividade
6 – COMPILADORES PROLOG
PROLOG
GNU - PROLOG
SWI - PROLOG
7 – TIPOS DE DADOS EM PROLOG
PROLOG
Tipos de Dados - Prolog
Termos Compostos
8 – COMANDOS BÁSICOS
PROLOG
COMANDOS TRIVIAIS
Declaração de fatos
Definição de regras de inferência
Comandos de Escrita e Leitura
Comandos aritméticos
Declarando fatos
Exemplo:
gosta(maria, pedro).
Equivale a declarar a seguinte afirmação:
Maria gosta de Pedro
Fatos
Exemplo:
gosta(maria, pedro).
Relação
Objetos
Declarando conjunções
Exemplo:
gosta(maria, pedro), namora(bia, caio). 
Equivale a declarar a seguinte afirmação:
Maria gosta de Pedro e Bia namora Caio.
Declarando regras de inferência (Cláusulas)
Exemplo:
filho(Y, maria, pedro) :- mae(maria, Y), pai(pedro, Y).
Equivale a declarar a seguinte afirmação:
Se Maria é mãe de Y, e Pedro é pai de Y, então Y é filho de Maria e Pedro
Operadores Lógicos
Operador em Língua Natural
Operador em Prolog
‘e’ (Conjunção)
,
‘ou’ (Disjunção)
;
‘se... então’ (Implicação)
:-
‘não’ (Negação)
not()
‘é’ (Afirmação)
is
Write e read
write(‘teste’). -> Imprime texto na saída
read(X). -> Lê um valor e unifica à variável X
9 – ESTRUTURA DE UM PROGRAMA EM PROLOG
PROLOG
Fatos
Em geral, programas escritos em PROLOG lidam com objetos e relações entre esses objetos. 
A estrutura de um programa em PROLOG é a seguinte: 
Fatos sobre os objetos
Regras de Inferência
Perguntas sobre os objetos (consultas)
Código
Execução
Fazendo consultas ao sistema
Para fazer uma consulta ao sistema PROLOG, deve-se iniciar com
 ?- 
O sistema responderá SIM ou NÃO, dependendo dos fatos declarados em seu banco de dados.
O Sistema Prolog também permite respostas múltiplas.
10 – RECURSIVIDADE E ESTRUTURA DE DADOS EM PROLOG
PROLOG
Exemplo de Programa Recursivo
Estrutura de Dados
As principais estrutura de dados implementadas em PROLOG, são as árvores. Porém, pode-se implementar listas, filas e pilhas também.
11 – EXEMPLO DE UM PROGRAMA EM PROLOG
PROLOG
PARA QUEM QUER APRENDER MAIS SOBRE PROLOG
Curso da UFPE sobre PROLOG:
http://www.di.ufpe.br/~compint/aulas-IAS/prolog-962-971/#Intro 
Learn Prolog Now:
http://www.learnprolognow.org/lpnpage.php?pageid=top
LIVROS, APOSTILAS E MATERIAIS RECOMENDADOS
PALAZZO, Luís A. M; Introdução à Programação PROLOG; UCPEL – 1997.
BARBOSA, Alexandre de Andrade; CUNHA, Joseluce de Farias; Introdução à Programação em Lógica; CCT – UFCG – 2006.
CASANOVA, Marco A.; GIORNO, Fernando A. C.; FURTADO, Antônio L.; Programação em Lógica e a Linguagem PROLOG; 2006 
SEBESTA, Robert W.; Conceitos de linguagens de programação; 5. ed; Bookman; 2003.
MORTARI, César A.; Introdução à Lógica; 1ª ed.; UNESP – Imprensa Oficial do Estado; 2001

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais