Sunteți pe pagina 1din 6

Paradigmas de Lenguajes de Programaci´on 2 do Cuatrimestre de 2010

Pr´actica N o 3 - Resoluci´on en L´ogica

En esta gu´ıa, salvo que se haga referencia a SLD, la palabra resoluci´on denota el m´etodo de resoluci´on general.

Ejercicio 1

Resolucion´

en Logica´

Proposicional

Convertir a Forma Normal Conjuntiva las siguientes f´ormulas proposicionales:

i. p p

ii. (p q) p

iii. ¬(p q) (¬p ∨ ¬q)

iv.

v.

vi. (p q) (p r)

(p (¬p q)) (p q) (p q) p

Ejercicio 2

i. Determinar si las f´ormulas del ejercicio anterior son tautolog´ıas utilizando el m´etodo de resoluci´on para la l´ogica proposicional.

ii. ¿Se deduce (p q) de (¬p q) (p q) (¬p → ¬q)? Contestar utilizando el m´etodo de resoluci´on para la l´ogica proposicional.

Ejercicio 3

Considerando las proposiciones “mundo”, “finito”, “limitado”, “chico”, “con miedo”, “arruga”, “humano” y “pa˜nuelo”, expresar adecuadamente en l´ogica proposicional, y luego en forma normal conjuntiva, lo siguiente:

i. El mundo es finito e ilimitado, o limitado.

ii. Lo finito, es chico.

iii. Lo limitado, es chico.

iv. El mundo anda con miedo.

v. Quien anda con miedo, arruga.

vi. El que arruga es humano o un pa˜nuelo.

vii. El mundo es inhumano.

Aplicando resoluci´on, concluir que:

i. el mundo es chico

ii. el mundo es un pa˜nuelo

P´agina 1 de 6

Paradigmas de Lenguajes de Programaci´on 2 do Cuatrimestre de 2010

Ejercicio 4

Resolucion´

en Logica´

de Primer Orden

Convertir a Forma Normal Negada (NNF) las siguientes f´ormulas de primer orden:

i. x.y.(¬Q(x, y) → ¬P (x, y))

ii. x.y.((P (x, y) Q(x, y)) R(x, y))

iii. x.y.(P (x, y) Q(x, y))

Ejercicio 5

Convertir a Forma Normal de Skolem y luego a Forma Clausal las siguientes f´ormulas de primer orden:

i. x.y.x < y

ii. x.y.x < y

iii. x.(¬P (x) ∨ ∃y.(P (y) Q(y)))

iv. x.y.(P (x, y) Q(x) ∧ ¬R(y))

v. x.(P (x) ∧ ∃y.(Q(y) ∨ ∀z.w.(P (z) ∧ ¬Q(w))))

Ejercicio 6

Escribir en l´ogica de primer orden y luego convertir a Forma Clausal los siguientes enunciados expresados en lenguaje natural:

i. Todo conjunto no vac´ıo de n´umeros naturales tiene un elemento m´ınimo.

Utilizar los siguientes predicados: N (x) para expresar que x es un n´umero natural, C(x) para x es conjunto, x y para x pertenece a y y x y para x menor o igual a y.

ii. Un drag´on es feliz si todas sus cr´ıas pueden volar. Los dragones verdes pueden volar. Un drag´on es verde si al menos uno de sus progenitores es verde, y es rosa en cualquier otro caso.

Utilizar los siguientes predicados: D(x) para expresar que x es un drag´on, P (x, y) para x es el progenitor de y, F (x) para x es feliz, V (x) para indicar que x puede volar, V E(x) para x es verde y R(x) para x es rosa.

Ejercicio 7

La computadora de la polic´ıa registr´o que el Sr. Smullyan no pag´o una multa. Cuando el Sr. Smullyan pag´o la multa, la computadora grab´o este hecho pero, como el programa ten´ıa errores, no borr´o el hecho que expresaba que no hab´ıa pagado la multa. A partir de la informaci´on almacenada en la computadora, mostrar utilizando resoluci´on que el jefe de gobierno es un esp´ıa.

Utilizar los siguientes predicados y constantes: P ag´o(x) para expresar que x pag´o su multa, Esp´ıa(x) para x es un esp´ıa, smullyan para el Sr. Smullyan y jefeGob para el jefe de gobierno.

P´agina 2 de 6

Paradigmas de Lenguajes de Programaci´on 2 do Cuatrimestre de 2010

Ejercicio 8

Determinar, para cada uno de los siguientes pares de t´erminos de primer orden, si son unificables o no. En cada caso justificar su respuesta exhibiendo una secuencia exitosa o fallida (seg´un el caso) del algoritmo de Martelli- Montanari. Asimismo, en caso de que los t´erminos sean unificables indicar el mgu (“most general unifier”). Notaci´on: x, y, z variables; a, b, c constantes; f, g s´ımbolos de funci´on.

i. f (x, x, y) y f (a, b, z)

ii. f(x) y y

iii. f (g(c, y), x)) y f (z, g(z, a))

iv.

f (a) y g(y)

v. f(x) y x

vi.

g(x, y) y g(f (y), f (x))

Ejercicio 9

Ejemplos para unificaci´on y resoluci´on.

i. La relaci´on entre t´erminos unifica con, ¿es reflexiva? ¿Es sim´etrica? ¿Es transitiva?

ii. ¿Existe alg´un t´ermino t tal que todo t´ermino s unifique con ´el?

iii. ¿C´omo aplicar´ıa el algoritmo de unificaci´on al problema de determinar si, dado un conjunto finito de t´erminos, existe un unificador com´un a todos?

iv. Mostrar una cl´ausula que arroje un resolvente entre ella y ella misma.

v. Mostrar dos cl´ausulas, cada una con no m´as de dos predicados, que arrojen tres o m´as resolventes distintos entre ambas.

Ejercicio 10

Determinar si las siguientes f´ormulas son l´ogicamente v´alidas usando resoluci´on.

i. xyR(x, y) → ∀yxR(x, y)

ii. xyR(x, y) → ∃yxR(x, y)

iii. x[P (x) → ∀xP (x)]

iv. x[P (x) Q(x)] [xP (x) ∨ ∃xQ(x)]

v. xy[P (x) P (y)] [xP (x) ∧ ∃xQ(x)]

vi. [xP (x) ∧ ∀xQ(x)] → ∃x[P (x) Q(x)]

vii. xyzw[P (x, y) ∨ ¬P (w, z)]

viii. xyz((¬P (f (c)) ∨ ¬P (y) Q(y)) P (f (z)) (¬P (f (f (x))) ∨ ¬Q(f (x))))

Ejercicio 11 (Aplicaciones del m´etodo de resoluci´on)

i. Expresar en forma clausal la regla del modus ponens y mostrar que es v´alida, usando resoluci´on.

ii. Lo mismo para la regla del modus tollens.

iii. Lo mismo para la regla de especializaci´on: de xP (x) concluir P (t) cualquiera sea el t´ermino t.

P´agina 3 de 6

Paradigmas de Lenguajes de Programaci´on 2 do Cuatrimestre de 2010

Ejercicio 12

Cualquiera que sepa leer no es analfabeto. Los delfines son analfabetos. Algunos delfines son inteligentes. De- mostrar utilizando resoluci´on que hay quienes son inteligentes pero analfabetos.

Utilizar los siguientes predicados: L(x) para expresar que x sabe leer, A(x) para x es analfabeto, D(x) para x es delf´ın e I(x) para x es inteligente.

Ejercicio 13

Dadas las siguientes cl´ausulas:

{P ( x ) , ¬ P ( x ) , Q ( a ) P(x), ¬P(x), Q(a)}

{P ( x ) , ¬ Q ( y ) , ¬ R ( x, P (x), ¬Q(y), ¬R(x, y)}

P ( x, x, z ) , ¬ Q ( x, y ) , ¬ P (x, x, z), ¬Q(x, y), ¬Q(y, z)}

{M (1 , 2 , x ) } M (1, 2, x)}

i. ¿Cu´ales son cl´ausulas de Horn?

ii. Indicar qu´e cl´ausulas de Horn son hechos y qu´e cl´ausulas de Horn son goals.

iii. Dar, para cada cl´ausula, la f´ormula de primer orden que le corresponde.

Ejercicio 14

Dadas las siguientes f´ormulas en l´ogica de primer orden:

