SOLUCIÓN DEL EXAMEN (1.0 punto) 1. Usando tablas de verdad

Anuncio
SOLUCIÓN DEL EXAMEN
(1.0 punto)
1. Usando tablas de verdad demuestre que: (p q) r↔p (q r)
P
0
0
0
0
1
1
1
1
q
0
0
1
1
0
0
1
1
r
0
1
0
1
0
1
0
1
p
q
0
0
0
0
0
0
1
1
(p
q)
0
0
0
0
0
0
0
1
r
q
r
p
0
0
0
1
0
0
0
1
(q
0
0
0
0
0
0
0
1
r)
(p
q)
r↔p
1
1
1
1
1
1
1
1
(q
r)
(1.0 punto)
2. Exprese de la mejor forma posible los siguientes enunciados al español de
forma natural:
a) ∀x ¬LeGustan(x, espinacas)
b) ∃¬x LeGustan (x, espinacas)
c) ∀x LeGusta(x, helado)
d) ∃¬x ¬LeGusta (x, helado)
a) ∀x ¬LeGustan(x, espinacas)
“A todos les desagradan las espinacas”
b) ∃¬x LeGustan (x, espinacas)
“No hay alguien a quien le gusten las espinacas”
c) ∀x LeGusta(x, helado)
“A todos les gusta el helado”
d) ∃¬x ¬LeGusta (x, helado)
“No hay alguien a quien no le guste el helado”
(2.0 punto)
3. Convertir a forma clausal la siguiente formula:
x [(R(x) v C(x, a))
[O(x, b) v ( y ( z O(y, z) ÆL(x, y)))]]
Paso 1: Eliminación de los símbolos de implicación:
x [(R(x) v C(x, a))
[O(x, b) v ( y (¬ z O(y, z) v L(x, y)))]]
Paso 2: Reducir el ámbito de las negaciones:
x [(R(x) v C(x, a))
[O(x, b) v ( y ( z ¬O(y, z) v L(x, y)))]]
Paso 3: No es necesario normalizar.
Paso 4: Movemos los cuantificadores a la izquierda:
x y
z [(R(x) v C(x, a))
(O(x, b) v (¬O(y, z) v L(x, y)))]
Paso 5: Se eliminan los cuantificadores existenciales:
x
z [(R(x) v C(x, a))
(O(x, b) v (¬O(s(x), z) v L(x, s(x))))]
Paso 6: Se eliminan todos los cuantificadores:
[(R(x) v C(x, a))
(O(x, b) v (¬O(s(x), z) v L(x, s(x))))]
Paso 7: Separar una cláusula por cada conjunción:
(R(x) v C(x, a)),
(O(x, b) v (¬O(s(x), z) v L(x, s(x))))
(2.0 puntos)
4. Realice la unificación de los siguientes términos:
E = p(a, X, h( g(Z) ) ) y F = p(Z, h(Y), h(Y) )
Interacción 1: Para k = 0
E0 = p(a, X, h( g(Z) ) ), F0 = p(Z, h(Y), h(Y) ) y Sigma0 = { }
Paso 1: E0 != F0 ? Si, ir al paso 2.
Paso 2: D0 = {Z, a} ir al paso 3.
Paso 3: Variable y término? Si, vamos al paso 4.
Paso 4: No hay occur check. Vamos la paso 5.
Paso 5: Sea
Sigma1 = { Z / a }
E1 = p(a, X, h( g(a) ) )
F1 = p(a, h(Y), h(Y) )
Ir al paso 1.
Interacción 2: Para k = 1
Paso 1: E1 != F1 ? Si, ir al paso 2.
Paso 2: D1 = {X, h(Y)} ir al paso 3.
Paso 3: Variable y término? Si, vamos al paso 4.
Paso 4: No hay occur check. Vamos la paso 5.
Paso 5: Sea
Sigma2 = { X / h(Y) }
E2 = p(a, h(Y), h( g(a) ) )
F2 = p(a, h(Y), h(Y) )
Ir al paso 1.
Interacción 3: Para k = 2
Paso 1: E2 != F2 ? Si, ir al paso 2.
Paso 2: D2 = {Y, g(a)} ir al paso 3.
Paso 3: Variable y término? Si, vamos al paso 4.
Paso 4: No hay occur check. Vamos la paso 5.
Paso 5: Sea
Sigma3 = { Y / g(a) }
E3 = p(a, h( g(a) ), h( g(a) ) )
F3 = p(a, h( g(a) ), h( g(a) ) )
Ir al paso 1.
Interacción 4: Para k = 3
Paso 1: E2 != F2 ? No, entonces Unifican. El algoritmo para aquí con la
sustitución completa:
Sigma = { Y / g(a), X / h( Y ), Z / a }
Sigma = { Y / g(a), X / h( g(a) ), Z / a }
(2.0 puntos)
5. A partir de la base de conocimientos siguiente, aplicar Resolución para
demostrar que la hipótesis V(Z) es cierta:
1.
2.
3.
4.
5.
P(X) v Q(c,X) v –S(Y,X)
P(a) v –R(Z) v S(b,a)
-Q(Z,a) v V(a)
R(X) v V(Y)
-P(Y) v Q(X,Y)
1.
2.
3.
4.
5.
6.
P(X) v Q(c,X) v -S(Y,X)
P(a) v -R(Z) v S(b,a)
-Q(Z,a) v V(a)
R(X) v V(Y)
-P(Y) v Q(X,Y)
-V(Z)
Tomamos 1 y 2 con la sustitución: s={Y/b,X/a}
P(a) v Q(c,a) v -S(b,a)
P(a) v -R(Z) v S(b,a)
P(a) v Q(c,a) v -R(Z)
1.
2.
3.
4.
5.
6.
P(X) v Q(c,X) v -S(Y,X)
P(a) v -R(Z) v S(b,a)
-Q(Z,a) v V(a)
R(X) v V(Y)
-P(Y) v Q(X,Y)
-V(Z)
7. P(a) v Q(c,a) v -R(Z)
Tomamos 5 y 7 con la sustitución: s={Y/a}
-P(a) v Q(X,a)
P(a) v Q(c,a) v -R(Z)
Q(X,a) v Q(c,a) v -R(Z)
1.
2.
3.
4.
5.
6.
7.
8.
P(X) v Q(c,X) v -S(Y,X)
P(a) v -R(Z) v S(b,a)
-Q(Z,a) v V(a)
R(X) v V(Y)
-P(Y) v Q(X,Y)
-V(Z)
P(a) v Q(c,a) v -R(Z)
Q(X,a) v Q(c,a) v -R(Z)
Tomamos 8 con la sustitución: s={X/c}
Q(c,a) v Q(c,a) v -R(Z)
Q(c,a) v -R(Z)
1.
2.
3.
4.
5.
6.
7.
8.
9.
P(X) v Q(c,X) v -S(Y,X)
P(a) v -R(Z) v S(b,a)
-Q(Z,a) v V(a)
R(X) v V(Y)
-P(Y) v Q(X,Y)
-V(Z)
P(a) v Q(c,a) v -R(Z)
Q(X,a) v Q(c,a) v -R(Z)
Q(c,a) v -R(Z)
Tomamos 3 y 9 con la sustitución: s={Z/c}
-Q(c,a) v V(a)
Q(c,a) v -R(c)
V(a) v -R(c)
1. P(X) v Q(c,X) v -S(Y,X)
2. P(a) v -R(Z) v S(b,a)
3. -Q(Z,a) v V(a)
4. R(X) v V(Y)
5. -P(Y) v Q(X,Y)
6. -V(Z)
7. P(a) v Q(c,a) v -R(Z)
8. Q(X,a) v Q(c,a) v -R(Z)
9. Q(c,a) v -R(Z)
10. V(a) v -R(c)
Tomamos 4 y 10 con la sustitución: s={X/c}
R(c) v V(Y)
V(a) v -R(c)
V(a) v V(Y)
1. P(X) v Q(c,X) v -S(Y,X)
2. P(a) v -R(Z) v S(b,a)
3. -Q(Z,a) v V(a)
4. R(X) v V(Y)
5. -P(Y) v Q(X,Y)
6. -V(Z)
7. P(a) v Q(c,a) v -R(Z)
8. Q(X,a) v Q(c,a) v -R(Z)
9. Q(c,a) v -R(Z)
10. V(a) v -R(c)
11. V(a) v V(Y)
Tomamos 11 con la sustitución: s={Y/a}
V(a) v V(a)
V(a)
1. P(X) v Q(c,X) v -S(Y,X)
2. P(a) v -R(Z) v S(b,a)
3. -Q(Z,a) v V(a)
4. R(X) v V(Y)
5. -P(Y) v Q(X,Y)
6. -V(Z)
7. P(a) v Q(c,a) v -R(Z)
8. Q(X,a) v Q(c,a) v -R(Z)
9. Q(c,a) v -R(Z)
10. V(a) v -R(c)
11. V(a) v V(Y)
12. V(a)
Tomamos 6 y 12 con la sustitución: s={Z/a}
-V(a)
V(a)
{}
1.
2.
3.
4.
5.
6.
7.
8.
P(X) v Q(c,X) v -S(Y,X)
P(a) v -R(Z) v S(b,a)
-Q(Z,a) v V(a)
R(X) v V(Y)
-P(Y) v Q(X,Y)
-V(Z)
P(a) v Q(c,a) v -R(Z)
Q(X,a) v Q(c,a) v -R(Z)
9. Q(c,a) v -R(Z)
10. V(a) v -R(c)
11. V(a) v -V(Y)
12. V(a)
13. { }
(2.0 puntos)
6. Realizar un programa en Prolog que determine si un conjunto es subconjunto.
miembro( X, [X | _] ).
miembro( X, [ _ | R ] ):- miembro( X, R ).
subconjunto([],L).
subconjunto( [A | L1], L2 ):- miembro( A, L2 ), subconjunto( L1, L2 ).
Descargar