Linguagens lógicas2013 – Luiz Mauricio Nascimento SilvaGraduando em Ciência da Computação
UESC – Universidade Estadual de Santa Cruz
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ô.
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
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
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.
Operadores lógicos
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;
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);
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
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.
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.
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.
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.
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
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.
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
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).
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.
VariáveisEX:
pai(joao,joaquim). pai(joaquim,manuel). avo(X,Y):- pai(X,Z),pai(Z,Y). ?-avo(joao,Z). Z=manuel
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 .
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”
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)
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.
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.
Top Related