Bernstein–Vazirani algorithm![]() The Bernstein–Vazirani algorithm, which solves the Bernstein–Vazirani problem, is a quantum algorithm invented by Ethan Bernstein and Umesh Vazirani in 1997.[1] It is a restricted version of the Deutsch–Jozsa algorithm where instead of distinguishing between two different classes of functions, it tries to learn a string encoded in a function.[2] The Bernstein–Vazirani algorithm was designed to prove an oracle separation between complexity classes BQP and BPP.[1] Problem statementGiven an oracle that implements a function in which is promised to be the dot product between and a secret string modulo 2, , find . AlgorithmClassically, the most efficient method to find the secret string is by evaluating the function times with the input values for all :[2] In contrast to the classical solution which needs at least queries of the function to find , only one query is needed using quantum computing. The quantum algorithm is as follows: [2] Apply a Hadamard transform to the qubit state to get Next, apply the oracle which transforms . This can be simulated through the standard oracle that transforms by applying this oracle to . ( denotes addition mod two.) This transforms the superposition into Another Hadamard transform is applied to each qubit which makes it so that for qubits where , its state is converted from to and for qubits where , its state is converted from to . To obtain , a measurement in the standard basis () is performed on the qubits. Graphically, the algorithm may be represented by the following diagram, where denotes the Hadamard transform on qubits: The reason that the last state is is because, for a particular , Since is only true when , this means that the only non-zero amplitude is on . So, measuring the output of the circuit in the computational basis yields the secret string . A generalization of Bernstein–Vazirani problem has been proposed that involves finding one or more secret keys using a probabilistic oracle. [3] This is an interesting problem for which a quantum algorithm can provide efficient solutions with certainty or with a high degree of confidence, while classical algorithms completely fail to solve the problem in the general case. Classical vs. quantum complexityThe Bernstein-Vazirani problem is usually stated in its non-decision version. In this form, it is an example of a problem solvable by a Quantum Turing machine (QTM) with queries to the problem's oracle, but for which any Probabilistic Turing machine (PTM) algorithm must make queries. To provide a separation between BQP and BPP, the problem must be reshaped into a decision problem (as these complexity classes refer to decision problems). This is accomplished with a recursive construction and the inclusion of a second, random oracle.[1][4] The resulting decision problem is solvable by a QTM with queries to the problem's oracle, while a PTM must make queries to solve the same problem. Therefore, Bernstein-Vazirani provides a super-polynomial separation between BPP and BQP. Bernstein-Vazirani algorithm Qiskit implementationThe quantum circuit shown here is from a simple example of how the Bernstein-Vazirani algorithm can be implemented in Python using Qiskit, an open-source quantum computing software development framework by IBM. ![]() See alsoReferences
|
Portal di Ensiklopedia Dunia