Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Quantum Computing for Computer Scientists

Quantum Computing for Computer Scientists

This presentation discards hand-wavy pop-science metaphors and answers a simple question: from a computer science perspective, how can a quantum computer outperform a classical computer? Readers will learn the following:

1. Representing computation with basic linear algebra (matrices and vectors)
2. The computational workings of qbits, superposition, and quantum logic gates
3. Solving the Deutsch oracle problem: the simplest problem where a quantum computer outperforms classical methods

Bonus topics: quantum entanglement and teleportation

Andrew Helwer

February 14, 2018
Tweet

Other Decks in Technology

Transcript

  1. Why learn quantum computing?  Quantum supremacy expected this year

     Microsoft, Google, Intel, IBM all investing in quantum computer development  Several exciting applications already known  Efficiently factor large composite numbers, breaking RSA encryption (Shor’s algorithm, 1994)  Search an unordered list in O( ) time (Grover’s algorithm, 1996)  Believed exponential speedup in simulating quantum mechanical systems  Intellectually interesting – quantum mechanics is outside your intuition!  Get a small glimpse of what you don’t know you don’t know
  2. Learning objectives  Representing computation with basic linear algebra (vectors

    and matrices)  Qbits, superposition, and quantum logic gates  The simplest problem where a quantum computer beats a classical computer  Bonus topics: quantum entanglement and teleportation
  3. Representing classical bits as a vector 1 0 One bit

    with the value 0, also written as | ۧ 0 (Dirac vector notation) One bit with the value 1, also written as | ۧ 1 0 1
  4. Review: matrix multiplication = + + ℎ = + +

    + + + ℎ + = + + + + 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 1 0 0 = 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 =
  5. Operations on one classical bit (cbit) 1 0 0 1

    1 0 = 1 0 1 0 0 1 0 1 = 0 1 Identity = Negation = ¬ 0 1 1 0 1 0 = 0 1 0 1 1 0 0 1 = 1 0 Constant-0 = 0 Constant-1 = 1 1 1 0 0 1 0 = 1 0 1 1 0 0 0 1 = 1 0 0 0 1 1 1 0 = 0 1 0 0 1 1 0 1 = 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
  6. Reversible computing  Reversible means given the operation and output

    value, you can find the input value  For = , given and , you can uniquely find  Operations which permute are reversible; operations which erase & overwrite are not  Identity and Negation are reversible  Constant-0 and Constant-1 are not reversible  Quantum computers use only reversible operations, so we will only care about those  In fact, all quantum operators are their own inverses
  7. Review: tensor product of vectors 0 1 ⊗ 0 1

    = 0 0 1 1 0 1 = 0 0 0 1 1 0 1 1 0 1 ⊗ 0 1 ⊗ 0 1 = 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 2 ⊗ 3 4 = 3 4 6 8 0 1 ⊗ 0 1 ⊗ 1 0 = 0 0 0 0 0 0 1 0
  8. Representing multiple cbits | ۧ 00 = 1 0 ⊗

    1 0 = 1 0 0 0 | ۧ 01 = 1 0 ⊗ 0 1 = 0 1 0 0 | ۧ 10 = 0 1 ⊗ 1 0 = 0 0 1 0 | ۧ 11 = 0 1 ⊗ 0 1 = 0 0 0 1 ۧ |4 = | ۧ 100 = 0 1 ⊗ 1 0 ⊗ 1 0 = 0 0 0 0 1 0 0 0  We call this tensored representation the product state  We can factor the product state back into the individual state representation  The product state of bits is a vector of size 2
  9. Operations on multiple cbits: CNOT  Operates on pairs of

    bits, one of which is the “control” bit and the other the “target” bit  If the control bit is 1, then the target bit is flipped  If the control bit is 0, then the target bit is unchanged  The control bit is always unchanged  With most-significant bit as control and least-significant bit as target, action is as follows: = 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 00 01 10 11 00 01 10 11
  10. Operations on multiple cbits: CNOT | ۧ 10 = 0

    1 ⊗ 1 0 = 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 = 0 0 0 1 = 0 1 ⊗ 0 1 = | ۧ 11 | ۧ 11 = 0 1 ⊗ 0 1 = 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 = 0 0 1 0 = 0 1 ⊗ 1 0 = | ۧ 10
  11. Operations on multiple cbits: CNOT | ۧ 00 = 1

    0 ⊗ 1 0 = 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 = 1 0 0 0 = 1 0 ⊗ 1 0 = | ۧ 00 | ۧ 01 = 1 0 ⊗ 0 1 = 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 = 0 1 0 0 = 1 0 ⊗ 0 1 = | ۧ 01
  12. Recap  We represent classical bits in vector form as

    1 0 for 0 and 0 1 for 1  Operations on bits are represented by matrix multiplication on bit vectors  Quantum computers only use reversible operations  Multi-bit states are written as the tensor product of single-bit vectors  The CNOT gate is a fundamental building block of reversible computing
  13. Qbits and superposition  Surprise! We’ve actually been using qbits

    all along!  The cbit vectors we’ve been using are just special cases of qbit vectors  A qbit is represented by where and are Complex numbers and 2 + 2 = 1  The cbit vectors 1 0 and 0 1 fit within this definition  Don’t worry! For this presentation, we’ll only use familiar Real numbers.  Example qbit values: 1 2 1 2 1 2 3 2 −1 0 1 2 −1 2
  14. Qbits and superposition  How can a qbit to have

    a value which is not 0 or 1? This is called superposition.  Superposition means the qbit is both 0 and 1 and the same time  When we measure the qbit, it collapses to an actual value of 0 or 1  We usually do this at the end of a quantum computation to get the result  If a qbit has value then it collapses to 0 with probability 2 and 1 with probability 2  For example, qbit 1 2 1 2 has a 1 2 2 = 1 2 chance of collapsing to 0 or 1 (coin flip)  The qbit 1 0 has a 100% chance of collapsing to 0, and 0 1 has a 100% chance of collapsing to 1
  15. Qbits and superposition  Multiple qbits are similarly represented by

    the tensor product ⊗ =  Note that 2 + 2 + 2 + 2 = 1  For example, the system 1 2 1 2 ⊗ 1 2 1 2 = 1 2 1 2 1 2 1 2 (note that 1 2 2 = 1 4 , and 1 4 + 1 4 + 1 4 + 1 4 = 1)  There’s a ¼ chance each of collapsing to ۧ |00 , ۧ |01 , ۧ |10 , or ۧ |11
  16. Operations on qbits  How do we operate on qbits?

    The same way we operate on cbits: with matrices!  All the matrix operators we’ve seen also work on qbits (bit flip, CNOT, etc.)  Matrix operators model the effect of some device which manipulates qbit spin/polarization without measuring and collapsing it 0 1 1 0 1 2 3 2 = 3 2 1 2  There are several important matrix operators which only make sense in a quantum context
  17. The Hadamard gate  The Hadamard gate takes a 0-

    or 1-bit and puts it into exactly equal superposition ۧ |0 = 1 2 1 2 1 2 −1 2 1 0 = 1 2 1 2 ۧ |1 = 1 2 1 2 1 2 −1 2 0 1 = 1 2 −1 2
  18. The Hadamard gate  The Hadamard gate also takes a

    qbit in exactly-equal superposition, and transforms it into a 0- or 1-bit! (This should be unsurprising – remember operations are their own inverse!) 1 2 1 2 1 2 −1 2 1 2 1 2 = 1 0 1 2 1 2 1 2 −1 2 1 2 −1 2 = 0 1  We can transition out of superposition without measurement!  We can thus structure quantum computation deterministically instead of probabilistically
  19. The unit circle state machine 1 0 −1 0 0

    1 0 −1 1 2 1 2 1 2 −1 2 −1 2 1 2 −1 2 −1 2 1 0 −1 0 0 1 0 −1 1 2 1 2 1 2 −1 2 −1 2 1 2 −1 2 −1 2 X H
  20. The unit circle state machine 1 0 −1 0 0

    1 0 −1 1 2 1 2 1 2 −1 2 −1 2 1 2 −1 2 −1 2 X H X H X 1 0 −1 0
  21. Recap  Cbits are just a special case of qbits,

    which are 2-vectors of Complex numbers  Qbits can be in superposition, and are probabilistically collapsed to cbits by measurement  Multi-qbit systems are tensor products of single-qbit systems, like with cbits  Matrices represent operations on qbits, same as with cbits  The Hadamard gate takes 0- and 1-bits to equal superposition, and back  We can think of qbits and their operations as forming a state machine on the unit circle  Actually the unit sphere if we use complex numbers
  22. The Deutsch oracle  Imagine someone gives you a black

    box containing a function on one bit  Recall! What are the four possible functions on one bit?  You don’t know which function is inside the box, but can try inputs and see outputs  How many queries would it take to determine the function on a classical computer?  How many on a quantum computer?
  23. The Deutsch oracle  What if you want to check

    whether the unknown function is constant, or variable?  Constant-0 & constant-1 are constant, identity & negation are variable  How many queries would it take on a classical computer?  How many on a quantum computer?
  24. The Deutsch oracle  How can it be done in

    a single query!?  We can do it with the magic of superposition!  First, we have to define what each of the four functions look like on a quantum computer  We have an immediate problem with the constant functions
  25. The Deutsch oracle  How do we write nonreversible functions

    in a reversible way?  Common hack: add an additional output qbit to which the function action is applied  We thus have to rewire our black box: Before: BB BB After: Input Input Output Output Input' Output'  The black box leaves the input qbit unchanged, writing function output to output qbit ۧ |0 | ۧ x (| ۧ x ) | ۧ x | ۧ x (| ۧ x )
  26. The Deutsch oracle: constant-1 Output Input X BB Input Output

    Input' Output' ۧ |0 | ۧ x | ۧ 1 | ۧ x
  27. The Deutsch oracle: negation Output Input X BB Input Output

    Input' Output' ۧ |0 | ۧ x | ۧ ¬x | ۧ x
  28. The Deutsch oracle  How do we solve it on

    a quantum computer in one query?  If the black-box function is constant, system will be in state ۧ |11 after measurement  If the black-box function is variable, system will be in state ۧ |01 after measurement Output Input X X H H BB H H ۧ |0 ۧ |0
  29. The Deutsch oracle: preprocessing 1 0 −1 0 0 1

    0 −1 1 2 1 2 1 2 −1 2 −1 2 1 2 −1 2 −1 2 Input qbit 1 0 −1 0 0 1 0 −1 1 2 1 2 1 2 −1 2 −1 2 1 2 −1 2 −1 2 Output qbit
  30. The Deutsch oracle: constant-0 1 0 −1 0 0 1

    0 −1 1 2 1 2 1 2 −1 2 −1 2 1 2 −1 2 −1 2 Input qbit Result: ۧ |11 1 0 −1 0 0 1 0 −1 1 2 1 2 1 2 −1 2 −1 2 1 2 −1 2 −1 2 Output qbit
  31. The Deutsch oracle: constant-1 Output Input X BB Input Output

    Input' Output' ۧ |0 | ۧ x | ۧ 1 | ۧ x
  32. The Deutsch oracle: constant-1 1 0 −1 0 0 1

    0 −1 1 2 1 2 1 2 −1 2 −1 2 1 2 −1 2 −1 2 Input qbit Result: ۧ |11 1 0 −1 0 0 1 0 −1 1 2 1 2 1 2 −1 2 −1 2 1 2 −1 2 −1 2 Output qbit
  33. The Deutsch oracle: identity 1 0 −1 0 0 1

    0 −1 1 2 1 2 1 2 −1 2 −1 2 1 2 −1 2 −1 2 Input qbit 1 0 −1 0 0 1 0 −1 1 2 1 2 1 2 −1 2 −1 2 1 2 −1 2 −1 2 Output qbit Result: ۧ |01
  34. The Deutsch oracle: identity 1 2 −1 2 ⊗ 1

    2 −1 2 = 1 2 −1 2 −1 2 1 2 = 1 2 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 −1 −1 1 = 1 2 1 −1 1 −1 = 1 2 1 2 ⊗ 1 2 −1 2
  35. The Deutsch oracle: negation Output Input X BB Input Output

    Input' Output' ۧ |0 | ۧ x | ۧ ¬x | ۧ x
  36. The Deutsch oracle: negation 1 0 −1 0 0 1

    0 −1 1 2 1 2 1 2 −1 2 −1 2 1 2 −1 2 −1 2 Input qbit 1 0 −1 0 0 1 0 −1 1 2 1 2 1 2 −1 2 −1 2 1 2 −1 2 −1 2 Output qbit Result: ۧ |01
  37. The Deutsch oracle  We did it! We determined whether

    the function was constant or variable in a single query!  Intuition: the difference within the categories (negation) was neutralized, while the difference between the categories (CNOT) was magnified  This problem seems pretty contrived (and it was, when it was published)  A generalized version with an n-bit black box also exists (Deutsch-Josza problem)  Determine whether the function returns the same value for all 2 inputs (i.e. is constant)  A variant of the generalized version was an inspiration for Shor’s algorithm!
  38. Full recap  We learned how to model classical computation

    with basic linear algebra  We learned about qbits, superposition, and the Hadamard gate  We learned the Deutsch Oracle problem, where quantum outperforms classical
  39. Entanglement  If the product state of two qbits cannot

    be factored, they are said to be entangled 1 2 0 0 1 2 = ⊗ = 1 2 = 0 = 0 = 1 2  The system of equations has no solution, so we cannot factor the quantum state!  This has a 50% chance of collapsing to ۧ |00 and 50% chance of collapsing to ۧ |11
  40. Entanglement How can we reach an entangled state? Easy! 1

    1 0 ⊗ 1 0 = 1 2 1 2 ⊗ 1 0 = 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 2 0 1 2 0 = 1 2 0 0 1 2 ۧ |0 ۧ |0 H
  41. Entanglement  What’s going on here? The qbits seem to

    be coordinating in some way  Measuring one qbit also collapses the other in a correlated state  This coordination happens even across vast stretches of space  The coordination even happens faster than the speed of light! It is instantaneous.  A 2013 experiment measured particles within 0.01% of the travel time of light between them  Surely the qbits “decided” at the time of entanglement what they would do?  No! This is called “hidden variable” theory and was disproved by John Bell in 1964  This does indeed break locality through faster-than-light coordination  However – and this is the critical part – no information can be communicated
  42. Teleportation  Quantum teleportation is the process by which the

    state of an arbitrary qbit is transferred from one location to another by way of two other entangled qbits  You can transfer qbit states (cut & paste) but you cannot clone them (copy & paste)  This is called the No-cloning theorem  The teleportation is not faster-than-light, because some classical information must be sent
  43. Teleportation | ۧ ψ H H Z | ۧ ψ

    ۧ |0 ۧ |0 X = 1 0 0 −1
  44. Further learning goals  Deutsch-Jozsa algorithm and Simon’s periodicity problem

     Former yields oracle separation between EQP and P, latter between BQP and BPP  Shor’s algorithm and Grover’s algorithm  Quantum cryptographic key exchange  How qbits, gates, and measurement are actually implemented  Quantum error correction  Quantum programming language design
  45. Further reading  Recommended textbook: Quantum Computing for Computer Scientists

     Others have recommended Quantum Computing: A Gentle Introduction  For those with heavier math backgrounds, Quantum Computer Science: An Introduction  The Microsoft Quantum Development Kit docs are nice [link]  The development kit contains a quantum computer simulator!  Exercise: implement the Deutsch Oracle tester in Q#  Some skepticism about physically-realizable quantum computers [link]  Noise might increase exponentially with the number of physical qbits
  46. Review: matrix multiplication associativity = () 0 1 1 0

    0 1 1 0 = 0 1 1 0 0 1 1 0 1 0 0 1 = 0 1 1 0 = You only have to care about the cumulative effect of a series of gates; the specific sequence changes nothing. () = 1 2 1 1 1 −1 0 1 1 0 1 1 1 −1 = 1 0 0 −1 1 2 1 1 1 −1 1 −1 1 1 = − 1 0 0 −1 = − − = −
  47. Review: tensor product of matrices ⊗ = = 0 1

    1 0 ⊗ 1 0 0 1 = 0 1 0 0 1 1 1 0 0 1 1 1 0 0 1 0 1 0 0 1 = 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0
  48. Single-bit operations on multi-bit states  When applying gates to

    multi-bit states, we want to specify which qbit we’re modifying  We use subscripts to identify the qbit  The subscript value is the power of 2 associated with the significance of that qbit  So 0, 1, 2, 3, 4, etc. since any binary number is written as 0 20 + 1 21 + 2 22 + ⋯  So 2 refers to the bit-flip operator which flips the most-significant qbit in a 3-qbit system
  49. Single-bit operations on multi-bit states What if we want to

    operate on a single bit in the product state? What matrix do we use? Example - flip the least-significant bit: 0 ۧ |01 = 1 0 0 1 ⊗ 0 1 1 0 0 1 0 0 = 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 = 1 0 0 0 = ۧ |00 The operation we want is tensored with the identity matrix, in the position matching the significance of that bit.
  50. Single-bit operations on multi-bit states We can also tensor multiple

    one-bit operators together to operate on bits in parallel. Example – flip both bits: 1 0 ۧ |01 = 0 1 1 0 ⊗ 0 1 1 0 0 1 0 0 = 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 = 0 0 1 0 = ۧ |10 Many useful operators are products of one-bit operators, but some (like CNOT) cannot be factored that way.
  51. Single-bit operations on multi-bit states  CNOT gate subscripts are

    of the form where specifies control bit and target bit  We can tensor CNOT matrices with the identity to operate on adjacent bits out of multiple  Throughout the presentation, the CNOT gate we used was 10  The 01 gate (with least-significant bit as control and most-significant target) is as follows: 01 = 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 00 01 10 11 00 01 10 11
  52. Quantum teleportation math | ۧ ψ H H Z |

    ۧ ψ ۧ |0 ۧ |0 X = 1 0 0 −1
  53. Quantum teleportation math 2 21 10 1 ⊗ 1 0

    ⊗ 1 0 = 2 21 10 ⊗ 1 2 1 2 ⊗ 1 0 = 2 21 ⊗ 1 2 0 0 1 2 = 2 1 2 0 0 0 0 = 1 2 − −
  54. Quantum teleportation math 1 2 − − = 1 2

    |0 ۧ 0 + ۧ |01 + | ۧ 10 − + | ۧ 11 − The state right before measurement breaks down into four cases: When Alice measures her two qbits, Bob’s qbit is forced into one of four states. The bits measured by Alice determine the state into which Bob’s qbit was forced. Bob needs to apply a transformation to get his qbit to the state that he wants. Bob needs to know the values of Alice’s bits to know which transformation(s) to apply. |0 ۧ 0 |0 ۧ 1 |1 ۧ 0 | ۧ 11 − −
  55. Quantum teleportation math If Alice measured: Then Bob has: So

    Bob must apply: |0 ۧ 0 = 1 0 0 1 = |0 ۧ 1 = 0 1 1 0 = | ۧ 10 − − = 1 0 0 −1 − = |1 ۧ 1 − − = 0 1 1 0 1 0 0 −1 − = Most-significant bit controls whether gate is applied, least-significant controls gate.