Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

© 2023 The Coding School

Week 17: Summary of Key Concepts

Lecture
In lecture today, we shifted our focus to algorithms. We broke down the quantum
algorithm design process using our new linear algebra skills. We then saw how computer
scientists analyze and compare algorithms, both classical and quantum, using big-O
notation. Lastly, we saw a common tool in computer science: the oracle.

1. Quantum algorithms are a specific procedure for solving a computational problem


using quantum physics. They are like recipes for the computer to make/do
something for us.

2. Designing quantum algorithms can be broken down into three steps:


1. Understand the problem: what are the inputs and outputs?
2. Think in kets: What vectors do we start with and what vectors do we want to
end with?
3. Find the correct matrix: What matrix will turn the input vectors to the
correct output vectors? We can then run this on a quantum computer by
breaking it into gates.

3. There are often many algorithms to solve the same problem, classical and quantum.
We can compare all our options and pick the best one using:
© 2023 The Coding School

a. Runtime: Given an input (‘dog’), how long does it take our computer to find
the output (4) using this algorithm?
b. Big-O: As a function of input size, how many operations does the algorithm
perform in the worst case scenario?

4. Big-O notation is the preferred way to compare the efficiency of both classical and
quantum algorithms.

5. The goal of designing a good quantum algorithm is to achieve a smaller Big-O than
any classical algorithm for the same task has achieved: O(Quantum) < O(Classical).

6. An oracle is a part of an algorithm that can perform a specific computation “for


free”. The tradeoff is that we can’t know how they do it. An oracle is like a genie
that grants you a computational wish.

Lab

In lab this week, we saw how to implement and analyze two classical algorithms: linear and
binary search.

You might also like