Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Введение в квантовые компьютеры

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
1 Мб
Скачать

ГЛАВА 3

Двоичная система счисления

ибулева алгебра

Вбольшинстве применяемых на практике компьютеров используется двоичная система счисления. В такой системе любое целое число N может быть представлено в виде:

N = an2n,

n

где an принимает два значения, 0 и 1. Например, 59 = (111011), что можно записать как:

59 = 1 · 25 + 1 · 24 + 1 · 23 + 0 · 22 + 1 · 21 + 1 · 20.

Предположим, что компьютер складывает два числа, 2 и 3. Поскольку 2 = 1 · 21 + 0 · 20, а 3 = 1 · 21 + 1 · 20, то в двоичной системе

мы получим следующие два числа (10) и (11). Сначала сложим 0 и 1 (правая колонка), получим 1. Затем сложим 1 и 1 (вторая колонка справа), получаем 0 во второй колонке и переносим 1 в третью колонку. Таким образом, сумма чисел равна (101). Перепишем это число в десятичной системе счисления: 1 · 22 + 0 · 21 + 1 · 20 = 5. Таблица сложения двоичных чисел (битов) представлена в табл. 3.1., где A — значение бита в любом столбце для первого числа, B — значение бита в том же самом столбце для второго числа, C — перенос от сложения в колонке справа, S — значение бита при суммировании, а D — значение, переносимое в следующую колонку слева.

Для работы с этой таблицей лучше использовать методы булевой алгебры [45], которые особенно полезны в данном случае, так как выражения на основе булевой алгебры удобны для применения

22

ГЛАВА 3

Таблица 3.1. Таблица сложения в двоичной системе счисления

A

B

C

S

D

1

1

1

1

1

1

1

0

0

1

 

 

 

 

 

1

0

1

0

1

 

 

 

 

 

1

0

0

1

0

 

 

 

 

 

0

1

1

0

1

0

1

0

1

0

 

 

 

 

 

0

0

1

1

0

 

 

 

 

 

0

0

0

0

0

 

 

 

 

 

Таблица 3.2. Таблица сложения (а) и умножения (б) для двузначной булевой алгебры

 

 

 

(a)

 

 

 

(б)

 

1

0

 

 

1

0

 

1

1

1

 

1

1

0

 

0

1

0

 

0

0

0

 

 

 

 

 

 

 

 

 

вэлектрических схемах. Двузначную булеву алгебру можно задать с помощью таблиц сложения (табл. 3.2 а) и умножения (табл. 3.2 б). В булевой терминологии эти две операции часто обозначают как операции OR и AND соответственно. Числа в первой строке и колонке

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

Согласно булевой алгебре выражение для S в табл. 3.1 можно записать следующим образом:

 

¯

¯

¯

¯ ¯

(3.1)

S = (AB + AB)C + (AB + AB)C,

где черта означает «обратный код» (обратным кодом для 0 является 1, а обратным кодом для 1 является 0). Возьмем в качестве примера

ДВОИЧНАЯ СИСТЕМА СЧИСЛЕНИЯ И БУЛЕВА АЛГЕБРА

23

вторую строку в табл. 3.1. Мы имеем:

 

A = 1, B = 1, C = 0.

 

Тогда

¯

¯

 

 

¯

 

 

 

 

 

 

A = 0, B = 0, C = 1.

 

Согласно табл. 3.2 б

 

 

 

 

 

 

¯

 

¯

 

 

 

AB = 0

· 1 = 0, AB = 1 · 0 = 0.

Далее, согласно табл. 3.2 а,

 

 

¯

¯

 

 

 

 

¯

¯

¯

AB + AB = 0 + 0 = 0, AB + AB = 0 = 1,

 

 

¯

¯

 

 

· 0 = 0.

 

 

 

(AB + AB)C = 1

 

Второй член в выражении (3.1) равен 0 ·1 = 0. Тогда конечное значение правой части выражения (3.1) будет 0 + 0 = 0, что равно значению S во второй строке табл. 3.1. Выражение для D можно записать в следующем виде:

¯

¯

(3.2)

D = (AB + AB)C + AB.

Например, для второй строки в табл. 3.1 получим

¯

¯

· 0 + 1

· 1 = 0 + 1 = 1,

(AB + AB)C + AB = 0

что равно значению D в этой строке

Теперь, используя булеву алгебру, опишем простейший сумматор. Рассмотрим систему электрических цепей, каждая из которых может находиться в двух состояниях: «при наличии тока» и «при отсутствии тока» в цепи. Первое состояние соответствует значению 1 двоичной системы отсчета, а второе соответствует значению 0. Используя такую систему цепей, можно записать любое число в двоичной системе. В другой системе цепей может храниться другое двоичное число. На рис. 3.1 левая система ( ) содержит число 2 ((10) в двоичной системе), оно представлено в виде A3A2A1 = 010. Правая система цепей (B) содержит число 3 ((11) в двоичной системе, B3B2B1 = 011). Значение 1 бита соответствует замкнутому

24

ГЛАВА 3

Рис. 3.1. Левая система цепей A3A2A1 содержит число 2. Правая система цепей B3B2B1 содержит число 3

положению переключателя (наличие тока в цепи), а значение 0 соответствует разомкнутому положению выключателя (отсутствие тока в цепи). Между левой и правой системой цепей размещены системы S и D, которые содержат информацию о сумме и переносе соответственно. Основные задачи здесь заключаются в том, как оперировать значениями битов A1 и B1, чтобы получить значения S1 и D1, как оперировать значениями A2, B2 и D1, чтобы получить значения S2 и D2, и т. д. Чтобы осуществить это требуются преобразования (логические вентили), которые действуют согласно формулам (3.1) и (3.2).

Такие вентили можно разработать, используя систему цепей. Представим, что у нас есть три бита A, B и C, которые представлены тремя цепями A, B и C соответственно. На рис. 3.2 в качестве примера продемонстрирован вентиль, который преобразует значения

¯ ¯

битов A, B и C в значение (AB + AB)C (первый член в выраже-

ДВОИЧНАЯ СИСТЕМА СЧИСЛЕНИЯ И БУЛЕВА АЛГЕБРА

25

Рис. 3.2. Логический вентиль, преобразующий значения битов A, B и C

¯¯

взначение (AB + AB)C, показанное в виде тока, протекающего через ключи «gh»

нии (3.2)). Предположим, что ключи «a» и «b» (см. рис. 3.2) замкнуты, если в расположенных рядом катушках нет тока. Если же ток протекает в примыкающей катушке, то магнитное поле катушки заставляет ключ размыкаться. Ключи «c», «d», «e», «f», «g», «h» удерживаются в разомкнутом положении в отсутствии тока в смежных катушках при помощи специальных пружин, а ток в катушках замыкает эти ключи. Пусть значение бита A равно 1, тогда в цепи A протекает ток (см. рис. 3.2). В этом случае ключ «а» разомкнут и через него не

26 ГЛАВА 3

протекает никакой ток. Если же в цепи A тока нет, то ключ «a» замыкается и через него начинает течь ток. Это значит, что протекание

¯

тока через ключ «a» соответствует значению обратного кода A, A.

¯

Соответственно, ток через ключ «b» соответствует значению B. Далее, ток протекает через ключи «e» и «f» только в том слу-

чае, если он присутствует в цепи B, а ключ «a» замкнут. Это значит, что ток, протекающий через ключи «e» и «f», соответствует значе-

¯ ¯

¯

¯

нию AB (AB = 1, если A

= 1 и B = 1, во всех остальных случа-

¯

ях AB = 0). Аналогично вышесказанному, ток, протекающий через

¯

ключи «c» и «d», соответствует значению AB. Ключ «g» замкнут при наличии тока в примыкающей катушке, т. е. если ток протекает хотя бы через одну пару ключей «ef» или «dc». Это значит, что

¯

¯

ключ «g» замкнут, если хотя бы одно из произведений AB или AB

¯

¯

равно 1. Таким образом, ключ «g» замкнут, когда AB + AB = 1,

¯¯

иразомкнут, когда AB + AB = 0. Данное построение представляет собой булево сложение или операцию, называемую «ИЛИ». Ключ «h» замкнут при наличии тока в цепи C, т. е. при C = 1 (этот случай по-

казан на рис. 3.2). Таким образом, ток протекает через ключи «g»

¯

¯

 

и «h» только в том случае, когда AB + AB = 1 и C = 1. Это зна-

 

¯

¯

чит, что ток через ключи «gh» соответствует значению (AB + AB)C.

Подобным образом, используя более сложную схему, можно разместить цепи с токами так, что они будут соответствовать значениям S (3.1) и D (3.2). В современных компьютерах сложные схемы строятся с использованием кремниевых транзисторов, однако принцип работы логических вентилей, преобразующих значения битов, остается тем же самым.

ГЛАВА 4

Квантовый компьютер

В «практическом» цифровом компьютере информация зашифрована в виде строки битов. В квантовых компьютерах элементами, несущими информацию, являются квантовые состояния. Например, можно использовать два состояния атома: основное и возбужденное. Квантовая система может находиться либо в основном состоянии |0 , либо в возбужденном |1 . Может создаться впечатление, что квантовый компьютер обеспечивает только возможность существенно увеличить плотность расположения битов, однако в действительности он предоставляет намного более широкие возможности. Квантовая система может находиться не только в основном или возбужденном состояниях, |0 или |1 , но и в любой линейной комбинации (суперпозиции) этих двух состояний. Поэтому вместо термина «бит» был введен новый термин — «кубит» (квантовый бит). Главное преимущество квантовых вычислений состоит в том, что они позволяют использовать методику квантового параллелизма, который делает квантовые вычисления более производительными, чем даже классические с массовым параллелизмом.

Интересно, а как можно использовать суперпозицию кубитов в детерминированных вычислениях? Действительно, для детерминированных (т. е. имеющих определенный алгоритм) вычислений, рассмотренных выше, можно использовать только основное и возбужденное состояние квантовой системы, поэтому в данном случае разницы между битами и кубитами нет. Новые возможности квантовых вычислений открываются в связи с тем, что вычисление не обязательно должно быть детерминированным. Иногда гораздо удобнее позволить компьютеру выполнять шаги в случайной последовательности. Такой вид вычислений называют вероятностными вычислениями [39]. Обычно существует множество путей получения

28

ГЛАВА 4

конечного ответа, причем каждый способ имеет свою собственную вероятность. Если вероятность быстрых способов достаточно высока, то в большинстве случаев ответ находится быстро. Вероятностные вычисления можно использовать вместо детерминированных вычислений. Например, в настоящее время существует быстрый алгоритм сложения, который используется при детерминированном вычислении, а для разложения чисел на множители быстрых алгоритмов нет. Чтобы найти множители числа, можно либо последовательно перебирать все натуральные числа, начиная с 2 (детерминированный способ), либо проверять числа в случайной последовательности, накладывая на них некоторые ограничения (вероятностный способ).

Если использовать суперпозицию квантовых состояний, то вычисление будет также вероятностным, однако отличным от классического вероятностного вычисления. Квантовая система будет иметь множество способов достижения конечного состояния (конечного результата), но каждый способ можно описать не с помощью вероятности, а с помощью ее амплитуды. Амплитуды вероятностей — это комплексные числа, сумма которых может дать ноль (или амплитуды взаимно уничтожатся). Квантовый компьютер может быть эффективным лишь в том случае, когда вероятность существования правильного ответа высока, а неправильные ответы уничтожают друг друга.

Рассмотрим квантовый алгоритм факторизации Шора на основе обзора Эккерта и Лозы [39]. Эффективность вычисления зависит от времени вычисления как функция размера исходных данных. Алгоритм считается эффективным, если время, затрачиваемое на вычисление, увеличивается не быстрее, чем полиномиальная функция размера исходных данных. Например, для записи числа N необходимо иметь примерно L = log2 N битов. (С помощью L битов можно ввести любое число от 0 до 2L 1.) Если существует эффективный алгоритм вычисления множителей числа N , то он должен иметь число шагов вычисления S, меньшее или равное полиномиальной

