Está en la página 1de 3

Regla de resolución

- Sustitución: Una sustitución S es un conjunto finito de la forma:

S={t1/X1, t2/X2, …, tn/Xn}

ti: termino (Constante o variable)


Xi: Variable.

Ejemplo: a. sea la expresión e=computador (X), sea la sustitución S=(ibm/X). Al aplicar la


sustitución S a la expresión e. La misma queda asi: eS=computador (ibm).

b. sea la expresión e=acceso (X, dell) donde X es variable y dell es constante. Sea la sustitución
S=(juan/X). Al aplicar la sustitución S a la expresión e. La misma queda así: eS=acceso (juan, dell).

Ojo se puede sustituir variable por variable y variable por constante. No se pueden sustituir
constantes.

- Unificador: Una sustitución S es un unificador de las expresiones e1 y e2 si la aplicación de esta


sustitución en ambas expresiones resulta en una misma expresión. Es decir e1S=e2S.

Ejemplo: a. Sea e1=computador (X) y e2=computador (ibm). Sea la sustitución S={ibm/X}. Al


aplicar S a e1 y e2, resulta e1S=e2S=computador (ibm). S es unificador.

b. Sea e1=P(X,a) y e2=P(Y;W). X,Y,W constantes, a es constante. Sea la sustitución


S={b/X,b/Y,a/W}. Al aplicar S a e1 y e2, resulta e1S=e2S= P(b,a). S es unificador. Otra sustitución
puede ser S1={Y/X, a/W} Al aplicar S1 a e1 y e2 resulta e1S1=e2S1= P(Y,a).

- Unificador más general: Un unificador S de dos expresiones e1 y e2 es el más general si para


cualquier otro unificador S’ se tiene que eS’ es una instancia de eS para todas las expresiones e.

Ejemplo: En la parte b del ejemplo anterior S1 es el unificador mas general. Ya quye es el que mas
generaliza la expresión e. El unificador S no es más general. En la parte a del ejemplo anterior
S={ibm/X} es el más general ya que es el único unificador que tiene.

Resolución: Para aplicar resolución al conjunto de cláusulas se deben seguir los dos siguientes
pasos:

Paso 1: Se toman dos generatrices G1 y G2, es decir, dos cláusulas que deben tener por lo menos un
predicado común que se pueda unificar con la condición que este predicado común en una de las
dos generatrices aparezca negado y en la otra sin negar.

Paso 2: se halla el unificador más general Θ al predicado común y se halla una resolvente así:
R=[G1-P1]Θ ∪ [G2-P2] Θ. P1 y P2 es el predicado común, uno negado y otro sin negar. En la
práctica lo que se hace es quitar ese predicado común a ambas generatrices. Esta resolvente es otra
cláusula que puede tomarse como generatriz.
Ejemplo:

Clausulas:

C1: Todos los informáticos saben programar


C2: Los psicólogos no saben programar
C3: Algunos psicólogos no saben leer programas.

Lógica de predicados.

C1: (∀ X )(inf ( X )→ sabep( X ))


C2: (∀ Y )( psi(Y )→¬sabep(Y ))
C3: (∃Z )( psi(Z )∧leep(Z ))

Forma clausulada

C1: (∀ X )(¬inf( X )∨sabep( X ))


C2: (∀ Y )(¬ psi(Y )∨¬sabep(Y ))
C31: psi (a)
C32: leep(a)

Resolución:

G1=C2
G2=C31
Θ={a/Y}
R1= ¬sabep(a)

G1=C1
G2=R1
Θ={a/X}
R2= ¬inf( a)

G1=C1
G2=C2
Θ={X/Y}
R3= ¬inf( X )∨¬ psi( X )

R1, R2 y R3 son todas las posibles conclusiones que se pueden obtener del conjunto de cláusulas.

Ejemplo 2

clausulas

C1: Los seres vivos tienen ciclo de vida


C2: Los animales son seres vivos
C3: Fido es un animal y es mamífero.

Lógica de predicados.

C1: ( ∀ X )( ser vivo ( X )→ ciclo vida ( X ))


C2: (∀ Y )(animal( Y )→ser vivo ( Y ))
C3: (animal(fido )∧mamifero( fido))

Forma clausulada

C1: ( ∀ X )( ¬ser vivo ( X )∨ciclo vida ( X ))


C2: (∀ Y )(¬animal(Y )∨ser vivo (Y ))
C31: animal (fido)
C32: mamifero(fido)

Resolución:

G1=C2
G2=C31
Θ={fido/Y}
R1= ser vivo ( fido)

G1=C1
G2=R1
Θ={fido/X}
R2= ciclo vida ( fido )

G1=C1
G2=C2
Θ={X/Y}
R3= ciclo vida ( X )∨¬animal ( X )

R1, R2 y R3 son todas las posibles conclusiones que se pueden obtener del conjunto de cláusulas.

Como practica: Formalizar en lógica de predicados, obtener la forma clausulada y aplicar resolución
al siguiente conjunto de cláusulas:

C1: Los profesionales no son indecisos.


C2: Todos los buenos ingenieros son profesionales.
C3: Carlos es buen ingeniero.

También podría gustarte