ArticleslgStudy

physics

Simon's problem

Simon's problem is a physics topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Simon's problem rather than just read about it. In short: In computational complexity theory and quantum computing, Simon's problem is a computational problem that is proven to be solved exponentially faster on a quantum computer than on a classical (that is, traditional) computer. The quantum algorithm solving Simon's problem, usually called Simon's algorithm, served as the inspiration for Shor's algorithm.

Simon's problem — main illustration
Simon's problem — illustration

Key takeaways

  • Simon's problem belongs to physics; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Simon's problem to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Simon's problem from memory before moving on to harder problems.

Reference excerpt

In computational complexity theory and quantum computing, Simon's problem is a computational problem that is proven to be solved exponentially faster on a quantum computer than on a classical (that is, traditional) computer. The quantum algorithm solving Simon's problem, usually called Simon's algorithm, served as the inspiration for Shor's algorithm. Both problems are special cases of the abelian hidden subgroup problem, which is now known to have efficient quantum algorithms. The problem is set in the model of decision tree complexity or query complexity and was conceived by Daniel R. Simon in 1994. Simon exhibited a quantum algorithm that solves Simon's problem exponentially faster with exponentially fewer queries than the best probabilistic (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 an oracle separation between the complexity classes BPP (bounded-error classical query complexity) and BQP (bounded-error quantum query complexity). This is the same separation that the Bernstein–Vazirani algorithm achieves, and different from the separation provided by the Deutsch–Jozsa algorithm, which separates P and EQP. Unlike the Bernstein–Vazirani algorithm, Simon's algorithm's separation is exponential. Because this problem assumes the existence of a highly-structured "black box" oracle to achieve its speedup, this problem has little practical value. However, without such an oracle, exponential speedups cannot easily be proven, since this would prove that P is different from PSPACE.

Problem description Simon's problem considers access to a function f : { 0 , 1 } n → { 0 , 1 } m , m ≥ n {\displaystyle f:\{0,1\}^{n}\to \{0,1\}^{m},\;m\geq n} as implemented by a black box or an oracle. This function is promised to be either a one-to-one function, or a two-to-one function; if f {\displaystyle f} is two-to-one, it is furthermore promised that two inputs x {\displaystyle x} and x ′ {\displaystyle x'} evaluate to the same value if and only if x {\displaystyle x} and x ′ {\displaystyle x'} differ in a fixed set of bits. I.e.,

If f {\displaystyle f} is not one-to-one, it is promised that there exists a non-zero s {\displaystyle s} such that, for all x ≠ x ′ {\displaystyle x\neq x'} , f ( x ) = f ( x ′ ) {\displaystyle f(x)=f(x')} if and only if x ′ = x ⊕ s {\displaystyle x'=x\oplus s}

where ⊕ {\displaystyle \oplus } denotes bitwise exclusive-or. Simon's problem asks, in its decision version, whether f {\displaystyle f} is one-to-one or two-to-one. In its non-decision version, Simon's problem asks whether f {\displaystyle f} is one-to-one or what is the value of s {\displaystyle s} (as defined above). The goal is to solve this task with the least number of queries (evaluations) of f {\displaystyle f} . Note that if x ′ = x {\displaystyle x'=x} , then f ( x ′ ) = f ( x ) {\displaystyle f(x')=f(x)} and x ′ = x ⊕ s {\displaystyle x'=x\oplus s} with s = 0 {\displaystyle s=0} . On the other hand (because a ⊕ b ⊕ b = a {\displaystyle a\oplus b\oplus b=a} for all a {\displaystyle a} and b {\displaystyle b} ), x ′ = x ⊕ s ⟺ x ′ ⊕ x = 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 to f {\displaystyle f} , promised to satisfy, for some s {\displaystyle s} and all x , x ′ {\displaystyle x,x'} , f ( x ) = f ( x ′ ) {\displaystyle f(x)=f(x')} if and only if x ′ ⊕ x ∈ { 0 , s } {\displaystyle x'\oplus x\in \{0,s\}} , determine whether s ≠ 0 {\displaystyle s\neq 0} (decision version), or output s {\displaystyle s} (non-decision version). Note also that the promise on f {\displaystyle f} implies that if f {\displaystyle f} is two-to-one then it is a periodic function:

… excerpt ends here. Continue reading the full article.

Illustrations

Simon's problem: Simon's algorithm quantum circuit
Simon's algorithm quantum circuit

Worked examples

Example 1 — a first encounter with Simon's problem

Start with the simplest possible case. Write down what Simon's problem claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In physics, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Simon's problem before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Simon's problem ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Simon's problem

In research
Simon's problem appears in physics research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Simon's problem in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Simon's problem is common in secondary-school and first-year university syllabi. It links to neighbouring topics Quantum algorithms, so understanding it makes those chapters shorter.
In everyday life
Look for Simon's problem outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Simon's problem in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Simon's problem means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Simon's problem out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Simon's problem in simple terms?

In computational complexity theory and quantum computing, Simon's problem is a computational problem that is proven to be solved exponentially faster on a quantum computer than on a classical (that is, traditional) computer. The quantum algorithm solving Simon's problem, usually called Simon's algo…

Why does Simon's problem matter?

Because it connects several physics ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Simon's problem?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Simon's problem.

Tags

  • Quantum algorithms

Keep exploring