Hardware-Efficient Ansatz¶
English · 简体中文
Category C4 · Module
oracq.algorithms.optimization.variational· Stage V3
Overview¶
The hardware-efficient ansatz is a family of parametrized circuits: each layer first applies independent Ry/Rz single-qubit rotations to every qubit, then produces entanglement with a CNOT chain between adjacent qubits. The angle vector is chosen by a classical optimizer so that the objective functional (energy, loss, etc.) is optimal over the states expressible by the ansatz. This module generates the circuit for given angles; parameter optimization and repeated execution are organized by the caller.
Interface and input model¶
hardware_efficient_ansatz(width, layers)
API entry point: hardware_efficient_ansatz
width: the target bit width, range 1..64.layers: the angle tensor, of shape[layer][qubit][Ry, Rz]— non-empty, exactly width angle pairs per layer, and exactly two finite real angles per pair (radians).
The variational angles are classical data parameterized directly, so the input model is CP. Returns an Operation whose only register is target (width bits). Module attributes:
Attribute |
Meaning |
|---|---|
|
|
|
the number of layers |
Implementation notes¶
Each layer is generated in two segments, “rotations first, then entanglement”: every qubit receives Ry(θ) and Rz(φ) in turn, then a CNOT is applied to each adjacent qubit pair (i, i+1) one by one (the circuit primitive is XOR). The entanglement structure is fixed to a linear chain; there is no inter-layer rearrangement or entanglement-strategy switch, and hardware without chain connectivity gets swaps inserted during backend lowering. Parameter-shape violations (zero layers, a per-layer length unequal to width, an angle pair of length other than 2, non-finite angles) raise ValidationError at generation time.
With zero angles the whole circuit is the identity; this is the anchor of the current numerical witness. Applicability boundary: the ansatz is only responsible for generating the circuit; expressivity and trainability (e.g. barren plateau) are outside the validation scope, and there is no built-in parameter-initialization strategy.
Validation approach¶
Category C4 (heuristic/optimization semantics; acceptance criteria in ../../development/validation-plan.md §2). Three layers of evidence:
Structure:
tests/core/test_algorithm_expansion.py:AlgorithmExpansionTests.test_bad_inputs_fail_at_generationcovers parameter-layout violations (e.g. too few angle pairs per layer).Numerical:
AlgorithmExpansionTests.test_ansatz_zero_angles_and_walk_one_step— after a single-layer ansatz with all-zero angles acts, the state stays \(\lvert 0\ldots0\rangle\) (amplitude exactly 1), pinning down the identity of the rotations and the CNOT chain at zero parameters (the second half of the same test witnesses the cycle walk ofwalks.py, see that module).Binding: this module has no separate binding witness (the inputs are classical parameters).
Known gaps and planned stages¶
Consistent with the variational.py row of validation-coverage.md: the only gap registered on that row is a strong witness for “reaching the optimal cut on small instances” (it lands on the QAOA side, to be wired in at V3); the ansatz circuit itself has no registered gap.
Numerical validation¶
Paper-grade numerical experiments are in tests/verification/verify_misc_algorithms.py (misc_algorithms group), all executed on real backends.
Experimental design: a hardware-efficient ansatz with width = 3 and two layers totaling 12 non-trivial angles (a Ry/Rz pair per qubit per layer); the classical oracle is a gate-by-gate numpy state vector (an independent implementation of Ry/Rz/CNOT with the exactly-same layer order and least-significant-bit convention). Backend paths: full-amplitude cross-check across the four paths reference, rir-pysparq, adapter-pysparq, originir-ext.
Key metrics:
Case |
Scale |
Path |
Max amplitude error |
Fidelity |
Cross-backend deviation |
|---|---|---|---|---|---|
ansatz-parameter-intent |
3 qubits, 2 layers |
full-amplitude cross-check on four paths |
0 |
1 − 4e-16 |
0 |
Reproduce:
PYTHONPATH=src /home/agony/projects/qcfd-dev/quantum-cfd-software/.venv/bin/python tests/verification/verify_misc_algorithms.py
Artifact: out/verification/misc_algorithms.json (all 24 cases pass; this page corresponds to the ansatz-parameter-intent case).