CustomCircuitOracle¶

class
CustomCircuitOracle
(variable_register, output_register, circuit, ancillary_register=None, evaluate_classically_callback=None)[소스]¶ 기반 클래스:
qiskit.aqua.components.oracles.oracle.Oracle
The Custom Circuitbased Quantum Oracle.
A helper class to, in essence, ‘wrap’ a usersupplied 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.
참고
The evaluate_classically_callback param is to supply a method to classically evaluate the function (as encoded by the oracle) on a particular input bitstring. For example for an oracle that encodes 3SAT problems, this method would determine classically if an input variable assignment would satisfy the 3SAT expression.
The input bitstring is a string of 1’s and 0’s corresponding to the input variable(s). The return should be a (bool, List[int]) tuple where the bool corresponds to the return value of the binary function encoded by the oracle, and the List[int] should just be a different representation of the input variable assignment, which should be equivalent to the bitstring or a quantum measurement.
Examples of existing implementations, for reference, can be found in other oracles such as
TruthTableOracle.evaluate_classically()
andLogicalExpressionOracle.evaluate_classically()
. 매개변수
variable_register (
QuantumRegister
) – The register holding variable qubit(s) for the oracle functionoutput_register (
QuantumRegister
) – The register holding output qubit(s) for the oracle functioncircuit (
QuantumCircuit
) – The quantum circuit corresponding to the intended oracle functionancillary_register (
Optional
[QuantumRegister
]) – The register holding ancillary qubit(s)evaluate_classically_callback (
Optional
[Callable
[[str
],Tuple
[bool
,List
[int
]]]]) – The classical callback function for evaluating the oracle, for example, to use withGrover
’s search
 예외
AquaError – Invalid input
Methods
Construct the oracle circuit.
Attributes

ancillary_register
¶

circuit
¶

output_register
¶

variable_register
¶