Cursos‎ > ‎Cursadas Anteriores‎ > ‎2014‎ > ‎Mañ-Sábado‎ > ‎

TP Lógico 2

Paradigma Lógico - TP 2

DIOSES

En un lugar muy remoto (muy), en la Galaxia Griggian, existen dioses que reinan y someten a los mortales mirando las acciones que realizan. Nos contrataron para hacer un programa que estudie el comportamiento de este lugar. Como le vimos relaciones y condiciones por todos lados, nos jugamos a hacerlo en el paradigma lógico. 

La base de conocimiento inicial incluye esta información acerca de los grigianos o grigios.

Tenemos el censo de mortales, y sabemos qué mortal adora a qué dios:

   % mortal(Mortal).                   % adora(Mortal, Dios).

También contamos con la información básica acerca de cada dios; existen dioses buenos y malos; y los modelamos con los respectivos predicados:
    % diosBueno(Nombre, MortalFavorito, NivelDivinidad).
    % diosMalo(Nombre, DiosesOdiados, NivelDivinidad)

    % hijoDivino(DiosPadre, DiosHijo)..
Ambas clases de dioses tienen un Nivel de Divinidad, a mayor nivel mas groso es el dios.
Cada uno de los dioses buenos tiene un mortal favorito, y cada uno de los dioses malos tiene una lista de Dioses a los que odia.

De muchos dioses sabemos quién es su dios padre, para eso tenemos el predicado hijoDivino.

Los mortales realizan acciones que pueden ser de interés para los dioses, las incluimos mediante el predicado  hizo(Mortal, Accion).
Los dioses premian (con regalos) o castigan distintas acciones, lo vamos a representar así:

    % don(Dios, regalo(Accion,Regalo)).             % don(Dios, castigo(Accion,Castigo)).


La siguiente es una base de conocimientos inicial de ejemplo:

diosMalo(urano,[apolo],60).

diosMalo(kronos,[zeus,urano,afrodita],90).

diosMalo(hades,[kronos,apolo],400).


diosBueno(zeus,hercules,500).

diosBueno(afrodita,eneas,50).

diosBueno(apolo,creso,80).


hijoDivino(afrodita,apolo).

hijoDivino(zeus,afrodita).

hijoDivino(kronos,zeus).

hijoDivino(kronos,urano).


mortal(hercules).

mortal(eneas).

mortal(teseo).

mortal(creso).

mortal(aquiles).


adora(hercules,zeus).

adora(eneas,zeus).

adora(eneas,hades).

adora(teseo,apolo).

adora(teseo,afrodita).

adora(aquiles,urano).

adora(aquiles,kronos).


don(zeus,regalo(hacerOfrenda,placer)).

don(zeus,regalo(pensar,vino)).

don(zeus,castigo(maldecir,rayo)).

don(afrodita,regalo(enamorarse,vino)).

don(afrodita,regalo(pensar,oro)).

don(urano,castigo(ignorar,sequia)).

don(apolo,regalo(pensar,vino)).

don(apolo,regalo(construir,salud)).


accion(eneas,pensar).

accion(hercules,maldecir).

accion(teseo,maldecir).

accion(aquiles,ignorar).

accion(eneas,ignorar).

accion(hercules,construir).

Se pide definir los siguientes predicados: 

  1. Status religioso de un mortal, mediante tres predicados que deben ser inversibles.

    1. monoteista/1 : Un mortal es monoteista si adora exactamente a un dios.

    2. ateo/1 : Un mortal es ateo si no adora a ningun dios.

    3. indeciso/1 : Un mortal es indeciso si adora al menos a un dios bueno y también adora al menos a un dios malo.
  1. Castigos y regalos:

    1. diosLoco/1: un dios se considera loco si siendo bueno tiene castigos entre sus dones, o si siendo malo tiene regalos entre sus dones.

    2. regaloDivino/3 : relaciona un dios, un mortal y cada regalo que el dios le hace al mortal, de acuerdo a estas reglas:
      - Si un mortal que adora a un dios realiza una acción que ese dios premia con un regalo, el mortal se ganó ese regalo.
      - Cada dios bueno le da a su mortal favorito todos los regalos que él sabe dar, o sea, que tiene asociados a alguna acción, sin importar qué acciones haya hecho o dejado de hacer el favorito.

    3. castigoDivino/3: relaciona un dios, un mortal y cada castigo con que el dios somete al mortal, de acuerdo a estas reglas:
      - Si un mortal realiza una acción que para un dios es merecedora de un castigo, y el mortal no adora a ese dios, entonces se ganó el castigo.
      - Cada dios malo castiga a cada mortal que adora a un dios que él odia con la culpa, que es algo así como el peor de los castigos.
  1. Análisis de los mortales:

    1. mimado/2: relaciona dios y mortal. Cada dios mima a su mortal favorito, y también a los mortales favoritos de sus ancestros (padre, abuelo, etc.).

    2. tiendeALoMaligno/1: un mortal tiende a lo maligno si se cumple alguna de estas condiciones: es merecedor de al menos 4 castigos divinos, adora a un dios malo que tiene un nivel de divinidad mayor a 100, o adora únicamente a dioses malos sin ser ni ateo ni monoteista (lo de ateo o monoteista afecta sólo a la última condición). Este predicado debe ser inversible.
  1. Bendiciones y santidad:

    1. puedeBendecir/2: Un mortal puede bendecir a otro si la suma del nivel de divinidad de los dioses buenos que adora el primero es mayor a la suma del nivel de divinidad de los dioses malos que adora el segundo. Este predicado debe ser inversible.

    2. esUnSanto/1: Los santos son los mortales que pueden bendecir a cualquier otro mortal, no es necesario que puedan bendecirse a sí mismos.
  1. Análisis de acciones:

    1. accionConveniente/1Una acción es conveniente si todos los dioses buenos la premian con regalos y ningún dios malo la castiga.

    2. accionMistica/1: Una acción es mística si es premiada con regalos por exactamente 3 dioses, o por al menos un dios de nivel de divinidad 80 (ni más ni menos).

  2. diosQuisquilloso/1: un dios es quisquilloso si es malo y todos los dioses que ocupan una posición impar en su lista de dioses odiados (el primero, el tercero, el quinto, etc.) regalan vino (no importa por qué acción.regala vino cada dios odiado impar).