Prolog

Disponível somente no TrabalhosFeitos
  • Páginas : 11 (2600 palavras )
  • Download(s) : 0
  • Publicado : 14 de novembro de 2012
Ler documento completo
Amostra do texto


Exercícios Resolvidos em Prolog sobre Sistemas Baseados em Conhecimento
por Paulo Cortez

Unidade de Ensino Departamento de Sistemas de Informação Escola de Engenharia Universidade do Minho Guimarães, Portugal Abril, 2008

ii

Índice
1 Introdução 2 Exercícios sobre Prolog 2.1 A Árvore Genealógica da Família Pinheiro 2.2 Exercício sobre Listas 2.3 Stands de Automóveis 3 Regras deProdução 3.1 Gemas Preciosas (regras de produção simples) 3.2 Compras numa Livraria (regras de produção com incerteza) 4 Estruturas Hierárquicas 4.1 Veículos Aéreos (redes semânticas) 4.2 Naves dos Vzorg (enquadramentos, frames) 5 Procura 5.1 Blocos Infantis (procura num espaço de soluções) 5.2 Abertura de um Cofre (procura via gerar e testar) 6 Dependências Conceptuais 6.1 Ida ao Cinema 7Programação Orientada para Padrões (OPP) 7.1 Perfumes 7.2 Campeonato Europeu de Futebol Bibliografia 1 3 3 6 9 13 13 15 19 19 21 23 23 25 27 27 31 31 34 37

iii

iv

1 Introdução
Este texto pedagógico reúne um conjunto de exercícios resolvidos na linguagem Prolog para apoio à unidade curricular Sistemas Baseados em Conhecimento, do terceiro ano e segundo semestre da Licenciatura em Tecnologiase Sistemas de Informação. O objectivo é complementar a matéria que foi leccionada nas aulas teórico-práticas e práticas-laboratoriais. O texto inicia-se com exercícios gerais sobre a linguagem Prolog (Capítulo 2), seguindo-se os diversos paradigmas de representação de conhecimento leccionados nesta unidade curricular (regras de produção, estruturas hierárquicas, procura num espaço de soluções,dependências conceptuais e programação orientada a padrões). De realçar que:  todo o código apresentado neste livro foi executado no compilador gratuito1 SWI-Prolog [Wielemaker, 2008a], que corre em múltiplas plataformas, tais como o Windows, Linux ou MacOS;  cada solução apresentada deve ser analisada com algum sentido crítico, ou seja, é uma possível solução, embora não seja a única forma deresolução do exercício proposto.

1

Open-source. 1

2

2 Exercícios sobre Prolog
2.1
A
Árvore
Genealógica
da
Família
Pinheiro

Enunciado: Pouco se sabe da história passada da família Pinheiro. Existem alguns registos antigos que indicam que o casal José e Maria criou dois filhos, o João e a Ana. Que a Ana teve duas filhas, a Helena e a Joana, também parece ser verdade, segundo osmesmos registos. Além disso, o Mário é filho do João, pois muito se orgulha ele disso. Estranho também, foi constatar que o Carlos nasceu da relação entre a Helena, muito formosa, e o Mário. a) Utilizando o predicado progenitor(X,Y) (ou seja, X é progenitor de Y), represente em Prolog todos os progenitores da família Pinheiro. b) Represente em Prolog as relações: sexo (masculino ou feminino), irmã,irmão, descendente, mãe, pai, avô, tio, primo2. c) Formule em Prolog as seguintes questões: 1. O João é filho do José? 2. Quem são os filhos da Maria? 3. Quem são os primos do Mário? 4. Quantos sobrinhos/sobrinhas com um Tio existem na família Pinheiro? 5. Quem são os ascendentes do Carlos? 6. A Helena tem irmãos? E irmãs? Explicação: Este exercício envolve objectos e relações entre objectos, sendouma adaptação livre do programa family da Figura 1.8 do livro [Brakto, 1990]. Dado que o enunciado é livre neste aspecto, optou-se por utilizar a notação sexo(Nome, Sexo) para representar o sexo de cada pessoa. Em algumas das relações pode existir mais do que uma forma de resolver aquilo que é pedido. As questões da alínea c) podem ser ter diferentes interpretações (por exemplo se a questão deveretornar uma ou todas as soluções), sendo que nestes casos, optou-se por apresentar as diversas alternativas (e.g. q2a, q2b). Para correr o programa no SWI-Prolog basta executar os seguintes comandos:
?- [pinheiro]. Yes ?- q2b(X). X = [joao, ana]

(executar as restantes questões q2, q3, q3b, ...)

2

Neste caso, por primo entende-se primo ou prima. 3

Resolução: pinheiro.pl
% factos...
tracking img