Paradigmas de Linguagens de Programação

Documentos relacionados
Lógica de Predicados. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo

Matemática Régis Cortes. Lógica matemática

Fundamentos de Lógica Matemática

Programação Lógica. Programação Lógica PROLOG

Inteligência Artificial. Sistemas Baseados em Conhecimento. Representação de Conhecimento (continuação)

MD Lógica de Proposições Quantificadas Cálculo de Predicados 1

Como primeira e indispensável parte da Lógica Matemática temos o Cálculo Proporcional ou Cálculo Sentencial ou ainda Cálculo das Sentenças.

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

03/04/2016 LÓGICA MATEMÁTICA. Prof. Esp. Fabiano Taguchi. Introdução ao Prolog

Cálculo de Predicados

Programação em Lógica. UCPEL/CPOLI/BCC Lógica para Ciência da Computação Luiz A M Palazzo Maio de 2010

Expandindo o Vocabulário. Tópicos Adicionais. Autor: Prof. Francisco Bruno Holanda Revisor: Prof. Antônio Caminha Muniz Neto. 12 de junho de 2019

Lógica Proposicional Parte I. Raquel de Souza Francisco Bravo 11 de outubro de 2016

Inteligência Artificial IA II. LÓGICA DE PREDICADOS PARA REPRESENTAÇÃO DO CONHECIMENTO

Cálculo proposicional

Ao utilizarmos os dados do problema para chegarmos a uma conclusão, estamos usando o raciocínio lógico.

Programação Lógica. A Linguagem Prolog. Paulo Henrique Ribeiro Gabriel Faculdade de Computação Universidade Federal de Uberlândia

Inteligência Artificial. Prolog. Aula 2 Introdução (cont.)

Lógica. Cálculo Proposicional. Introdução

Lógica de primeira ordem (Capítulo 8 - Russell) Inteligência Artificial

Predicados e Quantificadores

Os Fundamentos: Lógica de Predicados

Representação de Conhecimento

SCC Capítulo 2 Lógica de Predicados

Introdução à Programação em Prolog

Não sou o melhor, sei disso, mas faço o melhor que posso!! RANILDO LOPES

Lógica Matemática. Prof. Gerson Pastre de Oliveira

Linguagem com sintaxe e semântica precisas: lógica. Mecanismo de inferência: derivado da sintaxe e da

Matemática Discreta - 01

Cálculo de Predicados. Matemática Discreta. Profa. Sheila Morais de Almeida DAINF-UTFPR-PG. março

Matemática discreta e Lógica Matemática

Descrição do Mundo de Wumpus. Inteligência Artificial

Introdução à Lógica Proposicional Sintaxe

Introdução à Lógica Matemática

Lógica predicados. Lógica predicados (continuação)

Lógica. Professor Mauro Cesar Scheer

Introdução à Lógica de Predicados

Prof. Jorge Cavalcanti

Proposições e Conectivos

Fundamentos 1. Lógica de Predicados

Lógica Proposicional. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo

1 TEORIA DOS CONJUNTOS

Fundamentos da Computação 1. Aula 03

Cálculo proposicional

Capítulo 7 - Agentes lógicos (Agentes baseados em Conhecimento)

Matemática Discreta. Lógica de Predicados. Profa. Sheila Morais de Almeida. agosto DAINF-UTFPR-PG

Introdução à Logica Computacional. Aula: Lógica Proposicional - Sintaxe e Representação

Lógica dos Quantificadores: sintaxe e semântica intuitiva

INF 1771 Inteligência Artificial

Aula 2: Linguagem Proposicional

Lógica Formal. Matemática Discreta. Prof Marcelo Maraschin de Souza

Lógica para computação - Linguagem da Lógica de Predicados

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

01/09/2014. Capítulo 1. A linguagem da Lógica Proposicional

Matemática Discreta - 07

Aula 2 Programação Lógica Sintaxe Prolog. Profa. Elaine Faria UFU -2014

Teoria dos Conjuntos MATEMÁTICA DISCRETA CONCEITOS PRELIMINARES. Fundamentos de Lógica Técnicas Elementares de Prova A NOÇÃO DE CONJUNTO

2 AULA. Conectivos e Quantificadores. lógicas. LIVRO. META: Introduzir os conectivos e quantificadores

Fundamentos de Lógica e Algoritmos. Aula 1.3 Proposições e Conectivos. Prof. Dr. Bruno Moreno

Universidade Federal de Viçosa Centro de Ciências Exatas Departamento de Matemática MAT Introdução à Álgebra 2015/I 1 a Lista de Exercícios

Lógica Matemática - Quantificadores

Lógica proposicional

Lógica dos Quantificadores: sintaxe

Conhecimento e Raciocínio Agente Lógicos Capítulo 7. Leliane Nunes de Barros

MATEMÁTICA DISCRETA CONCEITOS PRELIMINARES

Elisabete Raposo Freire Departamento de Matemática Universidade dos Açores 21 Abril 2012

Sumário. Os Enigmas de Sherazade I Ele fala a verdade ou mente? I I Um truque com os números... 14

Conhecimento e Raciocínio Lógica Proposicional

Lógica Matemática e Computacional. 3.1 Relações lógicas de Euler

Lógica Formal. Matemática Discreta. Prof Marcelo Maraschin de Souza

CCAE. Lógica Aplicada a Computação - Cálculo Proposicional - Parte I. UFPB - Campus IV - Litoral Norte. Centro de Ciências Aplicadas e Educação

Lógica. Fernando Fontes. Universidade do Minho. Fernando Fontes (Universidade do Minho) Lógica 1 / 65

Quantificadores, Predicados e Validade

Lógica de primeira ordem First Order Logic (FOL)

Aula 12: Lógica de Predicados

Fundamentos de Lógica Matemática

Lógica Proposicional. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo

INTRODUÇÃO À LÓGICA MATEMÁTICA

Prolog. MATA56 - Paradigmas de Linguagens de Programação, UFBA, Prof. Rodrigo Rocha Prolog. Iniciando.

SCC Capítulo 5 Representação de Conhecimento através do Prolog

Afirmações Matemáticas

30/04/2013. Prof. Hudson Costa

Aula 04 Operações Lógicas sobre Proposições. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

RACIOCÍNIO ANALÍTICO COMUNICAÇÃO EFICIENTE DE ARGUMENTOS - LINGUAGEM- Professor Josimar Padilha

Dedução Natural e Sistema Axiomático Pa(Capítulo 6)

A LINGUAGEM DO DISCURSO MATEMÁTICO E SUA LÓGICA

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 15 Agentes que Raciocinam Logicamente

Transcrição:

Paradigmas de Linguagens de Programação Faculdade Nova Roma Cursos de Ciências da Computação (6 Período) Prof. Adriano Avelar - Site: www.adrianoavelar.com Email: edson.avelar@yahoo.com.br

PROGRAMAÇÃO LÓGICA

Paradigma Lógico Modelo Declarativo Declara os objetivos da computação, ao invés do algoritmo detalhado por meio dos quais o objetivo deve ser alcançado. Os objetivos são expressos como coleções de regras. (Programação baseada em regras) Não-deterministicos e baseados backtracking Várias soluções para um problema. Soluções baseados em refinamentos de busca.

Aplicações Inteligência Artificial Representação do conhecimento Sistemas especialistas Provadores de teoremas Aprendizagem de máquina Processamento de linguagem natural Sistemas multi-agentes Robótica Sistemas Distribuídos e Internet Comércio eletrónico Recuperação, filtragem e extração de informação Engenharia de Software Prototipagem rápida de software complexos Especificações formais executáveis Programação por resolução de restrições Programação multi-paradigma de alto-nível Banco de Dados BD dedutivos e DOO Mineração de Dados e Descoberta de Conhecimento Integração de Dados e Interoperabilidade

Paradigma Lógico A PL Implementa os conceitos da lógica matemática Lógica Matemática Lógica Proposicional Lógica de Predicados

Revisando... LÓGICA PROPOSICIONAL

Lógica Proposicional Em lógica matemática, o principal objetivo será a investigação da validade de ARGUMENTOS: conjunto de enunciados dos quais um é a CONCLUSÃO e os demais PREMISSAS ou PROPOSIÇÔES Argumento Dedutivo: é valido quando suas premissas, se verdadeiras, a conclusão também é verdadeira. Premissa 1: Todo homem é mortal Premissa 2 : João é homem Conclusão: João é mortal

Lógica Proposicional Argumento Indutivo: a verdade das premissas não basta para assegurar a verdade da conclusão Premissa 1: Maria é casada com João Premissa 2: Pedro é filho de Maria Premissa 3: Roberto também é filho de Maria Conclusão: Pedro e Roberto são filhos de João

Lógica Proposicional Proposição (premissa) : sentenças declarativas afirmativas da qual tenha sentido afirmar que seja V ou F (não ambos). Ex. A lua é quadrada A neve é branca O universo é infinito?

Cálculo Proposicional A proposição é o elemento básico a partir do qual os argumentos são construídos, sendo também o principal objeto de estudo na lógica proposicional. Usar a lógica matemática para resolver problemas do mundo real Também chamado de: Cálculo Sentencial ou Cálculo das sentenças

