Acciones

Diferencia entre revisiones de «Relación 1»

De Lógica computacional y teoría de modelos (2019-20)

(Página creada con «=== Relación 1 === ---- '''Ejercicio 1.''' Calcular los conjuntos de respuesta del siguiente programa P y responder a las consultas siguientes: ¿p?, ¿q? p, q, r. ¬p :…»)
 
Línea 1: Línea 1:
 +
<source lang = "prolog">
 
=== Relación 1 ===
 
=== Relación 1 ===
  
Línea 4: Línea 5:
 
'''Ejercicio 1.''' Calcular los conjuntos de respuesta del siguiente
 
'''Ejercicio 1.''' Calcular los conjuntos de respuesta del siguiente
 
programa P y responder a las consultas siguientes: ¿p?, ¿q?  
 
programa P y responder a las consultas siguientes: ¿p?, ¿q?  
 +
 
p, q, r.
 
p, q, r.
 
¬p :- not s.
 
¬p :- not s.
Línea 127: Línea 129:
 
     de respuesta esta vez haciendo explícito el contrapositivo para cada
 
     de respuesta esta vez haciendo explícito el contrapositivo para cada
 
     afirmación.
 
     afirmación.
 +
 +
</source>

Revisión del 12:53 2 nov 2018

=== Relación 1 ===

----
'''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:''' 


----
'''Ejercicio 2.''' 
----

'''Solución:''' 



----
'''Ejercicio 3.''' 
----

'''Solución:''' 



----
'''Ejercicio 4.''' 
----

'''Solución:''' 



----
'''Ejercicio 5.''' 
----

'''Solución:''' 



----
'''Ejercicio 6.''' 
----

'''Solución:''' 



----
'''Ejercicio 7.''' 
----

'''Solución:''' 



+ *Ejercicio 2:* Calcular los conjuntos de respuesta del siguiente programa:
#+BEGIN_SRC 
p :- not q.
q :- not p.
r :- not s.
s :- not r.
-s :- q.
#+END_SRC

+ *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/.

#+BEGIN_SRC 
p(a) :- not p(b).
p(b) :- not p(c).
p(c) :- not p(a).
#+END_SRC

+ *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)?

#+BEGIN_SRC 
-s(a).
p(X) :- not q(X), -s(X).
q(X) :- not p(X).
r(X) :- p(X).
r(X) :- q(X).
#+END_SRC

+ *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)?

#+BEGIN_SRC 
p(a), -p(b).
q(X) :- -p(X).
-q(X) :- not q(X).
r(X) :- not p(X).
#+END_SRC


+ *Ejercicio 6:* Calcular los conjuntos de respuesta del siguiente
  programa /P/ y responder a las consultas siguientes: ¿p(b)?,¿q(b)?, ¿r(b)?

#+BEGIN_SRC 
p(X),q(X) :- not r(X).
-p(X) :- h(X), not r(X).
h(a).
h(b).
r(a).
#+END_SRC

+ *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.