Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Simon's problem

From Wikipedia, the free encyclopedia
Problem in computer science
Not to be confused withSimon problems in mathematical physics.

Incomputational complexity theory andquantum computing,Simon's problem is acomputational problem that is proven to be solved exponentially faster on aquantum computer than on a classical (that is, traditional) computer. The quantum algorithm solving Simon's problem, usually calledSimon's algorithm, served as the inspiration forShor's algorithm.[1] Both problems are special cases of the abelianhidden subgroup problem, which is now known to have efficient quantum algorithms.

The problem is set in the model ofdecision tree complexity or query complexity and was conceived byDaniel R. Simon in 1994.[2] Simon exhibited aquantum algorithm that solves Simon's problem exponentially faster with exponentially fewer queries than the bestprobabilistic (or deterministic) classical algorithm. In particular, Simon's algorithm uses a linear number of queries and any classical probabilistic algorithm must use an exponential number of queries.

This problem yields anoracle separation between the complexity classesBPP (bounded-error classical query complexity) andBQP (bounded-error quantum query complexity).[3] This is the same separation that theBernstein–Vazirani algorithm achieves, and different from the separation provided by theDeutsch–Jozsa algorithm, which separatesP andEQP. Unlike the Bernstein–Vazirani algorithm, Simon's algorithm's separation isexponential.

Because this problem assumes the existence of a highly-structured "black box" oracle to achieve its speedup, this problem has little practical value.[4] However, without such an oracle, exponential speedups cannot easily be proven, since this would prove thatP is different fromPSPACE.

Problem description

[edit]

Simon's problem considers access to a functionf:{0,1}n{0,1}m,mn{\displaystyle f:\{0,1\}^{n}\to \{0,1\}^{m},\;m\geq n} as implemented by ablack box or an oracle. This function is promised to be either aone-to-one function, or a two-to-one function; iff{\displaystyle f} is two-to-one, it is furthermore promised that two inputsx{\displaystyle x} andx{\displaystyle x'} evaluate to the same value if and only ifx{\displaystyle x} andx{\displaystyle x'} differ in a fixed set of bits. I.e.,

Iff{\displaystyle f} is not one-to-one, it is promised that there exists a non-zeros{\displaystyle s} such that, for allxx{\displaystyle x\neq x'},f(x)=f(x){\displaystyle f(x)=f(x')} if and only ifx=xs{\displaystyle x'=x\oplus s}

where{\displaystyle \oplus } denotesbitwise exclusive-or. Simon's problem asks, in its decision version, whetherf{\displaystyle f} is one-to-one or two-to-one. In its non-decision version, Simon's problem asks whetherf{\displaystyle f} is one-to-one or what is the value ofs{\displaystyle s} (as defined above). The goal is to solve this task with the least number of queries (evaluations) off{\displaystyle f}.

Note that ifx=x{\displaystyle x'=x}, thenf(x)=f(x){\displaystyle f(x')=f(x)} andx=xs{\displaystyle x'=x\oplus s} withs=0{\displaystyle s=0}. On the other hand (becauseabb=a{\displaystyle a\oplus b\oplus b=a} for alla{\displaystyle a} andb{\displaystyle b}),x=xsxx=s{\displaystyle x'=x\oplus s\iff x'\oplus x=s}. Thus, Simon's problem may be restated in the following form:

Given black-box or oracle access tof{\displaystyle f}, promised to satisfy, for somes{\displaystyle s} and allx,x{\displaystyle x,x'},f(x)=f(x){\displaystyle f(x)=f(x')} if and only ifxx{0,s}{\displaystyle x'\oplus x\in \{0,s\}}, determine whethers0{\displaystyle s\neq 0} (decision version), or outputs{\displaystyle s} (non-decision version).

Note also that the promise onf{\displaystyle f} implies that iff{\displaystyle f} is two-to-one then it is a periodic function:f(x)=f(xs).{\displaystyle f(x)=f(x\oplus s).}

Example

[edit]

The following function is an example of a function that satisfies the required property forn=3{\displaystyle n=3}:

x{\displaystyle x}f(x){\displaystyle f(x)}
000101
001010
010000
011110
100000
101110
110101
111010

In this case,s=110{\displaystyle s=110} (i.e. the solution). Every output off{\displaystyle f} occurs twice, and the two input strings corresponding to any one given output have bitwise XOR equal tos=110{\displaystyle s=110}.

For example, the input strings010{\displaystyle 010} and100{\displaystyle 100} are both mapped (byf{\displaystyle f}) to the same output string000{\displaystyle 000}. That is,f(010)=000{\displaystyle {\displaystyle f(010)=000}} andf(100)=000{\displaystyle {\displaystyle f(100)=000}}. Applying XOR to 010 and 100 obtains 110, that is010100=110=s.{\displaystyle {\displaystyle 010\oplus 100=110=s}.}

s=110{\displaystyle s=110} can also be verified using input strings 001 and 111 that are both mapped (by f) to the same output string 010. Applying XOR to 001 and 111 obtains 110, that is001111=110=s{\displaystyle 001\oplus 111=110=s}. This gives the same solutions=110{\displaystyle s=110} as before.

In this example the functionf is indeed a two-to-one function wheres0n{\displaystyle {\displaystyle s\neq 0^{n}}}.

Problem hardness

[edit]

Intuitively, this is a hard problem to solve in a "classical" way, even if one uses randomness and accepts a small probability of error. The intuition behind the hardness is reasonably simple: if you want to solve the problem classically, you need to find two different inputsx{\displaystyle x} andy{\displaystyle y} for whichf(x)=f(y){\displaystyle f(x)=f(y)}. There is not necessarily any structure in the functionf{\displaystyle f} that would help us to find two such inputs: more specifically, we can discover something aboutf{\displaystyle f} (or what it does) only when, for two different inputs, we obtain the same output. In any case, we would need to guessΩ(2n){\displaystyle {\displaystyle \Omega ({\sqrt {2^{n}}})}} different inputs before being likely to find a pair on whichf{\displaystyle f} takes the same output, as per thebirthday problem. Since, classically to finds with a 100% certainty it would require checkingΘ(2n){\displaystyle {\displaystyle \Theta ({\sqrt {2^{n}}})}} inputs, Simon's problem seeks to finds using fewer queries than this classical method.

Simon's algorithm

[edit]
Quantum circuit representing/implementing Simon's algorithm

The algorithm as a whole uses a subroutine to execute the following two steps:

  1. Run the quantum subroutine an expectedO(n){\displaystyle O(n)} times to get a list oflinearly independent bitstringsy1,...,yn1{\displaystyle y_{1},...,y_{n-1}}.
  2. Eachyk{\displaystyle y_{k}} satisfiesyks=0{\displaystyle y_{k}\cdot s=0}, so we can solve the system of equations this produces to gets{\displaystyle s}.

Quantum subroutine

[edit]

The quantum circuit (see the picture) is the implementation of the quantum part of Simon's algorithm. The quantum subroutine of the algorithm makes use of theHadamard transformHn|k=12nj=02n1(1)kj|j{\displaystyle H^{\otimes n}|k\rangle ={\frac {1}{\sqrt {2^{n}}}}\sum _{j=0}^{2^{n}-1}(-1)^{k\cdot j}|j\rangle }wherekj=k1j1knjn{\displaystyle k\cdot j=k_{1}j_{1}\oplus \ldots \oplus k_{n}j_{n}}, where{\displaystyle \oplus } denotes XOR.

First, the algorithm starts with two registers, initialized to|0n|0n{\displaystyle |0\rangle ^{\otimes n}|0\rangle ^{\otimes n}}. Then, we apply the Hadamard transform to the first register, which gives the state

12nk=02n1|k|0n.{\displaystyle {\frac {1}{\sqrt {2^{n}}}}\sum _{k=0}^{2^{n}-1}|k\rangle |0\rangle ^{\otimes n}.}

Query the oracleUf{\displaystyle U_{f}} to get the state

12nk=02n1|k|f(k){\displaystyle {\frac {1}{\sqrt {2^{n}}}}\sum _{k=0}^{2^{n}-1}|k\rangle |f(k)\rangle }.

Apply another Hadamard transform to the first register. This will produce the state

12nk=02n1[12nj=02n1(1)jk|j]|f(k)=j=02n1|j[12nk=02n1(1)jk|f(k)].{\displaystyle {\frac {1}{\sqrt {2^{n}}}}\sum _{k=0}^{2^{n}-1}\left[{\frac {1}{\sqrt {2^{n}}}}\sum _{j=0}^{2^{n}-1}(-1)^{j\cdot k}|j\rangle \right]|f(k)\rangle =\sum _{j=0}^{2^{n}-1}|j\rangle \left[{\frac {1}{2^{n}}}\sum _{k=0}^{2^{n}-1}(-1)^{j\cdot k}|f(k)\rangle \right].}

Finally, we measure the first register (the algorithm also works if the second register is measured before the first, but this is unnecessary). The probability of measuring a state|j{\displaystyle |j\rangle } is||12nk=02n1(1)jk|f(k)||2{\displaystyle \left|\left|{\frac {1}{2^{n}}}\sum _{k=0}^{2^{n}-1}(-1)^{j\cdot k}|f(k)\rangle \right|\right|^{2}}This is due to the fact that taking the magnitude of this vector and squaring it sums up all the probabilities of all the possible measurements of the second register that must have the first register as|j{\displaystyle |j\rangle }. There are two cases for our measurement:

  1. s=0n{\displaystyle s=0^{n}} andf{\displaystyle f} is one-to-one.
  2. s0n{\displaystyle s\neq 0^{n}} andf{\displaystyle f} is two-to-one.

For the first case,||12nk=02n1(1)jk|f(k)||2=12n{\displaystyle \left|\left|{\frac {1}{2^{n}}}\sum _{k=0}^{2^{n}-1}(-1)^{j\cdot k}|f(k)\rangle \right|\right|^{2}={\frac {1}{2^{n}}}}since in this case,f{\displaystyle f} is one-to-one, implying that the range off{\displaystyle f} is{0,1}n{\displaystyle \{0,1\}^{n}}, meaning that the summation is over every basis vector. For the second case, note that there exist two strings,x1{\displaystyle x_{1}} andx2{\displaystyle x_{2}}, such thatf(x1)=f(x2)=z{\displaystyle f(x_{1})=f(x_{2})=z}, wherezrange(f){\displaystyle z\in \mathrm {range} (f)}. Thus,||12nk=02n1(1)jk|f(k)||2=||12nzrange(f)((1)jx1+(1)jx2)|z||2{\displaystyle \left|\left|{\frac {1}{2^{n}}}\sum _{k=0}^{2^{n}-1}(-1)^{j\cdot k}|f(k)\rangle \right|\right|^{2}=\left|\left|{\frac {1}{2^{n}}}\sum _{z\,\in \,\mathrm {range} (f)}((-1)^{j\cdot x_{1}}+(-1)^{j\cdot x_{2}})|z\rangle \right|\right|^{2}}Furthermore, sincex1x2=s{\displaystyle x_{1}\oplus x_{2}=s},x2=x1s{\displaystyle x_{2}=x_{1}\oplus s}, and so||12nzrange(f)((1)jx1+(1)jx2)|z||2=||12nzrange(f)((1)jx1+(1)j(x1s))|z||2=||12nzrange(f)((1)jx1+(1)jx1js)|z||2=||12nzrange(f)(1)jx1(1+(1)js)|z||2{\displaystyle {\begin{aligned}\left|\left|{\frac {1}{2^{n}}}\sum _{z\,\in \,\mathrm {range} (f)}((-1)^{j\cdot x_{1}}+(-1)^{j\cdot x_{2}})|z\rangle \right|\right|^{2}&=\left|\left|{\frac {1}{2^{n}}}\sum _{z\,\in \,\mathrm {range} (f)}((-1)^{j\cdot x_{1}}+(-1)^{j\cdot (x_{1}\oplus s)})|z\rangle \right|\right|^{2}\\&=\left|\left|{\frac {1}{2^{n}}}\sum _{z\,\in \,\mathrm {range} (f)}((-1)^{j\cdot x_{1}}+(-1)^{j\cdot x_{1}\oplus j\cdot s})|z\rangle \right|\right|^{2}\\&=\left|\left|{\frac {1}{2^{n}}}\sum _{z\,\in \,\mathrm {range} (f)}(-1)^{j\cdot x_{1}}(1+(-1)^{j\cdot s})|z\rangle \right|\right|^{2}\end{aligned}}}This expression is now easy to evaluate. Recall that we are measuringj{\displaystyle j}. Whenjs=1{\displaystyle j\cdot s=1}, then this expression will evaluate to0{\displaystyle 0}, and whenjs=0{\displaystyle j\cdot s=0}, then this expression will be2n+1{\displaystyle 2^{-n+1}}.

Thus, both whens=0n{\displaystyle s=0^{n}} and whens0n{\displaystyle s\neq 0^{n}}, our measuredj{\displaystyle j} satisfiesjs=0{\displaystyle j\cdot s=0}.

Classical post-processing

[edit]

We run the quantum part of the algorithm until we have a linearly independent list of bitstringsy1,,yn1{\displaystyle y_{1},\ldots ,y_{n-1}}, and eachyk{\displaystyle y_{k}} satisfiesyks=0{\displaystyle y_{k}\cdot s=0}. Thus, we can efficiently solve this system of equations classically to finds{\displaystyle s}.

The probability thaty1,y2,,yn1{\displaystyle y_{1},y_{2},\dots ,y_{n-1}} are linearly independent is at leastk=1(112k)=0.288788{\displaystyle \prod _{k=1}^{\infty }\left(1-{\frac {1}{2^{k}}}\right)=0.288788\dots }Once we solve the system of equations, and produce a solutions{\displaystyle s'}, we can test iff(0n)=f(s){\displaystyle f(0^{n})=f(s')}. If this is true, then we knows=s{\displaystyle s'=s}, sincef(0n)=f(0ns)=f(s){\displaystyle f(0^{n})=f(0^{n}\oplus s)=f(s)}. If it is the case thatf(0n)f(s){\displaystyle f(0^{n})\neq f(s')}, then that means thats=0n{\displaystyle s=0^{n}}, andf(0n)f(s){\displaystyle f(0^{n})\neq f(s')} sincef{\displaystyle f} is one-to-one.

We can repeat Simon's algorithm a constant number of times to increase the probability of success arbitrarily, while still having the same time complexity.

Explicit examples of Simon's algorithm for few qubits

[edit]

One qubit

[edit]

Consider the simplest instance of the algorithm, withn=1{\displaystyle n=1}. In this case evolving the input state through an Hadamard gate and the oracle results in the state (up to renormalization):

|0|f(0)+|1|f(1).{\displaystyle |0\rangle |f(0)\rangle +|1\rangle |f(1)\rangle .}

Ifs=1{\displaystyle s=1}, that is,f(0)=f(1){\displaystyle f(0)=f(1)}, then measuring the second register always gives the outcome|f(0){\displaystyle |f(0)\rangle }, and always results in the first register collapsing to the state (up to renormalization):

|0+|1.{\displaystyle |0\rangle +|1\rangle .}

Thus applying an Hadamard and measuring the first register always gives the outcome|0{\displaystyle |0\rangle }. On the other hand, iff{\displaystyle f} is one-to-one, that is,s=0{\displaystyle s=0}, then measuring the first register after the second Hadamard can result in both|0{\displaystyle |0\rangle } and|1{\displaystyle |1\rangle }, with equal probability.

We recovers{\displaystyle s} from the measurement outcomes by looking at whether we measured always|0{\displaystyle |0\rangle }, in which cases=1{\displaystyle s=1}, or we measured both|0{\displaystyle |0\rangle } and|1{\displaystyle |1\rangle } with equal probability, in which case we infer thats=0{\displaystyle s=0}. This scheme will fail ifs=0{\displaystyle s=0} but we nonetheless always found the outcome|0{\displaystyle |0\rangle }, but the probability of this event is2N{\displaystyle 2^{-N}} withN{\displaystyle N} the number of performed measurements, and can thus be made exponentially small by increasing the statistics.

Two qubits

[edit]

Consider now the case withn=2{\displaystyle n=2}. The initial part of the algorithm results in the state (up to renormalization):|00|f(00)+|01|f(01)+|10|f(10)+|11|f(11).{\displaystyle |00\rangle |f(00)\rangle +|01\rangle |f(01)\rangle +|10\rangle |f(10)\rangle +|11\rangle |f(11)\rangle .}Ifs=(00){\displaystyle s=(00)}, meaningf{\displaystyle f} is injective, then finding|f(x){\displaystyle |f(x)\rangle } on the second register always collapses the first register to|x{\displaystyle |x\rangle }, for allx{0,1}2{\displaystyle x\in \{0,1\}^{2}}. In other words, applying Hadamard gates and measuring the first register the four outcomes00,01,10,11{\displaystyle 00,01,10,11} are thus found with equal probability.

Suppose on the other hands(00){\displaystyle s\neq (00)}, for example,s=(01){\displaystyle s=(01)}. Then measuring|f(00){\displaystyle |f(00)\rangle } on the second register collapses the first register to the state|00+|10{\displaystyle |00\rangle +|10\rangle }. And more generally, measuring|f(xy){\displaystyle |f(xy)\rangle } gives|x,y+|x,y1=|x(|0+|1){\displaystyle |x,y\rangle +|x,y\oplus 1\rangle =|x\rangle (|0\rangle +|1\rangle )} on the first register. Applying Hadamard gates and measuring on the first register can thus result in the outcomes00{\displaystyle 00} and10{\displaystyle 10} with equal probabilities.

Similar reasoning applies to the other cases: ifs=(10){\displaystyle s=(10)} then the possible outcomes are00{\displaystyle 00} and01{\displaystyle 01}, while ifs=(11){\displaystyle s=(11)} the possible outcomes are00{\displaystyle 00} and11{\displaystyle 11}, compatibly with thejs=0{\displaystyle j\cdot s=0} rule discussed in the general case.

To recovers{\displaystyle s} we thus only need to distinguish between these four cases, collecting enough statistics to ensure that the probability of mistaking one outcome probability distribution for another is sufficiently small.

Complexity

[edit]

Simon's algorithm requiresO(n){\displaystyle O(n)} queries to the black box, whereas a classical algorithm would need at leastΩ(2n/2){\displaystyle \Omega (2^{n/2})} queries. It is also known that Simon's algorithm is optimal in the sense thatany quantum algorithm to solve this problem requiresΩ(n){\displaystyle \Omega (n)} queries.[5][6]

Simon's algorithm Qiskit implementation

[edit]

The quantum circuit shown here is froma simple example of how Simon's algorithm can be implemented in Python usingQiskit, an open-source quantum computing software development framework by IBM.

Simon's algorithm quantum circuit

See also

[edit]

References

[edit]
  1. ^Shor, Peter W. (1999-01-01)."Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer".SIAM Review.41 (2):303–332.arXiv:quant-ph/9508027.doi:10.1137/S0036144598347011.ISSN 0036-1445.
  2. ^Simon, Daniel R. (1997-10-01)."On the Power of Quantum Computation".SIAM Journal on Computing.26 (5):1474–1483.doi:10.1137/S0097539796298637.ISSN 0097-5397.
  3. ^Preskill, John (1998).Lecture Notes for Physics 229: Quantum Information and Computation. pp. 273–275.
  4. ^Aaronson, Scott (2018).Introduction to Quantum Information Science Lecture Notes(PDF). pp. 144–151.
  5. ^Koiran, P.; Nesme, V.; Portier, N. (2007),"The quantum query complexity of the Abelian hidden subgroup problem",Theoretical Computer Science,380 (1–2):115–126,doi:10.1016/j.tcs.2007.02.057, retrieved2011-06-06
  6. ^Koiran, P.; Nesme, V.; Portier, N. (2005),"A quantum lower bound for the query complexity of Simon's Problem",Proc. ICALP,3580:1287–1298,arXiv:quant-ph/0501060,Bibcode:2005quant.ph..1060K, retrieved2011-06-06
General
Theorems
Quantum
communication
Quantum cryptography
Quantum algorithms
Quantum
complexity theory
Quantum
processor benchmarks
Quantum
computing models
Quantum
error correction
Physical
implementations
Quantum optics
Ultracold atoms
Spin-based
Superconducting
Quantum
programming
Retrieved from "https://en.wikipedia.org/w/index.php?title=Simon%27s_problem&oldid=1320936846"
Category:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp