Московский государственный университет имени М.В.Ломоносова
Опубликован: 15.03.2007 | Доступ: свободный | Студентов: 611 / 26 | Оценка: 5.00 / 4.50 | Длительность: 19:30:00
Специальности: Программист
Дополнительный материал 1:

Решения задач

< Лекция 14 || Дополнительный материал 1: 12345678910

Из раздела 8

8.1 Пусть \sum_{z}^{} \Bigl|\langle F(x),z|\,U\,|x,0^{N-n}\rangle\Bigr|^2 = 1-\eps_x, и \eps_x\leq\eps<1/2 для всех x. Нам нужно оценить величину

p(x)=\mkern-15mu\sum_{\scriptstyle\begin{gathered} \scriptstyle f_1,\dots,f_k\\[-8pt] \scriptstyle z_1,\dots,z_k\end{gathered}}^{} \Bigl| \langle f_1,z_1,\dots,f_k,z_k, F(x), 0^{s} |\,MU^{\otimes k}\,| (x,0^{N-n})^{k}, 0^{m+s}\rangle \Bigr|^2,
где M — оператор, реализующий применение функции MAJ к соответственным битам k регистров ответа исходной схемы и записывающий значение этой функции в регистр окончательного ответа. (Длина ответа равна m, а s дополнительных битов используются при вычислении MAJ).

Если более половины регистров ответа исходной схемы содержат F(x), то результатом применения M обязательно будет F(x). Поэтому, аналогично (3.1), имеем

\begin{multiline*} 1-p(x)\leq\\ \leq\mkern-5mu \sum_{\scriptstyle \begin{gathered} \scriptscriptstyle S\subseteq\{1,\dots,k\},\\[-7pt] \scriptscriptstyle|S|\leq k/2\end{gathered}} \sum_{\scriptstyle \begin{gathered} \scriptscriptstyle f_1,\dots,f_k,\\[-7pt] \scriptscriptstyle f_j=F(x)\,\Leftrightarrow\,j\in S\end{gathered}} \sum_{z_1,\dots,z_k} \Bigl| \langle f_1,z_1,\dots,f_k,z_k |U^{\otimes k}| (x,0^{N-n})^{k}\rangle \Bigr|^2=\\ =\mkern-5mu \sum_{\scriptstyle\begin{gathered} \scriptscriptstyle S\subseteq\{1,\dots,k\},\\[-6pt] \scriptscriptstyle|S|\leq k/2\end{gathered}} (1-\eps_x)^{|S|}\eps_x^{k-|S|}= \bigl((1-\eps_x)\eps_x\bigr)^{k/2} \sum_{\scriptstyle\begin{gathered} \scriptscriptstyle S\subseteq\{1,\dots,k\},\\[-6pt] \scriptscriptstyle|S|\leq k/2\end{gathered}} \left(\frac{\eps_x}{1-\eps_x}\right)^{k/2-|S|}\leq\\ \leq\left(\sqrt{(1-\eps_x)\eps_x}\right)^k 2^k\,\leq\,\lambda^k, \quad \text{где }\lambda=2\sqrt{(1-\eps)\eps.} \end{multiline*}

8.2 Поскольку H^2=I, имеем цепочку равенств:


Оператор \Lambda(\sz) умножает \ket{1,1} на -1, а остальные базисные векторы не меняет.

Если сделать замену базиса только в управляющем q-бите, как показано на рисунке ниже, то получится оператор, который является произведением отрицаний в обоих q-битах и "оператора диффузии" (в "Определение квантового вычисления. Примеры" мы обозначали его V ). Действительно,

\begin{equation*} H[1]\Lambda(\sx)[1,2]H[1]\ket{a,b}&= H[1]\Lambda(\sx)[1,2] \frac{1}{\sqrt2}\sum_{c}^{}(-1)^{ac}\ket{c,b}=\\ =H[1]\frac{1}{\sqrt2}\sum_{c}^{}(-1)^{ac}\ket{c,b\oplus c}&= \frac{1}{2}\sum_{c,d}^{}(-1)^{(a+d)c}\ket{d,b\oplus c}=\\ &=\frac{1}{2}\sum_{c,b'}^{}(-1)^{(a+d)(b+b')}\ket{d,b'}. \end{equation*}

На рисунке слева показана схема вычисления такого оператора, а справа — его матрица в стандартном базисе:


8.3 \BPP\subseteq\BQP. Классическое вероятностное вычисление можно представить обратимой схемой (U_1,\dots,U_L), которая, наряду со входом x, использует случайную последовательность нулей и единиц r\in\cb^s. (Кроме полезного ответа, схема может создавать мусор — это неважно). Заменим перестановки U_j на соответствующие унитарные операторы \hat U_j, а вместо случайного слова r приготовим состояние

\ket\psi = H^{\otimes s}\ket{0^s} = 2^{-s/2}\sum_{r\in\cb^s}\ket{r}.

\BQP\subseteq \PPP. Пусть схема (U_1,\dots, U_L) вычисляет предикат F(x) с вероятностью ошибки \le 1/3, общее число битов в схеме равно N, а |x|=n. Вероятность получения ответа 1 выражается через проектор \Pi^{(1)}=\ket{1}\bra{1}, примененный к первому q-биту:

\begin{equation*} p(x) =\,& \langle x,0^{N-n} | U_1^\dagger U_2^\dagger\cdot\ldots\cdot U_L^\dagger \,\Pi^{(1)}[1]\, U_LU_{L-1}\cdot\ldots\cdot U_1 |  x,0^{N-n} \rangle =\\ =\,& 2^{-h} \langle x,0^{N-n} | V_{L}V_{L-1}\cdot\ldots\cdot V_{-L+1}V_{-L} |  x,0^{N-n} \rangle. \end{equation*} ( *)
Здесь V_{L},\dots,V_{-L} — перенумерованные операторы U_1^\dagger,\dots,\Pi^{(1)}[1],\dots \dots,U_1 с одним исключением: если U_k=H[m] (или U_k^\dagger=H[m] ), то соответствующий оператор V_j равен \sqrt{2}H[m] ; количество элементов H в схеме обозначено через h.

Матричные элементы операторов V_j\in\{\sqrt{2}H,K,K^\dagger,\QXOR,\Lambda^2(\sx), \Pi^{(1)}\} принадлежат множеству

M=\{0,\, +1,\, -1,\, +i,\, -i\}.
Перемножая матрицы, мы получаем сумму чисел из множества M. Поскольку интересующая нас величина p(x) вещественная, мы можем ограничиться суммированием \pm 1. Кратности слагаемых будут выражаться в виде
\#_a(x)=|\{w:C_a(x,w)=1\}|, \quad a\in\{\pm1\},
где предикаты C_a(x,w)\in\P определены ниже. Получаем представление
p(x)=2^{-h}(\#_1(x)-\#_{-1}(x)).
Дальнейшее приведение условия (*) к виду из определения класса PPP уже не будет использовать никакой квантовой специфики.

Теперь опишем предикаты C_a(x,w) формально. Матричные элементы произведения V_L\cdot\ldots\cdot V_{-L} можно выразить по формуле (5.1)

\left(V_L\cdot\ldots\cdot V_{-L}\right)_{xy}= \sum_{x_{L-1},\dots, x_{-L+1}}^{} (U_L)_{xx_{L-1}}\cdot\ldots\cdot (U_{-L})_{x_{-L+1}y}.
По определению, C_a(u_{-L},\dots,u_{L}) равно 1, если и только если
u_{-L}=u_{L}=(x,0^{N-n}),\quad \prod_{j=-L+1}^{L}(V_{j})_{u_{j}u_{j-1}} =a.
Легко видеть, что C_a\in\P: нужно представлять матричные элементы как степени i и суммировать показатели степеней по модулю 4.

Если F(x)=0, то p(x)\le 1/3 ; если F(x)=1, то p(x)\ge 2/3. Итак, F(x)=1 тогда и только тогда, когда

p(x)=2^{-h}(\#_1(x)-\#_{-1}(x))>\frac{1}{2}.
Это эквивалентно условию
\#_{-1}(x)+2^{h-1}<\#_{1}(x).

Записанное неравенство почти соответствует определению класса \PPP: остается лишь проверить, что левая часть представима в виде f(x)=|\{y:R(x,y)=1\}|, R(\cdot,\cdot)\in\P (для правой части это уже доказано). Функции f такого вида образуют так называемый класс \#\P. Покажем, что этот класс замкнут относительно сложения. Пусть g(x)\double=|\{y:Q(x,y)=1\}|, Q(\cdot,\cdot)\in\P, тогда

\begin{align*} f(x)+g(x)&= |\{y:T(x,zy)=1\}|,\\ &\mbox{где } T(x,0y)=R(x,y),\T(x,1y)=Q(x,y). \end{align*}
Доказательство закончено.

\PPP \subseteq \PSPACE. Это очевидно. Заведем два счетчика: один для R_0, другой — для R_1. Перебираем все возможные значения y и увеличиваем значения счетчиков для R_k, если R_k(x,y)=1. Потом сравниваем значения счетчиков.

8.4 Пункт а) следует из пункта б). Для б) приведем схему, которая дает приближенное решение. Прежде всего, запишем рекуррентную формулу

