概要
- 検索の問題(関係の問題とも呼ばれる)の複雑さの理論があります。この理論には、FP、FNP、および FBQP、さまざまな種類のリソースで検索問題を効果的に解決します。
- 検索問題から、決定問題を定義することもできます。これにより、検索問題を通常のクラスP、NP、およびBQPに関連付けることができます。
- 問題の決定バージョンの検索バージョンを検討するかどうかにかかわらず、非構造化検索問題への入力を検討する方法によって、その複雑さに置くことができる上限が決まります。
関係の問題の複雑さ
ご指摘のとおり、Groverの問題は検索の問題を解決します。これは、複雑さの文献では、関係の問題としても知られています。つまり、次のような問題です。
一般的な検索問題の構造。
入力と二項関係Rが与えられた場合、R (x 、y )が成り立つようなyを見つけます。xRyR(x,y)
複雑度クラスFPおよびFNPは、そのような問題に関して定義されます。特に、長さが最大xの長さの多項式関数である場合、および関係R (x 、y )がそれ自体である場合に関心があります長さのある多項式で区切られた時間で計算されるyxR(x,y)ます。(x,y)
特に、Groverの検索が通常適用される「データベース検索」問題の例は、次のように説明できます。
非構造化検索。
入力オラクル所与ように O | ⟩ | B ⟩ = | ⟩ | B ⊕ F ()⟩いくつかの機能のために F :{ 0 、1 } M → { 0 、1 }、検索 Yように Oを | Y ⟩ | 0 ⟩ = | Y ⟩ | 1O:H⊗m+12→H⊗m+12O|a⟩|b⟩=|a⟩|b⊕f(a)⟩f:{0,1}m→{0,1}y。O|y⟩|0⟩=|y⟩|1⟩
ここでは、オラクル自体が問題への入力です。オラクルはの役割を果たし、計算している関係は
R (O、yx
R(O,y)≡[O|y⟩|0⟩=|y⟩|1⟩]≡[f(y)=1].
オラクルの代わりに、関数fの計算方法を記述する特定の入力が提供され、この問題がどの複雑度クラスに属するかを検討できると仮定します。示し、我々が得る適切な複雑性クラスは、入力が提供される方法に依存します。xfpyramids
入力機能は、データベースへの各エントリは、いくつかの長さのあるデータベース(問題が時折記載されているように)として提供されていると。場合nは文字列の長さxを記述するために使用されるデータベース全体を、次にデータベースが持つN = N / ℓのエントリを。その後、N個のエントリのそれぞれを順番に照会することでデータベース全体を徹底的に検索し、f (y )= 1のようなエントリyが見つかったら停止することができます。データベースへの各クエリがO ログのようなものを取ると仮定しますℓnxN=n/ℓNyf(y)=1時、この手順が停止時間で O (N ログN )⊆ O (N ログN )ので、問題がであることを、FPO(logN)⊆O(logn)O(NlogN)⊆O(nlogn)。
データベース検索をコヒーレントな重ね合わせで実行できると仮定すると、Groverのアルゴリズムはこの問題がFBQPにあることを許可します。しかし、としてFP ⊆ FBQP、古典徹底的な検索も、この問題がであることを証明FBQP。取得するすべて(ログファクターまで)は、データベースクエリの数が節約されるため、2次の高速化です。
仕様かかる多項式時間アルゴリズムによって、入力機能を簡潔に説明されていると、引数Y ∈ { 0 、1 } Mとを計算O:HのM + 1 2x∈{0,1}ny∈{0,1}mO:Hm+12→Hm+12標準ベースの状態、mがよりはるかに大きくてもよいΩ (ログN )。ここでの例は次のようになり、xは、いくつかのブール関数のCNF形指定F :{ 0 、1 } M → { 0 、1 }のためのM ∈ O (N )、我々は効率的に評価することができる場合には、F (yは)入力上のY ∈|y⟩|b⟩mΩ(logn)xf:{0,1}m→{0,1}m∈O(n)f(y)y∈{0,1}m and thereby efficiently evaluate O on standard basis states. This puts the problem in FNP.
Given a procedure to evaluate f(y) from (x,y) in time O(p(n)) for n=|x|, Grover's algorithm solves the problem of Unstructured Search for O in time O(p(n)2m−−−√) ⊆O(p(n)2n−−√). This is not polynomial in n, and so does not suffice to put this problem in FBQP: we only obtain a quadratic speedup — though this is still a potentially huge savings of computation time, assuming that the advantage provided by Grover's algorithm is not lost to the overhead required for fault-tolerant quantum computation.
In both cases, the complexity is determined in terms of the length n of the string x *which specifies how to compute the oracle O. In the case that x represents a look-up table, we have N=n/ℓ, in which case the performance as a function of N is similar to the performance as a function of n; but in the case that x succinctly specifies O, and N∈O(2n/2), the big-picture message that Grover's solves the problem in O(N−−√) queries obscures the finer-grained message that this algorithm is still exponential-time for a quantum computer.
Decision complexity from relation problems
There is a straightforward way to get decision problems from relation problems, which is well-known from the theory of NP-complete problems: to turn the search problem to a question of the existence of a valid solution.
The decision version of a general search problem.
Given an input x and an binary relation R, determine whether ∃y:R(x,y) holds.
The complexity class NP can essentially be defined in terms of such problems, when the relationship R is efficiently computable: the most famous NP-complete problems (CNF-SAT, HAMCYCLE, 3-COLOURING) are about the mere existence of a valid solution to an efficiently verifiable relationship problem. This switch from producing solutions to simply asserting the existence of solutions is also what allows us to describe versions of integer factorisation which are in BQP (by asking whether there exist non-trivial factors, rather than asking for the values of non-trivial factors).
In the case of Unstructured Search, again which complexity class best describes the problem depends on how the input is structured. Determining whether there exists a solution to a relationship problem may be reduced to finding and verifying a solution to that problem. Thus in the case that the input is a string x specifying the oracle as a look-up table, the problem of unstructured search is in P; and more generally if x specifies an efficient means of evaluating the oracle, the problem is in NP. It is also possible that there is a way of determining whether there exists a solution to Unstructured Search which does so without actually finding a solution, though it is not clear in general how to do so in a way which would provide an advantage over actually finding a solution.
Oracle complexity
I have conspicuously been shifting from talking about the oracle O, to ways that an input x can be used to specify (and evaluate) the oracle O. But of course, the main way in which we consider Grover's algorithm is as an oracle result in which evaluating the oracle takes a single time-step and requires no speficiation. How do we consider the complexity of the problem in this case?
In this case, we are dealing with a relativised model of computation, in which evaluating this one specific oracle O (which, remember, is the input to the problem) is a primitive operation. This oracle is defined on all input sizes: to consider the problem for searching on strings of length n, you must specify that you are considering how the oracle O acts on inputs of length n, which again would be done by considering the length of a boolean string x taken as input. In this case, the way in which we would present the problem might be as follows.
O
x=11⋯1n
y∈{0,1}n
y∈{0,1}n
O|y⟩|0⟩=|y⟩|1⟩.
This problem is in NPO (for the decision problem) or FNPO (for the relation problem), depending on which version of the problem you wish to consider. Because Grover's algorithm is not a polynomial-time algorithm, this problem is not known to be in BQPO or FBQPO. In fact, we can say something stronger, as we will soon see.
The reason why I brushed over the actual, oracle-based description of Unstructured Search was in order to touch on your point of complexity, and in particular to touch on the question of input size. The complexity of problems are largely governed by how the inputs are specified: as a succinct specification (in the case of how a function is specified in CNF-SAT), as an explicit specification (in the case of a look-up table for a function), or even as an integer specified in unary, i.e. as the length of a string of 1s as above (as in "Unstructured Search relative to Oracle O" above).
As we can see from the latter case, if we treat the input only as an oracle, the situation looks a bit un-intuitive, and it certainly makes it impossible to talk about the ways that the "database" can be realised. But one virtue of considering the relativised version of the problem, with an actual oracle, is that we can prove things which otherwise we have no idea how to prove. If we could prove that the decision version of the succinct unstructured search problem was in BQP, then we would stand to realise an enormous breakthrough in practical computation; and if we could prove that the decision problem was not actually in BQP, then we would have shown that P ≠ PSPACE, which would be an enormous breakthrough in computational complexity. We don't know how to do either. But for the relativised problem, we can show that there are oracles O for which the decision version of "Unstructured Search relative to O" is in NPO but not in BQPO. This allows us to show that while quantum computing is potentially powerful, there are reasons to expect that BQP probably doesn't contain NP, and that the relation version of Unstructured Search in particular is unlikely to be contained in FBQP without imposing strong constraints on how the input is represented.
\text{}
複雑度クラスの名前を書くために使用することを検討してください。たとえば、\text{NP}
または\text{BQP}