Simbologia Variáveis proposicionais: letras latinas minúsculas p,q,r,s... Para indicar as proposições (fórmulas atômicas) Exemplo: A lua é quadrada: p A neve é branca: q

Conectivos Lógicos As fórmulas atômicas podem ser combinadas entre si. Usa-se os conectivos lógicos para representar tais combinações. : e : ou : se... então : se e somente se ~ ou : não Exemplos: A lua é quadrada: p A neve é branca: q A lua é quadrada e a neve é branca: p q

Símbolos Auxiliares (): Parênteses que servem para denotar o alcance dos conectivos Exemplo: Se a lua é quadrada e a neve é branca então a lua não é quadrada: (p q) ~ p Os parênteses são usados segundo a ordem dos conectivos: ~,,,, Ex.: p q ~r p ~q (((p q ) (~r)) (p (~q)))

Tabela Verdade Mapeia todos os valores lógicos de uma relação. Qual a probabilidade de eu ir jogar bola hoje? p: não está chovendo q: a bola não está murcha p q p q V V V V F F F V F F F F

LÓGICA DE PREDICADOS

Lógica de predicados Há vários argumentos que não podem ser adequadamente formalizados e validados em lógica proposicional Exemplo Ricardo foi para a festa Algumas pessoas da festa ficaram bêbadas Logo, Ricardo ficou bêbado intuitivamente, podemos ver que este argumento é válido sua formalização em lógica proposicional resulta em {p, q} r porém, não há como mostrar que {p, q} r é válido a validade deste argumento depende do significado da palavra Algumas para tratar este tipo de argumento precisamos da lógica de predicados

Lógica de predicados A linguagem formal da lógica de predicados é mais expressiva que aquela da lógica proposicional. Esta maior expressividade decorre do fato de as fórmulas da lógica de predicados serem compostas pelos seguintes elementos básicos: objetos predicados conectivos variáveis quantificadores:

Objetos Objeto É qualquer coisa a respeito da qual precisamos dizer algo Na lógica de predicados, a noção de objeto é usada num sentido bastante amplo. Objetos podem ser: concretos: a bíblia, a lua,... abstratos: o conjunto vazio, a paz,... fictícios: unicórnio, Saci-Pererê,... atômicos ou compostos: um teclado é composto de teclas Nomes de objetos devem iniciar com letra minúscula!

Predicados Predicados Denota uma relação entre objetos num determinado contexto sobre(a,b): o bloco A está sobre o bloco B cor(b,azul): o bloco B tem cor azul maior(c,a): o bloco C é maior que o bloco A distante(c,a): o bloco C está distante de A??? Nomes de predicados também devem iniciar com letra minúscula! M

Conectivos Conectivos Forma proposições compostas a partir de proposições atômicas sobre(a,b) sobre(b,m) : A está sobre B e B está sobre a mesa cor(b,vermelho): a cor de B não é vermelho maior(b,c) maior(c,b): o bloco B é maior que C ou C é maior que B cor(a,verde) cor(c,vermelho) : A não é verde e C não é vermelho??? M

Variáveis Variáveis Permite estabelecer fatos sobre objetos, sem nomeá-los explicitamente bloco(x): X é um bloco mesa(y): Y é uma mesa sobre(x,y): X está sobre Y Note que proposições atômicas são sentenças que podem ter valor verdadeiro ou falso; mas não podemos dizer se bloco(x) é verdadeiro ou falso até que a variável X tenha sido substituída, instanciada ou quantificada. Nomes de variáveis devem iniciar com letra maiúscula!

Quantificadores Quantificadores Permite estabelecer fatos sobre objetos, sem enumerá-los explicitamente Há dois quantificadores: Universal: X[bloco(X)] estabelece que todo objeto X é um bloco Lê-se: Para todo X, X é um bloco Existencial: Y[mesa(Y)] estabelece que algum objeto Y é uma mesa Lê-se: Existe um Y, tal-que Y é uma mesa Estes quantificadores podem ser combinados numa mesma fórmula Todo bloco está sobre alguma coisa que é um bloco ou uma mesa X[bloco(X) Y[sobre(X,Y) (bloco(y) mesa(y))]]

Representação do conhecimento Para facilitar a formalização de sentenças na lógica de predicados, destacamos quatro tipos de sentenças de especial interesse, denominadas enunciados categóricos: Universal afirmativo: Todos os homens são mortais Universal negativo: Nenhum homem é extraterrestre. Particular afirmativo: Alguns homens são cultos. Particular negativo: Alguns homens não são cultos.

