Россия, Сургут, Сургутский Государственный Университет, 2017 |
Квантовое преобразование Фурье
На Шаге 2 применим трансформацию Адамара:
![H|0 \rangle=\frac{1}{\sqrt2}|0 \rangle+\frac{1}{\sqrt2}|1 \rangle\\
H|1 \rangle=\frac{1}{\sqrt2}|0 \rangle-\frac{1}{\sqrt2}|1 \rangle](/sites/default/files/tex_cache/1353c81e38da42df637163c9a782549e.png)
к последнему биту. В результате получим:
![\sum_{p=0}^{2^{n-2}-1}\frac{a_p^g}{\sqrt2}|p_o\dots p_{n-3}\rangle|00\rangle+\frac{a_p^g}{\sqrt2} |p_0\dots p_{n-3}\rangle|01\rangle +\frac{b_p^g}{\sqrt2}|p_0\dots p_{n-3}\rangle|10\rangle+\frac{b_p^g}{\sqrt2}|p_0 \dots p_{n-3}\rangle|01\rangle\\
+\frac{a_p^h}{\sqrt2}|p_0 \dots p_{n-3}\rangle|00\rangle-\frac{a_p^h}{\sqrt2}|p_0 \dots p_{n-3}\rangle|01\rangle+\frac{b_p^h}{\sqrt2}|p_0\dots p_{n-3}\rangle|10\rangle-\frac{b_p^h}{\sqrt2}|p_0\dots p_{n-3}\rangle|11\rangle\\
=\sum_{p=0}^{2^{n-2}-1}\frac{a_p^g+a_p^h}{\sqrt2}|p_0\dots p_{n-3}\rangle|00\rangle +\frac{a_p^g-a_p^h}{\sqrt2}|p_0\dots p_{n-3}\rangle|01\rangle +\frac{b_p^g+b_p^h}{\sqrt2}|p_0\dots p_{n-3}\rangle|10\rangle +\frac{b_p^g-b_p^h}{\sqrt2}|p_0\dots p_{n-3}\rangle|11\rangle](/sites/default/files/tex_cache/a837ab36eed161d4957b9ae5600abbda.png)
На Шаге 3 выполняется операция СNОТ на последнем бите, управляемая предпоследним битом:, что дает:
![\sum_{p=0}^{2^{n-2}-1}\frac{a_p^g+a_p^h}{\sqrt2}|p_0\dots p_{n-3}\rangle|00\rangle +\frac{a_p^g-a_p^h}{\sqrt2}|p_0\dots p_{n-3}\rangle|01\rangle +\frac{b_p^g+b_p^h}{\sqrt2}|p_0\dots p_{n-3}\rangle|11\rangle +\frac{b_p^g-b_p^h}{\sqrt2}|p_0\dots p_{n-3}\rangle|10\rangle](/sites/default/files/tex_cache/7dddd9d5fb5a092f2b6d896f3614a734.png)
Шаг 4 более изощренный. Мы выполняем последовательность поворотов предпоследнего бита:
![|0\rangle \to \cos \alpha |0\rangle -\sin \alpha |1\rangle ,\\
|1\rangle \to \sin \alpha |0\rangle +\cos |alpha |1\rangle](/sites/default/files/tex_cache/0ae90501ed2a71aa2a65da66948966bf.png)
Первый поворот на угол . Затем для каждого из первых n - 2 битов
выполняем поворот предпоследнего бита на угол
управляемое битом
. Поворот выполняется только тогда, когда
равно 1, в противном случае ничего не делается. В качестве альтернативы управляемый поворот можно интерпретировать как поворот предпоследнего бита на угол
.
Комбинируя эти повороты вместе, получаем поворот на угол
![\alpha==(1+2p_0+2^2p_1+\dots+2^{n-2}p_{n-3})\frac{\pi}{2^{n+1}}=\frac{(2p+1)\pi}{2^{n+1}}](/sites/default/files/tex_cache/9e6009667c112a9adcf5632f8e9342cd.png)
Далее в записи введем сокращение, заменяя на
. Результатом работы Шага 4 является:
![\sum_{p=0}{2^{n-2}-1}\frac{a_p^g+a_p^h}{\sqrt2} \cos\left(\frac{(2p+1)\pi}{2^{n+1}}\right)|p\rangle |00\rangle -\frac{a_p^g+a_p^h}{\qsrt2} \sin\left(\frac{(2p+1)\pi}{2^{n+1}}\right)|p\rangle |10\rangle +\frac{a_p^g-a_p^h}{\sqrt2} \cos\left(\frac{(2p+1)\pi}{2^{n+1}}\right)|p\rangle |01\rangle -\frac{a_p^g-a_p^h}{\qsrt2} \sin\left(\frac{(2p+1}\pi}{2^{n+1}}\right)|p\rangle |11\rangle\\
+\frac{b_p^g+b_p^h}{\sqrt2} \sin\left(\frac{(2p+1)\pi}{2^{n+1}}\right)|p\rangle 01\rangle +\frac{b_p^g+b_p^h}{\qsrt2} \cos\left(\frac{(2p+1)\pi}{2^{n+1}}\right)|p\rangle |11\rangle+\frac{b_p^g-b_p^h}{\sqrt2} \sin\left(\frac{(2p+1)\pi}{2^{n+1}}\right)|p\rangle |00\rangle +\frac{b_p^g-b_p^h}{\qsrt2} \cos\left(\frac{(2p+1}\pi}{2^{n+1}}\right)|p\rangle |10\rangle\\
=\sum_{p=0}^{2^{n-2}-1} \left(\frac{a_p^g+a_p^h}{\sqrt2} \cos\left(\frac{(2p+1)\pi}{2^{n+1}}\right) +\frac{b_p^g-b_p^h}{\sqrt2}\sin\left(\frac{(2p+1)\pi}{2^{n+1}}\right) \right)|p\rangle |00\rangle + \left(\frac{a_p^g-a_p^h}{\sqrt2} \cos\left(\frac{(2p+1)\pi}{2^{n+1}}\right) +\frac{b_p^g+b_p^h}{\sqrt2}\sin\left(\frac{(2p+1)\pi}{2^{n+1}}\right) \right)|p\rangle |01\rangle\\
+\left(\frac{b_p^g-b_p^h}{\sqrt2} \cos\left(\frac{(2p+1)\pi}{2^{n+1}}\right) -\frac{a_p^g+a_p^h}{\sqrt2}\sin\left(\frac{(2p+1)\pi}{2^{n+1}}\right) \right)|p\rangle |10\rangle+\left(\frac{b_p^g+b_p^h}{\sqrt2} \cos\left(\frac{(2p+1)\pi}{2^{n+1}}\right) -\frac{a_p^g-a_p^h}{\sqrt2}\sin\left(\frac{(2p+1)\pi}{2^{n+1}}\right) \right)|p\rangle |11\rangle](/sites/default/files/tex_cache/d91a7a1885003ada5004aff05f2a516c.png)
На шаге 5 применяется СNОТ к предпоследнему биту, управляемое последним битом:
![|xy\rangle \to |x \oplus yy\rangle](/sites/default/files/tex_cache/e44567b88086ff9c40042b0b8a65145d.png)
что дает:
![\sum_{p=0}^{2^{n-2}-1}\left(\frac{a_p^g+a_p^h}{\sqrt2} \cos \left( \frac{(2p+1)\pi}{2^{n+1}}\right) + \frac{b_p^g-b_p^h}{\sqrt2} \sin \left( \frac{(2p+1)\pi}{2^{n+1}}\right)\right)|p\rangle |00\rangle + \left(\frac{a_p^g-a_p^h}{\sqrt2} \cos \left( \frac{(2p+1)\pi}{2^{n+1}}\right) + \frac{b_p^g+b_p^h}{\sqrt2} \sin \left( \frac{(2p+1)\pi}{2^{n+1}}\right)\right)|p\rangle |11\rangle \\
+\left(\frac{b_p^g-b_p^h}{\sqrt2} \cos \left( \frac{(2p+1)\pi}{2^{n+1}}\right) - \frac{a_p^g+a_p^h}{\sqrt2} \sin \left( \frac{(2p+1)\pi}{2^{n+1}}\right)\right)|p\rangle |10\rangle +\left(\frac{b_p^g+b_p^h}{\sqrt2} \cos \left( \frac{(2p+1)\pi}{2^{n+1}}\right) - \frac{a_p^g-a_p^h}{\sqrt2} \sin \left( \frac{(2p+1)\pi}{2^{n+1}}\right)\right)|p\rangle |01\rangle](/sites/default/files/tex_cache/b5c467df8db825036b64d23b49b03be8.png)
Наш завершающий шаг состоит из применения управляемого отрицания СNОТ к каждому из первых n - 2 битов, все управляемые предпоследним битом. При записи финального результата разделяем его на две части. Тогда, когда предпоследний бит равен нулю, сохраняем р как суммируемую переменную. Когда же предпоследний бит равен единице, заменяем р новой переменной r. Биты r берутся с отрицанием, результат отрицания будем обозначать как . В результате получаем следующее выражение:
![\sum_{p=0}^{2^{n-2}-1} \left( \frac{a_p^g+a_p^h}{\sqrt2} \cos \left( \frac{(2p+1P\pi}{2^{n+1}} \right) + \frac{b_p^g-b_p^h}{\sqrt2} \sin \left( \frac{(2p+1)\pi}{2^{n+1}} \right)\right}|p\rangle |00\rangle + \left( \frac{b_p^g+b_p^h}{\sqrt2} \cos \left( \frac{(2p+1P\pi}{2^{n+1}} \right) - \frac{a_p^g+a_p^h}{\sqrt2} \sin \left( \frac{(2p+1)\pi}{2^{n+1}} \right)\right}|p\rangle |01\rangle \\
\sum_{r=0}^{2^{n-1}-1} \left( \frac{b_p^g-b_p^h}{\sqrt2} \cos \left( \frac{(2p+1P\pi}{2^{n+1}} \right) b \frac{a_p^g+a_p^h}{\sqrt2} \sin \left( \frac{(2p+1)\pi}{2^{n+1}} \right)\right}|\bar r\rangle |10\rangle+ \left( \frac{a_p^g-a_p^h}{\sqrt2} \cos \left( \frac{(2p+1P\pi}{2^{n+1}} \right) - \frac{b_p^g+b_p^h}{\sqrt2} \sin \left( \frac{(2p+1)\pi}{2^{n+1}} \right)\right}|\bar r\rangle |11\rangle](/sites/default/files/tex_cache/ab284181689252b5a3cc7730ab3b3cdb.png)
Вспоминая формулы БПФ, мы обнаруживаем, что первые два коэффициента-это и
для
, в то время как последние два коэффициента - это
и
для
,
. Предыдущее выражение упрощается и имеет вид:
![\sum_{p=0}^{2^{n-2}-1}(a_p|p\rangle|00\rangle + b_p|p\rangle|01\rangle) +\sum_{\substack{p=2^{n-2}\\p =2^{n-1}-1-r}}^{2^{n-1}-1}(a_p|\bar r\rangle|10\rangle+b_p|\bar r\rangle|11\rangle)](/sites/default/files/tex_cache/d0b428eeace91511f8ca4e4b0b8f9bd3.png)
Когда ,
, то оно записывается как целое из n - 1 бит в бинарной форме, ведущий бит р равен 1, а остальные n - 2 бита являются отрицанием битов
, так что две части суммы можно скомбинировать, рассматривая р теперь как целое из n - 1 битов,
![\sum_{p=0}^{2^{n-1}-1}a_p|p_0p_1\dotsp_{n-2}\rangle|0\rangle+b_n|p_0p_1\dots p_{n-2}\rangle|1\rangle](/sites/default/files/tex_cache/c0a410eef55d973e5335a67439e54afc.png)
Мы видим, что в результате последовательности шагов 1-б в точности получено квантовое преобразование Фурье входа из n-кубита.
Упражнение. Покажите, что сложность квантового преобразования Фурье для п-кубита (число используемых стандартных квантовых элементов) равна .
Мы видим, что КПФ имеет квадратичную сложность (как функция от числа битов), в то время как БПФ имеет экспоненциальную сложность.