qiskit-community / qiskit-nature

Qiskit Nature is an open-source, quantum computing, framework for solving quantum mechanical natural science problems.
https://qiskit-community.github.io/qiskit-nature/
Apache License 2.0
301 stars 204 forks source link

Add a Hamiltonian simulation protocol. #608

Open tianshu-Michael-yu opened 2 years ago

tianshu-Michael-yu commented 2 years ago

What should we add?

I didn't find any built-in Hamiltonian simulation protocol in qiskit. So I'm thinking of building one according to the paper--Simulation Hamiltonian dynamics with a truncated Taylor series. https://arxiv.org/abs/1412.4687 I'm not sure whether this protocol should be put in qiskit-nature or other application categories. I'm trying to use this Hamiltonian simulation protocol to build an algorithm to solve the Quantum Linear System Problems (QLSP) according to this paper--Quantum algorithm for systems of linear equations with exponentially improved dependence on precision (https://arxiv.org/abs/1511.02306). Since I don't know whether a QLSP algorithm should be put in qiskit-nature, I don't know whether the Hamiltonian simulation protocol the QLSP algorithm depends upon should be in qiskit-nature.

mrossinek commented 1 year ago

Thank you for raising this suggestion! We are indeed planning to add a "Hamiltonian Simulation" protocol to Qiskit Nature alongside the existing ground- and excited-states solvers. This would cover the third algorithm object which you can now see in the updated overview image of the repositories README.

The idea for this protocol would be similar to the other two as it would wrap the time_evolvers module of Qiskit Terra. It would simplify the usage of that module and provide the interface for it to be directly usable with the "problems" objects provided by Qiskit Nature. This will be one major aspect we are targeting for the 0.6 release.

As per the addition of QLSP: this would have presumably been a good fit for the linear_solvers module of Qiskit Terra but this got deprecated recently (with 0.22). It being a more general algorithm that is not specific to the simulation of natural science problems, it should still go into the qiskit.algorithms module rather than into Qiskit Nature. I suggest that you suggest the feature over in Qiskit Terra to find out if they are interested in adding this algorithm over there :+1: