(P1,2 V P21) etc... Uma sentença para cada quadrado"> (P1,2 V P21) etc... Uma sentença para cada quadrado">

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

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

Lógica de primeira ordem First Order Logic (FoL)

Apresentações semelhantes


Apresentação em tema: "Lógica de primeira ordem First Order Logic (FoL)"— Transcrição da apresentação:

1 Lógica de primeira ordem First Order Logic (FoL)
Capítulo 8 Fundamentos da IA Mestrado FEI

2 Lógica proposicional  é declarativa
 permite informação disjuntiva e/ou negada (ao contrario da maioria das estruturas de dados e base de dados) é composicional: o significado de B1,1  P1,2 é derivado do significado de B1,1 e P1,2  O significado das sentenças proposicionais é independente do contexto (ao contrário da linguagem natural)  Possui um poder de expressão limitado E.g., "poços causam brisas em quadrados adjacentes” em LP: B1,1 <-> (P1,2 V P21) etc... Uma sentença para cada quadrado

3 FoL: compromisso ontológico
A lógica proposicional assume mundos compostos somente por fatos, A lógica de primeira ordem (como a linguagem natural) assume mundos compostos por Objetos: people, houses, numbers, colors, baseball games, wars, … Relações: red, round, prime, brother of, bigger than, part of, comes between, … Funções: father of, best friend, one more than, plus, …

4 Sintaxe da FOL Constantes KingJohn, 2, NUS,...
Predicados Brother, >,... Funções Sqrt, LeftLegOf,... Variáveis x, y, a, b,... Conectivos , , , ,  Igualdade = Quantificadores ,  Símbolos para! Não são a coisa em sí!!

5 Sintaxe da LPO Termos = função(term1,...,termn) ou constante ou variável [referem-se a objetos] Sentenças atômicas = predicado(term1,...,termn) ou term1 = term2 [enunciam fatos] E.g. sentença atômica, Brother(KingJohn,RichardTheLionheart), > (Length(LeftLegOf(Richard)), Length(LeftLegOf(KingJohn)))

6 Sentenças Complexas Sentenças complexas são construídas de sentenças atômicas usando conectivos: S, S1  S2, S1  S2, S1  S2, S1  S2, E.g. Sibling(KingJohn,Richard)  Sibling(Richard,KingJohn) >(1,2)  <(1,2) >(1,2)   >(1,2)

7 Semântica em lógica de primeira ordem
A semântica deve relacionar sentenças a modelos a fim de determinar verdade. Para isso precisamos de uma interpretação que especifique quais objetos, relações e funções são referidos pelos símbolos de constantes, relações e funções. Interpretação é, portanto, um mapeamento entre símbolos de constantes --> objetos símbolos de predicados --> relações símbolos de funções --> funções Uma sentença atômica predicate(term1,...,termn) é verdadeira sse os objetos relativos à term1,...,termn estão contidos na relação relativa à predicate

8 Modelos para FOL: Exemplo

9 Interpretação Interpretação: especifica exatamente quais objetos, relações e funções são referidos pelos símbolos de constantes, predicados e funções;

10 Interpretação Interpretação pretendida para o exemplo:
Ricardo: Ricado coração de leão; Joao: rei João Irmão: conjunto de tuplas: <Ricardo cor de leao, Rei João>, <Rei João, Ricardo Cor de leao> NaCabeça: relação Na cabeça, que é válida para coroa e rei Joao; Pessoa, Rei, Coroa: conjuntos de objetos Perna esquerda: função “perna esquerda”, I.e.: <Ricardo cor de leao> -> perna esquerda de Ricardo <Rei Joao> -> perna esquerda de Joao

11 Há várias outras interpretações possíveis
E.g. Ricardo -> Coroa, Joao -> perna do rei joao 5 objetos no modelos, portanto há 25 interpretações possíveis apenas para os símbolos Ricardo e Joao Confuso? Em logica proposicional é possível uma interpretação tal que ensolarado e nublado sejam verdade Cabe a base de conhecimento eliminar modelos inconsistentes com nosso conhecimento

12 Semântica em lógica de primeira ordem
A verdade de qualquer sentença é determinada por um modelo e uma interpretação para os símbolos das sentenças. Então, consequência lógica, validade, etc são definidas em termos de todos os modelos possíveis e todas as interpretações possíveis. O n. de elementos pode ser ilimitado N. de modelos ilimitado Verificação lógica pela enumeração de modelos não é uma opção.