функции L. Известно, что любое составное число N имеет множи-

тель, лежащий в диапазоне (1, N ). Если перебирать каждое число

из этой области для нахождения множителя числа N , то потребуется

по меньшей мере S = N = 2L/2 шагов. Функция S(L) имеет экспоненциальную зависимость, поэтому данный детерминированный алгоритм не эффективен. Квантовый компьютер имеет преимущество

КВАНТОВЫЙ КОМПЬЮТЕР

29

перед цифровым в том случае, если квантовый алгоритм эффективен для задачи, которая не имеет эффективного цифрового алгоритма.

Первый эффективный квантовый алгоритм был разработан Шором [19], он предназначался для определения периода некоторой периодической функции. Опишем этот алгоритм, используя простую периодическую функцию f (x), где x принимает только целые значения: 0, 1, 2, . . .. Задача состоит в том, чтобы найти период функции f (x), используя алгоритм Шора. Пусть мы имеем две строки кубитов. Строку, содержащую значения аргумента x, назовем строкой (регистром) X, а строку кубитов со значениями функции — строкой (регистром) Y . В качестве примера возьмем функцию f (x) = cos(πx) + 1 с периодом T = 2. Если аргумент принимает значение x = 5, то f (5) = 0. Эти значения x и f (x) соответствуют следующим состояниям двух регистров X и Y , записанных в двоичной системе при помощи обозначений Дирака:

X : |000 . . . 101 ; Y : |000 . . . 000 .

Далее мы будем использовать следующее обозначение для представления состояний регистров X и Y : |x, f (x) . Тогда для рассмотренного выше случая имеем

|x, f (x) = |000 . . .

101, 000 . . .

000 ,

или в десятичной системе

|x, f (x) = |5, 0 .

В дальнейшем мы также будем использовать более сложные состоя-

ния, |k, f (n) , а также их суперпозицию,

 

k,n ck,n|k, f (n) .

Согласно алгоритму Шора регистр

X находится изначально

в равновероятной суперпозиции всех булевых состояний. Например, если регистр X состоит из трех кубитов, то равновероятная суперпозиция 23 = 8 булевых состояний равна

X : 1 (|000 + |100 + |010 + |001 +

8

+ |011 + |101 + |110 + |111 ). (4.1)

30

ГЛАВА 4

(Значения функции f (x) заранее знать необязательно, так как они вычисляются квантовым компьютером параллельно [19]. Существует стандартный цифровой алгоритм вычисления функции f (x) при любом значении x (см. [39]). Данный цифровой алгоритм может быть реализован при помощи обратимых цифровых операторов (вентилей). Такие операторы можно впоследствии заменить квантовыми логическими вентилями, которые затем можно разложить на совокупность двухкубитовых вентилей CONTROL-NOT и однокубитовых поворотов. Квантовые логические вентили действуют на суперпозицию состояний |x, 0 и создают суперпозицию состояний |x, f (x) (конкретный пример дан в главе 17).) В десятичной системе счисления эту суперпозицию можно записать в виде:

1

(|0 + |1 + |2 + |3 + |4 + |5 + |6 + |7 ).

 

X : 8

(4.2)

Из выражений (4.1) и (4.2) видно, что уже на первом этапе вычислений квантово-механический подход позволяет использовать «суперпозицию чисел», что в принципе невозможно осуществить в цифровом компьютере. Регистр Y , как и раньше, остается в основном состоянии |0 для всех кубитов. После этого вся система XY двух регистров переводится в равновероятную суперпозицию состояний

1

|x, f (x) .

Ψ =

8x

Вдесятичной системе это выражение будет иметь следующий вид:

1

(|0, f (0) + |1, f (1) + |2, f (2) + |3, f (3) +

Ψ =

 

8

 

 

+ |4, f (4) + |5, f (5) + |6, f (6) + |7, f (7) ). (4.3)

На рис. 4.1 представлено состояние суперпозиции (4.3) в виде векторной диаграммы.

Функция Ψ в выражении (4.3) фактически является волновой функцией атомной системы, представляющей регистры X и Y . Да-

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]