Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

QITE Inconsistencies #67

Open
JonathonMisiewicz opened this issue Apr 1, 2021 · 3 comments
Open

QITE Inconsistencies #67

JonathonMisiewicz opened this issue Apr 1, 2021 · 3 comments
Labels
wontfix This will not be worked on

Comments

@JonathonMisiewicz
Copy link
Contributor

JonathonMisiewicz commented Apr 1, 2021

After more poking around, I'm not convinced that QITE follows the same algorithm as Mario and Garnet's paper. QForte's algorithm to construct b computes it using eq. 5 of that paper, with the denominator approximate per eq. 3. As best as I can tell, that isn't what Mario and Garnet did. The b vector in their code is computed using eq. 9 of their SI. The approach of using eq. 3 and 5 of the main paper is a first order approximation to that, and in general, the two are different.

Is there a reason why we implement the eq. 3/5 strategy? I believe that eq. 9-SI is the correct one here.

There may be other issues. It'll take some time to go through them.

@JonathonMisiewicz
Copy link
Contributor Author

I'm going to be taking this issue as I read over some of Minnich's papers.

@JonathonMisiewicz JonathonMisiewicz self-assigned this Jun 8, 2021
@JonathonMisiewicz
Copy link
Contributor Author

The tale is more complicated than I first thought. They used different approximations in their quantum simulator compared to their noiseless simulator. The algorithm they used on their noiseless system involves non-Trotterized exponentials.

I'm still not sure the QForte implementation matches the original implementation. The basic structure of a single QITE step is to loop over all terms in the Hamiltonian, compute the step for each, and update the wavefunction gate for each. In the QForte loop, we have a "step-merged" version, where we use the entire Hamiltonian, Trotterizing when necessary.

@nstair, does this sound right to you? If we're agreed about the theory, I can implement the non-step-merged version, keeping the step-merged version.

@nstair
Copy link
Contributor

nstair commented Jun 14, 2021

@JonathonMisiewicz you are correct. The current implementation in QForte is closer to the step-merged version. You are welcome to implement the non-step-merged version, but it becomes challenging to rationalize 'inexact QITE' for non k-local hamiltonians.

@JonathonMisiewicz JonathonMisiewicz added the wontfix This will not be worked on label Oct 6, 2021
@JonathonMisiewicz JonathonMisiewicz removed their assignment Nov 18, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests

2 participants