Программное моделирование квантового компьютера - PullRequest
29 голосов
/ 04 января 2011

Пока мы ждем наших квантовых компьютеров, возможно ли написать программную симуляцию одного из них?Я подозреваю, что ответ - нет, но надеюсь, что причины, почему бы не пролить свет на тайну.

Ответы [ 9 ]

13 голосов
/ 05 января 2011

Реализация это не так сложно.Проблема заключается в том, что сложность вычислений и памяти экспоненциально зависит от количества квантовых битов, которые вы хотите смоделировать.

В основном квантовый компьютер работает со всеми возможными n-битными состояниями одновременно.И они растут как 2 ^ n.

Размер оператора растет еще быстрее, так как это матрица.Таким образом, он растет как (2 ^ n) ^ 2 = 2 ^ (2 * n) = 4 ^ n

Так что я ожидаю, что хороший компьютер сможет симулировать квантовый компьютер до 20 бит, ноэто будет довольно медленно.

8 голосов
/ 01 января 2013

Они существуют. Вот браузер. Вот один написан на C ++. Вот , написанный на Java.Но, как утверждает CodesInChaos, квантовый компьютер работает на всех амплитудах вероятности одновременно.Итак, представьте 3-кубитный квантовый регистр, типичное для него состояние выглядит следующим образом:

a1 | 000> + a2 | 001> + a3 | 010> + a4 | 011> + a5 | 100>+ a6 | 101> + a7 | 110> + a8 | 111>

Это суперпозиция всех возможных комбинаций.Хуже всего то, что эти амплитуды вероятности являются комплексными числами.Таким образом, для n-кубитового регистра потребуется 2 ^ (2 * n) действительных чисел.Таким образом, для 32-кубитового регистра это 2 ^ (2 * 32) = 18446744073709551616 действительных чисел.

И, как сказал CodesInChaos, унитарные матрицы, используемые для преобразования этих состояний, представляют собой это квадрат числа.Их применение является точечным продуктом ... Они вычислительно дорогостоящие, если не сказать больше.

5 голосов
/ 27 августа 2014

Мой ответ - да:

Вы можете моделировать поведение квантовой машины, имитируя алгоритм квантовой машины

D-Wave квантовая машина с использованием техники под названием quantum annealing. Этот алгоритм можно сравнить с алгоритмом simulated annealing.

Ссылки:

1. Квантовый отжиг

2. Имитация отжига

3. Оптимизация путем имитации отжига: количественные исследования

2 голосов
/ 27 мая 2014

Как Википедия Состояние:

Классический компьютер может в принципе (с экспоненциальными ресурсами) моделировать квантовый алгоритм, поскольку квантовые вычисления не нарушают тезис Черча-Тьюринга.

1 голос
/ 28 февраля 2018

Существует очень большой список языков, фреймворков и симуляторов.Некоторые моделируют на низком уровне квантовые уравнения, другие - только ворота.

  • Microsoft Quantum Development Kit (Q #)
  • Microsoft LIQUi> IBM Quantum Experience
  • RigettiЛес
  • ProjectQ
  • QuTiP
  • OpenFermion
  • Qbsolv
  • ScaffCC
  • Детская площадка для квантовых вычислений (Google)
  • Raytheon BBN
  • Причудливый
  • Лес

Было бы здорово узнать ваше мнение об их возможностях и простоте использования.

https://quantumcomputingreport.com/resources/tools/ https://github.com/topics/quantum-computing?o=desc&s=stars

1 голос
/ 04 января 2011

Несколько лет назад я присутствовал на выступлении на конференции Perl, где Дамиан Конуэй (я полагаю) размышлял над некоторыми из них.Чуть позже появился модуль Perl, который сделал некоторые из этих вещей.Поиск CPAN для Quantum :: Суперпозиции.

0 голосов
/ 22 июля 2016

Еще одна причина, по которой классическое моделирование квантовых вычислений является сложным: вам нужны почти совершенные - то есть как можно более совершенные - генераторы случайных чисел для моделирования измерений.

0 голосов
/ 22 июля 2016

Еще одна причина, по которой классическое моделирование квантовых вычислений сложно: чтобы отслеживать, вы можете захотеть узнать после каждого действия гейта n-кубита (n> 1), запутаны ли исходящие кубиты или нет. Это должно быть рассчитано классически, но известно, что оно NP-сложное.

Смотрите здесь: https://stackoverflow.com/a/23327816/363429

0 голосов
/ 16 августа 2014

Quipper - это полноценный симулятор EDSL для квантовых вычислений, реализованный на Haskell У меня есть опыт, чтобы смоделировать поведение нескольких алгоритмов контроля качества, таких как алгоритмы Дойча, Дойча – Йоссы, Саймона, Шора, и это очень просто.

...