Capítulo 3 Lógica de Primeira Ordem

Documentos relacionados
DESAFIO DE EINSTEIN. (supostamente atribuído a ele, por sua aparente enorme complexidade de solução)

Gemini Vetrô. Fogão portátil. Descrições

c- Muitas vezes nos deparamos com situações em que nos sentimos tão pequenos e às vezes pensamos que não vamos dar conta de solucioná-las.

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular CONTABILIDADE DE SEGUROS Ano Lectivo 2009/2010

Bombons a Granel. Série Matemática na Escola. Objetivos 1. Introduzir e mostrar aplicações do produto de matrizes.

Exemplos. Jogo dos oito :-) Mundo dos blocos (ex: torre de Hanoi) Poblema das rainhas. Criptoaritmética. Missionários e Canibais.

Faculdade de Informática e Tecnologia de Pernambuco

Tisana de Matemática

C O L É G I O I N T E G R A D O D I A D E M A Rua Washington Luiz, 566/574 Pq. 7 de Setembro Diadema SP CEP Fone: e Fax:

Vivendo em grupo. Que sugestão você daria a dona Rosa para que as galinhas não se bicassem?...

A dependência entre a inflação cabo-verdiana e a portuguesa: uma abordagem de copulas.

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular DIREITO DA ACTIVIDADE COMERCIAL Ano Lectivo 2010/2011

PESQUISA OPERACIONAL 4470E- 04

Indíce. Indice ) Identificar a sua persona (Cliente ideal)...erro! Indicador não definido. Exemplo... 4

Instalação e uso da placa XYZ XYZ

Prefácio. 2. As lições são programadas para pessoas que cumpram os seguintes requisitos:

ALGORITMOS E COMPLEXIDADE PROBLEMAS E ALGORITMOS

Programação Lógica (em uma aula!)

Espaço para logotipos de patrocinador/ colaborador, se houver.

Tema do Projeto Educativo: Quero ser grande e feliz

Por que estudar os adventistas? Cerca de 50% são vegetarianos.

Mobilidade: implicações económicas. Prof. João Confraria ( UCP )

ESCOLA MUNICIPAL ANÁPOLIS, PROFESSORA: ALUNO (A): ANO: MÊS: DOMINGO SEGUNDA TERÇA QUARTA QUINTA SEXTA SÁBADO

Colégio Batista de Guarulhos

Lógica de Predicados

Aprendendo a trabalhar com frações parciais

Estudo Interoperabilidade na Saúde Apresentação Pública

MATEMÁTICA PARA VENCER. Apostilas complementares APOSTILA 10: Exercícios Cap 01.

Parecer Jurídico Recibos Verdes e Progressão na Carreira no Ensino Particular e Cooperativo

Subsequência comum mais longa Em inglês, Longest Common Subsequence (LCS)

Atualidades em alimentos e câncer. Profa. Renata Torres Abib Bertacco

PROGRAMAÇÃO LINEAR. Formulação de problemas de programação linear e resolução gráfica

Matemática Discreta - 08

CÁLCULOS TESTES BIMESTRAL - TARDE MATEMÁTICA

Inquérito dos Hábitos de Sono aos Alunos do IST

Curso básico de Xadrez

Introdução ao cálculo-λ

12/07 MANHÃ GINÁSIO Disputa de sete metros Categorias 4, 5 e 6 (6º ano ao Ens. Médio)

MATERIAL ESCOLAR / 2016 PRIMEIRO SEMESTRE

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular COMPLEMENTOS DE PROJECTO APLICADO Ano Lectivo 2013/2014

Microcrédito e Comércio Justo

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular Globalização e Desigualdades Ano Lectivo 2014/2015

Teste Anpad Raciocínio Lógico Edição: JUNHO de 2005

Manual de Identidade Visual

UNIVERSIDADE ESTADUAL DO CEARÁ. Relatório Final: Estrutura de Dados II

Afirmação verdadeira: frase, falada ou escrita, que declara um facto que é aceite no momento em que é ouvido ou lido.

LISTA DE MATERIAIS - EDUCAÇÃO INFANTIL II

Para começar esse passo a passo, temos que falar primeiramente sobre os materiais usados na produção dessa tela:

