Imaginary-time evolution using forward and backward real-time evolution with a single ancilla: First-quantized eigensolver algorithm for quantum chemistry
Imaginary-Time Evolution Using Forward and Backward Real-Time Evolution with a Single Ancilla: First-Quantized Eigensolver Algorithm for Quantum Chemistry
Abstract
Probabilistic Imaginary Time Evolution (PITE) is a quantum computing technique that derives from Imaginary Time Evolution methods, providing a pathway to finding the ground state of a quantum Hamiltonian. In this project, you will implement a version of PITE with two distinct time-discretization methods as proposed in Optimal scheduling in probabilistic imaginary-time evolution on a quantum computer by Hirofumi Nishi et al. The challenge involves analyzing the algorithm’s efficiency using Classiq’s optimization tools to compare the CX-gate counts of each method.
Project Overview
Challenge: Implement the PITE algorithm using Classiq to compare two different time-discretization schedules to achieve the effect of Imaginary Time Evolution. Evaluate the CX-gate counts for a sequence of 10 time steps while scaling the number of qubits for a specific Hamiltonian. Bonus: Estimate the ground state energy of the Hamiltonian with the quantum algorithm.
Objective
Execute the PITE algorithm on the following Ising Hamiltonian with ( N ) qubits:
\hat{H} = \sum_{i \ge j} h_{i,j} \, \hat{\sigma}_z^{(i)} \hat{\sigma}_z^{(j)} + \sum_{i=0}^{N-1} J_i \, \hat{\sigma}_x^{(i)}
where ( h_{i,j} = 0.5 ) and ( J_i = 0.7 ).
- Implement two different time-discretization schedules.
- Use Classiq’s optimization techniques to analyze the CX-gate counts for each method over 10 time-steps.
- Bonus: Estimate the ground state of the Hamiltonian.
Deliverables
-
Jupyter Notebook containing:
-
Quantum programs that implement both the approximated and exact circuits as described in the paper, for different Hamiltonians:
-
For the approximated circuit:
- Define the Hamiltonian ( \hat{H} ) as a list of Pauli strings.
- Use an appropriate Hamiltonian simulation method (such as
unitary()) to perform the time evolution. - Synthesize the quantum program and apply
count_ops()to obtain CX-gate counts.
-
For the exact circuit:
- Obtain the Hamiltonian operator through matrix algebra.
- Use an appropriate Hamiltonian simulation method (such as
unitary()) for time evolution. - Synthesize the quantum program and apply
count_ops()to obtain CX-gate counts.
-
For the approximated circuit:
- CX-gate count analysis for both methods, represented graphically.
- Bonus analysis of the lowest energy state obtained, including its measurement probability.
-
Quantum programs that implement both the approximated and exact circuits as described in the paper, for different Hamiltonians:
Follow the Contribution Guidelines in CONTRIBUTING.md. For assistance, you can reach out via GitHub or join our Slack Community.
Getting Started
- Review Paper: Study the foundational papers by Taichi Kosugi et al. and Hirofumi Nishi et al. on PITE and optimal scheduling methods for imaginary-time evolution.
- Set Up Environment: Create a new Jupyter Notebook and install the Classiq SDK; refer to the setup guide.
-
Guiding Materials:
- Classiq 101 - Introduction to platform concepts.
- Classiq Fundamentals Workshop - Hands-on Classiq basics.
- Platform walkthrough on home page.
Implementation Steps
-
Algorithm Coding:
- Implement the PITE algorithm using Classiq SDK for both time-discretization methods.
- Define the Hamiltonian ( \hat{H} ) as a list of Pauli strings and perform time evolution with
unitary()or another Hamiltonian simulation method. - Document steps in markdown, following the Glued Trees Example.
- For support, connect via GitHub or Slack.
-
Mathematical Explanation:
- Use markdown and LaTeX to provide theoretical explanations, key equations, and algorithm insights.
-
Generate
.qmodFile:- Use
write_qmod(model, "filename.qmod")to save your models. - Confirm successful notebook execution and
.qmodfile generation.
- Use
-
Quality Check:
- Proofread for accuracy and ensure code correctness.
- Use clear markdown formatting and a professional presentation.
-
Submit Contribution:
- Follow Contribution Guidelines.
- Open a Pull Request in
classiq-library/research/probabilistic_imaginary_time_evolution. - Include a summary of insights and results.
Resources
- Reference Papers:
- Glued Trees Example: Link
- Contribution Guidelines: CONTRIBUTING.md
Note: No strict deadline. Confirm with us if you start this task so we can assign it to you.
Good Luck!
Hi @NadavClassiq ! can I please be assigned to this? I already talked with Adam a while back and I'm ready to start this!
Hi @negarvahid!
We are looking for high-quality contributions to our library, and you are welcome to implement this paper! Please note that we accept contributions that meet the library's standards. If you believe this project suits your skills, you can start working on this implementation.
Please let us know and update us if you have any concerns!
Hi @negarvahid, what is the status of this? Are you still working on the implementation?
@negarvahid
Hi @TaliCohn, I apologize, I just saw your mention. I'm working on the implementation. I'm gonna need a bit more time.
@negarvahid, no problem. How long do you think you'll need? I'll update the deadline
@TaliCohn Would next month be okay?
Hi @TaliCohn, sorry for the delay, I had an unexpected project assigned to me at work. I've finally started this project. I'll ping you once I have an update.