classiq-library icon indicating copy to clipboard operation
classiq-library copied to clipboard

Imaginary-time evolution using forward and backward real-time evolution with a single ancilla: First-quantized eigensolver algorithm for quantum chemistry

Open NadavClassiq opened this issue 1 year ago • 8 comments

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 ).

  1. Implement two different time-discretization schedules.
  2. Use Classiq’s optimization techniques to analyze the CX-gate counts for each method over 10 time-steps.
  3. 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:
        1. Define the Hamiltonian ( \hat{H} ) as a list of Pauli strings.
        2. Use an appropriate Hamiltonian simulation method (such as unitary()) to perform the time evolution.
        3. Synthesize the quantum program and apply count_ops() to obtain CX-gate counts.
      • For the exact circuit:
        1. Obtain the Hamiltonian operator through matrix algebra.
        2. Use an appropriate Hamiltonian simulation method (such as unitary()) for time evolution.
        3. Synthesize the quantum program and apply count_ops() to obtain CX-gate counts.
    • CX-gate count analysis for both methods, represented graphically.
    • Bonus analysis of the lowest energy state obtained, including its measurement probability.

Follow the Contribution Guidelines in CONTRIBUTING.md. For assistance, you can reach out via GitHub or join our Slack Community.

Getting Started

  1. 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.
  2. Set Up Environment: Create a new Jupyter Notebook and install the Classiq SDK; refer to the setup guide.
  3. Guiding Materials:

Implementation Steps

  1. 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.
  2. Mathematical Explanation:

    • Use markdown and LaTeX to provide theoretical explanations, key equations, and algorithm insights.
  3. Generate .qmod File:

    • Use write_qmod(model, "filename.qmod") to save your models.
    • Confirm successful notebook execution and .qmod file generation.
  4. Quality Check:

    • Proofread for accuracy and ensure code correctness.
    • Use clear markdown formatting and a professional presentation.
  5. 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


Note: No strict deadline. Confirm with us if you start this task so we can assign it to you.

Good Luck!

NadavClassiq avatar Nov 05 '24 09:11 NadavClassiq

Hi @NadavClassiq ! can I please be assigned to this? I already talked with Adam a while back and I'm ready to start this!

negarvahid avatar Feb 12 '25 13:02 negarvahid

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!

NadavClassiq avatar Feb 19 '25 13:02 NadavClassiq

Hi @negarvahid, what is the status of this? Are you still working on the implementation?

TaliCohn avatar Apr 01 '25 10:04 TaliCohn

@negarvahid

TaliCohn avatar Apr 17 '25 10:04 TaliCohn

Hi @TaliCohn, I apologize, I just saw your mention. I'm working on the implementation. I'm gonna need a bit more time.

negarvahid avatar Apr 23 '25 13:04 negarvahid

@negarvahid, no problem. How long do you think you'll need? I'll update the deadline

TaliCohn avatar Apr 23 '25 16:04 TaliCohn

@TaliCohn Would next month be okay?

negarvahid avatar Apr 30 '25 13:04 negarvahid

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.

negarvahid avatar Jun 25 '25 21:06 negarvahid