Пока мы ждем наших квантовых компьютеров, можно ли написать имитацию программного обеспечения? Я подозреваю, что ответ отрицательный, но надеюсь, что причины, по которым не будут бросать какой-то свет на тайну.
Программное моделирование квантового компьютера
Ответ 1
Реализация не так уж трудна. Проблема в том, что вычислительная и запоминающая сложность экспоненциальны в количестве квантовых бит, которые вы хотите имитировать.
В основном квантовый компьютер работает со всеми возможными n-разрядными состояниями одновременно. И они растут как 2 ^ n.
Размер оператора растет еще быстрее, так как это матрица. Так оно растет как (2 ^ п) ^ 2 = 2 ^ (2 * п) = 4 ^ п
Поэтому я ожидаю, что хороший компьютер сможет моделировать квантовый компьютер до 20 бит, но он будет довольно медленным.
Ответ 2
Они существуют. Вот, основанный на браузере. Вот, написанный на С++. Вот, написанный на Java. Но, как утверждает CodesInChaos, квантовый компьютер работает со всеми амплитудами вероятности сразу. Итак, представьте себе трехциклический квантовый регистр, типичное для него состояние выглядит следующим образом:
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, унитарные матрицы, используемые для преобразования этих состояний, - это числовое число. Их применение является точечным продуктом... Они, по меньшей мере, вычислительно дорогостоящие.
Ответ 3
Мой ответ - да:
Вы можете моделировать поведение квантовой машины, моделируя алгоритм квантовой машины.
D-Wave квантовая машина, использующая технику, называемую quantum annealing
. Этот алгоритм можно сравнить с алгоритмом simulated annealing
.
Рекомендации:
3. Оптимизация путем имитации отжига: количественные исследования
Ответ 4
Как Wikipedia состояние:
Классический компьютер мог в принципе (с экспоненциальными ресурсами) имитировать квантовый алгоритм, поскольку квантовые вычисления не нарушают тезис Церкви-Тьюринга.
Ответ 5
Несколько лет назад я присутствовал на конференции Perl, где Дамиан Конвей (я считаю) размышлял над этим. Немного позже появился модуль Perl, который сделал некоторые из этих вещей. Поиск CPAN для Quantum:: Суперпозиции.
Ответ 6
Существует очень большой список языков, фреймворков и симуляторов. Некоторые моделируют на низком уровне квантовые уравнения, другие - только ворота.
- Microsoft Quantum Development Kit (Q #)
- Microsoft LIQUi> IBM Quantum Experience
- Лес Ригетти
- ProjectQ
- QuTiP
- OpenFermion
- Qbsolv
- ScaffCC
- Quantum Computing Playground (Google)
- Raytheon BBN
- Галтель
- лес
Было бы здорово узнать ваше мнение об их возможностях и простоте использования.
https://quantumcomputingreport.com/resources/tools/ https://github.com/topics/quantum-computing?o=desc&s=stars
Ответ 7
Quipper - полномасштабное моделирование EDSL для квантовых вычислений, реализованное в Haskell У меня есть опыт для моделирования поведения нескольких алгоритмов контроля качества, таких как алгоритмы Deutsch, Deutsch-Jozsa, Simon's, Shor, и это очень просто.
Ответ 8
Еще одна причина, по которой классическое моделирование квантовых вычислений сложно: чтобы отслеживать, вы можете знать после каждого действия n-qubit gate (n > 1), запутались ли исходящие кубиты или нет. Это должно быть рассчитано классически, но, как известно, NP-hard.
Смотрите здесь: fooobar.com/questions/198353/...
Ответ 9
Еще одна причина, по которой классическое моделирование квантовых вычислений сложно: вам нужно почти идеальное - то есть максимально совершенное - генераторы случайных чисел для имитации измерения.