LISTA DE MATERIAL º Ano MATERIAL DE USO INDIVIDUAL

Auxílio Estudantil Fase de análise

INICIADOS - 2ª Sessão ClubeMath

EGEA ESAPL - IPVC. Resolução de Problemas de Programação Linear, com recurso ao Excel

Em duplas os alunos receberão uma folha contendo o material que será desenvolvido em aula.

Programação de Computadores I Fluxogramas PROFESSORA CINTIA CAETANO

O que esta acontecendo com a Região Metropolitana de São Paulo Análise Socioeconômica Carlos Paiva*

AC-7000 Terminal de Reconhecimento Facial

LISTA DE MATERIAL - EDUCAÇÃO INFANTIL /2016 MATERNAL I

Avaliação de Interfaces Humano- Computador

Sejam P1(x1,y1) e P2(x2,y2) pontos pertencentes ao plano. A equação da reta pode ser expressa como: ou

SOLUÇÕES N item a) O maior dos quatro retângulos tem lados de medida 30 4 = 26 cm e 20 7 = 13 cm. Logo, sua área é 26 x 13= 338 cm 2.

Lógica e Bases de Dados. Prof. Elaine Faria e Hiran Nonato Programação Lógica UFU 2012

Algoritmos Paralelos - ordenação

Treinamento sobre Progress Report.

Após a gastroscopia e dilatação

BCC402 Algoritmos e Programação Avançada. Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Tóffolo 2011/1

O Perfil e o impacto econômico do Visitante da Cidade de Niterói durante a Copa do Mundo 2014

REGULAMENTO Artigo 1.º Criação do curso Artigo 2.º Objectivos Artigo 3.º Condições de acesso Artigo 4.º Critérios de selecção

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular DIREITO ECONÓMICO Ano Lectivo 2015/2016

Nome. Data. Tarefa C1. diferentes, folha de papel A3, fita-cola.

MATEMÁTICA. Prova bimestral. Aluno: nº Turma: 3º ano 1º bimestre. 1. Mariana mora em São Paulo. Nas férias, ela vai de carro com seu pai visitar a avó

Protocolo relativo a Estágio Curricular

308 - Kit Elevador Modelix (Estrutura)

QUESTÕES PARA A 3ª SÉRIE ENSINO MÉDIO MATEMÁTICA 2º BIMESTE SUGESTÕES DE RESOLUÇÕES

Módulo 3 O Sistema RENAVAM

Cores: Amarelo Azul Claro Verde Claro Branco Laranja

Seja bem-vindo! Conheça nosso plano de negócio!

LISTA DE MATERIAL DE ARTE

Licitação por Pregão Eletrônico nº 032/2013 A REALIZAR SE EM 27/01/2014 AS 15:30 PROCESSO E-18/001/265/2013

Aula 1 Oficina de Programação e Laboratório Apresentação. Profa. Elaine Faria UFU

1. CONTAS DE DEPÓSITO (PARTICULARES) (ÍNDICE)

APOSTILA DE LÓGICA. # Proposições Logicamente Equivalentes. # Equivalências Básicas

Objetivo do Portal da Gestão Escolar

FUNGOS: UMA ANÁLISE EXPERIMENTAL SOBRE OS AGENTES CAUSADORES DE PROBLEMAS AOS PRODUTOS TÊXTEIS

Unidade 3 Função Afim

Ficha de Unidade Curricular 2009/2010

MATERNAL BABY MATERIAL ESCOLAR 2015 PRIMEIRO SEMESTRE

Circuitos Lógicos. Aulas Práticas

Universidade Ibirapuera Arquitetura e Urbanismo Conforto Ambiental: Insolação e Iluminação MÓDULO 2: ILUMINAÇÃO NATURAL

EXERCÍCIOS DE ÁLGEBRA LINEAR E GEOMETRIA ANALÍTICA (sistemas de equações lineares e outros exercícios)

RELATÓRIO FEIRA I SALONI MILÃO RELATÓRIO FEIRA SALONI MILÃO Dpto. Marketing

Objetivo do jogo 40 pontos todos os quadrados de um templo todos os quadrados amarelos todos os quadrados verdes Material do jogo 72 cartas

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular INTERVENÇÃO PSICOLÓGICA Ano Lectivo 2012/2013