x. ( S ( x ) → ∃ y. ( T ( y ) ∧ x.(S(x) → ∃y.(T (y) E(x, y)))

x. ( W ( x ) → S ( x )) x.(W (x) S(x))

W( a ) ∧ D ( a ) (a) D(a)

z. ( T ( z ) ∧ ∃ y. ( D ( y ) ∧ z.(T (z) ∧ ∃y.(D(y) E(y, z) M (z)))

Determinar si la siguiente f´ormula es consecuencia del conjunto anterior utilizando resoluci´on SLD:

Ejercicio 15

z.(T (z) M (z))

Cualquier robot que puede resolver un problema l´ogico es inteligente. Todos los robots japoneses pueden resolver todos los problemas l´ogicos. Existe al menos un problema l´ogico. Alan es un robot japon´es. ¿Qui´en es inteligente? Encontrarlo utilizando resoluci´on SLD.

Utilizar los siguientes predicados y constantes: R(x) para expresar que x es un robot, Res(x, y) para x puede resolver y, P L(x) para x es un problema l´ogico, I(x) para x es inteligente, J(x) para x es japon´es y la constante alan para Alan.

Ejercicio 16

Sean las siguientes cl´ausulas (en forma clausal), donde suma y par son predicados, suc es una funci´on y cero una constante:

1. suma(x, y, z), suma(x, suc(y), suc(z))}

2. {suma(x, cero, x)}

3. suma(x, x, y), par(y)}

Demostrar utilizando resoluci´on que suponiendo (1), (2), (3) se puede probar par(suc(suc(cero))). Si es posible, aplicar resoluci´on SLD, y sino utilizar resoluci´on general. Mostrar en cada aplicaci´on de la regla de resoluci´on la sustituci´on utilizada.

P´agina 4 de 6

Paradigmas de Lenguajes de Programaci´on 2 do Cuatrimestre de 2010

Ejercicio 17

i. Pasar las siguientes f´ormulas en l´ogica de primer orden a forma clausal.

a) c(V (c) ∨ ∃e(P (e, c)))

b) ¬∃c(V (c) ∧ ∃e(P (e, c)))

c) ec(P (e, I(c)) P (e, c))

ii. A partir de las cl´ausulas definidas en el punto anterior, ¿puede demostrarse c(V (I(c)) V (c)) usando resoluci´on SLD? Si se puede, hacerlo. Si no, demostrarlo usando el m´etodo de resoluci´on general.

Ejercicio 18

Dadas las siguientes afirmaciones:

Toda persona tiene un contacto en Facebook:general. Ejercicio 18 Dadas las siguientes afirmaciones: ∀ x ∃ y esContacto ( x, y )

x y esContacto(x, y)

1. {esContacto(x, f(x))}

Si una persona es contacto de otra, la otra es contacto de la una:∃ y esContacto ( x, y ) 1. { esContacto ( x, f ( x ))

x y (esContacto(x, y) esContacto(y, x))

2. esContacto(x, y), esContacto(y, x)}

i. La siguiente es una demostraci´on de que toda persona es contacto de s´ı misma, es decir, de que

x esContacto(x, x)

Negando la conclusi´on:de s´ı misma, es decir, de que ∀ x esContacto ( x, x ) ¬∀ x

¬∀x esContacto(x, x)

Forma normal negada:x, x ) Negando la conclusi´on: ¬∀ x esContacto ( x, x ) ∃ x ¬

x ¬esContacto(x, x)

Skolemizando y en forma clausal:( x, x ) Forma normal negada: ∃ x ¬ esContacto ( x, x ) 3.

3. esContacto(c, c)}

De 1 y 3, con σ = { x ← c , f ( x ) ← c } : σ = {x c, f(x) c}:

¿Es correcta? Si no lo es, indicar el o los errores.

ii. La siguiente es una demostraci´on de que toda persona es contacto de alguien, es decir, de que

Negando la conclusi´on:de que toda persona es contacto de alguien, es decir, de que ¬∀ y ∃ x

¬∀y x esContacto(x, y)

Forma normal negada:Negando la conclusi´on: ¬∀ y ∃ x esContacto ( x, y ) ∃ y ∀ x

y x ¬esContacto(x, y)

y x esContacto(x, y)

Skolemizando y en forma clausal:x ¬ esContacto ( x, y ) ∀ y ∃ x esContacto ( x, y )

3. esContacto(x, d)}

De 2 y 3, con σ = { x ← d , y ← d } : σ = {x d, y d}:

4. esContacto(d, d)}

De 1 y 4, con σ = { d ← x, d ← f ( x ) } : σ = {d x, d f(x)}:

¿Es correcta? Si no lo es, indicar el o los errores.

iii. ¿Puede deducirse de las dos premisas que toda persona es contacto de alguien? En caso afirmativo dar una demostraci´on (puede usarse la del ´ıtem anterior), y en caso contrario explicar por qu´e.

