linguagens lógicas

24
Linguagens lógicas 2013 – Luiz Mauricio Nascimento Silva Graduando em Ciência da Computação UESC – Universidade Estadual de Santa Cruz

Upload: trina

Post on 14-Feb-2016

60 views

Category:

Documents


0 download

DESCRIPTION

Linguagens lógicas. 2013 – Luiz Mauricio Nascimento Silva Graduando em Ciência da Computação UESC – Universidade Estadual de Santa Cruz. Introdução a L.P lógica. Programação lógica é um tipo de programação a qual utiliza uso de lógica matemática em sua essência. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Linguagens lógicas

Linguagens lógicas2013 – Luiz Mauricio Nascimento SilvaGraduando em Ciência da Computação

UESC – Universidade Estadual de Santa Cruz

Page 2: Linguagens lógicas

Introdução a L.P lógicaProgramação lógica é um tipo de programação a qual

utiliza uso de lógica matemática em sua essência. As linguagens de programação lógicas ou linguagens

declarativas, são bem diferentes das outras tanto a sua semântica qual a sua sintaxe.

Por exemplo na programação imperativa, nós descrevemos um procedimento para que assim sair um resultado a partir dele, na lógica, nós descrevemos o resultado para assim obte-lô.

Page 3: Linguagens lógicas

Introdução a L.P lógicaProgramar em uma LP lógica consiste em:

Declarar fatos primitivos sobre um domínio; Definir regras que expressam relações entre os fatos de

um domínio; Fazer perguntas sobre um domínio. O processo de dedução através do qual encontram-se

respostas às perguntas é executado automaticamente pelo sistema

Page 4: Linguagens lógicas

exemplo1.Galinhas botam ovos. 2.Mamíferos não botam ovos. 3.Vacas são mamíferos. 4.Vacas botão ovos? Não 5.Quem bota ovos? Galinhas

Page 5: Linguagens lógicas

Lógica Formal A lógica formal foi desenvolvida para fornecer um

método para descrever proposições, e verificar quanto a sua validade.

Uma proposição pode ser imaginada como uma declaração lógica que pode ou não ser verdadeira .

A lógica simbólica pode ser usada para as três necessidades básicas da lógica formal:

1 - expressar proposições. 2 - expressar as relações entre elas. 3 - descrever como novas proposições podem ser inferidas de outras que se presumem verdadeiras.

Page 6: Linguagens lógicas

Operadores lógicos

Page 7: Linguagens lógicas

Variáveis Variáveis podem aparecer em proposições, mas somente

quando introduzidas por símbolos especiais, os quantificadores;

Universal: X P∀Sendo X uma variável e P uma proposição; Para todo X, P e verdadeiro;

Existencial: ∃ X PSendo X uma variável e P uma proposição; Existe um valor de X tal que P seja verdadeiro;

Ponto (.), simplesmente separa a variável da proposição;

Page 8: Linguagens lógicas

Variáveis ∀ X . ( mulher( X ) → humano( X ))

Significa que para qualquer valor de X, se X for uma mulher, X é humano;

∃ X . ( mãe( mary, X ) → homem( X )) Significa que existe um valor de X tal que mary e mãe de X e X e um homem (mary tem um filho);

Page 9: Linguagens lógicas

CláusulasExistem 2 tipos de clausulas. Fatos e regras:

Fatos: declaração de uma verdade incondicional.Ex: José gosta de Mariagosta(José, Maria)gosta(Maria, José)

Nas expressões acima gostar é o predicado do fato, representando uma relação entre os argumentos

Page 10: Linguagens lógicas

CláusulasRegra: condição que deve ser satisfeita para que um

declaração seja considerada verdadeira.

A declaração de regras (axiomas) em LPs lógicas segue um padrão conhecido como cláusulas de Horn:

H←A1,A2,..., An , se todos os Ai são verdadeiros, então H é verdadeiro.

Page 11: Linguagens lógicas

cláusulasNa expressão acima, H é denominado a cabeça da

cláusula e A1,A2,..., An é o seu corpo. Através de regras pode-se estabelecer relações entre fatos.

Ex:pai(pedro, ana):- mãe(maria,ana), casada(maria, pedro). Pedro é pai de Ana, se Maria for mãe de Ana e Maria for casada com Pedro.

Page 12: Linguagens lógicas

Banco de Dados

O conjunto de fatos e relações contidos em um programa lógico é denominado banco de dados, e representa o conhecimento sobre um ou mais domínios.

O objetivo de um programa lógico é inferir e validar novos fatos ou relações a partir do banco de dados.

Page 13: Linguagens lógicas

Historia do prologO nome Prolog para a linguagem concreta foi escolhido

por Philippe Rousseal como uma abreviação de “Programmation Logique”.

Foi criada em meados de 1972 por Alain Colmerauer e Philippe Rousseal, baseados no conceito de Robert Kowalski da interpretação procedimental das cláusulas de Horn.

Ainda hoje é a mais popular e principal LP lógica.

Page 14: Linguagens lógicas

PrologProgramar em Prolog consiste em:

Declarar alguns fatos sobre objetos e suas relações.

Definir algumas regras sobre objetos e suas relações.

Fazer consultas sobre objetos e suas relações

Page 15: Linguagens lógicas

PrologFatos em Prolog são representados através

de átomos ou estruturas. Átomos são strings que começam sempre

com letra minúscula: Ex:caro. diamante. maria.

Page 16: Linguagens lógicas

Estruturas em PrologEstruturas são átomos seguidos de uma lista de

argumentos entre parênteses: pred (arg1, arg2, ..., argN). onde: arg1, arg2, ...,argN – são os argumentos N - número de argumentos (.) - final sintático de qualquer cláusula Prolog

Page 17: Linguagens lógicas

Estruturas em PrologOs argumentos de uma estrutura podem ser

átomos, estruturas, variáveis e números. Exemplos: limpo(sapato). casado(X, Y). arvore_bin(valor1, arvore_bin(valor2,

valor3)). valor(30).

Page 18: Linguagens lógicas

VariáveisEm LPs imperativas variáveis são instanciadas através de

operações explícitas de atribuição.Em LPs lógicas variáveis geralmente são instanciadas

implicitamente pelo sistema durante o processo de resolução.

São usadas basicamente para extrair informações do banco de dados, e para expressar relações entre fatos.

Variáveis em Prolog são representadas por strings que começam com uma letra maiúscula.

Page 19: Linguagens lógicas

VariáveisEX:

pai(joao,joaquim). pai(joaquim,manuel). avo(X,Y):- pai(X,Z),pai(Z,Y). ?-avo(joao,Z). Z=manuel

Page 20: Linguagens lógicas

UnificaçãoPara tentar provar um fato Prolog precisa

estabelecer a equivalência entre fatos. Dois fatos equivalentes são ditos unificáveis. Dois átomos são unificáveis apenas se são

idênticos. Duas estruturas são unificáveis se o seu

predicado é idêntico, e se seus argumentos são unificáveis .

Page 21: Linguagens lógicas

UnificaçãoUma variável é unificável a qualquer coisa. O símbolo = em prolog representa unificação Ex:

fruta(manga). ?-fruta(X). X = manga; X foi unificada com “manga”

Page 22: Linguagens lógicas

Regras em prologUma regra é a descrição de um predicado através de uma

implicação Ex: “um animal é presa se é comido por outro animal”.

come(Y,X) ^ animal(X) -> presa(X) em Prolog: presa(X) :- come(Y,X), animal(X)

Page 23: Linguagens lógicas

ConjunçõesConjunções permitem a especificação de questões com

múltiplas condições que devem ser satisfeitas simultaneamente.

Conjunções são representadas por uma vírgula ( , ). Exemplo:

comida(carne). gostoso(carne). ?- localizacao(X,cozinha):- comida(X), gostoso(X). Existe alguma comida gostosa na cozinha? X= carne.

Page 24: Linguagens lógicas

DisjunçãoDisjunções permitem a especificação de questões com

múltiplas condições na qual ao menos uma delas deve ser satisfeita.

Disjunções são representadas por um ponto-e-vírgula ( ; ) Ex:

inverno(X):- nevando(X); gelado(X). É inverno se está nevando ou está gelado.