Тема квантовых компьютеров последние несколько лет довольно активно обсуждается на совершенно разных уровнях её понимания. То, что тема выплеснулась в широкие массы, с одной стороны, хорошо. Многих это подталкивает к более глубокому изучению математики и квантовой физики. Вместе с тем, широкая популярность темы порождает неверное её понимание и неверные ожидания.
Сначала я опровергну неверные ожидания.
- Квантовые вычислители не являются заменой классическим. Квантовый процессор, когда он будет полноценно реализован, скорее всего будет сопроцессором, как когда-то для процессоров i8086, i80286 и i80386 были математические сопроцессоры i8087, i80287 и i80387. И даже в процессоре i80486 сопроцессор хотя и был интегрирован в кристалл, но логически представлял собой в нём отдельный блок.
- До реализации в железе полноценного квантового вычислителя, способного производить универсальные квантовые вычисления, ещё очень далеко. Думаю, более 10, а то и 20 лет. На данном этапе удалось сделать лишь относительно слабые простейшие квантовые вычислители для узкоспециальных математических задач. На пути к полноценным квантовым вычислителям предстоит решить ещё очень много физических задач. Да и математических, наверное, тоже.
А теперь давайте познакомимся с простейшим и интереснейшим объектом квантового компьютера — кубитом.
Кубит
Кубит — это то же самое, что и бит в обычном компьютере. Ящичек, который содержит минимальную частицу, которой кодируется любая осмысленная информация. Кубит, также, как и бит, может принимать значения 0 или 1, но, в отличие от бита, эти конкретные значения он принимает лишь при выводе результата вычислений. В процессе вычислений значение кубита определяется не единицей или нулём, а вероятностью наличия в нём одного из этих значений. Эта вероятность, как и принято в квантовом мире, описывается волновой функцией (волновая функция обозначается символом ψ).
Волновую функцию ещё называют вектором квантового состояния и обозначают, как |ψ>, что схематично символизирует вектор. При математическом описании работы квантового компьютера оперируют именно векторами. Если математически описывать физику процессов, происходящих в квантовом компьютере с кубитами при логических операциях с ними, то это будут умножения векторов, описывающих вероятностное состояния кубитов, на матрицы, описывающие эти самые логические операции.
Если в обычном компьютере это простейшие логические операции «и», «или», «не», «исключающее или» и т.п., и они реализуются простейшей транзисторной логикой, то в квантовом компьютере логические операции над кубитными волновыми функциями (векторами), как правило, более сложные — тождественное преобразование, отрицание, фазовый сдвиг, преобразование Адамара, контролируемое отрицание и т.п., и реализуются они т.н. квантовыми вентилями.
Кроме вентильных (матричных) преобразований волновые функции кубитов можно складывать и вычитать, как можно складывать и вычитать обычные волны. В результате сложений волн вероятностей, как и на обычных волнах, возникает интерференция, которая позволяет влиять на состояние кубита, меняя вероятность получения в нём того или другого значения (ноля или единицы). После всех вычислений и преобразований результирующая волновая функция вероятности при прочтении кубита превращается в ноль или единицу, и уже не отличается от бита.
Применение квантовых вычислений
Как видно из предыдущего объяснения, применять квантовый компьютер для обычных вычислений нет никакого смысла. А вот для определённого круга задач, где работа с вероятностями состояний вместо конкретных состояний на порядки повышает производительность, квантовый компьютер практически незаменим.
Например, дешифрование на классическом компьютере занимает на порядки больше времени, чем само шифрование. Подчас дешифрование вообще невозможно в разумные сроки. Тогда используются квантовые алгоритмы, которые дают некий наиболее вероятный ключ дешифровки и открывают им дешифрованные данные. Ключ можно быстро проверить повторным шифрованием данных и сравнением результата, и если результат повторной шифровки не совпал с оригиналом, значит ключ оказался ошибочным, и квантовые алгоритмы запускаются заново.
Как видите, никто не собирается с помощью квантовых компьютеров управлять ядерными реакторами, это было бы самоубийством. Но моделировать ядерные реакции в научных целях вполне можно. Там вероятности появления ошибок поглощаются и взаимоуничтожаются большой массой однотипных вычислений, и не оказывают никакого влияния на общий результат.
Резюме — квантовые вычисления применимы там, где они дают преимущество, и никто не будет их применять в чистом виде там, где нужна однозначная точность результата.
Заключение
Тема сложная, и эта статья не даёт представление о механике работы квантового компьютера в целом. Мы лишь разобрались в первом приближении, чем и как оперирует кубит. Для полного понимания логики работы квантового компьютерра нужны углублённые знания математики, а для полного понимания физического принципа работы нужны углублённые знания в квантовой физике. Нахрапом всего этого не освоить, так что, если вам интересна эта тема, попробуйте «кушать слона по частям».
На сегодня всё. Ставьте нравлики, если моё объяснение хоть немного прояснило для вас тему квантовых компьютеров, я буду рад этому. Пишите ваши дополнения и уточнения в комментариях, тоже буду очень признателен. Ну и подписывайтесь на мой канал, если вы на него ещё не подписаны :-)
Удачи!