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 return a fresh Circuit fragment,
following the standard circuit-fragment 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(n_qubits=None, *, qubits=None)[source]¶
Grover diffusion (amplitude amplification) operator fragment.
diff = grover_diffusion(qubits=[0, 1, 2]) # -> Circuit diff = grover_diffusion(3) # n_qubits positional
- uniqc.algorithms.core.circuits.grover_oracle.grover_oracle(marked_state=None, *, qubits=None, ancilla=None, n_qubits=None)[source]¶
Construct a phase-flip oracle fragment for a marked basis state.
oracle = grover_oracle(marked_state=5, qubits=[0, 1, 2]) # -> Circuit
See module docstring for the algorithm.