The computational complexity of solving random 3-Satisfiability (3-SAT)
problems is investigated. 3-SAT is a representative example of hard
computational tasks; it consists in knowing whether a set of alpha N randomly
drawn logical constraints involving N Boolean variables can be satisfied
altogether or not. Widely used solving procedures, as the
Davis-Putnam-Loveland-Logeman (DPLL) algorithm, perform a systematic search for
a solution, through a sequence of trials and errors represented by a search
tree. In the present study, we identify, using theory and numerical
experiments, easy (size of the search tree scaling polynomially with N) and
hard (exponential scaling) regimes as a function of the ratio alpha of
constraints per variable. The typical complexity is explicitly calculated in
the different regimes, in very good agreement with numerical simulations. Our
theoretical approach is based on the analysis of the growth of the branches in
the search tree under the operation of DPLL. On each branch, the initial 3-SAT
problem is dynamically turned into a more generic 2+p-SAT problem, where p and
1-p are the fractions of constraints involving three and two variables
respectively. The growth of each branch is monitored by the dynamical evolution
of alpha and p and is represented by a trajectory in the static phase diagram
of the random 2+p-SAT problem. Depending on whether or not the trajectories
cross the boundary between phases, single branches or full trees are generated
by DPLL, resulting in easy or hard resolutions.Comment: 37 RevTeX pages, 15 figures; submitted to Phys.Rev.