Last
First
個人首頁
帳號設定
登出
關於我們
最新消息
課程學習
興趣探索(測試版)
登入
立即開始
Last
First
個人首頁
帳號設定
登出
會員登入
歡迎進入量子學習的新紀元!
忘記密碼?
或
以 Google 帳號登入
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
新用戶?
立即註冊
,開啟您的量子學習之旅。
量子計算入門(下):量子演算法
・第
8
課
量子傅立葉轉換(下)
作者:
林昱誠(Yu-Cheng Lin)
閱讀時間:
20
分鐘
# 量子傅立葉轉換(下) 我們在前面兩篇文章介紹 QFT 為何物,如何運作,這篇我們將來解析 QFT 的電路圖是怎麼推導出來的,推導過程會十分複雜,歡迎有興趣的讀者閱讀,沒興趣的話跳過這篇也不影響後面文章的閱讀(但如果你是致力做這領域研究工作,含著淚也要看完)。
QFT 電路圖
在[量子傅立葉轉換(上)](https://www.entangletech.tw/lesson/algorithm-05)中,我們提到 QFT 的作用就是 \begin{align} \tag{1} |j\rangle\rightarrow \frac{1}{\sqrt N}\sum_{k=0}^{N-1}e^{i\frac{2\pi}{N}jk}|k\rangle \end{align} 因為電腦是[二進位表示](https://www.entangletech.tw/lesson/basic-algorithm-02),我們要把 $j$ 表示成 \begin{split} j&=j_{0}j_{1}\cdots j_{n-2}j_{n-1} \\ &=j_{0}2^{n-1}+j_{1}2^{n-2}+\cdots+j_{n-2} 2^1+j_{n-1}2^0 \end{split} 那我們也可以把 $\frac{j}{N}$ 以二進位做表示(其中 $N=2^n$) \begin{split} \frac{j}{N}&= \frac{j_{0}2^{n-1}+j_{1}2^{n-2}+\cdots+j_{n-2} 2^1+j_{n-1}2^0}{2^n} \\ &=\frac{j_{0}}{2}+\frac{j_{1}}{2^2}+\cdots+\frac{j_{n-2}}{2^{n-1}}+\frac{j_{n-1}}{2^n} \\ &=0.j_{0}j_{1}\cdots j_{n-2}j_{n-1} \end{split} 同樣地,我們也可以把 $k$ 以二進位表示法做表示 \begin{split} k&=k_{0}k_{1}\cdots k_{n-2}k_{n-1} \\ &=k_{0}2^{n-1}+k_{1}2^{n-2}+\cdots+k_{n-2} 2^1+k_{n-1}2^0 \end{split} 那式(1)中看起來很煩人的一項 $e^{2\pi ik\frac{j}{N}}$ 可以表示得更煩人: \begin{split} e^{2i\pi k\frac{j}{N}} &= e^{2i\pi(0.j_{0}j_{1}\cdots j_{n-2}j_{n-1}) (k_{0}2^{n-1}+k_{1}2^{n-2}+\cdots+k_{n-2} 2^1+k_{n-1}2^0)}\\ &=e^{2i\pi(0.j_{0}j_{1}\cdots j_{n-2}j_{n-1}) k_{0}2^{n-1}} \times e^{2i\pi(0.j_{0}j_{1}\cdots j_{n-2}j_{n-1})k_{1}2^{n-2}}\times\cdots \\ & \qquad \times e^{2i\pi(0.j_{0}j_{1}\cdots j_{n-2}j_{n-1})k_{n-2} 2^1} \times e^{2i\pi(0.j_{0}j_{1}\cdots j_{n-2}j_{n-1})k_{n-1} 2^0} \end{split} 接著我們把 $2^{n-1}$、$2^{n-2}$... 丟進左邊括號中,就會變成(注意小數點的位置): \begin{align} =e^{2i\pi(j_{0}j_{1}\cdots j_{n-2}.j_{n-1})k_{0}}\times e^{2i\pi(j_{0}j_{1}\cdots j_{n-3}.j_{n-2}j_{n-1})k_{1}}\cdots \\ \times e^{2i\pi(j_{0}.j_{1}\cdots j_{n-2}j_{n-1})k_{n-2}}\times e^{2i\pi(0.j_{0}j_{1}\cdots j_{n-2}j_{n-1})k_{n-1}} \tag{2} \end{align} 我們先看第一項,經過運算後第一項可以簡寫成: \begin{align} e^{2i\pi(j_{0}j_{1}\cdots j_{n-2}.j_{n-1})k_{0}}&= e^{2i\pi(j_{0}2^{n-2}+j_{1}2^{n-3}\cdots j_{n-2}2^0+j_{n-1} 2^{-1})k_{0}} \\ &=e^{2i\pi j_{0}2^{n-2}k_{0}}e^{2i\pi j_{1}2^{n-3}k_{0}}\cdots e^{2i\pi j_{n-2}2^{n-2}k_{0}}e^{2i\pi j_{n-1} 2^{-1}k_{0}} \\ &=1\times 1\times\cdots \times 1\times e^{2i\pi j_{n-1}2^{-1}k_{0}} \\ &=e^{2i\pi 0.j_{n-1}k_{0}} \end{align} 因為前面幾項要嘛是 $e^0=1$ 要嘛就是 $e^{i2\pi N}=1$($N$ 是正整數)。因此(2)式可以簡寫成 \begin{split} e^{2i\pi k\frac{j}{N}}= e^{2i\pi (0.j_{n-1}) k_{0}}e^{2i\pi (0.j_{n-2}j_{n-1}) k_{1}}\cdots e^{2i\pi (0.j_{1}\cdots j_{n-2}j_{n-1}) k_{n-2}}e^{2i\pi (0.j_{0}j_{1}\cdots j_{n-2}j_{n-1}) k_{n-1}} \end{split} 插入(1)式得到 \begin{split} |j\rangle &\rightarrow \frac{1}{\sqrt N}\sum_{k=0}^{N-1} e^{2i\pi k\frac{j}{N}} |k\rangle \\ &=\frac{1}{\sqrt N} \sum_{k=0}^{N-1} e^{2i\pi (0.j_{n-1}) k_{0}} e^{2i\pi (0.j_{n-2}j_{n-1}) k_1}\cdots e^{2i\pi (0.j_{1}\cdots j_{n-2}j_{n-1}) k_{n-2}} e^{2i\pi (0.j_{0}j_{1}\cdots j_{n-2}j_{n-1}) k_{n-1}} |k\rangle \end{split} 上述這式子中的加總是針對二進位數字 $k$ 作家總,而 $k$ 就只會是 $0$ 和 $1$,因此上式變成 \begin{split} \frac{1}{\sqrt N}\sum_{k_{n-1}=0}^1 \cdots \sum_{k_{0}=0}^1 e^{2i\pi (0.j_{n-1}) k_{0}} e^{2i\pi (0.j_{n-2}j_{n-1}) k_{1}}\cdots e^{2i\pi (0.j_{1}\cdots j_{n-2}j_{n-1}) k_{n-2}} e^{2i\pi (0.j_{0}j_{1}\cdots j_{n-2}j_{n-1}) k_{n-1}} |k_{0}\cdots k_{n-1}\rangle \end{split} 其中 $|k_{0}\cdots k_{n-1}\rangle$ 可以寫成 $|k_{0}\rangle\cdots |k_{n-1}\rangle$,因此上式可以改寫成 \begin{split} \frac{1}{\sqrt N}\sum_{k_{0}=0}^1 \cdots \sum_{k_{n-1}=0}^1 e^{2i\pi (0.j_{n-1}) k_{0}}|k_{0}\rangle e^{2i\pi (0.j_{n-1} j_{n-2}) k_{1}}|k_{1}\rangle \cdots e^{2i\pi (0.j_{1}\cdots j_{n-2}j_{n-1}) k_{n-2}} |k_{n-2}\rangle e^{2i\pi (0.j_{0}j_{1}\cdots j_{n-2}j_{n-1}) k_{n-1}} |k_{n-1}\rangle \end{split} 繼續改寫: \begin{align} \tag{3} \frac{1}{\sqrt N} \sum_{k_{0}=0}^1 e^{2i\pi (0.j_{n-1}) k_{0}}|k_{0}\rangle \sum_{k_{1}=0}^1 e^{2i\pi (0.j_{n-1}j_{n-2}) k_{1}}|k_{1}\rangle \cdots \sum_{k_{n-2}=0}^1 e^{2i\pi (0.j_{1}\cdots j_{n-2}j_{n-1}) k_{n-2}} |k_{n-2}\rangle \sum_{k_{n-1}=0}^1 e^{2i\pi (0.j_{0}j_{1}\cdots j_{n-2}j_{n-1}) k_{n-1}} |k_{n-1}\rangle \end{align} 當 $k_{0}=0$ 時,$e^{2i\pi (0.j_{n-1}) k_{0}}=e^0=1$,其他項也是: \begin{split} \frac{1}{\sqrt N} (|0\rangle+e^{2i\pi (0.j_{n-1}) }|1\rangle) (|0\rangle+e^{2i\pi (0.j_{n-2}j_{n-1} )}|1\rangle) \cdots (|0\rangle+ e^{2i\pi (0.j_{1}\cdots j_{n-2}j_{n-1}) } |1\rangle) (|0\rangle+ e^{2i\pi (0.j_{0}j_{1}\cdots j_{n-2}j_{n-1})} |1\rangle) \end{split} 最後,$\sqrt{N}=\sqrt{2^n}$,然後我們就能寫出 QFT 的二進位表示法: \begin{align} \tag{4} \frac{1}{\sqrt 2} (|0\rangle+e^{2i\pi (0.j_{n-1}) }|1\rangle) \frac{1}{\sqrt 2} (|0\rangle+e^{2i\pi (0.j_{n-2}j_{n-1})}|1\rangle)\cdots \frac{1}{\sqrt 2} (|0\rangle+ e^{2i\pi (0.j_{1}\cdots j_{n-2}j_{n-1})} |1\rangle) \frac{1}{\sqrt 2} (|0\rangle+ e^{2i\pi (0.j_{0}j_{1}\cdots j_{n-2}j_{n-1})} |1\rangle) \end{align} 接著我們來看看如何透過 H gate 與 controlled rotation gate 組合出(3)式。我們先從 (4) 式中最右邊的項開始,我們對 $|j_{0}\rangle$ 做 H gate 操作 \begin{split} H|j_{0}\rangle &=\frac{1}{\sqrt 2}[|0\rangle+(-1)^{j_{0}}|1\rangle] =\frac{1}{\sqrt 2}[|0\rangle+(e^{i\pi})^{j_{0}}|1\rangle] \\ &=\frac{1}{\sqrt 2}[|0\rangle+e^{i\pi \frac{2}{2}j_{0}}|1\rangle] \\ & = \frac{1}{\sqrt 2}(|0\rangle+e^{2i\pi (0.j_{0})}|1\rangle) \end{split} 接著我們引入 $R_2$ gate,controlled qubit 為第 $2$ 個 qubit($j_{1}$),target qubit 則為第 $1$ 個 qubit。所以當 $j_{1}$ 為 $1$ 時($j_0$),$j_{0}$ 會乘上 $e^{i\frac{1}{2}\pi}$: \begin{split} \frac{1}{\sqrt 2}(|0\rangle+e^{2i\pi (0.j_{0})}|1\rangle) &\rightarrow \frac{1}{\sqrt 2}(|0\rangle+(e^{2i\pi (0.j_{0})})(e^{i\frac{1}{4}\pi})^{j_{1}} |1\rangle) \\ &=\frac{1}{\sqrt 2}(|0\rangle +e^{2i\pi (0.j_{0})}e^{2i\pi (0.0j_{1})}|1\rangle) \\ &=\frac{1}{\sqrt 2}(|0\rangle+e^{2i\pi (0.j_{0}j_{1})}|1\rangle) \end{split} 同樣地,放入 $R_3$ gate,上式會變成 \begin{split} \frac{1}{\sqrt 2}(|0\rangle+e^{2i\pi 0.j_{0}j_{1}j_{2}}|1\rangle) \end{split} 以此類推,要組合出(4)式中最右邊的項,要引入多個 $R_n$ gate,最後上式就能變得跟(4)式中最右邊的項一樣 \begin{split} \frac{1}{\sqrt 2}(|0\rangle+e^{2i\pi 0.j_{0}j_{1}j_{2}\cdots j_{n-1}}|1\rangle) \end{split} 這就是下圖第一個 qubit 最後會產生的量子態,就是(4)式中的最幼項。以此類推我們可以推導出每個 qubit 的輸出量子態,如下圖所示:
仔細將輸出結果與(3)式中對應的 $|k\rangle$ 比較,發現與我們預期 QFT 輸出態(見下圖或是本篇的第一張圖),在順序上剛好相反,所以我們加上數個 SWAP gate 將結果順序導正:
QFT 電路圖
這就是完整個 QFT 電路圖。
量子傅立葉轉換(下)
algorithm
8
量子傅立葉轉換(中)
algorithm
7
量子傅立葉轉換(上)
algorithm
6
以 Pennylane 做測量
pennylane
6
用 Pennylane 建立量子邏輯閘
pennylane
5
用 Pennylane 建立量子電路
pennylane
4
Colab 與 Jupyter 介面介紹
pennylane
3
安裝 Pennylane
pennylane
2
Deutsch-Jozsa 演算法(下)
algorithm
5
Deutsch-Jozsa 演算法(上)
algorithm
4
量子演算法總覽
algorithm
1
Deutsch 演算法(下)
algorithm
3
Deutsch 演算法(上)
algorithm
2
量子計算概覽:當電腦遇上量子世界
basic-algorithm
1
自學資源與路線:入門量子計算的第一步
basic-algorithm
2
量子電路:量子邏輯閘的實踐
basic-algorithm
17
測量:讀取計算結果
basic-algorithm
16
量子邏輯閘(下):量子邏輯閘的特性
basic-algorithm
15
量子邏輯閘(中):多個量子位元的操作
basic-algorithm
14
量子位元 (下):量子糾纏
basic-algorithm
13
量子位元(中):多個量子位元
basic-algorithm
12
布洛赫球面 (下):解讀量子邏輯閘的運作
basic-algorithm
11
布洛赫球面(上):量子位元可視化
basic-algorithm
10
量子邏輯閘(上):單一量子位元操作
basic-algorithm
9
量子位元(上):量子計算的基本單位
basic-algorithm
8
重視經典電腦:過渡到量子電腦
basic-algorithm
7
Pennylane 簡介
pennylane
1
演算法複雜度
basic-algorithm
6
經典邏輯閘(下):邏輯閘的特性
basic-algorithm
5
經典邏輯閘(上):電腦運算的基礎
basic-algorithm
4
電腦的世界只有 0 與 1:二進位表示法
basic-algorithm
3
量子硬體總覽
hardware-general
1
第三題:Many-Body Quantum Dynamics
ibm-2023-spring
3
第二題:Quantum Random Walks and Localization
ibm-2023-spring
2
第一題:Trotterization
ibm-2023-spring
1
如何綜合評估量子電腦的表現
hardware-general
10
Qubit 狀態的壽命(相干時間):T2
hardware-general
9
Qubit 狀態的壽命(相干時間):T1
hardware-general
8
保真度(Fidelity):衡量量子邏輯閘的指標
hardware-general
7
附錄 C:絕熱通道
hardware-general
13
如何操作 Qubit:絕熱通道(Adiabetic passage)
hardware-general
6
附錄 B:拉比震盪
hardware-general
12
如何操作 Qubit:拉比震盪(Rabi Oscillation)
hardware-general
5
附錄 A:雙態系統
hardware-general
11
Deutsch 演算法
basic-algorithm
18
雙態系統(Two Level System):Qubit 的基礎
hardware-general
4
DiVincenzo Criteria:量子電腦的五大標準
hardware-general
3
自學資源與路線:入門量子電腦硬體的第一步
hardware-general
2
課程撰寫中
s
1
特徵向量和特徵值(eigenvector and eigenvalue)
linear-algebra
9
量子計算中的特殊矩陣
linear-algebra
8
張量積(Tensor product)
linear-algebra
7
Orthonormal Bases
linear-algebra
6
正交(Orthogonality)
linear-algebra
5
基(Basis)
linear-algebra
4
數學基礎:量子計算的起點
linear-algebra
2
量子計算的數學之鑰:線性代數入門
linear-algebra
1
什麼是量子電腦?
quantum-computer-basics
1
量子電腦如何改變世界
quantum-computer-basics
2
如何實現量子電腦
quantum-computer-basics
7
電腦怎麼做計算
quantum-computer-basics
3
疊加態
quantum-computer-basics
5
量子糾纏
quantum-computer-basics
6
進入量子世界
quantum-computer-basics
4
自學資源與路線
quantum-computer-basics
8
狄拉克(Dirac)表示法
linear-algebra
3
量子電腦現況與未來
quantum-computer-basics
9
上ㄧ課
#上一課課程名稱
下ㄧ課
#下一課課程名稱
課程目錄