Skip to main content
Log in

Quantum speedup for solving the minimum vertex cover problem based on Grover search algorithm

  • Published:
Quantum Information Processing Aims and scope Submit manuscript

Abstract

The electronic computer possesses powerful computing capabilities, but it is still limited by Moore’s law. Quantum computers are thus found capable of not only overcoming the constraints of Moore’s law but also taking advantage of the quantum effect to increase their arithmetic power for many problems. The minimum vertex cover problem is a classical NP-complete problem, and its traditional algorithms usually require exponential computational complexity. Herein, two algorithms are proposed to solve the minimum vertex cover problem. The first algorithm achieves its classical solution, while the second algorithm is based on the Grover search algorithm to obtain the solution to the quantum computing algorithm of the problem and verify its feasibility via quantum circuit experiments. Comparing the two algorithms, it can be concluded that the quantum algorithm can improve the operational speed of the minimum vertex cover problem by order of magnitude of the square root.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19
Fig. 20
Fig. 21

Similar content being viewed by others

Data availability

All data generated or analyzed during this study are included in this published article.

References

  1. Islam, A., Kalita, B.: Application of minimum vertex cover for keyword-based text summarization process. Int. J. Comput. Intell. Res. 13(1), 113–125 (2017)

    Google Scholar 

  2. Yigit, Y., Akram, V.K., Dagdeviren, O.: Breadth-first search tree integrated vertex cover algorithms for link monitoring and routing in wireless sensor networks. Comput. Netw. 194, 108–144 (2021)

    Article  Google Scholar 

  3. Khamayseh, Y., Mardini, W., Shatnawi, A.: An approximation algorithm for vertex cover problem. In: International Conference on Computer Networks and Communication Systems (2012)

  4. Ambühl, C., Mastrolilli, M.: Single machine precedence constrained scheduling is a vertex cover problem. Algorithmica 53(4), 488–503 (2009)

    Article  MathSciNet  MATH  Google Scholar 

  5. Dinur, I., Safra, S.: On the hardness of approximating minimum vertex cover. Ann. Math. 439–485 (2005)

  6. Yuan, S.-Y., Kuo, S.-Y.: A new technique for optimization problems in graph theory. IEEE Trans. Comput. 47(2), 190–196 (1998)

    Article  ADS  MathSciNet  MATH  Google Scholar 

  7. Bhasin, H., Amini, M.: The applicability of genetic algorithm to vertex cover. Int. J. Comput. Appl. 123(17), 29–34 (2015)

    Google Scholar 

  8. Chen, M., Zhou, B., Ren, Z.: Genetic algorithm based on random uniform design. Appl. Math. A J. Chin. Univ. 25(3), 279–283 (2010)

    MathSciNet  MATH  Google Scholar 

  9. Gao, L., Xu, J.: DNA algorithm for minimum vertex cover problem based on molecular computation. Syst. Eng. Electron. 26(4), 544–548 (2004)

    Google Scholar 

  10. Hasudungan, R., Pangestuty, D.M., Latifah, A.J., et al.: Solving minimum vertex cover problem using DNA computing. J. Phys. Conf. Ser. 1361, 012038 (2019)

    Article  Google Scholar 

  11. Zhang, Y., Mu, X., Liu, X.-W., Wang, X., Zhang, X., Li, K., Wu, T., Zhao, D., Dong, C.: Applying the quantum approximate optimization algorithm to the minimum vertex cover problem. Appl. Soft Comput. 118, 108554 (2022)

    Article  Google Scholar 

  12. Chen, J., Xu, R.: Minimum vertex cover problem based on ant colony algorithm. In: 7th Advanced Forum on Transportation of China (AFTC 2011), pp. 125–129 (2011). IET

  13. Landauer, R.: Irreversibility and heat generation in the computing process. IBM J. Res. Dev. 44(1/2), 261–269 (2000)

    Article  Google Scholar 

  14. Cho, C.-H., Chen, C.-Y., Chen, K.-C., Huang, T.-W., Hsu, M.-C., Cao, N.-P., Zeng, B., Tan, S.-G., Chang, C.-R.: Quantum computation: algorithms and applications. Chin. J. Phys. 72, 248–269 (2021)

    Article  MathSciNet  Google Scholar 

  15. Wong, R., Chang, W.-L.: Quantum speedup for protein structure prediction. IEEE Trans. Nanobiosci. 20(3), 323–330 (2021)

    Article  Google Scholar 

  16. Brassard, G., Høyer, P., Tapp, A.: Quantum counting. In: International Colloquium on Automata, Languages, and Programming, pp. 820–831 (1998). Springer

  17. Benioff, P.: Quantum mechanical hamiltonian models of turing machines. J. Stat. Phys. 29(3), 515–546 (1982)

    Article  ADS  MathSciNet  MATH  Google Scholar 

  18. Deutsch, D.: Quantum theory, the church-turing principle and the universal quantum computer. Proc. R. Soc. Lond. A Math. Phys. Sci. 400(1818), 97–117 (1985)

    ADS  MathSciNet  MATH  Google Scholar 

  19. Shor, P.W.: Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer. SIAM Rev. 41(2), 303–332 (1999)

    Article  ADS  MathSciNet  MATH  Google Scholar 

  20. Grover, L.K.: A fast quantum mechanical algorithm for database search, 212–219 (1996)

  21. Uno, S., Suzuki, Y., Hisanaga, K., Raymond, R., Tanaka, T., Onodera, T., Yamamoto, N.: Modified Grover operator for quantum amplitude estimation. New J. Phys. 23(8), 083031 (2021)

    Article  ADS  MathSciNet  Google Scholar 

  22. Liu, Y., Koehler, G.J.: Using modifications to Grover’s search algorithm for quantum global optimization. Eur. J. Oper. Res. 207(2), 620–632 (2010)

    Article  MathSciNet  MATH  Google Scholar 

  23. Panchi, L., Shiyong, L.: Grover quantum searching algorithm based on weighted targets. J. Syst. Eng. Electron. 19(2), 363–369 (2008)

    Article  MATH  Google Scholar 

  24. Narayanan, A., Moore, M.: Quantum-inspired genetic algorithms. In: Proceedings of IEEE International Conference on Evolutionary Computation, pp. 61–66 (1996). IEEE

  25. Han, K.-H., Kim, J.-H.: Genetic quantum algorithm and its application to combinatorial optimization problem. In: Proceedings of the 2000 Congress on Evolutionary Computation. CEC00 (Cat. No. 00TH8512), vol. 2, pp. 1354–1360 (2000). IEEE

  26. Wang, L., Tang, F., Wu, H.: Hybrid genetic algorithm based on quantum computing for numerical optimization and parameter estimation. Appl. Math. Comput. 171(2), 1141–1156 (2005)

    MathSciNet  MATH  Google Scholar 

  27. Ma, X.-L., Li, Y.-G.: An improved quantum ant colony algorithm and its application. IERI Procedia 2, 522–527 (2012)

    Article  Google Scholar 

  28. Wang, L., Niu, Q., Fei, M.: A novel quantum ant colony optimization algorithm and its application to fault diagnosis. Trans. Inst. Meas. Control. 30(3–4), 313–329 (2008)

    Article  Google Scholar 

  29. Tao, W., Lei, X., Xi, C., Amir, H.A., Shu, Z.: A novel quantum-behaved particle swarm optimization algorithm. CMC-Comput. Mater. Continua 63(2), 873–890 (2020)

    Google Scholar 

  30. Zhou, N.-R., Xia, S.-H., Ma, Y., Zhang, Y.: Quantum particle swarm optimization algorithm with the truncated mean stabilization strategy. Quantum Inf. Process. 21(2), 1–23 (2022)

    Article  ADS  MathSciNet  MATH  Google Scholar 

  31. Kak, S.C.: Quantum neural computing. Adv. Imaging Electron. Phys. 94, 259–313 (1995)

    Article  Google Scholar 

  32. Panchi, L., Kaoping, S., Erlong, Y.: Quantum neural networks model and algorithm based on the quantum gates circuit. Control Decision 27(1), 143–146 (2012)

    MathSciNet  Google Scholar 

  33. Panchi, L., Shiyong, L.: Learning algorithm and application of quantum bp neural networks based on universal quantum gates. J. Syst. Eng. Electron. 19(1), 167–174 (2008)

    Article  MATH  Google Scholar 

  34. Chen, J., Wang, L., Charbon, E.: A quantum-implementable neural network model. Quantum Inf. Process. 16(10), 1–24 (2017)

    Article  MathSciNet  MATH  Google Scholar 

  35. Yu, H., Wilczek, F., Wu, B.: Quantum algorithm for approximating maximum independent sets. Chin. Phys. Lett. 38(3), 30304 (2021)

    Article  Google Scholar 

  36. Bonnetain, X., Bricout, R., Schrottenloher, A., Shen, Y.: Improved classical and quantum algorithms for subset-sum. In: International Conference on the Theory and Application of Cryptology and Information Security, pp. 633–666 (2020). Springer

  37. Zheng, Q., Zhu, P., Xue, S., Wang, Y., Wu, C., Yu, X., Yu, M., Liu, Y., Deng, M., Wu, J., et al.: Quantum algorithm and experimental demonstration for the subset sum problem. Sci. China Inf. Sci. 65(8), 1–14 (2022)

    Article  ADS  MathSciNet  Google Scholar 

  38. Wen-Zhang, L., Jing-Fu, Z., Gui-Lu, L.: A parallel quantum algorithm for the satisfiability problem. Commun. Theor. Phys. 49(3), 629–630 (2008)

    Article  ADS  MATH  Google Scholar 

  39. Chang, W.-L., Chung, W.-Y., Hsiao, C.-Y., Wong, R., Chen, J.-C., Feng, M., Vasilakos, A.V.: Quantum speedup for inferring the value of each bit of a solution state in unsorted databases using a bio-molecular algorithm on IBM Quantum’s computers. IEEE Trans. Nanobiosci. 21(2), 286–293 (2021)

    Article  Google Scholar 

  40. Mölle, D., Richter, S., Rossmanith, P.: Enumerate and expand: New runtime bounds for vertex cover variants. In: Computing and Combinatorics: 12th Annual International Conference, COCOON 2006, Taipei, Taiwan, Aug 15-18, 2006. Proceedings 12, pp. 265–273 (2006). Springer

  41. Wu, X., Wang, Z., Wu, T., Bao, X.: Solving the family traveling salesperson problem in the Adleman-Lipton model based on DNA computing. IEEE Trans. Nanobiosci. 21(1), 75–85 (2021)

    Article  Google Scholar 

  42. Wang, Z., Deng, A., Wang, D., Wu, T.: A parallel algorithm to solve the multiple travelling salesmen problem based on molecular computing model. Int. J. Bio-Inspired Comput. 20(3), 160–171 (2022)

    Article  Google Scholar 

