I'm looking at a special subset of SAT optimization problem. For those not familiar with SAT and related topics, here's the related Wikipedia article.
TRUE=(a OR b OR c OR d) AND (a OR f) AND ...
There are no NOTs and it's in conjunctive normal form. This is easily solvable. However I'm trying to minimize the number of true assignments to make the whole statement true. I couldn't find a way to solve that problem.
I came up with the following ways to solve it:
Do you have any ideas/comments? Can you come up with other approaches that might work?
This problem is NP-Hard as well.
One can show an east reduction from Hitting Set:
Hitting Set problem: Given sets S1,S2,...,Sn
and a number k
: chose set S
of size k
, such that for every Si
there is an element s
in S
such that s
is in Si
. [alternative definition: the intersection between each Si
and S
is not empty].
Reduction:
for an instance (S1,...,Sn,k)
of hitting set, construct the instance of your problem: (S'1 AND S'2 And ... S'n,k)
where S'i
is all elements in Si
, with OR. These elements in S'i are variables in the formula.
proof:
Hitting Set -> This problem: If there is an instance of hittins set, S
then by assigning all of S
's elements with true, the formula is satisfied with k
elements, since for every S'i
there is some variable v
which is in S
and Si
and thus also in S'i
.
This problem -> Hitting set: build S
with all elements whom assigment is true [same idea as Hitting Set->This problem].
Since you are looking for the optimization problem for this, it is also NP-Hard, and if you are looking for an exact solution - you should try an exponential algorithm
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With