Representação do conhecimento Universal afirmativo É da forma X[p(X) q(x)]] Estabelece que p é um subconjunto de q

Representação do conhecimento Universal negativo É da forma X[p(X) q(x)]] estabelece que os conjuntos p e q são disjuntos

Representação do conhecimento Particular afirmativo É da forma X[p(X) q(x)] Estabelece que os conjuntos p e q têm intersecção não-vazia

Representação do conhecimento Particular negativo É da forma X[p(X) q(x)] estabelece que existem elementos em p que não estão em q

Exercício 1. Formalize as sentenças a seguir usando lógica de predicados Toda cobra é venenosa. Nenhuma bruxa é bela. Algumas plantas são carnívoras. Há aves que não voam. Tudo que sobe, desce. Existem políticos que não são honestos. Não existe bêbado feliz. Pedras preciosas são caras. Ninguém gosta de impostos. Vegetarianos não gostam de açougueiros. Toda mãe ama seus filhos.

Representação do conhecimento Há sentenças que podem ser escritas em mais de uma forma. Exemplo: Sentenças Nem tudo que brilha é ouro. Existe algo que brilha e não é ouro. Fórmulas X[b(X) o(x)] X[b(X) o(x)] Equivalência X[b(X) o(x)] X[ b(x) o(x)] X [ b(x) o(x)] X [ b(x) o(x)]

Exercício 2. Formalize e Verifique se os pares de sentenças são equivalentes Nem toda estrada é perigosa. Algumas estradas não são perigosas. Nem todo bêbado é fumante. Alguns bêbados são fumantes. Nem todo ator americano é famoso. Alguns atores americanos não são famosos.

Cláusula de HORN A lógica proposicional e predicativa fornece os fundamentos formais para a programação lógica. A cláusula de horn é uma variante particular da lógica predicativa que está por trás da sintaxe do Prolog. Clausula horn possui cabeça e corpo. h p1,p2,p3,..., pn molhado( X ) descoberto( X ), chovendo( C )

PROgraming in LOGic PROLOG

Introdução Linguagem de programação declarativa para processamento simbólico que implementa o paradigma lógico. Essencialmente, a programação em Prolog consiste em: Identificar os objetos em um contexto de discurso Identificar relações (ou predicados) de interesse entre estes objetos Declarar fatos e regras a respeito destas relações Consultar o sistema acerca das relações declaradas

Elementos básicos Os elementos básicos da linguagem Prolog são herdados da lógica de predicados. Esses elementos são: fatos regras consultas.

Fatos Fatos servem para estabelecer um relacionamento existente entre objetos de um determinado contexto. Por exemplo, num contexto bíblico, átomos predicado pai(adão,cain). é um fato que estabelece que Adão é pai de Cain, ou seja, que a relação pai existe entre os objetos denominados adão e cain.

Programa 1.1 Programa 1.1: Uma árvore genealógica. pai(adão,cain). pai(adão,abel). pai(adão,seth). pai(seth,enos). KB1 - Base de Dados (FATOS e REGRAS)

Consultas Para recuperar informações de um programa lógico, usamos consultas. Uma consulta pergunta se uma determinado relacionamento existe entre objetos. Por exemplo, a consulta?- pai(adão,cain). pergunta se a relação pai vale para os objetos adão e cain ou, em outras palavras, pergunta se Adão é pai de Cain.

Consultas Sintaticamente, fatos e consultas são muito similares. A diferença é que fatos são agrupados no arquivo que constitui o programa, enquanto consultas são sentenças digitadas no prompt (?-) do interpretador Prolog.

Consultas Consultas à KB1 Adão é pai de enos?- pai(adão,enos). Quem é pai de Cain??- pai(x,cain). Quem é pai de Abel e Seth? pai(x,seth), pai(x,abel) Uma consulta com variáveis pode ter mais de uma resposta.?- pai(adão,x). Enter para satisfeito com a resposta. ou lógico ( ; ) para obter outra resposta.

Exemplo 2 Programa 1.2: Gosto. gosta(pedro, maria). gosta(maria, pedro). %Pedro gosta de Maria %Maria gosta de Pedro KB2 - Base de Dados (FATOS e REGRAS)

Consulta Será que maria gosta de pedro e pedro gosta de maria??- gosta(pedro, maria), gosta(maria, pedro). Há algo de que ambos Maria e Pedro gostam??- gosta(maria, X), gosta(pedro, X).

Regras Uma regra é uma armação geral sobre objetos e seus relacionamentos. Por exemplo, suponha que queremos representar a seguinte dependência entre fatos: Pedro gosta de todo mundo que gosta de vinho. o que pode ser reescrito como: Pedro gosta de X se X gosta de vinho.