Download references

Acknowledgements

It was supported by the Zhejiang Provincial Natural Science Foundation of China (No. LY23H180001).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Tunhua Wu.

Ethics declarations

Conflict of interest

The authors declare that they have no conflict of interest.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Appendices

Appendix A: The example of graph \(G_{1}\) with 4 vetices

To enhance the convincingness, we take the graph \(G_2\) of Section 1 as an example to solve the MVCP problem. In the first step, the initial quantum state is manufactured to get the initial quantum state \(\left. \vert {\mathop {\phi }\nolimits _1 } \right\rangle = \frac{1}{{\sqrt{16} }}\sum \limits _{X = 0}^{15} {\left. \vert X \right\rangle }\otimes \left. \vert {\mathop {l}\nolimits _1^0 \mathop {l}\nolimits _2^0 \mathop {l}\nolimits _3^0 \mathop {l}\nolimits _4^0 } \right\rangle \otimes \left. \vert {\mathop {o}\nolimits _5^0 } \right\rangle \otimes \left. \vert {\mathop {w}\nolimits _{1,0}^0 \mathop {w}\nolimits _{1,1}^0 \mathop {w}\nolimits _{2,0}^0...\mathop {w}\nolimits _{4,3}^0 \mathop {w}\nolimits _{4,4}^0 } \right\rangle \otimes \frac{{\left. \vert 0 \right\rangle - \left. \vert 1 \right\rangle }}{2}\). In the second step, in the second step, the target quantum state is screened to obtain the quantum superposition state \(\left. \vert {\mathop {\phi }\nolimits _1 } \right\rangle ={\left( { - 1} \right) ^{f(x)}}\frac{1}{{\sqrt{16} }}\sum \limits _{X = 0}^{15} {\left. \vert X \right\rangle } \otimes \left. \vert {\mathop {l}\nolimits _1 \mathop {l}\nolimits _2 \mathop {l}\nolimits _3 \mathop {l}\nolimits _4 } \right\rangle \otimes \left. \vert {\mathop {o}\nolimits _3 } \right\rangle \otimes \left. \vert {\mathop {w}\nolimits _{1,0} \mathop {w}\nolimits _{1,1} \mathop {w}\nolimits _{2,0}...\mathop {w}\nolimits _{4,3} \mathop {w}\nolimits _{4,4} } \right\rangle \otimes \frac{{\left. \vert 0 \right\rangle - \left. \vert 1 \right\rangle }}{2}\). In the third step, the expanded target quantum state using Grover iteration is used to find the optimal solution.

