Classiq / classiq-library

The Classiq Library is the largest collection of quantum algorithms, applications. It is the best way to explore quantum computing software. We welcome community contributions to our Library 🙌
https://platform.classiq.io
MIT License
297 stars 126 forks source link

Quantum Algorithm Zoo: Quantum Group Testing #48

Open orsa-classiq opened 2 months ago

orsa-classiq commented 2 months ago

In this issue, we will create an implementation of the following paper: Efficient Quantum Algorithms for (Gapped) Group Testing and Junta Testing. The problem is interesting as for some cases in group testing, there is a proven quartic speedup, which is quite unusual among quantum algorithms.

The tutorial should follow the structure of the Deutsch Jozsa algorithm implementation. Once finished, the implementation will be added to the Quantum Algorithm Zoo, and of course credit will be given to the implementor.

To complete this issue, follow these steps:

  1. Read the following paper: Efficient Quantum Algorithms for (Gapped) Group Testing and Junta Testing. You can pick one of the problems in the paper, such as the QGGT, to solve in the tutorial.
  2. Create a new jupyter notebook (.ipynb file). Use any jupyter editor (e.g. jupyter lab, google colab, etc).
  3. Use Classiq's SDK to create a simple implementation of the problem, and showcase the results. If you have any implementation questions or challenges, the Classiq team will assist you, either on Github or in our slack community. Follow the Deutsch Jozsa algorithm implementation example for the structure of the notebook.
  4. Create a short mathematical explanation of the work. Jupyter notebooks support markdown cells, which can contain LaTeX. You can view the source or the superposition notebook to see how this is done. Chat GPT is an excellent LaTeX assistant.
  5. After creating the notebook, make sure you insert the write_qmod(model, "group_testing.qmod") line. Run the notebook, and you will automatically generate the .qmod file for this example.
  6. Make sure the notebook looks well, does not have any typos / mistakes, and is running properly.
  7. Follow the contribution guidelines to open a pull request. Submit the tutorial to the directory: classiq-library/community/advanced_examples/group_testing

If you have any questions or comments, you can ask them here in the issue, or in our slack community, and the Classiq team will be happy to assist.

Happy quantum coding!