Diferencia entre revisiones de «Relación 1»
De Lógica computacional y teoría de modelos (2019-20)
Línea 11: | Línea 11: | ||
% gemtermej | % gemtermej | ||
% La solución es tatata | % La solución es tatata | ||
+ | |||
+ | % jescammor1 | ||
+ | % S_1={q, -p} Si escogemos q entre (p, q, r) , tenemos que s no pertenece al conjunto y por la segunda regla debemos introducir -p. | ||
+ | % S_2={r, -p} Si escogemos r entre (p, q, r) , tenemos que s no pertenece al conjunto y por la segunda regla debemos introducir -p. | ||
+ | % S_3={p, ...} Escoger p nos lleva a contradicción con la segunda regla. Como S_1 y S_2 eran minimales, ya hemos estudiado todos los casos posibles. | ||
+ | % Consulta p: No, puesto que -p aparece en todos los conjuntos de respuesta (S_1, S_2). | ||
+ | % Consulta q: Desconodido, puesto que S_2 no lo contiene ni a el, ni a su complementario. | ||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||
Línea 24: | Línea 31: | ||
% Solución: | % Solución: | ||
+ | % jescammor1 | ||
+ | % A priori las reglas 1 y 2 no nos restrigen en p y q. | ||
+ | % Supongamos que tenemos p en nuestro conjunto de respuesta, entonces q no puede estar en el conjunto. Esto elimina la acción de la quinta regla. Por las reglas 3 y 4 volvemos a no estar restringidos entre elegir r o s. Así pues, obtenemos dos conjuntos S_1={p, s} y S_2={p, r}. | ||
+ | % Si en lugar de p escogemos q, la cosa cambia ligeramente. Por la quinta regla nos vemos obligados a introducir -s en el conjunto de respuesta. Esto hace que s no esté en dicho conjunto, para que sea consistente, por lo que la regla 3 nos obliga a introducir tambien a r. El conjunto quedaria como S_3={q, -s, r}. | ||
+ | |||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||
Línea 35: | Línea 47: | ||
% Solución: | % Solución: | ||
+ | % jescammor1 | ||
+ | % Si obligamos a que se cumple S visto como regla "p(c)." la regla 2 deja de ser útil. La primera regla nos indica que hemos de añadir p(a) a nuestro conjunto de respuesta y anularía a su vez la tercera regla. Puesto que este conjunto de respuesta {p(c), p(a)} contiene al conjunto S, S no puede ser conjunto de respuesta porque dejaria de ser minimal. | ||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||
Línea 50: | Línea 64: | ||
% Solución: | % Solución: | ||
+ | % jescammor1 | ||
+ | % -s(a) lo añadimos a todos los posibles conjuntos de respuesta. | ||
+ | % Si no añadimos q(a), aplica la regla 2 y nos vemos obligados a introducir p(a). | ||
+ | %% La regla 3 ya no influye, no así la 4, que nos añade r(a). | ||
+ | %% S_1={-s(a), p(a), r(a)}. | ||
+ | % Si pasamos directamente a la regla 3, podemos añadir q(a), que anula la regla 2. | ||
+ | %% La cuarta regla no aplica, puesto que seguimos sin saber nada de p(a). | ||
+ | %% La última regla si nos añadiría un r(a). | ||
+ | %% S_2={-s(a), q(a), r(a)} | ||
+ | % Esto sería sin contar que tenemos un segundo literal b. Este estudio lo podemos hacer reparado eliminando la primera regla. | ||
+ | %% La regla 2 no aplica para b porque no sabemos nada de -s(b). | ||
+ | %% La regla 3 si es útil, porque de momento no sabemos nada de b o en este caso p(b). Así que debemos añadir q(b) a todos nuestros conjuntos de respuesta. | ||
+ | %% Como vimos antes, si tenemos q(b) también tendremos r(b). | ||
+ | %% En conclusión los conjuntos de respuesta finales son S'_1={-s(a), p(a), r(a), q(b), r(b)} y S'_2={-s(a), q(a), r(a), q(b), r(b)}. | ||
+ | % Consulta s(a): No, porque aparece en ambos conjuntos negado | ||
+ | % Consulta r(a): Si, porque aparece en ambos conjuntos | ||
+ | % Consulta s(b): Desconocido, porque no aparece en ninguno | ||
+ | % Consulta q(b): Si, porque aparece en ambos | ||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
Revisión del 21:40 4 nov 2019
% Ejercicio 1. Calcular los conjuntos de respuesta del siguiente
% programa P y responder a las consultas siguientes: ¿p?, ¿q?
p, q, r.
¬p :- not s.
% Solución:
% gemtermej
% La solución es tatata
% jescammor1
% S_1={q, -p} Si escogemos q entre (p, q, r) , tenemos que s no pertenece al conjunto y por la segunda regla debemos introducir -p.
% S_2={r, -p} Si escogemos r entre (p, q, r) , tenemos que s no pertenece al conjunto y por la segunda regla debemos introducir -p.
% S_3={p, ...} Escoger p nos lleva a contradicción con la segunda regla. Como S_1 y S_2 eran minimales, ya hemos estudiado todos los casos posibles.
% Consulta p: No, puesto que -p aparece en todos los conjuntos de respuesta (S_1, S_2).
% Consulta q: Desconodido, puesto que S_2 no lo contiene ni a el, ni a su complementario.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Ejercicio 2: Calcular los conjuntos de respuesta del siguiente
% programa:
p :- not q.
q :- not p.
r :- not s.
s :- not r.
-s :- q.
% Solución:
% jescammor1
% A priori las reglas 1 y 2 no nos restrigen en p y q.
% Supongamos que tenemos p en nuestro conjunto de respuesta, entonces q no puede estar en el conjunto. Esto elimina la acción de la quinta regla. Por las reglas 3 y 4 volvemos a no estar restringidos entre elegir r o s. Así pues, obtenemos dos conjuntos S_1={p, s} y S_2={p, r}.
% Si en lugar de p escogemos q, la cosa cambia ligeramente. Por la quinta regla nos vemos obligados a introducir -s en el conjunto de respuesta. Esto hace que s no esté en dicho conjunto, para que sea consistente, por lo que la regla 3 nos obliga a introducir tambien a r. El conjunto quedaria como S_3={q, -s, r}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Ejercicio 3: Dado el programa /P/ y el conjunto S = {p(c)}, obtener el
% programa /P^S/ y decidir si S es un conjunto de respuesta de /P/.
p(a) :- not p(b).
p(b) :- not p(c).
p(c) :- not p(a).
% Solución:
% jescammor1
% Si obligamos a que se cumple S visto como regla "p(c)." la regla 2 deja de ser útil. La primera regla nos indica que hemos de añadir p(a) a nuestro conjunto de respuesta y anularía a su vez la tercera regla. Puesto que este conjunto de respuesta {p(c), p(a)} contiene al conjunto S, S no puede ser conjunto de respuesta porque dejaria de ser minimal.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Ejercicio 4: Calcular los conjuntos de respuesta del siguiente
% programa /P/ y responder a las consultas siguientes: ¿s(a)?, ¿r(a)?,
% ¿s(b)?, ¿q(b)?
-s(a).
p(X) :- not q(X), -s(X).
q(X) :- not p(X).
r(X) :- p(X).
r(X) :- q(X).
% Solución:
% jescammor1
% -s(a) lo añadimos a todos los posibles conjuntos de respuesta.
% Si no añadimos q(a), aplica la regla 2 y nos vemos obligados a introducir p(a).
%% La regla 3 ya no influye, no así la 4, que nos añade r(a).
%% S_1={-s(a), p(a), r(a)}.
% Si pasamos directamente a la regla 3, podemos añadir q(a), que anula la regla 2.
%% La cuarta regla no aplica, puesto que seguimos sin saber nada de p(a).
%% La última regla si nos añadiría un r(a).
%% S_2={-s(a), q(a), r(a)}
% Esto sería sin contar que tenemos un segundo literal b. Este estudio lo podemos hacer reparado eliminando la primera regla.
%% La regla 2 no aplica para b porque no sabemos nada de -s(b).
%% La regla 3 si es útil, porque de momento no sabemos nada de b o en este caso p(b). Así que debemos añadir q(b) a todos nuestros conjuntos de respuesta.
%% Como vimos antes, si tenemos q(b) también tendremos r(b).
%% En conclusión los conjuntos de respuesta finales son S'_1={-s(a), p(a), r(a), q(b), r(b)} y S'_2={-s(a), q(a), r(a), q(b), r(b)}.
% Consulta s(a): No, porque aparece en ambos conjuntos negado
% Consulta r(a): Si, porque aparece en ambos conjuntos
% Consulta s(b): Desconocido, porque no aparece en ninguno
% Consulta q(b): Si, porque aparece en ambos
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Ejercicio 5:Calcular los conjuntos de respuesta del siguiente
% programa /P/ y responder a las consultas siguientes: ¿q(a)?, ¿r(a)?,
% ¿q(b)?, ¿r(b)?
p(a), -p(b).
q(X) :- -p(X).
-q(X) :- not q(X).
r(X) :- not p(X).
% Solución:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Ejercicio 6: Calcular los conjuntos de respuesta del siguiente
% programa /P/ y responder a las consultas siguientes: ¿p(b)?,¿q(b)?, ¿r(b)?
p(X),q(X) :- not r(X).
-p(X) :- h(X), not r(X).
h(a).
h(b).
r(a).
% Solución
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Ejercicio 7: Consideremos la siguiente situación: "Si Juan no compra
% juguetes para sus hijos, los niños de Juan no recibirán juguetes por
% Reyes. Si los hijos de Juan no escriben sus cartas a los Reyes, Juan
% no les comprará juguetes. Los niños de Juan reciben juguetes por
% Reyes". Supongamos que la interpretación de esta historia implica que
% los hijos de Jim escribieron las cartas a los Reyes.
% + Modelizar esta historia como un programa ASP y calcular los
% conjuntos de respuesta, usando la disyunción para representar la ley
% del tercio excluso.
% + Modelizar esta historia en un programa ASP y calcular los conjuntos
% de respuesta esta vez haciendo explícito el contrapositivo para cada
% afirmación.
% Solución: