Quantum tunneling and quantum walks as algorithmic resources to solve hard K-SAT instances

Abstract We present a new quantum heuristic algorithm aimed at finding satisfying assignments for hard K -SAT instances using a continuous time quantum walk that explicitly exploits the properties of quantum tunneling. Our algorithm uses a Hamiltonian $$H_A(F)$$ <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mrow> <mml:msub> <mml:mi>H</mml:mi> <mml:mi>A</mml:mi> </mml:msub> <mml:mrow> <mml:mo>(</mml:mo> <mml:mi>F</mml:mi> <mml:mo>)</mml:mo> </mml:mrow> </mml:mrow> </mml:math> which is specifically constructed to solve a K -SAT instance F . The heuristic algorithm aims at iteratively reducing the Hamming distance between an evolving state $${|{\psi _j}\rangle }$$ <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mrow> <mml:mrow> <mml:mo>|</mml:mo> </mml:mrow> <mml:msub> <mml:mi>ψ</mml:mi> <mml:mi>j</mml:mi> </mml:msub> <mml:mrow> <mml:mo>⟩</mml:mo> </mml:mrow> </mml:mrow> </mml:math> and a state that represents a satisfying assignment for F . Each iteration consists on the evolution of $${|{\psi _j}\rangle }$$ <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mrow> <mml:mrow> <mml:mo>|</mml:mo> </mml:mrow> <mml:msub> <mml:mi>ψ</mml:mi> <mml:mi>j</mml:mi> </mml:msub> <mml:mrow> <mml:mo>⟩</mml:mo> </mml:mrow> </mml:mrow> </mml:math> (where j is the iteration number) under $$e^{-iH_At}$$ <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:msup> <mml:mi>e</mml:mi> <mml:mrow> <mml:mo>-</mml:mo> <mml:mi>i</mml:mi> <mml:msub> <mml:mi>H</mml:mi> <mml:mi>A</mml:mi> </mml:msub> <mml:mi>t</mml:mi> </mml:mrow> </mml:msup> </mml:math> , a measurement that collapses the superposition, a check to see if the post-measurement state satisfies F and in the case it does not, an update to $$H_A$$ <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:msub> <mml:mi>H</mml:mi> <mml:mi>A</mml:mi> </mml:msub> </mml:math> for the next iteration. Operator $$H_A$$ <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:msub> <mml:mi>H</mml:mi> <mml:mi>A</mml:mi> </mml:msub> </mml:math> describes a continuous time quantum walk over a hypercube graph with potential barriers that makes an evolving state to scatter and mostly follow the shortest tunneling paths with the smaller potentials that lead to a state $${|{s}\rangle }$$ <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mrow> <mml:mo>|</mml:mo> <mml:mi>s</mml:mi> <mml:mo>⟩</mml:mo> </mml:mrow> </mml:math> that represents a satisfying assignment for F . The potential barriers in the Hamiltonian $$H_A$$ <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:msub> <mml:mi>H</mml:mi> <mml:mi>A</mml:mi> </mml:msub> </mml:math> are constructed through a process that does not require any previous knowledge on the satisfying assignments for the instance F . Due to the topology of $$H_A$$ <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:msub> <mml:mi>H</mml:mi> <mml:mi>A</mml:mi> </mml:msub> </mml:math> each iteration is expected to reduce the Hamming distance between each post measurement state and a state $${|{s}\rangle }$$ <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mrow> <mml:mo>|</mml:mo> <mml:mi>s</mml:mi> <mml:mo>⟩</mml:mo> </mml:mrow> </mml:math> . If the state $${|{s}\rangle }$$ <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mrow> <mml:mo>|</mml:mo> <mml:mi>s</mml:mi> <mml:mo>⟩</mml:mo> </mml:mrow> </mml:math> is not measured after n iterations (the number n of logical variables in the instance F being solved), the algorithm is restarted. Periodic measurements and quantum tunneling also give the possibility of getting out of local minima. Our numerical simulations show a success rate of 0.66 on measuring $${|{s}\rangle }$$ <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mrow> <mml:mo>|</mml:mo> <mml:mi>s</mml:mi> <mml:mo>⟩</mml:mo> </mml:mrow> </mml:math> on the first run of the algorithm (i.e., without restarting after n iterations) on thousands of 3-SAT instances of 4, 6, and 10 variables with unique satisfying assignments.