I am using Variational Quantum Imaginary Time Evolution to find the lowest eigenvalue and corresponding eigensatate of a Hamiltonian through Qiskit's VarQITE method. But, for a circuit of 4 qubits or more, the algorithm is not quite estimating the expected result. It is converging to a close value (not enough) and the evolved state is in the correct superposition but the amplitudes are not quite right.

For example, for a 4 qubit operator, these were the results :

Evolved statevector = 
[(-0+0j), 0j, 0j, (0.325+0j), 0j, (-0.444+0j), (0.444+0j), 0j, 0j, (0.444+0j), (-0.444+0j), 0j, (0.325+0j), 0j, 0j, 0j]
Overlap with exact statevector =  [(-0.987868853779132+0j)]
Estimated Lowest Eigenvalue = -17.124355652981265
Exact lowest eigenvalue found :  -17.79898987322333
Exact Eigenstate =
[0j, 0j, 0j, (-0.354+0j), (-0+0j), (0.5+0j), (-0.354+0j), 0j, 0j, 
(-0.354+0j), (0.5+0j), 0j, (-0.354+0j), (-0+0j), 0j, 0j]

I used the McLachlanPrinciple with ReverseEstimatorGradient() for time = 1 sec for 100 time steps. I tried this with the EfficientSU2 ansatz and a custom ansatz. The custom one gave better results but still not close to the exact values.

Is there something I can do get a better estimation?

EfficientSU2 :

enter image description here

Custom ansatz :
enter image description here


1 Answer 1


The solution quality depends on

  • the ansatz, which determines the subspace of the Hilbert space you have access to
  • the time integration method
  • the measurement error in calculating the quantum geometric tensor and the energy gradients

The integration error can be controlled with the number of time steps or the integration method. Here you're using the default (forward Euler integration) with a timestep of 1/100, which is usually quite accurate. You're also eliminating measurement errors by using the ReverseEstimatorGradient and ReverseQGT, which are exact method. Therefore the only error source left is the ansatz selection.

As you already noticed, your custom ansatz improved the performance, but it seems your ansatz is still not powerful enough. If you use a heuristic ansatz like EfficientSU2 it is generally expected that you have to increase the circuit depth (with the reps) argument for a better result. Otherwise you can try to use a circuit tailored to your problem, that e.g. includes symmetries of your Hamiltonian.

What kind of Hamiltonian are you trying to solve? And what exactly are the circuit settings?

  • $\begingroup$ Thanks It worked! I just tried it with 3 reps for N=4 and it gives pretty accurate result, but for N>4 I would have to increase reps and steps and it would be costly. I'm solving lattice model Hamiltonian nd applying VarQITE on it to get lowest eigenvalue. My ansatz is circuit for Dicke state with all the angles as parameters. I was hoping that different Dicke state ansatz would give lowest eigenvalue of different subspaces. I am guessing I might have to parametrize them better. Do you have any suggestion on my custom ansatz? Please refer VarQITE_ansatz on github (Cheshta-Joshi/hubb_sim) $\endgroup$ Jul 21, 2023 at 13:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.