Each run of Simon's algorithm uses one oracle call and returns one uniform sample from . Collect samples as rows of a matrix and solve over the two-element field using Gaussian elimination. Once the rows have matrix rank , the kernel is , so the promised nonzero vector is uniquely determined. Dependent samples, including , must be allowed for; exactly runs need not suffice.
For a rough quantitative estimate, put . When the existing samples span an -dimensional vector subspace of , the next sample increases the matrix rank with probability . The random spanning of a binary vector space estimate givesAlternatively, samples fail to span with probability less than : failure means some nonzero linear functional on the -dimensional space vanishes on every sample, and a union bound gives . ConsequentlyThe Gaussian elimination requires only a polynomial amount of classical work, for example bit operations for samples. The degenerate case needs no calls because the promise already specifies .
Classically, distinct inputs with equal function values reveal . Uniformly sampling distinct inputs finds such a function collision after roughly calls, by the birthday square-root scale. For sampled inputs, the expected number of colliding pairs is . The usual randomized classical query complexity of Simon's problem is therefore exponential in , on the scaleA straightforward exhaustive classical search instead uses calls. The square-root collision estimate is the sharper classical comparison; the quantum advantage concerns access to the promised quantum oracle, rather than an explicit table of all function values.
Articles by others on the same topic
There are currently no matching articles.