liveBook · Manning

Unitary gate synthesis

As explained in Quantum Programming in Depth

Unitary gate synthesis is the construction of a quantum-gate sequence that implements a specified unitary transformation, possibly approximately.

Unitary gate synthesis constructs a sequence of native quantum instructions that implements a specified unitary transformation. High-level algorithms are progressively lowered from conceptual operations to programming-language primitives and finally to device-supported gates. section 3.0

Hardware constraints determine how synthesis proceeds:

  • Decompose unsupported gates into native one- and two-qubit instructions; a multicontrolled Z gate may require such a sequence because many devices lack three-qubit gates. section 3.0
  • Respect qubit connectivity; on planar devices, insert adjacent two-qubit operations when the desired gate targets nonadjacent qubits. section 3.0
  • Account for fault tolerance eventually; encoded logical qubits require gate implementations that limit error spread. section 3.0

From algorithm to hardware

An algorithm first specifies a unitary operation, which becomes a sequence of higher-level primitives and then a device-specific instruction sequence. The resulting implementation may approximate the target when the available gate set is restricted. section 3.0 section 3.12

Figure 3.2 The transformation the quantum state undergoes following a quantum algorithm is typically broken down into simpler building blocks. First, the whole algorithm is expressed as a sequence of operations described in terms of the input parameters of the problem. These operations are further represented as sequences of primitives provided by the high-level programming language used to implement the algorithm. Finally, to execute the algorithm on a quantum device, programming language primitives have to be expressed as sequences of low-level instructions that are natively available on this device.
figure

Trace the lowering pipeline from algorithm-level operations through programming-language primitives to hardware-native instructions. section 3.0

Exact or approximate synthesis can use progressively smaller primitive gate sets. Further study includes Pauli decomposition for single-qubit unitaries, Kraus-Cirac decomposition for two-qubit cases, and cosine-sine decomposition for complex-valued matrices. section 3.12

How Quantum Programming in Depth covers it

How deep it goes
Explains decomposition, connectivity, and fault-tolerance constraints, while deferring detailed low-level synthesis algorithms.
Examples
Uses multicontrolled Z decomposition, nonadjacent-qubit routing, Pauli decomposition, Kraus-Cirac decomposition, and cosine-sine decomposition.
What you can do after
Build from scratch approximate implementations of unitaries using restricted primitive gate sets such as CNOT, H, and T.
How it connects
Connects quantum algorithms, compiler stacks, native gates, qubit connectivity, error correction, and fault-tolerant quantum computing.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Quantum Programming in Depth. The section links point to the parts of the book it draws on.