聯課量子

 

  • 建中205林子鈞(建中有三個林子鈞)
  • aka linki,ranger,kumokunn,冷氣,AC
  • 建中資訊社學術長
  • SQCS總召
  • 想學量子演算法所以來當量子講師
  • 不會C++、python、ML

講師介紹:

 

學生量子電腦交流會 SQCS

想要學習更多量子咚咚就進去ㄅ

 

今日內容:

  • 基本量子電腦介紹
  • 量子電路介紹
  • 量子骰

量子電腦

基於量子力學來實現的電腦

優點:

基於原理不同,在一些古典電腦

做不好的地方可能有奇效

 

缺點:

技術尚未非常成熟,需在極低溫下執行

也無法供給大眾使用(個人電腦)

量子電腦應用

主要分成兩類

  • 量子電路

利用量子位元和量子邏輯閘對演算法做優化

  • 量子退火

利用量子的特性從候選狀態中選出最佳解

量子電路

小小補充:

時間複雜度

描述演算法的運行速度

會用在判斷演算法執行時間或是可行度

通常使用2048位元的數

古典電腦在花費地球年齡的時間(46億年)都跑不完

但量子電腦電腦可以快速算出來\(O({log(N)}^3)\)

由於分子在微觀上不可以用古典物理描述

需要用到量子力學才能描述

利用量子電腦來模擬分子

計算出最低能量

量子骰

利用量子力學來達到真正的隨機

Grover's Algorithm

利用量子中的疊加態來達到快速地搜索
\(O(N)\)->\(O(\sqrt{N})\)

量子隨機行走

用量子電腦模擬random walk

 

一些比較不常見的量子演算法

(能做的比古典電腦好)

有興趣可以晃晃

量子退火

模擬退火

從初始狀態經由類似降溫的

過程達到最佳解

(通常用來在所有狀態中

尋找最佳解)

量子模擬退火

做一樣的事情但是因為
量子穿隧效應
可以有很好的效果

專注在量子退火的量子計算機

 

量子力學特性

量子疊加

有看過這隻可憐貓貓嗎?

他在被觀測前,沒有人知道他是死是活

可以說他是既死又生

這種既死又生的狀況,我們稱為疊加態

那隻貓貓在被打開箱子看的時候

才知道他是活或死

糾纏態
 

幾個粒子在彼此交互作用後,由於各個粒子所擁有的特性已綜合成為整體性質,無法單獨描述各個粒子的性質....

簡單來說,就是兩個粒子有特殊關係

0 1
0 False True
1 True Flase
0 1
0 True Flase
1 Flase True

梵力B

梵力A

栗子1:

有A和B兩個粒子

他們有兩種狀態

分別是順時針轉和逆時針轉

如果他們發生量子糾纏

他們同時順時針或同時逆時針

不會轉不同邊

栗子2:

有A和B兩個粒子

他們有兩種狀態

分別是順時針轉和逆時針轉

如果他們發生量子糾纏

他們一個逆時針一個順時針

不會同時轉同一邊

什麼是 \(Qubit\)(量子位元)?

先從bit(古典位元)說起

bit(古典位元):

電腦儲存資訊的最小單位

會有0和1兩種狀態

通常以沒通電代表0

有通電代表1

 

 \(Qubit\)可以同時是0跟1

bit只有0或1

還記得之前講的薛丁格的貓嗎

 

\(Qubit\)也跟貓貓一樣

有量子疊加態的特性

疊加態要在被觀測之後,才會變成0或是1

\( |\psi\rangle = \alpha |0\rangle + \beta |1\rangle ,   \alpha ,\beta \in \mathbb{C},   \left | \alpha \right |^{2} + \left | \beta \right |^{2} = 1 \)

在此定義中,\( \left | \alpha \right |^{2} \)代表著

此\(Qubit\)被觀察到後,為0的機率

相對的,\( \left | \beta \right |^{2} \)就是代表著

\(Qubit\)被觀察到後,為1的機率

若將Qubit以\(|\psi\rangle\)表示
會滿足以下的式子

一個 \(Qubit\)的狀態,可以被描繪在布洛赫球面\(Bloch Sphere\)上

球頂,就表示狀態為 |0 \rangle0 的 \(Qubit\)

球底,就表示狀態為 |1 \rangle1 的 \(Qubit\)Qubiㄌ量子

由來解釋(補充)

為什麼會將 Qubit

表示在單位圓上呢?

原因是來自於定義的 \(\left | \alpha \right |^{2} + \left | \beta \right |^{2} = 1\)

對於這個的第一印象,

就是與\(cos^{2}(\theta)+sin^{2}(\theta)=1\) 相似,

所以就引進了

\(\left | \alpha \right |=cos(\theta),\ \left | \beta \right |=sin(\theta)\)

的表示法。

此部分為大電神蕭登鴻引述大電神林尚廷學長做出的完備解釋

單量子

傳統電腦邏輯閘

AND

OR

NOT

電腦計算=bit(位元)+邏輯閥

藉由讓bit通過邏輯閥,我們可以達成想讓電腦做到的事

AND

介紹其中一個邏輯閥

量子電腦跟傳統電腦一樣都是由位元和邏輯閘構成的

量子電腦也有量子的邏輯閘喔

Pauli-X gate

Hadamard gate

Ry gate

接下來要介紹他們

X Gate(Pauli-X gate)

這個量子閘操作一個\(Qubit\)
作用是 "反轉量子態"

\( (|0\rangle\rightarrow |1\rangle,  |1\rangle\rightarrow |0\rangle) \)

也可視為是在布洛赫球面上

轉\(x\)軸\(180^{\circ}\)

H Gate(Hadamard gate

這個量子操作一個 \(Qubit\),
作用是讓這個 \(Qubit\) 進入疊加態

也可視為是在布洛赫球面上

沿著與X軸、Z軸成45度、

和Y軸成90度的軸轉\(180^{\circ}\)

\((|0\rangle \rightarrow |+\rangle, |1\rangle \rightarrow |-\rangle)\)

更準確地說,是 50% 為 \(|0\rangle\), 50% 為 \(|1\rangle\) 的疊加態。

備註:

\(|+\rangle\)= \(\frac{|0\rangle + |1\rangle}{\sqrt{2}}\)

\(|-\rangle\)= \(\frac{|0\rangle - |1\rangle}{\sqrt{2}}\)

Ry Gate (Rotation Y Gate)

這個量子操作一個 \(Qubit\),
作用是在 \(Bloch  Sphere\) 上旋轉 \(Y\)軸 \(\psi\) 度來改變量子態。

Z Gate

這個量子操作一個 \(Qubit\),
作用是把這個\(Qubit\)的

\(|1\rangle \)正負號改變

多量子系統

cX Gate (Controlled X Gate)

這個量子操作 \(2\) 個 \(Qubit\)

作用是 :

如果第一個 \(Qubit\) 為 \(|1\rangle\),

那麼就對第二個 \(Qubit\) 操作 \(X  Gate\)。

\(\leftarrow\) 第一個 \(Qubit\) (決定者)

\(\uparrow\) 第二個 \(Qubit\) (被操控者)

糾纏的量子態,無法以\(Bloch  Sphere\) 表示,只能表示在 \(Qsphere\) 上。

\(\rightarrow\)

\(\bigcirc\)

cH Gate (Controlled Hadamard Gate)

這個 \(Gate\) 的功能跟

剛剛的 \(cX  Gate\)只差在改成

對 \(Qubit\) 施加一個 \(H  Gate\) 。

Swap gate

用於交換兩個\(Qubit\)的量子態

好玩小遊戲:

可以練習量子邏輯閘

量子骰

先談談古典電腦的亂數(擲骰子)

你所不知道的祕密

古典亂數產生其實不亂

是由一個人類無法預計下一項

的函數來產生亂數

擲骰子也不是隨機的

只要知道背後的函數就可以破解

栗子:產生方式

\(a_n=(a_{n-1}*8+5)\%49\)

\(\{0,5,45,22,34,32,16,35,40,31,8,20,18,2\\,21,26,17,43,6,4,37,7,12,3,29,41,39,23,\\42,47,38,15,27,25,9,28,33,24,1,13,11,\\44,14,19,10,36,48,46,30\}\)

量子骰

藉由量子位元的隨機

來達到理論上的真正隨機

學這個的好處

  • 真的隨機

  • 訓練思考

  • 練習量子電路

  • \\random walk//
  • 好酷(?

壞處

  • 現實中還是有誤差 ; _ ;

  • 太多\(Qubit\)可能不能丟真的機器

  • 講師太弱不會更好優化的量子骰

  • 好累(?

naive 想法

因為要二進位

需要\(\lceil log(n) \rceil\)個\(Qubit\)

各放一個\(H\) gate

會有\(2^{\lceil log(n) \rceil }\)個狀態
\( (2^{\lceil log(n) \rceil }\ge n )\)

機率平均但會骰到一些不合法的值

所以要可能要重骰 ; _ ;

如果不要重骰?

讓狀態剛好\(n\)個

HOW?

使用Ry gate微調:


\(|0\rangle \rightarrow \sqrt{1-\beta}|0\rangle + \sqrt{\beta}|1\rangle\)

使\(|1\rangle\)機率變成\(\beta\)

\(Ry(2sin^{-1}( \sqrt{\beta}))|1\rangle\)

將\(n\)拆成二進位

對每個bit分別做事

從最高的bit開始

\(N=a_1 2^N+a_2 2^{N-1}+a_3 2^{N-2}.....\)

ex:
\(7=4+2+1\)

我們讓量子骰有\(0\)~\(N-1\)的狀態

出來的結果再全體+1

\(7=4+2+1\)

對於\(4\)來說

他存在的狀態有\(3\)種

不存在的狀態有\(4\)種

因此我們希望它有\(\frac{3}{7}\)的機率是\(|1\rangle\)

\(7=4+2+1\)

對於\(2\)來說

\(4\)為不存在時他不會造成不合法的狀態

\(4\)為存在時

\(2\)存在有\(1\)種

\(2\)不存在有\(2\)種

因此在\(4\)存在時使2有\(\frac{1}{3}\)的機率是\(|1\rangle\)

以此類推到最後一位

通式:

如果剩\(N\)個狀態,現在在\(2^k\)

\(N>2^k\rightarrow  Ry(2sin^{-1}( \sqrt{ \frac{N-2^k}{N}}))跟H\)

\(N=2^k\rightarrow  不做Ry只做H\)

\(N<2^k\rightarrow  到下一個k\)

\(N\geq 2^k\)則\(N=N-2^k\)

一直做到\(N=0\)

飯粒:七面骰

\(7-2^2>0\rightarrow Ry+H\) 

\(3-2^1>0\rightarrow Ry+H\)
\(1-2^0=0\rightarrow Ry+H\)

23面骰的例子

以上為簡單量子骰

實作會有大量誤差和過多的電路

還需要更多的優化

Made with Slides.com