For the operation , note that each value in Eq. (13) has unit magnitude so R is a unitary diagonal matrix. Furthermore each only requires using the efficient classical procedure f(s) that counts the number of conflicts in an assignment s. We require a reversible version of this procedure, which can be made with an additional program register. When the phases to be introduced are just , this additional register needs to take on only two values, 0 or 1, corresponding to whether the phase should be 1 or -1, respectively. Thus it can be represented with a single additional quantum bit, beyond those required to represent the assignment. Such phases have been used in previous algorithms [29, 27] and can be implemented through a single evaluation of f(s) by setting the extra variable to be a superposition of its two values [7].
In the algorithm presented here, Eq. (13) requires phases that are powers of i, which can take on four different values: 1, i, -1 and -i. The technique used with phases can be generalized to work with these four values, again with a single evaluation of f(s). The additional register must consist of two quantum bits, so it can take on the values 0, 1, 2 or 3. For an assignment s and register x, we use the reversible operation
where c=f(s) is the number of conflicts in assignment s. It then remains to show how this operation can be used to perform the required phase adjustments. Just as we operate with a superposition of all possible assignments, to implement the phase adjustment, we set register x to be a particular superposition of its four values: . One way to construct this superposition is to start with both bits of x set to 1, operate on the most significant bit with Eq. (3) and then operate on the other bit with
to get
This is just the superposition when we make the correspondence between the 2-bit vectors and the integers , respectively.
We start with the equal superposition of amplitudes for the assignments and this superposition for x:
As illustrated with Eq. (2), the operation F acts on each term in this superposition separately, to produce
where c is the number of conflicts in assignment s. Let . Then, for a given assignment s, as x ranges from 0 to 3, y also takes on these values, but not necessarily in the same order. Thus this resulting superposition can also be written as
because . In this form, the sums separate to give finally
The net result of applying F using the superposition for the additional register is to change the phase of each assignment s by , as required by Eq. (13). Importantly, the final result reproduces the original factored form in which the superposition of assignments is not correlated with the superposition of the register. This factored form means the register plays no role in the subsequent mixing operation applied by the matrix U to the superposition of assignments. Thus this procedure produces the required phase changes using only one evaluation of f(s), showing how the phases of a superposition of assignments can be adjusted without requiring any prior explicit knowledge of the solution.