Prolog Programação Lógica Ícaro A. Souza.

Slides:



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

Introdução à Linguagem Prolog
Pseudo-código: sintaxe
Lógica Matemática e Computacional 7 – Introdução à Programação Lógica
INTRODUÇÃO AOS APLICATIVOS JAVA
Tipos de dados, Variáveis, Expressões e Operadores
Linguagens de Programação
Shell Script Professor: João Paulo
Introdução a Programação Renata Freire
Análise e Desenvolvimento de Sistemas Prof. Maria Salete M. G. Vaz.
Introdução à Programação Lógica
Introdução à Linguagem Prolog
Introdução à Linguagem Prolog
BCC 101– Matemática Discreta
Lógica de Programação Módulo II
INTRODUÇÃO À PROGRAMAÇÃO
Programação Lógica: PROLOG
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Universidade Federal do Espírito Santo Programação II Professora: Norminda Luiza.
2. A Linguagem Prolog.
Introdução à Modelagem Conceitual 3. Prolog
Luiz A. M. Palazzo Pelotas, maio de 2010
Instrutor: Nilo Menezes
Programação em Lógica Augusto Marks Batista Guilherme dos Santos Fujiyoshi Marlon Bill Santos.
Lógica de Programação.
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
O Portal do Estudante de Computação
Algoritmos e Estruturas de Dados I Construção de Algoritmos
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.
Aula Prática - Prolog Sistemas Inteligentes /~if684
Comunicação Inclusiva Acessibilidade e Programação Web
Programação Orientada à Objetos
Conceitos e Linguagens de Programação
Introdução a Programação
Linguagens lógicas 2013 – Luiz Mauricio Nascimento Silva
INF 1771 – Inteligência Artificial
Introdução a aplicativos Java
Uma Breve Introdução á programação lógica
TÉCNICAS DE PROGRAMAÇÃO
Estrutura de Decisão e Repetição
Vetor Prof. Guilherme Baião S. Silva Adaptações:
Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery.
Linguagem de Programação JAVA
André Luiz da Costa Carvalho
Faculdade Talentos Humanos - FACTHUS - Algoritmo I - Rogério Rodrigues
Conceitos Básicos Luis Antonio Tavares
Sistemas Especialistas Podem ser definidos como programas de computador desenvolvidos para representar o conhecimento humano num dado domínio específico.
Introdução à Linguagem C
INTRODUÇÃO À PROGRAMAÇÃO EM LÓGICA Profa. Joseluce de Farias Cunha
Programação de PIC em C Exposição das funções básicas para
INE Fundamentos de Matemática Discreta para a Computação
Programação Lógica com Prolog
MatLab (Matrix Laboratory)
Fundamentos de linguagens de programação
ALGORITMOS AULA 3. Objetivos Apresentação das estruturas básicas; Definição de tipos de dados; Seqüência de ações; Operações – Atribuições; – Entrada.
Inteligência Artificial: A Linguagem Prolog (Parte 1)
Algoritmos.
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
Lógica Aula 3.
Linguagens de Programação
Revisão 2º Bimestre Inteligência Artificial - IA Nome: Leonardo Brussolo de Paula.
Aula prática 7 Strings Monitoria de Introdução à Programação.
Adriano A. Ribeiro. Português Estruturado Apesar do Português Estruturado ser uma linguagem bastante simplificada, ela possui todos os elementos básicos.
Desvios Encadeados e Operadores Lógicos Cleone Silva
Lógica de Programação Aula 06 Prof. Marcelo Marcony.
Transcrição da apresentação:

Prolog Programação Lógica Ícaro A. Souza

> Roteiro: 1. Surgimento 2. Característica 3. Tipo de Dados 5. Fatos ( Base de Dados ) 6. Consultas 7. Regras 8. Listas 9. Predicados do Prolog 10. Exercícios

1. Surgimento Foi criada em meados de 1972 por Alain Colmerauer e Philippe Roussel, baseados no conceito de Robert Kowalski da interpretação procedimental das cláusulas de Horn. A motivação para isso veio em parte da vontade de reconciliar o uso da lógica como uma linguagem declarativa de representação do conhecimento com a representação procedimental do conhecimento, que era popular na América do Norte no final da década de 1960 para início de 1970.

