Welcome Qiskitters to Textbook Quantum Algorithms with Qiskit Terra! Here we have a collection of great tutorials from our fantastic Qiskitters describing some textbook algorithms and showing how to implement them in Qiskit Terra.

First we start with the oracle based algorithms (an oracle is a "black box" operation that is used as input to another algorithm):

  • Deutsch-Jozsa algorithm: determines whether a function is balanced or constant. The algorithm has no practical use, but it is famous for being one of the first examples of a quantum algorithm that is exponentially faster than any deterministic classical algorithm.
  • Bernstein-Vazirani algorithm: recovers the unknown parameter of a particular scalar product function. Like the Deutsch-Jozsa algorithm, it has no practical use and is one of the early examples of quantum speedup.
  • Grover's algorithm: performs a search over an unordered set of items to find the unique element(s) that satisfies some condition. It is one of the fundamental quantum computing algorithms.

Next are algorithms that involve a combination of quantum and classical processing to arrive at the result:

  • Simon's algorithm: solves Simon's problem - finding a hidden bit vector. It was the inspiration for the more famous Shor's algorithm.
  • Shor's algorithm: discovers factors of integers.

Finally, we have Iterative Phase Estimation, that determines the unknown eigenvalues of a unitary operator.

If you think we've missed any textbook quantum algorithm, please contribute your own tutorial!


In [ ]: