--- title: 量子計算基礎 tags: Quantum Computing description: 作者:林橋毅 --- 本文感謝中原大學**黃琮暐**教授演講以及**SQCS**提供平台 本文中的Exercise若未註明皆出自於 *Michael A. Nielsen & Isaac L. Chuang*的*Quantum Computation and Quantum Information* [本次課程錄影](https://www.youtube.com/watch?v=o5JdE3KU6Wo) **先備知識:向量、矩陣、複數、一點點線代、一點點微積分** # Stern-Gerlach 施特恩-格拉赫實驗 https://www.youtube.com/watch?v=rg4Fnag4V-E https://zhuanlan.zhihu.com/p/102034180 ## 單磁場 首先,這個實驗讓銀原子通過加熱爐(Oven),再讓這個高溫銀原子通過一個不均勻的磁場,最後投射在屏上。 我們先做一次最簡單的實驗,簡稱單機版好了。 單機版我們將銀原子經過一個方向Z的不均勻磁場(簡稱:$SGz$),投射在屏上, 在古典預測會像影片中,會隨機散布成一片,所有地方都有可能。 ![](https://i.imgur.com/8CmtQcJ.png) 但實驗結果,屏上只出現兩種情況,**向上**與**向下**,證明了原子角動量投影是**量子化**的。 ## 雙磁場 接著,將多個磁場裝置連在一起就會發生許多有趣的事。 首先,通過一個$SGz$會得到上下兩個結果,把往下的擋掉只留向上的結果,在通過一個$SGz$,會得到**100%往上**的結果。 ![](https://i.imgur.com/pNTx3f9.png) ## 三磁場 緊接著,讓原子通過$SGz$擋掉下面的,在通過$SGx$的磁場,就是在水平方向放一個磁場,在使原子通過$SGz$,結果會得到**50%向上、50%向下**。 ![](https://i.imgur.com/oaonTHa.png) ## 解釋現象 加熱的時候 就會產生一個狀態,但是不帶任何座標軸 ![](https://i.imgur.com/xkdjSOe.png) 當我們做出操作後,他就會自動產生出座標軸 我們在實驗中通過$SGz$,他就會出現一個二維的座標軸, 一軸代表向上的結果,一軸代表向下的結果 (之所以垂直,是因為如果是向上就不會是向下) ![](https://i.imgur.com/vYEtj4r.png) 當我們對他做測量,就是把他在座標軸上的投影量測出來 所以各**50%** ![](https://i.imgur.com/urBNOKV.png) 實驗中,當我們把向下的結果遮掉了 ![](https://i.imgur.com/QzYmF1X.png) 就等於在坐標軸中把一軸遮掉 ![](https://i.imgur.com/bom15I5.png) 在過一次$SGz$就等於用相同的座標做投影,結果不變 然後我們這次過一個$SGx$,就等於我們用一個新的坐標軸做投影 ![](https://i.imgur.com/hPfP3kx.png) 一樣在遮掉一個(紅色)然後再過一個$SGz$,就等於在用原本那個做投影 結果當然是一樣50%50% ![](https://i.imgur.com/tZFAsUy.png) # 原理 - 在量子力學中,用狀態描述物理系統,這個狀態就是向量 - 當我們做一個操作,就可以訂一個座標軸來描述 - 當我們測量,結果就是投影量 - 根據薛丁格方程式($𝑖ℏ \frac{𝜕}{𝜕𝑡}|\psi>=𝐻|\psi>$),這個$\psi$這個向量,他不是在一個真實空間,而是在一個高維複數空間(Hilbert space) 所以我們需要線性代數 # 符號 * $z^*$:共軛複數 $(1+i)^* = (1-i)$ * $A^*$:共軛複數矩陣 $A=\begin{bmatrix} 1&2 \\ i&1-i \end{bmatrix} ,A^*=\begin{bmatrix} 1& 2 \\ -i&1+i \end{bmatrix}$ * $|\psi>$ = $(a,b)$:使用狄拉克符號表式向量(ket) * $<\psi|$ = $(a^* ,b^*)$:做共軛複數、轉置共軛複數得到的向量(bra) * $<\phi|\psi>$: $|\phi>$和$|\psi>$的內積(inner product) * $|\phi>\bigotimes|\psi>= |\phi>|\psi> = |\phi\psi>$: $|\phi>$和$|\psi>$的張量積 * $\mathbf{A}^\mathrm{T}$ : 轉置矩陣 $A=\begin{bmatrix} 1&2 \\ i&1-i \end{bmatrix} ,\mathbf{A}^\mathrm{T}=\begin{bmatrix} 1& i\\2&1-i \end{bmatrix}$ * $A^†$:轉置矩陣後再共軛$A=\begin{bmatrix} 1&2 \\ i&1-i \end{bmatrix} ,A^†=\begin{bmatrix} 1& -i \\ 2&1+i \end{bmatrix}$ * $<\phi|A|\psi>$:$|\phi>$和$A|\psi>$的內積,也等於,$A^†|\phi>$和$|\psi>$的內積 # 向量的特性 我們把向量寫成一行,如果我們有n個尺度而且是複數空間就可以寫成這樣 這裡的$z$都是複數 $|\psi>=\begin{bmatrix}z_{1} \\z_{2}\\... \\z_{n} \end{bmatrix}$ - 向量加法,n要相同才可以加 $|\psi_1 >+|\psi_2 >=\begin{bmatrix}z_{1}\\...\\z_{n}\end{bmatrix}+\begin{bmatrix}{z_{1}}'\\ {z_{2}}'\\...\\ {z_{n}}'\end{bmatrix}=\begin{bmatrix}z_{1}+{z_{1}}'\\z_{2}+{z_{2}}'\\...\\z_{n}+{z_{n}}'\end{bmatrix}$ - 向量乘上一個常數 $C|\psi>=C\begin{bmatrix}z_{1}\\...\\z_{n}\end{bmatrix}=\begin{bmatrix}Cz_{1}\\ Cz_{2}\\...\\ Cz_{n}\end{bmatrix}$ # 基(basis) 就是向量$\psi$永遠可以寫成$v_i$的線性組合 $|\psi>=\sum_{i}a_i|v_i>$ $|0>=$ ## 線性相依(linear dependent) 使得$a_1|v_1>+a_2|v_2>+...+a_n|v_n> = 0$ 且只要有任意一個$a_i$ $!=0$就稱為**線性相依** :::info Exercise 2.1: (Linear dependence: example) Show that (1,−1), (1, 2) and (2, 1)are linearly dependent. ::: :::spoiler $x\begin{bmatrix}1\\-1\end{bmatrix}+y\begin{bmatrix}1\\2\end{bmatrix}+z\begin{bmatrix}2\\1\end{bmatrix} =\begin{bmatrix}0\\0\end{bmatrix}$ $\begin{cases}x+y+2z=0\\-x+2y+z=0\end{cases}$ 由上可知x,y,z有無限多組解 所以不必等於0,所以它線性相依 ::: ## 線性獨立(linear independent) 反之,使得$a_1|v_1>+a_2|v_2>+...+a_n|v_n> = 0$ 且全部的$a_i ==0$就稱為**線性獨立** :::info 補充Exercise 2.1 ::: :::spoiler 最簡單的想法就是我選了剛好的軸就會是線性獨立。 如果把上述的$z$刪掉,就會是線性獨立的 $x\begin{bmatrix}1\\-1\end{bmatrix}+y\begin{bmatrix}1\\2\end{bmatrix} =\begin{bmatrix}0\\0\end{bmatrix}$ $\begin{cases}&x+y=0\\&-x+2y=0\end{cases}$ 這樣就只有唯一一組解 ::: # 線性操作和矩陣 如果$A$作用在向量$|\psi>$上,(A跟$|\psi>$可以是不同維度的ex.光譜線) 我們可以透過上述展開 $A|\psi> = A(\sum_{i}a_i|v_i>)=\sum_{i}a_iA|v_i>$ 就會有兩種想法 * A作用在向量上 * A作用在座標軸上(作用在基上) 如果A可以讓向量旋轉,由下圖就可以看出 你要讓$v_1v_2$變成${v_{1}}'{v_{2}}'$,就是讓$|\psi>$旋轉,或者旋轉座標軸 ## 包立矩陣(Pauli Matrix) - $\sigma_0\equiv I\equiv\begin{bmatrix}1&0\\0&1\end{bmatrix}$ - $\sigma_1\equiv \sigma_x\equiv X\equiv\begin{bmatrix}0&1\\1&0\end{bmatrix}$ - $\sigma_2\equiv \sigma_y\equiv Y\equiv\begin{bmatrix}0&-i\\i&0\end{bmatrix}$ - $\sigma_3\equiv \sigma_z\equiv Z\equiv\begin{bmatrix}1&0\\0&-1\end{bmatrix}$ # 內積(inner product) 如果我們看$|v>$和$|\omega>$的內積$<v|\omega>$ * $<v|\sum_{i}\lambda_i|\omega_i> = \sum_{i}\lambda_i<v|\omega_i>$:可以寫成$|\omega>$跟坐標軸的展開 * $<v|\omega> = (<\omega|v>)^*$ * 如果$|v>=0 ,<v|v>=0$:$|v>$:自己和自己內積等於長度平方,所以如果$|v>>=0$長度就會大於等於零 * 如果$<v|w>=0$代表$v$和$w$是垂直的(正交的orthogoanl) * 如果長度為1,就是單位向量 * 如果$|v> =|w>=1$且$<v|w>=0$,$|v>$和$|w>$就是正交規一的(orthonormal) :::info Exercise 2.7: Verify that |w >≡ (1, 1) and |v> ≡ (1, −1) are orthogonal. What are the normalized forms of these vectors? ::: :::spoiler $<w|v>=(1,1)\cdot(1,-1)=(1*1)+(1*-1)=0$ 因為長度不等於1所以他不是**orthonormal**而是**orthogonal** >如果要是**orthonormal**,$v$和$w$要是單位向量 >$|{v}'>=\frac{|v>}{\left\|v\right \||}=\frac{|v>}{\sqrt{2}}=\frac{1}{\sqrt{2}}\binom{1}{-1}$ >$|{w}'>=\frac{1}{\sqrt{2}}\binom{1}{1}$ ::: ## 施密特正交歸一化 -https://www.youtube.com/watch?v=fYWXtWZ4OY4 假設有兩個向量$w_1$和$w_2$ ![](https://i.imgur.com/CvzdFg6.png =200x) 找出$w_1$的單位向量$v_1$ 這個${v_1}$就是$|v_1>\equiv\frac{|w1>}{||w1||}$ ![](https://i.imgur.com/h0bwoXE.png =200x) 如何做出和${v_1}'$垂直的向量${v_2}$ 呢? 先做出$w_2$在$w_1$上的投影,這個投影就是$w_2$和$v_1$的內積$\sum{k}{i=1}<v_i|w_k+1>|v_i>$ ![](https://i.imgur.com/lA9SnzA.png =200x) 這個向量在和$w_2$相減,就可以得到正交過後的$|v_2>$ ![](https://i.imgur.com/NG6eVqk.png =200x) 整理過後並除掉它的長度 可以得到公式 $|𝑣_(𝑘+1)>\equiv\frac{|𝑤_(𝑘+1)> −\sum^{k}_{i=1}<v_i|w_(k+1)>|v_i}{|||w_(𝑘+1)>−\sum_{i=1}^{k}<𝑣_𝑖 |𝑤_(𝑘+1)>|𝑣_𝑖>||}$ 二維成立,三度空間同樣的公式也會成立 如果有一個向量$w_3$想像它在$w_1$和$w_2$的平面上 所以如果在多維的也會成立 ## 為甚麼要正交規一 $|v>=\sum_{i}v_i|i> |w>=\sum_{i}w_i|i>$ 透過向量的表示法,我們可以把內積展開 $<v| = \sum_{i}v_{i}^*<i|>$ $<v|w> = \sum_{i}v_{i}^*<i|\sum_{j}w_j|j>=\sum_{i,j}v_u^*w_j<i|j>$ 在這裡可以看到有兩個$\sum$,還有$i,j$,直接展開會很長 還好我是**orthonormal**的,因此要$i==j$成立,$<i|j>$才會有值 所以在這裡$<v|w>$可以整理出以下的東西 $<v|w> =\sum_{i}v_i^*<i|\sum_{j}w_j|j>=\sum_{i,j}v_i^*w_j<i|j>=\sum_iv_i^*w_i=[v_1^* ... v_n^*]\begin{bmatrix}w_1\\ ...\\ w_n\end{bmatrix}$ # 外積(outer product) 如果有一個向量$|v>$ 作用在一個V的空間,向量$|w>$作用在W的空間,外積就是$|w><v|$ 如果對他們進行操作就可以變成這樣 $(|w><v|)|\psi>\equiv |w><v|\psi> = <v|\psi>|w>$ 如果有一個正交規一(orthonormal)的向量 $|v> = \sum_i|i><i|v> = \sum_<i|v>|i>=\sum_iv_i|i>$ 所以如果軸的數量,符合下面的關係式就是**linear independent** $\sum_i|i><i|=I$ ## Application of outer product :::info Exercise 2.9: (Pauli operators and the outer product) The Pauli matrices (Figure 2.2 on page 65) can be considered as operators with respect to an orthonormal basis |0>, |1> for a two dimensional Hilbert space. Express each of the Pauli operators in the outer product notation. ::: :::spoiler 要解這題必須先知道0和1怎麼寫 $|0>=\begin{bmatrix}1\\0\end{bmatrix}$ $|1>=\begin{bmatrix}0\\1\end{bmatrix}$ $|0><0|=\begin{bmatrix}1\\0\end{bmatrix}\begin{bmatrix}1&0\end{bmatrix}=\begin{bmatrix}1&0\\0&0\end{bmatrix}$ $|1><1|=\begin{bmatrix}0\\1\end{bmatrix}\begin{bmatrix}0&1\end{bmatrix}=\begin{bmatrix}0&0\\0&1\end{bmatrix}$ 寫完你就會發現 $|0><0|+|1><1| = I = \begin{bmatrix}1&0\\0&1\end{bmatrix}$ 接著完成X $|0><1|=\begin{bmatrix}0&1\\1&0\end{bmatrix}$ $|1><0|=\begin{bmatrix}0&0\\1&0\end{bmatrix}$ $X=\begin{bmatrix}0&1\\1&0\end{bmatrix}=|0><1|+|1><0|$ >在量子電腦中 >$X|0>=|1>$ >$X|0>=(|0><1|+|1><0|)|0>$,因為$<0|0>$才有數字$<0|1>$是沒有數字的,因為你是正交歸一的,所以只剩下1 >或者代入上面的公式 >$X=(|0><0|+|0><1|+|1><0|+|1><1|)\begin{bmatrix}0&1\\1&0\end{bmatrix}(|0><0|+|0><1|+|1><0|+|1><1|)$ ::: ## 科西不等式(Cauchy-Schwarz inequality) ![](https://i.imgur.com/QXk4KU4.png ) 因為$<a|b>=c <b|a>=c^*$所以$<v|i><i|v>$必定為正 第一個$|i>$basis是$\frac{|w>}{\sqrt{<w|w>}}$,剩下的跟$|w>$垂直 $|1>=\frac{|w>}{||w||}$ 上面的比較廣義,在n度空間都會對 高中版:$(x_1x_2+y_1y_2)^2<=(x_1^2+y_1^2)(x_2^2+y_2^2)$ # 特徵值跟特徵向量(Eigenvalue and Eigenvector) $A$是一個作用在向量$|v>$上 如果有一個A作用在一個向量,但這個向量不變 假設我們的作用用X舉例 $X=\begin{bmatrix}0&1\\1&0\end{bmatrix}$ 如果向量$|v>=\frac{1}{\sqrt{2}}\begin{bmatrix}1\\1\end{bmatrix}$ $X$作用在$|v>$上不變,所以我們稱這個向量為**Eigenvector**,而他變大變小的值稱為**Eigenvalue** $A|v> = \lambda|v>$ 這裡的$|v>$就是**Eigenvector**,$\lambda$就是**Eigenvalue** :::info Exercise 2.11: (Eigendecomposition of the Pauli matrices) Find the eigenvectors, eigenvalues, and diagonal representations of the Pauli matrices X, Y , and Z . ::: :::spoiler 這裡先只做X $X|v>=\lambda|v>$ $(X-\lambda I)|v>=0$ $\begin{bmatrix}-\lambda&1\\1&-\lambda\end{bmatrix}\begin{bmatrix}a\\b\end{bmatrix}=0$ $\begin{cases}-\lambda a+b=0\\a-\lambda b=0\end{cases}$ 要無限多組解,用克拉瑪公式解($\Delta=0$) $\Delta \begin{vmatrix}-\lambda&1\\1&-\lambda\end{vmatrix}=0$ $\lambda^2-1=0$ 所以這題的**Eigenvalue**就是$\lambda=1,-1$ 把$\lambda$帶回去 $if \lambda =1$ $\begin{bmatrix}-1&1\\1&-1\end{bmatrix}\begin{bmatrix}a\\b\end{bmatrix}=0$ 故$a=b=1$ 所以**Eigenvector**為$\frac{1}{\sqrt{2}}\begin{bmatrix}1\\1\end{bmatrix}$ $if \lambda=-1$ $\begin{bmatrix}1&1\\1&1\end{bmatrix}\begin{bmatrix}a\\b\end{bmatrix}=0$ 故$a=-b=1$ 所以**Eigenvector**為$\frac{1}{\sqrt{2}}\begin{bmatrix}1\\-1\end{bmatrix}$ 我們來驗證一下,把$X$作用在Eigenvector上看看 $\begin{bmatrix}0&1\\1&0\end{bmatrix}\frac{1}{\sqrt{2}}\begin{bmatrix}1\\-1\end{bmatrix}=1*\frac{1}{\sqrt{2}}\begin{bmatrix}1\\-1\end{bmatrix}$ Y eigenvalue +-1 Z eigenvalue +-1 ::: # 伴隨矩陣和埃爾米特伴隨(Adjoints and Hermitian operators) $A^†=(\mathbf{A}^\mathrm{T})^*$ $(AB)^†=B^†A^†$ $(|v>)^†=<v|$ - hermitian or self-adjoint operator$A^†=A$ - Normal operator $A^†A=AA^†$ - Unitary operator $A^†A=AA^†=I$ 記住,在所有量子物理和量子計算,所有的操作和測量都是Hermitian或self-adjoint也是Normal也是Unitary的 所以你會發現$AA=I$,等同於在量子電腦的操作中,同一個gate執行兩次都會等於$I$就等於**不做事** :::info Exercise 2.17: Show that a normal matrix is Hermitian if and only if it has real eigenvalues. ::: :::info Exercise 2.19: (Pauli matrices: Hermitian and unitary) Show that the Pauli matrices are Hermitian and unitary. ::: # 張量積(Tensor product) 張量積可以幫助你思考多個qubit的狀態 $\begin{bmatrix}1\\2\end{bmatrix}\bigotimes\begin{bmatrix}2\\3\end{bmatrix}=\begin{bmatrix}1*2\\1*3\\2*2\\2*3\end{bmatrix}=\begin{bmatrix}2\\3\\4\\6\end{bmatrix}$ 操作: 1. $z(|v>\bigotimes|w>)=(z|v>)\bigotimes|w>=|v>\bigotimes z|w>$ 2. $(v_1>+|v_2)\bigotimes |w>=|v_1>\bigotimes |w>+|v_2>\bigotimes|w>$ 3. $|v>\bigotimes(|w_1>+|w_2>)=|v>\bigotimes|w1>+|v>\bigotimes|w_2>$ 4. $(A\bigotimes B)(|v>\bigotimes|w>)=A|v>\bigotimes B|w>$ 5. $|v>^2=|v>\bigotimes|v> |v>^k=|v>\bigotimes|v>...\bigotimes|v>$ 如果只有一個qubit $|0>=\begin{bmatrix}1\\0\end{bmatrix};|1>=\begin{bmatrix}0\\1\end{bmatrix}$ 那如果有兩個qubit呢 $|00>=|0>\bigotimes|0>=\begin{bmatrix}1\\0\end{bmatrix}\bigotimes\begin{bmatrix}1\\0\end{bmatrix}=\begin{bmatrix}1\\0\\0\\0\end{bmatrix}$ $|01>=|0>\bigotimes|1>=\begin{bmatrix}1\\0\end{bmatrix}\bigotimes\begin{bmatrix}0\\1\end{bmatrix}=\begin{bmatrix}0\\1\\0\\0\end{bmatrix}$ $|10>=|1>\bigotimes|0>=\begin{bmatrix}0\\1\end{bmatrix}\bigotimes\begin{bmatrix}1\\0\end{bmatrix}=\begin{bmatrix}0\\0\\1\\0\end{bmatrix}$ $|11>=|1>\bigotimes|1>=\begin{bmatrix}0\\1\end{bmatrix}\bigotimes\begin{bmatrix}0\\1\end{bmatrix}=\begin{bmatrix}0\\0\\0\\1\end{bmatrix}$ 回頭看一下內積,以上任兩個內積為0 如果你有兩個qubit,你就是在一個四度空間上 | #qubit | Dimension in complexs space | real sapce | |:------:| --------------------------- |:----------:| | 1 | 2 | 4 | | 2 | 4 | 8 | | 3 | 8 | 16 | | 4 | 16 | 32 | | 5 | 32 | 64 | | n | $2^n$ | $2^(n+1)$ | 那為甚麼你會學到這顆球呢? ![](https://i.imgur.com/ImD9k1g.png =250x) 因為你在量子電腦的時候,你的向量一定是單位向量 因為你是單位向量,所以你在描述的時候可以少一軸,表就會變這樣 | #qubit | Dimension in complexs space | real sapce | |:------:| --------------------------- |:-----------:| | 1 | 2 | 4-1 | | 2 | 4 | 8-1 | | 3 | 8 | 16-1 | | 4 | 16 | 32-1 | | 5 | 32 | 64-1 | | n | $2^n$ | $2^{n+1}-1$ | :::info Exercise 2.27: Calculate the matrix representation of the tensor products of the Pauli operators (a) X and Z ; (b) I and X ; (c) X and I . Is the tensor product commutative? ::: :::spoiler $\begin{bmatrix}0&1\\1&0\end{bmatrix}\bigotimes\begin{bmatrix}1&0\\0&-1\end{bmatrix}=\begin{bmatrix}0&0&1&0\\0&0&0&-1\\1&0&0&0\\0&-1&0&0\end{bmatrix}$ ::: :::info Exercise 2.29: Show that the tensor product of two unitary operators is unitary. ::: :::info Exercise 2.30: Show that the tensor product of two Hermitian operators is Hermitian. ::: # Operator functions :::info Exercise 2.34: Find the square root and logarithm of the matrix$\begin{bmatrix}4&3\\3&4\end{bmatrix}$ ::: :::info Exercise 2.35: (Exponential of the Pauli matrices) Let 𝑣 ⃑ be any real, three-dimensional unit vector and θ a real number. Prove that $exp(i\theta𝑣 ⃑∙𝜎 ⃑)=cos(\theta)O+isin(\theta)𝑣 ⃑∙𝜎 ⃑$ Where $𝑣 ⃑∙𝜎 ⃑=\sum^{3}_{i=1}𝑣 ⃑∙𝜎 ⃑$ ::: # Trace $tr(A)\equiv\sum_i A_{ii}$ $tr(AB)=tr(BA)$ $tr(A+b)=tr(A)+tr(B)$ $tr(zA)=ztr(A)$ $tr(UAU^ϯ)=tr(UU^ϯA)=tr(A)$ $tr(A|\psi><\psi|)=< \psi|A|\psi>$ # Commutator and anti commutator :::info Exercise 2.40: (Commutation relations for the Pauli matrices) Verify the commutation relations [ X, Y ] = 2 iZ ; [ Y, Z ] = 2 iX ; [ Z, X ] = 2 iY. ::: :::info Exercise 2.41: (Anti-commutation relations for the Pauli matrices) Verify the anti-commutation relations {σi, σj } = 0 ::: ----- # 量子閘 ----- # the revolution of quantum state ![](https://i.imgur.com/Rbmjmwo.png) ![](https://i.imgur.com/wCOdzYJ.png) # Deutsh Algorithm 處理布林函數(0+0=0,0+1=1,1+0=1,1+1=0) 定函數(f(0)==f(1)),則不定函數 1. 準備兩個qubit 2. 初始狀態為$|10>$ 3. 將兩個qubit都套用H-Gate 4. insert Boolean f 5. H first -> measure if first qubit is|1> (不定函數 if first qubit is|0> (定函數 ![](https://i.imgur.com/W1arX0g.png) 上x下y if the f(x) is cnot gate actually cnot is just f(x)=x | y | x | y' | x' | | --- | --- | --- | --- | | 0 | 0 | 0 | 0 | | 0 | 1 | 1 | 1 | | 1 | 0 | 1 | 0 | | 1 | 1 | 0 | 1 | if the f(x) is I gate Identical actually is f(x)=0 | y | x | y' | x' | | --- | --- | --- |:---:| | 0 | 0 | 0 | 0 | | 0 | 1 | 0 | 1 | | 1 | 0 | 1 | 0 | | 1 | 1 | 1 | 1 | 這個的意義可以說明古典電腦要做兩次量子只要做一次 # Deutsch-Jozsa 如果有n個位元問題 1. 準備n+1個qubit 2. 初始狀態為|10000...0> 3. 將所有qubit套用H-Gate 4. 放入布林函數$f$ 5. 前n個套用H-GATE 如果前n個都是|0> 那就是定函數 | Y X | Y+f(x) X | Y X | | ---- |:---------:| ---- | | 0 00 | 0+1 00 | 1 00 | | 0 01 | 0+1 01 | 1 01 | | 0 10 | 0+1 10 | 1 10 | | 0 11 | 0+1 11 | 1 11 | | 1 00 | 1+1 00 | 0 00 | | 1 01 | 1+1 01 | 0 01 | | 1 10 | 1+1 10 | 0 10 | | 1 11 | 1+1 11 | 0 11 | 這個最大的意義就是superposition的意義 等於一次把所有狀態丟進去,這個例子量子電腦只需要做一次 ![](https://i.imgur.com/3e5Bprw.png) # 如何設計一個演算法 1. 向量的思維 - 對應到薛丁格方程式 2. 矩陣的思維 - 對應到海森堡矩陣力學 3. 物理/數學思維出發 - 傅立葉轉換、Path intergral 向量: * 放大縮小 -> 在完美量子計算中,機率和為1 * 旋轉 -> 很常用 * 反射 -> Grover's重要啟發 * 內積 -> 測量的意義 * 張量積 -> 多個量子位元 # Grover's algorithm Grover's Problem: 有n個物品,有1個是我要的,如何快速找到 有n個物品,有k個是我要的,如何快速找到 這種在遍歷問題,在古典電腦中最差就是$O(n)$,但在量子電腦中最差就是$O(\sqrt{n})$ 因為在量子電腦中假設你有10個qubit,就會有1024個互相垂直的軸 那我們就把要得放一個軸剩下都在不同軸 ![](https://i.imgur.com/MvdDG43.png) 利用疊加態,一次將所有物品放入(n個) 如過n>>k 就會靠近不要的軸 ![](https://i.imgur.com/X3PHMpT.png) 將這個疊加態對不要的軸反射 利用Oracle做反射 ![](https://i.imgur.com/nJV9sPJ.png) 再對原本的疊加態反射,則可以快速靠近要得軸 所以,理論上如果只要n個找1個,只要做$\sqrt{n}$次 ![](https://i.imgur.com/ieDh9It.png) Code: ![](https://i.imgur.com/ofKWTkv.png) ![](https://i.imgur.com/zkx7w6X.png) 1. 準備$lon_{2} n$個qubit 2. 將所有qubit做H操作 3. 加入Oracle 就是對不要的態向量做反射,也可以看成要得態加一個富號 4. 加入Grover's操作 ## 範例 1. 四個範例找一個|00> ![](https://i.imgur.com/6tfiTOW.png) 2. 八個狀態找到|111> 3. 八個狀態找到|101> # 傅立葉轉換 ![](https://i.imgur.com/wGJUgSJ.png) ## 三角函數 sin 奇函數 cos 偶函數 $y=sin x$ is odd function $y=cos x$ is even function ## 正交特性 積分一個週期都是0 從-pi 積到pi k是整數大於0 都是零 k>1 k in 整數 從pi積分到-pi都是0 cos sin 都是0 coscos k==k ==pi sin sin k==k pi sinxcos==0 ## 對任一周期函數 都可以用sinkx+coskx表示 ![Uploading file..._7hmyfxpzr]() ## 求$a_n$ ## 範例 ## 函數定義 f(-x)=-f(x) -- odd fountion 對稱原點 # Introduction to Shor's ![](https://i.imgur.com/2WwPab9.png) $if X^{2a} = Nk +1$ $then X^{2a}-1 = Nk$ 因此如果我們想要分解N我們需要找到a使$X^2a mod N=1$