A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Lógica para Computação

Apresentações semelhantes


Apresentação em tema: "Lógica para Computação"— Transcrição da apresentação:

1 Lógica para Computação
Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br

2 Resolução e PROLOG Passos para obter a forma clausal de uma fbf:
Obter a forma normal prenex da fbf: (Forma normal prenex: Q1x1Q2x2...Qnxn (A) , onde Q1x1Q2x2...Qnxn é o prefixo e (A) é a matriz da fbf); Eliminar os conectivos  e →; Colocar as negações () ao lado dos átomos; Distinguir as variáveis, se necessário; Deslocar os quantificadores para o início da fbf. Prof. Celso A A Kaestner 12/04/2017

3 Resolução e PROLOG Eliminar os quantificadores existenciais (skolemização): x((x)) é substituído por então ([x:=f(y1,y2...ym)]) onde f é a função de Skolem e y1,y2...ym são as variáveis quantificadas universalmente () que antecedem x; Se não houverem tais variáveis x((x)) é substituído por (a), onde a é a constante de Skolem. Eliminar o prefixo da fbf (todos os quantificadores universais); Passar a forma normal conjuntiva, reordenando os conectivos  e  de forma conveniente. Prof. Celso A A Kaestner 12/04/2017

4 Resolução e PROLOG Relação entre um conjunto de fbf e a forma clausal correspondente: Se F = {A1, A2,...,Ap} é um conjunto de fbf e se C = {C1, C2,...,Cm} é a forma clausal correspondente, então F é inconsistente se e só se C é inconsistente. Prof. Celso A A Kaestner 12/04/2017

5 Resolução e PROLOG O princípio da resolução:
Para fórmulas concretas (sem variáveis) Dadas as cláusulas A1  A2 ... Ap  C e B1  B2 ... Bm  C então pode-se deduzir a cláusula resolvente A1  A2 ...Ap B1  B2 ... Bm (este caso é similar ao da lógica proposicional). Prof. Celso A A Kaestner 12/04/2017

6 Resolução e PROLOG O princípio da resolução: Para fórmulas em geral:
Dadas as cláusulas A1  A2 ... Ap  C e B1  B2 ... Bm  D tais que C e D são unificáveis pela substituição mgu [s] (isto é, se C[s] = D[s]) então pode-se deduzir a cláusula resolvente (A1  A2 ...Ap)[s]  (B1  B2 ... Bm)[s]. Prof. Celso A A Kaestner 12/04/2017

7 Resolução e PROLOG Propriedades do princípio da resolução:
É uma regra de inferência correta, isto é, a cláusula resolvente é conseqüência lógica das cláusulas iniciais; É completo por refutação, isto é, se C é um conjunto inicial de cláusulas, e se C1,C2,...Cn é uma seqüência de cláusulas distintas tais que Cn é a cláusula vazia e se para i de 1 até n-1 a cláusula Ci pertence a C ou é resolvente de cláusulas anteriores na seqüência, então o conjunto inicial C é inconsistente. Prof. Celso A A Kaestner 12/04/2017

8 Resolução e PROLOG Sistemas de refutação por resolução:
Para provar a dedução A1,A2...,An |- B procede-se da seguinte forma: Monta-se o conjunto {A1,A2...,An , B}; Obtém-se sua forma clausal C; Se C é inconsistente, a dedução é válida. Prof. Celso A A Kaestner 12/04/2017

9 A linguagem PROLOG Prolog é uma linguagem de programação que se enquadra no paradigma de Programação em Lógica Matemática. É uma linguagem de uso geral que é especialmente associada com a Inteligência Artificial e com a Linguística Computacional. Consiste numa linguagem puramente lógica, que pode ser chamada de Prolog puro, e numa linguagem concreta, a qual acrescenta o Prolog puro com componentes extra-lógicos. Prof. Celso A A Kaestner 12/04/2017

10 A linguagem PROLOG Wikipedia: http://pt.wikipedia.org/wiki/Prolog
Programming in Prolog – William F. Clocksin & Christopher S. Mellish, Springer Verlag, ISBN:  (Print)  (Online) Programação em Lógica e a Linguagem Prolog - Marco A. Casanova, Fernando A.C. Giorno, Antonio L. Furtado, rio.br/~casanova/Publications/Books/1987-PL.pdf Resumo de Sheila McIlraith em /csc324w07-prolog1-21_4up.pdf Prof. Celso A A Kaestner 12/04/2017

11 A linguagem PROLOG Obtendo o Prolog: http://www.swi-prolog.org/
Tutoriais no mesmo site; Prolog NÃO é procedural nem funcional; Separa lógica e controle: O programador declara quais fatos e relações são verdadeiros; O sistema determina como usar estes fatos para resolver problemas – ou provar consultas; O sistema também instancia variáveis para resolver os problemas. Prof. Celso A A Kaestner 12/04/2017

12 A linguagem PROLOG O “programa” – ou base de dados- é constituído de fatos e regras: Fatos: basicamente predicados definidos sobre constantes; exemplos: gato(tom). rato(jerry). Regras: cláusulas de Horn (um único literal positivo), na forma h:-t1,t2...,tn indicando a inferência (t1^t2...^tn -> h), onde os ti e h são fórmulas atômicas; exemplos: não_gosta(X,Y):-gato(X),rato(Y). “:-” corresponde a uma implicação no sentido inverso, e “,” corresponde a uma conjunção. Prof. Celso A A Kaestner 12/04/2017

13 A linguagem PROLOG Após se carregar - ou consultar – uma base de dados o interpretador Prolog está apto a “responder consultas”, indicando se um fato é o não consequência lógica dos elementos indicados no programa; O interpretador utiliza prova por unificação, resolução, refutação e backtracking; A negação é tratado apenas por falha finita, o que é um limitante da linguagem. Prof. Celso A A Kaestner 12/04/2017

14 A linguagem PROLOG male(albert). female(alice). male(edward).
female(victoria). parent(albert,edward). parent(victoria,edward). parent(albert,alice). parent(victoria,alice). ? male(albert). Yes ? female(Person). Person=alice ; Person=victoria; No ? parent(Person,edward). Person=albert; Prof. Celso A A Kaestner 12/04/2017

15 A linguagem PROLOG ? parent(Person,edward),female(Person). Person=victoria; No Acrescentando-se: sibling(X,Y):- parente(Z,X),parente(Z,Y). ? sibling(albert,victoria). ? sibling(edward,S). S=edward; S=alice; S=edward, S=alice; ... No Prof. Celso A A Kaestner 12/04/2017

16 A linguagem PROLOG ... To be continued ! Prof. Celso A A Kaestner
12/04/2017


Carregar ppt "Lógica para Computação"

Apresentações semelhantes


Anúncios Google