Linguagens lógicas 2013 – Luiz Mauricio Nascimento Silva

Slides:



Advertisements
Apresentações semelhantes
Lógica de Predicados e Representação de Conhecimento
Advertisements

Prof. Marcone Sotéro Cálculo de Predicados Prof. Marcone Sotéro
Monitoria de Discreta: Aula de Revisão
Capítulo 9 A semântica da Lógica de Predicados
Lógica Matemática e Computacional 7 – Introdução à Programação Lógica
Elsa Carvalho 163 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Teoria dos Modelos.
Linguagens de Programação
Lógica de Predicados Sintaxe. O que não é possível expressar em Lógica Prop. Todo tricolor é um campeão. Roberto é tricolor. Logo Roberto é um campeão.
Introdução à Programação Lógica
Introdução à Linguagem Prolog
Cálculo Relacional Datalog não-recursivo
Resolução.
INTRODUÇÃO A lógica faz parte do nosso cotidiano.
BCC 101– Matemática Discreta
Programação em lógica e lógica
Programação Lógica: PROLOG
Programação para Engenharia I
Curso Sistemas de Informação Disciplina: Arquitetura de Software
01(c) 2007 Gustavo Motta1 Introdução ao -calculus Prof. Gustavo Motta Departamento de Informática/UFPB.
2. A Linguagem Prolog.
3. Sintaxe e Semântica.
Introdução à Modelagem Conceitual 3. Prolog
Luiz A. M. Palazzo Pelotas, maio de 2010
Lógica para Computação
Programação em Lógica Augusto Marks Batista Guilherme dos Santos Fujiyoshi Marlon Bill Santos.
A Lógica das Sentenças Abertas Profa. Ana Florencia Aula 9
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
Inteligência Artificial
Conceitos Básicos.
FUNDAMENTOS MATEMÁTICOS
Inteligência Artificial: A Linguagem Prolog (parte 2)
Sintaxe e Semântica do PROLOG.
Aula Prática - Prolog Sistemas Inteligentes /~if684
Prolog Programação Lógica Ícaro A. Souza.
Conceitos de Linguagem de Programação
Aula Prática - Prolog Sistemas Inteligentes /~if684
Programmation en logique. UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE Daniel Augusto da Costa Ambrósio Eduardo Agostinho Oliveira dos Santos Fernando.
Conceitos e Linguagens de Programação
Introdução a Lógica Prof. Luiz Carlos Gabi.
INF 1771 – Inteligência Artificial
Prof. Esp. Cristiano José Cecanho Inteligência Artificial
Cálculo relacional Lílian Simão Oliveira.
Lógica de Predicados Sintaxe.
Sistemas Especialistas
©Prof. Lineu MialaretAula 9 - 1/28Matemática Discreta 1 Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP Campus de Caraguatatuba.
André Luiz da Costa Carvalho
Lógica matemática.
Sistemas Especialistas Podem ser definidos como programas de computador desenvolvidos para representar o conhecimento humano num dado domínio específico.
INTRODUÇÃO À PROGRAMAÇÃO EM LÓGICA Profa. Joseluce de Farias Cunha
Métodos Formais.
Inteligência Artificial: Lógica Proposicional e Prolog
Programação Lógica com Prolog
Fundamentos de linguagens de programação
Inteligência Artificial: A Linguagem Prolog (Parte 1)
J. M. Barreto UFSC-INE Lógica de Primeira Órdem R ecordação.
Elsa Carvalho 1 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Conceitos Prolog.
1 Provas e Proposições Anjolina Grisi de Oliveira Fonte:
Lógica para Computação
Lógica Aula 3.
Lógica matemática.
Vinicius Ponte Machado
Inteligência Artificial
NOÇÕES DE LÓGICA Professor: Renilson.
Revisão 2º Bimestre Inteligência Artificial - IA Nome: Leonardo Brussolo de Paula.
SISTEMAS DE INFORMAÇÃO Inteligência Artificial 2011/01 UNIPAC - FACAE Faculdade de Ciências Administrativas e Exatas Araguari - MG.
Faculdade Pernambuca - FAPE Compiladores Abril/2007 Compiladores Abril/2007.
Negação de Proposições Simples ou Compostas
1 Lógica de Predicados BCC101 Matemática Discreta I.
Transcrição da apresentação:

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

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

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 P 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á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

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.

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.

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 prolog O 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.

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

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.

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

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

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.

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

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 .

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”

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)

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.

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.