Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Лекция 10 - Квантовые вычисления.ppt
Скачиваний:
0
Добавлен:
04.06.2026
Размер:
13.09 Mб
Скачать

Алгоритм ускоренного поиска (алгоритм Гровера)

Рассмотрим решение уравнения

, где функция f(x) принимает значения {0,1},

но только при одном значении.

f (x) 1

 

Для решения задачи будем использовать регистр из n кубитовых ячеек. Состояние системы в общем виде можно записать так

где

амплитуда i-го состояния. f (xi ) 1, f (x j ) 0, j i

 

2n 1

0

 

x0

1

 

x1

2n 1

 

x2n 1

 

 

 

 

i

 

xi

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i 0

 

 

 

 

 

 

 

 

 

i

22

Идея алгоритма Гровера состоит в том, чтобы увеличить, например, │λx│ за счет других │λi│.

Этого можно добиться k кратным преобразованием диффузии.

[ψ>=DD…D[ψ1>,

где [ψ1> – начальный вектор состояния, D – матрица преобразования.

В основе оператора диффузии лежит метод – Инверсия относительно среднего

23

Математическое преобразование - инверсия относительно среднего (ИОС)

Пусть задан вектор v v1,v2 , ,vN каждая координата которого

 

1

 

 

v

 

 

i=1,2,…,N , но

 

 

i

 

N

 

 

 

 

 

vx

Vx

vi

1

для

i x

и vx

1

 

N

N

 

 

 

 

 

 

 

Пусть

а

1

vi

- среднее значение.

 

N

 

 

 

 

i

 

 

 

 

Изменим состояние вектора

 

 

vi vi

2a a (a vi )

Это и есть инверсия относительно среднего

Пример. N=16, vi=1/4. vx=-1/4.

Находим а=14/64. тогдаvi 6 / 32 2 /10

vx 22 / 32 7 /10

Пример ИОС

a=7/27

9/27

-9/27

5/27 23/27

N=9, vi=1/3, vx= -1/3

Среднее значение a=7/27 После ИОС получаем v’i=5/27, vx=23/27

25

Примеры применения процедуры ИОС при разны N=2n

n=7

n=8

n=9

n=10

26

Этапы алгоритма Гровера

Создаем регистр из n кубитов и устанавливаем все

 

азряды в состояние

 

 

 

 

0

 

 

0 (n)

 

 

 

 

 

 

 

Применяем преобразование

 

 

 

 

 

 

Адамара, получаем состояние

 

 

ждой ячейки

 

 

1

 

1

(

 

0

 

1 )

 

 

 

 

 

 

 

 

 

2

 

 

 

-

равновероятное состояние.

 

 

 

 

 

 

 

 

 

 

U ( 1)f (x)

. Находим значение функции f(x), применяя оператор

ри х=х0 f(x0)=1 и U=-1, при других х f(x)=0 и U=1.

сли U=1, то ячейка остается в исходном состоянии, если =-1, то изменяет состояние.

Применяем оператор к регистру

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(

 

0

 

 

1 ), если f (x) 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f ( x)

 

 

f (x)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

U

 

1

 

(

0 ( 1)

 

 

1 ( 1)

 

)

1

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(

0

 

1 ), если f (x) 1,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

се состояния равновероятные, но одно из них противо- оложное другим состояниям. Нужно повысить его вероятность. рименяем метод усиления амплитуды (инверсии относительно реднего.)

27

Пример алгоритма Гровера

• Задана булева функция от 3 аргументов

f (x) f (x1, x2 , x3 ) , которая принимает значение 1 только при одном наборе аргументов.

Нужно найти это состояние. Решение.

1 этап. Подготавливает начальное состояние

0

 

 

0,0, .0

, т.е. все ячейки квантового регистра

 

устанавливаются в состоянии 0. Или все кубиты в нулевом состоянии.

 

0

0

 

x0

1

 

x1

2n 1

x2n 1

1

 

x0

0

 

x1

0

x2n 1

 

 

 

 

 

 

 

 

 

 

29

Представление булевой функции таблицей истинности

x

x3

x2

x1

y=f(x1,x2,x3)

 

 

 

 

 

 

 

 

 

x0

0

0

0

0

x1

0

0

1

0

x2

0

1

0

0

x3

0

1

1

0

x4

1

0

0

0

x5

1

0

1

0

x

1

1

0

0

6

 

 

 

 

x7

1

1

1

1

30

Далее рассмотрим преобразование для функции от 3-х аргументов

2 этап. Приготавливаем смесь равновероятных состояний

 

 

 

 

1

1

1

1

1

1

1

1

 

1

 

0,354

 

 

 

 

 

 

 

1

1

1

1

1

1

1

1

0

 

 

0,354

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

1

1

1

1

 

 

0

 

 

0,354

 

 

 

 

 

 

 

1

 

 

 

1 H3

0

 

 

1

 

1

1

1

1

1

1

1

1

 

0

 

 

0,354

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 2

 

1

1

1

1

1

1

1

1

0

 

 

0,354

 

 

 

 

 

 

 

 

 

 

 

1

1

1

1

1

1

1

1

 

0

 

 

0,354

 

 

 

 

 

 

 

1

1

1

1

1

1

1

1

 

0

 

 

0,354

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

1

1

1

1

 

 

0

 

 

0,354

 

 

 

 

 

 

 

1

 

 

 

 

 

Состояние 1 является суперпозицией 2n возможных состояний системы из n кубитов.

Представление нулевого состояния 1,2, 3-кубитного регистра вектором, используем Кронекерово произведение

32