%% Ejercicio de planificación: los siguientes predicados describen un
%% "mundo" que representa la acciones de una persona que compra
%% alimentos en supermercados.
%% Consideremos el problema de planificación siguiente:
%% Contexto:
%% (*) Tiendas: Mercadona vende café y Carrefour vende azúcar.
%% (*) Una persona está en una ubicación, que puede ser su casa o una tienda.
%% (*) Las acciones posibles son: ir, comprar.
%% (*) Estado inicial: está en su casa, sin café ni azúcar.
%% (*) Objetivo: tener café, azúcar y estar en casa.
%% ----------
%% 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.