<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Generalizing an Exactly-1 SAT Solver for Arbitrary Numbers of Variables, Clauses, and K</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Francesco Piro</string-name>
          <email>francesco.piro@mail.polimi.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mehrnoosh Askarpour</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Elisabetta Di Nitto</string-name>
          <email>elisabetta.dinitto@polimi.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>DEIB</institution>
          ,
          <addr-line>Politecnico di Milano</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>McMaster University</institution>
          ,
          <country country="CA">Canada</country>
        </aff>
      </contrib-group>
      <fpage>27</fpage>
      <lpage>37</lpage>
      <abstract>
        <p>Quantum computers promise to allow for great improvements in the solution of  -SAT problem, determining whether a set of clauses with  variables have a satisfiable boolean assignment, which is one of the fundamental problems of computational logic. Given the recent advancements of quantum computers, we argue that they allow for great improvements in solving the  -SAT problem. In order to evaluate this possibility, in this work, we generalized a pre-existing quantum 3-SAT solver [1] to the most general case for the number of variables, clauses, and  , using the IBM Qiskit library [2]. We extended basic gates and steps of the underlying algorithm to reduce the number of used qubits and gates, in order to deal with the decoherence problem [3]. We tested our solution on complex instances of  -SAT, which preserved the exponential speedup promised by Grover algorithm [4].</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Quantum Computing</kwd>
        <kwd>Satisfiability Problem</kwd>
        <kwd>Quantum Logic</kwd>
        <kwd>Grover Algorithm</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Quantum computing has demonstrated promising results in several areas of computer science
and is changing our way of studying algorithms in the following years.</p>
      <p>One of the areas that could drastically be touched by the efects of quantum computing
is Logic, in particular, the question of equivalence of the   and  classes. Answering this
question will have a powerful impact on areas such as artificial intelligence and security.</p>
      <p>
        -SAT problem—determining whether a given set of clauses have a satisfiable assignment—is
one of the fundamental problems of computational logic, and the first problem proven to be
NP-complete [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. This result has brought big changes in theory of computation because it
allows to prove a problem to be   or   -complete by demonstrating that it is reducible to an
instance of the  -SAT. This means that the computational speedup that we can exploit with
quantum algorithms can be also applied to all the problems that can be reduced to the  -SAT.
An instance of the  -SAT problem is characterized by the number of variables ( ), the number
of clauses ( ), and the maximal length of the clauses ( ).
      </p>
      <p>
        This paper evaluates the application of quantum computing to solve arbitrary instances of
the Exactly-1  -SAT problem and to show the enhancements provided by a quantum solver (an
exactly-1  -SAT problem is one where there exists a satisfying assignment with exactly one true
literal in each of the  clauses). We discovered the quantum solver introduced by Nannicini [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]
that exploits the quantum principle of amplitude amplification [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] using the Grover search
algorithm [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] to find a solution up to an Exactly-1 3-SAT problem with  = 3 and  = 3. We
ifnally implemented a generalization of this solver, using the IBM Qiskit library [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], to solve
problems to the most general case of arbitrary values for  ,  , and  . This paper describes
our approach and derived conclusions. The complete implementation, graphics of the whole
quantum circuits, and all the material we used to start approaching the quantum computing
world are present at the following Git repository [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
      <p>The rest of this paper is structured as follows: Section 2 reviews state of the art; Section 3
provides preliminary background; Section 4 presents our approach; Section 5 reports the
evaluation procedure and its results; finally, Section 6 draws some conclusions and possible
future works.</p>
    </sec>
    <sec id="sec-2">
      <title>2. State of the art</title>
      <p>As mentioned earlier, one of the most interesting questions of quantum computing is whether
it can prove the equivalence of the   and  classes.</p>
      <p>
        Grover search algorithm is an important asset to approach this question because it is used to
solve several   or   -complete problems with considerably reduced computational eforts.
For example, database search problem has improved with Grover’s quadratic speedup as reported
in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]; Gilles et al. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] applied it to find the collisions of an  -to- function and managed
to reduce the temporal complexity to  (√3  / ); Guodong et al. [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] exploited it indirectly by
using the quantum counting algorithm, which relies on a combination of Grover and the Shor’s
factoring algorithm [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], to enhance the polynomial root-finding problem.
      </p>
      <p>
        These examples are all indicators of how Grover could be useful to solve other logic problems,
