IBM-Quantum-Technical-Enablement / quantum-enablement

IBM Quantum Engineering and Enabling Technologies
Apache License 2.0
28 stars 8 forks source link

docs(notebooks): add Krylov subspace expansion tutorial #11

Closed miamico closed 6 months ago

miamico commented 7 months ago

Summary

Adding a tutorial on finding the ground state energy of a given Hamiltonian (Heisenberg model) using the Krylov subspace expansion techniques.

Details and comments

The tutorial is formatted in the Qiskit Patterns framework with a detailed description of the method in Step 1., optimization of the circuits in Step 2., execution with the primitives on a simulator in Step 3. and post-processing of the results to get the value of the ground state energy of the system in Step 4.

coveralls commented 7 months ago

Pull Request Test Coverage Report for Build 8472840764

Warning: This coverage report may be inaccurate.

This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

Details


Totals Coverage Status
Change from base Build 8031993973: 0.0%
Covered Lines: 290
Relevant Lines: 290

💛 - Coveralls
pedrorrivero commented 7 months ago

Hi @miamico can you check that this notebook runs with a freshly created environment and only this repo installed from source? Please make sure to install the notebook optional dependencies.

Since Friday, this should be equivalent to Qiskit 1.0.0. You will need to ~rebase this branch to~ merge main, let me know if you need help.

If you need additional dependencies please flag.

miamico commented 7 months ago

I've modified the notebook to work on qiskit 1.0. Verified that it runs top to bottom installing the repo dependencies and qiskit 1.0.

Note that when installing the optional dependencies with the command: pip install -e .[notebook] I've encountered the following error: zsh: no matches found: .[notebook] Apparently brackets and zsh don't go along so I had to use the following command instead to escape the brackets: pip install -e ".[notebook]" It may be worth mentioning this in the install instructions

nathanearnestnoble commented 7 months ago

I think this is a good 'starter kit' for someone looking to try and explore using the krylov method.

Given similar focus on Heisenberg chains, and in context of this existing related tutorial, I wonder if a title 'Heisenberg Chains with quantum krylov subspace expansion' might be an apt name -- thoughts?

The text is very verbose, but I think this is useful with respect to learning about krylov method. May be worth considering future updates to leave out edu content for tutorials and include this in other edu sections.

miamico commented 7 months ago

Thanks @miamico!

I have not gotten to the contents of the guide, but we need to do these two things before merging is possible:

  1. Merge main into this branch to get the latest updates.
  2. Remove the word guide from the file name.

The file is now called: Calculating ground states on large scale systems with the quantum krylov subspace method.ipynb

miamico commented 7 months ago

I think this is a good 'starter kit' for someone looking to try and explore using the krylov method.

Given similar focus on Heisenberg chains, and in context of this existing related tutorial, I wonder if a title 'Heisenberg Chains with quantum krylov subspace expansion' might be an apt name -- thoughts?

The text is very verbose, but I think this is useful with respect to learning about krylov method. May be worth considering future updates to leave out edu content for tutorials and include this in other edu sections.

I'm afraid to emphasize too much Heisemberg chain as that may give the impression that this technique is specifically for this case while I want to focus more on the technique itself. Open to further discussions.

I agree on the verbose part. We can figure out what is the right amount of information.

pedrorrivero commented 7 months ago

I've modified the notebook to work on qiskit 1.0. Verified that it runs top to bottom installing the repo dependencies and qiskit 1.0.

Note that when installing the optional dependencies with the command: pip install -e .[notebook] I've encountered the following error: zsh: no matches found: .[notebook] Apparently brackets and zsh don't go along so I had to use the following command instead to escape the brackets: pip install -e ".[notebook]" It may be worth mentioning this in the install instructions

I missed this comment before @miamico, can you mention me in the future so that I get notified?

This is/was already referenced in INSTALL.md. Can you see it?

miamico commented 7 months ago

I've modified the notebook to work on qiskit 1.0. Verified that it runs top to bottom installing the repo dependencies and qiskit 1.0. Note that when installing the optional dependencies with the command: pip install -e .[notebook] I've encountered the following error: zsh: no matches found: .[notebook] Apparently brackets and zsh don't go along so I had to use the following command instead to escape the brackets: pip install -e ".[notebook]" It may be worth mentioning this in the install instructions

I missed this comment before @miamico, can you mention me in the future so that I get notified?

This is/was already referenced in INSTALL.md. Can you see it?

Oh yes I saw it now!

pedrorrivero commented 6 months ago

@miamico , can you mark as resolved the comments that you have already addressed? If everything is okay with the rest I think we should be ready to mereg

miamico commented 6 months ago

Yep, I've addressed the various comments. I think it's ready to be merged