Введение в квантовые компьютеры
.pdfДИСКРЕТНОЕ ФУРЬЕ-ПРЕОБРАЗОВАНИЕ |
41 |
Последующие шаги дают следующий результат: |
|
||||||||
|
|
1 |
|
|
|
|
|
|
|
B12A2|2 |
= B12 · √ |
|
(|0 + |1 )|1 |0 = |
|
|
||||
2 |
|
|
|||||||
= √2 |
|0 |1 |0 + e |
|1 |1 |0 , |
|
(5.15) |
|||||
1 |
|
|
iπ/2 |
|
|
|
|
|
|
|
|
|2 = 2 |0 (|0 − |1 )|0 + e |
|1 (|0 − |1 )|0 = |
||||||
A1B12A2 |
|||||||||
|
|
1 |
|
|
|
|
iπ/2 |
|
|1 |1 |0 . |
= 2 |0 |0 |0 −|0 |1 |0 +e |
iπ/2 |
|1 |0 |0 −e |
|||||||
1 |
|
|
|
|
|
|
iπ/2 |
|
|
Оператор B02 в выражении (5.15) не изменяет последнее состояние, т. к. он действует только на состояния |1k1 . Оператор B01 также не изменяет последнее состояние в (5.15), поскольку он действует только на состояния |k11 . Наконец, из состояния |010 после действия оператором A0 получим следующее состояние:
√8 |0 |0 (|0 + |1 ) − |0 |1 (|0 + |1 )+ |
||||
1 |
|
|
|
|
|
|
+ eiπ/2|1 |0 (|0 + |1 ) − eiπ/2|1 |1 (|0 + |1 ) = |
||
|
|
= √8 |
(|000 + |001 ) − (|010 + |011 )+ |
|
1 |
|
|||
|
|
|
|
+ i(|100 + |101 ) − i(|110 + |111 ) . (5.16) |
Теперь, чтобы получить конечную волновую функцию, выполним инверсию кубитов:
1 |
{(|000 + |100 ) − (|010 + |110 )+ |
|
√ |
|
|
|
8 |
|
+ i(|001 + |101 ) − i(|011 + |111 )}. (5.17)
Операция «инверсии кубитов» («инверсии порядка двоичных знаков») означает, например, для случая трех кубитов, что |ijk → |kij .
42 ГЛАВА 5
В действительности квантово-механическая операция «инверсии кубитов» не применяется, вместо этого измеряется состояние регистра X после фурье-преобразования (см. главу 4), а результат измерения считывается в обратном порядке.
В десятичной системе счисления выражение (5.17) выглядит следующим образом:
1 {(|0 + |4 ) − (|2 + |6 ) + i(|1 + |5 ) − i(|3 + |7 )}. (5.18)
√
8
Можно легко проверить, что при |x = |2 выражение (5.18) совпадает с (4.4). Следовательно, группа операторов (5.12) выполняет дискретное фурье-преобразование.
Следует отметить, что для осуществления дискретного фу- рье-преобразования L кубитов требуется подействовать L раз оператором Aj и [0 + (L − 1)]L/2 раз оператором Bjk. Таким образом, число шагов вычисления является квадратичной функцией от L, т. е. данный алгоритм можно считать эффективным.
ГЛАВА 6
Квантовая факторизация целых чисел
Квантовый алгоритм нахождения периода периодической функции был использован Шором [19] для факторизации целых чисел. Опишем этот алгоритм, используя в качестве примера число N = 30. Сначала выберем случайным образом число y так, чтобы наибольший общий делитель чисел N и y был равен 1. (Известно, что если y (1 < y < N ) выбирается случайным образом, то вероятность того, что два числа имеют наибольший общий делитель, равный единице, больше, чем 1/ log2 N [39]. Алгоритм Евклида для нахождения наибольшего общего делителя будет описан ниже.) Рассмотрим периодическую функцию
f (x) = yx (mod N ), x = 0, 1, 2, 3, . . . , |
(6.1) |
где a (mod b) — остаток от деления a/b. Для числа N = 30 выберем случайным образом y = 11. Затем, из выражения (6.1) имеем:
f (0) |
= 1 (mod 30) = 1, |
|
f (1) |
= 11 (mod 30) = 11, |
(6.2) |
f (2) |
= 112 (mod 30) = 1, |
|
т. к. 112 = 121 = 4 · 30 + 1. Далее, |
|
|
|||
f (3) = 113 |
(mod 30) |
= 11, |
(113 = 1331 |
= 44 · 30 + 11), |
(6.3) |
f (4) = 114 |
(mod 30) |
= 1, |
(114 = 14641 |
= 488 · 30 + 1). |
|
Легко видеть, что период T функции f (x) равен T = 2. Его также можно найти при помощи метода, описанного в главе 4. Чтобы найти
44 ГЛАВА 6
множитель числа N , вычислим z = yT /2 = 111 = 11. Наибольший общий делитель чисел (z − 1, N ) = (10, 30) равен 10. Числа 10 и 6 оба являются множителями числа 30. Именно таким путем находятся два множителя числа N при условии, что квантовый алгоритм задает период T для функции f (x).
Данный метод факторизации иногда не выполняется. Например, это происходит тогда, когда период T функции является нечетным числом. Тем не менее было показано, что если y выбирается случайным образом, то вероятность ошибки достаточно мала [39], в частности, в рассмотренном выше случае, т. е. при N = 30, функция f (x) = yx(mod 30) имеет четный период для всех y, взаимно простых вплоть до 30 (1 < y < 30),
T = 2, y = 11, 19, 29,
(6.4)
T = 4, y = 7, 13, 17, 23.
В наших вычислениях нам нужно найти наибольший общий делитель двух чисел, N и y. Рационально это можно сделать, используя алгоритм Евклида. Например, если нам даны числа 12 и 30, то нужно разделить 30 на 12:
30 = 2 · 12 + 6. |
(6.5) |
Затем частное 12 нужно разделить на остаток 6: 126 = 2. (Эту опера-
цию необходимо повторять до тех пор, пока остаток не станет равным нулю.) Последний ненулевой остаток (в нашем примере он равен 6) является наибольшим общим делителем.
ГЛАВА 7
Логические вентили
Любое преобразование битов или кубитов может быть реализовано в аппаратном обеспечении при помощи комбинации простейших логических вентилей. Для цифрового компьютера простейшим логическим вентилем (оператором) является однобитовый вентиль NOT («НЕ») (вентиль с одним входным битом). Таблица истинности для начальных (входных) и конечных (выходных) значений, ai и bf , дана в табл. 7.1. Данный вентиль изменяет значение бита по следующему правилу:
bf = a¯i, ai = 0, 1. |
(7.1) |
При использовании электрических схем вентиль НЕ может быть реализован так, как показано на рис. 7.1. Здесь ключ, принадлежащий верхней цепи, замкнут (bf = 1), когда ток в нижней цепи отсутствует (ai = 0). Если же ai = 1, т. е. ключ в нижней цепи замкнут, то магнитное поле катушки размыкает ключ в верхней цепи и bf = 0.
Простейшие двухбитовые вентили соответствуют булевым операциям умножения и сложения. (Таблица истинности для булева умножения представлена в табл. 7.2.) Данная таблица соответствует таблице истинности логической операции AND («И»), если считать 0 «ложью», а 1 «истиной», поэтому данный логический вентиль назывется «вентилем AND».
Таблица 7.1. Таблица истинности для вентиля NOT
ai |
|
bf |
0 |
|
1 |
1 |
|
1 |
46 |
ГЛАВА 7 |
Рис. 7.1. Физическая реализация вентиля NOT
Таблица истинности для второго двухбитового вентиля (булево сложение) соответствует логической операции OR («ИЛИ»). На рисунках 7.2 и 7.3 даны реализации вентилей, представленных в табл. 7.2
и7.3.
Таблица 7.2. Таблица истинности для булева умножения (вентиль AND)
ai |
bi |
|
cf |
|
0 |
0 |
|
0 |
|
|
|
|
|
cf = aibi |
0 |
1 |
|
0 |
|
1 |
0 |
|
0 |
|
|
|
|
|
|
1 |
1 |
|
1 |
|
|
|
|
|
|
Для вентиля AND ключи в верхней цепи замкнуты, если они притягиваются смежными катушками. Поэтому ток в верхней цепи
ЛОГИЧЕСКИЕ ВЕНТИЛИ |
47 |
(cf = 1) присутствует только в том случае, когда он протекает в обеих нижних цепях (ai = bi = 1). В схеме, соответствующей вентилю OR, ток в нижнем сегменте (ci = 1) протекает в том случае, если один из ключей, ai или bi, или оба они сразу, замкнуты (ai = 1 или bi = 1, или ai = bi = 1).
Таблица 7.3. Таблица истинности для булева сложения (вентиль OR)
|
ai |
bi |
|
cf |
|
|
0 |
0 |
|
0 |
|
|
0 |
1 |
|
1 |
cf = ai + bi |
|
1 |
0 |
|
1 |
|
|
|
|
|
|
|
|
1 |
1 |
|
1 |
|
|
|
|
|
|
|
Таблица 7.4. Таблица истинности для вентиля EXCLUSIVE-OR («исключа- |
|||||
ющее ИЛИ») |
|
|
|
|
|
|
|
|
|
|
|
|
ai |
bi |
|
cf |
|
|
0 |
0 |
|
0 |
|
|
|
|
|
|
cf = ai bi |
|
0 |
1 |
|
1 |
|
|
1 |
0 |
|
1 |
|
|
1 |
1 |
|
0 |
|
|
|
|
|
|
|
При помощи комбинации этих трех простых вентилей можно построить любую таблицу истинности. Например, предположим, что нам нужен вентиль EXCLUSIVE-OR или просто XOR («исключающее ИЛИ»). Данная операция обозначается знаком ,
cf = ai bi, |
(7.2) |
и соответствует остатку от суммы, деленной пополам. Она дает значе-
48 |
ГЛАВА 7 |
Рис. 7.2. Физическая реализация вентиля AND
ние на выходе cf = 1, если одно из входных значений равно единице. Во всех остальных случаях на выходе будет ноль.
Чтобы образовать вентиль XOR, можно записать для него таблицу истинности через булевы операции. Две строки в табл. 7.4 дают cf = 1: вторая, со значениями ai = 0, bi = 1, и третья, со значениями ai = 1, bi = 0. Вторая строка соответствует произведе-
¯
нию a¯ibi, а третья — произведению aibi. Конечное выражение имеет вид:
¯
cf = a¯ibi + aibi.
Например, если ai = 1, а bi = 0, то
¯ ¯
a¯i = 0, bi = 1, a¯ibi = 0, aibi = 1,
¯
a¯ibi + aibi = 1.
(7.3)
(7.4)
Операция, записанная в выражении (7.3), может быть реализована при помощи вентилей AND, NOT и OR. Если замкнуть ключ «h»
ЛОГИЧЕСКИЕ ВЕНТИЛИ |
49 |
Рис. 7.3. Физическая реализация вентиля OR
(см. рис. 3.2) и подставить вместо A и B значения ai и bi, то наличие или отсутствие тока в нижней цепи будет соответствовать таблице истинности для вентиля XOR.
ГЛАВА 8
Реализация логических вентилей
сиспользованием транзисторов
Вэтой главе, следуя книге [46], приводятся элементарные сведения о физике полупроводниковых логических вентилей. В обычных компьютерах транзисторы используются в качестве переключателей. Транзисторы изготавливают из полупроводников, обычно из кремния, с добавлением небольшого количества примесей. Если
врезультате введения примеси появляется избыток электронов (полупроводник n-типа), то в зоне проводимости (область разрешенной энергии (для электронов), внутри которой может течь ток) возникают свободные отрицательные заряды. Если в результате введения примеси наблюдается нехватка электронов (полупроводник p-типа), то в валентной зоне появляются дополнительные «дырки», которые ведут себя как положительные заряды. Если соединить вместе кристаллы полупроводников n- и p-типа, то электроны смогут двигаться только от полупроводника n-типа к полупроводнику p-типа. Таким образом, данная система проводит ток только в том случае, если отрицательная клемма батареи соединена с полупроводником n-типа (рис. 8.1). Кремний является классическим примером полупроводника. Он имеет четыре валентных электрона. Если добавить в кремний небольшое количество фосфора, имеющего пять валентных электронов, то, поскольку в кристаллической решетке кремния только четыре из этих электронов удерживают атомы в узлах, каждый примесный атом связывает четыре атома кремния; пятый электрон атома фосфора может свободно двигаться. Таким образом мы получаем избыток электронов. Этот полупроводник называется полупроводником n-типа. Если добавить бор, который имеет 3 валентных электрона, то он захватывает дополнительный электрон. Данный примесный атом будет связан с четырьмя атомами кремния, но теперь
