Buscar

19-Inferencia_em_LPO

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 103 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 103 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 103 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

INFERÊNCIA	
  EM	
  LPO	
  
	
  
	
  
Raciocínio	
  com	
  variáveis	
  
¨  Uma	
   	
  de	
  um	
  átomo	
  ou	
  uma	
  cláusula	
  é	
  obAda	
  
subsAtuindo-­‐se	
  uniformemente	
  termos	
  para	
  variáveis.	
  
¨  Uma	
   	
  é	
  um	
  conjunto	
  de	
  finito	
  de	
  forma	
  {V1/t1,	
  ...,	
  
Vn/tn},	
  onde	
  cada	
  Vi	
  é	
  uma	
  variável	
  disAnta	
  e	
  cada	
  ti	
  é	
  um	
  
termo.	
  
¨  A	
   	
  de	
  uma	
  subsAtuição	
  σ	
  =	
  {V1/t1,	
  ...,	
  Vn/tn}	
  para	
  um	
  
átomo	
  ou	
  cláusula	
  e,	
  escrito	
  eσ,	
  é	
  a	
  instância	
  de	
  e	
  com	
  todas	
  
as	
  ocorrências	
  do	
  Vi	
  subsAtuídas	
  por	
  ti.	
  
Exemplos	
  de	
  aplicações	
  
¨  Os	
  exemplos	
  abaixo	
  são	
  subsAtuições:	
  
	
  σ1	
  =	
  {X/A,Y/b,Z/C,D/e}	
  
	
  σ2	
  =	
  {A/X,Y/b,C/Z,D/e}	
  
	
  σ3	
  =	
  {A/V,X/V,Y/b,C/W,Z/W,D/e}	
  
	
  
¨  Abaixo	
  temos	
  algumas	
  aplicações:	
  
	
  p(A,b,C,D)σ1	
  =	
  p(A,b,C,e)	
  
	
  p(X,Y,Z,e)σ1	
  =	
  p(A,b,C,e)	
  
	
  p(A,b,C,D)σ2	
  =	
  p(X,b,Z,e)	
  
	
  p(X,Y,Z,e)σ2	
  =	
  p(X,b,Z,e)	
  
	
  p(A,b,C,D)σ3	
  =	
  p(V,b,W,e)	
  
	
  p(X,Y,Z,e)σ3	
  =	
  p(V,b,W,e)	
  
Inferência	
  em	
  LP	
  X	
  LPO	
  
4 
¨  Uma	
  ideia	
  básica	
  é	
  converter	
  a	
  BC	
  em	
  LPO	
  para	
  uma	
  BC	
  em	
  LP	
  e	
  
aplicar	
  inferência	
  proposicional.	
  
¨  A	
  regra	
  de	
   (UI)	
  afirma	
  que,	
  em	
  com	
  uma	
  
sentença	
  universalmente	
  quanAficada,	
  podemos	
  deduzir	
  qualquer	
  
sentença	
  obAda	
  pela	
  subsAtuição	
  de	
  um	
  termo	
  básico	
  (sem	
  
variáveis)	
  para	
  uma	
  variável.	
  
¨  Exemplo:	
  	
  
¤  Da	
  sentença	
  ∀X rei(X) ٨۸ guloso(X) => perverso(X). 
¤  Podemos	
  derivar:	
  
n  rei(joão) ٨۸ guloso(joão) => perverso(joão). 
n  rei(ricardo) ٨۸ guloso(ricardo) => perverso(ricardo). 
n  rei(pai(joão)) ٨۸ guloso(pai(joão)) => perverso(pai(joão)). 
Instanciação	
  Universal	
  
5 
¨  As	
  três	
  sentenças	
  anteriores	
  foram	
  obAdas	
  pelas	
  
subsAtuições	
  da	
  variável	
  x	
  por	
  um	
  termo	
  básico	
  da	
  BC:	
  
¤  {X/joão}, {X/ricardo}, {X/pai(joão)} 
¨  Seja	
  SUBST(θ,	
  α)	
  o	
  resultado	
  da	
  subsAtuição	
  θ	
  à	
  sentença	
  α.	
  
Então	
  a	
  regra	
  de	
  instanciação	
  universal	
  é	
  escrita	
  como:	
  
	
  ∀V	
  α 	
   	
   	
   	
  onde	
  V	
  é	
  uma	
  variável	
  e	
  
	
  SUBST({V/g},	
  α) 	
   	
  	
  g	
  é	
  um	
  termo	
  básico	
  
Instanciação	
  Existencial	
  
6 
¨  A	
  regra	
  de	
   é	
  um	
  pouco	
  mais	
  complicada.	
  
¨  Para	
  qualquer	
  sentença	
  existencialmente	
  quanAficada	
  α,	
  
variável	
  V,	
  e	
  símbolo	
  de	
  constante	
  k	
  que	
  não	
  apareça	
  na	
  BC:	
  
	
  ∃V	
  α 	
   	
   	
  onde	
  V	
  é	
  uma	
  variável	
  e	
  k	
  é	
  uma	
  
	
  SUBST({V/k},	
  g) 	
  constante	
  que	
  não	
  aparece	
  em	
  BC	
  
¨  Exemplo:	
  	
  
¤  Da	
  sentença	
  ∃X coroa(X) ٨۸ naCabeça(X,joão).	
  
¤  Podemos	
  derivar	
  a	
  sentença:	
  
n  coroa(c1) ٨۸ naCabeça(c1,joão).	
  Desde	
  que	
  c1	
  não	
  apareça	
  em	
  
outro	
  lugar	
  na	
  BC.	
  
Instanciação	
  Existencial	
  
7 
¨  A	
  sentença	
  existencial	
  afirma	
  que	
  existe	
  algum	
  objeto	
  que	
  saAsfaz	
  
a	
  uma	
  condição.	
  
¨  O	
  processo	
  de	
  instanciação	
  apenas	
  dá	
  um	
  nome	
  a	
  este	
  objeto.	
  
¨  Este	
  nome	
  (a	
  constante	
  uAlizada)	
  é	
  chamada	
  de	
  
,	
  porque	
  a	
  instanciação	
  do	
  existencial	
  é	
  um	
  caso	
  especial	
  de	
  
um	
  processo	
  chamado	
  de	
   .	
  
¨  Em	
  termos	
  de	
  inferência	
  a	
  sentença	
  existencial	
  
,	
  e	
  depois	
  a	
  sentença	
  pode	
  ser	
  descartada.	
  
¤  Diferente	
  da	
  sentença	
  universal	
  que	
  pode	
  ser	
  aplicada	
  várias	
  vezes	
  com	
  
subsAtuições	
  diferentes.	
  
Redução	
  à	
  inferência	
  proposicional	
  
8 
¨  As	
  sentenças	
  existencialmente	
  quanAficadas	
  podem	
  ser	
  subsAtuídas	
  por	
  
	
   .	
  
¨  As	
  sentenças	
  universalmente	
  quanAficadas	
  podem	
  ser	
  subsAtuídas	
  por	
  
.	
  
¤  Considere	
  a	
  seguinte	
  BC:	
  
n  ∀X rei(x) ٨۸ guloso(X) => perverso(X). 
n  rei(joão). 
n  guloso(joão). 
n  irmão(ricardo, joão). 
¤  Aplicando	
  UI	
  à	
  primeira	
  sentença,	
  obtemos:	
  
n  rei(joão) ٨۸ guloso(joão) => perverso(joão). 
n  rei(ricardo) ٨۸ guloso(ricardo) => perverso(ricardo). 
n  e	
  podemos	
  descartar	
  a	
  sentença	
  universalmente	
  quanAficada.	
  
Redução	
  à	
  inferência	
  proposicional	
  
9 
¨  Agora	
  a	
  BC	
  é	
  essencialmente	
  proposicional	
  se	
  visualizarmos	
  
as	
  sentenças	
  atômicas	
  básicas	
  como	
  símbolos	
  proposicionais:	
  
¤  rei(joão) ٨۸ guloso(joão) => perverso(joão). 
¤  rei(ricardo) ٨۸ guloso(ricardo) => perverso(ricardo). 
¤  rei(joão). 
¤  guloso(joão). 
¤  irmão(ricardo,joão). 
¨  Esta	
  técnica	
  é	
  chamada	
  de	
   e	
  pode	
  se	
  
tornar	
  totalmente	
  geral.	
  
¤  Toda	
  BC	
  em	
  LPO	
  e	
  toda	
  consulta	
  pode	
  ser	
  proposicionalizada	
  de	
  forma	
  
que	
  a	
  consequência	
  lógica	
  é	
  preservada.	
  
Redução	
  à	
  inferência	
  proposicional	
  
10 
¨  Porém,	
  o	
  procedimento	
  de	
  decisão	
  para	
  consequência	
  lógica	
  
não	
  é	
  completo.	
  
¨  Se	
  a	
  BC	
  conter	
  um	
  símbolo	
  de	
  função,	
  o	
  conjunto	
  de	
  
subsAtuições	
  possíveis	
  de	
  termos	
  básicos	
  é	
  infinito:	
  
¤  Por	
  exemplo:	
  se	
  a	
  BC	
  contém	
  o	
  símbolo	
  pai,	
  então	
  pai(joão) é	
  um	
  
termo,	
  assim	
  como	
  pai(pai(joão)) e	
  
pai(pai(pai(joão))) e	
  ...	
  também	
  são.	
  
:	
  Se	
  BC|=	
  α	
  na	
  BC	
  em	
  LPO	
  original,	
  
então	
  existe	
  uma	
  prova	
  envolvendo	
  um	
  subconjunto	
  finito	
  da	
  
BC	
  proposicionalizada.	
  
Redução	
  à	
  inferência	
  proposicional	
  
11 
¨  Podemos	
  encontrar	
  o	
  subconjunto	
  do	
  teorema	
  de	
  Herbrand:	
  
¤  Gerando	
  primeiro	
  todas	
  as	
  instanciações	
  com	
  símbolos	
  de	
  constantes,	
  
depois	
  todos	
  os	
  termos	
  de	
  profundidade	
  1,	
  depois	
  de	
  profundidade	
  
2...	
  
¤  Até	
  sermos	
  capazes	
  de	
  construir	
  uma	
  prova	
  proposicional	
  da	
  sentença	
  
que	
  é	
  consequência	
  lógica.	
  
¨  Assim,	
  qualquer	
  sentença	
  que	
   consequência	
  lógica	
  pode	
  ser	
  
provada.	
  Mas	
  não	
  sabemos	
  se	
  ela	
  é	
  consequência	
  lógica	
   	
  a	
  
prova	
  terminar.	
  
¤  O	
  procedimento	
  de	
  prova	
  pode	
  prosseguir	
  gerando	
  termos	
  cada	
  vez	
  
mais	
  profundamente	
  aninhados,	
  mas	
  não	
  sabemos	
  se	
  ele	
  ficou	
  preso	
  
ou	
  se	
  a	
  prova	
  está	
  terminando.	
  
A	
  proposicionalização	
  é	
  ineficiente	
  
12 
¨  Exemplo:	
  Considere	
  a	
  consulta	
  perverso(X)	
  e	
  a	
  BC	
  original	
  
em	
  LPO.	
  
¤  Se	
  considerarmoso	
  conjunto	
  de	
  sentenças	
  da	
  BC	
  original	
  e	
  LPO:	
  
n  ∀X rei(X) ٨۸ guloso(X) => perverso(X). 
n  rei(joão). 
n  guloso(joão). 
¤  A	
  dedução	
  de	
  perverso(joão) é	
  bastante	
  óbvia	
  para	
  nós.	
  
¤  Parece	
  inconveniente	
  gerar	
  sentenças	
  como	
  rei(ricardo) ٨۸ 