such as the one we are tackling. For instance, an interesting recent work by Porfiris [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] shows
how to perform password cracking using quantum computation, based on the Exactly-1 3-SAT
problem. Passwords can be visualized as a sequence of characters, hence solving the Exactly-1
SAT perfectly fits to model the search of that particular string with exactly one character that
matches the one of the password. However, this approach is able to crack only passwords
up to three characters, as it uses an Exactly-1 3-SAT solver. Another example is the work of
Valentin Bura [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] on the kernelization of Exactly-1 3-SAT problems in order to show the power
of Gaussian elimination. Thanks to kernelization, the author is able to prove a reduction in
both time and space complexities for the corresponding counting problem. This results to
a complexity which is still exponential but very near to a base of 1. At this point, applying
a quantum algorithm on top of such kernelization method would bring us to an additional
reduction of the complexity, afecting the exponent, always nearer to linearity.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. Background</title>
      <p>
        This paper relies on the work by Nannicini [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], where he proposes a solver that can find a
solution to the Exactly-1 3-SAT problem by using Grover’s search algorithm only for a maximal
number of three variables and clauses. Because of the quantum physics principle of amplitude
amplification, this algorithm finds a satisfactory assignment by storing the formulation of
an Exactly-1 3-SAT problem, iterating the following steps for a particular number of times,
evaluating in the end the resulting state:
a. Initialization Step: brings the problem state to the uniform superposition applying Hadamard
(H) gates on all the qubits.
b. Problem Encoding Step: encodes all the clauses of the problem inside the quantum circuit
bringing for each clause one qubit that is updated to find the solution.
c. Inversion about the Average Step: updates once more the coeficients of the variables that
correspond to the correct solution.
      </p>
    </sec>
    <sec id="sec-4">
      <title>4. Proposed Generalization</title>
      <p>In this section, we explain our implemented generalization of Nanncini’s solver to manage
arbitrary numbers of variables and clauses for an Exactly-1 k-SAT problem, by maintaining the
structure of the three steps explained in Section 3 and focusing on the following two aspects:</p>
      <sec id="sec-4-1">
        <title>1. To allow for arbitrary numbers of clauses ( ) and variables ( )</title>
      </sec>
      <sec id="sec-4-2">
        <title>2. To allow for arbitrary maximum length of the clauses ( )</title>
        <p>Considering a problem with  variables and  clauses, the total required qubits in its
representing circuit includes  for variables, one for the output register, and  for clauses. Additionally,
the Problem Encoding Step and the Inversion about the Average Step need an  dimensional
controlled NOT gate for the exploitation of the amplitude amplification principle. However, Qiskit
does not allow us to build controlled-NOT gates with dimensions larger than two, and we had
to solve this issue by using the smallest number of qubits possible. To realize such gate we
concatenate the results of doubly controlled-NOT gates applied on two of the qubits at a time
thus introducing additional  − 2 ancillary qubits.</p>
        <p>Algorithm generalization Provided the preliminaries on the number of qubits, we discuss
our implementation in the rest of this section through an illustrative example of an Exactly-1
4-SAT problem with four variables and four clauses. To formalize an exactly-1 k-SAT problem
we need to specify the variables on which it is defined, the clauses and the maximal length
of the clauses. In the rest of this paper we call  the set of the variables of the problem, 
the set of the clauses and for each clause   we define the variables that compose it with their
respective polarity. The number of variables in the clauses will never exceed the number k
decided, the cardinality of  is  and the cardinality of  is m. In the end remember that this
formulation can also be seen as the Conjunctive Normal Form (CNF) of the clauses defined. This
representation allows to visualize better the possible solution of the problem and understand
a-priori if a solution actually exists.</p>
        <p>Hence, the formalization of the exactly-1 4-SAT problem with four variables ( = { 1,  2,  3,  4})