There are four groups for the experiments. The fourth group builds quantum circuit diagrams to measure qubit \(\left. \vert w_{4,1}\right\rangle \) that have a feasible solution with a single vertex, the fifth group measures qubit \(\left. \vert w_{4,2}\right\rangle \) with two vertices, the sixth group measures \(\left. \vert w_{4,3}\right\rangle \) with three vertices, and the seventh group measures \(\left. \vert w_{4,4}\right\rangle \) with four vertices. Then, the number of feasible solution subsets \(m_{i}\) is calculated from the results of the amplitude of the first Grover iteration in each group. The number of iterations \(k=\frac{\pi }{4}\sqrt{\frac{N}{{{m_i}}}} \) is deduced from the Grover algorithm. Finally, the results of each set of experiments are obtained.

Fig. 22
figure 22

Circuit with one Grover iteration implemented for the fifth group

Fig. 23
figure 23

Circuit with two Grover iterations implemented for the fifth group

Fig. 24
figure 24

Circuit with three Grover iterations implemented for the fifth group

Fig. 25
figure 25

Probability diagram of the results of implementing one Grover iteration (a), two Grover iterations (b) and three Grover iterations (c) for the fifth group

Fig. 26
figure 26

Circuit with one Grover iteration implemented for the sixth group

Fig. 27
figure 27

Circuit with two Grover iterations implemented for the sixth group

Fig. 28
figure 28

Probability diagram of the results of implementing one Grover iteration (a) and two Grover iterations (b) for the sixth group

Fig. 29
figure 29

Circuit with one Grover iteration implemented for the seventh group

Fig. 30
figure 30

Circuit with two Grover iterations implemented for the seventh group

Fig. 31
figure 31

Circuit with three Grover iterations implemented for the seventh group

Fig. 32
figure 32

Circuit with fourth Grover iteration implemented for the seventh group

Fig. 33
figure 33

Probability diagram of the results of implementing one Grover iteration (a), two Grover iterations (b), three Grover iterations (c) and four Grover iterations (d) for the seventh group

As shown in Figs. 22, 23, 24 and 25, it is the circuit and experimental results probability diagram for the fifth group. As shown in Figs. 26, Figure.4w3sps2 and 28, it is the circuit and experimental results probability diagram for the sixth group. As shown in Figs. 29, 30, 31, 32 and 33, it is the circuit and experimental results probability diagram for the seventh group. The circuit and experimental results probability diagram for the fourth group is provided because a feasible solution could not be found.

Table 6 The experimental results of the fifth group
Table 7 The experimental results of the sixth group
Table 8 The experimental results of the seventh group

As shown in Tables 6, 7 and 8, the probability of finding the initial quantum states for the three sets of experiments is 0.125, 0.375 and 0.125, respectively, and the corresponding numbers of feasible solutions are \(1(m_5)\), \(3(m_6)\) and \(1(m_7)\), as deduced from the results of the first iteration of the experiments. The number of iterations k for the three sets of experiments is found to be 1.721, 1.071 and 2.642 based on the iteration formula. In Tables 6, 7 and 8, the angle of the quantum state amplitude increases with the number of iterations. The fifth group of experiments achieves the optimal solution with the highest probability after two iterations, the sixth group of experiments achieves the optimal solution with the highest probability after one iteration, and the seventh group of experiments achieves the optimal solution after three iterations. According to the MVCP definition, the optimal solution is achieved after two iterations in the fifth group. At this time, the probability of obtaining the optimal solution is 0.9434, which corresponds to the sets of vertex solution \(\{v_{1},v_{3}\}\) and \(\{v_{2},v_{4}\}\). Therefore, the minimum vertex subset of MVCP of graph \(G_{1}\) is \(\{v_{1},v_{3}\}\) and \(\{v_{2},v_{4}\}\), which has a size of 2. In Tables 6, 7 and 8, it can be seen that the relative error between the experimental results and the probability of finding is small, which further proves the reliability of the experimental data.

Appendix B: The quantum programming code of application example

Code 1. Code with one Grover iteration implemented for the first group.

H   q[0]

H   q[1]

H   q[2]

X   q[3]

X   q[4]

X   q[15]

X   q[0]

X   q[1]

X   q[2]

H   q[15]

TOFFOLI   q[1],q[0],q[3]

TOFFOLI   q[2],q[1],q[4]

TOFFOLI   q[4],q[3],q[5]

TOFFOLI   q[5],q[0],q[6]

X   q[0]

TOFFOLI   q[5],q[0],q[7]

TOFFOLI   q[6],q[1],q[8]

TOFFOLI   q[7],q[1],q[9]

X   q[1]

TOFFOLI   q[6],q[1],q[9]

TOFFOLI   q[7],q[1],q[10]

TOFFOLI   q[8],q[2],q[11]

Code 1. Code with one Grover iteration implemented for the first group.

TOFFOLI   q[9],q[2],q[12]

X   q[2]

TOFFOLI   q[8],q[2],q[12]