PLANO DE ENSINO PROJETO PEDAGÓCIO: Carga Horária Semestral: 40 h Semestre do Curso: 3º

MATEMÁTICA ENSINO FUNDAMENTAL

UNEMAT Universidade do Estado de Mato Grosso. INSTALAÇÕES HIDRÁULICAS E PREDIAIS Professora: Engª Civil Silvia Romfim

Probabilidade. Evento (E) é o acontecimento que deve ser analisado.

Problems and Programmers

FL2100. Revestido em Couro. Dimensões: 94 x 28 x 4 mm. Capacidade: 64MB 128MB 256MB 512MB 1GB 2GB 4GB 8GB FL2110. Revestido em Couro

COMO VENDER MAIS USANDO FUNIL DE VENDAS. Capítulo III: Etapas do Funil de Vendas

Transcrição:

Capítulo 3 Lógica de Primeira Ordem Lógica para Programação LEIC - Tagus Park 1 o Semestre, Ano Lectivo 2007/08 c Inês Lynce and Luísa Coheur

Bibliografia Baseados nos slides de Andrew Rice, Universidade de Cambridge, 2007. Martins J.P., Prolog, Capítulo 5. Ben-Ari M., Mathematical Logic for Computer Science, Springer-Verlag, 2003, Capítulo 8.

Programa de festas Exemplos e mais exemplos... Puzzle da zebra Permutação de listas 8 rainhas ordenada insertion sort Torres de Hanoi Missionários e canibais

Puzzle da zebra (atribuído a Einstein) 5 casas, 5 nacionalidades, 5 marcas de cigarro, 5 bebidas, 5 animais de estimação (todos diferentes) 1. O Inglês vive numa casa vermelha. 2. O Espanhol é dono de um cão. 3. Na casa verde bebe-se café. 4. O Ucraniano bebe chá. 5. A casa verde está imediatamente à direita da casa branca. 6. A pessoa que fuma Old Gold é dona de uma cobra. 7. Na casa amarela fuma-se Kools. 8. Na casa do meio bebe-se leite. 9. O Norueguês vive na primeira casa. 10. A pessoa que fuma Chesterfields vive na casa ao lado da casa onde vive uma raposa. 11. Os cigarros Kools são fumados na casa ao lado da casa onde vive um cavalo. 12. O fumador de Lucky Strike bebe sumo de laranja. 13. O Japonês fuma Parliaments. 14. O Norueguês vive junto à casa azul.

Puzzle da zebra (cont.) Objectivos Onde é que a zebra vive? Em que casa é que se bebe água? Para já vamos considerar apenas a existência de factos e objectivos

Puzzle da zebra: modelação Representação de cada casa house(nationality,pet,smokes,drinks,colour) Representação da fila de casas (designada Houses) (H1,H2,H3,H4,H5)

Puzzle da zebra: código O Inglês vive numa casa vermelha. exists(house(english,,,,red),houses) exists(a,(a,,,, )). exists(a,(,a,,, )). exists(a,(,,a,, )). exists(a,(,,,a, )). exists(a,(,,,,a)). exists(a,,,, ) é satisfeito se a casa A unifica com a primeira casa

Puzzle da zebra: código (cont.) A casa verde está imediatamente à direita da casa branca. rightof(house(,,,,green),house(,,,,ivory),houses) rightof(a,b,(b,a,,, )). rightof(a,b,(,b,a,, )). rightof(a,b,(,,b,a, )). rightof(a,b,(,,,b,a)).

Puzzle da zebra: código (cont.) Na casa do meio bebe-se leite. middlehouse(house(,,,milk, ),Houses) middlehouse(a,(,,a,, )). O Norueguês vive na primeira casa. firsthouse(house(norwegian,,,, ),Houses) firsthouse(a,(a,,,, )).

Puzzle da zebra: código (cont.) A pessoa que fuma Chesterfields vive na casa ao lado da casa onde vive uma raposa. nextto(house(,,chesterfields,, ), house(,fox,,, ),Houses) nextto(a,b,(a,b,,, )). nextto(a,b,(,a,b,, )). nextto(a,b,(,,a,b, )). nextto(a,b,(,,,a,b)). nextto(a,b,(b,a,,, )). nextto(a,b,(,b,a,, )). nextto(a,b,(,,b,a, )). nextto(a,b,(,,,b,a)).

