You are on page 1of 4

INTELIGENCIA ARTIFICIAL (IS-153) Lógica de Primer Orden

  • A. Representar el siguiente fragmento de conocimiento usando lógica de predicados y transformarlo a forma normal conjuntiva (FNC), es decir, su forma clausal.

    • 1. Asterix es un galo.

    • 2. Los romanos que son amigos de algún galo odian a César.

    • 3. Axterix ayudó a Marco.

    • 4. Marco es amigo de quien le ayuda.

    • 5. Marco es un romano.

      • B. Usando refutación mediante resolución comprueba si con ese conocimiento es posible demostrar que Marco odia a César.

A: Solución

(1)

galo(Asterix)

(2)

(x) { [romano(x) [(y) (amigo(x, y) galo(y)) ] ] odia(x, Cesar) }

Interpretación: se usa el cuantificador universal para referirse a todas las personas y en la premisa de la implicación ya se usa romano(x) para referirse a todos los romanos.

Para representar son amigos de algún galo… se usa el cuantificador existencial y la conjunción de los predicados amigo(x,y) y galo(y). Para representar …odian a César se usa el predicado odia(x, Cesar).

(3)

ayuda(Asterix, Marco)

(4)

(x) { ayuda(x, Marco) amigo(Marco, x) }

Dado que se sabe que Marco es amigo de quien recibe ayuda, se usa una implicación y los predicados ayuda(x,Marco) y amigo(Marco,x) para representar esa idea. Para representar de …de quien le ayuda… se usa el cuantificador universal (x).

(5)

romano(Marco)

B: Solución

La solución de esta parte del ejercicio consta de varios pasos, los cuales son presentados enseguida:

Pasando la sentencia 2) a la forma clausal:

Partimos de la sentencia:

(x) { [romano(x) [ (y) ( amigo(x,y) galo(y) ) ] ] odia(x,Cesar) } Como paso inicial movemos los cuantificadores al inicio:

(x) (y) { [romano(x) [ (amigo(x,y) galo(y) ) ] ] odia(x,Cesar) } Aplicamos la ley de eliminación de la implicación obteniéndose:

(x) (y) { ¬ [ romano(x) [ (amigo(x,y) galo(y) ) ] ] odia(x,Cesar) } Ahora usamos la ley de DeMorgan ¬(a b) = ¬a ¬b , obteniéndose:

(x) (y) { ¬ romano(x) ¬ [ (amigo(x,y) galo(y) ) ] odia(x,Cesar) } Ahora al usar otra vez la ley de DeMorgan en la segunda cláusula se obtiene:

(x) (y) { ¬ romano(x) ¬ amigo(x,y) ¬ galo(y) odia(x,Cesar) } Eliminamos ahora los cuantificadores existenciales mediante Skolemización:

(x) { ¬ romano(x) ¬ amigo(x,f(x)) ¬ galo(f(x)) odia(x,Cesar) } Aplicando enseguida la regla de inferencia Eliminación-universal a la sentencia resultante (eliminamos así los cuantificadores universales) obtenemos:

¬ romano(x) ¬ amigo(x,f(x)) ¬ galo(f(x)) odia(x,Cesar)

Pasando la sentencia 4) a la forma clausal:

Partimos de la sentencia:

(x) { ayuda(x,Marco) amigo(Marco,x)}

Como paso inicial deberíamos mover los cuantificadores al inicio, sin embargo no será necesario porque desde la representación ya estaba en el inicio. Aplicamos la ley de eliminación de la implicación obteniéndose:

(x) { ¬ ayuda(x,Marco) amigo(Marco,x) }

No será necesario usar la ley de DeMorgan ¬(a b) = ¬a ¬b , porque ya está en forma clausal.

No se requiere obviamente efectuar el paso de eliminar el cuantificador existencial porque no hay dicho cuantificador en la cláusula.

Aplicando enseguida la regla de inferencia Eliminación-universal a la sentencia resultante (eliminamos así los cuantificadores universales) obtenemos:

¬ ayuda(x,Marco) amigo(Marco,x)

Negando la sentencia a comprobar

Sabemos que lo que se debe comprobar es: Marco odia a César Se puede representar como:

odia(Marco,César)

Ahora la negamos:

¬ odia(Marco,César)

y la agregamos a la BC

Base de conocimientos en forma clausal

(1)

galo(Asterix)

(2)

¬ romano(x) ¬ (amigo(x,f(x)) ¬ galo(f(x)) odia(x,Cesar)

(3)

ayuda(Asterix,Marco)

(4)

¬ ayuda(x,Marco) amigo(Marco,x)

(5)

romano(Marco)

(6)

¬ odia(Marco,Cesar)

Renombramos las variables:

(1)

galo(Asterix)

(2)

¬ romano(x1) ¬ (amigo(x1, f(x1)) ¬ galo(f(x1)) odia(x1, Cesar)

(3)

ayuda(Asterix,Marco)

(4)

¬ ayuda(x2,Marco) amigo(Marco,x2)

(5)

romano(Marco)

(6)

¬ odia(Marco,César)

Buscamos ahora una contradicción a partir de la BC en forma clausal con las variables renombradas:

Refutación por resolución

Buscamos ahora una contradicción a partir de la BC en forma clausal con las variables renombradas: