Introdução à Linguagem Prolog

Slides:



Advertisements
Apresentações semelhantes
Lógica de Predicados e Representação de Conhecimento
Advertisements

Capítulo 8 A linguagem da Lógica de Predicados
Capítulo 7 Tableaux semânticos e resolução na Lógica Proposicional
Capítulo 9 A semântica da Lógica de Predicados
Prolog: Predicados Built-in 1
Lógica Matemática e Computacional 7 – Introdução à Programação Lógica
Semântica.
SLX: Procedimentos para WFSX SLX (SL with eXplicit negation) é um procedimento top- down para a WFSXp –Aqui apresenta-se apenas a caracterização de AND-trees.
Introdução à Programação Lógica
Introdução à Linguagem Prolog
Introdução à Linguagem Prolog
Introdução à Linguagem Prolog
Cálculo Relacional Datalog não-recursivo
Busca em Profundidade Para encontrar um caminho de solução Sol, de um dado nó para algum nó objetivo Se N é um nó objetivo, então Sol=[N] Se há um nó N1.
BCC 101– Matemática Discreta
Life Leonardo Lemos (lal)Paulo Oliva (pbo)& Controle de Fluxo * de predicados: Como em Prolog: fail. conjunção (A,B). disjunção (A;B). Diferente de Prolog:
Prolog: Predicados Built-in 2
LIFE: predicados, funções e sorts built-in Jacques Robin Paulo Oliva Leonardo Lemos DI-UFPE.
Conceitos Básicos Dado: fato do mundo real que está registrado e possui um significado implícito no contexto de um domínio de aplicação Exemplos: endereço,
6. Backtracking e Controle
2. A Linguagem Prolog.
3. Sintaxe e Semântica.
Introdução à Modelagem Conceitual 3. Prolog
Luiz A. M. Palazzo Pelotas, maio de 2010
Lógica para Computação
Programação em Lógica Augusto Marks Batista Guilherme dos Santos Fujiyoshi Marlon Bill Santos.
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
Luís Rodrigues – Universidade dos Açores
Inteligência Artificial: A Linguagem Prolog (parte 2)
Sintaxe e Semântica do PROLOG.
Aula Prática - Prolog Sistemas Inteligentes /~if684
LISTAS Uma lista é uma estrutura de dados muito comum na programação não numérica (com particular destaque na computação simbólica onde representa quase.
Prolog Programação Lógica Ícaro A. Souza.
Aula Prática - Prolog Sistemas Inteligentes /~if684
INQUER Interacção Pessoa-Máquina em Linguagem Natural
Prolog Paradigma Declarativo - Lógico
Linguagens lógicas 2013 – Luiz Mauricio Nascimento Silva
INF 1771 – Inteligência Artificial
Lógicas e Inferência para IA
Implementação de Resolução
Uma Breve Introdução á programação lógica
BCC101 Matemática Discreta I
Procedimentos Pré-definidos em prolog comunicação
Sistemas Baseados em Conhecimento
André Luiz da Costa Carvalho
UNIVERSIDADE SEVERINO SOMBRA
Sistemas Especialistas Podem ser definidos como programas de computador desenvolvidos para representar o conhecimento humano num dado domínio específico.
INTRODUÇÃO À PROGRAMAÇÃO EM LÓGICA Profa. Joseluce de Farias Cunha
Lógica para Computação
Semântica de uma fórmula da lógica da 1a ordem via modelo de Herbrand
Inteligência Artificial: Lógica Proposicional e Prolog
Banco de Dados Dedutivos
Algoritmos e Estrutura de Dados I
Programação Lógica com Prolog
Matemática Discreta Bacharelado em Sistemas de Informação
Inteligência Artificial: A Linguagem Prolog (Parte 1)
Inteligência Artificial I
Prolog - 1 Prolog m Prolog concretiza o modelo de computação abstracto da Programação em Lógica q escolher o golo mais à esquerda na resolvente q (em vez.
PowerPoint Aula-4 Exercício de Fixação.
Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.
Revisão 1º Bimestre Inteligência Artificial
NOÇÕES DE LÓGICA Professor: Renilson.
PROGRAMAÇÃO LÓGICA Vinicius Ponte Machado Aula 13 – Predicados de Controle UNIVERSIDADE FEDERAL DO PIAUÍ – UFPI Departamento de Informática & Estatística.
Revisão 2º Bimestre Inteligência Artificial - IA Nome: Leonardo Brussolo de Paula.
LÓGICA DE PROGRAMAÇÃO Curso: Técnico em Informática Professor: Ronaldo Disciplina: Lógica de Programação.
Linguagem de Programação Prof. Fabricio Roulin Bittencout
1 Lógica de Predicados BCC101 Matemática Discreta I.
Introdução à Lógica Computacional
Transcrição da apresentação:

Introdução à Linguagem Prolog Prof. Fabrício Enembreck PPGIA – Programa de Pós Graduação em Informática Aplicada

Conteúdo do Curso Introdução à Lógica e à Programação Lógica Introdução ao Prolog e ao SWI-Prolog Matching e Backtraking Múltiplas soluções Listas e predicados recursivos Grafos em Prolog

Matching e Backtraking Procedimento que permite ao Prolog ser não determinístico Trabalhando com cláusulas unitárias (fatos) p(a). p(b). p(c). r(d). r(e). ?- p(X). X = a ; X = b ; X = c ; no ?- p(X), r(Y). X = a Y = d ; X = a Y = e ; X = b Y = d ; X = b Y = e ; X = c Y = d ; X = c Y = e ; no

Matching e Backtraking (cont.) Trabalhando com regras p(a). p(b). p(c). p(X,Y) :- p(X), r(Y). r(d). r(e). ?- p(X, Y). X = a Y = d ; X = a Y = e ; X = b Y = d ; X = b Y = e ; X = c Y = d ; X = c Y = e ; no

Matching e Backtraking (cont.) Evitando o Backtraking com o cut: “!” p(a). p(b). p(c). p(X,Y) :- p(X), r(Y). r(d). r(e). ?- p(X),!,r(Y). ?- p(X, Y),!. ?- p(X),r(Y),!.

Matching e Backtraking (cont.) Exemplo com o cut: Implementando o “maior/3” com apenas uma comparação maior(X,Y,X) :- X > Y. maior(X,Y,Y) :- Y >= X. maior(X,Y,X) :- X > Y, !. maior(_,Y,Y). Variável anônima

Matching e Backtraking (cont.) Tipos de cut: Cut Verde Cut Vermelho maior(X,Y,X) :- X > Y, !. maior(X,Y,Y) :- Y >= X. maior(X,Y,X) :- X > Y, !. maior(_,Y,Y). Variável livre Utilizado apenas para otimizar a performance Modifica a semântica do programa

Matching e Backtraking (cont.) Provocando o Backtraking com o “fail” Todo predicado utilizando o comando “fail” sempre falhará ?- p(X),r(Y), fail. no p(a). p(b). p(c). p(X,Y) :- p(X), r(Y). r(d). r(e).

Matching e Backtraking (cont.) Exemplo do “fail” p(a). p(b) :- !. p(c). p(X,Y) :- p(X), r(Y). r(d). r(e). q(X, Y) :- p(X),r(Y), write(X),tab(1), write(Y),nl, fail. ?- q(X,Y). a d a e b d b e no

Matching e Backtraking (cont.) Usando Negação como Falha Implemente um predicado Prolog chamado “not” que recebe um outro predicado “P” e é verdade P é falso e falso se P é verdade: not(P) :- P, !, fail. not(_).

Exercícios A partir da base de fatos, encontre a solução para os questionamentos p(a). p(b). p(c). p(X,Y) :- p(X), r(Y), q(X). r(a). r(e) :- !. r(f). q(a) . q(b). ?- p(X), r(Y). ?- p(X),r(Y),q(Z). ?- p(X),!,r(Y),q(Z). ?- !,p(X),!,r(Y),q(Z). ?- p(X,Y),!.

Exercícios A partir da base de fatos, escreva um programa Prolog usando o princípio da negação como falha para denotar a seguinte relação: “Ana gosta de todos os animais menos macaco” animal(onca). animal(papagaio). animal(macaco). animal(cachorro). animal(gato).