Puzzle da zebra: código - objectivo :- exists(house(english,,,,red),houses), exists(house(spanish,dog,,, ),Houses), exists(house(,,,coffee,green),houses), exists(house(ukranian,,,tea, ),Houses), rightof(house(,,,,green),house(,,,,ivory),houses), exists(house(,snail,oldgold,, ),Houses), exists(house(,,kools,,yellow),houses), middlehouse(house(,,,milk, ),Houses), firsthouse(house(norwegian,,,, ),Houses), nextto(house(,,chesterfields,, ),house(,fox,,, ),Houses), nextto(house(,,kools,, ),house(,horse,,, ),Houses), exists(house(,,luckystrike,orangejuice, ),Houses), exists(house(japanese,,parliaments,, ),Houses), nextto(house(norwegian,,,, ),house(,,,,blue),houses), exists(house(waterdrinker,,,water, ),Houses), exists(house(zebraowner,zebra,,, ),Houses), write( WaterDrinker = ), write(waterdrinker), nl, write( ZebraOwner = ), write(zebraowner),nl, write(houses).

Puzzle da zebra: execução

Puzzle da zebra com LISTAS e REGRAS Houses passa a ser uma lista com 5 elementos do tipo house houses([house(,,,, ), house(,,,, ), house(,,,, ), house(,,,, ), house(,,,, )]). Acrescentar ao objectivo houses(house)

Puzzle da zebra com LISTAS e REGRAS (cont.) Regras para exists, rightof e nextto exists(x,[x ]). exists(x,[ Y]) :- exists(x,y). rightof(a,b,[b,a ]). rightof(a,b,[ Y]) :- rightof(a,b,y). nextto(a,b,[a,b ]). nextto(a,b,[b,a ]). nextto(a,b,[ Y]) :- nextto(a,b,y).

Remoção de um elemento de uma lista (relembrar) remove(cabeca,[cabeca Cauda],Cauda). remove(x,[cabeca Cauda1],[Cabeca Cauda2]) :- remove(x,cauda1,cauda2).

Permutação de listas perm([],[]). perm(lst,[cabeca Cauda]) :- remove(cabeca,lst,res),perm(res,cauda).

Permutação de listas: exemplo

Permutação de listas: aplicação Agora podemos usar este predicado para ajudar a resolver o problema das 8 rainhas.

Resolução de problemas por geração&teste Metodologia usada na resolução do problema das 8 rainhas 1. Gerar uma potencial solução com o predicado perm 2. Verificar se a solução é válida 3. Se não for válida retroceder para encontrar a potencial solução seguinte

Problema das 8 rainhas [5,3,1,7,2,8,6,4]

Problema das 8 rainhas - código oito-rainhas(res) :- perm([1,2,3,4,5,6,7,8],res), diagonaisok(res).

Problema das 8 rainhas - código (cont.) diagonaisok([ ]). diagonaisok([rainha OutrasRainhas]) :- posicaook(rainha,1,outrasrainhas), diagonaisok(outrasrainhas). posicaook(,,[]). posicaook(col,distlinha,[rainha OutrasRainhas]) :- DiagKO1 is Col + DistLinha, Rainha =\= DiagKO1, DiagKO2 is Col - DistLinha, Rainha =\= DiagKO2, DistLinha1 is DistLinha + 1, posicaook(col,distlinha1,outrasrainhas).

Ordenação: predicado ordenada ordenada([]). ordenada([ ]). ordenada([x,y Ys]) :- X=<Y, ordenada([y Ys]).

Ordenação por geração e teste ordena(xs,ys) :- perm(xs,ys), ordenada(ys).

Ordenação: insertion sort Um elemento (tipicamente o primeiro) é removido da lista O resto da lista é ordenada recursivamente O elemento removido é inserido de uma forma ordenada

Ordenação: predicado insert insert(x,[],[x]). insert(x,[y Ys],[Y Zs]) :- X > Y,!, insert(x,ys,zs). insert(x,[y Ys],[X,Y Ys]) :- X =< Y.

Ordenação: insertion sort insertion-sort([x Xs],Ys) :- insertion-sort(xs,zs),!, insert(x,zs,ys). insertion-sort([],[]).