and four clauses ( = { 1,  2,  3,  4}) is:
That can be expressed in the CNF as:</p>
        <p>≡ ( 1 ∨  2 ∨  3 ∨  4) ∧ ( 1 ∨  2 ∨  4) ∧ ( 1 ∨  2 ∨  3 ∨  4) ∧ ( 2 ∨  3 ∨  4)
We can now list the steps of the generalized algorithm:
a. Initialization Step: the initial state of the quantum circuit is set by applying Hadamard
gates for each variable and for the output, in order to bring it to the uniform superposition.
b. Problem Encoding Step: each clause is encoded in the circuit using gates that allow to
bit-flip the qubit corresponding to the clause if and only if it has exactly one true literal
(this is the definition of searching for a solution of an Exactly-1 k-SAT problem).
Considliteral in the problem. First we bring each variable to
ering  1, we want to flip the qubit  10 if and only if  1 ∨  2 ∨  3 ∨  4
by using NOT gates and apply a CNOT of all the variables so that we obtain | 10⟩ =
| 10 ⊕  1 ⊕  2 ⊕  3 ⊕  4⟩. To complete the double implication of flipping  10 for the exactly
one true variable, we need a quadruply controlled NOT gate between the four variables
targeting  10. Finally we have obtained | 10⟩ = | 10 ⊕  1 ⊕  2 ⊕  3 ⊕  4 ⊕ ( 1 ∧  2 ∧  3 ∧  4)⟩.
Hence, the theoretical circuit that we should realize is showed in the following Figure 1.
has exactly one true
 10</p>
        <p>with their respective polarity
| 0⟩
| 1⟩
| 2⟩
| 3⟩
| 00⟩
| 10⟩</p>
        <p>However, as we mentioned before, we are not allowed to realize multiply controlled-NOT
gates in Qiskit. The procedure that we adopted to encode such gate in the actual quantum
circuit is shown in Figure 2. We can see here how ancillary qubits are used to concatenate
the results of the doubly controlled-NOT gates and, after the result is stored in  10, we
reset the state of these qubits applying once more the same doubly controlled-NOT gates.
c. Inversion About the Average Step: in this last step, we modify the coeficients corresponding
to the correct solution by applying the unitary operation 
defined as follows:</p>
        <p>= (− ⨂ ) (⨂ </p>
        <p>)
where  is the number of variables and  is a diagonal matrix   (−1, 1, ⋯ , 1) of size
2 . In particular, to realize  we needed once more to generalize the algorithm since it
consists of a ( − 1)-controlled NOT gate between the first  − 1 variables, targeting the
last one. As shown in Figure 3, we exploited the same trick to deal with Qiskit’s limitation.
Moreover, we see the measurement of the four qubits representing the state, brought to
the classical register  0 which stores the final solution.
Algorithm specifics The problems are fed to the solver in an input file when running the
program. Variables have to be specified with the following notation:  followed by the integer 
that identifies that variable (variable  1 will be  1). If we want to use  variables, we can define
 -es from  = 1 up to  =  ; it is not allowed to define a number of  diferent variables with
pedices not in the range [1,  ]. Each line contains the definition of a clause, line 1 will define
clause  1, line 2 corresponds to  2 and so on. Variables in the clauses have to be specified in
ascending order, to express the negative polarity a minus sign (−) precedes the respective  .
Considering the Exactly-1 4-SAT defined in this section, with four variables and four clauses,
the file containing its definition (let us call it sat4) will have the following shape:</p>
        <p>Additionally, the solver also gets the iteration number of the Problem Encoding and the
Inversion About the Average steps as input. The number of times that we run Grover’s algorithm
influences the results provided by the solver.</p>
        <p>
          Grover iterations In his original work, Grover [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] described how dificult it is to know
apriori the number of times to iterate his algorithm to find the best solution of a search problem.
Nannicini [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] found that for instances of the Exactly-1 3-SAT, two iterations is the number that
provides solutions with the highest probability. In our study, considering instances with more
than just three variables and three clauses but also with arbitrary  , we were able to understand
that even more iterations are needed to find the best solution. By doing more iterations, longer
circuits are realized: this increases the number of gates and the execution time of the solver.
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Evaluation</title>
      <p>We evaluated our proposed quantum solver with arbitrary  and  values up to the 4-SAT
