Acciones

Ejercicio P2

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

% Ejercicio de planificación: los siguientes predicados describen un
% "mundo" que representa la acciones de un camión que transporta
% paquetes entre ciudades:


% paquete(X): el objeto X es un paquete.

% ciudad(X): el objeto X es una ciudad.

% autovia(C1,C2): las ciudades C1 y C2 están conectadas por autovía.

% en(X,C): el elemento x (el camión o un paquete) está en la ciudad C.

% dentroCamion(X): el paquete X está cargado en el camión.

% descargado: el camión está descargado.

% Las acciones que se pueden realizar son las siguientes:

% cargar(P,C): el camión (que debe estar descargado) carga el paquete P
%              en la ciudad C.  Una vez cargado, el paquete ya no se
%              considera que esté en la ciudad C.

% descargar(P,C): el camión descarga el paquete P en la ciudad C.

% ir(C1,C2): el camión se desplaza por autovía desde la ciudad C1 a la
%            ciudad C2.

% Supongamos que deseamos encontrar la secuencia de acciones que a
% partir de un estado inicial en el que un paquete p1 está en Barcelona,
% un paquete p2 está en Madrid, y el camión está en Sevilla, deja
% finalmente el paquete p1 en Sevilla, el paquete p2 en Barcelona y el
% camión descargado. Supondremos que existe una autovía entre Barcelona
% y Madrid y otra entre Madrid y Sevilla.

%% ----------
%% Signatura:
%% ----------

%% ----------
%% Estáticos:
%% ----------


%% ----------
%% Fluyentes:
%% ----------


%% ---------
%% Acciones:
%% ---------



%%----------------------------------------
%% Codificación del sistema de descripción:
%%----------------------------------------



%% Hipótesis del mundo cerrado para fluyentes definidos:

-cierto(F,I) :- fluyente(definido,F), paso(I),
               not cierto(F,I).

%% Axioma de inercia para fluyentes inerciales:

cierto(F,I+1) :- fluyente(inercia,F),
                cierto(F,I),
                not -cierto(F,I+1),
                I < n.

-cierto(F,I+1) :- fluyente(inercia,F),
                 -cierto(F,I),
                 not cierto(F,I+1),
                 I < n.
                 
%% Hipótesis del mundo cerrado para acciones:

-ocurre(A,I) :- accion(A), paso(I),
                not ocurre(A,I).
     
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%       
%% Módulo de planificación usando regla de elección:
  
exito :- objetivo(I),
           I <= n.
:- not exito.

1{ocurre(A,I): accion(A)}1 :- paso(I),
                               not objetivo(I),
                               I < n.  
                                        
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Estado inicial


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Objetivo:



%% Presentación:
#show ocurre/2.