13 Sintaxe: Quantificação Universal ()
<variáveis> <sentenças> “Todos os reis são pessoas”: x Rei(x)  Pessoa(x) x P é verdade em um modelo m sse P é verdadeira em todas as interpretações estendidas. Cada interpretação estendida especifica um elemento de domínio ao qual x se refere

14 Semântica: Quantificação Universal ()
i.e. a quantificação é equivalente à conjunção de instanciações de P Rei(KingJohn)  Pessoa(KingJohn)  Rei(Richard)  Pessoa(Richard)  Rei(Perna_esq._de_richard)  Pessoa(Perna_esq._de_richard)  Rei(Coroa)  Pessoa(Coroa) ... { São verdadeiras no modelo mas não trazem nenhuma informação, pois nenhuma das premissas são verdadeiras!

15 Equívoco comum Tipicamente,  é o principal conectivo para ser usado com  Equívoco comum: usar  como o principal conectivo com : x Rei(x)  Pessoa(x) i.e. “Todos são reis e todos são pessoas”

16 Sintaxe: Quantificação existencial
<variáveis> <sentenças> declaração sobre algum objeto sem nomeá-lo “Existe uma coroa na cabeça do rei John”: x Coroa(x)  NaCabeça(x, John)

17 Semântica: Quantificação existencial
x P é verdade em um modelo m sse P é verdade sendo x algum objeto possível no modelo; Informalmente, é equivalente à disjunção de instanciações de P Coroa(John)  NaCabeça(John, John)  Coroa(Richard)  NaCabeça(Richar, John)  Coroa(Crown)  NaCabeça(Crown, John)  ...

18 x Coroa(x)  NaCabeça(x, João)
Outro equívoco comum... Tipicamente,  é o principal conectivo para  Equívoco: usar  como o principal conectivo com : x Coroa(x)  NaCabeça(x, João) é verdadeira se x não for coroa (como x diz que existe pelo menos um, a sentença ser verdadeira para um outro objeto que não seja coroa torna esta sentença completamente irrelevante!)

19 Propriedades dos quantificadores
x y é o mesmo que y x x y é o mesmo que y x x y não é o mesmo que y x x y Loves(x,y) “há uma pessoa que ama todas as outras no mundo” y x Loves(x,y) “todo mundo é amado por alguem” Dualidade de quantificadores: são complementares: x Likes(x,IceCream) x Likes(x,IceCream) x Likes(x,Broccoli) x Likes(x,Broccoli)

20 Igualdade term1 = term2 é verdade em uma interpretação se e somente se term1 e term2 referem ao mesmo objeto. E.g., definição de Irmão em termos de Genitor: x,y Irmão(x,y)  [(x = y)  m,f  (m = f)  Genitor(m,x)  Genitor(f,x)  Genitor(m,y)  Genitor(f,y)]

21 Usando FOL Domínio de parentesco:
mãe é um ancestral feminino de alguém m,c Mãe(c) = m  (Feminino(m)  Ancestral(m,c)) Esta regra não restringe os modelos corretamente, por que? (este é um erro comum em engenharia de conhecimento) “irmão” é simétrico x,y irmão(x,y)  irmão(y,x) “um avô é genitor de alguém que é pai” x,y Avô(x,y)   p Pai(p,x)  Genitor(p,y) Onde está o erro?

22 Usando FOL Domínio de parentesco:
x,y Avô(x,y)   p Pai(p,x)  Genitor(p,y) Outro erro comum: a ordem do argumento é inconsistente com o conceito a ser definido.

23 Axiomas e teoremas Cada sentença anterior é um axioma do domínio de parentesco; utiliza-se um conjunto básico de predicados segundo os quais outros podem ser definidos a partir de axiomas. Um conjunto de axiomas é uma teoria lógica Fórmulas que são consequência lógica de um conjunto de axiomas são teoremas desta teoria;

24 Usando FOL Teoria de conjuntos:
s Set(s)  (s = {} )  (x,s2 Set(s2)  s = {x|s2}) x,s {x|s} = {} x,s x  s  s = {x|s} x,s x  s  [ y,s2} (s = {y|s2}  (x = y  x  s2))] s1,s2 s1  s2  (x x  s1  x  s2) s1,s2 (s1 = s2)  (s1  s2  s2  s1) x,s1,s2 x  (s1  s2)  (x  s1  x  s2) x,s1,s2 x  (s1  s2)  (x  s1  x  s2)

