Classiq / classiq-library

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

Quantum Algorithm Zoo: Estimating Partition Functions #53

Open orsa-classiq opened 6 months ago

orsa-classiq commented 6 months ago

In this issue, we will create an implementation of a quantum algorithm for estimating partition function. We will implement algorithm described in the paper: Quantum speedup of Monte Carlo methods. This 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: Quantum speedup of Monte Carlo methods ](https://arxiv.org/abs/1504.06987).
  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 paper, and showcase the results. You can estimate the partition function of a chosen ferromagnetic model, or a different problem if you desire. 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, "partition_function.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/partition_function

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!

Mefisto04 commented 1 month ago

hey @orsa-classiq i want to work on this issue and want to add some contribution with my knowledge, can you please assign this issue to me

amir-naveh commented 3 weeks ago

@Mefisto04 if you still want to work on this let us know. Otherwise this issue remains open. Thanks