Cursosā€Ž > ā€ŽSĆ”bados MaƱana - Anualā€Ž > ā€Ž

Tp2 Lógico

Para el segundo TP de lógico van a tener que implementar los siguientes ejercicios de las guías

GuĆ­a 2 - Ejercicio 3
Armar un programa Prolog que resuelva el siguiente problema lógico:
  • Un asesino siempre odia a su vĆ­ctima y nunca es mĆ”s rico que ella. El asesino de la tĆ­a Agatha,Ā ademĆ”s, vive en la mansión Dreadbury.
  • TĆ­a Agatha, el carnicero y Charles son las Ćŗnicas personas que viven en la mansión Dreadbury.
  • Charles odia a todas las personas de la mansión que no son odiadas por la tĆ­a Agatha.
  • Agatha odia a todos los que viven en la mansión, excepto al carnicero.
  • Quien no es odiado por el carnicero y vive en la mansión, es mĆ”s rico que tĆ­a Agatha
  • El carnicero odia a las mismas personas que odia tĆ­a Agatha.
Al programa le tengo que poder preguntar quién es el asesino de la tía Agatha, y tiene que brindar una sola respuesta.



GuĆ­a 3 - Ejercicio 2
Se registra el ingreso de distintas personas en cada mes del aƱo, mediante el predicado ingreso/3, por ejemplo:
ingreso(roque,enero,2000).
ingreso(roque,febrero,3500).
ingreso(roque,marzo,1200).
ingreso(luisa,enero,2500).
ingreso(luisa,febrero,850).

y se tiene la relación padre/2 que indica padre(Hijo, Padre), por ejemplo para decir que Luisa es la madre de Roque se agrega esta clÔusula:
padre(roque,luisa).
(lƩase "uno de los padres de Roque es Luisa").

Definir estos predicados:
  • buenPasar/1, que se verifica para una persona si se cumple alguna de estas condiciones:Ā 
    • en enero ganó mĆ”s de 2200,Ā 
    • en algĆŗn mes ganó mĆ”s de 3000,Ā 
    • ganó mĆ”s de 2500 en dos meses distintos (esto se puede hacer sin listas, usar el \= para decirĀ que los meses son distintos).
  • mesFilial/2, que relaciona una persona X con un mes si en ese mes hay algĆŗn hijo de X que hayaĀ ganado mĆ”s X.Ā 
Por ejemplo, con la información del ejemplo, la respuesta a la consulta:
?- mesFilial(luisa,febrero).
deberĆ­a ser Yes.
Verificar en el SWI que este predicado es totalmente inversible.
  • ingresoTotal/2 que relaciona una persona con su ingreso total de una persona en el aƱo; entendiendoĀ que toda la información de la base de conocimiento corresponde al mismo aƱo.
  • ingresoFamiliar/2, que relaciona una persona con su ingreso familiar en el aƱo; el ingreso familiar deĀ una persona es su ingreso total mĆ”s la suma de los ingresos totales de sus hijos.


GuĆ­a 5 - Ejercicio 3Ā 
Armar un programa para una central telefónica que permita realizar derivaciones de llamadas. La central funciona de la siguiente manera: 
En la base de conocimientos tenemos registrados a todos los empleados y sus jefes, y el Ôrea al que pertencen los jefes. Por ejemplo: 
empleado(juan).Ā 
empleado(marcelo).Ā 
empleado(adriana).Ā 
empleado(francisco).Ā 
empleado(alberto).Ā 
empleado(cristian).Ā 
empleado(mariana).
Ā 
jefe(marcelo, juan).Ā 
jefe(marcelo, adriana).Ā 
jefe(mariana, cristian).Ā 

area(marcelo, administracion)Ā 
area(mariana, ventas).Ā 

En la base se registran también los internos de las personas. Por ejemplo:  
interno(marcelo, 2244).Ā 
interno(adriana, 2245).Ā 
interno(francisco, 4441).Ā 
interno(alberto, 4442).Ā 
interno(mariana, 1212).Ā 

También se registran los gerentes y sus asistentes.  
gerente(alberto, administracion).Ā 
asistente(francisco, alberto).Ā 

Programar las siguientes reglas:Ā 

1- internoDe(Persona, Interno)Ā 
Relaciona una persona con su interno. Si la persona no tiene interno, relaciona una persona con el interno de suĀ jefe.Ā 

2- quienAtiende(Interno, Persona)Ā 
Dice quien atiende un interno. Si llaman al interno de un jefe, hace que atienda cualquiera de sus empleados. Si llaman al interno de un gerente, hace que atienda su asistente. En cualquier otro caso, atiende la persona dueña del interno. 

3- dependeDe(Persona, Persona)Ā 
Dice si la primer persona depende de la segunda persona. Una persona "A" depende de una persona "B", si "B" es jefe de "A", o si "B" es gerente del Ôrea donde trabaja "A". 

4- puedeTransferir(interno, interno)Ā 
Dos internos se pueden transferir si pertenecen a empleados que dependen de la misma persona. ParaĀ resolverla utilizar la regla dependeDe.Ā 

5- pertenecen ([internos], [internos]).Ā 
"Quita" de una lista de números telefónicos, los que NO pertenecen a internos de la empresa. 

6- personas( [Personas], [internos])Ā 
"Devuelve" de una lista de personas, sus internos. Para resolverla utilizar la regla internoDe.