Решения задач
Из раздела 8
8.1 Пусть , и
для всех
. Нам нужно оценить величину
![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,](/sites/default/files/tex_cache/e5be2a3c75ac6ac4d68251d7db592987.png)
![M](/sites/default/files/tex_cache/69691c7bdcc3ce6d5d8a1361f22d04ac.png)
![k](/sites/default/files/tex_cache/8ce4b16b22b58894aa86c421e8759df3.png)
![m](/sites/default/files/tex_cache/6f8f57715090da2632453988d9a1501b.png)
![s](/sites/default/files/tex_cache/03c7c0ace395d80182db07ae2c30f034.png)
Если более половины регистров ответа исходной схемы содержат , то результатом применения
обязательно будет
. Поэтому, аналогично (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*}](/sites/default/files/tex_cache/fcf8920e43017639f8f6cc77ffee990a.png)
8.2 Поскольку , имеем цепочку равенств:
Оператор умножает
на
, а остальные базисные векторы не меняет.
Если сделать замену базиса только в управляющем q-бите, как показано на рисунке ниже, то получится оператор, который является произведением отрицаний в обоих q-битах и "оператора диффузии" (в
"Определение квантового вычисления. Примеры"
мы обозначали его ). Действительно,
![\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*}](/sites/default/files/tex_cache/446f77f0dda8786dcaa4cd5d58779f37.png)
На рисунке слева показана схема вычисления такого оператора, а справа — его матрица в стандартном базисе:
8.3 . Классическое вероятностное вычисление можно представить обратимой схемой
, которая, наряду со входом
, использует случайную последовательность нулей и единиц
. (Кроме полезного ответа, схема может создавать мусор — это неважно). Заменим перестановки
на соответствующие унитарные операторы
, а вместо случайного слова
приготовим состояние
![\ket\psi = H^{\otimes s}\ket{0^s} = 2^{-s/2}\sum_{r\in\cb^s}\ket{r}.](/sites/default/files/tex_cache/38ed813ead67daa74f0cf1127d335c68.png)
. Пусть схема
вычисляет предикат
с вероятностью ошибки
, общее число битов в схеме равно
, а
. Вероятность получения ответа 1 выражается через проектор
, примененный к первому q-биту:
![]() |
( *) |
![V_{L},\dots,V_{-L}](/sites/default/files/tex_cache/fcf181f237869c6c2fe7ea50055df86d.png)
![U_1^\dagger,\dots,\Pi^{(1)}[1],\dots](/sites/default/files/tex_cache/140c1d86f24b847afc476b268c6db542.png)
![\dots,U_1](/sites/default/files/tex_cache/72652a5f2932265bfe88ba5efee5b231.png)
![U_k=H[m]](/sites/default/files/tex_cache/91141776d5fe78191cffb67426d6cf25.png)
![U_k^\dagger=H[m]](/sites/default/files/tex_cache/d5f4640e7046f279740dd11155bb8fd3.png)
![V_j](/sites/default/files/tex_cache/7ea483603117938601e6502688bf45c3.png)
![\sqrt{2}H[m]](/sites/default/files/tex_cache/d615ee411f3239a16c2bf4f0fc503a17.png)
![H](/sites/default/files/tex_cache/c1d9f50f86825a1a2302ec2449c17196.png)
![h](/sites/default/files/tex_cache/2510c39011c5be704182423e3a695e91.png)
Матричные элементы операторов ,
принадлежат множеству
![M=\{0,\, +1,\, -1,\, +i,\, -i\}.](/sites/default/files/tex_cache/aeaffb1de84821c306258671955290ba.png)
![M](/sites/default/files/tex_cache/69691c7bdcc3ce6d5d8a1361f22d04ac.png)
![p(x)](/sites/default/files/tex_cache/4130c89f2d12c3ac81aba3adbff28685.png)
![\pm 1](/sites/default/files/tex_cache/967ffa3ca82c4b8aad1075067fb3fec5.png)
![\#_a(x)=|\{w:C_a(x,w)=1\}|, \quad a\in\{\pm1\},](/sites/default/files/tex_cache/8bf11982915a171e24019e400be8c013.png)
![C_a(x,w)\in\P](/sites/default/files/tex_cache/8f5c8d12589cd46410d1c9d26c9cc09f.png)
![p(x)=2^{-h}(\#_1(x)-\#_{-1}(x)).](/sites/default/files/tex_cache/89edf56936fd47efd8d2abb74d9bb681.png)
![(*)](/sites/default/files/tex_cache/859f164597f4d6b962c31c0a6de81c4a.png)
Теперь опишем предикаты формально. Матричные элементы произведения
можно выразить по формуле (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}.](/sites/default/files/tex_cache/7ba920a9e72ef921a7f4f70dc07a6f15.png)
![C_a(u_{-L},\dots,u_{L})](/sites/default/files/tex_cache/d3e1656106ce879eba4b7d52b03bfd4b.png)
![u_{-L}=u_{L}=(x,0^{N-n}),\quad \prod_{j=-L+1}^{L}(V_{j})_{u_{j}u_{j-1}} =a.](/sites/default/files/tex_cache/f0c6b55fac4f665a1b8cef5226698ba7.png)
![C_a\in\P](/sites/default/files/tex_cache/59986f335344c938850f0096a087a786.png)
![i](/sites/default/files/tex_cache/865c0c0b4ab0e063e5caa3387c1a8741.png)
Если , то
; если
, то
. Итак,
тогда и только тогда, когда
![p(x)=2^{-h}(\#_1(x)-\#_{-1}(x))>\frac{1}{2}.](/sites/default/files/tex_cache/edc6e3dd80e408cf4efed62f5913240b.png)
![\#_{-1}(x)+2^{h-1}<\#_{1}(x).](/sites/default/files/tex_cache/1aa629a9d3d41dd6d1ab99e0d6d809b7.png)
Записанное неравенство почти соответствует определению класса : остается лишь проверить, что левая часть представима в виде
,
(для правой части это уже доказано). Функции
такого вида образуют так называемый класс
. Покажем, что этот класс замкнут относительно сложения. Пусть
,
, тогда
![\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*}](/sites/default/files/tex_cache/f840e29cca71bb32a3184e4fffe4bcca.png)
. Это очевидно. Заведем два счетчика: один для
, другой — для
. Перебираем все возможные значения
и увеличиваем значения счетчиков для
, если
. Потом сравниваем значения счетчиков.
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'')},](/sites/default/files/tex_cache/1bb3bab25abf5be42b172979f1f7d458.png)
![&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](/sites/default/files/tex_cache/100d5e1f082acf734da6d2c3f730dfda.png)
Организуем рекурсивное вычисление, используя формулу .
- Вычисляем
,
,
, последнее представляем приближенно
двоичными цифрами. Запоминаем результаты вычисления в дополнительных q-битах.
- Применяем к первому q-биту регистра
, в котором нужно создать
, оператор
- В остальных
битах создаем состояние, зависящее от значения первого бита: если он равен 0, то создаем состояние
, в противном случае создаем
.
- Проводим вычисление, обратное к шагу 1, чтобы очистить дополнительную память.
Оператор реализуется приближенно. Пусть
. Тогда
с точностью
. Итак, приближенно оператор
представляется произведением операторов
, где
-й разряд числа
управляет применением оператора
.
Общая точность такой схемы равна ; размер, выраженный через длину входа и точность, —
.
Пункт в). Приведем реализацию преобразования Фурье, найденную Копперсмитом и, независимо, Дойчем, в изложении П. Шора [39].
Занумеруем q-биты в убывающем порядке от до
. Обозначим
![H_j=H[j],\qquad S_{j,l}=\Lambda^2\bigl(e^{i\pi/2^{l-j}}\bigr)[j,l]\quad (j<l).](/sites/default/files/tex_cache/e141ded89468f8d854ffe6c4c70ecd24.png)
![\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*}](/sites/default/files/tex_cache/7abe4587bb315acf0ae4683070ef0f24.png)
![U_k=RV_k](/sites/default/files/tex_cache/2e52b4c467b6ca84ac09d1bee7455a33.png)
![R](/sites/default/files/tex_cache/e1e1d3d40573127e9ee0480caf1283d6.png)
![O(n^2)](/sites/default/files/tex_cache/9f84a66d88d24c3b1bc91df5b5346a13.png)
Легко видеть, что модули матричных элементов определяются количеством операторов
, так что они равны
, как и требуется. Осталось проверить фазовые множители. Пусть
![\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)).](/sites/default/files/tex_cache/e66a983c5b65b28121ce8164c67b1d4f.png)
![V_k](/sites/default/files/tex_cache/e60bc493da0ec3fc7e3b8414758ee218.png)
![H_j](/sites/default/files/tex_cache/0fda905a8eaa285d890e74b373493ca7.png)
![\pi](/sites/default/files/tex_cache/4f08e3dba63dc6d40b22952c7a9dac6d.png)
![x_j=y_j=1](/sites/default/files/tex_cache/37292c480bf52c0762dc5d60d0fcae30.png)
![S_{j,l}](/sites/default/files/tex_cache/b958af8c3245485930be2710d8e46beb.png)
![\pi/2^{l-j}](/sites/default/files/tex_cache/6ca5551a1e0db28a3910f741cf9253d3.png)
![x_j=y_l=1](/sites/default/files/tex_cache/b8d24b27146acda3d2f41f5598826e1a.png)
![2\pi](/sites/default/files/tex_cache/c3198a6dbef629ca31403b4ccdff3fc7.png)
![\phi](/sites/default/files/tex_cache/1ed346930917426bc46d41e22cc525ec.png)
![\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*}](/sites/default/files/tex_cache/dfab0c41d46d9cbc90710d52b8b7efe8.png)
![y](/sites/default/files/tex_cache/415290769594460e2e485922904f345d.png)
![xy/2^n](/sites/default/files/tex_cache/6937672c174fe9bad3963d3c3931f279.png)