Familiarización con el entorno: Tablas de verdad y Razonamientos

Anuncio
Familiarización con el entorno: Tablas de verdad
y Razonamientos
Curso 2003/04, Fecha:Octubre
Enunciado 1 (Tablas de verdad) En esta práctica se utilizará el programa
YandES, que es un conjunto de utilidades realizadas en Prolog para prácticas
conceptos de lógica
1.
Cargar el programa tt . Puede realizarse mediante ?− consult(’ tt . pl ’).
2.
Mediante el predicado table (F) se obtiene la tabla de verdad de la fórmula
F. Construir la tabla de verdad de las siguientes fórmulas e indicar cuáles
son válidas, satisfacibles o insatisfacibles.
p →q
˜q →˜p
p ˆ ˜p
˜p v q ←> p →q
p ˆ (q v r) ←> ˜p v ˜r
((p →q) ˆ ˜q) →˜p
Enunciado 2 (Clasificar) El predicado clasify (F) indica si la fórmula F es
válida, satisfacible o insatisfacible.
Comprobar el tipo de las fórmulas del ejercicio anterior
Buscar una fórmula de 3 letras proposicionales utilizando 3 conectivas
diferentes que sea válida
Buscar una fórmula de 3 letras proposicionales utilizando 3 conectivas
diferentes que sea satisfacible
Buscar una fórmula de 3 letras proposicionales usando 3 conectivas diferentes que sea insatisfacible
Enunciado 3 (Razonamientos) El predicado reasoning(R) indica si un razonamiento es correcto o incorrecto. Los razonamientos se representan mediante
el esquema [p1,p2 ,..., pN]⇒q.
1.
Chequear cuál de los siguientes razonamientos es correcto
1
2
[p , p →q] ⇒q
[˜p v q , q →r ] ⇒˜p v r
[p →q, ˜r , q →r ] ⇒p →s
[p →q, q ] ⇒p
2.
Para saber si un razonamiento de la forma [p1,p2 ,..., pN]⇒q es correcto
se puede chequear si la fórmula ( p1 ˆ p2 ˆ ... ˆ pN ) →q es válida.
Por ejemplo, para comprobar que el razonamiento [p , p →q ] ⇒q es
correcto, se chequea si la fórmula (p ˆ (p →q)) →q es válida. Chequear
que las fórmulas correspondientes a los razonamientos anteriores son válidas
3.
Formalizar e indicar si son correctos los siguientes razonamientos
Juan estudia lógica. Si Juan estudia lógica entonces es inteligente. Por tanto, Juan es
inteligente
No juego a fútbol a menos que juegue a baloncesto. Además, si juego a baloncesto me
dan un caramelo. Por tanto, juego al fútbol sólo si me dan un caramelo
Enunciado 4 (Prolog) Prolog es un lenguaje de programación lógica en el que
un programa es un conjunto de premisas. El usuario puede realizar preguntas al
sistema y éste responde si se cumplen (son consecuencia lógica de las premisas)
o no.
La notación utilizada para las premisas es la siguiente:
Hechos: Son valores que se cumplen (en minúsculas)
Reglas: Son estructuras de la forma: q :− p1, p2 , ..., pN que equivalen
en lógica a: p1 ˆ p2 ˆ ... ˆ pN →q
Algunos razonamientos de lógica pueden escribirse con dicha notación. Por
ejemplo, las premisas:
Juan estudia lógica, álgebra y programación. Si Juan estudia lógica entonces es inteligente. Si
Juan estudia álgebra y fı́sica entonces está cansado. Si Juan estudia lógica y programación entonces
es bueno.
se representarı́an en Prolog como
logica .
algebra .
programacion .
inteligente :− logica .
cansado : − a l g e b r a , f i s i c a .
bueno : − l o g i c a , p r o g r a m a c i o n .
1.
Crear un fichero con el programa anterior
2.
Consultar dicho fichero
3
3.
Preguntar si Juan es bueno e inteligente mediante ?− bueno, inteligente .
4.
Preguntar si Juan está cansado mediante ?− cansado.
Nota: Para que en la pregunta anterior el sistema responda negativamente, ejecutar la instrucción
?− set prolog flag (unknown,fail). De esa forma, cuando
el sistema se encuentre con un predicado indefinido falla en
lugar de lanzar una excepción.
5.
Formalizar en Prolog el siguiente conocimiento y construir el programa
correspondiente: Cuando me levanto tarde, llego impuntual. Si llego impuntual y sucio,
me echan del trabajo. Si el despertador no suena y duermo solo, entonces me levanto tarde. Si
la noche anterior salgo, también me levanto tarde. Si la noche anterior bebo mucho, entonces
tengo resaca. Cuando tengo resaca, no me ducho y si no me ducho, estoy sucio. Se cumple que
estoy durmiendo solo y que la noche anterior he bebido mucho.
6.
Comprobar si me echan del trabajo
Enunciado 5 (Formalizar(Opcional)) Formalizar e indicar si son correctos
los siguientes razonamientos
Los pitufos pitufan gansadas y papá pitufo está contento si pitufo gruñón juega con ellos
y con Gárgamel. Papá pitufo está contento sólo si pitufo gruñón no juega con Gárgamel.
Por tanto, pitufo gruñón no juega con los pitufos a menos que pitufo gruñón no juegue con
Gárgamel
Papá pitufo se enfada a no ser que pitufo gruñón juegue con los pitufos. Para que pitufo
gruñón juegue con los pitufos es necesario que éstos no pitufen gansadas. Es suficiente que
papá pitufo no se enfade para que pitufo gruñón juegue con los pitufos y éstos no pitufen
gansadas.
Enunciado 6 (Libre(Opcional)) 1. Construir programas en Prolog y comprobar las conclusiones que se pueden deducir. Chequear si los razonamientos correspondientes a dichos programas son correctos.
Descargar