25 FOL para Base de Conhecimento
Suponha que um agente no mundo de wumpus, usando uma BC em FOL, detecta um fedor e uma brisa (mas não brilho) em t=5: Tell(BC,Percept([Smell,Breeze,None],5)) Ask(BC,a BestAction(a,5)) I.e., A BC deduz a melhor ação em t=5? Resposta: Yes, {a/Shoot} substituição (lista de atribuição) Dada uma sentença S e uma substituição , S denota o resultado da substituição de  em S; e.g., S = Smarter(x,y)  = {x/Hillary,y/Bill}  S = Smarter(Hillary,Bill) Ask(BC,S) retorna algum/todo  tal que KB |= 

26 Engenharia de conhecimento em FOL
Identificar uma tarefa; Agregar conhecimento relevante; Definir um vocabulário de predicados, funções, e constantes (ontologia); Codificar o conhecimento geral sobre o domínio; Codificar uma descrição da instância específica do problema; Formular consultas ao procedimento de inferência e obter respostas; Depurar a base de conhecimento.

27 Exemplo: domínio de circuitos eletrônicos
Somador completo de um bit.

28 Domínio de circuitos eletrônicos
Identificar a tarefa O circuito adiciona de maneira correta? (verificação do circuito) Agregar conhecimento relevante; Composto de cabos e portas; Tipos de portas (AND, OR, XOR, NOT) Irrelevante: tamanho, forma, cor, ... Decidir um vocabulário Alternativas: Type(X1) = XOR Type(X1, XOR) XOR(X1)

29 Domínio de circuitos eletrônicos
Codificar o conhecimento geral sobre o domínio t1,t2 Connected(t1, t2)  Signal(t1) = Signal(t2) t Signal(t) = 1  Signal(t) = 0 1 ≠ 0 t1,t2 Connected(t1, t2)  Connected(t2, t1) g Type(g) = OR  Signal(Out(1,g)) = 1  n Signal(In(n,g)) = 1 g Type(g) = AND  Signal(Out(1,g)) = 0  n Signal(In(n,g)) = 0 g Type(g) = XOR  Signal(Out(1,g)) = 1  Signal(In(1,g)) ≠ Signal(In(2,g)) g Type(g) = NOT  Signal(Out(1,g)) ≠ Signal(In(1,g))

30 Domínio de circuitos eletrônicos
Codificar uma descrição da instância específica do problema Type(X1) = XOR Type(X2) = XOR Type(A1) = AND Type(A2) = AND Type(O1) = OR Connected(Out(1,X1),In(1,X2)) Connected(In(1,C1),In(1,X1)) Connected(Out(1,X1),In(2,A2)) Connected(In(1,C1),In(1,A1)) Connected(Out(1,A2),In(1,O1)) Connected(In(2,C1),In(2,X1)) Connected(Out(1,A1),In(2,O1)) Connected(In(2,C1),In(2,A1)) Connected(Out(1,X2),Out(1,C1)) Connected(In(3,C1),In(2,X2)) Connected(Out(1,O1),Out(2,C1)) Connected(In(3,C1),In(1,A2))

31 Domínio de circuitos eletrônicos
Formular consultas ao procedimento de inferência e obter respostas; Que combinações de entradas fariam a primeira saida de C1 (o bit de soma) ser 0 e a sengunda saida de C1 (o bit e transporte) ser 1? i1,i2,i3,o1,o2 Signal(In(1,C1)) = i1  Signal(In(2,C1)) = i2  Signal(In(3,C1)) = i3  Signal(Out(1,C1)) = 0  Signal(Out(2,C1)) = 1 Resposta: conjunto de substituições para i1, i2 e i3 (ex. {i1/1, i2/1, i3/0})

32 Depurar a base de conhecimento
Pode ter havido algumas omissões como 1  0 Testar perguntas com respostas já conhecidas.


Carregar ppt "Lógica de primeira ordem First Order Logic (FoL)"

Apresentações semelhantes


Anúncios Google