Relación 3 (1)
De Lógica computacional y teoría de modelos (2019-20)
<source lang = "prolog">
%% 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.
</prolog>