Let us consider the following instance of a satisfiability problem with number of variables n = 5, and clauses m=4.

Conjunction of clauses, each one being a disjunction of literals

This means that one is looking for an assignment of truth values (true or false) to variables x1, ..., x5 such that:
(either x1 is false or x2 is false or x3 is true), and
(either x1 is false or x2 is false or x4 is true), and
....

In order to use our tool, the above instance must be described in a file (let's call it example.cnf), with the following lines:

c Example of a .cnf file with 5 variables and 4 clauses
p cnf 5 4
-1 -2  3  0  
-1 -2  4  0
-1 -2  5  0
-3 -4 -5  0

where:

The above file must be saved in your local machine and then submitted to our solver by typing its name in the appropriate input field.

Your file will then be transferred over the Internet to our machine, our solver will be activated and, after a certain waiting time, the best truth assignment found during the entire search will be returned to you. All intermediate data, including your input file, will be cancelled.

Warning: the present code works only with MAX-3-SAT and MAX-4-SAT instances (all clauses have the same number of literals, 3 or 4, respectively)
The processing times for large instances (say 1000 variables, 10,000 clauses and 100,000 iterations) can be of some minutes (depending also on the machine load).


The above instance can also be used to understand why the non-oblivious local search (NOB) can discover better locally optimal points with respect to the standard (oblivious) search (OB):

Let us assume that the assignment x = (1 1 1 1 1) is reached by OB local search.
It is immediate to check that x = (1 1 1 1 1) is an oblivious local optimum with one unsatisfied clause (clause-4).
While OB stops here, a possible sequence to reach the global optimum starting from x is the following:

  1. x1 is set to false
  2. x3 is set to false
Now, the first move does not change the number of satisfied clauses, but it changes the "amount of redundancy" and the move is a possible choice for a selection based on the non-oblivious function. The oblivious plateau has been eliminated and the search can continue toward the globally optimal point x = (0 1 0 1 1). See the cited paper for details.
© 2005-2009 Roberto Battiti and Mauro Brunato, All Rights Reserved.
Pages hosted by "machine Learning and Intelligent Optimization (LION)" Group - DISI - Università di Trento - Italy.
Last updated: 2012-02-04 11:11:00