qiskit icon indicating copy to clipboard operation
qiskit copied to clipboard

Variational Quantum Time Evolution algorithm.

Open dlasecki opened this issue 2 years ago • 3 comments

Summary

This PR introduces Variational Quantum Time Evolution algorithms, imaginary and real, to the algorithms module. It uses variational principles: real McLachlan's, imaginary McLachlan's and real Time Dependent. It is part of the bigger framework for Quantum Time Evolution and implements the relevant interface.

The work is based on the PoC by @Zoufalc which has been significantly redesigned. The correctness has been cross-checked with the PoC.

Relevant papers: https://github.com/Qiskit/qiskit-terra/pull/7349#issuecomment-985339705

It closes the following epic: https://github.com/Qiskit/qiskit-terra/issues/6838 and the following associated issues:

Closes: https://github.com/Qiskit/qiskit-terra/issues/6912, Closes: https://github.com/Qiskit/qiskit-terra/issues/6913, Closes: https://github.com/Qiskit/qiskit-terra/issues/6914, Closes: https://github.com/Qiskit/qiskit-terra/issues/6915, Closes: https://github.com/Qiskit/qiskit-terra/issues/6916, Closes: https://github.com/Qiskit/qiskit-terra/issues/6931, Closes: https://github.com/Qiskit/qiskit-terra/issues/7268, Closes: https://github.com/Qiskit/qiskit-terra/issues/7070, Closes: https://github.com/Qiskit/qiskit-terra/issues/7143, Closes: #7639, Closes: #7649, Closes: #7577. ... .

Details and comments

Things that will be addressed in separate PRs:

  • Calculating error bounds.
  • Implementation of the gradient() method in varqrte.py and varqite.py
  • Saving intermediate results to log files. https://github.com/Qiskit/qiskit-terra/issues/6935
  • Option for an error-based ODE function.

dlasecki avatar Jun 08 '22 16:06 dlasecki

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:

  • @Cryoris
  • @Qiskit/terra-core
  • @manoelmarques
  • @woodsp-ibm

qiskit-bot avatar Jun 08 '22 16:06 qiskit-bot

Pull Request Test Coverage Report for Build 2912234654

  • 354 of 375 (94.4%) changed or added relevant lines in 22 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage increased (+0.08%) to 84.117%

Changes Missing Coverage Covered Lines Changed/Added Lines %
qiskit/algorithms/evolvers/variational/solvers/ode/abstract_ode_function.py 13 14 92.86%
qiskit/algorithms/evolvers/variational/solvers/ode/ode_function_factory.py 18 19 94.74%
qiskit/algorithms/evolvers/variational/var_qite.py 17 18 94.44%
qiskit/algorithms/evolvers/variational/variational_principles/real_mc_lachlan_principle.py 38 39 97.44%
qiskit/algorithms/evolvers/variational/variational_principles/variational_principle.py 23 24 95.83%
qiskit/algorithms/evolvers/variational/solvers/var_qte_linear_solver.py 48 50 96.0%
qiskit/algorithms/evolvers/variational/solvers/ode/forward_euler_solver.py 17 20 85.0%
qiskit/algorithms/evolvers/variational/var_qrte.py 15 18 83.33%
qiskit/algorithms/evolvers/variational/var_qte.py 79 87 90.8%
<!-- Total: 354 375
Totals Coverage Status
Change from base Build 2907542568: 0.08%
Covered Lines: 56620
Relevant Lines: 67311

💛 - Coveralls

coveralls avatar Jun 08 '22 16:06 coveralls

Unit test values have been verified for metric tensor and evolution gradient using independent methods. Thank you @Zoufalc for preparing the notebook for that. Linear solver results have been verified as described in review comments above.

dlasecki avatar Aug 08 '22 05:08 dlasecki