\rlap{\displaystyle \ket{\psi_n(q)}=\cos\vartheta\ket0\otimes\ket{\psi_{n-1}(q')}+ \sin\vartheta\ket1\otimes\ket{\psi_{n-1}(q'')},
где
&q'=2^{n-1},   & &q''=q-2^{n-1}, & &\vartheta=\arccos\sqrt{q'/q}, & &\text{если } q>2^{n-1}; \notag\\[-3pt] &q'=q,   & &q''=1, & &\vartheta=0, & &\text{если } q\leq2^{n-1}. \notag

Организуем рекурсивное вычисление, используя формулу (*).

  1. Вычисляем q', q'', \vartheta/\pi, последнее представляем приближенно l двоичными цифрами. Запоминаем результаты вычисления в дополнительных q-битах.
  2. Применяем к первому q-биту регистра \ket{0^n}, в котором нужно создать \ket{\psi_n(q)}, оператор
    R(\vartheta)=\leftp\begin{array}{rr} \cos\vartheta&-\sin\vartheta\\ \sin\vartheta & \cos\vartheta \end{array}  \rightp.
  3. В остальных n-1 битах создаем состояние, зависящее от значения первого бита: если он равен 0, то создаем состояние \ket{\psi_{n-1}(q')}, в противном случае создаем \ket{\psi_{n-1}(q'')}.
  4. Проводим вычисление, обратное к шагу 1, чтобы очистить дополнительную память.

Оператор R(\vartheta) реализуется приближенно. Пусть \vartheta/\pi=\sum_{k=1}^{l} a_k 2^{-k}. Тогда R(\vartheta)\approx R(\pi/2^{l})^{a_{l}} \cdot\ldots\cdot R(\pi/2)^{a_{1}} с точностью O(2^{-l}). Итак, приближенно оператор R(\vartheta) представляется произведением операторов \Lambda(R(\pi/2^{k})), где k -й разряд числа \vartheta/\pi управляет применением оператора R(\pi/2^{k}).

Общая точность такой схемы равна \delta=O(n2^{-l}) ; размер, выраженный через длину входа и точность, — \poly(n+\log(1/\delta)).

Пункт в). Приведем реализацию преобразования Фурье, найденную Копперсмитом и, независимо, Дойчем, в изложении П. Шора [39].

Занумеруем q-биты в убывающем порядке от n-1 до 0. Обозначим

H_j=H[j],\qquad S_{j,l}=\Lambda^2\bigl(e^{i\pi/2^{l-j}}\bigr)[j,l]\quad (j<l).
Тогда оператор
\begin{multiline*} V_k= H_0S_{0,1}S_{0,2}\cdot\ldots\cdot S_{0,n-2}S_{0,n-1} H_1S_{1,2}\cdot\ldots\cdot S_{1,n-1}\cdot\ldots\\ \ldots\cdot H_{n-3}S_{n-3,n-2}S_{n-3,n-1}H_{n-2}S_{n-2,n-1}H_{n-1} \end{multiline*}
дает почти то, что нужно: U_k=RV_k, где R — (классический) оператор, переписывающий двоичное слово в обратном порядке. Размер такой схемы O(n^2).

Легко видеть, что модули матричных элементов V_k определяются количеством операторов H_j, так что они равны 1/\sqrt{k}, как и требуется. Осталось проверить фазовые множители. Пусть

\left(V_k\right)_{(x_{n-1}\dots x_0, y_{n-1}\dots y_0)}= \frac{1}{\sqrt{k}}
				\exp(i\cdot 2\pi\phi(x_{n-1},\dots, x_0, y_{n-1},\dots, y_0)).
Заметим, что каждый матричный элемент V_k есть произведение матричных элементов сомножителей. Применение H_j меняет фазу на \pi тогда и только тогда, когда x_j=y_j=1 ; применение S_{j,l} добавляет к фазе \pi/2^{l-j} только в том случае, когда x_j=y_l=1. Изменение фазы на 2\pi ни на что не влияет, поэтому вычислим \phi по модулю 1.
\begin{align*} &\phi(x_{n-1},\dots,x_0, y_{n-1},\dots,y_0) =\mkern-2mu\sum_{j=0}^{n-1}\frac{x_j y_j}{2}+\mkern-7mu \sum_{0\leq j<l<n}^{}\frac{x_j y_l}{2^{l-j+1}}=\\[-3pt] &=\mkern-7mu \sum_{0\leq j\leq l<n}^{}\frac{x_j y_l}{2^{l-j+1}}=\mkern-7mu \sum_{0\leq j+m<n}^{}\frac{x_j y_{n-1-m}}{2^{n-j-m}}=\\ \intertext{(здесь равенство по модулю 1)} &=\sum_{j,m=0}^{n-1} \frac{x_j y_{n-1-m}}{2^{n-j-m}}  =2^{-n}\sum_{j=0}^{n-1}2^jx_j \sum_{m=0}^{n-1}2^my_{n-1-m}. \end{align*}
После того, как мы перепишем слово y в обратном порядке, последнее выражение превращается в xy/2^n.

< Лекция 14 || Дополнительный материал 1: 12345678910