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.
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
