Baixe o app para aproveitar ainda mais
Prévia do material em texto
Lista de Exercícios de Prolog Inteligência Artificial (IAAE9) 9º Semestre de Engenharia de Controle e Automação 1. Existem alguns registros antigos da família Pinheiro que indicam que o casal José e Maria criou dois filhos, o João e a Ana; e que a Ana teve duas filhas, a Helena e a Joana. Além disso, o Mário é filho do João, e o Carlos nasceu da relação entre a Helena 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, primo (considerem primo e prima como “primo”). c. Formule em Prolog as seguintes questões: i. O João é filho do José? ii. Quem são os filhos da Maria? iii. Quem são os primos do Mário? iv. Quantos sobrinhos/sobrinhas existem na família Pinheiro? v. Quem são os ascendentes do Carlos? vi. A Helena tem irmãos? E irmãs? 2. Considere os fatos abaixo e crie uma regra podeVender onde o primeiro argumento é a pessoa, o segundo o carro e o terceiro é o ano atual, onde a pessoa só pode vender o carro se o carro for comprado por ela nos últimos 10 anos e se seu valor for menor do que R$100.000,00. comprou(joao, honda). ano(honda, 1997). comprou(joao, uno). ano(uno, 1998). valor(honda, 120000). valor(uno, 70000). 3. Traduza os seguintes fatos para o Prolog: ● Tweety é um pássaro. ● Goldie é um peixe. ● Molie é uma minhoca. ● Pássaros gostam de minhocas. ● Gatos gostam de peixes. ● Gatos gostam de pássaros. ● Amigos gostam uns dos outros. ● O meu gato é meu amigo. ● O meu gato come tudo o que gosta. ● O meu gato chama-se Silvester. a. Use Prolog para determinar tudo o que o Silvester come? b. A resposta é razoável ? Se não for, verifique se o problema está na especificação original ou na sua tradução para Prolog, corrija e execute novamente. LEMBRETE: Operadores aritméticos: +, -, *, /, mod, is. Operadores relacionais: =, \=, <, >, =<, >= 4. Escreva regras no Prolog que, dado um número N: a. Calcule o dobro de N; b. Diga se N é positivo; c. Diga se N é par ou ímpar; d. Calcule N! (de forma recursiva). 5. Este exercício pode ser feito individualmente, dupla ou trio e na próxima aula, o exemplo deverá ser explicado durante a aula. a. Encontre ou crie um exemplo simples que utiliza a estrutura de lista em Prolog. b. Encontre ou crie um exemplo simples que utiliza estrutura de repetição em Prolog. RECADINHO: Pessoal, aproveitem o tempo de aula para trabalhar na lista. Utilizem os slides da aula passada e exemplos na internet para auxiliá-los. O objetivo é que vocês entendam o básico desse novo paradigma de programação, o paradigma lógico, e se familiarizem um pouco com essa forma diferente de lógica e de programação, muito utilizada em Sistemas Especialistas.
Compartilhar