Está en la página 1de 65

LOGICA DE PREDICADOS

DRA. KARIN SUPO GAVANCHO


Representación e inferencia en la lógica de predicados

Idea:
La lógica como sistema de representación del conocimiento y
de obtención de consecuencias (control)

Cálculo de predicados de primer orden

Fórmulas atómicas

Fórmulas

Conectores
Fórmulas atómicas

Términos

autor(quijote, cervantes)

escritor(cervantes)
autor(quijote, Quién)

autor(quijote, mejor(novelista, españa))

Predicado: Un predicado es un símbolo cuyo valor se encuentra en el


dominio lógico (verdadero o falso) y representa alguna cualidad
semántica, en un cierto contexto, acerca de las relaciones entre
objetos o entidades
Fórmulas atómicas

Fórmulas atómica :: Predicado | Predicado(Términos)


Términos :: Término | Término, Términos
Término :: Variable | Constante | Functor
Functor :: NombreFunctor(Términos)
Normas léxicas: Variable:

Las variables siempre empiezan por Representa un término cuyo valo


mayúscula las constantes por minúscula no está determinado inicialmente
y su dominio de definición debe
Functor: coincidir con el de los términos
constantes
Es un símbolo que posee valor en el
dominio de las variables y constantes, Constante:
pero que no es ni una variable ni una
constante. Representa un término
con un valor semántico
determinado
LOGICA DE PREDICADOS

Conectores

Permiten construir fórmulas complejas a partir de fórmulas o expresiones


atómicas

Negación :  (~)
Disyunción :  (OR)
Conjunción :  (AND)
Implicación :  ()
Equivalencia : 
LOGICA DE PREDICADOS

Negación: Genera una fórmula que posee valores lógicos complementarios a los de
la fórmula sobre la que se aplica. Estrictamente no es un conector, pues no conecta
dos fórmulas sino que transforma una.

 autor(hamlet, cervantes)

Disyunción: Genera una fórmula cuyo valor lógico es el “OR” de los valores de las
dos fórmulas que conecta.

estado(bombilla, encendida)  estado(bombilla, apagada)

Conjunción: Genera una fórmula cuyo valor lógico es el “AND” de los valores de las
dos fórmulas que conecta.

color(coche, rojo)  color(camisa, azul)


LOGICA DE PREDICADOS

Implicación: Genera una fórmula compuesta no-simétrica que es cierta


siempre, salvo cuando el antecedente es cierto y el consecuente falso.

p  q es equivalente a p  q

p q pq p p  q

0 0 1 1 1
0 1 1 1 1
1 0 0 0 0
1 1 1 0 1

está(cielo, azul)   lloverá(hoy)

 está(cielo, azul)   lloverá(hoy)


LOGICA DE PREDICADOS

Equivalencia o doble implicación: Genera una fórmula que es cierta sólo si las
dos componentes poseen idéntico valor.
p  q es equivalente a (p  q)  (q  p)

p q pq q  p (p  q)  (q  p)

0 0 1 1 1
0 1 1 0 0
1 0 0 1 0
1 1 1 1 1

llueve(hoy)  está(cielo, nublado)


LOGICA DE PREDICADOS

Establecen el ámbito de existencia de las


Cuantificadores variables

Cuantificador Universal ():

Cuando acompaña a una variable X establece que la fórmula es


siempre válida para cada valor posible de la variable X. La variable X
se dice entonces cuantificada universalmente.

“Todo cuerpo con masa cae”

(X) ( [cuerpo(X)  posee(masa, X)]  cae(X) )


LOGICA DE PREDICADOS

Establecen el ámbito de existencia de las


Cuantificadores variables

Cuantificador Existencial ():

Establece que como mínimo existe un valor de la variable cuantificada


que hace cierta la fórmula. La variable se dice cuantificada
existencialmente.

“Alguien descubrió la penicilina”

