CustomCircuitOracle¶
- class CustomCircuitOracle(variable_register=None, output_register=None, ancillary_register=None, circuit=None, evaluate_classically_callback=None)[source]¶
The Custom Circuit-based Quantum Oracle.
A helper class to, in essence, ‘wrap’ a user-supplied quantum circuit such that it becomes of type
Oracle
and hence can be used by algorithms taking an oracle as input.This class is provided for easy creation of oracles using custom circuits. It is geared towards programmatically experimenting with oracles, where a user directly provides a QuantumCircuit object, corresponding to the intended oracle function, together with the various QuantumRegister objects involved.
- Parameters
variable_register (
Optional
[QuantumRegister
]) – The register holding variable qubit(s) for the oracle functionoutput_register (
Optional
[QuantumRegister
]) – The register holding output qubit(s) for the oracle functionancillary_register (
Optional
[QuantumRegister
]) – The register holding ancillary qubit(s)circuit (
Optional
[QuantumCircuit
]) – The quantum circuit corresponding to the intended oracle functionevaluate_classically_callback (
Optional
[Callable
[[str
],Tuple
[bool
,List
[int
]]]]) – The classical callback function for evaluating the oracle, for example, to use withGrover
’s search
- Raises
AquaError – Invalid input
Attributes
returns ancillary register
returns output register
returns variable register
Methods
Construct the oracle circuit.