Path: blob/main/notebooks/summer-school/2021/lec2.2.ipynb
3855 views
Kernel: Python 3
Simple Quantum Algorithms (part 2)
This lecture is the continuation of the previous (2.1) lecture and discusses Grover's algorithm after discussing the Deutsch-Jozsa algorithm in lecture 2.1. Grover's algorithm searches unsorted databases, and is one of the most famous quantum algorithms.
Suggested links
Download the lecturer's notes here
FAQ
What is the speed up of Grover's algorithm and how can it be proved?
In the case of Grover the speed up is quadratic which can be proven to be a separation between quantum and classical. For other algorithms like Shor's algorithm it seems like we can get an exponential speed up, but this has not been proven.
How can Grover's algorithm be proven to be asymptotically the best searching algorithm that we have?
Refer to Chapter 3, Quantum Computation and Quantum Information (Nielsen and Chuang).
How many qubits would be practically required to find an element in an unordered list?
With n qubits you get 2 to the power of n different states. So for a million elements you would need 20 qbits. You need logarithmically many qubits.
As we increase theta, does the error increase?
We calculated an upper bound for the error. But in general we just care about m over n, where m is the number of marked elements and n the total number of elements. But it decreases exponentially small, so we can do it a couple of times.
How does one apply an oracle in real life?
That depends on the function we want to implement. Usually for satisfiability problems. There is a number of such functions in Qiskit.
Is quantum amplitude estimation related to Grover’s algorithm?
It depends. The original version of quantum amplitude estimation uses quantum phase estimation. It has been recently shown that you can just use Grover instead.
How much math do you have to know to follow the lab?
I think not so much. The oracles do the math. You can always see the functions they define as given. Ideally you understand what the functions do.
What does orthogonal mean?
Orthogonal means that there is no overlap at all. If we look at the two dimensional plane two vectors are normal to each other. (They stand in a 90 degree angle.) In the end it means that when I take the inner product of two vectors I get zero.
How is time complexity faster than classical?
It scales proportional to r and r scales like the square root of n. Overall the algorithm’s time complexity scales as the square root of n.