( X) ( descubrió( X, penicilina )
LOGICA DE PREDICADOS

Reglas de precedencia entre operadores



, 
, menor precedencia
, 

Forma Normal de una fórmula


Una fórmula se dice que está en forma normal si todos los
cuantificadores han sido desplazados al principio de la fórmula.
Forma normal de una fórmula

Una fórmula se dice que está en forma normal si todos los cuantificadores han
sido desplazados al principio de la fórmula.

Algunas equivalencias útiles para alcanzar una forma normal

 [ ( X) p(X) ]  (X) [ p(X) ]

 [ (X) p(X) ]  ( X) [ p(X) ]

( X) [ p(X)  q(X) ]  [ (X) p(X) ]  [ (X) q(X) ]

( X) [ p(X)  q(X) ]  [ ( X) p(X) ]  [ ( X) q(X) ]


Reglas de Inferencia

Especialización Universal: siempre es posible deducir la verificación de un


caso concreto a partir de un cuantificador universal.
(X) p(X) p(a)

Sustitución: permite la sustitución de cualquier proposición en una fórmula por


otra biequivalente.

Modus ponens: de una implicación de la verificación de la premisa se verifica la


conclusión.
Axioma: p  q
Axioma: p
Teorema: q
Modus tollens: de una implicación y de la no verificación del consecuente, se
concluye la no verificación de la premisa.
Axioma: p  q
Axioma: ¬q
Teorema: ¬p

 Introducción: la fbf pq puede ser inferida de las fbf p y q.


 Eliminación: la fbf p puede ser inferida de la fbf pq.
 Introducción: la fbf p  q puede ser inferida de la fbf p o de la fbf q.
Lógica de orden cero:

Los predicados carecen de términos y el cálculo de predicados se


reduce al cálculo de proposiciones o proposicional.

Lógica de orden uno:

Los predicados poseen términos que pueden ser constantes,


variables o functores.

Lógica de orden superior:

Los predicados lógicos pueden ser en sí mismos variables.


Ejercicios. Expresar como fbf en lógica de
predicados los siguientes hechos

A. Marco era un hombre. A. hombre(marco)


B. Marco era pompeyano (de B. pompeyano(marco)
Pompeya).
C. (X)(pompeyano(X)  romano(X))
C. Todos los pompeyanos eran
romanos. D. dirigente(césar)
D. César era un dirigente. E. (X)(romano(X)  leal(X,césar) 
E. Todos los romanos o bien eran
leales a César o bien le odiaban. odia(X,césar))
F. Todo el mundo es fiel a alguien. F. (X)(hombre(X)  (Y) leal(X,Y)
G. La gente sólo trata de asesinar a
G. (X)(Y) (hombre(X)  dirigente(Y)
aquellos dirigentes a los que no son
leales.  intenta_asesinar(X,Y)  
H. Marco intentó asesinar a César. leal(X,Y))
I. Algún romano odia a César.
H. intenta_asesinar(marco, césar)
I. (X) (romano(X)  odia(X, césar))
A. hombre(marco)
B. pompeyano(marco)
C. (X)(pompeyano(X)  romano(X))
D. dirigente(césar)
E. (X)(romano(X)  leal(X,césar)  odia(X,césar))
F. (X)(hombre(X)  (Y) leal(X,Y)
G. (X)(Y) (hombre(X)  dirigente(Y)
 intenta_asesinar(X,Y)   leal(X,Y))
H. intenta_asesinar(marco, césar)
I. (X) (romano(X)  odia(X, césar))
Lo que queremos hacer ...

Teorema + Axiomas (como fórmulas bien formadas, fbf)

Teorema + Axiomas (como cláusulas)

Método de resolución por refutación

Unificación

Demostración automática de teoremas


IMPORTANTE:

La demostración automática de teoremas lógicos es un procedimiento que


involucra una mera actividad sintáctica, o de relación entre símbolos,
ignorándose completamente el contenido semántico que resulta de la
interpretación de las fórmulas.
Transformación a cláusulas

Para ilustrar el proceso paso a paso emplearemos la siguiente fórmula compleja


como ejemplo:

(X){p(X) {(Y)[p(Y)  p(f(X,Y))] (Y)[q(X,Y)  p(Y)]}}

1. Eliminar los símbolos de implicación, sustituyendo p  q por p  q.

Tras este primer paso, nuestra fórmula se transforma en:

(X){p(X)  {(Y)[ p(Y)  p(f(X,Y))]  (Y)[ q(X,Y)  p(Y)]}}


Transformación a cláusulas

2. Mover las negaciones hasta las fórmulas atómicas, para ello se


emplean las leyes de Morgan y las transformaciones de cuantificadores
existenciales y universales.

 (p  q)   p   q
 (p  q)   p   q

 [ ( X) p(X) ]  (X) [ p(X) ]


 [ (X) p(X) ]  ( X) [ p(X) ]

Aplicándolo sobre el ejemplo:


(X){p(X)  {(Y)[ p(Y)  p(f(X,Y))]  (Y)[ q(X,Y)  p(Y)]}}

(X){ p(X)  {(Y)[ p(Y)  p(f(X,Y))]  (Y)[q(X,Y)   p(Y)]}}


Transformación a cláusulas

3. Renombrar variables, en aquellos casos en los que varias variables se hayan


nombrado de igual forma. En nuestro caso esto ocurre con la variable Y que
renombramos como Z en su segunda ocurrencia.

Así nuestro ejemplo se transforma en:


(X){ p(X)  {(Y)[ p(Y)  p(f(X,Y))]  (Y)[q(X,Y)   p(Y)]}}

(X){ p(X)  {(Y)[ p(Y)  p(f(X,Y))]  (Z)[q(X,Z)   p(Z)]}}


Transformación a cláusulas

4. Eliminar los cuantificadores existenciales. Las variables cuantificadas


por este tipo de cuantificadores serán sustituidas por un tipo de función comodín
denominada función de Skolem (proceso de skolemización).

P.e. (Z) q(X,Z) se transforma en q(X, g(X))

en donde g(X) es la función de Skolem para este caso. Nótese que no sólo se
eliminan los cuantificadores existenciales sino también las variables ligadas a los
mismos.

La función de Skolem introducida debe ser nueva en el universo de discurso, y


además deberá ser función de todas las variables cuantificadas universalmente
cuyos ámbitos incluyan el ámbito del cuantificador existencial que se pretende
eliminar.
Transformación a cláusulas

Así nuestro ejemplo se transforma en:


(X){ p(X)  {(Y)[ p(Y)  p(f(X,Y))]  (Z)[q(X,Z)   p(Z)]}}

(X){ p(X)  {(Y)[ p(Y)  p(f(X,Y))]  [q(X, g(X))   p(g(X))]}}

Si el cuantificador existencial no se encuentra en el ámbito de ningún


cuantificador universal, se usará una función de Skolem sin argumentos. Como en
el siguiente ejemplo:

(Z) q(Z) se transforma en q(a)

Donde el símbolo constante a referencia a la entidad que sabemos existe.


Evidentemente a debe ser un símbolo que no haya sido empleado con
anterioridad.
Transformación a cláusulas

5. Desplazar los cuantificadores universales, de manera que queden al


comienzo de la fórmula. Estre proceso puede ser realizado por cuanto no existen
ya variables distintas con el mismo nombre.
(X){ p(X)  {(Y)[ p(Y)  p(f(X,Y))]  [q(X, g(X))   p(g(X))]}}

(X) (Y){ p(X)  { [ p(Y)  p(f(X,Y))]  [q(X, g(X))   p(g(X))]}}

6. Convertir los operadores conjuntivos (AND) en los más externos,


para lo que se emplean las leyes distributivas. A la forma resultante se le denomina
forma normal conjuntiva.

Este paso se ejecuta sobre el ejemplo en dos pasos:


Transformación a cláusulas

Partiendo de la última expresión,

(X)(Y){ p(X)  { [ p(Y)  p(f(X,Y))]  [q(X, g(X))   p(g(X))]}}

se aplica primero la ley distributiva:

(X)(Y){ { p(X)  [ p(Y)  p(f(X,Y))]} 


{ p(X)  [q(X, g(X))   p(g(X))]}}

Aplicando de nuevo la ley distributiva y la asociativa:

(X)(Y){ [ p(X)   p(Y)  p(f(X,Y))] 


[ p(X)  q(X, g(X)) ] 
[ p(X)   p(g(X))]}
Transformación a cláusulas

7. Eliminar los cuantificadores universales. Se trata de una


eliminación convencional, no teórica, pues se asume que toda variable que
aparezca está cuantificada universalmente. La función de Skolem adquiere
sentido, dado que al no aparecer otras variables que las universales, pueden
eliminarse sus cuantificadores por convenio. En nuestro ejemplo:

(X)(Y){ [ p(X)   p(Y)  p(f(X,Y))] 


[ p(X)  q(X, g(X)) ] 
[ p(X)   p(g(X))]}

[ p(X)   p(Y)  p(f(X,Y))] 


[ p(X)  q(X, g(X)) ] 
[ p(X)   p(g(X))]
Transformación a cláusulas

8. Eliminar los conectores conjuntivos (AND).


Dado que la fórmula se corresponde con una conjunción de subfórmulas,
éstas deberán verificarse por separado para que se verifique la fórmula
principal.

Esto produce, en nuestro caso, el siguiente conjunto de fórmulas:

[ p(X)   p(Y)  p(f(X,Y))] 


[ p(X)  q(X, g(X)) ] 
[ p(X)   p(g(X))]

 p(X)   p(Y)  p(f(X,Y))


 p(X)  q(X, g(X))
 p(X)   p(g(X))
Transformación a cláusulas

9. Renombrar las variables. para que no aparezca la misma variable en


dos cláusulas.

 p(X)   p(Y)  p(f(X,Y))


 p(X)  q(X, g(X))
 p(X)   p(g(X))

 p(X)   p(Y)  p(f(X,Y))


 p(U)  q(U, g(U))
 p(W)   p(g(W))

------ * * * ------

Mediante este proceso se termina en una representación en forma de


cláusulas. Así de una una única fórmula pueden resultar varias cláusulas que
son más modulares y de estructura más simple.
Proceso de paso a cláusulas

1. Eliminar los símbolos de implicación


2. Mover las negaciones hasta las fórmulas atómicas
3. Renombrar variables
4. Eliminar los cuantificadores existenciales.
5. Desplazar los cuantificadores universales
6. Convertir los operadores AND en los más externos
7. Eliminar los cuantificadores universales.
8. Eliminar los conectores conjuntivos (AND).
9. Renombrar las variables.
Un ejemplo:

Acerca de los bloques conocemos tres cosas:

A. Que un bloque está encima de algo que no es una pirámide.


B. Que no existe ningún objeto que esté debajo de un bloque y, a la vez,
encima del mismo.
C. Que no hay nada que no sea un bloque y que también sea lo mismo que el
bloque.
(X) { bloque(X)  [(Y) (encima(X,Y)   piramide(Y))
  (Y) (encima(X,Y)  encima(Y,X))
 (Y) ( bloque(Y)   igual(X,Y))]}
Un ejemplo

0. La fórmula inicial

(X) { bloque(X)  [ (Y) (encima(X,Y)   piramide(Y))


  (Y) (encima(X,Y)  encima(Y,X))
 (Y) ( bloque(Y)   igual(X,Y))]}

1. Eliminar las implicaciones

(X) { bloque(X)  [ (Y) (encima(X,Y)   piramide(Y))


  (Y) (encima(X,Y)  encima(Y,X))
 (Y) (bloque(Y)   igual(X,Y))]}

2. Mover las negaciones hasta las fórmulas atómicas

(X) { bloque(X)  [ (Y) (encima(X,Y)   piramide(Y))


 (Y) ( encima(X,Y)   encima(Y,X))
 (Y) (bloque(Y)   igual(X,Y))]}
Un ejemplo del mundo de los bloques

3. Renombrar las variables

(X) { bloque(X)  [ (Y) (encima(X,Y)   piramide(Y))


 (Z) ( encima(X,Z)   encima(Z,X))
 (W) (bloque(W)   igual(X,W))]}

4. Eliminar los cuantificadores existenciales

(X) { bloque(X)  [ (encima(X,g(X))   piramide(g(X)))


 (Z) ( encima(X,Z)   encima(Z,X))
 (W) (bloque(W)   igual(X,W))]}

5. Desplazar los cuantificadores universales

(X)(Z)(W){ bloque(X)  [ (encima(X,g(X))   piramide(g(X)))


 ( encima(X,Z)   encima(Z,X))
 (bloque(W)   igual(X,W))]}
Un ejemplo del mundo de los bloques

6. Convertir los operadores AND en los más externos

(X)(Z)(W){ bloque(X)  [ (encima(X,g(X))   piramide(g(X)))


 ( encima(X,Z)   encima(Z,X))
 (bloque(W)   igual(X,W))]}
paso 1.

(X)(Z)(W){( bloque(X)  (encima(X,g(X))   piramide(g(X))))


 ( bloque(X)   encima(X,Z)   encima(Z,X))
 ( bloque(X)  bloque(W)   igual(X,W))]}

paso 2.

(X)(Z)(W){( bloque(X)  encima(X,g(X)))


 ( bloque(X)   piramide(g(X)))
 ( bloque(X)   encima(X,Z)   encima(Z,X))
 ( bloque(X)  bloque(W)   igual(X,W))]}
Un ejemplo del mundo de los bloques

7. Eliminar los cuantificadores universales

( bloque(X)  encima(X,g(X)))
 ( bloque(X)   piramide(g(X)))
 ( bloque(X)   encima(X,Z)   encima(Z,X))
 ( bloque(X)  bloque(W)   igual(X,W))

8. Eliminar los conectores AND

 bloque(X)  encima(X,g(X))
 bloque(X)   piramide(g(X))
 bloque(X)   encima(X,Z)   encima(Z,X)
 bloque(X)  bloque(W)   igual(X,W)
Un ejemplo del mundo de los bloques

9. Renombrar las variables

 bloque(X)  encima(X,g(X))
 bloque(Y)   piramide(g(Y))
 bloque(U)   encima(U,Z)   encima(Z,U)
 bloque(V)  bloque(W)   igual(V,W)

Nótese que la función de Skolem tiene la semántica de identificar el


apoyo de X. Si la renombramos a “soporte(X)” y representamos las
cláusulas como implicaciones obtenemos:

bloque(X)  encima(X, soporte(X))


bloque(Y)   piramide(soporte(Y))
bloque(U)  encima(U,Z)   encima(Z,U)
bloque(V)   bloque(W)   igual(V,W)
Un ejemplo

A. hombre(marco)
B. pompeyano(marco)
C. (X)(pompeyano(X)  romano(X))
D. dirigente(césar)
E. (X)(romano(X)  leal(X,césar)  odia(X,césar))
F. (X)(hombre(X)  (Y) leal(X,Y)
G. (X)(Y) (hombre(X)  dirigente(Y)
 intenta_asesinar(X,Y)   leal(X,Y))
H. intenta_asesinar(marco, césar)
I. (X) (romano(X)  odia(X, césar))
Proceso de paso a cláusulas

1. Eliminar los símbolos de implicación


A. hombre(marco)
B. pompeyano(marco)
C. (X)( pompeyano(X)  romano(X))
D. dirigente(césar)
E. (X)( romano(X)  leal(X,césar)  odia(X,césar))
F. (X)( hombre(X)  (Y) leal(X,Y)
G. (X){ (Y)   (hombre(X)  dirigente(Y)  intenta_asesinar(X,Y) 
  leal(X,Y)) }
H. intenta_asesinar(marco, césar)
I. (X) (romano(X)  odia(X, césar))
Proceso de paso a cláusulas

2. Mover las negaciones hasta las fórmulas atómicas


A. hombre(marco)
B. pompeyano(marco)
C. (X)( pompeyano(X)  romano(X))
D. dirigente(césar)
E. (X)( romano(X)  leal(X,césar)  odia(X,césar))
F. (X)( hombre(X)  (Y) leal(X,Y)
G. (X)(Y)
( hombre(X)  dirigente(Y)   intenta_asesinar(X,Y)  
leal(X,Y))
H. intenta_asesinar(marco, césar)
I. (X) (romano(X)  odia(X, césar))

3. Renombrar las variables


Proceso de paso a cláusulas

4. Eliminar los cuantificadores existenciales


A. hombre(marco)
B. pompeyano(marco)
C. (X)( pompeyano(X)  romano(X))
D. dirigente(césar)
E. (X)( romano(X)  leal(X,césar)  odia(X,césar))
F. (X)( hombre(X)  leal(X, g(X))
G. (X)(Y)
( hombre(X)  dirigente(Y)  intenta_asesinar(X,Y)  leal(X,Y))
H. intenta_asesinar(marco, césar)
I. romano(f)  odia(f, césar))
Proceso de paso a cláusulas

5. Desplazar los cuantificadores universales

6. Convertir los operadores AND en los más externos


A. hombre(marco)
B. pompeyano(marco)
C. (X)( pompeyano(X)  romano(X))
D. dirigente(césar)
E. (X)( romano(X)  leal(X,césar)  odia(X,césar))
F. (X)( hombre(X)  leal(X, g(X))
G. (X)(Y)
( hombre(X)  dirigente(Y)  intenta_asesinar(X,Y)  leal(X,Y))
H. intenta_asesinar(marco, césar)
I. romano(f)  odia(f, césar))
Proceso de paso a cláusulas

7. Eliminar los cuantificadores universales

A. hombre(marco)
B. pompeyano(marco)
C.  pompeyano(X)  romano(X)
D. dirigente(césar)
E.  romano(X)  leal(X,césar)  odia(X,césar)
F.  hombre(X)  leal(X, g(X))
G.  hombre(X)   dirigente(Y)   intenta_asesinar(X,Y)   leal(X,Y)
H. intenta_asesinar(marco, césar)
I. romano(f)  odia(f, césar))
Proceso de paso a cláusulas

8. Eliminar los conectores AND

A. hombre(marco)
B. pompeyano(marco)
C.  pompeyano(X)  romano(X)
D. dirigente(césar)
E.  romano(X)  leal(X,césar)  odia(X,césar)
F.  hombre(X)  leal(X, g(X))
G.  hombre(X)   dirigente(Y)   intenta_asesinar(X,Y)   leal(X,Y)
H. intenta_asesinar(marco, césar)
I. romano(f)
J. odia(f, césar))
Proceso de paso a cláusulas

8. Renombrar las variables

A. hombre(marco)
B. pompeyano(marco)
C.  pompeyano(X)  romano(X)
D. dirigente(césar)
E.  romano(Y)  leal(Y,césar)  odia(Y,césar)
F.  hombre(Z)  leal(Z, g(Z)
G.  hombre(W)   dirigente(K)   intenta_asesinar(W,K)   leal(W,K)
H. intenta_asesinar(marco, césar)
I. romano(f)
J. odia(f, césar))
Sistemas de Deducción

Un conjunto de procedimientos de demostración de teoremas que


utilizan esquemas diferentes al de refutación.

Procedimientos directos: porque emplean el conjunto de axiomas y el


teorema sin negar

Como estrategia de control: exploración de alternativas.

• Sistemas de deducción “Hacia-Delante”


• Sistemas de deducción “Hacia-Atrás”
Sistemas de Deducción

S.D. Hacia-Delante:

Se parte de los axiomas y se trata de llegar al teorema por aplicación


de reglas de inferencia.
Evidentemente, ésto sólo será posible si el teorema es una
consecuencia lógica de los axiomas.

S.D. Hacia-Atrás:

Se parte del teorema y, por aplicación de reglas de inferencia, se


intenta llegar a unos hechos completamente ciertos.
Hechos, Reglas y Objetivos

Los elementos que intervienen en la deducción son:

Reglas: Son aquellos axiomas que contienen una implicación, con


antecedentes y consecuentes

Hechos: Se denominan así a los axiomas que no contienen una implicación.


Son elementos sin condiciones.

Meta u Objetivo: Designa al teorema a demostrar.


Hechos, Reglas y Objetivos

Nomenclatura de Kowalsky:

Reglas: b1  b2  b3  ...  bm  a1  a2  ...  an

Hechos: b1  b2  b3  ...  bm 

Meta u Objetivo:  a1  a2  ...  an

donde ai y  bj representan predicados lógicos


Hechos, Reglas y Objetivos

Se puede simplificar esta nomenclatura si se admite la sustitución de


operadores por comas que el antecedente representarán conjunciones y el
consecuente disyunciones. Si nos restrigimos, además, a considerar sólo
cláusulas de Horn:

Reglas: b  a1 , a2 , ... , an

Hechos: b 

Meta u Objetivo:  a1 , a2 , ... , an


Deducción progresiva o Hacia-Delante

Se parte de los hechos como elementos básicos de transformación.


Intuitivamente, el procedimiento puede resumirse de la siguiente forma,
suponiendo que a1 es un predicado unificable con algún antecedente o
subobjetivo:
a1 
c  a1 , a2 , ... , an
A partir de:  a1 , o2 , ... , om

a1 
c  a2 , ... , an
Se deduce:
 o2 , ... , om
Deducción progresiva o Hacia-Delante

Cuando se trata de una regla con un único antecedente, el resultado es la


generación de un nuevo hecho

a1 
c  a1
A partir de:  a1 , o2 , ... , om

a1 
c
Se deduce:
 o2 , ... , om
Deducción progresiva o Hacia-Delante

El objetivo es llegar “al objetivo vacío”, es decir:

a1 
c  a1 , a2 , ... , an
A partir de:  a1

a1 
c  a2 , ... , an
Se deduce:

Deducción progresiva o Hacia-Delante

El procedimiento consiste, en esencia, en generar nuevos hechos por

reducción de los antecedentes de las reglas, y en reducir el objetivo, por

aplicación de los hechos originales o los generados, hasta alcanzar el

objetivo vacío, lo que equivale a haber satisfecho todos los subojetivos.


Deducción progresiva o Hacia-Delante

1. Formular el problema en términos de hechos, reglas y objetivos como


cláusulas de Horn, y añadirlos a una base de datos inicialmente vacía.
2. Hasta que el objetivo esté vacío o no existan sustituciones aplicables.
2.1 Partiendo de algún hecho disponible, encontrar una regla con un
antecedente, o un subobjetivo, que pueda ser sustituido, previa
unificación, con el hecho en cuestión

a1 
c  a1 , a2 , ... , an
 a1 , o2 , ... , om
2.2 Añadir a la base de datos, la siguiente regla o subobjetivo, donde
 es la unificación más general de la sustitución:

(c  a2 , ... , an) 
( o2 , ... , om ) 
3. Si el objetivo está vacío, entonces el objetivo es cierto y las posibles
respuestas vienen dadas por la secuencia de unificaciones. En otro caso,
el objetivo no se puede verificar.
Ejemplo:

Antonio y Miguel son dos amigos miembros de un club alpino. Cada


miembro de este club que no es esquiador es escalador.

A los escaladores les disgusta la lluvia y, por otra parte, a los que les disgusta
la nieve no son esquiadores.

Ambos amigos tienen gustos diferentes, de tal forma que a Miguel le


disgusta los que a Antonio le gusta, y le gusta lo que a Antonio le disgusta.

A Antonio le gustan la nieve y la lluvia.

¿Existe algún miembro del club que sea escalador?. ¿Quién?.


Antonio y Miguel son dos amigos
miembros de un club alpino.
Cada miembro de este club que
escalador(X)  no_esquiador(X)
no es esquiador es escalador.

A los escaladores les disgusta la disgusta(Y, lluvia)  escalador(Y)


lluvia y,por otra parte,
a los que les disgusta la nieve no
no_esquiador(Z)  disgusta(Z, nieve)
son esquiadores.

Ambos amigos tienen gustos


diferentes, de tal forma que a
Miguel le disgusta los que a
disgusta(miguel, C)  gusta(antonio, C)
Antonio le gusta,
y le gusta lo que a Antonio le
gusta(miguel, A)  disgusta(antonio, A)
disgusta.

A Antonio le gustan la nieve y la gusta(antonio, lluvia) 


lluvia. gusta(antonio, nieve) 

¿Existe algún miembro del club  escalador(Quien)


que sea escalador?. ¿Quién?.
Partiendo de los dos únicos hechos iniciales, el proceso de deducción podría ser
el siguiente:

gusta(antonio, lluvia) 
{ C  lluvia } escalador(X)  no_esquiador(X)
disgusta(miguel, lluvia)  disgusta(Y, lluvia)  escalador(Y)

no_esquiador(Z)  disgusta(Z, nieve)

disgusta(miguel, C)  gusta(antonio, C)

gusta(miguel, A)  disgusta(antonio, A)

gusta(antonio, lluvia) 
gusta(antonio, nieve) 

 escalador(Quien)
Partiendo de los dos únicos hechos iniciales, el proceso de deducción podría ser
el siguiente:

gusta(antonio, nieve) 
{ C  nieve} escalador(X)  no_esquiador(X)
disgusta(miguel, nieve)  disgusta(Y, lluvia)  escalador(Y)
{ Z  miguel}
no_esquiador(miguel)  no_esquiador(Z)  disgusta(Z, nieve)

{ X  miguel}
disgusta(miguel, C)  gusta(antonio, C)
escalador(miguel) 
{ Quien  miguel} gusta(miguel, A)  disgusta(antonio, A)

gusta(antonio, lluvia) 
Conclusión: al menos un gusta(antonio, nieve) 
escalador, miguel

escalador(Quien)
escalador(Quien)
Deducción regresiva o Hacia-Atrás

Intuitivamente el procedimiento consiste en deducir el objetivo por aplicación


sobre el mismo de las reglas y hechos.
Si existe algún subobjetivo a1 que pueda ser sustituido por un hecho, entonces
el mismo está satisfecho:

A partir de: a1 
 a1 , o2 , ... , om

a1 
Se deduce:
 o2 , ... , om
Deducción regresiva o Hacia-Atrás

En caso contrario, y cuando el subobjetivo b puede ser sustituido por el


consecuente de una regla, entonces el objetivo se modifica sustituyendo el
subobjetivo por los antecedentes de la regla:

A partir de: b  a1 , a2 , ..., an


 b , o2 , ... , om

Se deduce: b  a1 , a2 , ..., an
 a1 , a2 , ..., an , o2 , ... , om
Deducción regresiva o Hacia-Atrás

En este último caso, el nuevo objetivo es más complejo al poseer más


subobjetivos, pero se supone que cada uno de ellos es de menor
complejidad, esto es, más cercanos a un hecho.

El resultado final se alcanza cuando se reduce al vacío el objetivo, lo que


indicará que se han satisfecho todos los subobjetivos.
Deducción regresiva o Hacia-Atrás

1. Formular el problema en términos de hechos, reglas y objetivos como


cláusulas de Horn, y añadirlos a una base de datos inicialmente vacía.
2. Hasta que el objetivo esté vacío o no existan sustituciones aplicables.
2.1 Partiendo del objetivo, encontrar algún hecho o consecuente de
regla que pueda que pueda ser sustituido, previa unificación, con
algún subobjetivo

p
p  a1 , a2 , ... , an
 p , o2 , ... , om
2.2 Añadir a la base de datos, el siguiente objetivo, donde  es la
unificación más general de la sustitución:

( o2 , ... , om ) 
( a1 , a2 , ... , an , o2 , ... , om ) 
3. Si el objetivo está vacío, entonces el objetivo es cierto y las posibles
respuestas vienen dadas por la secuencia de unificaciones. En otro caso,
el objetivo no se puede verificar.
Antonio y Miguel son dos amigos
miembros de un club alpino.
Cada miembro de este club que
escalador(X)  no_esquiador(X)
no es esquiador es escalador.

A los escaladores les disgusta la disgusta(Y, lluvia)  escalador(Y)


lluvia y,por otra parte,
a los que les disgusta la nieve no
no_esquiador(Z)  disgusta(Z, nieve)
son esquiadores.

Ambos amigos tienen gustos


diferentes, de tal forma que a
Miguel le disgusta los que a
disgusta(miguel, C)  gusta(antonio, C)
Antonio le gusta,
y le gusta lo que a Antonio le
gusta(miguel, A)  disgusta(antonio, A)
disgusta.

A Antonio le gustan la nieve y la gusta(antonio, lluvia) 


lluvia. gusta(antonio, nieve) 

¿Existe algún miembro del club  escalador(Quien)


que sea escalador?. ¿Quién?.
Partiendo del teorema:

escalador(Quien) 
{ X  Quien} escalador(X)  no_esquiador(X)
no_esquiador(Quien)  disgusta(Y, lluvia)  escalador(Y)
{ Z  Quien}
disgusta(Quien, nieve)  no_esquiador(Z)  disgusta(Z, nieve)

{ Quien  miguel,
disgusta(miguel, C)  gusta(antonio, C)
C  nieve }
gusta(antonio, nieve)  gusta(miguel, A)  disgusta(antonio, A)
{}
 gusta(antonio, lluvia) 
Conclusión: al menos un gusta(antonio, nieve)
gusta(antonio, nieve) 
escalador, miguel
 escalador(Quien)

También podría gustarte