\documentclass[12pt]{article}
\usepackage{epsfig}
\textwidth 6in
\textheight 8.5in
\topmargin 0in
\oddsidemargin 0.25in
\evensidemargin 0.25in

 %======================== CROSS-REFERENCING ==================
 \newcommand{\app}[1]{Appendix~\ref{sect.#1}}
 \newcommand{\sect}[1]{\S\ref{sect.#1}}      % Ref. to section or subsection
                                        %   to appear as, say, $2.37
 \newcommand{\baresect}[1]{\ref{sect.#1}}      % Ref. to one more section or
                                 %    subsection to appear as, say, 2.37
 \newcommand{\eq}[1]{Eq.~(\ref{eq.#1})}	% Ref. to equation
 \newcommand{\bareeq}[1]{(\ref{eq.#1})}	% Ref. to equation
 \newcommand{\fig}[1]{Fig.~\ref{fig.#1}}

 \newcommand{\sectlabel}[1]{\label{sect.#1}}
 \newcommand{\eqlabel}[1]{\label{eq.#1}}



% common number for a group of equations
% a better way would be for mathletters to work directly with all
%   equation, eqnarray, etc. environments rather than needing equationGroup...
\newcounter{eqletter} \setcounter{eqletter}{0}

\newenvironment{mathletters}{
\setcounter{eqletter}{0}
\refstepcounter{equation}% increment eqn number, make this ref for label
\renewcommand{\theequation}{\arabic{equation}\alph{eqletter}}
}{}

% within mathletters, use equationGroup to group equations with same number
\newenvironment{equationGroup}{
\addtocounter{equation}{-1} % undo increment from equation environment
\stepcounter{eqletter}
\begin{equation}
}{\end{equation}}


%======================== FIGURES ========================

\newcommand{\figdef}[3]{% label, body, caption
\begin{figure}[!htb]
 \centering\leavevmode#2%
 \caption{\small #3}
 \label{fig.#1}
\end{figure}                 }


%======================== COMMON EXPRESSIONS ========================

% number of 1-bits in an assignment; inner braces required e.g. for a^\ones{x y}
\newcommand{\ones}[1]{{| #1 |}}

% bitwise and operation
\newcommand{\bitA}{\wedge}

% W matrix with hat: unnormalized version of the matrix
\newcommand{\W}{\hat{W}}

% number of neighbors with fewer conflicts, inner braces for e.g. 2^\Nb
\newcommand{\Nb}{ { N_{\rm better} } }

% starting value for phase choices
\newcommand{\NStart}{ { N_{\rm start} } }
\newcommand{\cStart}{ { c_{\rm start} } }


% floor
\newcommand{\floor}[1]{ { \left \lfloor #1 \right \rfloor } }






\begin{document}
\title{Local Search Methods for Quantum Computers}

\author{
Tad Hogg \\
Xerox Palo Alto Research Center \\
3333 Coyote Hill Road, Palo Alto, CA 94304 \\
hogg@parc.xerox.com
	\and
Mehmet Yanik \\
Dept. of Electrical Engineering \\
MIT \\
Cambridge, MA 02139 \\
fatih@mit.edu
}

\maketitle

\begin{abstract}
  Local search algorithms use the neighborhood relations among
  search states and often perform well for a variety of NP-hard
  combinatorial search problems.  This paper shows how quantum
  computers can also use these neighborhood relations. An example of
  such a local quantum search is evaluated empirically for the
  satisfiability (SAT) problem and shown to be particularly
  effective for highly constrained instances.  For problems with an
  intermediate number of constraints, it is somewhat less effective
  at exploiting problem structure than incremental quantum methods,
  in spite of the much smaller search space used by the local
  method.
\end{abstract}




\section{Introduction}

Combinatorial search problems are among the most difficult
computational tasks: the time required to solve them often grows
exponentially with the size of the problem~\cite{garey79}.  Many such
problems have a great deal of structure, allowing heuristic methods to
greatly reduce the rate of exponential growth.  Quantum
computers~\cite{benioff82,bernstein92,deutsch85,deutsch89,divincenzo95,feynman86,lloyd93}
offer a new possibility for utilizing this structure with {\em quantum
parallelism}, i.e., the ability to operate simultaneously on many
classical search states, and {\em interference} among different paths
through the search space.

While several algorithms have been
developed~\cite{shor94,boyer96,grover96,hogg95d,hogg97}, the extent to
which quantum searches can improve on heuristically guided classical
methods for NP searches remains an open question.  Even if quantum
computers are not useful for {\em all} combinatorial search
problems, they may still be useful for many instances encountered in
practice. This is an important distinction since typical instances of
search problems are often much easier to solve than is suggested by
worst case analyses, though even typical costs often grow
exponentially on classical machines.  The study of the average or
typical behavior of search heuristics relies primarily on empirical
evaluation. This is because the complicated conditional dependencies
in search choices made by the heuristic often preclude a simple
theoretical analysis, although phenomenological theories can give an
approximate description of some generic
behaviors~\cite{hogg94b,kirkpatrick94,monasson96}.


The simplest algorithms are the unstructured methods, such as
generate-and-test, which amount to a random search among the states or
a systematic enumeration of them without any use of prior results to
guide future choices. An analogous unstructured quantum search can
improve on this classical method~\cite{grover96}.

One structured approach to search {\em builds} solutions incrementally
from smaller parts. These methods exploit the fact that in many
problems the small parts can be tested for consistency before they are
expanded to larger ones. When a small part is found to be
inconsistent, all possible extensions of it will also be inconsistent,
allowing an early pruning of the search. In such cases, the search
backtracks to a prior decision point to try a different incremental
construction.  Analogies with this approach form the basis of
previously proposed structured quantum searches~\cite{hogg95d,hogg97}.

A second approach takes advantage of the clustering of solutions found
in many search problems. That is, instead of being randomly
distributed throughout the search space, the states have a simple
neighborhood relationship such that states with a few or no conflicts
tend to be near other such states. This neighborhood relationship is
used by {\em repair} or {\em local} searches. Starting from a random
state, they repeatedly select from among the current state's neighbors
one that reduces the number of conflicts with the constraints. Such
searches can become stuck in local minima but are often very
effective~\cite{minton92,selman92}. The problem of local minima can be
addressed by allowing occasional changes that increase the number of
conflicts~\cite{kirkpatrick83}. By comparison with incremental
methods, local searches operate in a smaller search space, i.e., they
have no need to consider the many small parts that might be composed
into a full solution. On the other hand, they also disregard any
information from these small parts that can guide the search toward a
solution.

In this paper, we present a new quantum search algorithm based on the
neighborhood structure of the satisfiability problem.  Such structure
forms the basis of many local classical methods but has not yet been
applied to quantum computation. Specifically the following two
sections describe the satisfiability problem used to illustrate our
algorithm and the ingredients of quantum programs.  We then describe a
quantum algorithm analogous to classical local search methods and
evaluate its behavior.  Finally some open issues are discussed,
including a variety of ways this approach can be extended.  The
appendices derive the properties of the algorithm's quantum operation
and discuss approaches to the classical simulation of the algorithm.





\section{The Satisfiability Problem}\sectlabel{sat}

NP search problems have exponentially many possible states and a
procedure that quickly checks whether a given state is a
solution~\cite{garey79}.  Constraint satisfaction problems
(CSPs)~\cite{mackworth92} are an important example.  A CSP consists of
$n$ variables, $V_1,\ldots,V_n$, and the requirement to assign a
value to each variable to satisfy given constraints. Searches examine
various {\em assignments}, which give values to some of the
variables. {\em Complete} assignments have a value for every variable.

One important CSP is the satisfiability problem (SAT), which consists
of a propositional formula in $n$ variables and the requirement to
find a value (true or false) for each variable that makes the formula
true. This problem has $N=2^n$ complete assignments. For
$k$-SAT, the formula consists of a conjunction of clauses and each
clause is a disjunction of $k$ variables, any of which may be
negated. For $k \geq 3$ these problems are NP-complete. An example of
such a clause for $k=3$, with the third variable negated, is $V_1$ OR
$V_2$ OR $\overline{V_3}$, which is false for exactly one assignment
for these variables: $\{V_1={\rm false}, V_2={\rm false}, V_3={\rm
true}\}$.  With the formula expressed as a conjunction of clauses, a
solution must satisfy every clause. Thus we can view each clause as a
constraint that adds one conflict to all complete assignments that
include assignments to the variables in the clause that make it false.
By selecting the clauses to be distinct, the number of clauses $m$
corresponds to the number of constraints in the problem.

The assignments for SAT can also be viewed as bit strings with the
correspondence that the $i^{th}$ bit is 0 or 1 according to whether
$V_i$ is assigned the value false or true, respectively. In turn,
these bit strings are the binary representation of integers, ranging
from 0 to $2^n-1$.  For definiteness, we associate the value of
variable $V_i$ with the bit in the integer corresponding to $2^{i-1}$,
i.e., $V_1$ corresponds to the least significant bit. Each clause in
the a $k$-SAT formula specifies a combination of $k$ bits that cause a
conflict in any assignment containing all of them. For example, the
clause $V_1$ OR $V_2$ OR $\overline{V_3}$ introduces a conflict in all
assignments for which bits 1 and 2 are 0 and bit 3 is 1, i.e.,
assignments whose integer representation ends with the bit string 100.

For bit strings $r$ and $s$, we define $\ones{s}$ to be the number of
1-bits in $s$ and $r \bitA s$ to be the bitwise AND operation on $r$
and $s$. Thus $\ones{r \bitA s}$ counts the number of 1-bits both
assignments have in common, and can also be viewed as a bitwise dot
product of the two assignments considered as vectors of bits. We also
use $d(r,s)$ as the Hamming distance between $r$ and $s$, i.e., the
number of positions at which they have different values. These
quantities are related by
\begin{equation}\eqlabel{hamming}
d(r,s) = \ones{r} + \ones{s} - 2 \ones{r \bitA s}
\end{equation}

An example with $n=2$ and two constraints,
each involving a single variable, is $V_1 \neq 1$ and $V_2 \neq 1$.
This problem has a unique solution: $V_1=0,
V_2=0$, an assignment with the bit representation 00.
This problem is also an instance of 1-SAT with the propositional formula
$\overline{V_1}$ AND $\overline{V_2}$.
The $N=2^n=4$ complete assignments have the bit representations
00, 01, 10, and 11.

The search algorithm presented below uses the average number of
conflicts in an assignment, $c_{\rm avg}$.  Each of the $m$ distinct
clauses in a $k$-SAT problem introduces a single unique conflict in
all complete assignments whose values for the variables specified in
the clause match those of the clause.  Since there are $2^{n-k}$ such
assignments, the total number of conflicts in all assignments is $m
2^{n-k}$. Thus the average number of conflicts in an assignment is
\begin{equation}\eqlabel{conflicts}
c_{\rm avg} = m / 2^k
\end{equation}

In evaluating average behavior of search algorithms, a common class of
problems used is the ensemble of random $k$-SAT problems. This
ensemble is specified by values for the number of variables $n$, the
size of the clauses $k$ and the number of distinct\footnote{This
ensemble differs slightly from other studies where the clauses are not
required to be distinct.}  clauses $m$.
 
In using random $k$-SAT to test our algorithm, we restrict attention
to those with at least one solution. Specifically, to generate ``random
soluble problems'', a set of $m$ distinct clauses is randomly selected
from the ${n \choose k} 2^k$ possible clauses~\cite{nijenhuis78}. The
resulting SAT problem is then solved with a classical backtrack search
to see if it has any solutions. Only those instances with solutions are
retained.

Soluble problems are very rare among randomly generated instances with
many constraints. Thus to allow comparison over the full range of
$m/n$ we generate a slightly different ensemble, random problems with
a prespecified solution. To generate these problems, a random
assignment is first selected to be a solution. Then, $m$ distinct
clauses are selected from among those that do not conflict with that
prespecified solution.  For $k$-SAT, this leaves
\begin{equation}\eqlabel{mMax}
m_{\rm max} = {n \choose k} (2^k - 1)
\end{equation}
possible clauses to select among,
because the prespecified solution precludes any clause that exactly
matches the assignments in that solution.

Compared to random soluble problems, using a prespecified solution
increases the likelihood of problems with a larger number of
solutions, resulting in slightly easier problems both classically and
for the quantum search algorithm described in this paper. However, at
the extremes of $m=0$ and $m=m_{\rm max}$, both methods give the same
results. Furthermore, when $m/n$ is fairly large, almost all soluble
problems have only a single solution, resulting in very little
difference between these two methods of generating soluble problems.




\section{Quantum Computers}\sectlabel{quantum}

In spite of difficult conceptual issues~\cite{feynman85,mermin85}, the
properties of quantum mechanics needed to describe the search
algorithm presented in this paper are relatively simple. Specifically,
these properties are the rich set of states available to a quantum
computer and the operations that manipulate these states.

The state of a classical computer can be described by a string of
bits. For example, the complete assignment of an $n$-variable SAT
problem considered at some point in a search is given by $n$
bits. Quantum computers use physical devices whose full quantum state
can be controlled. For example~\cite{divincenzo95}, an atom in its
ground state could represent a bit set to 0, and an excited state for
1. The atom can be switched between these states, e.g., with lasers of
appropriate frequencies. Significantly, the atom can also be placed in
a uniquely quantum mechanical {\em superposition} of these values,
which can be denoted as a vector $(\psi_0, \psi_1)$, with a component
(called an {\em amplitude}) for each of the corresponding classical
states for the system. Similarly, with $n$ such devices, the state of
the quantum machine is described by a vector with $2^n$ amplitudes
$(\psi_0, \psi_1, \ldots, \psi_{2^n-1})$. The amplitudes are complex
numbers that have a physical interpretation: when the computer's state
is measured, the superposition changes, or {\em collapses}, to become
the classical state $s$ with probability $|\psi_s|^2$. Thus amplitudes
satisfy the normalization condition $\sum_s |\psi_s|^2 = 1$. In
contrast to a classical machine which, at any given step of its
program, has a definite value for each bit, the quantum machine exists
in a general superposition of $2^n$ such states.

The change in the superposition brought about by measurement also
means the amplitude values are not explicitly available for use in a
computation. For example, an algorithm that attempts to test the phase
of various amplitudes to determine the next operation would destroy
the superposition. This observation greatly limits the types of
quantum algorithms. Thus using this rich set of states requires
operations that rapidly manipulate amplitudes in a superposition
without explicitly measuring them. Because quantum mechanics is linear
and the normalization condition must always be satisfied, these
operations are limited to unitary linear
operators~\cite{hogg95d}. That is, a state vector $\psi = (\psi_0,
\ldots, \psi_{2^n-1})$ can be changed to a new vector $\psi^\prime$
related to the original one by a unitary transformation, i.e.,
$\psi^\prime = U \psi$ where $U$ is a unitary matrix\footnote{A
complex matrix $U$ is unitary when $U^\dagger U = I$, where
$U^\dagger$ is the transpose of $U$ with all elements changed to their
complex conjugates. Examples include permutations, rotations and
multiplication by phases (complex numbers whose magnitude is one).} of
dimension $2^n \times 2^n$. In particular, this requires that the
operations be reversible: each output is the result of a single
input. In spite of the exponential size of the matrix, in many cases
the operation can be performed in a time that grows only as a
polynomial in $n$ by quantum computers~\cite{boyer96,hoyer97}.

An important example of such operations are reversible classical
programs. Specifically, let $P$ be such a program. Then for each
classical state $s$, i.e., a string of bit values, it produces an
output $s^\prime = P[s]$, and each output is produced by only a single
input. A simple example is a program operating with two bits that
replaces the first value with the exclusive-or of both bits and leaves
the second value unchanged, i.e., $P[00]=00$, $P[01]=11$, $P[10]=10$
and $P[11]=01$.  Denoting the two bits by the binary variables $x$ and
$y$, such a program performs the operation $x \leftarrow x \otimes y$,
where $\otimes$ is the exclusive-or operation. The values of the
variables $x$ and $y$ after this operation uniquely determine the
original values, hence the program is reversible. When used with a
quantum superposition, such classical programs operate independently
and simultaneously on each component, i.e., $P[(\psi_0, \psi_1,
\ldots, \psi_{2^n-1})]$ produces a new superposition $(\psi_0^\prime,
\ldots, \psi_{2^n-1}^\prime)$ where $\psi_{s^\prime}^\prime = \psi_s$
with $s^\prime = P[s]$.  This {\em quantum parallelism} allows a
machine with $n$ bits to operate simultaneously with $2^n$ different
classical states.  Continuing with the 2-bit exclusive-or example, if
we started with the superposition $(1/\sqrt{2},1/2,1/2,0)$ the program
would produce $(1/\sqrt{2},0,1/2,1/2)$. Equivalently, this program
corresponds to the permutation matrix
$$U = \pmatrix{
1 & 0 & 0 & 0 \cr
0 & 0 & 0 & 1 \cr
0 & 0 & 1 & 0 \cr
0 & 1 & 0 & 0 \cr
}$$

These reversible classical programs amount to a permutation of the
states. However, unitary operations can also mix the amplitudes in a
state vector.  An example for $n=1$ is 
\begin{equation}\eqlabel{Umix}
U = \frac{1}{\sqrt{2}}
\pmatrix{ 1 & -1 \cr 1 & 1 \cr }
\end{equation}
This converts $(1,0)$, which could correspond to an atom prepared in
its ground state, to $(1,1)/\sqrt{2}$, i.e., an equal superposition of
the two states.  Because these matrices combine complex numbers, it is
possible for the combination of amplitudes to cancel, leaving no final
amplitude in some of the states. This capability for
interference~\cite{feynman85} distinguishes quantum computers from
probabilistic classical machines.

Designing a quantum search algorithm requires combining these
available quantum operations in a manner that concentrates amplitudes
in solutions.  Classical search techniques can be a useful guide for
such designs. That is, a quantum search method could, at least
approximately, map amplitude from one state to others that would be
considered after it by the corresponding classical method. In effect,
this allows examining, and using interference from, all possible
choices the classical search could have made, rather than being
restricted to a single series of choices. The details of the
particular problem being solved could be introduced by adjustments to
the phases of the amplitudes based on testing states for consistency,
a rapid operation for NP problems.  This technique, used with previous
unstructured~\cite{grover96} and structured~\cite{hogg95d,hogg97}
quantum searches, neatly separates the design of the method that mixes
amplitudes from any consideration of the detailed nature of specific
problems. In the rest of this paper, we show how analogies with local
or repair style searches can be used as the basis for quantum search.




\section{Neighborhood Relations and Quantum Search}

Classical repair style searches consist of randomly selecting a
complete assignment as the initial state, then repeatedly moving to
one of the current state's neighbors until a solution is found or the
number of search steps reaches a prespecified bound. Typically, at
each step the search selects a neighbor that reduces the number of
conflicts, if any such neighbor exists. If the search terminates
without finding a solution, it is repeated from a new random initial
state.

The two key ingredients of these local search algorithms are
identifying the neighboring states (i.e., those with a single
different assignment) and then selecting from among these neighbors
the next one to use. The identification of neighbors doesn't depend on
constraints of the particular problem being solved. On the other hand,
the selection process uses information on the problem instance such as
the number of conflicts in the current state compared to the conflicts
of the neighbors. In some versions of repair searches, such as
simulated annealing~\cite{kirkpatrick83} the selection process also
depends on the number of steps that have been performed (e.g., through
a changing temperature parameter).

The quantum algorithm introduced here operates on superpositions of
all complete assignments for the SAT problem. Furthermore, instead of
selecting only a single new state, each step of the algorithm
considers all possible new states. This parallelism offers the
possibility of improved performance by arranging for interference
among many different classical search paths. A successful algorithm
will adjust amplitudes along these paths so that search paths leading
to solutions tend to combine constructively while those leading to
nonsolutions combine destructively.

We construct quantum analogs of the two key ingredients of classical
repair searches. First, the identification of neighbors corresponds to
an operation on the superposition that moves amplitudes preferentially
from a state to its neighbors. Second, the selection among the
neighbors is performed by adjustments to the amplitude phases, based
on the number of conflicts in the states and their neighbors, i.e.,
the same information that is used in the classical methods.

To describe the resulting algorithm more explicitly, let $\psi^{(
j)}_{s}$ be the amplitude of the assignment $s$ after completing step
$j$ of the algorithm.  A single trial of the search algorithm consists
of the following parts:
\begin{enumerate}
\item initialize amplitude equally among all the assignments, i.e.,
  $\psi^{(0)}_s=1/\sqrt{N}$ for all $s$.

\item iterate: for step $j$ from 1 to $J$, adjust phases and then
  multiply by the matrix $U$ described in \sect{U}, to give
\begin{equation}\eqlabel{map}
\psi^{(j)}_r = \sum_s U_{rs} \rho_s \psi^{(j-1)}_s
\end{equation}
where $\rho_s$ is the phase adjustment for assignment $s$ as described
in \sect{phases}.

\item measure the final superposition
\end{enumerate}

The initialization can be performed rapidly by applying the
matrix of \eq{Umix} separately to each of the $n$ bits.

After $J$ steps, the measurement gives a single assignment,
which is a solution with probability
\begin{equation}\eqlabel{p(soln)}
P_{\rm soln}={\sum_{s}}^\prime p(s)
\end{equation}
with the sum over solutions. Here $p(s)={\left| \psi^{(J)}_{s}\right|
}^{2}$ is the probability to obtain the assignment $s$ with the
measurement. On average, the algorithm will need to be repeated
$T=1/P_{\rm soln}$ times to find a solution.  As with classical repair
searches, this algorithm is incomplete: it can find a solution if one
exists but not prove no solutions exist.  The search cost can be
characterized by the number of steps required to find a solution on
average, i.e., $C = JT$.

Completing the description of the algorithm requires specifying the
number of steps $J$. Because the measurement destroys the
superposition, it is not possible to evaluate $P_{\rm soln}$
explicitly at each step and use this information to determine when to
halt. Instead $J$ must be specified a priori based on readily
available problem characteristics, such as the number of variables $n$
and clauses $m$. The value of $J$ may be changed from one trial to the
next, which allows some exploration for suitable
values~\cite{boyer96}.

In our case, because the algorithm emphasizes mapping amplitude among
neighbors, one might expect that about $n$ steps are required to
ensure an opportunity to move significant amplitude to solutions
(since a solution is at most $n$ neighbors away from any given
assignment).  However, the experiments reported below show fairly
large amplitudes with somewhat fewer steps. In addition, instead of
continuing the algorithm to maximize the probability to have a
solution, a lower average search cost is sometimes possible by
stopping earlier~\cite{boyer96}, a simple strategy for improving
probabilistic algorithms~\cite{luby93}. Determining the number of
steps that minimizes average cost for $k$-SAT problems with given $n$
and $m$ remains an open problem, but at worst one could try the
algorithm for all values of $J$ up to $n$, resulting in a linear
increase in the overall search cost. More sophisticated methods for
finding a suitable number of steps to take have been proposed for the
unstructured search algorithm~\cite{boyer96} and similar techniques
may be useful for this structured search as well.



\subsection{Emphasizing Neighbors with Amplitude Mixing}\sectlabel{U}

For SAT problems with $n$ variables, each state has $n$
neighbors. Thus the matrix $M$ giving the most direct correspondence
with the classical repair searches would have $M_{rs}=0$ whenever the
assignments $r$ and $s$ are not neighbors and $M_{rs}=1/\sqrt{n}$
whenever $r$ and $s$ are neighbors, i.e., $d(r,s)=1$. However, this
matrix is not unitary and so does not correspond to a quantum
operation.

Instead we consider a more general class of matrices whose elements
depend only on the Hamming distance between assignments, i.e.,
$U_{rs}=u_{d(r,s)}$ which can be made unitary by appropriate choices
of the values $u_d$ for $d=0,\ldots,n$. To give a close correspondence
with the classical method, we use the unitary matrix of this form with
the largest possible value of $u_1$, which governs the mapping between
states and their neighbors.

As shown in \app{matrix}, such matrices can be written as $U = W D W$
where, for assignments $r$ and $s$,
\begin{equation}\eqlabel{W}
W_{rs} = \frac{1}{\sqrt{N}} (-1)^\ones{r \bitA s}
\end{equation}
and $D$ is a diagonal matrix of phases (complex numbers with magnitude
equal to 1) depending only on the number of 1-bits in the assignments,
i.e., $D_{rr} = \tau_\ones{r}$. The matrix $W$ is unitary and can be
implemented rapidly on quantum computers using a recursive
decomposition~\cite{boyer96,grover96}. The largest possible value of
$u_1$ is obtained by selecting $\tau_h$ to be 1 for $h \le n/2$ and
$-1$ for $h>n/2$, as shown in \app{matrix}. These values define the
mixing matrix $U$ used in the search algorithm.

For example, when $n=2$ and the states are
considered in binary order, i.e., 00, 01, 10, and 11,
\begin{equation}\eqlabel{U2}
U = \frac{1}{2} \pmatrix{
 1 &  1 &  1 & -1 \cr
 1 &  1 & -1 &  1 \cr
 1 & -1 &  1 &  1 \cr
-1 &  1 &  1 &  1 \cr
}
\end{equation}
For instance, the value mapping the state 00 to its neighbors, 01 and
10, is 1/2, corresponding to the second and third elements of the
first column of this matrix.  

\fig{matrix} shows relative values of the mixing matrix elements for
larger cases with even $n$.  This mixing matrix has a regular pattern
of real-valued entries. Specifically, each column, specifying the
mapping from a particular assignment $s$ to all the others, has a
positive value for assignments $r$ at Hamming distance 0 and 1 from
$s$, negative values for $d(r,s)=2$ and 3, and so on.  More generally,
$u_d$ is negative when $d \bmod 4$ is 2 or 3, and otherwise is
positive.  We make use of this pattern in designing the phase
adjustments, described below.

When $n$ is odd, the pattern for the matrix values is different:
$u_d=0$ for even values of $d$ and the values for odd $d$ alternate in
sign.  That is, $u_d$ is positive when $d \equiv 1 \pmod{4}$, negative
when $d \equiv 3 \pmod{4}$ and otherwise is 0.

\figdef{matrix}{
\epsfig{file=matrices.eps}
}{Values of $u_d/u_1$ for $n=8$ (solid) and $n=20$ (dotted). The values
of $u_1$ for $n$ equal to 8 and 20 are 0.27 and 0.18, respectively.}

Unlike the local classical search, there is some mixing between
assignments that are not neighbors.  Generally, these contributions
are relatively small, and become smaller as $n$ increases, for most
assignments.  While these additional connections make it more
difficult to understand the algorithm purely in analogy with classical
repair style searches, the long range couplings provide a possible
mechanism to move amplitude away from local minima, i.e., inconsistent
states all of whose neighbors have more conflicts.


\subsection{Phase Choices}\sectlabel{phases}

The phase adjustment for states, i.e., the values of $\rho_s$ in
\eq{map}, is the portion of the algorithm using information about the
particular SAT problem to be solved. The key to designing an effective
algorithm is selecting phases that, at least on average, move
significant amplitude toward solutions. As with classical heuristics,
the phase selected for a given assignment must be a function only of
readily available information about that assignment and not require
specific knowledge of the problem as a whole, such as the location of
the solutions, that can only be obtained by extensive search.
Furthermore, as described in \sect{quantum}, the phase choices can not
depend on explicit knowledge of the amplitude associated with the
state. For example, the ability to set $\rho_s$ based on the sign of
$\psi_s$ could greatly simplify the design of the algorithm, but such
an operation cannot be physically realized.

Following the analogy with classical local searches, we make use of
the same information such searches use, namely the number of conflicts
in an assignment and how it compares to its neighbors.  We found
several methods that concentrate amplitude into solutions to some
extent.  In this section, we describe two such phase choices. The
first makes few assumptions about the structure of the problem so
applies fairly well to a wide range of problems. The second makes more
specific assumptions about the problem structure and is thereby able
to make more effective use of the pattern of values in $U$, but only
for a limited set of highly constrained problems.

 

\subsubsection{A Simple Phase Choice}

In the previous structured and unstructured
algorithms~\cite{grover96,hogg95d}, the phase choice consists of
inverting the phase of all inconsistent states, i.e., using $\rho_s=1$
when $s$ is consistent, and otherwise $-1$.  The more recent
structured method~\cite{hogg97} also inverted phases of some
consistent states depending on the step $j$ of the algorithm. In
all these cases, the mapping matrix tended to concentrate amplitude
toward those states whose phases were unchanged. As described in
\app{matrix}, the matrix $U$ of \sect{U} is related to those used these
previous algorithms. Thus we examine using phase inversion as a simple
approach to moving amplitude toward desired states.

In our case, the mapping emphasizes moving amplitude among neighbors.
Since neighbors tend to have similar number of conflicts, we want to
combine the ability of phase inversion to move amplitude toward those
states whose phases are unchanged with an emphasis on neighbors to
take advantage of the large value of $u_1$.  A simple way to do this
is to only invert the phases of states with at least a certain number
of conflicts, and gradually reduce this threshold during the
search. This allows for amplitude to move between neighbors while also
biasing the system toward states with fewer and fewer conflicts.  In
effect this technique attempts to combine amplitude coherently for
states with fewer and fewer conflicts while also giving relatively
large transfers to these states through the large mapping between
neighbor states produced by the matrix $U$. Although this argument
ignores the, sometimes counterproductive, contribution from
non-neighbor assignments, it does serve to motivate the phase
selection method.

Specifically we select an initial threshold $\cStart$ for the
number of conflicts and then at step $j$ the phase for assignment $s$
is
\begin{equation}\eqlabel{phase}
\rho_s = \left\{ \begin{array}{rl}
	-1	& \mbox{if $s$ has more than $\cStart-(j-1)$ conflicts} \\
	1	& \mbox{otherwise}
		\end{array}
	\right.
\end{equation}
The algorithm operates for at most $\cStart+1$ steps (after this
point, \eq{phase} gives the same phase to all states so there are no
further changes to the relative amplitudes).

The exact choice for $\cStart$ is not critical as long as there are
relatively many states with about that number of conflicts. A simple
approach is to start with the average number of conflicts in
assignments, as given by \eq{conflicts}. Thus for our algorithm we
take $\cStart = m/2^k$. Although not used in this paper, a possible
alternative for a given problem, would be to count the number of
conflicts in a set of randomly chosen assignments to estimate the
distribution of conflicts among assignments. This distribution could
in turn suggest a more suitable starting threshold, as well as
different amounts to lower the threshold with each step of the
algorithm.

%results start with step 0, but this description here starts
%with $j=1$, so adjust for this difference:
%program inverts when num. conflicts $\geq \cStart +1- s$, 
%with $s$ starting at 0, this is equivalent to
%num. conflicts $> \cStart - (j-1)$ as specified here.



\subsubsection{Phases Based on Neighborhood Structure}


Another approach to the phase choices is based on the pattern of the
mixing matrix, illustrated in \fig{matrix}. Specifically, if we could
identify a series of disjoint sets of assignments in which successive
sets have a large number of neighbors and the final set consists of
solutions, then we could attempt to move amplitude from one set to the
next based on the large mapping between neighbors. To use this
technique we would also need to be able to initially concentrate
amplitude in the first of these sets.

Identifying such a sequence of sets requires fairly regular
relationships among the number of conflicts of neighboring
assignments. We restrict attention to the case where $n$ is even. A
similar argument can give a phase selection strategy for odd $n$ based
on the different pattern of the $U$ matrix described in \sect{U}.

To illustrate this approach, we consider the simple case of soluble
problems with the maximum possible number of constraints, i.e.,
$m=m_{\rm max}$ from \eq{mMax}. In this case, each assignment with $c$
conflicts has $c$ neighbors with $c-1$ conflicts and the remaining
$n-c$ neighbors have $c+1$ conflicts.  Let $\Nb(s)$ be the number of
neighbors of assignment $s$ that have fewer conflicts than $s$
does. Then for these problems, $\Nb(s) = c$ where $c$ is the number of
conflicts in the assignment $s$.

Let $S_b$ be the set of assignments with $b$ better neighbors, i.e.,
$\{s | \Nb(s)=b\}$. The set $S_0$ contains just the single solution of
the problem. The maximum constrained problems have $n \choose b$
assignments in $S_b$.  Since this quantity is largest when $b=n/2$,
the initial superposition with equal amplitude in all states will have
the largest total contribution for the assignments in $S_{n/2}$. Thus
we will select phases in a way that attempts to move significant
amplitude from the assignments in $S_b$ to those in $S_{b-1}$,
starting with $b=n/2$. If successful, this process will concentrate
amplitude in the solution after $n/2+1$ steps.

We can improve this process by first increasing the amplitude in
the assignments in $S_{n/2}$. This is readily done using the pattern
of signs of the matrix $U$. Specifically, the initial superposition
gives a positive amplitude to every assignment. We can arrange for the
first step of the algorithm to give a sum of positive contributions to
every state in $S_{n/2}$ by selecting the signs of the phases for the
states to equal those of the corresponding matrix elements in $U$. That
is, assignments at Hamming distance $d$ from those in $S_{n/2}$, namely
those in $S_{n/2 \pm d}$, have $\rho_s$ equal to the sign of $u_d$.

For subsequent steps $j>1$, we attempt to move as much amplitude as
possible from assignments in $S_{n/2-(j-2)}$ to those in
$S_{n/2-(j-1)}$. To do this we make use of the fact that the mapping
between neighbors has the largest matrix elements in $U$ and these
elements, $u_1$ are positive. Thus, just considering the contribution
from neighbors, we can expect a large contribution from assignments in
$S_{n/2-(j-2)}$ to those in $S_{n/2-(j-1)}$ by selecting $\rho_s$ for
these assignments to be positive and setting the phase for all other
assignments to $-1$. This argument ignores the contributions from
assignments at larger Hamming distances. However, if a large portion of
the amplitude at step $j$ is concentrated in assignments in
$S_{n/2-(j-2)}$, the other contributions to assignments in $S_{n/2-(j-1)}$
will be small both because the corresponding $u_d$ values are small and
the amplitudes in the other assignments are relatively small.

\begin{mathletters}
\eqlabel{phase1}
This discussion motivates selecting the phase for an assignment $s$ as
follows. For the first step,
\begin{equationGroup}\eqlabel{phase1First}
\rho_s = \left\{ \begin{array}{rl}
	-1	& \mbox{if $\left|\NStart - \Nb(s) \right| \bmod 4 = 2$ or 3} \\
	1	& \mbox{otherwise}
		\end{array}
	\right.
\end{equationGroup}
where $\NStart = \floor{n/2}$.  For subsequent steps, i.e., $j>1$,
\begin{equationGroup}\eqlabel{phase1Rest}
\rho_s = \left\{ \begin{array}{rl}
	1	& \mbox{if $\NStart - \Nb(s) = j-1 $ or $j-2$} \\
	-1	& \mbox{otherwise}
		\end{array}
	\right.
\end{equationGroup}
with the algorithm terminating after at most $j=\NStart+1$ steps.
\end{mathletters}

As suggested by the motivating argument, this choice of phases
requires a close relation between the number of conflicts in an
assignment and its neighborhood relations. While such a relation holds
exactly for the maximum constrained problem, it is only an
approximation for problems with fewer constraints. For example,
problems can have local minima, i.e., assignments for which $\Nb=0$
but which nevertheless have some conflicts and thus are not
solutions. More generally, the neighbors of a given assignment can
have various numbers of conflicts making it more difficult to move
amplitude one step at a time to sets of assignments with successively
fewer conflicts. These characteristics introduce variations in the
amplitudes, in effect causing some randomization of the phases. We
observed the validity of the approximation, and its usefulness as a
search strategy, was lowest for problems around the transition from
over- to underconstrained problems near $m/n=4.2$. Nevertheless, for
highly constrained problems the behavior is close enough to that of
maximum constrained cases to give the step by step shift of a large
portion of the amplitude toward assignments with fewer conflicts.




\section{Quantum Search Behavior}

The behavior of this search algorithm was examined through a classical
simulation. While these results are limited to small problems,
they nevertheless give an indication of how this algorithm can
dramatically focus amplitude into solutions. As a check on the
numerical errors, the norm of the state vector remained within
$10^{-10}$ of 1.


\subsection{Small Example}

We first illustrate the steps in this algorithm, for the trivial
problem with two variables described in \sect{sat}.  For this problem
the characteristics of the assignments and the amplitudes using
\eq{phase} are:
\begin{center}
\begin{tabular}{l|cccc}
  assignment $s$      & 00  &  01  &  10  &  11 \\ \hline
  number of conflicts & 0   &   1  &   1  &   2 \\
  $\psi_s^{(0)}$      & 0.5 & 0.5  &  0.5 & 0.5 \\
  $\rho_s \psi_s^{(0)}$ & 0.5 & 0.5  &  0.5 & $-0.5$ \\
  $\psi_s^{(1)}$      & 1 & 0  &  0 & 0 \\
\end{tabular}
\end{center}
with $c_{\rm start} = 2/2^1 =1$.

Initially the states are prepared with equal amplitudes.  At the first
step \eq{phase} inverts the amplitude of all states with more than one
conflict, i.e., the state 11 in this case. Multiplication by the
mixing matrix of \eq{U2} then gives the final amplitudes. In this
case, after one step, all the amplitude is in the single solution
state so $P_{\rm soln}=1$ and the search cost is $C=1$ step. This
compares with an expected cost of 4 steps from random selection.

The neighborhood based phases choices of \eq{phase1} are based on each
assignment's number of neighbors with fewer conflicts, and $N_{\rm
start}=1$.  For this problem, $|\NStart-\Nb(s)| \leq 1$ so
\eq{phase1First} gives no phase changes for the first step, i.e.,
$\psi_s^{(1)} = \psi_s^{(0)}$. Thus, for this small problem the
attempt to concentrate additional amplitude in assignments with
$\Nb(s) = \NStart$ has no effect. For the next step, $j=2$,
\eq{phase1Rest} inverts the phase for the assignment with $\Nb=2$,
giving
\begin{center}
\begin{tabular}{l|cccc}
  assignment $s$      & 00  &  01  &  10  &  11 \\ \hline
  $\Nb(s)$            & 0   &   1  &   1  &   2 \\
  $\NStart-\Nb(s)$    & 1   &   0  &   0  &   $-1$ \\
  $\psi_s^{(1)}$      & 0.5 & 0.5  &  0.5 & 0.5 \\
  $\rho_s \psi_s^{(1)}$ & 0.5 & 0.5  &  0.5 & $-0.5$ \\
  $\psi_s^{(2)}$      & 1 & 0  &  0 & 0 \\
\end{tabular}
\end{center}
Thus this method also gives $P_{\rm soln}=1$ but only after 2 steps,
so the search cost is $C=2$.


\subsection{Maximum Constrained Problems}

A particularly simple case is given by problems with the maximum
possible number of constraints that still allows for a solution, i.e.,
$m=m_{\rm max}$ as given in \eq{mMax}.

In this case, classical repair style search methods can find a
solution rapidly starting from any initial state, typically by
removing one conflict at a time. Similarly, incremental classical
methods will encounter conflicts immediately upon choosing any
variable value not in the solution, thus allowing the solution to be
found in $O(n)$ steps.

As shown in \app{maxConstraints}, the classical simulation of the
quantum algorithm for these problems runs rapidly.  Thus we are able
to explore the behavior of the algorithm with considerably more
variables than is possible when there are fewer constraints.

The scaling of the search cost for this extreme problem is shown in
\fig{extreme} on a log-log plot where a straight line corresponds to a
polynomial growth in the cost.  The expected search cost grows quite
slowly and is approximately proportional to $n^{1.1}$ over the range
of the figure.  For these problems \eq{phase1} gives somewhat lower
search costs than \eq{phase}. The slow growth in search cost is
particularly impressive since an unstructured quantum search requires
of order $2^{n/2}$ steps, which for $n=100$ is about $10^{15}$. While
this scaling is a polynomial growth in search cost, its cost grows a
bit faster than that of classical heuristics for these problems.

\figdef{extreme}{ 
\epsfig{file=extreme.eps} 
}{Expected search cost for maximum constrained 1-SAT vs. $n$ with the
two phase choices: black and gray are \eq{phase} and \eq{phase1},
respectively. The lines are least squares fits to the points.}

For \eq{phase}, the number of steps giving the smallest cost grows
very slowly, ranging from 2 to 4 over the range of variables shown in
the figure. For \eq{phase1}, the largest probability for a solution is
after $n/2+1$ steps. However, for the problems with $n \geq 200$, the
small probability of a solution after just the first step is enough to
give a slightly smaller search cost.


\figdef{amplitude}{ 
\epsfig{file=max3D.eps}
}{Evolution of the probability in assignments with different numbers of
conflicts for the maximum constrained problem with $n=100$ using
\eq{phase1}.  The probability for a solution reaches about 0.3 after
51 steps, giving a search cost of about 170.
}

Further insight into the behavior of this algorithm is given by
\fig{amplitude} which shows how the probability to have assignments
with different numbers of conflicts varies with each step of
\eq{map}. Specifically, for each step $j$ and each number of conflicts
$c$, the figure shows the value of $\sum_s |\psi^{(j)}_s|^2$ where the
sum is over all assignments $s$ with $c$ conflicts. As described in
\app{maxConstraints}, the amplitudes $\psi^{(j)}_s$ depend only on the
number of conflicts in the assignment $s$. Thus each term in this sum
is the same, giving ${n \choose c} |\psi^{(j)}_c|^2$ where
$\psi^{(j)}_c$ denotes the amplitude of any of the assignments with
$c$ conflicts.  The initial condition (not shown) has equal
probability, $2^{-n}$, in all assignments so the corresponding values
in this plot would be ${n \choose c} 2^{-n}$. We see a large
probability in states with $n/2-(j-1)$ conflicts after step $j$,
illustrating the effectiveness of \eq{phase1} in using neighbor
relations to move amplitude. Moreover, the large spike at 50 conflicts
for step 1 shows the effectiveness of \eq{phase1First} in
concentrating amplitude in states with $\Nb=\NStart$ for this
problem. In this case, ${100 \choose 50} |\psi^{(1)}_{50}|^2 = 0.39$
compared to its initial value ${100 \choose 50} 2^{-100} = 0.08$.

The relatively low search costs and polynomial scaling are also
observed for problems with somewhat fewer constraints than the
maximum, e.g., $m = m_{\rm max}/2$, using this choice of phases.
While this extends the range of good performance for the quantum
algorithm, such a scaling also gives relatively easy problems for
classical heuristics as well.


\subsection{Problems with Fewer Constraints}

The ability of this algorithm to concentrate amplitude into solutions
for highly constrained problems is a significant improvement over
unstructured search methods. However, such problems are inherently
easy because they can be readily solved by classical heuristic
methods, for both incremental and repair style searches.  By contrast,
the difficult search problems, on average, have an intermediate number
of constraints~\cite{hogg95e}: not so few that most assignments are
solutions, nor so many that any incorrect search choices can be
quickly pruned. Specifically, for $k$-SAT the difficult problems have
scaling $m = O(n)$, with the proportionality constant giving the
largest concentration of hard cases depending on the choice of
$k$. For instance, with $k=3$, the hard cases are concentrated
near~\cite{crawford95} $m = 4.2 n$. Thus it is important to examine
the behavior of the algorithm for problems with fewer constraints.
In this section we do so using the phase choice of \eq{phase}.

\figdef{largerExample}{ 
\epsfig{file=largerExample.eps} 
}{Probability in each assignment for a 3-SAT instance with $n=12$ after $J=5$
steps. The problem has $m=48$, with 4 solutions and
$P_{\rm soln}=0.013$. The large gray points are the solutions.}

A larger example of how the algorithm concentrates amplitude into
solutions is shown in \fig{largerExample}. It shows the values of
$|\psi^{(J)}_s|^2$ for each of the $2^n$ assignments.  The assignments
are grouped by their number of conflicts and, within each group, by
the integer corresponding to the binary representation of the
assignment.  For clarity, assignments with each number of conflicts
are given the same amount of horizontal space in the plot, even though
there are, e.g., many more assignments with 6 conflicts than with 0 or
12. There are $2^{12}$ assignments, so random selection would give a
probability of about 0.0002 to each assignment. We see that the
algorithm results in many states with relatively few conflicts,
including the solutions, having considerably larger probabilities than
due to random selection.

The figure also illustrates the variation in $|\psi^{(J)}_s|^2$ among
the assignments showing that, unlike the extreme problem of the
previous section, the amplitudes do not depend only on the number of
conflicts. Rather the details of which constraints apply to each
assignment give rise to the variation in values seen here. This
variation precludes a simple theoretical analysis of the algorithm.


\figdef{scaling}{ 
\epsfig{file=scaling.eps} 
}{Expected search cost for random 3-SAT with at least one solution
vs. $n$ with $m/n=4$ on a log plot. For each value of $n$, 1000
problem instances were used. Error bars showing the expected error in
the estimate are included but are smaller than the size of the plotted
points.}

For problems near the transition from over- to underconstrained cases,
the scaling behavior of this algorithm is shown in
\fig{scaling}. Specifically, we generated random soluble instances of
3-SAT problems with $m= 4 n$, as described in \sect{sat}. With $m = 4
n$, a large fraction of the randomly generated instances are soluble,
so random soluble instances are readily generated.  The nearly linear
behavior on this log-plot indicates the seach cost grows exponentially
for these problems. Thus this algorithm is not particularly effective
for the hard problem instances, which are concentrated near the
transition region of $m = 4.2 n$.

\figdef{phase}{ 
\epsfig{file=phase.eps} 
}{Expected search cost for random 3-SAT for $n=10$ vs. $m/n$. Each point
represents 1000 problem instances, except only 100 random soluble
instances are shown at $m/n$ equal to 12 and 13. The black line is for
random soluble problems while the gray line is for problems with
prespecified solution. Error bars showing the expected error in the
estimate are included but, in most cases, are smaller than the size of
the plotted points.}

To show how this algorithm is capable of using structure to improve
performance, we examined the behavior as a function of the number of
constraints. To allow sampling the behavior of problems with many
constraints we used random problems with prespecified solution to
cover the full range of $m/n$, generated as described in
\sect{sat}. For comparison, we also examined the behavior of random
soluble problems up to $m/n=15$.  As shown in \fig{phase}, the search
cost eventually decreases as problems become highly constrained,
though at a larger value of $m/n$ than for both the incremental
quantum search method~\cite{hogg97} and classical methods, whose cost
is largest near the transition at $m = 4.2 n$. Thus the local quantum
search method introduced here has only limited effectiveness at using
structure to reduce search cost. Nevertheless, it is better than
unstructured search for highly constrained problems.




\section{ Discussion}

The algorithm presented here shows how the structure of search
problems can be used as the basis of a quantum search algorithm. The
algorithm is particularly effective for relatively highly constrained
problems. It is less effective for problems with an intermediate
number of constraints.

The algorithm might be improved in a number of ways. First, the
initial motivation for the matrix $U$ was to maximally connect
assignments to their neighbors. In fact, we found that the mapping
allowed the algorithm to work best with fewer steps than might be
expected from moving among neighbors one step at a time. It may be
possible to design other mappings that do this even more effectively.

Another issue is the structure of the types of mappings possible with
different choices of the phases for the diagonal matrix $D$. As we
saw, the matrix elements depend only on the Hamming distance between
the assignments when the diagonal elements of $D$ depend only on the
number of 1-bits. It may be helpful to apply the testing operation,
and consequent phase adjustments, more frequently as amplitude is
moved to neighbors than is possible when $U$ has the largest possible
mixing between neighbors. One such method is to decompose $U$ into a
product of matrices, each of which introduces a smaller amount of
mixing, e.g., using $U= W D^{1/s} W$, where $D^{1/s}$ is a diagonal
matrix with $\tau_h=1$ if $h \leq n/2$ and $\tau=e^{i \pi/s}$
otherwise. Phase adjustments can then be introduced between the
components of this product. Another method uses somewhat smaller
values of $u_1$ while retaining real values for $U$ by picking a value
$\alpha <n/2$ and using $\tau_h=1$ if $h \leq \alpha$ and $\tau=-1$
otherwise. The resulting mixing matrix has a more diffusive behavior,
giving smaller changes with each step and hence more opportunity to
apply the phase adjustment. Taken to an extreme, with $\alpha=0$, this
recovers the diffusion matrix of the unstructured
search~\cite{grover96}, which moves too little amplitude among states
at each step to finish rapidly.

There are also a variety of phase adjustment policies. Those studied
here are effective for highly constrained problems, but we found that
other choices can enhance performance in some cases.  Furthermore,
since we focus on typical or average behavior, other choices that do
not improve the average but result in smaller variance would also be
useful in improving the predictablility of the algorithm's
performance.

As a possible extension to this algorithm, it would be interesting to
see whether the nonsolution sets with relatively high probability
could be useful also. If so, the benefits of this algorithm would
be greater than indicated by its direct ability to produce solution
sets. This may also suggest similar algorithms for the related
optimization problems where the task is to find the best solution
according to some metric, not just one consistent with the problem
constraints.

There remain a number of important questions. First, how are the
results degraded by errors and decoherence, the major difficulties for
the construction of quantum
computers~\cite{landauer94a,unruh94,haroche96,monroe96a}? While there
has been recent progress in
implementation~\cite{barenco95,cirac95,cory96,gershenfeld96,sleator95},
quantum approaches to error control~\cite{berthiaume94,shor95} and
studies of decoherence in the context of factoring~\cite{chuang95} it
remains to be seen how these problems affect the algorithm presented
here. However, two aspects of our algorithm may reduce the effect of
errors. First, the algorithm is based on attempts to randomize phases
of contributions to nonsolutions while maintaining similar phases for
contributions to solutions. Since the precise values of the randomized
phases are not critical, some additional variations due to noise
should be tolerable. Second, for problems with $n$ variables the
algorithm requires only $O(n)$ steps during which quantum coherence
must be maintained. That is, coherence need not be maintained between
successive trials of the algorithm. This contrasts with the
$O(2^{n/2})$ coherent steps required by the unstructured
algorithm~\cite{grover96}.  Thus even though our algorithm may need to
be repeated many times to give a good chance of finding a solution, it
has less stringent coherence requirements which can simplify its
hardware implementation.


The second remaining question is due to the algorithm's restriction to
CSPs with two values per variable. This contrasts with the method that
constructs solutions incrementally~\cite{hogg95d} by operating in a
greatly expanded search space. Other CSPs can be converted to
equivalent problems with two values, but it is often better to operate
directly with the problem as specified. Thus an important open
question is whether the neighborhood-based mixing matrix can be
effectively generalized to apply directly to CSPs with larger domain
sizes.

Third, it would be useful to have a theory for asymptotic behavior of
this algorithm for large $n$, even if only approximately in the spirit
of mean-field theories of physics. This would give a better indication
of the scaling behavior than the classical simulations, necessarily
limited to small cases, and may also suggest better phase
choices. Considering these questions may suggest simple modifications
to the quantum map to improve its robustness and scaling.

Finally, there is the general issue of optimally using the information
that can be readily extracted from search states. Local search methods
rely on the number of conflicts and the neighborhood relations among
states. In the method presented here, only a small amount of this
information was actually used to determine the phase
choices. Additional information is available on partial assignments,
as used with incremental searches, but at the cost of involving a
greatly expanded search space.  Making fuller use of this available
information could improve the performance, especially in conjunction
with a theoretical understanding of the typical structure of classes
of search problems~\cite{hogg95e}.



\appendix
\section{Appendix: Neighborhood Mixing Matrix}\sectlabel{matrix}

Here we show that the mixing matrix $U$ used in our algorithm is the
unitary matrix depending only on the Hamming distance between states
that gives the largest possible contribution to neighbors. We do this
in two steps. We first show that matrices whose elements depend only
on Hamming distance can be expressed in the form $W D W$ where $W$ is
given by \eq{W} and $D$ is diagonal with elements depending only on
the number of 1-bits in the assignments. In the second step, we show
that our choice of values for $D$ gives the largest possible mapping
to neighbors among unitary matrices of this form.

\subsection{Matrix Decomposition}

For $n$
variables, the matrices have dimensions $2^n \times 2^n$ and elements
determined by a set of values $u_0,\ldots,u_n$, i.e.,
$U_{rs}=u_{d(r,s)}$. For example, with $n=2$ and the states binary
order, i.e., 00, 01, 10, and 11, the matrix has the general form
\begin{equation}\eqlabel{generalU}
U = \pmatrix{
u_0 & u_1 & u_1 & u_2 \cr
u_1 & u_0 & u_2 & u_1 \cr
u_1 & u_2 & u_0 & u_1 \cr
u_2 & u_1 & u_1 & u_0 \cr
}
\end{equation}

These matrices have a simple recursive decomposition when the states
are in binary order, i.e., ordered by the value of the integer with
corresponding binary representation, namely
\begin{equation}\eqlabel{Udecomposition}
U = 
	\pmatrix{
		U_0 & U_1\cr
		U_1 & U_0\cr
	}
\end{equation}
where the $2^{n-1} \times 2^{n-1}$ matrices $U_0$ and $U_1$ also have
elements depending only on the Hamming distance between assignments,
but considering only the first $n-1$ variables. An example of this
decomposition can be seen in the structure of \eq{generalU}.

This decomposition gives a particularly simple expression for these
matrices. Specifically, define the matrix $\W$ as
\begin{equation}\eqlabel{Wunnormalized}
\W_{rs} = (-1)^\ones{r \bitA s}
\end{equation}
For example, when
$n=2$,
\begin{equation}
\W = \pmatrix{
1 &  1 &  1 &  1 \cr
1 & -1 &  1 & -1 \cr
1 &  1 & -1 & -1 \cr
1 & -1 & -1 &  1 \cr
}
\end{equation}
This matrix also has a
recursive decomposition
\begin{equation}\eqlabel{Wdecomposition}
\W = 
	\pmatrix{
		\W^{\prime} & \W^{\prime}\cr
		\W^{\prime} & -\W^{\prime}\cr
	}
\end{equation}
where $\W^{\prime}$ is the same matrix but defined on assignments to
$n-1$ variables.

Now consider the product $\W U \W$. For $n=1$, this gives
\begin{equation}
\pmatrix{
  2(u_0 + u_1) & 0 \cr
  0            & 2(u_0 - u_1) \cr
}
\end{equation}
which is a diagonal matrix. Now suppose that $\W U \W$ is always
diagonal for any matrix with $U_{rs}$ depending only on $d(r,s)$ up to
$n-1$ variables. Using the recursive decompositions of
\eq{Udecomposition} and \bareeq{Wdecomposition} then gives, for a
matrix with $n$ variables
\begin{equation}
\W U \W = \pmatrix{
  		2\W^{\prime} (U_0+U_1) \W^{\prime} & 0 \cr
		0 & 2\W^{\prime} (U_0-U_1) \W^{\prime}\cr
          }
\end{equation}
Each of the submatrices are diagonal because they involve products of
the form $\W U \W$ for $n-1$ variables. Thus, by induction, $\W U \W$
is a diagonal matrix for all $n$, which we denote by $N D$, where
$N=2^n$. Note that \eq{W} is $W = \W / \sqrt{N}$.  The matrix $W$ is
symmetric and unitary~\cite{grover96}. In particular, $W$ is its own
inverse: $W W = I$.  Thus from $\W U \W = N D$ we obtain $U = W D W$.

Furthermore, the diagonal elements of $D$ depend only on the number of
1-bits in the assignments, i.e., $D_{rr} = \tau_\ones{r}$ for some set
of values $\tau_0,\ldots,\tau_n$. To see this, we have
\begin{eqnarray}
(\W U \W)_{rr}
        & = & \sum_{xy} u_{d(x,y)} (-1)^{\ones{r \bitA x}+\ones{y \bitA r}} \\
        & = & \sum_d u_d \sum_{z=0}^{\ones{r}} (-1)^z {\sum_{xy}}^\prime 1
\end{eqnarray}
where the innermost sum of the second line is over all assignments $x$
and $y$ for which $d(x,y)=d$ and $\ones{r \bitA x}+\ones{y \bitA r} =
z$. For this inner sum, consider those assignments $x$ with exactly
$\eta$ 1-bits in common with $r$, i.e., $\ones{r \bitA x}=\eta$. There
are ${\ones{r} \choose \eta} 2^{n-\ones{r}}$ such choices for
$x$. Then the $y$ sum counts the number of assignments $y$ such that
$d(x,y)=d$ and $\ones{y \bitA r} = z - \eta$. These assignments are
characterized by $a$, the number of 1-bits they share with both $r$
and $x$. The number of such $y$ is readily seen to be
$$
{\eta \choose a} {\ones{r}-\eta \choose z-\eta-a} {n-\ones{r} \choose d-z+2a}
$$
% see diagonalDerivation.m
Summing over $a$ then gives the total number of assignments $y$, which
we denote as $\nu(d,z,\eta,\ones{r})$. Combining these observations gives
\begin{equation}
(\W U \W)_{rr} = \sum_d u_d \sum_z (-1)^z \sum_\eta {\ones{r} \choose \eta} 2^{n-\ones{r}} \nu(d,z,\eta,\ones{r})
\end{equation}
which depends only on the number of 1-bits in the assignment $r$.

In summary, {\em any} matrix whose values depend only on the Hamming
distance between assignments can be written in the form $U = W D W$
where $D$ is a diagonal matrix with elements depending only on the
number of 1-bits in the assignments. That is, the values for
$u_0,\ldots,u_n$ are uniquely determined by the diagonal values of
$D$, which in turn are fully specified by the values
$\tau_0,\ldots,\tau_n$ for assignments with each possible number of
1-bits.

Since $W$ is unitary, $U$ will be unitary if and only if $D$ is. For
diagonal matrices, the unitary condition is equivalent to the
requirement that each diagonal element is a phase, i.e., a complex
number whose magnitude equals one.


\subsection{Maximum Mapping to Neighbors}

To determine the choices for $\tau_h$ that give the largest possible
value for $u_1$, we have
\begin{equation}
U_{rs} = \frac{1}{N} \sum_{h=0}^n \tau_h S_h(r,s)
\end{equation}
where
\begin{equation}
S_h(r,s) = \sum_{t, \ones{t}=h} (-1)^{\ones{r \bitA t} + \ones{s \bitA t}}
\end{equation}
with the sum over all assignments $t$ with $h$ 1-bits.

A given 1-bit at position $e$ of $t$ contributes 0, 1 or 2 to $\ones{r
\bitA t} + \ones{s \bitA t}$ when positions $e$ of $r$ and $s$ are
both 0, have exactly a single 1-bit, or are both 1, respectively.
Thus $(-1)^{\ones{r \bitA t} + \ones{s \bitA t}}$ equals $(-1)^z$
where $z$ is the number of 1-bits in $t$ that are in exactly one of
$r$ and $s$. There are $(\ones{r}-\ones{r \bitA s})+(\ones{s}-\ones{r
\bitA s})$ positions from which such bits of $t$ can be selected, and
by \eq{hamming} this is just $d(r,s)$.  Thus the number of assignments
$t$ with $h$ 1-bits and $z$ of these bits in exactly one of $r$ and
$s$ is given by ${d \choose z} {n-d \choose h-z}$ where $d = d(r,s)$. Thus
$S_h(r,s) = S_{hd}^{(n)}$ where
\begin{equation}\eqlabel{Skm}
S_{hd}^{(n)} = \sum_z (-1)^z {d \choose z} {n-d \choose h-z}
\end{equation}
so that $U_{rs}=u_{d(r,s)}$ with $u_d = \sum_h \tau_h S_{hd}^{(n)}/N$.  

To select the values of $\tau_h$ that maximize $u_1$, note that
$S_{01}^{(n)} = 1$ and $S_{h1}^{(n)} = {n-1 \choose h} - {n-1 \choose
h-1}$.  Thus $S_{h1}^{(n)}$ is positive for $n>2h$ and negative for
$n<2h$, and $u_1$ is maximized by selecting $\tau_h$ to be 1 for
$h<n/2$ and $-1$ for $h>n/2$. If $n$ is even, $S_{h1}^{(n)}$ is zero
for $h=n/2$ so the choice of $\tau_{n/2}$ does not affect the value of
$u_1$.  In this case, we take $\tau_{n/2}=1$.  These choices give $u_1
= \frac{2}{N} {n-1 \choose \lfloor n/2 \rfloor}$ which scales as
$\sqrt{2/(\pi n)}$ as $n \rightarrow \infty$. Note this is much larger
than the off-diagonal matrix elements in the diffusion matrix used in
the unstructured search algorithm~\cite{grover96}, which are $O(1/N) =
O(2^{-n})$.

This maximum neighbor mixing matrix is identical to that used with an
incremental search method~\cite{hogg97} but with a different
interpretation of the search states. If instead we take $\tau_0=-1$ and
the remaining values equal to one $U$ becomes the diffusion matrix of
the unstructured search method~\cite{grover96}.



\section{Appendix: Classical Simulation}

A direct classical simulation of the quantum algorithm results in an
exponential increase in the cost, limiting the empirical evaluation of the
algorithm to small cases. Nevertheless, the simple structure of the mixing
matrix $U$ can be used to reduce this cost penalty. It can be further
reduced for the special case of soluble problems with the maximum
possible number of constraints.

\subsection{General Problems}\sectlabel{classical}

As a practical matter, it is helpful if a quantum search method can be
evaluated effectively on existing classical computers.  Unfortunately,
the exponential slowdown and growth in memory required for such a
simulation severely limits the size of feasible problems. For example,
\eq{map} is a matrix multiplication of a vector of size $2^n$ so a
direct evaluation requires $O(2^{2n})$ multiplications.

The cost of the classical simulation can be reduced substantially by
exploiting the map{'}s simple structure.  Specifically, the product
$\W{\bf x}$ can be computed recursively using \eq{Wdecomposition}
giving
\begin{equation}
\W{\bf x} =
	\pmatrix{
		\W^{\prime}{\bf x^{(1)}} + \W^{\prime}{\bf x^{(2)}} \cr
		\W^{\prime}{\bf x^{(1)}} - \W^{\prime}{\bf x^{(2)}} \cr
	}
\end{equation}
where $\bf x^{(1)}$ and $\bf x^{(2)}$ denote, respectively, the first
and second halves of the vector $\bf x$. Thus the cost to compute
$\W{\bf x}$ is $C(n)=2C(n-1)+O(2^n)$ resulting in an overall cost of
order $n2^n$ for this product as well as the full mapping step $U{\bf
x} = (1/N) \W D \W{\bf x}$. While still exponential, this improves
substantially on the cost for the direct evaluation on classical
machines. An open question is whether other techniques could give
approximate values for the behavior without an exponential cost on
classical machines~\cite{cerf97}.


\subsection{Maximally Constrained Problems}\sectlabel{maxConstraints}

In general, the cost of a classical simulation of the quantum
algorithm grows exponentially with the number of variables. However,
the simulation cost is greatly reduced in some special cases where the
amplitudes have a regular structure. One such case is provided by
problems with the maximum possible number of constraints that still
allows for a solution.

For such problems, the amplitudes depend only on the number of
conflicts in each assignment, not their particular location. This
observation allows for a smaller representation of the search state
and hence an empirical study of larger cases.  To see this, consider a
1-SAT problem with $n$ variables. The most constrained, but still
soluble, case will have $n$ conflicts, each involving a distinct
variable. Thus each variable has an associated ``bad bit'' value that
causes a conflict. The number of conflicts in a given assignment $s$
is then just equal to the number of bad bits it contains. An
assignment with $c$ conflicts will have $c$ neighbors with $c-1$
conflicts and $n-c$ neighbors with $c+1$ conflicts. Thus the
neighborhood structure of the problem is uniquely determined by the
number of conflicts in the assignments.

Suppose $\psi^{(j)}_s$ depends only on the number of conflicts in the
assignment $s$. We need to show that after a single step, \eq{map}
gives values for $\psi^{(j+1)}_r$ that only depend on the number of
conflicts in $r$. First note that the phase choice $\rho_s$ uses only
the neighborhood structure of $s$, which for these problems depends
only on the number of conflicts in $s$. Thus $\rho_s \psi^{(j)}_s$
depends only on $c$, the number of conflicts in $s$, and can be
denoted by $\phi_c$. Since the mixing matrix $U_{rs}$
depends only on the Hamming distance between the assignments $r$ and
$s$, \eq{map} becomes
\begin{equation}
\psi^{(j+1)}_r = \sum_d u_d \sum_c \phi_c {\sum_s}^\prime 1
\end{equation}
where the inner sum is over assignments $s$ with $c$ conflicts and
Hamming distance $d$ from the assignment $r$. Suppose $r$ has $b$
conflicts. Of the $c$ ``bad bits'' in $s$, $(c+b-d)/2$ are in common
with those of $r$, and the remaining $(c-b+d)/2$ do not appear in
$r$. The number of ways to construct such assignments $s$ is then
$$ {b \choose (c+b-d)/2} {n-b \choose (c-b+d)/2} $$ Thus the result of
this mapping step depends only on the number of conflicts in the
assignment $r$, preserving the simple structure of the search state.
Thus we can represent the entire search state by simply keeping track
of the amplitudes associated with each possible number of conflicts,
i.e.,
\begin{equation}
\psi^{(j+1)}_b = \sum_c V^{\rm max}_{bc} \rho_c \psi^{(j)}_c
\end{equation}
where $b$ and $c$ range from 0 to $n$ and
\begin{equation}
V^{\rm max}_{bc} = \sum_d u_d {b \choose (c+b-d)/2} {n-b \choose (c-b+d)/2}
\end{equation}

Because the search state depends only on the number of conflicts and
not their specific associated variables or values, we can, without
loss of generality, choose the conflicts so that all the ``bad bits''
have the value 1, i.e., the unique solution of the problem has all
variables equal to 0. With this choice, we can then make use of the
decomposition of the mixing matrix. That is, $V^{\rm max} = W^{\rm
max} D^{\rm max} W^{\rm max}$ where $D^{\rm max}$ is a diagonal matrix
with $D^{\rm max}_{bb}$ equal to 1 for $b \leq n/2$ and $-1$
otherwise, and
\begin{equation}
W^{\rm max}_{bc} = \frac{1}{\sqrt{N}}\sum_z (-1)^z {b \choose z} {n-b \choose c-z} = \frac{S_{cb}^{(n)}}{\sqrt{N}}
\end{equation}
from \eq{Skm}.  Here the binomials in the sum count, for an assignment
$r$ with $b$ 1-bits, the number of assignments $s$ with $c$ 1-bits
that have $\ones{r \bitA s}=z$. This decomposition is possible for
this particular choice of the unique solution because the number of
1-bits correspond to the number of conflicts.

In this way, classical evaluation of \eq{map} reduces to
multiplication by matrices of size $(n+1) \times (n+1)$, with cost of
order $n^2$.


Finally, 1-SAT problems with fewer than the maximum number of
constraints also have the property that the amplitudes depend only on
the number of conflicts in each assignment. So this compact
representation could be used to study other cases of 1-SAT with many
more variables than is feasible for a direct classical simulation.





\begin{thebibliography}{10}

\bibitem{barenco95}
Adriano Barenco, David Deutsch, and Artur Ekert.
\newblock Conditional quantum dynamics and logic gates.
\newblock {\em Physical Review Letters}, 74:4083--4086, 1995.

\bibitem{benioff82}
P.~Benioff.
\newblock Quantum mechanical hamiltonian models of {Turing} machines.
\newblock {\em J. Stat. Phys.}, 29:515--546, 1982.

\bibitem{bernstein92}
Ethan Bernstein and Umesh Vazirani.
\newblock Quantum complexity theory.
\newblock In {\em Proc. 25th ACM Symp. on Theory of Computation}, pages 11--20,
  1993.

\bibitem{berthiaume94}
Andre Berthiaume, David Deutsch, and Richard Jozsa.
\newblock The stabilization of quantum computations.
\newblock In {\em Proc. of the Workshop on Physics and Computation
  (PhysComp94)}, pages 60--62, Los Alamitos, CA, 1994. IEEE Press.

\bibitem{boyer96}
Michel Boyer, Gilles Brassard, Peter Hoyer, and Alain Tapp.
\newblock Tight bounds on quantum searching.
\newblock In T.~Toffoli et~al., editors, {\em Proc. of the Workshop on Physics
  and Computation (PhysComp96)}, pages 36--43, Cambridge, MA, 1996. New England
  Complex Systems Institute.

\bibitem{cerf97}
N.~J. Cerf and S.~E. Koonin.
\newblock {Monte Carlo} simulation of quantum computation.
\newblock In {\em Proc. of IMACS Conf. on Monte Carlo Methods}, 1997.
\newblock Los Alamos preprint quant-ph/9703050.

\bibitem{chuang95}
I.~L. Chuang, R.~Laflamme, P.~W. Shor, and W.~H. Zurek.
\newblock Quantum computers, factoring and decoherence.
\newblock {\em Science}, 270:1633--1635, 1995.

\bibitem{cirac95}
J.~I. Cirac and P.~Zoller.
\newblock Quantum computations with cold trapped ions.
\newblock {\em Physical Review Letters}, 74:4091--4094, 1995.

\bibitem{cory96}
David~G. Cory, Amr~F. Fahmy, and Timothy~F. Havel.
\newblock Nuclear magnetic resonance spectroscopy: An experimentally accessible
  paradigm for quantum computing.
\newblock In T.~Toffoli et~al., editors, {\em Proc. of the Workshop on Physics
  and Computation (PhysComp96)}, pages 87--91, Cambridge, MA, 1996. New England
  Complex Systems Institute.

\bibitem{crawford95}
James~M. Crawford and Larry~D. Auton.
\newblock Experimental results on the crossover point in random {3SAT}.
\newblock {\em Artificial Intelligence}, 81:31--57, 1996.

\bibitem{deutsch85}
D.~Deutsch.
\newblock Quantum theory, the {Church-Turing} principle and the universal
  quantum computer.
\newblock {\em Proc. R. Soc. London A}, 400:97--117, 1985.

\bibitem{deutsch89}
D.~Deutsch.
\newblock Quantum computational networks.
\newblock {\em Proc. R. Soc. Lond.}, A425:73--90, 1989.

\bibitem{divincenzo95}
David~P. DiVincenzo.
\newblock Quantum computation.
\newblock {\em Science}, 270:255--261, 1995.

\bibitem{feynman86}
R.~P. Feynman.
\newblock Quantum mechanical computers.
\newblock {\em Foundations of Physics}, 16:507--531, 1986.

\bibitem{feynman85}
Richard~P. Feynman.
\newblock {\em {QED}: The Strange Theory of Light and Matter}.
\newblock Princeton Univ. Press, NJ, 1985.

\bibitem{garey79}
M.~R. Garey and D.~S. Johnson.
\newblock {\em Computers and Intractability: A Guide to the Theory of
  NP-Completeness}.
\newblock W. H. Freeman, San Francisco, 1979.

\bibitem{gershenfeld96}
Neil Gershenfeld, Isaac Chuang, and Seth Lloyd.
\newblock Bulk quantum computation.
\newblock In T.~Toffoli et~al., editors, {\em Proc. of the Workshop on Physics
  and Computation (PhysComp96)}, page 134, Cambridge, MA, 1996. New England
  Complex Systems Institute.

\bibitem{grover96}
Lov~K. Grover.
\newblock A fast quantum mechanical algorithm for database search.
\newblock In {\em Proc. of the 28th Annual Symposium on the Theory of Computing
  (STOC96)}, pages 212--219, 1996.

\bibitem{haroche96}
Serge Haroche and Jean-Michel Raimond.
\newblock Quantum computing: Dream or nightmare?
\newblock {\em Physics Today}, pages 51--52, August 1996.

\bibitem{hogg94b}
Tad Hogg.
\newblock Statistical mechanics of combinatorial search.
\newblock In {\em Proc. of the Workshop on Physics and Computation
  (PhysComp94)}, pages 196--202, Los Alamitos, CA, 1994. IEEE Press.

\bibitem{hogg95d}
Tad Hogg.
\newblock Quantum computing and phase transitions in combinatorial search.
\newblock {\em J. of Artificial Intelligence Research}, 4:91--128, 1996.
\newblock Available online at http://www.jair.org/ab\-stracts/hogg96a.html.

\bibitem{hogg97}
Tad Hogg.
\newblock A framework for structured quantum search.
\newblock 1997.
\newblock Available at xxx.lanl.gov/abs/quant-ph/9701013.

\bibitem{hogg95e}
Tad Hogg, Bernardo~A. Huberman, and Colin Williams.
\newblock Phase transitions and the search problem.
\newblock {\em Artificial Intelligence}, 81:1--15, 1996.

\bibitem{hoyer97}
Peter Hoyer.
\newblock Efficient quantum transforms.
\newblock Los Alamos preprint http://xxx.lanl.gov/abs/quant-ph/9702028,
  February 1997.

\bibitem{kirkpatrick83}
S.~Kirkpatrick, C.~D. Gelatt, and M.~P. Vecchi.
\newblock Optimization by simulated annealing.
\newblock {\em Science}, 220:671--680, 1983.

\bibitem{kirkpatrick94}
Scott Kirkpatrick and Bart Selman.
\newblock Critical behavior in the satisfiability of random boolean
  expressions.
\newblock {\em Science}, 264:1297--1301, 1994.

\bibitem{landauer94a}
Rolf Landauer.
\newblock Is quantum mechanically coherent computation useful?
\newblock In D.~H. Feng and B-L. Hu, editors, {\em Proc. of the Drexel-4
  Symposium on Quantum Nonintegrability}. International Press, 1994.

\bibitem{lloyd93}
Seth Lloyd.
\newblock A potentially realizable quantum computer.
\newblock {\em Science}, 261:1569--1571, 1993.

\bibitem{luby93}
Michael Luby and Wolfgang Ertel.
\newblock Optimal parallelization of {Las Vegas} algorithms.
\newblock Technical report, Intl. Comp. Sci. Inst., Berkeley, CA, July 14 1993.

\bibitem{mackworth92}
Alan Mackworth.
\newblock Constraint satisfaction.
\newblock In S.~Shapiro, editor, {\em Encyclopedia of Artificial Intelligence},
  pages 285--293. Wiley, 1992.

\bibitem{mermin85}
N.~David Mermin.
\newblock Is the moon there when nobody looks? {R}eality and the quantum
  theory.
\newblock {\em Physics Today}, pages 38--47, April 1985.

\bibitem{minton92}
Steven Minton, Mark~D. Johnston, Andrew~B. Philips, and Philip Laird.
\newblock Minimizing conflicts: A heuristic repair method for constraint
  satisfaction and scheduling problems.
\newblock {\em Artificial Intelligence}, 58:161--205, 1992.

\bibitem{monasson96}
Remi Monasson and Riccardo Zecchina.
\newblock The entropy of the k-satisfiability problem.
\newblock {\em Phys. Rev. Lett.}, 76:3881--3885, 1996.

\bibitem{monroe96a}
Christopher Monroe and David Wineland.
\newblock Future of quantum computing proves to be debatable.
\newblock {\em Physics Today}, pages 107--108, November 1996.

\bibitem{nijenhuis78}
A.~Nijenhuis and H.~S. Wilf.
\newblock {\em Combinatorial Algorithms for Computers and Calculators}.
\newblock Academic Press, New York, 2nd edition, 1978.

\bibitem{selman92}
Bart Selman, Hector Levesque, and David Mitchell.
\newblock A new method for solving hard satisfiability problems.
\newblock In {\em Proc. of the 10th Natl. Conf. on Artificial Intelligence
  (AAAI92)}, pages 440--446, Menlo Park, CA, 1992. AAAI Press.

\bibitem{shor95}
P.~Shor.
\newblock Scheme for reducing decoherence in quantum computer memory.
\newblock {\em Physical Review A}, 52:2493--2496, 1995.

\bibitem{shor94}
Peter~W. Shor.
\newblock Algorithms for quantum computation: Discrete logarithms and
  factoring.
\newblock In S.~Goldwasser, editor, {\em Proc. of the 35th Symposium on
  Foundations of Computer Science}, pages 124--134. IEEE Press, November 1994.

\bibitem{sleator95}
Tycho Sleator and Harald Weinfurter.
\newblock Realizable universal quantum logic gates.
\newblock {\em Physical Review Letters}, 74:4087--4090, 1995.

\bibitem{unruh94}
W.~G. Unruh.
\newblock Maintaining coherence in quantum computers.
\newblock {\em Physical Review A}, 51:992--997, 1995.

\end{thebibliography}


\end{document}



