-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
Projected Variational Quantum Dynamics #8304
Conversation
Thank you for opening a new pull request. Before your PR can be merged it will first need to pass continuous integration tests and be reviewed. Sometimes the review process can be slow, so please be patient. While you're waiting, please feel free to review other open PRs. While only a subset of people are authorized to approve pull requests for merging, everyone is encouraged to review open pull requests. Doing reviews helps reduce the burden on the core team and helps make the project's code better for everyone. One or more of the the following people are requested to review this:
|
Pull Request Test Coverage Report for Build 2799260696
💛 - Coveralls |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left some feedback. Do you plan to make the pvqd class shorter by a decomposition?
- reno - remove old pvqd file - allow attributes to be None - more tests
Can we try to break down the |
To reduce the filesize or what do you want to optimize? I could move the observable evaluator outside of the function or the result object into a new file. Or what did you have in mind? |
Yes, I wanted to make the main class shorter and thus easier to read.
If would say 2) and 3) are perhaps solid candidates for extraction. |
no idea why this unused import existed, that should be caught before this PR?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good work! Glad to see another algorithm enriching the Evolvers Framework.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just had some minor comments on terminology. Thanks for the addition to Qiskit. Looking forward to testing it :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for incorporating the comments.
- support MatrixOp - default for timestep - update reno with refs - test step and get_loss
* pvqd dradt * update as theta + difference * black * refactor test * update to new time evo framework * add gradients * use gradient only if supported * polishing! - reno - remove old pvqd file - allow attributes to be None - more tests * fix algorithms import * changes from code review * add more tests for different ops * refactor PVQD to multiple files * remove todo * comments from review * rm OrderedDict from unitary no idea why this unused import existed, that should be caught before this PR? * changes from code review * remove function to attach intial states * include comments from review - support MatrixOp - default for timestep - update reno with refs - test step and get_loss * make only quantum instance and optimizer optional, and use num_timesteps * fix docs * add comment why Optimizer is optional * use class attributes to document mutable attrs * rm duplicate quantum_instance doc * fix attributes docs Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* pvqd dradt * update as theta + difference * black * refactor test * update to new time evo framework * add gradients * use gradient only if supported * polishing! - reno - remove old pvqd file - allow attributes to be None - more tests * fix algorithms import * changes from code review * add more tests for different ops * refactor PVQD to multiple files * remove todo * comments from review * rm OrderedDict from unitary no idea why this unused import existed, that should be caught before this PR? * changes from code review * remove function to attach intial states * include comments from review - support MatrixOp - default for timestep - update reno with refs - test step and get_loss * make only quantum instance and optimizer optional, and use num_timesteps * fix docs * add comment why Optimizer is optional * use class attributes to document mutable attrs * rm duplicate quantum_instance doc * fix attributes docs Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Summary
Implement the p-VQD algorithm for real time evolution from https://quantum-journal.org/papers/q-2021-07-28-512/.
This algorithm implement real time evolution by projecting a single Trotter step onto a variational form in each timestep.
Details and comments
Todo: