Origem do PROLOG. Lógica e PROLOG



Documentos relacionados
Linguagem de Programação I

Bases Matemáticas. Daniel Miranda de maio de sala Bloco B página: daniel.miranda

Algoritmos APRENDENDO A PROGRAMAR COM C#

Orientação a Objetos

Lista de Exercícios 5: Soluções Teoria dos Conjuntos

Notas de aula de Lógica para Ciência da Computação. Aula 11, 2012/2

Álge g bra b B ooleana n Bernardo Gonçalves

1. À primeira coluna (P), atribui-se uma quantidade de valores V igual à metade do total de linhas

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

Programação Lógica. (Prática em Prolog) LÓGICA APLICADA A COMPUTAÇÃO. Professor: Rosalvo Ferreira de Oliveira Neto

Resolução de Questões!!!

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.

Noções básicas de Lógica

Árvores Parte 1. Aleardo Manacero Jr. DCCE/UNESP Grupo de Sistemas Paralelos e Distribuídos

Projecto Delfos: Escola de Matemática Para Jovens 1 TEORIA DOS NÚMEROS

RACIOCÍNIO LÓGICO Simplificado

Aula 5: determinação e simplificação de expressões lógicas

* Lógica Proposicional Formas de Argumento

Introdução. Inteligência Artificial. Prolog x Outras Linguagens. Programação em Prolog. Programar em Prolog envolve:

Circuitos Aritméticos

Estruturas de Repetição

Fundamentos de Lógica Matemática

PROPOSIÇÕES. Proposições Simples e Proposições Compostas. Conceito de Proposição

Maratona de Programação - Dicas Para Iniciantes

Raciocínio Lógico Matemático

CURSO DE MATEMÁTICA BÁSICA PROGRAMA DE EDUCAÇÃO TUTORIAL CENTRO DE ENGENHARIA DA MOBILIDADE

RACIOCÍNIO LÓGICO QUANTITATIVO

Raciocínio Lógico para o INSS Resolução de questões Prof. Adeilson de Melo Revisão 3 Lógica das Proposições

As equações 1 e 2 são equações literais, enquanto que, a equação 3 não é uma equação literal.

1.1. Definição do Problema

Aula 01 Introdução Custo de um algoritmo, Funções de complexidad e Recursão

INVESTIGAÇÃO OPERACIONAL. Programação Linear. Exercícios. Cap. III Método Simplex

Melhorias de Processos segundo o PDCA Parte IV

Normas para a elaboração de um relatório. para a disciplina de projecto integrado. 3.º ano 2.º semestre. Abril de 2004

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de

Ficha de Exercícios nº 2