P´agina 5 de 6

Paradigmas de Lenguajes de Programaci´on 2 do Cuatrimestre de 2010

Ejercicio 19

Dadas las siguientes definiciones de Descendiente y Abuelo a partir de la relaci´on Progenitor:

x y (Progenitor(x, y) Descendiente(y, x)) x y z (Descendiente(x, y) Descendiente(y, z) Descendiente(x, z)) x y (Abuelo(x, y) ⇒ ∃z (Progenitor(x, z) Progenitor(z, y)))

demostrar usando resoluci´on general que los nietos son descendientes; es decir, que

x y (Abuelo(x, y) Descendiente(y, x))

Ayuda: tratar de aplicar el m´etodo a ciegas puede traer problemas. Conviene tener en mente lo que se quiere demostrar.

Ejercicio 20

Usaremos los predicados hijo, hermano, cu˜nado y pareja para describir relaciones familiares con su significado habitual. Tomaremos las siguientes premisas:

Son hermanos quienes son hijos de una misma persona. ∀ x ∀ y ∀ p ( hijo ( p, x ) ∧ hijo ( x y p (hijo(p, x) hijo(p, y) hermano(x, y))

5. hijo(p, x), ¬hijo(p, y), hermano(x, y)}

El hermano de una pareja es cu˜nado.{¬ hijo ( p, x ) , ¬ hijo ( p, y ) , hermano (

x y z (pareja(x, y) hermano(y, z) cu˜nado(x, z))

6. pareja(x, y), ¬hermano(y, z), cu˜nado(x, z)}

Tambi´en la pareja del hermano es cu˜nado.( x, y ) , ¬ hermano ( y, z ) , cu˜nado ( x, z

x y z (hermano(x, y) pareja(y, z) cu˜nado(x, z))

7. hermano(x, y), ¬pareja(y, z), cu˜nado(x, z)}

8. {hijo(Diego, Dalma)}

9. {hijo(Claudia, Dalma)}

10.

{hijo(Diego, Giannina)}

11. {hijo(Claudia, Giannina)}

12.

{pareja(ElKun, Giannina)}

Usaremos tambi´en las siguientes afirmaciones acerca del tama˜no de las personas:

13. { unGrande ( Diego ) }

13. {unGrande(Diego)}

14. { unGrande ( ElKun ) }

14. {unGrande(ElKun)}

He aqu´ı una demostraci´on de que existe el gran cu˜nado, es decir, w x (unGrande(w) cu˜nado(w, x)):

Negando la conclusi´on:∃ w ∃ x ( unGrande ( w ) ∧ cu˜nado ( w, x )): ¬∃

¬∃w x (unGrande(w) cu˜nado(w, x))

Forma normal negada:¬∃ w ∃ x ( unGrande ( w ) ∧ cu˜nado ( w, x )) ∀

w x (¬unGrande(w) ∨ ¬cu˜nado(w, x))

Forma clausal:∀ w ∀ x ( ¬ unGrande ( w ) ∨ ¬ cu˜nado ( w, x

15. unGrande(w), ¬cu˜nado(w, x)}

De 1. y 5. con σ = { p ← Claudia , y ← Dalma } : σ = {p Claudia, y Dalma}:

16. hijo(Claudia, x), hermano(x, Dalma)}

De 12. y 7. con σ = { x ← Giannina } : σ = {x Giannina}:

17. {hermano(Giannina, Dalma)}

De 2. y 13. con σ = { y ← Giannina , z ← Dalma } : σ = {y Giannina, z Dalma}:

18. pareja(x 14 , Giannina), cu˜nado(x 14 , Dalma)}

De 11. y 14. con σ = { x 1 4 ← w, x ← Dalma } : σ = {x 14 w, x Dalma}:

19. pareja(w, Giannina), ¬unGrande(w)}

De 15. y 10. con σ = { w ← ElKun } : σ = {w ElKun}:

20. pareja(ElKun, Giannina)}

De 16. y 8. con σ = {} : σ = {}:

i. ¿Es correcta la demostraci´on anterior? Si no lo es, indicar el o los errores.

ii. La demostraci´on anterior, ¿es SLD? ¿Por qu´e o por qu´e no?

iii. Si es posible, dar una demostraci´on SLD de que existe el gran cu˜nado (puede usarse la del enunciado). Si no es posible, explicar por qu´e.

P´agina 6 de 6