TOFFOLI   q[9],q[2],q[13]

X   q[2]

TOFFOLI   q[10],q[2],q[13]

X   q[2]

TOFFOLI   q[2],q[10],q[14]

CNOT   q[12],q[15]

TOFFOLI   q[2],q[10],q[14]

X   q[2]

TOFFOLI   q[10],q[2],q[13]

X   q[2]

TOFFOLI   q[9],q[2],q[13]

TOFFOLI   q[8],q[2],q[12]

X   q[2]

TOFFOLI   q[9],q[2],q[12]

TOFFOLI   q[8],q[2],q[11]

TOFFOLI   q[7],q[1],q[10]

TOFFOLI   q[6],q[1],q[9]

X   q[1]

TOFFOLI   q[7],q[1],q[9]

TOFFOLI   q[6],q[1],q[8]

TOFFOLI   q[5],q[0],q[7]

X   q[0]

TOFFOLI   q[5],q[0],q[6]

TOFFOLI   q[4],q[3],q[5]

TOFFOLI   q[2],q[1],q[4]

TOFFOLI   q[1],q[0],q[3]

X   q[4]

X   q[0]

X   q[1]

X   q[2]

X   q[3]

H   q[0]

H   q[1]

H   q[2]

X   q[0]

X   q[1]

X   q[2]

H   q[2]

TOFFOLI   q[1],q[0],q[2]

X   q[0]

X   q[1]

H   q[2]

H   q[0]

H   q[1]

X   q[2]

H   q[2]

MEASURE   q[0],c[0]

MEASURE   q[1],c[1]

MEASURE   q[2],c[2]

Code 2. Code with two Grover iterations implemented for the first group.

H q[0]

H q[1]

H q[2]

X q[3]

X q[4]

X q[15]

X q[0]

X q[1]

X q[2]

H q[15]

TOFFOLI q[1],q[0],q[3]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[0],q[5],q[6]

X q[0]

TOFFOLI q[5],q[0],q[7]

TOFFOLI q[6],q[1],q[8]

TOFFOLI q[7],q[1],q[9]

X q[1]

TOFFOLI q[6],q[1],q[9]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[8],q[2],q[11]

TOFFOLI q[9],q[2],q[12]

X q[2]

TOFFOLI q[8],q[2],q[12]

TOFFOLI q[9],q[2],q[13]

X q[2]

TOFFOLI q[10],q[2],q[13]

X q[2]

TOFFOLI q[10],q[2],q[14]

CNOT q[12],q[15]

TOFFOLI q[10],q[2],q[14]

X q[2]

TOFFOLI q[10],q[2],q[13]

X q[2]

TOFFOLI q[9],q[2],q[13]

TOFFOLI q[8],q[2],q[12]

X q[2]

TOFFOLI q[9],q[2],q[12]

TOFFOLI q[8],q[2],q[11]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[6],q[1],q[9]

X q[1]

TOFFOLI q[7],q[1],q[9]

TOFFOLI q[6],q[1],q[8]

TOFFOLI q[5],q[0],q[7]

X q[0]

TOFFOLI q[0],q[5],q[6]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[1],q[0],q[3]

X q[4]

Code 2. Code with two Grover iterations implemented for the first group.

X q[0]

X q[1]

X q[2]

X q[3]

X q[4]

H q[0]

H q[1]

H q[2]

X q[3]

X q[0]

X q[1]

X q[2]

H q[2]

TOFFOLI q[1],q[0],q[2]

X q[0]

X q[1]

H q[2]

H q[0]

H q[1]

X q[2]

X q[0]

X q[1]

H q[2]

X q[2]

TOFFOLI q[1],q[0],q[3]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[0],q[5],q[6]

X q[0]

TOFFOLI q[5],q[0],q[7]

TOFFOLI q[6],q[1],q[8]

TOFFOLI q[7],q[1],q[9]

X q[1]

TOFFOLI q[6],q[1],q[9]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[8],q[2],q[11]

TOFFOLI q[9],q[2],q[12]

X q[2]

TOFFOLI q[8],q[2],q[12]

TOFFOLI q[9],q[2],q[13]

X q[2]

TOFFOLI q[10],q[2],q[13]

X q[2]

TOFFOLI q[10],q[2],q[14]

CNOT q[12],q[15]

TOFFOLI q[10],q[2],q[14]

X q[2]

TOFFOLI q[10],q[2],q[13]

X q[2]

TOFFOLI q[9],q[2],q[13]

TOFFOLI q[8],q[2],q[12]

X q[2]

Code 2. Code with two Grover iterations implemented for the first group.

TOFFOLI q[9],q[2],q[12]

TOFFOLI q[8],q[2],q[11]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[6],q[1],q[9]

X q[1]

TOFFOLI q[7],q[1],q[9]

TOFFOLI q[6],q[1],q[8]

TOFFOLI q[5],q[0],q[7]

X q[0]

TOFFOLI q[0],q[5],q[6]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[1],q[0],q[3]

X q[4]

X q[0]

X q[1]

X q[2]

X q[3]

H q[0]

H q[1]

H q[2]

X q[0]

X q[1]

X q[2]

H q[2]

TOFFOLI q[1],q[0],q[2]

X q[0]

X q[1]

H q[2]

H q[0]

H q[1]

X q[2]

H q[2]

MEASURE q[0],c[0]

MEASURE q[1],c[1]

MEASURE q[2],c[2]

Code 3. Code with three Grover iterations implemented for the first group.

H q[0]

H q[1]

H q[2]

X q[3]

X q[4]

X q[15]

X q[0]

X q[1]

X q[2]

H q[15]

TOFFOLI q[1],q[0],q[3]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[0],q[5],q[6]

X q[0]

TOFFOLI q[5],q[0],q[7]

TOFFOLI q[1],q[6],q[8]

TOFFOLI q[7],q[1],q[9]

X q[1]

TOFFOLI q[6],q[1],q[9]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[2],q[8],q[11]

TOFFOLI q[9],q[2],q[12]

X q[2]

TOFFOLI q[8],q[2],q[12]

TOFFOLI q[9],q[2],q[13]

X q[2]

TOFFOLI q[2],q[10],q[13]