(1, 6) é também uma solução da equação, pois = 15, isto é, 15 = 15. ( 23,

Programação de Computadores I. Linguagem C Função

Sumário. OS ENIGMAS DE SHERAZADE I Ele fala a verdade ou mente? I I Um truque com os números... 14

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR

1 Teoria de conjuntos e lógica

Lógica para computação Professor Marlon Marcon

Objectos Gráficos 1. APROG (Civil) Aula 4. Friday, November 2, 12

Falácia dos quatro termos?

Aula de Matemática. Turma 1 28/03/13 e 05/04/13 Prof. Silvânia Alves de Carvalho Cursinho TRIU Barão Geraldo Campinas /SP

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005.

Álgebra Linear AL. Luiza Amalia Pinto Cantão. Depto. de Engenharia Ambiental Universidade Estadual Paulista UNESP

INTRODUÇÃO À PROGRAMAÇÃO EM FORTRAN

Questões de Concursos Tudo para você conquistar o seu cargo público

Programação Linear - Parte 4

Gramáticas Livres de Contexto

Matemática Básica Intervalos

Correção de exercícios do manual. Página 53

Programação em FORTRAN V. João Manuel R. S. Tavares

Universidade Federal do ABC Disciplina: Natureza da Informação Lista de Exercícios 02 Códigos e conversão A/D Prof. João Henrique Kleinschmidt

Lógica e Raciocínio. Raciocínio Dedutivo. Universidade da Madeira.

LINGUAGEM JAVA - RESUMO

CAPÍTULO O Método Simplex Pesquisa Operacional

BC1424 Algoritmos e Estruturas de Dados I Aula 02: Ponteiros, estruturas e alocação de memória

UM JOGO DE DOMINÓ PARA A LÓGICA PROPOSICIONAL

01. Mario, ao chegar a uma cidade com princípios lógicos, viu na placa de Bem Vindo! o ( ) x Px Bx Vx. Mais adiante, em outra placa, havia a

Inversão de Matrizes

Bem-vindo ao tópico sobre conceitos de determinação de preços.

Relações. Antonio Alfredo Ferreira Loureiro. UFMG/ICEx/DCC MD Relações 1

. (A verificação é imediata.)

Capítulo 4 Inferência Estatística

CAPÍTULO 2 SISTEMAS DE NUMERAÇÃO E CÓDIGOS

LÓGICA FORMAL Tabelas Verdade

Calculando seno(x)/x com o interpretador Hall.

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

Ciclo com Contador : instrução for. for de variável := expressão to. expressão do instrução

UNIPAC Araguari FACAE - Faculdade de Ciências Administrativas e Exatas SISTEMAS DE INFORMAÇÃO

Números escritos em notação científica

RACIOCÍNIO LÓGICO Simplif icado

A primeira coisa ao ensinar o teorema de Pitágoras é estudar o triângulo retângulo e suas partes. Desta forma:

3º Ano do Ensino Médio. Aula nº09 Prof. Paulo Henrique

Apostila de Matemática 16 Polinômios

Resolução da Prova de Raciocínio Lógico do STJ de 2015, aplicada em 27/09/2015.

Variáveis Frequências Gráficos Medidas de Posição Medidas de Dispersão Medidas Complementares Inferência

INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos. RESOLUÇÃO DA RESPESCAGEM DO 2 o TESTE

Análise de algoritmos. Parte II

Introdução a Funções

CRIANDO MAPAS TEMÁTICOS COM SETORES CENSITÁRIOS DE SÃO PAULO

Como citar e fazer referências bibliográficas

CURSO PRÉ-VESTIBULAR MATEMÁTICA AULA 2 TEORIA DOS CONJUNTOS

1. Como fazer uma pesquisa

Probabilidade. Distribuição Binomial

Representações de caracteres

TEORIA DOS ORBITAIS MOLECULARES -TOM

Resolução da Prova de Raciocínio Lógico da ANS (Técnico Administrativo) de 2016, aplicada em 21/02/2016.

VEJA O CONTEÚDO DO ÚLTIMO EDITAL (2011/2012, ORGANIZADO PELA FCC)

Nome: N.º: Endereço: Data: Telefone: PARA QUEM CURSA O 9 Ọ ANO DO ENSINO FUNDAMENTAL EM 2016 Disciplina: MATEMÁTICA

1.1.A Lógica como Estudo das Condições de Coerência do Pensamento e do Discurso.

Cálculo proposicional

Álgebra Linear AL. Luiza Amalia Pinto Cantão. Depto. de Engenharia Ambiental Universidade Estadual Paulista UNESP

TOM, SEMITOM, SUSTENIDO, BEMOL.

Transcrição:

Origem do PROLOG A Linguagem PROLOG foi criada nos anos 70 por Alain Colmareur, na Universidade de Marselha O nome da linguagem vem de PROgramming in LOGic, ou seja, segue o paradigma da Programação em Lógica É conjuntamente com a linguagem LISP, criada nos anos 50, uma das linguagens específicas para o desenvolvimento de Sistemas de Inteligência Artificial Enquanto que a linguagem LISP teve impacto nos EUA, o PROLOG alcançou notoriedade na Europa e no Japão O principal standard de PROLOG foi proposto em Edimburgo, por Clocksin & Mellish 1 Lógica e PROLOG A linguagem PROLOG usa o Princípio da Resolução para a Prova de Teoremas, onde a solução de problemas é encontrada directamente por um conjunto de Axiomas ou indirectamente através da Inferência Lógica A Prova de Teoremas segue a Pesquisa Primeiro em Profundidade, na tentativa de provar o teorema, a este mecanismo acrescenta-se o retorno atrás quando ocorre (backtracking) As variáveis podem residir num de dois estados: não instanciadas ou instanciadas, quando é encontrada uma solução podem ser exibidas as instanciações possíveis Quando algo não está explicitamente definido como um axioma é assumido como sendo falso (Assumpção do Mundo Fechado). Há várias extensões ao PROLOG que assumem uma lógica tri-valor (verdadeiro, falso ou desconhecido) Em PROLOG é possível criar/remover dinamicamente axiomas 2 1

Em PROLOG temos 3 conceitos básicos: Conceitos Básicos do PROLOG Factos correspondem a axiomas é um tipo das cláusulas do PROLOG devem ser colocados no ficheiro da Base de Conhecimento p.ex.: rio(douro). pai(pedro,ana). Regras correspondem a implicações éoutro tipo das cláusulas do PROLOG devem ser colocadas no ficheiro da Base de Conhecimento p. ex.: neto(n,a):-filho(n,p),(descendente(p,a,_);descendente(p,_,a)). Questões permitem interrogar a Base de Conhecimento, a partir da consola, o prompt é?- as respostas correspondem a soluções possíveis p.ex.:?-pai(p,ana).?-neto(rui,a). 3 Factos Um facto tem 1 functor (nome genérico do facto, começado por uma minúscula), geralmente têm um ou mais argumentos, englobados por parêntesis e separados por vírgulas, e termina com um ponto (o finalizador do PROLOG). Poderão não existir argumentos. Os argumentos são geralmente átomos (valores constantes, números ou strings começadas por minúsculas ou entre ), podendo ser também variáveis (começadas por uma maiúscula). 4 2

Exemplos de Factos casados(rui,isabel). Functor: casados Argumentos: 2 átomos rui e isabel Terminador:. ligado. Functor: ligado Argumentos: nenhum Terminador:. potência(x,0,1). Functor: potência Argumentos: 3 uma variável e 2 valores numéricos Terminador:. 5 fica(porto,portugal). Uma Base de Conhecimento com factos passa(douro,porto). 6 3

Questões sobre a Base de Conhecimento fica(porto,portugal).?- passa(douro,porto).?-passa(mondego,coimbra). no 7 Usando variáveis nas questões sobre a Base de Conhecimento fica(porto,portugal). passa(douro,porto).?-fica(x,espanha). X=madrid <cr>?- passa(tejo,c). C=lisboa <cr>?-fica(x,y). X=porto Y=portugal <cr> 8 4

Questões sobre a Base de Conhecimento pedindo alternativas com ; fica(porto,portugal).?-fica(x,espanha). X=madrid ; X=barcelona ; X=zamora ; X=orense ; X=toledo passa(douro,porto). 9 Questões sobre a Base de Conhecimento pondo as alternativas numa lista fica(porto,portugal).?-findall(x,fica(x,espanha),l). L=[madrid,barcelona,zamora,orense,espanha] 10 5

Questões sobre a Base de Conhecimento com conjunção (, na questão) fica(porto,portugal). passa(douro,porto).?-fica(x,portugal),passa(r,x). X=porto R=douro <cr> E se fossem pedidas alternativas com o ;??-fica(x,portugal),passa(r,x). X=porto R=douro ; X=lisboa R=tejo ; X=caminha R=minho 11 Questões sobre a Base de Conhecimento com disjunção (; na questão) fica(porto,portugal). passa(douro,porto).?-fica(x,portugal);fica(x,espanha). X=porto <cr> E se fossem pedidas alternativas com o ;??-fica(x,portugal);fica(x,espanha). X=porto ; X=lisboa ; X=coimbra ; X=caminha ; X=madrid ; X=barcelona ; X=zamora ; X=orense ; X=toledo 12 6

Questões sobre a Base de Conhecimento com negação (not) fica(porto,portugal).?-not fica(porto,portugal). no?-not passa(mondego,coimbra). passa(douro,porto). 13 Regras Uma regra tem 1 termo (functor e argumentos) do lado esquerdo que corresponde a aquilo que se pretende provar (conclusão), seguido do :-. À direita do :- podem aparecer outros termos afectados por operadores (, ; not) e por primitivas de controlo. No fundo o lado direito corresponde às condições da regra. Tal como nos factos, podemos ter regras com o mesmo nome e mesmo nº de argumentos, ou até com o mesmo nome e nº de argumentos diferentes. 14 7

Exemplos de Regras filho(x,y):-homem(x),(descendente(x,y,_);descendente(x,_,y)). Assume-se que descendente(a,b,c) indica que A é filho do pai B e da mãe C A regra deve ser lida do seguinte modo: SE X é homem E (X é descendente do seu pai Y OU X é descendente da sua mãe Y) ENTÃO X é filho de Y O _ corresponde a uma variável da qual não necessitamos o valor potência(_,0,1):-!. potência(x,n,p):- N1 is N-1,potência(X,N1,P1),P is X*P1. Esta é uma definição recursiva da potência inteira e não negativa de um nº A recursividade é muito comum nas regras do PROLOG O! (cut) é uma primitiva de controlo que será explicada posteriormente 15 8