guloso(ricardo) => perverso(ricardo) para	
  esta	
  consulta.	
  
¤  Imagine	
  ainda	
  se	
  Avermos	
  muitos	
  outros	
  termos	
  básicos.	
  
Uma	
  regra	
  de	
  inferência	
  para	
  LPO	
  
13 
¨  Para	
  a	
  consulta	
  perverso(X)	
  podemos	
  encontrar	
  algum	
  X	
  tal	
  
que	
  x	
  seja	
  um	
  rei	
  e	
  que	
  X	
  seja	
  guloso,	
  e	
  depois	
  deduzir	
  que	
  X	
  
é	
  perverso.	
  
¨  De	
  modo	
  geral: 	
  	
  
¤  Se	
  houver	
  alguma	
  subsAtuição	
  θ	
  que	
  torne	
  a	
  premissa	
  da	
  implicação	
  
idênAca	
  as	
  sentenças	
  que	
  já	
  estão	
  na	
  BC,	
  podemos	
  afirmar	
  a	
  conclusão	
  
da	
  implicação,	
  depois	
  da	
  aplicação	
  de	
  θ.	
  
n  No	
  exemplo,	
  a	
  subsAtuição	
  {X/joão}	
  alcança	
  este	
  objeAvo.	
  
Uma	
  regra	
  de	
  inferência	
  para	
  LPO	
  
14 
¨  Vamos	
  supor	
  que	
  a	
  sentença	
  guloso(joão),	
  seja	
  subsAtuída	
  pela	
  
sentença	
  ∀Y	
  guloso(Y).	
  
¨  Ainda	
  podemos	
  concluir	
  perverso(joão)	
  porque	
  João	
  é	
  um	
  rei	
  e	
  	
  é	
  
guloso	
  (porque	
  todo	
  mundo	
  é	
  guloso).	
  
¨  A	
  aplicação	
  da	
  subsAtuição	
  {X/joão,	
  Y/joão}	
  às	
  premissas	
  da	
  
implicação	
  e	
  às	
  sentenças	
  da	
  BC	
  às	
  tornará	
  idênAcas.	
  
:	
  para	
  as	
  sentenças	
  atômicas	
  pi,	
  p'i	
  e	
  