X q[2]

TOFFOLI q[10],q[2],q[14]

CNOT q[12],q[15]

TOFFOLI q[10],q[2],q[14]

X q[2]

TOFFOLI q[2],q[10],q[13]

X q[2]

TOFFOLI q[9],q[2],q[13]

TOFFOLI q[8],q[2],q[12]

X q[2]

TOFFOLI q[9],q[2],q[12]

TOFFOLI q[2],q[8],q[11]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[6],q[1],q[9]

X q[1]

TOFFOLI q[7],q[1],q[9]

TOFFOLI q[1],q[6],q[8]

TOFFOLI q[5],q[0],q[7]

X q[0]

TOFFOLI q[0],q[5],q[6]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[1],q[0],q[3]

Code 3. Code with three Grover iterations implemented for the first group.

X q[4]

X q[0]

X q[1]

X q[2]

X q[3]

X q[4]

H q[0]

H q[1]

H q[2]

X q[3]

X q[0]

X q[1]

X q[2]

H q[2]

TOFFOLI q[1],q[0],q[2]

X q[0]

X q[1]

H q[2]

H q[0]

H q[1]

X q[2]

X q[0]

X q[1]

H q[2]

X q[2]

TOFFOLI q[1],q[0],q[3]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[0],q[5],q[6]

X q[0]

TOFFOLI q[5],q[0],q[7]

TOFFOLI q[1],q[6],q[8]

TOFFOLI q[7],q[1],q[9]

X q[1]

TOFFOLI q[6],q[1],q[9]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[2],q[8],q[11]

TOFFOLI q[9],q[2],q[12]

X q[2]

TOFFOLI q[8],q[2],q[12]

TOFFOLI q[9],q[2],q[13]

X q[2]

TOFFOLI q[2],q[10],q[13]

X q[2]

TOFFOLI q[10],q[2],q[14]

CNOT q[12],q[15]

TOFFOLI q[10],q[2],q[14]

X q[2]

TOFFOLI q[2],q[10],q[13]

X q[2]

TOFFOLI q[9],q[2],q[13]

TOFFOLI q[8],q[2],q[12]

Code 3. Code with three Grover iterations implemented for the first group.

X q[2]

TOFFOLI q[9],q[2],q[12]

TOFFOLI q[2],q[8],q[11]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[6],q[1],q[9]

X q[1]

TOFFOLI q[7],q[1],q[9]

TOFFOLI q[1],q[6],q[8]

TOFFOLI q[5],q[0],q[7]

X q[0]

TOFFOLI q[0],q[5],q[6]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[1],q[0],q[3]

X q[4]

X q[0]

X q[1]

X q[2]

X q[3]

X q[4]

H q[0]

H q[1]

H q[2]

X q[3]

X q[0]

X q[1]

X q[2]

H q[2]

TOFFOLI q[1],q[0],q[2]

X q[0]

X q[1]

H q[2]

H q[0]

H q[1]

X q[2]

X q[0]

X q[1]

H q[2]

X q[2]

TOFFOLI q[1],q[0],q[3]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[0],q[5],q[6]

X q[0]

TOFFOLI q[5],q[0],q[7]

TOFFOLI q[1],q[6],q[8]

TOFFOLI q[7],q[1],q[9]

X q[1]

TOFFOLI q[6],q[1],q[9]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[2],q[8],q[11]

TOFFOLI q[9],q[2],q[12]

Code 3. Code with three Grover iterations implemented for the first group.

X q[2]

TOFFOLI q[8],q[2],q[12]

TOFFOLI q[9],q[2],q[13]

X q[2]

TOFFOLI q[2],q[10],q[13]

X q[2]

TOFFOLI q[10],q[2],q[14]

CNOT q[12],q[15]

TOFFOLI q[10],q[2],q[14]

X q[2]

TOFFOLI q[2],q[10],q[13]

X q[2]

TOFFOLI q[9],q[2],q[13]

TOFFOLI q[8],q[2],q[12]

X q[2]

TOFFOLI q[9],q[2],q[12]

TOFFOLI q[2],q[8],q[11]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[6],q[1],q[9]

X q[1]

TOFFOLI q[7],q[1],q[9]

TOFFOLI q[1],q[6],q[8]

TOFFOLI q[5],q[0],q[7]

X q[0]

TOFFOLI q[0],q[5],q[6]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[1],q[0],q[3]

X q[4]

X q[0]

X q[1]

X q[2]

X q[3]

H q[0]

H q[1]

H q[2]

X q[0]

X q[1]

X q[2]

H q[2]

TOFFOLI q[1],q[0],q[2]

X q[0]

X q[1]

H q[2]

H q[0]

H q[1]

X q[2]

H q[2]

MEASURE q[0],c[0]

MEASURE q[1],c[1]

MEASURE q[2],c[2]

Code 4. Code with one Grover iteration implemented for the second group.

H q[0]

H q[1]

H q[2]

X q[3]

X q[4]

X q[15]

X q[0]

X q[1]

X q[2]

H q[15]

TOFFOLI q[1],q[0],q[3]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[0],q[5],q[6]

X q[0]

TOFFOLI q[5],q[0],q[7]

TOFFOLI q[6],q[1],q[8]

TOFFOLI q[7],q[1],q[9]

X q[1]

TOFFOLI q[6],q[1],q[9]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[8],q[2],q[11]

TOFFOLI q[9],q[2],q[12]

X q[2]

TOFFOLI q[8],q[2],q[12]

TOFFOLI q[9],q[2],q[13]

X q[2]

TOFFOLI q[10],q[2],q[13]

X q[2]

TOFFOLI q[10],q[2],q[14]

CNOT q[12],q[15]

TOFFOLI q[10],q[2],q[14]

X q[2]

TOFFOLI q[10],q[2],q[13]

X q[2]

TOFFOLI q[9],q[2],q[13]

TOFFOLI q[8],q[2],q[12]

X q[2]

TOFFOLI q[9],q[2],q[12]

TOFFOLI q[8],q[2],q[11]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[6],q[1],q[9]

X q[1]

TOFFOLI q[7],q[1],q[9]

TOFFOLI q[6],q[1],q[8]