problem and achieved correct solutions with very high probability. The results shown in this
section are generated by the quantum simulator of the Qiskit library since the execution on real
quantum devices is still not possible for such complex instances of the SAT problem. Quantum
simulators execute the algorithm on a hardware where noise is minimal, hence allowing to
use significant numbers of qubits and gates to implement the algorithms. We have to take this
into account when consulting the results on the histograms, being conscious that very high
probabilities make us expect that the correct results will be also displayed on the real quantum
device since the additional noise introduced is not enough to compromise the execution. To
show the results provided by our solver we decided also to highlight the number of iterations
needed to find the best solution on each particular problem. As we have already discussed, the
number of iterations afects significantly the results; in order to make this evident we will first
present the solution obtained with the best number of iterations and then compare it with the
results provided if we tried to increase by one this number. We will call the result with the
best number of iterations Best solution while the one with one additional repetition as the Next
solution. In the Next solution we see that the probability distribution changes a lot, in particular
the correct solution drastically decreases its value and random other incorrect combinations
increase their probability.</p>
      <p>
        We start with the same problem described by Nannicini in his work [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] to prove the
consistency of the generalized solver. Then, we continue with an unsolvable Exactly-1 3-SAT (which
has not the comparison), with an Exactly-1 3-SAT problem of five variables and five clauses,
and finally an Exactly-1 4-SAT with four variables and four clauses.
      </p>
      <p>Problem 1 Consider the 3-SAT problem defined over the set of variables  = { 1,  2,  3} and
the three clauses  = { 1,  2,  3}, such that:
 1 = { 1,  2,  3}
 2 = { 1,  2,  3}
 3 = { 1,  2,  3}
The formulation of the problem implies that the solution is  = { 1,  2,  3}.</p>
      <p>(a) Problem 1 best solution
(b) Problem 1 next solution</p>
      <p>The result of our solver, shown in Figure 5a, provides the same solution as  with a probability
near 95%, which is a very promising result and consistent with the one by Nannicini. Figure
5a shows the best solution obtained with 2 iterations of Grover’s algorithm. Comparing it
with Figure 5b, obtained with 3 iterations, we see that the probability of the correct solution
decreases of around the 60%. In addition, all the other combinations of variables have increased
their probability rounding all near the 10% which is very close to the 30% of 101.
Problem 2 Consider the 3-SAT problem defined over the set of variables  = { 1,  2,  3} and
the three clauses  = { 1,  2,  3}, such that:
 1 = { 1,  2,  3}
 2 = { 1,  2,  3}
 3 = { 1,  2,  3}
This problem seems to be trivially satisfiable, for example, with  = { 1,  2,  3}. However, this
is not a solution for the Exactly-1 formulation since both  1 and  3 in the second clause make
the disjunction true. Thus, the Exactly-1 Problem 2 has no solution.</p>
      <p>The result of our solver, shown in Figure 6, confirms the lack of an acceptable answer as the
probabilities of all the possible solutions are very close (i.e. around 10% each), which does not
allow to choose between one of them.</p>
      <p>Problem 3 Consider the 3-SAT problem defined over the set of variables  = { 1,  2,  3,  4,  5}
and the five clauses  = { 1,  2,  3,  4,  5}, such that:
 1 = { 1,  2,  3}
 2 = { 2,  3,  4}
 3 = { 3,  4,  5}
 4 = { 4,  5,  1}
 5 = { 5,  3,  4}
Again, the formulation of the problem suggests the solution to be  = { 1,  2,  3,  4,  5}.
(a) Problem 3 best solution
(b) Problem 3 next solution</p>
      <p>The Best solution of our solver (obtained with 3 iterations), shown in Figure 7a, is 11111
which is the same as the expected result  . As the figure shows, the answer is provided with a
probability of near the 40% which is significantly higher than all the other 5 qubits combinations.
In this case, the probability of the Next solution (Figure 7b obtained with 4 iterations) decreases of
15% for the correct result and for the other combinations it distributes the remaining probability;
in particular for 00100 that reaches a value around the 16%.</p>
      <p>Problem 4 Consider the problem presented in Section 4 which is a 4-SAT problem defined
