Квантовые вычисления. Начало

от автора

Хей, Амиго!
Я уже очень давно читаю Хабрахабр и встретил очень мало статей, посвященных квантовым компьютерам. И ни одной про квантовые вычисления.

«Надо это дело исправить», подумал я. Тем более, что эта тема довольно интересна.

Обычный компьютер оперирует битами, а квантовый — кубитами. Думаю, это уже народ знает точно. Но на всякий случай все же расскажу, что за зверь такой — кубит.

Кубит или же квантовый бит — наименьший элемент для хранения информации в квантовом компьютере. Чем он похож на бит? Он тоже может находиться в одном из базовых состояний, обозначаемые как |0> и |1>. В матричной механике вот такие скобочки называются бра и кет, соотвественно < | и | >, от слова «bracket». Но чаще всего он находится в состоянии суперпозиции, которую можно рассматривать как кота Шредингера. Если быть точнее, то квантовый бит всегда находится в состоянии |Ψ> = a|0> + b|1>, где a и b — комплексные числа, и |a|^2 + |b|^2 = 1. Когда мы хотим считать информацию с кубита, он сразу переходит в одно из базовых состояний. Вероятности получить 0 и 1 равны, соответственно, |a|^2 и |b|^2.

Ладно, с кубитами пока закончим. Кому хочется еще -> Википедия.

Однокубитные вентили

Когда мы оперируем битами, пропускаем их через логические элементы, и вообще всячески издеваемся над ними, мы меняем их состояние.
Квантовый кубит может поменять состояние в двух случаях:
1. Во время унитарной квантовой операции.
2. Во время наблюдения.
Нас интересует первое, мы же ведь собрались строить квантовый компьютер. Для начала рассмотрим простейшую однокубитную операцию — NOT.

NOT : |Ψ> -> NOT : (a|0> + b|1>) -> a|1> + b|0>

Но все же некоторые вентили подобным образом записывать неудобно, ну бывает такое. Квантовому состоянию кубита |Ψ> соотвествует столбец. То есть чистое однокубитное квантовое состояние будет выглядеть как:

А чистое двухкубитное квантовое состояние будет определяться суперпозицией двухкубитных базовых состояний:

Как выглядит трехкубитное состояние, думаю, вы уже догадались. Выглядит ужасно, но так уж устроен мир.

Однокубитные квантовые гейты можно представить в виде матрицы 2×2, n кубитные в виде матрицы 2^n x 2^n. То есть матрица квантового NOT будет выглядеть как:

Как вы видите, если мы хотим узнать результат, то надо умножить квантовое состояние бита на матрицу преобразования. Кстати, квантовые вентили всегда являются обратимыми, в отличие от многих классических. Для одного кубита можно построить бесконечное количество вентилей, чего не скажешь про классические биты. Но сколько нам понадобится? Любая 2×2 матрица может быть разложена по системе матриц Паули. Так что достаточно будет самих матриц Паули:

И еще плюс несколько часто используемых вариантов:

Преобразование Адамара. Является одним из самых важных вентилей, иногда его называют «квадратный корень из NOT”. Преобразует |0> в (|0>+|1>)/sqrt(2), а |1>, соответственно, в (|0>-|1>)/sqrt(2), что соответствует половине пути между |0> и |1> на сфере Римана:

S-фазовый вентиль:

Графически однокубитные вентили рисуются как прямоугольник с двумя выводами и буквой в центре. Например, вот графическое изображение S-фазового вентиля:

Думаю, с однокубитными вентилями уже разобрались.

Контролируемые U вентили

В обычной цифровой электронике все же чаще используются AND, XOR и другие, нежели NOT. То есть контролируемые вентили, где один из входов является контролируемым, а другой — контролирующим.Входов может быть и больше двух. Запомните одно правило, в квантовых вентилях число входов всегда равно числу выходов. Итак, одними из важных вентилей являются контролируемые U (Controlled U-Gate).

Что за U? Откуда оно взялось? Успокойся, читатель, U – это вообще любой однокубитный вентиль.

Как вы видите, у него есть два входа и два выхода. Где какой — догадаться нетрудно. Вместо U можно подставить любую букву однокубитного вентиля. Одними из важнейших контролируемых вентилей являются универсальные контролируемое НЕ (CNOT) и вентиль Тоффоли (контролируемое контролируемое НЕ, CCNOT). А что это еще за контролируемое контролируемое? Да просто вместо U поставили CNOT, получился CCNOT. В общем виде контролируемое сколько хотите U выглядит так:

«Антенны» наверху — это контролирующие кубиты, а «ножки» — это контролирующие кубиты.

Напоследок матрицы преобразований CNOT и CCNOT. Что еще хочется сказать про вентиль Тоффоли — было доказано, что на базе только одного этого вентиля можно построить обратимый процессор.


Статья получилась уже большой, да и думаю, я вам уже надоел. Если Хабру вдруг будет интересно — напишу вторую часть. Если нет — так нет.

ссылка на оригинал статьи http://habrahabr.ru/post/165099/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *