haiqu.observable_backpropagation().
Observable backpropagation reduces the number of the 2-qubit gates in a 193-qubit Heisenberg time evolution circuit from 1344 to 496 for a single-qubit observable This is done by significantly increasing the number (and often the weight) of Pauli terms in the measurement observable
Having a bug or an issue?
Submit feedback
haiqu.observable_backpropagation()
What does it do? Observable backpropagation shortens quantum circuits, improving performance on noisy quantum hardware, by classically simulating and incorporating a part of the circuit into the observable How do I use it? Pass a quantum circuit along with the observable you’d like to measure to haiqu.observable_backpropagation() to receive the optimized circuit and the updated observable. What are the options? Optional parameters include max_qwc_groups, max_error_total, max_error_per_slice for precise configuration and log specifying whether to save your circuits in Haiqu SDK. Which option do you recommend? Start with the default settings for most use cases. Change max_qwc_groups based on your quantum resources and max_error_total, max_error_per_slice for precise configuration of the admittable errors
Initialize the benchmark
Import the necessary libraries, initialize the Haiqu SDK, and create a Heisenberg evolution circuit with almost 200 qubits and more than a thousand 2-qubit gates along with a corresponding observable.
max_qwc_groups parameter or lowering the acceptable approximation errors will allow for more aggressive optimization at the cost of longer runtime.