over the set of variables  = { 1,  2,  3,  4} and the four clauses  = { 1,  2,  3,  4}, such that:
 1 = { 1,  2,  3,  4}</p>
      <p>2 = { 1,  2,  4}
 3 = { 1,  2,  3,  4}</p>
      <p>4 = { 2,  3,  4}
The formulation of the problem points to  = { 1,  2,  3,  4} as the expected solution.
(a) Problem 4 best solution
(b) Problem 4 next solution</p>
      <p>The result from our solver, as shown in figure 8a, is the string 1111 with a probability near
90%, significantly higher than all the other probabilities and conforms to the expected solution.
Comparing the Best solution in Figure 8a (obtained with 3 cycles) with the Next one (obtained
with 4 cycles) in Figure 8b we see that the probability distribution maintains the same shape
and equally spreads on all the other incorrect combinations increasing for each up to around
the 3%. The correct solution is still higher than all the other probabilities but decreased of 35%
with respect to the one obtained with the best number of iterations.</p>
    </sec>
    <sec id="sec-6">
      <title>6. Conclusions and Future Work</title>
      <p>The Exactly-1 k-SAT problem has a fundamental importance in computational theory. The
proposed solver in this paper can tackle any instance of this problem with arbitrary numbers of
variables, clauses, and  with quadratic speedup, thanks to Grover’s search algorithm.</p>
      <p>The four instances reported here are the most significant to show the behavior of the solver.
The first three show how it works with more than just three variables and clauses, on the
Exactly-1 3-SAT problem which is the most popular in applications. The obtained results seem
very promising, as the probability of the correct solution is significantly higher than all the
others; we believe that the same results will be obtained also on a real quantum device where
the noise is not mitigated as in a simulated computation. The generalization has been tested
also on Problem 4 that considers four variables and clauses with a maximal length  = 4. Also
in this case, the correct solution has probability around 90%, definitely better than all the other
combinations.</p>
      <p>We compared the Best and the Next solutions and deduced that the correct iteration number
for the second and third steps of Grover’s algorithm depends on the complexity of the problem.
It is coherent with what these steps do, which is increasing the coeficients of the correct
solution. Hence, more complex instances correspond to more possible solutions, and therefore,
the probability spreads on a larger set of qubits combinations; more iterations allow for a larger
detach between the probability of the correct solution and others. The simple instances studied
by Nannicini in his work required at most two iterations while in our study we discovered that
already an Exactly-1 3-SAT with five variables and five clauses as well as Problem 4 executes
at best with 3 iterations. As future work, we plan to determine the relationship between the
complexity of an Exactly-1 k-SAT problem and the best number of iterations, hence a formula
that finds the cycles once we provide  ,  and  .</p>
      <p>The reported histograms are the result of the execution on the qasm_simulator provided by
Qiskit which allows for high number of qubits. As we mentioned before, we can conclude that our
work will also provide correct results on real quantum devices, given to the high probabilities that
we have obtained. We tried to execute the problems also on a real quantum device, in particular
ibmq_16_melbourne provided by IBM-Quantum experience. All the executions fail because
of the transpilation function of Qiskit. It optimizes the encoding of the quantum algorithm
on the real device, trying to reduce the number of qubits needed, adding gates to perform
the same quantum operations. For complex algorithms like the one that we implemented, the
transpilation has two main issues: (i) adding more gates causes the decoherence problem, and
(ii) the huge number of gates which leads to the error reported by the machine. We obtain a too
long circuit that needs an execution time greater than the circuit repetition rate.</p>
      <p>The current state of quantum technology does not tackle this issue, as the most powerful
