1 / 24

Linguagens lógicas

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.

trina
Download Presentation

Linguagens lógicas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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. • 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ô.

  3. Introdução a L.P lógica Programar 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

  4. exemplo • 1.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

  5. 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.

  6. Operadores lógicos

  7. 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 P Sendo 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;

  8. 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);

  9. Cláusulas • Existem 2 tipos de clausulas. Fatos e regras: • Fatos: declaração de uma verdade incondicional. Ex: José gosta de Maria gosta(José, Maria) gosta(Maria, José) • Nas expressões acima gostar é o predicado do fato, representando uma relação entre os argumentos

  10. Cláusulas • Regra: 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.

  11. cláusulas • Na 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.

  12. 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.

  13. Historia do prolog • O nome Prolog para a linguagem concreta foi escolhido por Philippe Rousseal como uma abreviação de “ProgrammationLogique”. • 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.

  14. Prolog Programar 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

  15. Prolog • Fatos 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.

  16. Estruturas em Prolog • Estruturas 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

  17. Estruturas em Prolog • Os 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).

  18. Variáveis • Em 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.

  19. Variáveis • EX: pai(joao,joaquim). pai(joaquim,manuel). avo(X,Y):- pai(X,Z),pai(Z,Y). ?-avo(joao,Z). Z=manuel

  20. Unificação • Para 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 .

  21. Unificação • Uma 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”

  22. Regras em prolog • Uma 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)

  23. Conjunções • Conjunçõ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.

  24. Disjunção • Disjunçõ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.

More Related