Побудова квантового комп'ютера в симуляції


13

Якщо хтось хоче почати будувати квантовий комп'ютер з нуля всередині симуляцій (наприклад, як люди змушені будувати класичний комп'ютер з нуля в курсі Nand2Tetris ), чи це можливо?

Якщо так, то які були б можливі підходи?

Крім того, якими будуть межі такої модельованої машини, враховуючи конкретну кількість класичної обчислювальної потужності? Наприклад, якщо ми обираємо ваш середній робочий стіл / ноутбук, яка буде межа? Якщо ми візьмемо суперкомп'ютер (на зразок "Титан"), то яка була б межа?


Відповіді:


5

Перша частина вашого запитання здається дублікатом існуючої публікації QC SE: Чи є емулятори для квантових комп'ютерів? .

Я не зовсім впевнений, що ви маєте на увазі, будуючи квантовий комп'ютер з нуля всередині моделювання . Однак так, ви можете зробити програмне моделювання квантового комп'ютера за допомогою середнього ноутбука / робочого столу. Точний "ліміт" буде залежати від специфікацій комп'ютера.

Оскільки квантовий комп'ютер не порушує тезу Церкви Тьюрінга , теоретично, безумовно, можна моделювати квантовий комп'ютер, використовуючи ідеальну машину Тьюрінга. Очевидний підхід до моделювання такої системи вимагає експоненціального часу на класичному комп’ютері, а складність простору - це експоненціальна функція кількості модельованих квантових біт. Скажімо, ви імітуєте бітний квантовий комп'ютер, вам потрібно буде зберігати приблизно 2 n біт інформації у вашому класичному комп’ютері щоразу. Більше того, впровадження квантових воріт знову забирає величезну кількість ресурсів за часовою та просторовою складністю. Реалізація квантового шлюзу, що працює на n- кбітах, повинна зберігатисьн2нн (оскільки ви можете представити всі операції з квантовими воротами у вигляді матриці розміром 2 n × 2 n ) бітів інформації.4н2н×2н

1журнал4(8×1012)2120н


Насправді ви можете імітувати трохи більше кубітів, якщо ви використовуєте лише 1 та 2 кубітні ворота, щоб розкласти свій великий унітар і діяти в чистому стані. Завдяки 8 ГБ оперативної пам’яті ви можете легко зробити 25 кубітів у подвійній точності.
vsoftco

4

Ну, я зараз працюю на тренажері квантового комп'ютера. Основна ідея квантових обчислень, звичайно, - це ворота, представлені матрицями, застосованими до кубітів, представлених векторами. Використовуючи пакет нутрощів Python, це не так складно програмувати в самому простому сенсі.

Звідси можна розширити, звичайно, інтерфейс. Можна також розглянути спробу зробити його симулятором ненідального квантового комп'ютера, тобто з урахуванням часу декогерентності та виправлення помилок.

Потім ви потрапляєте на сильно невідомі території. Як ви будуєте набір інструкцій для квантового комп'ютера? Хто знає. Вам доведеться розібратися. Вам також доведеться розібратися у вашій версії збірки та навіть у версії мов програмування вищого рівня.

Отже, обмеження класичного комп’ютера в цьому? Ну, це дуже складне питання (і його варто запитати окремо, imho), але ось короткий підсумок:

  • ми не знаємо, чи квантові комп'ютери насправді кращі, ніж класичні комп’ютери; алгоритми для класичних комп'ютерів просто не можуть бути ще досить хорошими (квантова перевага)
  • скажімо, як це здається пристойно , ймовірно, що квантові комп'ютери можуть краще , ніж класичні комп'ютери. що поліпшення буде значною мірою залежати від проблеми - квантові комп'ютери можуть побачити, наприклад, набагато більш високе підвищення швидкості у пошуку основних факторів, ніж при перевірці електронної пошти. (див. також цей P.SE q / a.)
  • О(е649(журналN)13(журналжурналN)23)О((журналN)2(журналжурналN)(журналжурналжурналN))
  • |0|1

4

Я відчуваю, що ця відповідь здебільшого спирається на основне нерозуміння того, що означає щось "імітувати".

Взагалі кажучи, "імітувати" складну систему означає відтворити певні особливості такої системи за допомогою платформи, яку легше керувати (часто, але не завжди, класичним комп'ютером).

Тому питання про те, "чи можна імітувати квантовий комп'ютер у класичному комп'ютері", є дещо невдалим. Якщо ви маєте на увазі, що ви хочете копіювати всі можливі аспекти "квантового комп'ютера", то цього ніколи не станеться, як і ви ніколи не зможете імітувати кожен аспект будь-якої класичної системи (якщо ви не використовуєте однакові ідентичні система звичайно).

З іншого боку, ви, звичайно, можете змоделювати багато аспектів складного пристрою, наприклад, "квантовий комп'ютер". Наприклад, можна захотіти моделювати еволюцію стану в межах квантового кола. Дійсно, це зробити надзвичайно просто! Наприклад, якщо у вас на комп’ютері є пітон, просто запустіть наступне

import numpy as np
identity_2d = np.diag([1, 1])
pauliX_gate = np.array([[0, 1], [1, 0]])
hadamard_gate = np.array([[1, 1], [1, -1]]) / np.sqrt(2)

cnot_gate = np.kron(identity_2d, pauliX_gate)
H1_gate = np.kron(hadamard_gate, identity_2d)

awesome_entangling_gate = np.dot(cnot_gate, H1_gate)

initial_state = np.array([1, 0, 0, 0])
final_state = np.dot(awesome_entangling_gate, initial_state)
print(final_state)

Вітаємо, Ви просто "імітували" еволюцію відокремленого двохубітного стану в стан Белла!

н2н(1)(2)

Інші відповіді вже торкалися різних аспектів цієї твердості, а відповіді на це інше питання вже згадують про багато доступних платформ для імітації / емуляції різних аспектів квантових алгоритмів, тому я туди не піду.


(1) Цікавим прикладом цього є проблема моделювання пристрою відбору проб бозона (це не квантовий алгоритм у значенні стану, що розвивається через ряд воріт, але, тим не менш, це приклад нетривіального квантового пристрою). BosonSampling - це проблема вибірки , в якій покладено завдання вибіркивід конкретного розподілу ймовірностей, і це показано (за вірогідних припущень) неможливо зробити ефективно з класичним пристроєм. Хоча ніколи не було показано, що це фундаментальний аспект цієї твердості, але, безумовно, нетривіальною проблемою, пов'язаною із моделюванням пристрою для відбору проб бозону, було те, що потрібно обчислити експоненціально велику кількість ймовірностей, з яких потрібно зробити вибірку. Однак нещодавно було показано, що дійсно не потрібно обчислювати весь набір ймовірностей для вибірки з них ( 1705.00686 та 1706.01260). Це в принципі далеко не моделювання еволюції багатьох кубітів в квантовому ланцюзі без необхідності зберігання всього стану системи в будь-якій заданій точці. Що стосується більш прямих квантових схем, то приклади нещодавнього прориву у можливостях моделювання - 1704.01127 та 1710.05867 (також супер-недавній, ще не опублікований, - 1802.06952 ).

(2) Насправді було показано (а точніше, на це були дані вагомі докази), що неможливо ефективно моделювати більшість квантових схем (див. 1504.07999) .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.