quantum machine provided by the library that we used is the ibmq_16_melbourne.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>G.</given-names>
            <surname>Nannicini</surname>
          </string-name>
          ,
          <article-title>An introduction to quantum computing, without the physics (</article-title>
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Qiskit</surname>
            <given-names>textbook</given-names>
          </string-name>
          , https://qiskit.org/textbook/, Last Accessed in
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Schlosshauer</surname>
          </string-name>
          ,
          <article-title>Decoherence: and the quantum-to-classical transition</article-title>
          , Springer Science &amp; Business
          <string-name>
            <surname>Media</surname>
          </string-name>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>L. K.</given-names>
            <surname>Grover</surname>
          </string-name>
          ,
          <article-title>A fast quantum mechanical algorithm for database search</article-title>
          , in: G. L.
          <string-name>
            <surname>Miller</surname>
          </string-name>
          (Ed.),
          <source>Proceedings of the Twenty-Eighth Annual ACM Symposium on the Theory of Computing</source>
          , Philadelphia, Pennsylvania, USA, May
          <volume>22</volume>
          -24,
          <year>1996</year>
          , ACM,
          <year>1996</year>
          , pp.
          <fpage>212</fpage>
          -
          <lpage>219</lpage>
          . URL: https://doi.org/10.1145/237814.237866. doi:
          <volume>10</volume>
          .1145/237814.237866.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>S. A.</given-names>
            <surname>Cook</surname>
          </string-name>
          ,
          <article-title>The complexity of theorem-proving procedures</article-title>
          , in: M. A.
          <string-name>
            <surname>Harrison</surname>
            ,
            <given-names>R. B.</given-names>
          </string-name>
          <string-name>
            <surname>Banerji</surname>
            ,
            <given-names>J. D.</given-names>
          </string-name>
          <string-name>
            <surname>Ullman</surname>
          </string-name>
          (Eds.),
          <source>Proceedings of the 3rd Annual ACM Symposium on Theory of Computing, May 3-5</source>
          ,
          <year>1971</year>
          ,
          <string-name>
            <given-names>Shaker</given-names>
            <surname>Heights</surname>
          </string-name>
          , Ohio, USA, ACM,
          <year>1971</year>
          , pp.
          <fpage>151</fpage>
          -
          <lpage>158</lpage>
          . URL: https://doi.org/10.1145/800157.805047. doi:
          <volume>10</volume>
          .1145/800157.805047.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>L. K.</given-names>
            <surname>Grover</surname>
          </string-name>
          ,
          <article-title>Quantum computers can search rapidly by using almost any transformation</article-title>
          ,
          <source>Physical Review Letters</source>
          <volume>80</volume>
          (
          <year>1998</year>
          )
          <fpage>4329</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <article-title>[7] Repository of our implementation and experiments</article-title>
          , github/repository,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>G.</given-names>
            <surname>Brassard</surname>
          </string-name>
          , P. HØyer, A. Tapp,
          <article-title>Quantum cryptanalysis of hash and claw-free functions</article-title>
          , in: C. L.
          <string-name>
            <surname>Lucchesi</surname>
            ,
            <given-names>A. V.</given-names>
          </string-name>
          <string-name>
            <surname>Moura</surname>
          </string-name>
          (Eds.), LATIN'98:
          <string-name>
            <surname>Theoretical</surname>
            <given-names>Informatics</given-names>
          </string-name>
          , Springer Berlin Heidelberg, Berlin, Heidelberg,
          <year>1998</year>
          , pp.
          <fpage>163</fpage>
          -
          <lpage>169</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>S.</given-names>
            <surname>Guodong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Shenghui</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Maozhi</surname>
          </string-name>
          ,
          <article-title>Quantum algorithm for polynomial root finding problem</article-title>
          ,
          <source>in: 2014 Tenth International Conference on Computational Intelligence and Security</source>
          ,
          <year>2014</year>
          , pp.
          <fpage>469</fpage>
          -
          <lpage>473</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>P.</given-names>
            <surname>Shor</surname>
          </string-name>
          ,
          <article-title>Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer</article-title>
          ,
          <source>SIAM J. Comput</source>
          .
          <volume>26</volume>
          (
          <year>1994</year>
          )
          <fpage>1484</fpage>
          -
          <lpage>1509</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>T.</given-names>
            <surname>Porfiris</surname>
          </string-name>
          ,
          <article-title>Exactly-1 3-sat problem and grover's algorithm: Breaking the rules of classical systems, linkedin/Porfiris/grover-in-sat-</article-title>
          <string-name>
            <surname>problem</surname>
          </string-name>
          ,
          <source>Accessed August</source>
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>V.</given-names>
            <surname>Bura</surname>
          </string-name>
          ,
          <article-title>A kernel method for positive 1</article-title>
          -in-3-sat (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>