From 7bd483cd7ee131633bd86362e8a25b2c5e104918 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20L=C3=BChne?= Date: Wed, 17 Aug 2016 19:02:51 +0200 Subject: [PATCH] Added rule to PDDL translator output to make all unspecified initial state variables false by default. --- encodings/sequential-incremental.lp | 3 --- src/plasp/pddl/TranslatorASP.cpp | 12 +++++++++++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/encodings/sequential-incremental.lp b/encodings/sequential-incremental.lp index 7e1e2f0..d65894f 100644 --- a/encodings/sequential-incremental.lp +++ b/encodings/sequential-incremental.lp @@ -10,9 +10,6 @@ % Establish initial state holds(Variable, Value, 0) :- initialState(Variable, Value). -% Make unspecified initial state variables false by default (for PDDL) -holds(variable(Variable), value(Variable, false), 0) :- variable(variable(Variable)), {initialState(variable(Variable), _)} 0. - #program step(t). % Perform actions diff --git a/src/plasp/pddl/TranslatorASP.cpp b/src/plasp/pddl/TranslatorASP.cpp index aa46027..37bad38 100644 --- a/src/plasp/pddl/TranslatorASP.cpp +++ b/src/plasp/pddl/TranslatorASP.cpp @@ -531,7 +531,17 @@ void TranslatorASP::translateInitialState() const m_outputStream << ")."; }); - m_outputStream << std::endl; + m_outputStream + << std::endl << std::endl + << utils::RuleName("initialState") << "(" + << utils::Keyword("variable") << "(" << utils::Variable("X") << "), " + << utils::Keyword("value") << "(" << utils::Variable("X") << ", " << utils::Boolean("false") << ")) :- " + << utils::RuleName("variable") << "(" << utils::Keyword("variable") << "(" << utils::Variable("X") << ")), " + << utils::Keyword("not") << " " + << utils::RuleName("initialState") << "(" + << utils::Keyword("variable") << "(" << utils::Variable("X") << "), " + << utils::Keyword("value") << "(" << utils::Variable("X") << ", " << utils::Boolean("true") << "))." + << std::endl; } ////////////////////////////////////////////////////////////////////////////////////////////////////