1 / 32

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

Lógica de primeira ordem First Order Logic (FoL). Capítulo 8 Fundamentos da IA Mestrado FEI. Lógica proposicional.  é declarativa  permite informação disjuntiva e/ou negada (ao contrario da maioria das estruturas de dados e base de dados) é composicional :

galena
Télécharger la présentation

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

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. Lógica de primeira ordemFirst 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 • (ao contrário da linguagem natural) • 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,...,termnestã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 • xP é 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. 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 ynã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 term1e term2referem ao mesmo objeto. • E.g., definição de Irmão em termos de Genitor: x,yIrmã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 teoremasdesta 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.

More Related