q,	
  onde	
  existe	
  uma	
  subsAtuição	
  θ	
  	
  tal	
  que	
  SUBST(θ,	
  p'i)	
  =	
  SUBST(θ,	
  
pi),	
  para	
  todo	
  i,	
  
	
  p'1,	
  p'2,	
  ...,	
  p'n,	
  (p1	
  ٨	
  p2	
  ٨	
  ...	
  ٨	
  pn	
  =>	
  q)	
  
	
   	
   	
  SUBST(θ,	
  q)	
  
Modus	
  Ponens	
  Generalizado	
  
15 
	
  p'1,	
  p'2,	
  ...,	
  p'n,	
  (p1	
  ٨	
  p2	
  ٨	
  ...	
  ٨	
  pn	
  =>	
  q)	
  
	
   	
   	
  SUBST(θ,	
  q)	
  
	
  
¨  Para	
  o	
  exemplo:	
  
¤  p'1	
  é	
  rei(joão) 	
  p1	
  é	
  rei(X) 	
   	
  {X/joão}	
  
¤  p'2	
  é	
  guloso(Y) 	
  p2	
  é	
  guloso(X) 	
   	
  {X/joão}	
  e	
  {Y/joão}	
  
¤  θ	
  é	
  {X/joão,	
  Y/joão} 	
  q	
  é	
  perverso(X)‏ 
¤  SUBST(θ,	
  q)	
  é	
  perverso(joão)‏ 
Unificação	
  
16 
¨  Regras	
  de	
  inferência	
  como	
  Modus	
  Ponens	
  Generalizado	
  
exigem	
  a	
  descoberta	
  de	
  subsAtuições	
  que	
  façam	
  duas	
  
expressões	
  lógicas	
  diferentes	
  parecerem	
  idênAcas.	
  
¨  Esse	
  processo	
  é	
  chamado	
  de	
   e	
  é	
  um	
  componente	
  
fundamental	
  de	
  todo	
  algoritmo	
  de	
  inferência	
  em	
  LPO.	
  
¨  O	
  algoritmo	
  de	
  unificação	
  recebe	
  duas	
  sentenças	
  e	
  retorna	
  
um	
  unificador	
  para	
  elas,	
  se	
  exisAr	
  algum.	
  
¨  Como	
  exemplo,	
  suponha	
  que	
  temos	
  uma	
  consulta	
  à	
  BC	
  
conhece(joão,	
  X)	
  à	
  quem	
  conhece	
  João?	
  
Unificação	
  
17 
¨  Suponha	
  que	
  a	
  BC	
  dispõe	
  das	
  sentenças:	
  
¤  conhece(joão,	
  jane)	
  
¤  conhece(Y,	
  bill)	
  
¤  conhece(Y,	
  mãe(Y)	
  
¤  conhece(X,	
  elizabeth)	
  
¨  Resultados	
  da	
  Unificação:	
  
¤  UNIFICAR(conhece(joão,	
  X),	
  conhece(joão,	
  jane))	
  =	
  {X/jane}	
  
¤  UNIFICAR(conhece(joão,	
  X),	
  conhece(Y,	
  bill))	
  =	
  {X/bill,	
  Y/joão}	
  
¤  UNIFICAR(conhece(joão,	
  X),	
  conhece(Y,	
  mãe(Y)))	
  =	
  {Y/joão,	
  X/mãe(joão)}	
  
¤  UNIFICAR(conhece(joão,	
  X),	
  conhece(X,	
  elizabeth))	
  =	
  falha	
  
Unificador	
  
¨  A	
  subsAtuição	
  σ	
  é	
  um	
   	
  de	
  e1	
  e	
  e2	
  se	
  e1σ	
  =	
  e2σ.	
  
¨  A	
  subsAtuição	
  σ	
  é	
  o	
   (umg)	
  de	
  e1	
  e	
  e2	
  se	
  
n  σ	
  é	
  um	
  unificador	
  de	
  e1	
  e	
  e2;	
  e	
  
n  se	
  a	
  subsAtuição	
  σ’	
  também	
  unifica	
  e1	
  e	
  e2,	
  então	
  eσ’	
  é	
  
uma	
  instância	
  de	
  eσ	
  para	
  todos	
  os	
  átomos	
  e.	
  
¨  Se	
  dois	
  átomos	
  têm	
  um	
  unificador,	
  eles	
  têm	
  um	
  unificador	
  
mais	
  geral.	
  
Exemplo	
  de	
  Unificação	
  
¨  p(A,b,C,D)	
  e	
  p(X,Y,Z,e)	
  tem	
  unificadores:	
  
	
  σ1	
  =	
  {X/A,Y/b,Z/C,D/e}	
  
	
  σ2	
  =	
  {A/X,Y/b,C/Z,D/e}	
  
	
  σ3	
  =	
  {A/V,X/V,Y/b,C/W,Z/W,D/e}	
  
	
  σ4	
  =	
  {A/a,X/a,Y/b,C/c,Z/c,D/e}	
  
	
  σ5	
  =	
  {X/A,Y/b,Z/A,C/A,D/e}	
  
	
  σ6	
  =	
  {X/A,Y/b,Z/C,D/e,W/a}	
  
	
  
¨  A	
  primeira	
  de	
  três	
  são	
  unificadores	
  mais	
  gerais.	
  
¨  As	
  subsAtuições	
  a	
  seguintes	
  não	
  são	
  unificadoras:	
  
	
  σ7	
  =	
  {Y/b,D/e}	
  
	
  σ8	
  =	
  {X/a,Y/b,Z/c,D/e}	
  
Renomeando	
  variáveis	
  
20 
¨  A	
  unificação:	
  
¤  UNIFICAR(conhece(joão,	
  X),	
  conhece(X,	
  elizatbeth))	
  falha	
  somente	
  
porque	
  X	
  não	
  pode	
  assumir	
  os	
  valores	
  joão	
  e	
  elizabeth	
  ao	
  mesmo	
  
tempo.	
  
¨  Pois	
  a	
  sentença	
  conhece(X,	
  elizabeth)	
  significa	
  que	
  “Todo	
  
mundo	
  conhece	
  elizabeth”	
  –	
  inclusive	
  o	
  joão.	
  
¨  O	
  problema	
  só	
  surge	
  porque	
  as	
  duas	
  sentenças	
  uAlizam	
  o	
  
mesmo	
  nome	
  de	
  variável,	
  X.	
  
¨  Isto	
  pode	
  ser	
  evitado	
  renomeando	
  as	
  variáveis	
  de	
  uma	
  das	
  
duas	
  sentenças	
  –	
   .	
  
Unificador	
  Mais	
  Geral	
  
21 
¨  A	
  unificação:	
  	
  
¤  UNIFICAR(conhece(joão,X),	
  conhece(Y,	
  Z))	
  
¨  Poderia	
  retornar:	
  
¤  {Y/	
  João,	
  X/Z}	
  à	
  conhece(joão,	
  Z)	
  com	
  resultado	
  
¤  {Y/	
  João,	
  X/João,	
  Z/João}	
  -­‐>	
  conhece(joão,	
  joão)‏	
  
¨  O	
  primeiro	
  unificador	
  é	
  mais	
  geral	
  que	
  o	
  segundo,	
  porque	
  
impõe	
  menos	
  restrições	
  sobre	
  os	
  valores	
  das	
  variáveis.	
  
¨  Para	
  todo	
  par	
  de	
  expressões	
  que	
  deve	
  ser	
  unificado,	
  existe	
  
um	
  único	
   ou	
  UMG.	
  
Algoritmo	
  de	
  Unificação	
  
9 INFERENCE INFIRST-ORDER LOGIC
function UNIFY(x , y , θ) returns a substitution to make x and y identical
inputs: x , a variable, constant, list, or compound expression
y , a variable, constant, list, or compound expression
θ, the substitution built up so far (optional, defaults to empty)
if θ = failure then return failure
else if x = y then return θ
else if VARIABLE?(x ) then return UNIFY-VAR(x , y , θ)
else if VARIABLE?(y) then return UNIFY-VAR(y , x , θ)
else if COMPOUND?(x ) and COMPOUND?(y) then
return UNIFY(x .ARGS, y .ARGS, UNIFY(x .OP, y .OP, θ))
else if LIST?(x ) and LIST?(y) then
return UNIFY(x .REST, y .REST, UNIFY(x .FIRST, y .FIRST, θ))
else return failure
function UNIFY-VAR(var , x , θ) returns a substitution
if {var/val} ∈ θ then return UNIFY(val , x , θ)
else if {x/val} ∈ θ then return UNIFY(var , val , θ)
else if OCCUR-CHECK?(var , x ) then return failure
else return add {var /x} to θ
Figure 9.1 The unification algorithm. The algorithm works by comparing the structures of the in-
puts, element by element. Thesubstitution θ that is the argument to UNIFY is built up along the way and
is used to make sure that later comparisons are consistent with bindings that were established earlier. In
a compound expression such as F (A,B), the OP field picks out the function symbol F and the ARGS
field picks out the argument list (A,B).
23
Suposições	
  representacionais	
  do	
  Datalog	
  
¨  O	
  conhecimento	
  de	
  um	
  agente	
  pode	
  ser	
  descrito	
  de	
  forma	
  
úAl	
  em	
  termos	
  de	
  indivíduos	
  e	
  as	
  relações	
  entre	
  os	
  
indivíduos.	
  
¨  A	
  base	
  de	
  conhecimento	
  de	
  um	
  agente	
  consiste	
  de	
  
declarações	
  definidas	
  e	
  posiAvas.	
  
¨  O	
  ambiente	
  é	
  estáAco.	
  
¨  Há	
  apenas	
  um	
  número	
  finito	
  de	
  indivíduos	
  de	
  interesse	
  no	
  
domínio.	
  	
  A	
  cada	
  indivíduo	
  pode	
  ser	
  dado	
  um	
  nome	
  único.	
  
¨  ⇒	
   	
  
Sintaxe	
  do	
  Datalog	
  
¨  	
  inicia	
  com	
  letra	
  maiúscula.	
  
¨  	
  inicia	
  com	
  letra	
  minúscula	
  ou	
  é	
  uma	
  sequência	
  de	
  
dígitos	
  (numeração).	
  
¨  começa	
  com	
  letra	
  minúscula.	
  
¨  	
  é	
  uma	
  variável	
  ou	
  uma	
  constante.	
  
¨  (átomo)	
  é	
  da	
  forma	
  p	
  ou	
  p(t1,	
  …,tn),	
  onde	
  p	
  
é	
  um	
  símbolo	
  de	
  predicado	
  e	
  ti	
  são	
  termos.	
  
Sintaxe	
  do	
  Datalog(cont)	
  
¨  é	
  um	
  símbolo	
  atômico	
  (um	
  fato)	
  ou	
  
termo	
  na	
  	
  forma:	
  
	
  na	
  qual	
  a	
  e	
  bi	
  são	
  símbolos	
  atômicos.	
  
	
  
¨  	
  (query)	
  é	
  da	
  forma	
  ?	
  b1 ∧ ... ∧ bm.	
  
¨  é	
  um	
  conjunto	
  de	
  cláusulas	
  de	
  
definidas.	
  
Syntax of Datalog (cont)
definite clause is either an atomic symbol (a fact) or of the
form:
a|{z} � b1 ⇥ · · · ⇥ bm| {z }
head body
where a and bi are atomic symbols.
query is of the form ?b1 ⇥ · · · ⇥ bm.
knowledge base is a set of definite clauses.
c�D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 12.1, Page 6
Exemplo	
  base	
  de	
  conhecimento	
  Example Knowledge Base
in(kim,R)�
teaches(kim, cs322) ⇥
in(cs322,R).
grandfather(william,X )�
father(william,Y ) ⇥
parent(Y ,X ).
slithy(toves)�
mimsy ⇥ borogroves ⇥
outgrabe(mome,Raths).
c�D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 12.1, Page 7
SemânAca:	
  Ideia	
  Geral	
  
¨  Uma	
   	
  especifica	
  o	
  significado	
  das	
  sentenças	
  na	
  
língua.	
  
¨  Uma	
   	
  especifica:	
  
¤  quais	
  objetos	
  (indivíduos)	
  estão	
  no	
  mundo.	
  
¤  a	
  correspondência	
  entre	
  símbolos	
  no	
  computador	
  e	
  objetos	
  e	
  relações	
  
no	
  mundo.	
  
n  constantes	
  denotam	
  indivíduos	
  
n  símbolos	
  predicados	
  denotam	
  relações	
  
SemânAca	
  formal	
  
¨  Uma	
   	
  é	
  uma	
  tripla	
  I	
  =	
  <D,φ,π>,	
  onde:	
  
¤  D,	
  o	
   	
  é	
  um	
  conjunto	
  não	
  vazio.	
  	
  Elementos	
  de	
  d	
  são	
  
.	
  
¤  φ	
  é	
  um	
  mapeamento	
  que	
  atribui	
  a	
  cada	
  constante	
  um	
  elemento	
  de	
  D.	
  	
  
A	
  constante	
  c	
  denota	
  o	
  individuo	
  φ(c).	
  
¤  π	
  é	
  um	
  mapeamento	
  que	
  atribui	
  a	
  cada	
  símbolo	
  de	
  predicado	
  n-­‐ário	
  
uma	
  relação:	
  uma	
  função	
  de	
  Dn	
  em	
  {TRUE,	
  FALSE}.	
  
Exemplo	
  de	
  interpretação	
  Example Interpretation
Constants: phone, pencil , telephone.
Predicate Symbol: noisy (unary), left of (binary).
D = {",%,.}.
⇥(phone) =%, ⇥(pencil) =., ⇥(telephone) =%.
�(noisy): �"⇥ FALSE �%⇥ TRUE �.⇥ FALSE
�(left of ):
�","⇥ FALSE �",%⇥ TRUE �",.⇥ TRUE
�%,"⇥ FALSE �%,%⇥ FALSE �%,.⇥ TRUE
�.,"⇥ FALSE �.,%⇥ FALSE �.,.⇥ FALSE
c�D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 12.2, Page 3
Pontos	
  importantes	
  a	
  serem	
  observados	
  
¨  O	
  domínio	
  D	
  pode	
  conter	
  objetos	
  reais.	
  	
  (e.g.,	
  uma	
  pessoa,	
  
uma	
  sala,	
  um	
  curso).	
  	
  D	
  não	
  necessariamente	
  pode	
  ser	
  
armazenado	
  em	
  um	
  computador.	
  
¨  π(p)	
  especifica	
  se	
  a	
  relação	
  denotada	
  pelo	
  símbolo	
  de	
  
predicado	
  n-­‐ário	
  p	
  é	
  verdadeira	
  ou	
  falsa	
  para	
  cada	
  n-­‐tupla	
  de	
  
indivíduos.	
  
¨  Se	
  o	
  símbolo	
  predicado	
  p	
  não	
  tem	
  argumentos,	
  então	
  π(p)	
  é	
  
TRUE	
  ou	
  FALSE.	
  
Verdade	
  em	
  uma	
  interpretação	
  
¨  Uma	
  constante	
  c	
   o	
  indivíduo	
  φ(c).	
  
¨  O	
  átomo	
  fundamental	
  (livre	
  de	
  variável)	
  p(t1,	
  …,tn)	
  é:	
  
¤  se	
  π(p)(	
  φ(t1),	
  …,φ(tn)	
  )	
  =	
  TRUE	
  na	
  
interpretação	
  I	
  e	
  
¤  	
  caso	
  contrário.	
  
¨  A	
  cláusula	
  fundamental	
  h	
  ←	
  b1	
  ∧	
  …	
  ∧	
  bm	
  é	
  
se	
  h	
  é	
  falso	
  em	
  I	
  e	
  cada	
  bi	
  é	
  verdadeiro	
  em	
  I	
  e	
  
é	
   caso	
  contrário.	
  
Exemplo	
  de	
  verdades	
  
¨  Na	
  interpretação	
  dada	
  antes:	
  
Example Truths
In the interpretation given before:
noisy(phone) true
noisy(telephone) true
noisy(pencil) false
left of (phone, pencil) true
left of (phone, telephone) false
noisy(pencil)� left of (phone, telephone) true
noisy(pencil)� left of (phone, pencil) false
noisy(phone)� noisy(telephone) ⇥ noisy(pencil) true
c�D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 12.2, Page 6
Modelos	
  e	
  consequências	
  lógicas	
  
¨  Uma	
  base	
  de	
  conhecimento,	
  BC,	
  é	
  verdade	
  na	
  interpretação	
  I	
  
se	
  e	
  somente	
  se	
  cada	
  cláusula	
  em	
  BC	
  é	
  verdade	
  em	
  I.	
  
¨  Um	
   	
  de	
  um	
  conjunto	
  de	
  cláusulas	
  é	
  uma	
  
interpretação	
  em	
  que	
  todas	
  as	
  cláusulas	
  são	
  verdadeiras.	
  
¨  Se	
  BC	
  é	
  um	
  conjunto	
  de	
  cláusulas	
  e	
  g	
  é	
  um	
  conjunto	
  de	
  
átomos,	
  g	
  é	
  uma	
   de	
  BC,	
  escrito	
   ,	
  
se	
  g	
  é	
  verdade	
  em	
  todos	
  os	
  modelos	
  de	
  BC.	
  
¨  Ou	
  seja,	
  BC	
  |=	
  g	
  se	
  não	
  há	
  nenhuma	
  interpretação	
  onde	
  BC	
  é	
  
verdadeira	
  e	
  g	
  é	
  falsa.	
  
Visão	
  do	
  usuário	
  da	
  semânAca	
  
1.  Escolha	
  um	
  domínio	
  de	
  tarefa:	
   .	
  
2.  Associe	
  constantes	
  com	
  os	
  indivíduos	
  que	
  você	
  deseja	
  
nomear.	
  
3.  Para	
  cada	
  relação	
  que	
  você	
  pretende	
  representar,	
  associe	
  
um	
  símbolo	
  predicado	
  na	
  linguagem.	
  
4.  Forneça	
  ao	
  sistema	
  cláusulas	
  que	
  são	
  verdadeiras	
  na	
  
interpretação	
  pretendida:	
   .	
  
5.  Faça	
  perguntas	
  sobre	
  a	
  interpretação	
  pretendida.	
  
6.  Se	
  KB	
  |=	
  g,	
  então	
  g	
  deve	
  ser	
  verdade	
  na	
  interpretação	
  
pretendida.	
  
Visão	
  do	
  computador	
  da	
  semânAca	
  
¨  O	
  computador	
  não	
  tem	
  acesso	
  a	
  interpretação	
  pretendida.	
  
¨  Tudo	
  o	
  que	
  ele	
  sabe	
  é	
  a	
  base	
  de	
  conhecimento.	
  
¨  O	
  computador	
  pode	
  determinar	
  se	
  uma	
  fórmula	
  é	
  uma	
  
consequência	
  lógica	
  da	
  BC.	
  
¨  Se	
  BC	
  |=	
  g	
  então	
  g	
  deve	
  serverdade	
  na	
  interpretação	
  
pretendida.	
  
¨  Se	
  BC	
  |≠	
  g,	
  então	
  há	
  um	
  modelo	
  de	
  BC	
  em	
  que	
  g	
  é	
  falsa.	
  Esta	
  
poderia	
  ser	
  a	
  interpretação	
  pretendida.	
  
O	
  papel	
  da	
  semânAca	
  em	
  um	
  SRR	
  Role of Semantics in an RRS
����������
��������
�������������
����������������
���������
�����	��k�
������������
�	��˜
���������
��
���
����
����
���
�������
�������
������������
���������
c�D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 12.2, Page 10
Variáveis	
  
¨  Variáveis	
  são	
   no	
  escopo	
  de	
  
uma	
  cláusula.	
  
¨  Uma	
   é	
  uma	
  função	
  de	
  variáveis	
  para	
  o	
  
domínio.	
  
¨  Dada	
  uma	
  interpretação	
  e	
  uma	
  atribuição	
  de	
  variável,	
  
	
  cada	
  termo	
  denota	
  um	
  indivíduo	
  e	
  
	
  cada	
  cláusula	
  é	
  TRUE	
  ou	
  FALSE.	
  
¨  Uma	
  cláusula	
  contendo	
  variáveis	
  é	
  verdadeira	
  em	
  uma	
  
interpretação,	
  se	
  é	
  verdade	
   as	
  atribuições	
  de	
  
variáveis.	
  
Consultas	
  (queries)	
  e	
  respostas	
  
¨  Uma	
   	
  é	
  uma	
  forma	
  de	
  perguntar	
  se	
  um	
  corpo	
  é	
  uma	
  
consequência	
  lógica	
  da	
  base	
  de	
  conhecimento:	
  
	
   	
  ?b1 ∧ … ∧ bm. 
¨  Uma	
   	
  ou	
  é	
  
¤  uma	
  instância	
  da	
  consulta	
  que	
  é	
  uma	
  consequência	
  lógica	
  da	
  base	
  de	
  
conhecimento	
  KB,	
  ou	
  
¤  	
   se	
  nenhuma	
  instância	
  é	
  uma	
  consequência	
  lógica	
  do	
  KB.	
  
Exemplos	
  de	
  consultas	
  
Example Queries
KB =
8<: in(kim, r123).part of (r123, cs building).
in(X ,Y )� part of (Z ,Y ) ⇥ in(X ,Z ).
Query Answer
?part of (r123,B).
part of (r123, cs building)
?part of (r023, cs building). no
?in(kim, r023). no
?in(kim,B). in(kim, r123)
in(kim, cs building)
c�D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 12.3, Page 3
Exemplos	
  de	
  consultas	
  
Example Queries
KB =
8<: in(kim, r123).part of (r123, cs building).
in(X ,Y )� part of (Z ,Y ) ⇥ in(X ,Z ).
Query Answer
?part of (r123,B). part of (r123, cs building)
?part of (r023, cs building).
no
?in(kim, r023). no
?in(kim,B). in(kim, r123)
in(kim, cs building)
c�D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 12.3, Page 4
Exemplos	
  de	
  consultas	
  
Example Queries
KB =
8<: in(kim, r123).part of (r123, cs building).
in(X ,Y )� part of (Z ,Y ) ⇥ in(X ,Z ).
Query Answer
?part of (r123,B). part of (r123, cs building)
?part of (r023, cs building). no
?in(kim, r023).
no
?in(kim,B). in(kim, r123)
in(kim, cs building)
c�D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 12.3, Page 5
Exemplos	
  de	
  consultas	
  
Example Queries
KB =
8<: in(kim, r123).part of (r123, cs building).
in(X ,Y )� part of (Z ,Y ) ⇥ in(X ,Z ).
Query Answer
?part of (r123,B). part of (r123, cs building)
?part of (r023, cs building). no
?in(kim, r023). no
?in(kim,B).
in(kim, r123)
in(kim, cs building)
c�D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 12.3, Page 6
Exemplos	
  de	
  consultas	
  
Example Queries
KB =
8<: in(kim, r123).part of (r123, cs building).
in(X ,Y )� part of (Z ,Y ) ⇥ in(X ,Z ).
Query Answer
?part of (r123,B). part of (r123, cs building)
?part of (r023, cs building). no
?in(kim, r023). no
?in(kim,B). in(kim, r123)
in(kim, cs building)
c�D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 12.3, Page 7
Consequência	
  lógica	
  
¨  Um	
  átomo	
  g	
  é	
  uma	
  consequência	
  lógica	
  da	
  BC	
  se	
  e	
  somente	
  
se:	
  
¤  g	
  é	
  um	
  fato	
  na	
  BC,	
  ou	
  
¤  existe	
  uma	
  regra	
  
	
   	
  g	
  ←	
  b1	
  ∧	
  …	
  ∧	
  bk	
  
	
  na	
  BC	
  que	
  cada	
  bi	
  é	
  uma	
  consequência	
  lógica	
  da	
  BC	
  
Depurando	
  falsas	
  conclusões	
  
¨  Para	
  depurar	
  uma	
  resposta	
  g	
  que	
  é	
  falsa	
  na	
  interpretação	
  
pretendida:	
  
¤  Se	
  g	
  é	
  um	
  fato	
  em	
  BC,	
  este	
  fato	
  é	
  errado.	
  
¤  Caso	
  contrário,	
  suponha	
  que	
  g	
  foi	
  provada	
  usando	
  a	
  regra:	
  
	
   	
  g	
  ←	
  b1	
  ∧	
  …	
  ∧	
  bk	
  
	
  onde	
  cada	
  bi	
  é	
  uma	
  consequência	
  lógica	
  do	
  BC.	
  
	
  Se	
  cada	
  bi	
  é	
  verdade	
  na	
  interpretação	
  pretendida,	
  esta	
  
	
  cláusula	
  é	
  falsa	
  na	
  interpretação	
  pretendida.	
  
	
  Se	
  algum	
  bi	
  é	
  falso	
  na	
  interpretação	
  pretendida,	
  depure	
  	
  bi.	
  
Cláusulas	
  definidas	
  de	
  primeira	
  ordem	
  
¨  Nem	
  toda	
  BC	
  pode	
  ser	
  converAda	
  em	
  um	
  conjunto	
  de	
  
cláusulas	
  definidas,	
  mas	
  é	
  possível	
  converter	
  muitas	
  delas.	
  
¤  O	
  custo	
  da	
  conversão	
  é	
  compensado	
  pela	
  eficiência	
  do	
  algoritmo	
  de	
  
encadeamento	
  para	
  frente	
  (linear)	
  
¨  Considere	
  o	
  problema:	
  
¤  A	
  lei	
  diz	
  que	
  é	
  crime	
  um	
  americano	
  vender	
  armas	
  para	
  nações	
  hosAs.	
  
O	
  país	
  nono,	
  um	
  inimigo	
  da	
  América,	
  tem	
  alguns	
  mísseis,	
  e	
  todos	
  
foram	
  vendidos	
  pelo	
  Coronel	
  West,	
  que	
  é	
  um	
  americano.	
  
46 
Cláusulas	
  definidas	
  de	
  primeira	
  ordem	
  
¨  …	
  é	
  crime	
  para	
  um	
  americano	
  vender	
  armas	
  para	
  nações	
  hosAs:	
  
¨  (1) americano(X) ٨۸ arma(Y) ٨۸ vende(X,Y,Z) ٨۸ hostil(Z) => criminoso(X) 
¨  nono…	
  tem	
  alguns	
  mísseis:	
  	
  
¨  ∃x proprietário(nono, x) ٨۸ míssil(x) 
¨  (2) proprietário(nono, M1) ٨۸ míssil(M1) 
¨  …	
  todos	
  estes	
  mísseis	
  foram	
  vendidos	
  para	
  ele	
  pelo	
  Coronel	
  West:	
  
¨  (3) míssil(X) ٨۸ proprietário(nono,X) => vende(west,X,nono) 
47 
Cláusulas	
  definidas	
  de	
  primeira	
  ordem	
  
¨  Mísseis	
  são	
  armas:	
  
¨  (4) míssil(X) => arma(X)‏ 
¨  Um	
  inimigo	
  da	
  América	
  é	
  considerado	
  hosAl:	
  
¨  (5) inimigo(X,américa) => hostil(X)‏ 
¨  West,	
  que	
  é	
  americano…	
  
¨  (6) americano(west)‏ 
¨  O	
  país	
  	
  Nono,	
  é	
  um	
  inimigo	
  da	
  América	
  
¨  (7) inimigo(nono,américa)‏ 
48 
Ambiente	
  elétrico	
  
Electrical Environment
�����
�����
�
������
������
���
��
�����
������
�����������
���
�����
�������
���
��
��
�� ��
��
��
��
��
��
��
��
��
���
�	
��
c�D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 12.3, Page 10
AxiomaAzando	
  o	
  ambiente	
  elétrico	
  Axiomatizing the Electrical Environment
% light(L) is true if L is a light
light(l1). light(l2).
% down(S) is true if switch S is down
down(s1). up(s2). up(s3).
% ok(D) is true if D is not broken
ok(l1). ok(l2). ok(cb1). ok(cb2).
?light(l1). =�
yes
?light(l6). =� no
?up(X ). =� up(s2), up(s3)
c�D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 12.3, Page 11
AxiomaAzando	
  o	
  ambiente	
  elétrico	
  Axiomatizing the Electrical Environment
% light(L) is true if L is a light
light(l1). light(l2).
% down(S) is true if switch S is down
down(s1). up(s2). up(s3).
% ok(D) is true if D is not broken
ok(l1). ok(l2). ok(cb1). ok(cb2).
?light(l1). =� yes
?light(l6). =�
no
?up(X ). =�up(s2), up(s3)
c�D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 12.3, Page 12
AxiomaAzando	
  o	
  ambiente	
  elétrico	
  Axiomatizing the Electrical Environment
% light(L) is true if L is a light
light(l1). light(l2).
% down(S) is true if switch S is down
down(s1). up(s2). up(s3).
% ok(D) is true if D is not broken
ok(l1). ok(l2). ok(cb1). ok(cb2).
?light(l1). =� yes
?light(l6). =� no
?up(X ). =�
up(s2), up(s3)
c�D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 12.3, Page 13
Exemplo:	
  o	
  ambiente	
  elétrico	
  
connected to(X ,Y ) is true if component X is connected to Y
connected to(w0,w1)� up(s2).
connected to(w0,w2)� down(s2).
connected to(w1,w3)� up(s1).
connected to(w2,w3)� down(s1).
connected to(w4,w3)� up(s3).
connected to(p1,w3).
?connected to(w0,W ). =⇥
W = w1
?connected to(w1,W ). =⇥ no
?connected to(Y ,w3). =⇥ Y = w2, Y = w4, Y = p1
?connected to(X ,W ). =⇥ X = w0,W = w1, . . .
c�D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 12.3, Page 15
Exemplo:	
  o	
  ambiente	
  elétrico	
  
connected to(X ,Y ) is true if component X is connected to Y
connected to(w0,w1)� up(s2).
connected to(w0,w2)� down(s2).
connected to(w1,w3)� up(s1).
connected to(w2,w3)� down(s1).
connected to(w4,w3)� up(s3).
connected to(p1,w3).
?connected to(w0,W ). =⇥ W = w1
?connected to(w1,W ). =⇥
no
?connected to(Y ,w3). =⇥ Y = w2, Y = w4, Y = p1
?connected to(X ,W ). =⇥ X = w0,W = w1, . . .
c�D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 12.3, Page 16
Exemplo:	
  o	
  ambiente	
  elétrico	
  
connected to(X ,Y ) is true if component X is connected to Y
connected to(w0,w1)� up(s2).
connected to(w0,w2)� down(s2).
connected to(w1,w3)� up(s1).
connected to(w2,w3)� down(s1).
connected to(w4,w3)� up(s3).
connected to(p1,w3).
?connected to(w0,W ). =⇥ W = w1
?connected to(w1,W ). =⇥ no
?connected to(Y ,w3). =⇥
Y = w2, Y = w4, Y = p1
?connected to(X ,W ). =⇥ X = w0,W = w1, . . .
c�D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 12.3, Page 17
Exemplo:	
  o	
  ambiente	
  elétrico	
  
connected to(X ,Y ) is true if component X is connected to Y
connected to(w0,w1)� up(s2).
connected to(w0,w2)� down(s2).
connected to(w1,w3)� up(s1).
connected to(w2,w3)� down(s1).
connected to(w4,w3)� up(s3).
connected to(p1,w3).
?connected to(w0,W ). =⇥ W = w1
?connected to(w1,W ). =⇥ no
?connected to(Y ,w3). =⇥ Y = w2, Y = w4, Y = p1
?connected to(X ,W ). =⇥
X = w0,W = w1, . . .
c�D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 12.3, Page 18
Exemplo:	
  o	
  ambiente	
  elétrico	
  
connected to(X ,Y ) is true if component X is connected to Y
connected to(w0,w1)� up(s2).
connected to(w0,w2)� down(s2).
connected to(w1,w3)� up(s1).
connected to(w2,w3)� down(s1).
connected to(w4,w3)� up(s3).
connected to(p1,w3).
?connected to(w0,W ). =⇥ W = w1
?connected to(w1,W ). =⇥ no
?connected to(Y ,w3). =⇥ Y = w2, Y = w4, Y = p1
?connected to(X ,W ). =⇥ X = w0,W = w1, . . .
c�D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 12.3, Page 19
Exemplo:	
  o	
  ambiente	
  elétrico	
  
% lit(L) is true if the light L is lit 
 
 lit(L) ← light(L) ∧ ok(L) ∧ live(L). 
 
% live(C) is true if there is power coming into C 
 
 live(Y) ← 
 connected to(Y,Z) ∧ 
 live(Z). 
 live(outside). 
¨  Esta	
  é	
  uma	
   de	
  live.	
  
Provas	
  
¨  Uma	
   	
  é	
  uma	
  demonstração	
  mecanicamente	
  derivável	
  de	
  que	
  
uma	
  fórmula	
  decorre	
  logicamente	
  de	
  uma	
  base	
  de	
  conhecimento.	
  
¨  Tendo	
  em	
  conta	
  um	
  procedimento	
  prova,	
   significa	
  g	
  pode	
  ser	
  
deduzido	
  da	
  base	
  de	
  conhecimento	
  BC.	
  
¨  Lembre-­‐se	
  de	
   g	
  significa	
  g	
  é	
  verdade	
  em	
  todos	
  os	
  modelos	
  de	
  
BC.	
  
¨  Um	
  procedimento	
  de	
  prova	
  é	
   se	
  KB	
  ⊢	
  g	
  implica	
  KB	
  |=	
  g.	
  	
  
¨  Um	
  procedimento	
  de	
  prova	
  é	
   	
  se	
  KB	
  |=	
  g	
  implica	
  KB	
  ⊢	
  g.	
  
BC	
  exemplo	
  
¨  (1) americano(X) ٨۸ arma(Y) ٨۸ vende(X,Y,Z) ٨۸ hostil(Z) => criminoso(X) 
¨  (2) proprietário(nono,M1) ٨۸ míssil(M1) 
¨  (3) míssil(X) ٨۸ proprietário(nono,X) => vende(west,X,nono) 
¨  (4) míssil(X) => arma(X)‏ 
¨  (5) inimigo(X,américa) => hostil(X)‏ 
¨  (6) americano(west)‏ 
¨  (7) inimigo(nono,américa)‏ 
60 
Exemplo:Encadeamento	
  para	
  frente	
  
(BoCom-­‐up)	
  
¨  Vamos	
  provar	
  que	
  West	
  é	
  criminoso	
  =	
  criminoso(west).	
  
¨  Inicialmente	
  temos	
  os	
  fatos	
  derivados	
  de	
  (2),	
  (6)	
  e	
  (7):	
  
¤  {proprietário(nono,m1), míssil(m1), americano(west)‏, inimigo(nono, 
américa)}	
  
¨  De	
  (2)	
  proprietário(nono, m1) ٨۸ míssil(m1)‏ e	
  de	
  (3)	
  míssil(X) ٨۸ 
proprietário(nono,X) => vende(west,X,nono) 
¤  Com	
  {X/m1},	
  adicionamos	
  (8)	
  vende(west,m1,nono).	
  
¤  {proprietário(nono,m1), míssil(m1), americano(west)‏, inimigo(nono, 
américa), vende(west m1,nono)}	
  
¨  De	
  (2)	
  proprietário(nono,m1) ٨۸ míssil(m1)‏ e	
  de	
  (4)	
  míssil(X) => arma(X) 
¤  Com {X/m1}, adicionamos (9) arma(m1).	
  
¤  {proprietário(nono,m1), míssil(m1), americano(west)‏, inimigo(nono, 
américa), vende(west,m1,nono), arma(m1)}	
  
61 
Exemplo:Encadeamento	
  para	
  frente	
  
(BoCom-­‐up)	
  
¨  De	
  (5)	
  inimigo(X,américa) => hostil(X) e	
  de	
  (7)	
  inimigo(nono, américa)‏ 
¤  Com {X/nono}, adicionamos (10) hostil(nono).	
  
¤  {proprietário(nono,m1), míssil(m1), americano(west)‏, inimigo(nono, 
américa), vende(west,m1,nono), arma(m1), hostil(nono)}	
  
¨  De	
  (1)	
  americano(X) ٨۸ arma(Y) ٨۸ vende(X,Y,Z) ٨۸ hostil(Z) => criminoso(X) e	
  
de	
  (6)	
  americano(west),	
  (9)	
  arma(m1),	
  (8)	
  vende(west,m1,nono) e	
  (10)	
  
hostil(nono)‏ 
¤  Com	
  {X/west,	
  Y/m1,	
  Z/nono},	
  adicionamos	
  criminoso(west).	
  
¤  {proprietário(nono,m1), míssil(m1), americano(west)‏, inimigo(nono, 
américa), vende(west,m1,nono), arma(M1), hostil(nono), criminoso(west)}	
  
n  criminoso(west) não	
  é	
  premissa	
  de	
  nenhuma	
  cláusula	
  então	
  este	
  é	
  o	
  conjunto	
  
Ponto	
  Fixo	
  da	
  BC.	
  	
  
62 
Árvore	
  de	
  derivação	
  (boCom-­‐up)	
  
Hostile(Nono)
Enemy(Nono,America)Owns(Nono,M1)Missile(M1)
Criminal(West)
Missile(y)
Weapon(y) Sells(West,M1,z)American(West)
{y/M1} { }{ }{ }
 {z/Nono}{ }
AlgorAmo	
  de	
  encadeamento	
  p/	
  frente	
  
24 Chapter 9. Inference in First-Order Logic
function FOL-FC-ASK(KB ,α) returns a substitution or false
inputs: KB , the knowledge base, a set of first-order definite clauses
α, the query, an atomic sentence
local variables: new , the new sentences inferred on each iteration
repeat until new is empty
new← { }
for each rule in KB do
(p1 ∧ . . . ∧ pn ⇒ q)← STANDARDIZE-VARIABLES(rule)
for each θ such that SUBST(θ,p1 ∧ . . . ∧ pn) = SUBST(θ,p′1 ∧ . . . ∧ p′n)
for some p′1, . . . , p′n in KB
q ′← SUBST(θ, q)
if q ′ does not unify with some sentence already in KB or new then
add q ′ to new
φ←UNIFY(q ′,α)
if φ is not fail then return φ
add new to KB
return false
Figure 9.3 A conceptually straightforward, but very inefficient, forward-chaining algorithm. On
each iteration, it adds to KB all the atomic sentences that can be inferred in one step from the impli-
cation sentences and the atomic sentences already in KB . The function STANDARDIZE-VARIABLES
replaces all variables in its arguments with new ones that have not been used before.function FOL-BC-ASK(KB , query ) returns a generator of substitutions
return FOL-BC-OR(KB , query ,{ })
generator FOL-BC-OR(KB , goal , θ) yields a substitution
for each rule (lhs ⇒ rhs) in FETCH-RULES-FOR-GOAL(KB , goal ) do
(lhs , rhs)← STANDARDIZE-VARIABLES((lhs , rhs))
for each θ′ in FOL-BC-AND(KB , lhs , UNIFY(rhs , goal , θ)) do
yield θ′
generator FOL-BC-AND(KB , goals , θ) yields a substitution
if θ = failure then return
else if LENGTH(goals) = 0 then yield θ
else do
first ,rest← FIRST(goals), REST(goals)
for each θ′ in FOL-BC-OR(KB , SUBST(θ, first ), θ) do
for each θ′′ in FOL-BC-AND(KB , rest , θ′) do
yield θ′′
Figure 9.6 A simple backward-chaining algorithm for first-order knowledge bases.
Exemplo	
  
Example
live(Y )� connected to(Y ,Z ) ⇥ live(Z ). live(outside).
connected to(w6,w5). connected to(w5, outside).
C = {live(outside),
connected to(w6,w5),
connected to(w5, outside),
live(w5),
live(w6)}
c�D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 12.4, Page 7
Exemplo	
  
Example
live(Y )� connected to(Y ,Z ) ⇥ live(Z ). live(outside).
connected to(w6,w5). connected to(w5, outside).
C = {live(outside),
connected to(w6,w5),
connected to(w5, outside),
live(w5),
live(w6)}
c�D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 12.4, Page 8
Consistência	
  do	
  procedimento	
  de	
  prova	
  
BoCom-­‐up	
  
¨  Suponha	
  que	
  existe	
  um	
  g	
  tal	
  que	
  KB	
  ⊢	
  g	
  e	
  KB	
  |≠	
  g.	
  
¨  Logo,	
  deve	
  haver	
  um	
  primeiro	
  átomo	
  adicionado	
  a	
  C	
  que	
  tem	
  uma	
  
instância	
  que	
  não	
  é	
  verdade	
  em	
  todos	
  os	
  modelos	
  de	
  BC.	
  	
  Chame-­‐o	
  de	
  h.	
  
Suponha	
  que	
  h	
  não	
  é	
  verdadeiro	
  no	
  modelo	
  I	
  do	
  BC.	
  
¨  Deve	
  haver	
  uma	
  cláusula	
  em	
  BC	
  da	
  forma	
  
 h’ ← b1 ∧ ... ∧ bm 
¨  onde	
  h	
  =	
  h’θ.	
  	
  Cada	
  bi	
  é	
  verdade	
  em	
  I.	
  	
  h	
  é	
  falso	
  em	
  I.	
  	
  Assim,	
  esta	
  cláusula	
  
é	
  falsa	
  em	
  I.	
  	
  Portanto	
  I	
  não	
  é	
  um	
  modelo	
  de	
  BC.	
  
¨  Contradição.	
  
Ponto	
  fixo	
  
¨  O	
  C	
  gerado	
  pelo	
  algoritmo	
  BoCom-­‐up	
  é	
  chamado	
  de	
   .	
  
¨  C	
  pode	
  ser	
  infinito;	
  exigimos	
  que	
  a	
  seleção	
  seja	
  justa.	
  
¨  :	
  o	
  domínio	
  é	
  o	
  conjunto	
  de	
  constantes.	
  
Inventamos	
  uma	
  se	
  a	
  BC	
  ou	
  a	
  consulta	
  não	
  conAver	
  uma.	
  Cada	
  constante	
  
denota	
  a	
  si	
  mesma.	
  
¨  Deixe	
  I	
  ser	
  a	
  interpretação	
  de	
  Herbrand	
  em	
  que	
  cada	
  instância	
  fundamental	
  
de	
  cada	
  elemento	
  do	
  ponto	
  fixo	
  é	
  TRUE	
  e	
  cada	
  outro	
  átomo	
  é	
  FALSE.	
  
¨  I	
  é	
  um	
  modelo	
  de	
  BC.	
  
¨  	
  Prova:	
  suponha	
  que	
  h	
  ←	
  b1	
  ∧	
  ...	
  ∧	
  bm	
  na	
  BC	
  é	
  falso	
  em	
  I.	
  	
  Então,	
  h	
  é	
  falso	
  e	
  
	
  cada	
  bi	
  é	
  verdadeiro	
  em	
  I.	
  	
  Assim,	
  h	
  pode	
  ser	
  adicionado	
  a	
  C.	
  Contadiz	
  o	
  fato	
  
	
  de	
  C	
  ser	
  o	
  ponto	
  de	
  fixo.	
  
¨  I	
  é	
  chamado	
  de	
  um	
   .	
  
Completude	
  
¨  Suponha	
  que	
  BC	
  |=	
  g.	
  	
  Em	
  seguida,	
  g	
  é	
  verdade	
  em	
  todos	
  os	
  
modelos	
  de	
  BC.	
  
¨  Assim,	
  g	
  é	
  verdade	
  no	
  modelo	
  mínimo.	
  
¨  Assim,	
  g	
  é	
  o	
  ponto	
  de	
  fixo.	
  
¨  Assim,	
  g	
  é	
  gerado	
  pelo	
  algoritmo	
  BoCom-­‐up.	
  
Eficiência	
  do	
  encadeamento	
  p/	
  frente	
  
¨  É	
   .	
  
¤  Toda	
  inferência	
  é	
  uma	
  aplicação	
  de	
  Modus	
  Ponens	
  Generalizado.	
  
¨  É	
   	
  para	
  BCs	
  de	
  cláusulas	
  definidas.	
  
¤  Para	
  BCs	
  que	
  são	
  Datalog,	
  é	
  completo	
  –	
  a	
  prova	
  da	
  consequência	
  
lógica	
  é	
  decidível.	
  
¤  Para	
  BCs	
  que	
  contém	
  símbolos	
  de	
  funções,	
  a	
  prova	
  da	
  consequência	
  
lógica	
  é	
  semidecidível.	
  
70 
Encadeamento	
  p/	
  frente	
  eficiente	
  
¨  Pontos	
  que	
  podem	
  ser	
  melhorados:	
  
¤  O	
  laço	
  interno	
  do	
  algoritmo	
  ASK-­‐LPO-­‐EF	
  envolve	
  a	
  localização	
  de	
  todos	
  
os	
  unificadores	
  tais	
  que	
  a	
  premissa	
  de	
  uma	
  regra	
  se	
  unifica	
  com	
  um	
  
conjunto	
  adequado	
  de	
  fatos	
  na	
  BC.	
  
¤  ASK-­‐LPO-­‐EF	
  verifica	
  exausAvamente	
  cada	
  regra	
  em	
  toda	
  iteração	
  para	
  
ver	
  se	
  suas	
  premissas	
  são	
  saAsfeitas,	
  ainda	
  que	
  muito	
  poucas	
  adições	
  
tenham	
  sido	
  feitas	
  à	
  BC.	
  
¤  ASK-­‐LPO-­‐EF	
  poderia	
  gerar	
  muitos	
  fatos	
  irrelevantes	
  para	
  o	
  objeAvo.	
  
71 
Comparação	
  entre	
  regras	
  e	
  fatos	
  
conhecidos	
  
¨  Supõe	
  a	
  sentença:	
  
¤  míssil(X) ٨۸ proprietário(nono,X) ٨۸ vende(west,X,nono)‏ 
¨  Precisamos	
  encontrar	
  todos	
  os	
  fatos	
  que	
  se	
  unificam	
  com	
  míssil(X),	
  para	
  
encontrar	
  todo	
  objeto	
  que	
  é	
  um	
  míssil.	
  	
  
¤  Em	
  uma	
  BC	
  indexada	
  de	
  forma	
  adequada	
  isso	
  pode	
  ser	
  feito	
  em	
  tempo	
  
constante.	
  
¨  Depois,	
  temos	
  que	
  verificar	
  se	
  esses	
  mísseis	
  pertencem	
  à	
  nono.	
  	
  
¤  Mas	
  se	
  houver	
  muitos	
  mísseis	
  e	
  poucos	
  deles	
  forem	
  de	
  nono,	
  será	
  melhor	
  
encontrar	
  quais	
  objetos	
  pertencem	
  à	
  nono,	
  e	
  depois	
  verificar	
  se	
  eles	
  são	
  
mísseis.	
  
–	
  é	
  NP-­‐di‰cil,	
  mas	
  existem	
  boas	
  
heurísAcas	
  (variável	
  mais	
  restrita).	
  
¤  Correspondência	
  de	
  padrões	
  e	
  PSRs.	
  
72 
Encadeamento	
  p/	
  frente	
  incremental	
  
¨  Não	
  precisamos	
  verificar	
  exausAvamente	
  cada	
  regra	
  em	
  toda	
  iteração	
  do	
  
algoritmo.	
  
¨  Qualquer	
  inferência	
  que	
  não	
  exigisse	
  um	
  fato	
  novo	
  na	
  iteração	
  t	
  –	
  1	
  já	
  foi	
  
deduzido	
  até	
  essa	
  iteração.	
  
¨  Assim,	
  na	
  iteração	
  t	
  verificamos	
  apenas	
  as	
  regras	
  que	
  possuem	
  em	
  sua	
  
premissa	
  um	
  elemento	
  pi	
  que	
  se	
  unifica	
  com	
  um	
  fato	
  p'i	
  recém-­‐deduzido	
  
na	
  iteração	
  t	
  –	
  1.	
  
¨  Esse	
  algoritmo	
  gera	
  exatamente	
  os	
  mesmos	
  fatos	
  de	
  	
  ASK-­‐LPO-­‐EF	
  mais	
  é	
  
muito	
  mais	
  eficiente.	
  
¨  Muitos	
  sistemas	
  reais	
  operam	
  em	
  um	
  modo	
  de	
  “atualização”	
  em	
  que	
  
ocorre	
  o	
  EF	
  em	
  resposta	
  a	
  cada	
  fato	
  novo	
  que	
  seja	
  informado	
  (com	
  TELL)	
  
ao	
  sistema.	
  
73 
Encadeamento	
  p/	
  frente	
  incremental	
  
¨  Muito	
  trabalho	
  redundante	
  é	
  feito	
  na	
  construção	
  repeAda	
  de	
  
correspondências	
  parciais	
  que	
  tem	
  algumas	
  premissas	
  não	
  saAsfeitas.	
  
¨  Exemplo:	
  Na	
  primeira	
  iteração	
  de	
  ASK-­‐LPO-­‐EF	
  uma	
  correspondência	
  parcial	
  
é	
  construída	
  entre:	
  
¤  A	
  regra	
  americano(X) ٨۸ arma(Y) ٨۸ vende(X,Y,Z) ٨۸ hostil(Z) => criminoso(X)‏ 
e	
  o	
  fatoamericano(west),	
  sem	
  sucesso.	
  
¤  Mas	
  esta	
  correspondência	
  parcial	
  é	
  abandonada	
  e	
  reconstruída	
  na	
  segunda	
  
iteração,	
  quando	
  ela	
  tem	
  sucesso.	
  
¨  É	
  melhor	
  reter	
  as	
  correspondências	
  parciais	
  e	
  completá-­‐las	
  gradualmente	
  à	
  
medida	
  que	
  chegam	
  novos	
  fatos.	
  
¤  O	
   faz	
  um	
  pré-­‐processamento	
  das	
  regras	
  da	
  BC	
  e	
  funciona	
  como	
  
um	
  fluxo	
  de	
  dados	
  no	
  momento	
  da	
  avaliação.	
  
74 
Fatos	
  irrelevantes	
  
¨  O	
  EF	
  faz	
  todas	
  as	
  inferência	
  permissíveis	
  a	
  parAr	
  dos	
  fatos,	
  mesmo	
  que	
  
elas	
  sejam	
  irrelevantes	
  par	
  o	
  objeAvo.	
  
¨  Uma	
  solução	
  seria	
  fazer	
  ET.	
  
¨  Uma	
  outra	
  solução	
  é	
  restringir	
  o	
  EF	
  para	
  que	
  ele	
  trabalhe	
  somente	
  com	
  as	
  
regras	
  que	
  são	
  relevantes	
  para	
  o	
  objeAvo.	
  
¤  :	
  reescrever	
  o	
  conjunto	
  de	
  regras,	
  uAlizando	
  informações	
  do	
  objeAvo,	
  de	
  
modo	
  que	
  apenas	
  informações	
  de	
  variáveis	
  relevantes	
  sejam	
  consideradas	
  
durante	
  o	
  EF.	
  
n  Essas	
  regras	
  são	
  denominadas	
  de	
   .	
  
¤  A	
  ideia	
  é	
  fazer	
  um	
  encadeamento	
  p/	
  trás	
  “genérico”	
  a	
  fim	
  de	
  determinar	
  quais	
  
vinculações	
  de	
  variáveis	
  precisam	
  ser	
  limitadas.	
  
75 
Encadeamento	
  para	
  trás	
  (Top-­‐down)	
  
¨  É	
  muito	
  semelhante	
  ao	
  encadeamento	
  para	
  trás	
  em	
  LP.	
  
¤  Começamos	
  da	
  consulta	
  para	
  os	
  fatos.	
  
¨  O	
  algoritmo	
  uAliza	
  uma	
  pilha	
  de	
  objeAvos.	
  
¨  Cada	
  cláusula	
  na	
  qual	
  a	
  cabeça	
  se	
  unifica	
  com	
  o	
  objeAvo	
  da	
  pilha,	
  gera	
  
uma	
  chamada	
  recursiva,	
  adicionando	
  o	
  seu	
  corpo	
  à	
  pilha	
  de	
  objeAvos.	
  
¨  O	
  algoritmo	
  termina	
  porque	
  fatos	
  são	
  regras	
  que	
  não	
  tem	
  corpo	
  e,	
  
portanto,	
  não	
  adicionam	
  nada	
  à	
  pilha	
  de	
  objeAvos.	
  
¨  COMPOR(θ1,	
  θ2)	
  é	
  a	
  subsAtuição	
  cujo	
  efeito	
  é	
  idênAco	
  ao	
  efeito	
  de	
  aplicar	
  
cada	
  subsAtuição	
  separadamente.	
  
76 
Procedimento	
  de	
  prova	
  Top-­‐down	
  
¨  Uma	
   é	
  da	
  forma	
  
	
  yes(t1, …, tk) ← a1 ∧ a2 ∧ ... ∧ am.	
  
	
  onde	
  t1,	
  …,	
  tk	
  são	
  termos	
  e	
  a1,	
  …,	
  am	
  são	
  átomos.	
  
	
  
¨  A	
   desta	
  cláusula	
  de	
  resposta	
  generalizada	
  em	
  ai	
  com	
  
a	
  cláusula	
  
	
  a ← b1 ∧ … ∧ bp. 
	
  no	
  qual	
  ai	
  e	
  a	
  tem	
  como	
  unificador	
  mais	
  geral	
  θ,	
  é	
  
	
  (yes(t1, …,tk) ← 
 a1∧ … ∧ai−1 ∧ b1∧ … ∧bp ∧ ai+1∧ … ∧am)θ. 
Procedimento	
  de	
  prova	
  Top-­‐down	
  
12.4. Proofs and Substitutions 511
1: non-deterministic procedure FODCDeductionTD(KB,q)
2: Inputs
3: KB: a set definite clauses
4: Query q: a set of atoms to prove, with variables V1, . . . ,Vk
5: Output
6: substitution θ if KB |= qθ and fail otherwise
7: Local
8: G is a generalized answer clause
9: Set G to generalized answer clause yes(V1, . . . ,Vk)← q
10: while G is not an answer do
11: Suppose G is yes(t1, . . . , tk)← a1 ∧ a2 ∧ . . . ∧ am
12: select atom ai in the body of G
13: choose clause a← b1 ∧ . . . ∧ bp in KB
14: Rename all variables in a← b1 ∧ . . . ∧ bp to have new names
15: Let σ be unify(ai, a). Fail if unify returns ⊥.
16: assign G the answer clause: (yes(t1, . . . , tk) ← a1 ∧ . . . ∧ ai−1 ∧ b1 ∧
. . . ∧ bp ∧ ai+1 ∧ . . . ∧ am)σ
17: return V1 = t1, . . . ,Vk = tk where G is yes(t1, . . . , tk)←
Figure 12.3: Top-down definite clause proof procedure
Example 12.21 Consider the database of Figure 12.2 (page 505) and the query
ask two doors east(R, r107).
Figure 12.4 (on the next page) shows a successful derivation with answer
R = r111.
Note that this derivation used two instances of the rule
imm east(E,W)← imm west(W,E).
One instance eventually substituted r111 for E, and one instance substituted
r109 for E.
Some choices of which clauses to resolve against may have resulted in a
partial derivation that could not be completed.
Unification
The preceding algorithms assumed that we could find themost general unifier
of two atoms. The problem of unification is the following: given two atoms,
determine if they unify, and, if they do, return an MGU of them.
The unification algorithm is given in Figure 12.5 (page 513). E is a set of
equality statements implying the unification, and S is a set of equalities of the
correct form of a substitution. In this algorithm, if x/y is in the substitution S,
Exemplo:	
  Encadeamento	
  p/	
  trás	
  em	
  LPO	
  
¨  Vamos	
  provar	
  que	
  West	
  é	
  criminoso	
  =	
  criminoso(west).	
  
¨  Inicialmente	
  objeAvos=	
  [criminoso(west)]	
  e	
  θ	
  =	
  {}	
  
¨  criminoso(west) resolve	
  com	
  (1)	
  americano(X) ٨۸ arma(Y) ٨۸ vende(X,Y,Z) ٨۸ 
hostil(Z) => criminoso(X),	
  	
  e	
  θ	
  =	
  {X/west}	
  
¤  objeAvos	
  =	
  [americano(west) ٨۸ arma(Y) ٨۸ vende(west,Y,Z) ٨۸ hostil(Z)]	
  
¨  americano(west) resolve	
  com	
  (6)	
  americano(west)‏.	
  
¤  objeAvos	
  =	
  [arma(Y) ٨۸ vende(west,Y,Z) ٨۸ hostil(Z)]	
  
¨  arma(Y) resolve	
  com	
  (4)	
  míssil(X1) => arma(X1)‏ e	
  θ	
  =	
  {X/west,	
  X1/Y}	
  
¤  objeAvos	
  =	
  [missil(Y) ٨۸ vende(west,Y,Z) ٨۸ hostil(Z)]	
  
79 
Exemplo:	
  Encadeamento	
  p/	
  trás	
  em	
  LPO	
  
¨  míssil(Y) resolve	
  com	
  (2)	
  proprietário(nono,m1) ٨۸ míssil(m1)‏ e	
  θ	
  =	
  {X/
west,	
  X1/Y,	
  Y/m1}	
  
¤  objeAvos	
  =	
  [vende(west,m1,Z) ٨۸ hostil(Z)]	
  
¨  vende(west,m1,Z) resolve	
  com	
  	
  (3)	
  míssil(X2) ٨۸ proprietário(nono,X2) => 
vende(west,X2,nono)‏ e	
  θ	
  =	
  {X/west,	
  X1/Y,	
  Y/m1,	
  X2/m1,	
  Z/nono}	
  
¤  objeAvos	
  =	
  [míssil(m1) ٨۸ proprietário(nono,m1) ٨۸ hostil(nono)]	
  
¨  míssil(m1) resolve	
  com	
  (2)	
  proprietário(nono,m1) ٨۸ míssil(m1)‏ 
¤  objeAvos	
  =	
  [proprietário(nono,m1) ٨۸ hostil(Z)]	
  
¨  proprietário(nono,m1) resolve	
  com	
  (2)	
  proprietário(nono,m1) ٨۸ míssil(m1)‏ 
¤  objeAvos	
  =	
  [hostil(nono)]	
  
80 
Exemplo:	
  Encadeamento	
  p/	
  trás	
  em	
  LPO	
  
¨  hostil(mono) resolve	
  com	
  (5)	
  inimigo(X3,américa) => hostil(X3)‏ e	
  θ	
  =	
  {X/
west,	
  X1/Y,	
  Y/m1,	
  X2/m1,	
  Z/nono,	
  X3/nono}	
  
¤  objeAvos	
  =	
  [inimigo(nono,américa)]	
  
¨  inimigo(nono,américa) resolve	
  com	
  (7)	
  inimigo(nono,américa)‏ e	
  θ	
  =	
  {X/
west,	
  X1/Y,	
  Y/m1,	
  X2/m1,	
  Z/nono,	
  X3/Z}	
  
¤  objeAvos	
  =	
  []	
  
81 
Árvore	
  de	
  derivação	
  (top-­‐down)	
  
Hostile(Nono)
Enemy(Nono,America)Owns(Nono,M1)Missile(M1)American(West)
Weapon(M1)
Criminal(West)
Sells(West,M1,Nono)
Exemplo	
  
Example
live(Y )� connected to(Y ,Z ) ⇥ live(Z ). live(outside).
connected to(w6,w5). connected to(w5, outside).
?live(A).
yes(A)� live(A).
yes(A)� connected to(A,Z1) ⇥ live(Z1).
yes(w6)� live(w5).
yes(w6)� connected to(w5,Z2) ⇥ live(Z2).
yes(w6)� live(outside).
yes(w6)� .
c�D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 12.4, Page 14
Exemplo	
  
Example
live(Y )� connected to(Y ,Z ) ⇥ live(Z ). live(outside).
connected to(w6,w5). connected to(w5, outside).
?live(A).
yes(A)� live(A).
yes(A)�connected to(A,Z1) ⇥ live(Z1).
yes(w6)� live(w5).
yes(w6)� connected to(w5,Z2) ⇥ live(Z2).
yes(w6)� live(outside).
yes(w6)� .
c�D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 12.4, Page 15
Procedimentos	
  de	
  prova	
  completos	
  
¨  Kurt	
  Gödel	
  (matemáAco	
  alemão)	
  provou	
  os	
  principais	
  teoremas	
  sobre	
  a	
  
completeza	
  dos	
  procedimentos	
  de	
  prova	
  em	
  LPO:	
  
¤  1930	
  -­‐	
  Primeiro	
  teorema	
  da	
  completeza	
  para	
  LPO:	
  qualquer	
  sentença	
  que	
  é	
  
consequência	
  lógica	
  tem	
  uma	
  prova	
  finita.	
   	
  	
  
¤  1931	
  –	
  Teorema	
  da	
  incompletude	
  para	
  LPO:	
  um	
  sistema	
  lógico	
  que	
  inclua	
  o	
  
princípio	
  da	
  indução	
  necessariamente	
  é	
  incompleto.	
  
n  Existem	
  sentenças	
  que	
  são	
  consequências	
  lógicas,	
  mas	
  não	
  têm	
  nenhuma	
  prova	
  
finita	
  dentro	
  sistema.	
  
¨  Apesar	
  do	
  teorema	
  de	
  Gödel,	
  os	
  provadores	
  de	
  teorema	
  baseados	
  em	
  
foram	
  amplamente	
  uAlizados	
  para	
  derivar	
  teoremas	
  
matemáAcos,	
  inclusive	
  alguns	
  que	
  não	
  se	
  conhecia	
  uma	
  prova	
  antes.	
  
Entrada	
  para	
  o	
  algoritmo	
  de	
  resolução	
  
¨  Exige	
  que	
  as	
  sentenças	
  estejam	
  na	
   (uma	
  conjunção	
  de	
  cláusulas	
  em	
  
que	
  cada	
  cláusula	
  é	
  uma	
  disjunção	
  de	
  literais).	
  
¨  Os	
  literais	
  podem	
  conter	
  variáveis,	
  que	
  presumimos	
  ser	
  universalmente	
  
quanAficadas.	
  
¨ 
¨  Exemplo	
  em	
  LPO:	
  
∀X americano(X) ٨۸ arma(Y) ٨۸ vende(X,Y,Z) ٨۸ hostil(Z) => criminoso(X)‏ 
¨  ConverAda	
  para	
  FNC:	
  
¬americano(X) ٧۷ ¬arma(Y) ٧۷ ¬vende(X,Y,Z) ٧۷ ¬hostil(Z) ٧۷ criminoso(X)‏ 
Conversão	
  para	
  FNC	
  
¨  É	
  bem	
  parecida	
  com	
  a	
  conversão	
  em	
  LP,	
  exceto	
  pela	
  necessidade	
  de	
  
eliminar	
  os	
  quanAficadores	
  existenciais.	
  
¨  Exemplo:	
  “Todo	
  mundo	
  que	
  ama	
  todos	
  os	
  animais	
  é	
  amado	
  por	
  alguém”.	
  
	
  ∀X [∀Y animal(Y) => ama(X,Y)] => [∃Y ama(Y,X)] 
¨  Etapas	
  da	
  conversão:	
  
¤  :	
  
 ∀X [¬∀Y ¬animal(Y) V ama(X,Y)] V [∃Y ama(Y,X)] 
¤  :	
  
n  Precisaremos,	
  além	
  das	
  regras	
  habituais,	
  também	
  das	
  regras	
  para	
  quanAficadores	
  
negados:	
  
 ¬∀X p torna-­‐se	
  ∃X ¬p 
 ¬∃X p torna-­‐se	
  ∀X ¬p 
Conversão	
  para	
  FNC	
  
¨  :	
  
∀X [¬∀Y ¬animal(Y) V ama(X,Y)] V [∃Y ama(Y,X)] 
∀X [∃Y ¬(¬animal(Y) V ama(X,Y))] V [∃Y ama(Y,X)] 
∀X [∃Y animal(Y) ٨۸ ¬ama(X,Y)] V [∃Y ama(Y,X)]	
  
¨  :	
  
∀X [∃Y animal(Y) ٨۸ ¬ama(X,Y)] V [∃Z ama(Z,X)] 
¨  :	
  É	
  o	
  processo	
  de	
  remover	
  quanAficadores	
  existenciais	
  por	
  
eliminação.	
  No	
  caso	
  simples,	
  é	
  idênAca	
  à	
  regra	
  de	
  instanciação	
  do	
  
existencial.	
  
∀X [animal(a) ٨۸ ¬ama(X,a)] V [ama(b,X)] 
 
¤  “Todo	
  mundo	
  deixa	
  de	
  amar	
  uma	
  animal	
  A	
  específico,	
  ou	
  é	
  amado	
  por	
  alguma	
  
enAdade	
  específica	
  B”	
  
Conversão	
  para	
  FNC	
  
¨  :	
  Queremos	
  que	
  as	
  enAdades	
  de	
  Skolem	
  dependam	
  de	
  X.	
  
∀X [animal(f(X)) ٨۸ ¬ama(X,f(X))] V [ama(g(X),X)] 
¤  f(X) e	
  g(X) são	
   .	
  Os	
  argumentos	
  da	
  função	
  de	
  Skolem	
  são	
  
todas	
  as	
  variáveis	
  universalmente	
  quan5ficadas,	
  em	
  cujo	
  escopo	
  aparece	
  o	
  
quanAficador	
  existencial.	
  
¨  :	
  
[animal(f(X)) ٨۸ ¬ama(X,f(X))] V [ama(g(X),X)] 
¨  :	
  
[animal(f(X)) V ama(g(X),X)] ٨۸ [¬ama(X,f(X)) V ama(g(X),X)] 
¤  f(X) –	
  se	
  refere	
  ao	
  animal	
  potencialmente	
  não	
  amado	
  por	
  X.	
  
¤  g(X) –	
  se	
  refere	
  a	
  alguém	
  que	
  poderia	
  amar	
  X.	
  
A	
  regra	
  de	
  inferência	
  de	
  resolução	
  
¨  Duas	
  cláusulas	
  podem	
  ser	
  resolvidas	
  se	
  contém	
  literais	
  complementares.	
  
¤  Literais	
  de	
  primeira	
  ordem	
  são	
  complementares	
  se	
  um	
  deles	
  se	
   	
  com	
  a	
  
negação	
  do	
  outro.	
  
:	
  
 α1٧۷...٧۷ αk, β1٧۷...٧۷ βn 
 SUBST(θ, α1٧۷...٧۷ αi-1 ٧۷ αi+1٧۷...٧۷ αk ٧۷ β1٧۷...٧۷ βj-1 ٧۷ βj+1٧۷...٧۷ βn)‏ 
	
  onde	
  UNIFICA(αi,	
  βj)=θ.	
  
¨  Exemplo:	
  
 [animal(f(X)) V ama(g(X),X)], [¬ama(U,W) V ¬mata(U,W)] 
 [animal(f(X)) V ¬mata(g(X),X)] 
	
  
	
  com	
  UNIFICA(U/g(X),	
  W/X)=θ.	
  
Regra	
  de	
  Resolução	
  +	
  Fatoração	
  
¨  A	
  regra	
  de	
  resolução	
  binária	
  sozinha	
  não	
  gera	
  um	
  
procedimento	
  de	
  inferência	
  completo.	
  
¨  A	
  regra	
  de	
  resolução	
  +	
  fatoração	
  é	
  um	
  procedimento	
  de	
  
inferência	
  completo.	
  
¤  Fatoração	
  proposicional	
  –	
  reduz	
  dois	
  literais	
  a	
  um	
  só	
  se	
  eles	
  são	
  
.	
  
¤  Fatoração	
  de	
  primeira	
  ordem	
  –	
  reduz	
  dois	
  literais	
  a	
  um	
  só	
  se	
  eles	
  são	
  
.	
  
n  O	
  unificador	
  deve	
  ser	
  aplicado	
  à	
  cláusula	
  inteira.	
  
Exemplo	
  de	
  prova	
  por	
  resolução	
  
¨  As	
  sentenças	
  do	
  exemplo	
  do	
  crime	
  em	
  FNC:	
  
(1) ¬americano(X) V ¬arma(Y) V ¬vende(X,Y,Z) V ¬hostil(Z) V criminoso(X)‏ 
(2a) proprietário(nono, M1)‏ 
(2b) míssil(M1)‏ 
(3) ¬míssil(x) V ¬proprietário(nono, x) V vende(west,x,nono)‏ 
(4) ¬míssil(x) V Arma(x)‏ 
(5) ¬inimigo(x,américa) V hostil(X)‏ 
(6) americano(west)‏ 
(7) inimigo(nono,américa)‏ 
¨  Queremos	
  provar:	
  criminoso(west)‏ 
Árvore	
  de	
  derivação	
  (resolução)	
  
¬American(x) ¬Weapon(y) ¬Sells(x,y,z) ¬Hostile(z) Criminal(x) ¬Criminal(West)
¬Enemy(Nono, America)Enemy(Nono,America)
¬Missile(x) Weapon(x) ¬Weapon(y) ¬Sells(West,y,z) ¬Hostile(z)
Missile(M1) ¬Missile(y) ¬Sells(West,y,z) ¬Hostile(z)
¬Missile(x) ¬Owns(Nono,x) Sells(West,x,Nono) ¬Sells(West,M1,z) ¬Hostile(z)
¬American(West) ¬Weapon(y) ¬Sells(West,y,z) ¬Hostile(z)American(West)
¬Missile(M1) ¬Owns(Nono,M1) ¬Hostile(Nono)Missile(M1)
¬Owns(Nono,M1) ¬Hostile(Nono)Owns(Nono,M1)
¬Enemy(x,America) Hostile(x) ¬Hostile(Nono)
^
^^
^
^
^
^
^
^ ^
^
^
^
^
^
^
^
^
^
Prova	
  por	
  resolução	
  e	
  ET	
  
¨  A	
  coluna	
  em	
  cinza	
  começa	
  com	
  a	
  cláusula	
  objeAvo,	
  
resolvendo	
  cláusulas	
  desde	
  a	
  BC	
  até	
  a	
  cláusula	
  vazia.	
  
¤  CaracterísAca	
  da	
  resolução	
  sobre	
  BC	
  de	
  cláusulas	
  de	
  Horn.	
  
¤  As	
  cláusulas	
  ao	
  longo	
  da	
  coluna	
  principal	
  correspondem	
  exatamente	
  
aos	
  valores	
  sucessivos	
  da	
  variável	
  objeAvos	
  no	
  algoritmo	
  de	
  ET.	
  
¨  O	
  encadeamento	
  para	
  trás	
  é	
  realmente	
  apenas	
  um	
  caso	
  
especial	
  de	
  resolução	
  com	
  uma	
  estratégia	
  de	
  controle	
  
específica	
  para	
  decidir	
  que	
  resolução	
  executar	
  em	
  seguida.	
  
Exemplo	
  com	
  cláusulas	
  que	
  não	
  são	
  
definidas	
  e	
  skolemização	
  
¨  O	
  problema	
  em	
  linguagem	
  natural:	
  
¤  Todo	
  mundo	
  que	
  ama	
  todos	
  os	
  animais	
  é	
  amado	
  por	
  alguém.	
  
¤  Qualquer	
  um	
  que	
  mata	
  um	
  animal	
  é	
  amadopor	
  ninguém.	
  
¤  João	
  ama	
  todos	
  os	
  animais.	
  
¤  João	
  ou	
  a	
  Curiosidade	
  matou	
  o	
  gato,	
  que	
  se	
  chama	
  Atum.	
  
¤  A	
  Curiosidade	
  matou	
  o	
  gato?	
  
Exemplo	
  com	
  cláusulas	
  que	
  não	
  são	
  
definidas	
  e	
  skolemização	
  
¨  O	
  problema	
  em	
  LPO:	
  
1.  ∀X [∀Y animal(Y) => ama(X,Y)] => [∃Y ama(Y,X)] 
2.  ∀X [∃Y animal(Y) ٨۸ mata(X,Y)] => [∀z ¬ama(Z,X)] 
3.  ∀X animal(X) => ama(joão,X)‏ 
4.  mata(joão,atum) V mata(curiosidade,atum)‏ 
5.  gato(atum)‏ 
6.  ∀X gato(X) ٨۸ animal(X)‏ 
7.  ¬mata(curiosidade,atum)‏ 
Exemplo	
  com	
  cláusulas	
  que	
  não	
  são	
  
definidas	
  e	
  skolemização	
  
¨  O	
  problema	
  em	
  FNC:	
  
1.  animal(f(X)) V ama(g(X),X)‏ 
2.  ¬ama(x,f(X)) V ama(f(X),X)‏ 
3.  ¬animal(Y) V ¬mata(X,Y) V ¬ama(Z,X)‏ 
4.  ¬animal(x) V ama(joão,X)‏ 
5.  mata(joão,atum) V mata(curiosidade,atum)‏ 
6.  gato(atum)‏ 
7.  ¬gato(X) V animal(X)‏ 
8.  ¬mata(curiosidade,atum)‏ 
Àrvore	
  de	
  derivação	
  (resolução)	
  
¬Loves(y, Jack) Loves(G(Jack), Jack)
¬Kills(Curiosity, Tuna)Kills(Jack, Tuna) Kills(Curiosity, Tuna)¬Cat(x) Animal(x)Cat(Tuna)
¬Animal(F(Jack)) Loves(G(Jack), Jack) Animal(F(x)) Loves(G(x), x) ¬Loves(y, x) ¬Kills(x, Tuna)
Kills(Jack, Tuna)¬Loves(y, x) ¬Animal(z) ¬Kills(x, z)Animal(Tuna) ¬Loves(x,F(x)) Loves(G(x), x) ¬Animal(x) Loves(Jack, x)
^
^
^
^
^ ^
^^^
Estratégias	
  de	
  Resolução	
  
¨  Aplicações	
  repeAdas	
  da	
  regra	
  de	
  inferência	
  de	
  resolução	
  
eventualmente	
  encontrarão	
  uma	
  prova,	
  se	
  exisAr	
  alguma.	
  
¨  Algumas	
  estratégias	
  ajudam	
  a	
  encontrar	
  prova	
  de	
  maneira	
  
eficiente.	
  
¤  Preferência	
  unitária	
  
¤  Conjunto	
  de	
  suporte	
  
¤  Resolução	
  de	
  entrada	
  
¤  Subordinação	
  
Preferência	
  Unitária	
  
¨  Dá	
  preferência	
  a	
  resoluções	
  em	
  que	
  uma	
  das	
  sentenças	
  é	
  um	
  
único	
  literal.	
  
¨  Estamos	
  tentando	
  produzir	
  uma	
  cláusula	
  vazia	
  e,	
  assim,	
  pode	
  
ser	
  uma	
  boa	
  ideia	
  produzir	
  cláusulas	
  cada	
  vez	
  mais	
  curtas.	
  
¨  A	
   é	
  uma	
  forma	
  restrita	
  de	
  resolução,	
  na	
  
qual	
  toda	
  etapa	
  de	
  resolução	
  deve	
  envolver	
  uma	
  cláusula	
  
unitária.	
  
¤  É	
  incompleta	
  no	
  caso	
  geral,	
  mas	
  é	
  completa	
  para	
  BC	
  na	
  forma	
  de	
  
cláusulas	
  de	
  Horn.	
  
Conjunto	
  de	
  Suporte	
  
¨  Começa	
  idenAficando	
  um	
  conjunto	
  de	
  sentenças	
  chamado	
  conjunto	
  de	
  
suporte.	
  
¤  Uma	
  abordagem	
  comum	
  é	
  usar	
  a	
  consulta	
  negada	
  como	
  conjunto	
  de	
  suporte.	
  
¨  Toda	
  resolução	
  combina	
  uma	
  sentença	
  do	
  conjunto	
  de	
  suporte	
  com	
  outra	
  
sentença	
  e	
  adiciona	
  o	
  resolvente	
  ao	
  conjunto	
  de	
  suporte.	
  
¨  Se	
  o	
  conjunto	
  de	
  suporte	
  for	
  pequeno	
  em	
  relação	
  à	
  BC	
  inteira,	
  o	
  espaço	
  
de	
  busca	
  será	
  drasAcamente	
  reduzido.	
  
¨  Se	
  escolhermos	
  o	
  conjunto	
  de	
  suporte	
  de	
  forma	
  que	
  as	
  sentenças	
  
restantes	
  sejam	
  saAsfazíveis	
  em	
  conjunto,	
  então	
  a	
  resolução	
  pelo	
  
conjunto	
  de	
  suporte	
  será	
  completa.	
  
¤  O	
  uso	
  da	
  consulta	
  negada	
  como	
  conjunto	
  de	
  suporte	
  supõe	
  que	
  a	
  BC	
  original	
  é	
  
consistente.	
  
Resolução	
  de	
  entrada	
  
¨  Toda	
  resolução	
  combina	
  uma	
  das	
  sentenças	
  de	
  entrada	
  (da	
  
BC	
  ou	
  da	
  consulta)	
  com	
  alguma	
  outra	
  sentença	
  (produzida	
  
pela	
  resolução).	
  
¤  Como	
  o	
  a	
  prova	
  por	
  resolução	
  do	
  exemplo	
  do	
  crime.	
  
¨  Em	
  BCs	
  de	
  Horn,	
  o	
  Modus	
  Ponens	
  é	
  uma	
  espécie	
  de	
  
estratégia	
  de	
  resolução	
  de	
  entrada.	
  
¤  Por	
  isso,	
  a	
  resolução	
  de	
  entrada	
  é	
  completa	
  para	
  BCs	
  de	
  Horn,	
  mas	
  é	
  
incompleta	
  no	
  caso	
  geral.	
  
Subordinação	
  
¨  Elimina	
  todas	
  as	
  sentenças	
  que	
  são	
  subordinadas	
  por	
  uma	
  
sentença	
  existente	
  na	
  BC	
  (isto	
  é,	
  são	
  mais	
  específicas).	
  
¤  Exemplo:	
  	
  
n  Se	
  p(X)	
  está	
  na	
  BC,	
  então	
  não	
  faz	
  senAdo	
  adicionar	
  p(a)	
  ou	
  p(a)	
  V	
  q(b).	
  
¨  Isto	
  ajuda	
  a	
  manter	
  a	
  BC	
  pequena,	
  e	
  isso	
  ajuda	
  a	
  manter	
  o	
  
espaço	
  de	
  busca	
  pequeno.

Continue navegando