for a Uni project I need to simulate a variety of quantum circuits by modeling them as matrix product states. For this project it is particularly important, that the simulation is done exactly, i.e. without truncation or a limit in bond dimension.
The only qiskit method I found is by “qiskit_aer” (https://qiskit.github.io/qiskit-aer/tutorials/7_matrix_product_state_method.html)
I am now wondering what the best method to set this up in qiskit would be.
I set up the simulator in the following way:
from qiskit.providers.aer import AerSimulator
simulator = AerSimulator(
method='matrix_product_state',
enable_truncation=False,
zero_threshold=None,
validation_threshold=None,
matrix_product_state_max_bond_dimension=None,
matrix_product_state_truncation_threshold=None,
chop_threshold=None
)
Remember, it is important for these tests to simulate exactly, why I set all the thressholds to None
and disabled truncation.
However, when comparing the simulation times with a similar quimbd method (https://quimb.readthedocs.io/en/latest/tensor-circuit-mps.html) I noticed that qiskit MPS simulation was exponentially faster.
This leads me to my questions:
Have I overlooked any thresholds or truncation in my setup?
Is there a way to get the max-bond of the mps constructed in qiskit? This would be an easy way to check if everything is simulated exactly.
Philipp is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
1