Regras Em Prolog, regras consistem de uma cabeça e um corpo. A cabeça e o corpo são conectados pelo símbolo :- formado por dois pontos e hífen. O :- procuncia-se se. A dependência acima seria escrito como: gosta(pedro, X) :- gosta(x, vinho).

Regras A cabeça de uma regra descreve o que está sendo definido. O corpo, no caso gosta(x, vinho), é uma conjunção de metas que devem ser satisfeitas para que a cabeça seja considerada verdadeira. Por exemplo, podemos tornar Pedro mais exigente sobre o que ele gosta adicionando mais metas ao corpo da regra: gosta(pedro, X) :- gosta(x, vinho), gosta(x, chocolate). Supondo que Pedro gosta de mulheres que gostam de vinho. gosta(pedro, X) :- mulher(x), gosta(x, vinho).

West é criminoso? Requisitos 1. É crime para um americano vender armas para uma nação hostil 2. O Brasil possui mísseis 3. O Brasil adquiriu todos seus mísseis do West. 4. West é um americano. 5. Brasil é uma nação 6. Brasil é inimigo dos EUA. 7. EUA é uma nação Em lógica da 1a ordem 1. P,W,N [ americano(p) arma(w) nação(n) hostil(n) vendeu(p,n,w) criminoso(p) ] 2. W [ possui(brasil,w) míssil(w) ] 3. W [possui(brasil,w) míssil(w) vendeu(west,brasil,w) ] {*} W [ míssil (W) arma(w) ] {*} N [ inimigo(n,eua) hostil(n) ] 4. americano(west) 5. nação(brasil) 6. inimigo(brasil,eua) 7. nação(eua)

West é criminoso? Em lógica da 1a ordem 1. P,W,N [ americano(p) arma(w) nação(n) hostil(n) vendeu(p,n,w) criminoso(p) ] 2. W [ possui(brasil,w) míssil(w) ] 3. W [possui(brasil,w) míssil(w) vendeu(west,brasil,w) ] {*} W [ míssil (W) arma(w) ] {*} X [ inimigo(n,eua) hostil(n) ] 4. americano(west) 5. nação(brasil) 6. inimigo(brasil,eua) 7. nação(eua) Em Lógica de Horn: americano(p) arma(w) nação(n) hostil(n) vendeu(p,n,w) criminoso(p) possui(brasil,m1) míssil(m1) possui(brasil,w) míssil(w) vendeu(west,brasil,w) míssil(w) arma(w) inimigo(n,eua) hostil(n) americano(west) nação(brasil) inimigo(brasil, eua) nação(eua)

West é criminoso? Em Lógica de Horn: americano(p) arma(w) nação(n) hostil(n) vendeu(p,n,w) criminoso(p) possui(brasil,m1) míssil(m1) possui(brasil,w) míssil(w) vendeu(west,brasil,w) míssil(w) arma(w) inimigo(n,eua) hostil(n) americano(west) nação(brasil) inimigo(brasil, eua) nação(eua) Em Prolog: criminoso(p) :- americano(p), arma(w), nação(n), hostil(n), vendeu(p,n,w). possui(brasil,m1). míssil(m1). vendeu(west,brasil,w) :- possui(brasil,w), míssil(w). arma(w) :- míssil(w). hostil(n) :- inimigo(n,eua). americano(west). nação(brasil). inimigo(brasil,eua). nação(eua).

West é criminoso? --- Busca Em Prolog: criminoso(p) :- americano(p), arma(w), nação(n), hostil(n), vendeu(p,n,w). possui(brasil,m1). míssil(m1). vendeu(west,brasil,w) :- possui(brasil,w), míssil(w). arma(w) :- míssil(w). hostil(n) :- inimigo(n,eua). americano(west). nação(brasil). inimigo(brasil,eua). nação(eua). Busca: criminoso(west)? true. american(west)? true. arma(w)? W = m1. míssil(w)? W = m1. nação(n)? N = brasil hostil(brasil)? true. inimigo(brasil,eua)? true. vendeu(west,brasil,m1)? true. possui(brasil,m1)? míssil(m1)? true. true.

Exercício 3. Dados os requisitos abaixo, construa as declarações de primeira ordem, cláusulas de Horn e implemente um programa em prolog para responder a pergunta. A curiosidade matou o gato? Jack possui um cachorro. Todo dono de cachorro gosta muito de animais. Nenhum amante de animal mata um animal. Nem Jack ou a curiosidade mataram Tuna. Tuna é um gato.