Formally, an LCNF problem is a five-tuple
in which
is a set of real-valued variables,
is a set of propositional
variables,
is a set of linear equality and inequality constraints
over variables in
,
is a propositional formula in CNF over
variables in
,
and
is a function from
to
which
establishes the constraint triggered by each propositional variable.
We require that
contain a special
null
constraint which is
vacuously true, and this is used as the -value for a variable in
to denote that it triggers no constraint. Moreover, for each
variable v we define
.
Under this definition, an assignment to an LCNF problem is a
mapping, ,
from the variables in
to real values and from
the variables in
to truth values. Given an LCNF problem and an
assignment, the set of active constraints is
.
We
say that an assignment satisfies the LCNF problem if and only
if it makes at least one literal true in each clause of
and
satisfies the set of active constraints.
![]() |
Figure 2 shows a fragment of a sample LCNF problem: a truck, which carries a maximum load of 30 and fuel level of 15, can make a Delivery by executing the Move action. We discuss later why it cannot have a GoodTrip.