Basic workflowΒΆ
To perform Quantum Phase Estimation with the toolbox, take the following steps:
The
Hamiltonianclass describes the qubit Hamiltonian. Chose a system:1.1. Spin model with e.g.
heisenberg_hamiltonianor a customHamiltonianinstance.1.2. Molecule with
chemistry_hamiltonian; see the tutorial on Chemistry to qubit Hamiltonians.Prepare an initial state as a Matrix Product State. Two methods are available:
2.1. Density Matrix Renormalization Group (DMRG) - see the tutorial on Chemistry to qubit Hamiltonians.
2.2. Parametrized circuit optimization - see the tutorial on Variational circuit preparation.
Encode \(\hat{H}\) into a unitary via either:
3.1. Exact time evolution or Trotterization, available as methods of the
Hamiltonianclass - see the tutorial on Trotterization.3.2. Block encoding functions from the
lcu_walk_operatormodule - see the tutorial on Linear Combination of Unitaries.Initialize circuit. From
circuit.initialization, chose between:4.1.
make_circto create a Tensor Network representation of the circuit.4.2.
make_circMPSto store the state as an MPS and iteratively apply the gates.See the tutorials on Building circuits, MPS performance and Hyperoptimization for an introduction on circuit simulation with
quimb.Run QPE: in
estimationmodule, chose between5.1. Textbook QPE:
phase_estimation- see this tutorial.5.2. Robust Phase Estimation, a version of QPE with a single ancilla and circuit repetitions:
robust_phase_estimation- see the corresponding tutorial.