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

Игорь Мамай «Та самая база для понимания квантовых алгоритмов»

DotNetRu
January 30, 2020

Игорь Мамай «Та самая база для понимания квантовых алгоритмов»

Многие из нас с воодушевлением открывали статью про новый язык программирования для квантовых компьютеров, ожидая найти в ней что-то интересное. Но не дочитав и до середины, закрывали ее с мыслью «Ничего не понятно» или «Слишком сложно». Однако дело вовсе не в том, что квантовые вычисления слишком сложны, просто авторы статей предполагают у слушателя наличие некоторой базы. В докладе мы подготовим ту самую необходимую базу для понимания квантовых алгоритмов. Мы рассмотрим физические принципы, которые делают возможными квантовые вычисления. Познакомимся с математической моделью, рассмотрим что же такое кубит и какие операции возможно над ним совершать. Разберем простой квантовый алгоритм, демонстрирующий преимущество квантовых вычислений над классическими.

DotNetRu

January 30, 2020
Tweet

More Decks by DotNetRu

Other Decks in Programming

Transcript

  1. Особенности квантовых вычислений Особенности квантовых вычислений Это математика Это математика

    Для них не подходят классические алгоритмы Для них не подходят классические алгоритмы 2
  2. Особенности квантовых вычислений Особенности квантовых вычислений Это математика Это математика

    Для них не подходят классические алгоритмы Для них не подходят классические алгоритмы Они эффективны на специфичных задачах Они эффективны на специфичных задачах 2
  3. Возможности Возможности Снизить степень в полиномиальной сложности Снизить степень в

    полиномиальной сложности Перейти от экспоненциальной к полиномиальной Перейти от экспоненциальной к полиномиальной сложности сложности 3
  4. Возможности Возможности Снизить степень в полиномиальной сложности Снизить степень в

    полиномиальной сложности Перейти от экспоненциальной к полиномиальной Перейти от экспоненциальной к полиномиальной сложности сложности Создать новые алгоритмы Создать новые алгоритмы 3
  5. Задача Д Задача Дойча — Джоза ойча — Джоза f

    : {0, 1} ↦ n {0, 1} f : const ∣x : f(x) = 0∣ == ∣x : f(x) = 1∣ 4
  6. Задача Д Задача Дойча — Джоза ойча — Джоза f

    : {0, 1} ↦ n {0, 1} f : const ∣x : f(x) = 0∣ == ∣x : f(x) = 1∣ f − const? 4
  7. Классическое решение задачи Д Классическое решение задачи Дойча — Джоза

    ойча — Джоза Перебор Перебор f(0) == f(1) == ... == f(2 + n−1 1) 5
  8. Классическое решение задачи Д Классическое решение задачи Дойча — Джоза

    ойча — Джоза Перебор Перебор f(0) == f(1) == ... == f(2 + n−1 1) Сложность Сложность O(2 ) n 5
  9. Если функция "умная", умеет отвечать на Если функция "умная", умеет

    отвечать на вопросы вопросы f(x)−?, если x = 5 7
  10. Если функция "умная", умеет отвечать на Если функция "умная", умеет

    отвечать на вопросы вопросы f(x)−?, если x = 5 , тогда f(x) − 1 7
  11. Если функция "умная", умеет отвечать на Если функция "умная", умеет

    отвечать на вопросы вопросы f(x)−?, если x = 5 , тогда f(x) − 1 f(x)−?, если x − 2 или 3 7
  12. Если функция "умная", умеет отвечать на Если функция "умная", умеет

    отвечать на вопросы вопросы f(x)−?, если x = 5 , тогда f(x) − 1 f(x)−?, если x − 2 или 3, тогда f(x) − 0 или 1 7
  13. Если функция "умная", умеет отвечать на Если функция "умная", умеет

    отвечать на вопросы вопросы f(x)−?, если x = 5 , тогда f(x) − 1 f(x)−?, если x − 2 или 3, тогда f(x) − 0 или 1 f(x)−?, если x − 1 или 7 7
  14. Если функция "умная", умеет отвечать на Если функция "умная", умеет

    отвечать на вопросы вопросы f(x)−?, если x = 5 , тогда f(x) − 1 f(x)−?, если x − 2 или 3, тогда f(x) − 0 или 1 f(x)−?, если x − 1 или 7 , тогда f(x) − 0 7
  15. Отличие квантовых вычислений от Отличие квантовых вычислений от классических императивных

    вычислений классических императивных вычислений Переменная содержит несколько вероятностных Переменная содержит несколько вероятностных значений значений Можно узнать значение переменной и тогда оно будет Можно узнать значение переменной и тогда оно будет одно одно 8
  16. 16

  17. Измерение qubit Измерение qubit ∣0⟩ ∣1⟩ ∣φ⟩ ∣φ⟩ = α∣0⟩

    + β∣1⟩ α β P(∣0⟩) = ∣α∣2 P(∣1⟩) = ∣β∣2 M(∣φ⟩) ∣0⟩ 18 ∣1⟩
  18. Базис Адамара Базис Адамара (Hadamar) (Hadamar) ∣0⟩ ∣1⟩ ∣φ⟩ ∣φ⟩

    = (∣0⟩ + 2 1 ∣1⟩) β ∣ψ⟩ ∣ψ⟩ = (∣1⟩ − 2 1 ∣0⟩) 19
  19. Базис Адамара Базис Адамара (Hadamar) (Hadamar) ∣0⟩ ∣1⟩ ∣φ⟩ ∣φ⟩

    = (∣0⟩ + 2 1 ∣1⟩) β ∣ψ⟩ ∣ψ⟩ = (∣1⟩ − 2 1 ∣0⟩) P(∣0⟩) = ∣α∣ = 2 ∣β∣ = 2 P(∣1⟩) 19
  20. Базис Адамара Базис Адамара (Hadamar) (Hadamar) ∣0⟩ ∣1⟩ ∣φ⟩ ∣φ⟩

    = (∣0⟩ + 2 1 ∣1⟩) β ∣ψ⟩ ∣ψ⟩ = (∣1⟩ − 2 1 ∣0⟩) ∣−⟩ = ∣+⟩ P(∣0⟩) = ∣α∣ = 2 ∣β∣ = 2 P(∣1⟩) 19
  21. Базис Адамара Базис Адамара (Hadamar) (Hadamar) ∣0⟩ ∣1⟩ ∣φ⟩ ∣φ⟩

    = (∣0⟩ + 2 1 ∣1⟩) β ∣ψ⟩ ∣ψ⟩ = (∣1⟩ − 2 1 ∣0⟩) ∣+⟩ = (∣0⟩ + 2 1 ∣1⟩) ∣−⟩ = (∣0⟩ − 2 1 ∣1⟩) ∣−⟩ = ∣+⟩ P(∣0⟩) = ∣α∣ = 2 ∣β∣ = 2 P(∣1⟩) 19
  22. Система qubit Система qubit 1 1 2 2 ∣0⟩ ∣0⟩

    ∣0⟩ ∣1⟩ ∣1⟩ ∣0⟩ ∣00⟩ ∣10⟩ ∣01⟩ 20
  23. Система qubit Система qubit 1 1 2 2 ∣0⟩ ∣0⟩

    ∣0⟩ ∣1⟩ ∣1⟩ ∣1⟩ ∣0⟩ ∣1⟩ ∣00⟩ ∣10⟩ ∣01⟩ ∣11⟩ 20
  24. Система qubit Система qubit 1 1 2 2 ∣0⟩ ∣0⟩

    ∣0⟩ ∣1⟩ ∣1⟩ ∣1⟩ ∣0⟩ ∣1⟩ ∣00⟩ ∣10⟩ ∣01⟩ ∣11⟩ α ∣0⟩ + 1 α ∣1⟩ 2 β ∣0⟩ + 1 β ∣1⟩ 2 20
  25. Система qubit Система qubit 1 1 2 2 ∣0⟩ ∣0⟩

    ∣0⟩ ∣1⟩ ∣1⟩ ∣1⟩ ∣0⟩ ∣1⟩ ∣00⟩ ∣10⟩ ∣01⟩ ∣11⟩ α ∣0⟩ + 1 α ∣1⟩ 2 β ∣0⟩ + 1 β ∣1⟩ 2 α β ∣00⟩ 1 1 20
  26. Система qubit Система qubit 1 1 2 2 ∣0⟩ ∣0⟩

    ∣0⟩ ∣1⟩ ∣1⟩ ∣1⟩ ∣0⟩ ∣1⟩ ∣00⟩ ∣10⟩ ∣01⟩ ∣11⟩ α ∣0⟩ + 1 α ∣1⟩ 2 β ∣0⟩ + 1 β ∣1⟩ 2 α β ∣00⟩ 1 1 +α β ∣01⟩ 1 2 20
  27. Система qubit Система qubit 1 1 2 2 ∣0⟩ ∣0⟩

    ∣0⟩ ∣1⟩ ∣1⟩ ∣1⟩ ∣0⟩ ∣1⟩ ∣00⟩ ∣10⟩ ∣01⟩ ∣11⟩ α ∣0⟩ + 1 α ∣1⟩ 2 β ∣0⟩ + 1 β ∣1⟩ 2 α β ∣00⟩ 1 1 +α β ∣01⟩ 1 2 +α β ∣10⟩ 2 1 20
  28. Система qubit Система qubit 1 1 2 2 ∣0⟩ ∣0⟩

    ∣0⟩ ∣1⟩ ∣1⟩ ∣1⟩ ∣0⟩ ∣1⟩ ∣00⟩ ∣10⟩ ∣01⟩ ∣11⟩ α ∣0⟩ + 1 α ∣1⟩ 2 β ∣0⟩ + 1 β ∣1⟩ 2 α β ∣00⟩ 1 1 +α β ∣01⟩ 1 2 +α β ∣10⟩ 2 1 +α β ∣11⟩ 2 2 20
  29. Система qubit Система qubit 1 − H над C, dim

    H = 2 2 − H над C, dim H = 4 3 − H над C, dim H = 8 21
  30. Система qubit Система qubit 1 − H над C, dim

    H = 2 2 − H над C, dim H = 4 3 − H над C, dim H = 8 ⋮ 1000 − H над C, dim H = 21000 21
  31. Система qubit Система qubit 1 − H над C, dim

    H = 2 2 − H над C, dim H = 4 3 − H над C, dim H = 8 ⋮ 1000 − H над C, dim H = 21000 ∣φ⟩ : φ ∈ H , ∥φ∥ = 2n 1 21
  32. Оператор Адамара (Hadamar) Оператор Адамара (Hadamar) H(∣0⟩) = (∣0⟩ +

    2 1 ∣1⟩) = ∣+⟩ H(∣1⟩) = (∣0⟩ − 2 1 ∣1⟩) = ∣−⟩ 22
  33. Оператор Адамара (Hadamar) Оператор Адамара (Hadamar) H(∣0⟩) = (∣0⟩ +

    2 1 ∣1⟩) = ∣+⟩ H(∣1⟩) = (∣0⟩ − 2 1 ∣1⟩) = ∣−⟩ H(∣+⟩) = ∣0⟩ H(∣−⟩) = ∣1⟩ 22
  34. Задача Дойча Задача Дойча ∣x⟩(∣0⟩ − 2 1 ∣1⟩) ∣xy⟩

    ∣x⟩∣y ⊕ ⟶ U f f(x)⟩ ∣x⟩ 2 1 ⟶ U f (∣0 ⊕ f(x)⟩ 25
  35. Задача Дойча Задача Дойча ∣x⟩(∣0⟩ − 2 1 ∣1⟩) ∣xy⟩

    ∣x⟩∣y ⊕ ⟶ U f f(x)⟩ ∣x⟩ 2 1 ⟶ U f (∣0 ⊕ f(x)⟩−∣1 ⊕ f(x)⟩) 25
  36. Задача Дойча Задача Дойча ∣x⟩(∣0⟩ − 2 1 ∣1⟩) ∣xy⟩

    ∣x⟩∣y ⊕ ⟶ U f f(x)⟩ ∣x⟩ 2 1 ⟶ U f (∣0 ⊕ f(x)⟩−∣1 ⊕ f(x)⟩) = ∣x⟩ 2 1 25
  37. Задача Дойча Задача Дойча ∣x⟩(∣0⟩ − 2 1 ∣1⟩) (−1)f(x)

    ∣xy⟩ ∣x⟩∣y ⊕ ⟶ U f f(x)⟩ ∣x⟩ 2 1 ⟶ U f (∣0 ⊕ f(x)⟩−∣1 ⊕ f(x)⟩) = ∣x⟩ 2 1 25
  38. Задача Дойча Задача Дойча ∣x⟩(∣0⟩ − 2 1 ∣1⟩) (−1)f(x)

    ∣xy⟩ ∣x⟩∣y ⊕ ⟶ U f f(x)⟩ ∣x⟩ 2 1 ⟶ U f (∣0 ⊕ f(x)⟩−∣1 ⊕ f(x)⟩) = ∣x⟩ 2 1 (∣0⟩ − ∣1⟩) 25
  39. Задача Дойча Задача Дойча ∣x⟩(∣0⟩ − 2 1 ∣1⟩) (−1)f(x)

    ∣xy⟩ ∣x⟩∣y ⊕ ⟶ U f f(x)⟩ ⟶ U f ∣x⟩ 2 1 (∣0⟩ − ∣1⟩) 26
  40. Задача Дойча Задача Дойча H H ∣0⟩ ∣1⟩ M U

    f H 27 0 yes f − const? f : {0, 1} ↦ {0, 1}
  41. Задача Дойча Задача Дойча H H ∣0⟩ ∣1⟩ M U

    f H 27 0 yes 1 no f − const? f : {0, 1} ↦ {0, 1}
  42. Задача Дойча Задача Дойча ∣01⟩⟶ H ∣0⟩ (∣0⟩ + ⟶

    H 2 1 ∣1⟩) ∣1⟩ (∣0⟩ − ⟶ H 2 1 ∣1⟩) 28
  43. Задача Дойча Задача Дойча ∣01⟩⟶ H ∣0⟩ (∣0⟩ + ⟶

    H 2 1 ∣1⟩) ∣1⟩ (∣0⟩ − ⟶ H 2 1 ∣1⟩) 2 1 28
  44. Задача Дойча Задача Дойча ∣01⟩⟶ H ∣0⟩ (∣0⟩ + ⟶

    H 2 1 ∣1⟩) ∣1⟩ (∣0⟩ − ⟶ H 2 1 ∣1⟩) 2 1 (∣0⟩ + ∣1⟩) 28
  45. Задача Дойча Задача Дойча ∣01⟩⟶ H ∣0⟩ (∣0⟩ + ⟶

    H 2 1 ∣1⟩) ∣1⟩ (∣0⟩ − ⟶ H 2 1 ∣1⟩) 2 1 (∣0⟩ + ∣1⟩)(∣0⟩ − ∣1⟩) 28
  46. Задача Дойча Задача Дойча ∣01⟩⟶ H 2 1 (∣0⟩ +

    ∣1⟩)(∣0⟩ − ∣1⟩) = ∣0⟩ 2 1 (∣0⟩ − ∣1⟩) 29
  47. Задача Дойча Задача Дойча ∣01⟩⟶ H 2 1 (∣0⟩ +

    ∣1⟩)(∣0⟩ − ∣1⟩) = ∣0⟩ 2 1 (∣0⟩ − ∣1⟩)+ ∣1⟩ 2 1 29
  48. Задача Дойча Задача Дойча ∣01⟩⟶ H 2 1 (∣0⟩ +

    ∣1⟩)(∣0⟩ − ∣1⟩) = ∣0⟩ 2 1 (∣0⟩ − ∣1⟩)+ ∣1⟩ 2 1 (∣0⟩ − ∣1⟩) 29
  49. Задача Дойча Задача Дойча ∣0⟩ 2 1 (∣0⟩ − ∣1⟩)+

    ∣1⟩ 2 1 (∣0⟩ − ∣1⟩)⟶ U f ∣x⟩(∣0⟩ − 2 1 ∣1⟩) (−1)f(x) ⟶ U f ∣x⟩ 2 1 (∣0⟩ − ∣1⟩) 30
  50. Задача Дойча Задача Дойча ∣0⟩ 2 1 (∣0⟩ − ∣1⟩)+

    ∣1⟩ 2 1 (∣0⟩ − ∣1⟩)⟶ U f ∣x⟩(∣0⟩ − 2 1 ∣1⟩) (−1)f(x) ⟶ U f ∣x⟩ 2 1 (∣0⟩ − ∣1⟩) ⟶ U f 30
  51. Задача Дойча Задача Дойча ∣0⟩ 2 1 (∣0⟩ − ∣1⟩)+

    ∣1⟩ 2 1 (∣0⟩ − ∣1⟩)⟶ U f ∣x⟩(∣0⟩ − 2 1 ∣1⟩) (−1)f(x) ⟶ U f ∣x⟩ 2 1 (∣0⟩ − ∣1⟩) ∣0⟩(−1) 2 1 f(0) ⟶ U f 30
  52. Задача Дойча Задача Дойча ∣0⟩ 2 1 (∣0⟩ − ∣1⟩)+

    ∣1⟩ 2 1 (∣0⟩ − ∣1⟩)⟶ U f ∣x⟩(∣0⟩ − 2 1 ∣1⟩) (−1)f(x) ⟶ U f ∣x⟩ 2 1 (∣0⟩ − ∣1⟩) ∣0⟩(−1) 2 1 f(0) ⟶ U f (∣0⟩ − ∣1⟩) 30
  53. Задача Дойча Задача Дойча ∣0⟩ 2 1 (∣0⟩ − ∣1⟩)+

    ∣1⟩ 2 1 (∣0⟩ − ∣1⟩)⟶ U f ∣x⟩(∣0⟩ − 2 1 ∣1⟩) (−1)f(x) ⟶ U f ∣x⟩ 2 1 (∣0⟩ − ∣1⟩) ∣0⟩(−1) 2 1 f(0) ⟶ U f (∣0⟩ − ∣1⟩)+ ∣1⟩(−1) 2 1 f(1) 30
  54. Задача Дойча Задача Дойча ∣0⟩ 2 1 (∣0⟩ − ∣1⟩)+

    ∣1⟩ 2 1 (∣0⟩ − ∣1⟩)⟶ U f ∣x⟩(∣0⟩ − 2 1 ∣1⟩) (−1)f(x) ⟶ U f ∣x⟩ 2 1 (∣0⟩ − ∣1⟩) ∣0⟩(−1) 2 1 f(0) ⟶ U f (∣0⟩ − ∣1⟩)+ ∣1⟩(−1) 2 1 f(1)(∣0⟩ − ∣1⟩) 30
  55. Задача Дойча Задача Дойча ∣0⟩ 2 1 (∣0⟩ − ∣1⟩)+

    ∣1⟩ 2 1 (∣0⟩ − ∣1⟩)⟶ U f ∣x⟩(∣0⟩ − 2 1 ∣1⟩) (−1)f(x) ⟶ U f ∣x⟩ 2 1 (∣0⟩ − ∣1⟩) = 2 1 ∣0⟩(−1) 2 1 f(0) ⟶ U f (∣0⟩ − ∣1⟩)+ ∣1⟩(−1) 2 1 f(1)(∣0⟩ − ∣1⟩) 30
  56. Задача Дойча Задача Дойча ∣0⟩ 2 1 (∣0⟩ − ∣1⟩)+

    ∣1⟩ 2 1 (∣0⟩ − ∣1⟩)⟶ U f ∣x⟩(∣0⟩ − 2 1 ∣1⟩) (−1)f(x) ⟶ U f ∣x⟩ 2 1 (∣0⟩ − ∣1⟩) = 2 1 ∣0⟩(−1) 2 1 f(0) ⟶ U f (∣0⟩ − ∣1⟩)+ ∣1⟩(−1) 2 1 f(1)(∣0⟩ − ∣1⟩) ((−1) ∣0⟩ f(0) 30
  57. Задача Дойча Задача Дойча ∣0⟩ 2 1 (∣0⟩ − ∣1⟩)+

    ∣1⟩ 2 1 (∣0⟩ − ∣1⟩)⟶ U f ∣x⟩(∣0⟩ − 2 1 ∣1⟩) (−1)f(x) ⟶ U f ∣x⟩ 2 1 (∣0⟩ − ∣1⟩) = 2 1 ∣0⟩(−1) 2 1 f(0) ⟶ U f (∣0⟩ − ∣1⟩)+ ∣1⟩(−1) 2 1 f(1)(∣0⟩ − ∣1⟩) ((−1) ∣0⟩ f(0) +(−1) ∣1⟩) f(1) 30
  58. Задача Дойча Задача Дойча ∣0⟩ 2 1 (∣0⟩ − ∣1⟩)+

    ∣1⟩ 2 1 (∣0⟩ − ∣1⟩)⟶ U f ∣x⟩(∣0⟩ − 2 1 ∣1⟩) (−1)f(x) ⟶ U f ∣x⟩ 2 1 (∣0⟩ − ∣1⟩) = 2 1 ∣0⟩(−1) 2 1 f(0) ⟶ U f (∣0⟩ − ∣1⟩)+ ∣1⟩(−1) 2 1 f(1)(∣0⟩ − ∣1⟩) (∣0⟩ − ∣1⟩) ((−1) ∣0⟩ f(0) +(−1) ∣1⟩) f(1) 30
  59. Задача Дойча Задача Дойча 2 1 (∣0⟩ − ∣1⟩) ((−1)

    ∣0⟩ f(0) +(−1) ∣1⟩) f(1) ((−1) ∣0⟩ f(0) +(−1) ∣1⟩) f(1) 31
  60. Задача Дойча Задача Дойча 2 1 (∣0⟩ − ∣1⟩) ((−1)

    ∣0⟩ f(0) +(−1) ∣1⟩) f(1) ((−1) ∣0⟩ f(0) +(−1) ∣1⟩) f(1) Если f = const, 31
  61. Задача Дойча Задача Дойча 2 1 (∣0⟩ − ∣1⟩) ((−1)

    ∣0⟩ f(0) +(−1) ∣1⟩) f(1) ((−1) ∣0⟩ f(0) +(−1) ∣1⟩) f(1) Если f = const,(∣0⟩ + ∣1⟩) = ∣+⟩ ∣0⟩ ⟶ H 31
  62. Задача Дойча Задача Дойча 2 1 (∣0⟩ − ∣1⟩) ((−1)

    ∣0⟩ f(0) +(−1) ∣1⟩) f(1) ((−1) ∣0⟩ f(0) +(−1) ∣1⟩) f(1) Если f = const,(∣0⟩ + ∣1⟩) = ∣+⟩ ∣0⟩ ⟶ H Если f =  const, 31
  63. Задача Дойча Задача Дойча 2 1 (∣0⟩ − ∣1⟩) ((−1)

    ∣0⟩ f(0) +(−1) ∣1⟩) f(1) ((−1) ∣0⟩ f(0) +(−1) ∣1⟩) f(1) Если f = const,(∣0⟩ + ∣1⟩) = ∣+⟩ ∣0⟩ ⟶ H Если f =  const,(∣0⟩ − ∣1⟩) = ∣−⟩ ∣1⟩ ⟶ H 31
  64. Языки Языки програм программир мирования ования для для квантовых квантовых

    ком компью пьютеров теров IBM Quantum Experience (Open Quantum Assembly Language (OpenQASM)) Microsoft Q# LIQUi (Language-Integrated Quantum Operations) Quantum Computation Language (QCL) Quipper ... 37