uniqc.algorithms.core.circuits.grover_oracle module¶
Grover oracle and diffusion operator construction.
Provides reusable building blocks for Grover’s quantum search algorithm:
grover_oracle()— phase-flip oracle for a marked computational basis state.grover_diffusion()— Grover diffusion (amplitude amplification) operator.
Both functions operate on a Circuit object
passed in by the caller, following the standard circuit-building convention of
uniqc.algorithms.core.circuits.
References
Grover, L. K. (1996). “A fast quantum mechanical algorithm for database search.” STOC ‘96. https://arxiv.org/abs/quant-ph/9605043
- uniqc.algorithms.core.circuits.grover_oracle.grover_diffusion(*args, qubits=None, ancilla=None, n_qubits=None)[source]¶
Grover diffusion (amplitude amplification) operator.
Two calling conventions:
# Fragment style (recommended): diff = grover_diffusion(qubits=[0, 1, 2]) # -> Circuit diff = grover_diffusion(3) # n_qubits positional # Legacy in-place (deprecated): c = Circuit() grover_diffusion(c, qubits=[0, 1, 2])
- uniqc.algorithms.core.circuits.grover_oracle.grover_oracle(*args, marked_state=None, qubits=None, ancilla=None, n_qubits=None)[source]¶
Construct a phase-flip oracle for a marked basis state.
Two calling conventions:
# Fragment style (recommended): oracle = grover_oracle(marked_state=5, qubits=[0, 1, 2]) # -> Circuit # Legacy in-place (deprecated): c = Circuit() anc = grover_oracle(c, marked_state=5, qubits=[0, 1, 2]) # mutates, returns ancilla idx
See module docstring for the algorithm.