TOFFOLI q[5],q[0],q[7]

X q[0]

TOFFOLI q[0],q[5],q[6]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[1],q[0],q[3]

Code 4. Code with one Grover iteration implemented for the second group.

X q[4]

X q[0]

X q[1]

X q[2]

X q[3]

X q[4]

H q[0]

H q[1]

H q[2]

X q[3]

X q[0]

X q[1]

X q[2]

H q[2]

TOFFOLI q[1],q[0],q[2]

X q[0]

X q[1]

H q[2]

H q[0]

H q[1]

X q[2]

X q[0]

X q[1]

H q[2]

X q[2]

TOFFOLI q[1],q[0],q[3]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[0],q[5],q[6]

X q[0]

TOFFOLI q[5],q[0],q[7]

TOFFOLI q[6],q[1],q[8]

TOFFOLI q[7],q[1],q[9]

X q[1]

TOFFOLI q[6],q[1],q[9]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[8],q[2],q[11]

TOFFOLI q[9],q[2],q[12]

X q[2]

TOFFOLI q[8],q[2],q[12]

TOFFOLI q[9],q[2],q[13]

X q[2]

Code 4. Code with one Grover iteration implemented for the second group.

TOFFOLI q[10],q[2],q[13]

X q[2]

TOFFOLI q[10],q[2],q[14]

CNOT q[12],q[15]

TOFFOLI q[10],q[2],q[14]

X q[2]

TOFFOLI q[10],q[2],q[13]

X q[2]

TOFFOLI q[9],q[2],q[13]

TOFFOLI q[8],q[2],q[12]

X q[2]

TOFFOLI q[9],q[2],q[12]

TOFFOLI q[8],q[2],q[11]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[6],q[1],q[9]

X q[1]

TOFFOLI q[7],q[1],q[9]

TOFFOLI q[6],q[1],q[8]

TOFFOLI q[5],q[0],q[7]

X q[0]

TOFFOLI q[0],q[5],q[6]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[1],q[0],q[3]

X q[4]

X q[0]

X q[1]

X q[2]

X q[3]

H q[0]

H q[1]

H q[2]

X q[0]

X q[1]

X q[2]

H q[2]

TOFFOLI q[1],q[0],q[2]

X q[0]

X q[1]

H q[2]

H q[0]

H q[1]

X q[2]

H q[2]

MEASURE q[0],c[0]

MEASURE q[1],c[1]

MEASURE q[2],c[2]

Code 5. Code with two Grover iterations implemented for the second group.

H q[0]

H q[1]

H q[2]

X q[3]

X q[4]

X q[15]

X q[0]

X q[1]

X q[2]

H q[15]

TOFFOLI q[1],q[0],q[3]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[0],q[5],q[6]

X q[0]

TOFFOLI q[5],q[0],q[7]

TOFFOLI q[6],q[1],q[8]

TOFFOLI q[7],q[1],q[9]

X q[1]

TOFFOLI q[6],q[1],q[9]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[8],q[2],q[11]

TOFFOLI q[9],q[2],q[12]

X q[2]

TOFFOLI q[8],q[2],q[12]

TOFFOLI q[9],q[2],q[13]

X q[2]

TOFFOLI q[10],q[2],q[13]

X q[2]

TOFFOLI q[10],q[2],q[14]

CNOT q[13],q[15]

TOFFOLI q[10],q[2],q[14]

X q[2]

TOFFOLI q[10],q[2],q[13]

X q[2]

TOFFOLI q[9],q[2],q[13]

TOFFOLI q[8],q[2],q[12]

X q[2]

TOFFOLI q[9],q[2],q[12]

TOFFOLI q[8],q[2],q[11]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[6],q[1],q[9]

X q[1]

TOFFOLI q[7],q[1],q[9]

TOFFOLI q[6],q[1],q[8]

TOFFOLI q[5],q[0],q[7]

X q[0]

TOFFOLI q[0],q[5],q[6]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[1],q[0],q[3]

X q[4]

Code 5. Code with two Grover iterations implemented for the second group.

X q[0]

X q[1]

X q[2]

X q[3]

X q[4]

H q[0]

H q[1]

H q[2]

X q[3]

X q[0]

X q[1]

X q[2]

H q[2]

TOFFOLI q[1],q[0],q[2]

X q[0]

X q[1]

H q[2]

H q[0]

H q[1]

X q[2]

X q[0]

X q[1]

H q[2]

X q[2]

TOFFOLI q[1],q[0],q[3]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[0],q[5],q[6]

X q[0]

TOFFOLI q[5],q[0],q[7]

TOFFOLI q[6],q[1],q[8]

TOFFOLI q[7],q[1],q[9]

X q[1]

TOFFOLI q[6],q[1],q[9]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[8],q[2],q[11]

TOFFOLI q[9],q[2],q[12]

X q[2]

TOFFOLI q[8],q[2],q[12]

TOFFOLI q[9],q[2],q[13]

X q[2]

TOFFOLI q[10],q[2],q[13]

X q[2]

TOFFOLI q[10],q[2],q[14]

CNOT q[13],q[15]

Code 5. Code with two Grover iterations implemented for the second group.

TOFFOLI q[10],q[2],q[14]

X q[2]

TOFFOLI q[10],q[2],q[13]

X q[2]

TOFFOLI q[9],q[2],q[13]

TOFFOLI q[8],q[2],q[12]

X q[2]

TOFFOLI q[9],q[2],q[12]

TOFFOLI q[8],q[2],q[11]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[6],q[1],q[9]

X q[1]

TOFFOLI q[7],q[1],q[9]

TOFFOLI q[6],q[1],q[8]

TOFFOLI q[5],q[0],q[7]

X q[0]

TOFFOLI q[0],q[5],q[6]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[1],q[0],q[3]

X q[4]

X q[0]

X q[1]

X q[2]

X q[3]

H q[0]

H q[1]

H q[2]

X q[0]

X q[1]

X q[2]

H q[2]

TOFFOLI q[1],q[0],q[2]

X q[0]

X q[1]

H q[2]

H q[0]

H q[1]

X q[2]

H q[2]

MEASURE q[0],c[0]

