Что такое кубит и что вообще означают квантовые вычисления? Автор статьи сам где-то на старте изучения это темы и надеется на полезные комментарии о квантовых вычислениях от читателей. Такие популярные высказывания как "кубит - это такое состояние, которое включает и 0 и 1 в разной степени" вообще не являются корректными и только запутывают.
Понимание квантовых вычислений невозможно без представления о комплексных числах, к которым обычно подводят через корень квадратный от отрицательного числа. Например, корень из "4" - это действительное число "2", а корень из "-4" - это мнимое число "2i", мнимое число "i" является квадратным корнем из "-1". Если действительные числа отложить на горизонтальной оси, а мнимые - на вертикальной, то получится двумерная плоскость комплексных чисел, на которой кроме действительных (лежащих на горизонтальной оси) и чисто мнимых (лежащих на вертикальной оси) есть числа, представляемые разными координатами на этой плоскости, отличными от лежащих на осях. Эти числа можно представить как векторы из начала координат до соответствующей точки на комплексной плоскости, а записывать их можно как простую сумму "действительная компонента" + "мнимая компонента"*i, например, 2+2i. Это стандартная форма записи, но есть еще полярная и экспоненциальная формы записи, в них комплексное число выражается через длину вектора (модуль комплексного числа) и через угол от положительного направления горизонтальной оси. Экспоненциальная форма как раз и используется в квантовых вычислениях. Стоит отметить, что для комплексных чисел в любой из форм определены арифметические операции, также как и для обычных действительных чисел. Кроме того, со многих операций снимаются ограничения по значениям аргумента, например квадратный корень в действительных числах можно взять только от неотрицательных чисел, а в комплексных числах квадратных корень берется от всех комплексных чисел.
Второе, что нужно знать и уметь для квантовых вычислений - матричные вычисления. Матрицы одинакового размера, например, можно сложить поэлементно, также существуют операции умножения матрицы на число, матрицы на матрицу (в таком случае количество столбцов первой матрицы должно быть равно количеству строк второй матрицы).
Очень простыми матрицами (из двух элементов) можно представить комплексные числа, базовыми числами являются 1 и i, которые в матричном виде выглядят как матрицы |0⟩ и |1⟩, а произвольное число обозначается матрицей |φ⟩:
В классическом комьютере состояние бита представляется одним из действительных чисел - 0 или 1. В квантовом компьютере кубит до измерения - комплексное число |φ⟩ = α|0⟩ + β|1⟩, у которого есть координаты α (действительная часть) и β (мнимая часть). Абсолютные величины этих координат, возведенные в квадрат, выражают вероятность проявления состояний |0⟩ и |1⟩ после измерения и должны в сумме давать единицу. Но после измерения кубит выглядит вполне классическим и принимает одно из двух значений (|0⟩ или |1⟩). Особые возможности квантовых вычислений относятся именно к состояниям кубитов до измерения. Этих состояний гораздо больше, чем в классическом компьютере, они включают всевозможные комплексные числа единичной длины. Операции классического компьютера определены в пространстве всего двух значений, а операции квантового компьютера - для множества комплексных чисел единичной длины.
В квантовых вычислениях есть всего три базовые операции: X-gate, Y-gate и Z-gate, которые можно представить как матричные операторы (применяется умножением на число, X|φ⟩, порядок в случае матриц имеет значение) над комплексными числами:
Эти операции не изменяют длину вектора (модуль комплексного числа), а меняют только его угол (фазу комплексного числа). Если кубитов больше одного, то операции X, Y и Z можно применять либо безусловно к отдельным кубитам, либо условно, тогда контрольный кубит определяет операцию: оперция осуществляется, если контрольный кубит равен 1, и не осуществляется, если контрольный кубит равен нулю. Также существуют операции над двумя кубитами одновременно.
Квантовый комьютер - устройство, выполняющее операции с комплексными числами, но не со всеми, а только с числами, представляемыми векторами единичной длины на комплексной плоскости. Классический компьютер тоже работает не со всеми действительными числами, а только с двумя. Но результатом работы обоих компьютеров являются бинарные числа. Если б квантовый комьютер только выполнял операции над комплексными числами, он бы не был так и нужен, потому что и классический с помощью программных надстроек вполне может вычислять во множестве комплексных чисел. Особенность квантовых вычислений состоит в том, что они как бы "выполняются для всего множества возможных состояний одновременно", но при измерении результата в конце вычислений мы получаем только одно из решений, которое с большой вероятностью окажется наиболее вероятным (что довольно ожидаемо:)). Но даже если случится маловероятный исход при одном вычислении, можно сделать несколько идентичных вычислений и среди них получить наиболее вероятный результат.