GSAT: Initial Proposal

128-Variable GSAT Satisfiability Solver


This is the intial proposal - we have written it to be brief. More background on the problem, algorithm, and our plans is available in the preliminary Functional Description.

One Sentence Summary

Our project is to implement GSAT, a hill-climbing algorithm for satisfying large Boolean expressions (the 3-SAT problem), to operate on expressions involving 128 variables.

The 3-SAT Problem

Instance: a set of n Boolean variables a1 to an, and an expression F of the form (ai OR NOT ai OR NOT ai) AND (NOT ai OR ai OR NOT ai) AND ... that is, consisting of a conjuntion of an arbitrary number of clauses, each of which are a disjunction of three variables, which may be complemented.

Question: does there exist an assignment of truth values for each of the variables such that F is satisfied (that is, true)?

More background on this problem than you can shake a stick at. Also: these lecture notes on satisfiability. But consider: the solution-space for a 128-variable problem is 2128 - if a machine could try 1 billion solutions per second, it would still take over 10 trillion years to try every one. (Big numbers are cool.)

The GSAT Algorithm

Paper: An Empirical Analysis of Search in GSAT

Modules Needed


Valid HTML 4.0! Valid CSS!

Last modified: Sat Nov 6 21:23:44 CST 1999