Qiskit / qiskit-tutorials

A collection of Jupyter notebooks showing how to use the Qiskit SDK
Apache License 2.0
2.32k stars 1.29k forks source link

Tutorial on using Qiskit's qiskit.algorithms.time_evolvers.variational package for variational quantum imaginary and real-time evolution based on McLachlan's variational principle #1462

Closed ptwnimbe1 closed 1 year ago

ptwnimbe1 commented 1 year ago

Variational Quantum Time Evolution:

1.Variational quantum time evolution leverages variational principles to approximate the time evolution of quantum systems. It aims to find the optimal parameters that minimize the discrepancy between the simulated time evolution and the desired target evolution.

  1. Import Required Libraries

  2. Define the Hamiltonian: Specify the Hamiltonian of the quantum system you want to simulate. You can represent it using the SparsePauliOp from Qiskit's quantum_info module.

  3. Initialize the Ansatz: Create an ansatz, which is a parameterized quantum circuit, using Qiskit's circuit library.

  4. Set Initial Parameter Values: Initialize the parameter values of the ansatz. These values will be iteratively updated during the optimization process.

  5. Define the Variational Principle: Specify the variational principle to be used. For variational quantum time evolution, you can use ImaginaryMcLachlanPrinciple from Qiskit's qiskit.algorithms.time_evolvers.variational module.

  6. Define the Time Evolution Problem: Create a TimeEvolutionProblem object by specifying the Hamiltonian and the desired evolution time.

  7. Run Variational Quantum Time Evolution: Create a VarQITE object with the ansatz, variational principle, and initial parameter values. Then, call the evolve method with the time evolution problem.

By following these steps, you can leverage Qiskit's qiskit.algorithms.time_evolvers.variational package to perform variational quantum imaginary and real-time evolution based on McLachlan's variational principle.

woodsp-ibm commented 1 year ago

Related to #1391

javabster commented 1 year ago

Hi thanks for your interest and apologies for the slow response! We are currently in the process of reorganising the Qiskit Tutorials, archiving this repo and moving the existing tutorials to the main qiskit repo or other appropriate projects. During this transition we will be focusing on maintaining/improving our existing content and are not able to take submissions for brand new tutorials at this time

Thanks anyway for your feedback and helping us make Qiskit better! 🚀