MEASURE q[1],c[1]

MEASURE q[2],c[2]

Code 6. Code with one Grover iteration implemented for the third group.

H q[0]

H q[1]

H q[2]

X q[3]

X q[4]

X q[15]

X q[0]

X q[1]

X q[2]

H q[15]

TOFFOLI q[1],q[0],q[3]

TOFFOLI q[2],q[1],q[4]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[5],q[0],q[6]

X q[0]

TOFFOLI q[5],q[0],q[7]

TOFFOLI q[6],q[1],q[8]

TOFFOLI q[7],q[1],q[9]

X q[1]

TOFFOLI q[6],q[1],q[9]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[8],q[2],q[11]

TOFFOLI q[9],q[2],q[12]

X q[2]

TOFFOLI q[8],q[2],q[12]

TOFFOLI q[9],q[2],q[13]

X q[2]

TOFFOLI q[10],q[2],q[13]

X q[2]

TOFFOLI q[2],q[10],q[14]

CNOT q[14],q[15]

TOFFOLI q[2],q[10],q[14]

X q[2]

TOFFOLI q[10],q[2],q[13]

X q[2]

TOFFOLI q[9],q[2],q[13]

TOFFOLI q[8],q[2],q[12]

X q[2]

Code 6. Code with one Grover iteration implemented for the third group.

TOFFOLI q[9],q[2],q[12]

TOFFOLI q[8],q[2],q[11]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[6],q[1],q[9]

X q[1]

TOFFOLI q[7],q[1],q[9]

TOFFOLI q[6],q[1],q[8]

TOFFOLI q[5],q[0],q[7]

X q[0]

TOFFOLI q[5],q[0],q[6]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[2],q[1],q[4]

TOFFOLI q[1],q[0],q[3]

X q[4]

X q[0]

X q[1]

X q[2]

X q[3]

H q[0]

H q[1]

H q[2]

X q[0]

X q[1]

X q[2]

H q[2]

TOFFOLI q[1],q[0],q[2]

X q[0]

X q[1]

H q[2]

H q[0]

H q[1]

X q[2]

H q[2]

MEASURE q[0],c[0]

MEASURE q[1],c[1]

MEASURE q[2],c[2]

Code 7. Code with two Grover iterations implemented for the third group.

H q[0]

H q[1]

H q[2]

X q[3]

X q[4]

X q[15]

X q[0]

X q[1]

X q[2]

H q[15]

TOFFOLI q[1],q[0],q[3]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[0],q[5],q[6]

X q[0]

TOFFOLI q[5],q[0],q[7]

TOFFOLI q[6],q[1],q[8]

TOFFOLI q[7],q[1],q[9]

X q[1]

TOFFOLI q[6],q[1],q[9]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[8],q[2],q[11]

TOFFOLI q[9],q[2],q[12]

X q[2]

TOFFOLI q[8],q[2],q[12]

TOFFOLI q[9],q[2],q[13]

X q[2]

TOFFOLI q[10],q[2],q[13]

X q[2]

TOFFOLI q[10],q[2],q[14]

CNOT q[14],q[15]

TOFFOLI q[10],q[2],q[14]

X q[2]

TOFFOLI q[10],q[2],q[13]

X q[2]

TOFFOLI q[9],q[2],q[13]

TOFFOLI q[8],q[2],q[12]

X q[2]

TOFFOLI q[9],q[2],q[12]

TOFFOLI q[8],q[2],q[11]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[6],q[1],q[9]

X q[1]

TOFFOLI q[7],q[1],q[9]

TOFFOLI q[6],q[1],q[8]

TOFFOLI q[5],q[0],q[7]

X q[0]

Code 7. Code with two Grover iterations implemented for the third group.

TOFFOLI q[0],q[5],q[6]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[1],q[0],q[3]

X q[4]

X q[0]

X q[1]

X q[2]

X q[3]

X q[4]

H q[0]

H q[1]

H q[2]

X q[3]

X q[0]

X q[1]

X q[2]

H q[2]

TOFFOLI q[1],q[0],q[2]

X q[0]

X q[1]

H q[2]

H q[0]

H q[1]

X q[2]

X q[0]

X q[1]

H q[2]

X q[2]

TOFFOLI q[1],q[0],q[3]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[0],q[5],q[6]

X q[0]

TOFFOLI q[5],q[0],q[7]

TOFFOLI q[6],q[1],q[8]

TOFFOLI q[7],q[1],q[9]

X q[1]

TOFFOLI q[6],q[1],q[9]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[8],q[2],q[11]

TOFFOLI q[9],q[2],q[12]

X q[2]

Code 7. Code with two Grover iterations implemented for the third group.

TOFFOLI q[8],q[2],q[12]

TOFFOLI q[9],q[2],q[13]

X q[2]

TOFFOLI q[10],q[2],q[13]

X q[2]

TOFFOLI q[10],q[2],q[14]

CNOT q[14],q[15]

TOFFOLI q[10],q[2],q[14]

X q[2]

TOFFOLI q[10],q[2],q[13]

X q[2]

TOFFOLI q[9],q[2],q[13]

TOFFOLI q[8],q[2],q[12]

X q[2]

TOFFOLI q[9],q[2],q[12]

TOFFOLI q[8],q[2],q[11]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[6],q[1],q[9]

X q[1]

TOFFOLI q[7],q[1],q[9]

TOFFOLI q[6],q[1],q[8]

TOFFOLI q[5],q[0],q[7]

X q[0]

TOFFOLI q[0],q[5],q[6]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[1],q[0],q[3]

X q[4]

X q[0]

X q[1]

X q[2]

X q[3]

H q[0]

H q[1]

H q[2]

X q[0]

X q[1]

X q[2]

H q[2]

TOFFOLI q[1],q[0],q[2]

X q[0]

X q[1]

H q[2]

H q[0]

H q[1]

X q[2]

H q[2]

MEASURE q[0],c[0]

MEASURE q[1],c[1]

MEASURE q[2],c[2]

Code 8. Code with three Grover iterations implemented for the third group.

H q[0]

H q[1]

H q[2]

X q[3]

X q[4]

X q[15]

X q[0]

X q[1]

X q[2]

H q[15]

TOFFOLI q[1],q[0],q[3]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[0],q[5],q[6]

X q[0]

TOFFOLI q[5],q[0],q[7]

TOFFOLI q[1],q[6],q[8]

TOFFOLI q[7],q[1],q[9]

X q[1]

TOFFOLI q[6],q[1],q[9]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[2],q[8],q[11]

TOFFOLI q[9],q[2],q[12]

X q[2]

TOFFOLI q[8],q[2],q[12]

TOFFOLI q[9],q[2],q[13]

X q[2]

TOFFOLI q[2],q[10],q[13]

X q[2]

TOFFOLI q[10],q[2],q[14]

CNOT q[14],q[15]

TOFFOLI q[10],q[2],q[14]

X q[2]

TOFFOLI q[2],q[10],q[13]

X q[2]

TOFFOLI q[9],q[2],q[13]

TOFFOLI q[8],q[2],q[12]

Code 8. Code with three Grover iterations implemented for the third group.

X q[2]

TOFFOLI q[9],q[2],q[12]

TOFFOLI q[2],q[8],q[11]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[6],q[1],q[9]

X q[1]

TOFFOLI q[7],q[1],q[9]

TOFFOLI q[1],q[6],q[8]

TOFFOLI q[5],q[0],q[7]

X q[0]

TOFFOLI q[0],q[5],q[6]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[1],q[0],q[3]

X q[4]

X q[0]

X q[1]

X q[2]

X q[3]

X q[4]

H q[0]

H q[1]

H q[2]

X q[3]

X q[0]

X q[1]

X q[2]

H q[2]

TOFFOLI q[1],q[0],q[2]

X q[0]

X q[1]

H q[2]

H q[0]

H q[1]

X q[2]

X q[0]

X q[1]

H q[2]

X q[2]

TOFFOLI q[1],q[0],q[3]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[0],q[5],q[6]

X q[0]

TOFFOLI q[5],q[0],q[7]

TOFFOLI q[1],q[6],q[8]

TOFFOLI q[7],q[1],q[9]

X q[1]

TOFFOLI q[6],q[1],q[9]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[2],q[8],q[11]

TOFFOLI q[9],q[2],q[12]

Code 8. Code with three Grover iterations implemented for the third group.

X q[2]

TOFFOLI q[8],q[2],q[12]

TOFFOLI q[9],q[2],q[13]

X q[2]

TOFFOLI q[2],q[10],q[13]

X q[2]

TOFFOLI q[10],q[2],q[14]

CNOT q[14],q[15]

TOFFOLI q[10],q[2],q[14]

X q[2]

TOFFOLI q[2],q[10],q[13]

X q[2]

TOFFOLI q[9],q[2],q[13]

TOFFOLI q[8],q[2],q[12]

X q[2]

TOFFOLI q[9],q[2],q[12]

TOFFOLI q[2],q[8],q[11]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[6],q[1],q[9]

X q[1]

TOFFOLI q[7],q[1],q[9]

TOFFOLI q[1],q[6],q[8]

TOFFOLI q[5],q[0],q[7]

X q[0]

TOFFOLI q[0],q[5],q[6]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[1],q[0],q[3]

X q[4]

X q[0]

X q[1]

X q[2]

X q[3]

X q[4]

H q[0]

H q[1]

H q[2]

X q[3]

X q[0]

X q[1]

X q[2]

H q[2]

TOFFOLI q[1],q[0],q[2]

X q[0]

X q[1]

H q[2]

H q[0]

H q[1]

X q[2]

X q[0]

X q[1]

H q[2]

X q[2]

Code 8. Code with three Grover iterations implemented for the third group.

TOFFOLI q[1],q[0],q[3]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[0],q[5],q[6]

X q[0]

TOFFOLI q[5],q[0],q[7]

TOFFOLI q[1],q[6],q[8]

TOFFOLI q[7],q[1],q[9]

X q[1]

TOFFOLI q[6],q[1],q[9]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[2],q[8],q[11]

TOFFOLI q[9],q[2],q[12]

X q[2]

TOFFOLI q[8],q[2],q[12]

TOFFOLI q[9],q[2],q[13]

X q[2]

TOFFOLI q[2],q[10],q[13]

X q[2]

TOFFOLI q[10],q[2],q[14]

CNOT q[14],q[15]

TOFFOLI q[10],q[2],q[14]

X q[2]

TOFFOLI q[2],q[10],q[13]

X q[2]

TOFFOLI q[9],q[2],q[13]

TOFFOLI q[8],q[2],q[12]

X q[2]

TOFFOLI q[9],q[2],q[12]

TOFFOLI q[2],q[8],q[11]

TOFFOLI q[7],q[1],q[10]

TOFFOLI q[6],q[1],q[9]

X q[1]

TOFFOLI q[7],q[1],q[9]

TOFFOLI q[1],q[6],q[8]

TOFFOLI q[5],q[0],q[7]

X q[0]

TOFFOLI q[0],q[5],q[6]

TOFFOLI q[4],q[3],q[5]

TOFFOLI q[1],q[2],q[4]

TOFFOLI q[1],q[0],q[3]

X q[4]

X q[0]

X q[1]

X q[2]

X q[3]

H q[0]

H q[1]

H q[2]

X q[0]

Code 8. Code with three Grover iterations implemented for the third group.

X q[1]

X q[2]

H q[2]

TOFFOLI q[1],q[0],q[2]

X q[0]

X q[1]

H q[2]

H q[0]

H q[1]

X q[2]

H q[2]

MEASURE q[0],c[0]

MEASURE q[1],c[1]

MEASURE q[2],c[2]

Appendix C: The code of the classical solution

figure a

The code of screening the feasible solutions.

figure b

The code of counting the number of vertices.

figure c

The code of finding the optimal solution of the vertex cover problem.

Rights and permissions

Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Wang, Z., Liang, K., Bao, X. et al. Quantum speedup for solving the minimum vertex cover problem based on Grover search algorithm. Quantum Inf Process 22, 271 (2023). https://doi.org/10.1007/s11128-023-04010-4

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s11128-023-04010-4

Keywords

Navigation