2. Característica O Prolog é uma linguagem declarativa, significando que em vez de o programa estipular a maneira de chegar à solução, passo a passo, (como nas linguagens procedimentais ou imperativas), limita-se a fornecer uma descrição do problema que se pretende computar. Usa uma coleção de fatos ( base de dados )  e de relações lógicas ( regras ) que exprimem o domínio relacional do problema a resolver.

2. Característica Comentário Ex: Base de Dados e Regra Operador de Negação

3. Tipo de Dados Todos os dados são tratados como sendo de um único tipo, Termo, cuja natureza depende da forma como esse termo foi declarado. Ou seja, os elementos léxicos utilizados na sua declaração determinam se esse termo será um número, um texto, uma variável, uma estrutura complexa e assim por diante.

3.1 Átomos As constantes de texto são introduzidas por meio de átomos. Um átomo é uma sequência constituída de letras, números, mas iniciando com uma letra minúscula.  Ex: ana ana_maria ‘ana’ ‘ana maria’

3.2 Números Um número é uma sequência de dígitos, permitindo também os sinais de . (para números reais), - (número negativo) e e (notação científica). Algumas implementações do Prolog não fazem distinção entre inteiros e números reais. Ex: 321 3.21

3.3 Variáveis Variáveis são declaradas da mesma forma que átomos, porém iniciando com uma letra maiúscula. No ambiente Prolog uma variável não é um contêiner cujo valor pode ser atribuído (como ocorre nas linguagens imperativas). Seu comportamento é mais próximo de um padrão, que é incrementalmente especificado pela unificação. Em outras palavras, uma variável Prolog é como uma incógnita, cujo valor é desconhecido a princípio, mas após descoberto, não sofre mais mudanças. Ex: Ana X _X _Ana _ana

4. Operadores Operador Símbolo Exemplo E , A , B OU ; A ; B Negação \+ Igualdade = A = B Diferença \== A \== B

5. Fatos (Base de Dados) A unidade básica do Prolog é o predicado, que é postulado verdadeiro. Um predicado consiste de uma cabeça e um número de argumentos.  Linha 5 se lê: cachorro é um animal Linha 6 se lê: jose é pai de antonio

6. Consultas Para recuperar informações de um programa lógico, usamos consultas. Uma consulta pergunta se uma determinado relacionamento existe entre objetos. Não Está na Base de Dados Linha 19: cachorro é um animal? Linha 20: gato é um animal? Linha 21: Quem é animal?

7. Regras O segundo tipo de predicado no Prolog é a regra, também chamada de "cláusula". Ex: A luz está acesa se o interruptor estiver ligado. Obs: ‘ :- ’ significa ‘ SE ’ NomeRegra(Varivável(is) ) :- Condições .

8. Lista Uma lista não é um tipo de dados à parte, mas sim definida por uma construção recursiva (usando o termo '.'/2): o átomo [] é uma lista vazia; se T é uma lista e H é um elemento, então o termo '.'(H, T) é uma lista.

8. Listas findall(Variável, Condição, Lista). Insere na Lista sem ordenar e com repetição. setof(Variável,Condicão,Lista). Insere na lista ordenadamente e sem repetir.

9. Predicados do Prolog

10. Exercícios 10.1 Suponha os seguintes fatos para registrar a média destes alunos: nota(joao,5.0). nota(maria,6.0). nota(joana,8.0). nota(mariana,2.0). nota(pedro, -3). nota(antonio, 20). Construa regras para identificar o estado dos alunos quanto a: aprovado (de 7.0 a 10.0), recuperação (de 5.0 até menor que 7.0), reprovado (de 0.0 a menor que 5.0) e erro se nenhuma das faixas anteriores.

10.1 Solução: Consultas:

10.2 Faça uma Regra de nome subConj onde a mesma deve receber duas listas e indicar se a primeira é subconjunto da segunda ou não.

10.3 Suponha os seguintes fatos: Faça uma regra que determine os casais através da afinidade do gosto pelo filme. O nome da regra será afinidadeFilme que terá como parametros Homem e Mulher. Depois use a regra afinidadeFilme e faça a regra pessoasGeneroIguais que irá receber uma Lista de pessoas e um gênero, caso ao chamar a pessoa só seja passado por parametro o gênero a função retornará uma lista com todas as pessoas que gostam do mesmo gênero de Filme.

Solução 10.3

Consultas 10.3: