Reducing Quantum Circuit Depth

Circuit depth is the enemy of coherence. The deeper your circuit, the more uniform your results (you get flat, uninformative histograms).

I apologize for not remembering the source, but I recently read somewhere how an experiment can be optimized by offloading as much as possible from the quantum circuit. You want to keep the operations that actually provide a speedup versus classical computation, but offload operations that can just as well be performed classically.

For example, your quantum circuit has a Pauli-X gate before a measurement. That’s one quantum operation you can easily remove. Perform the measurement one timestep earlier, and then classically apply the equivalent NOT operation afterward.

As an extensive of that, consider CNOTs (controlled-NOT gates) that appear just before measurements. That’s just one more example.

The most likely candidates for removal are going to be operations at the very start and very end of your quantum circuits. As big a fan as I am of OpenQASM, this approach makes a strong argument in favor of using Python libraries such as Qiskit.

Screenshots from IBM Q Experience.