第一、二和四章和心靈哲學有點相關,當老師提到多重實現性和涂林機的時候,因為我已經讀過那幾章所以非常能理解老師在說什麼。
這本書還提到關於密碼學的事,真是太有趣了。所以我後來又去借《碼書:編碼與解碼的戰爭》,雖然不曉得什麼時候能看完。
不過這本書裡第七章提到的某件事讓我很困惑:
量子計算不像傳統的計算,量子計算必須能夠完全地可逆。為了瞭解什麼叫做可逆性,我們可以想想一個簡單的口袋型計算機裡頭的運作情形,當按下2+2,結果出現4,但沿著這個計算方向,前往答案的路徑將被摧毀,如果你遇到一台計算機顯示出4,你無法知道原先的輸入是2+2,或1+3,還是(237×558)/2-66119。…(略)…這種計算是不可逆的,你無法再次回頭。這章稍後介紹了一個解決方法:可控制否邏輯閘。輸入和輸出都有兩個位元,第一個位元用來控制否邏輯閘會不會運作(0是關閉,1是開啟),第二個位元才是否邏輯閘要處理的位元(輸入1則輸出0,輸入0則輸出1)。只要把可控制否邏輯閘的輸出值丟回邏輯閘裡就可以得到輸入值;此外,其他的邏輯閘都可以用可控制否邏輯閘做出來,所以問題解決了。
相同的電子健忘症也會發生在每個單一邏輯閘的層面上,一個否邏輯閘具有明確的可逆性,假設結果是1,你可以確知它的輸入一定是0。或邏輯閘和與邏輯閘只會在單一面向上運作,假如輸入是10或01或11,則結果是1。只知道它的輸出值,是不可能知道原先的輸入值,過往的歷史已經被抹去了。
…(略)…總的來說,在量子系統內,訊息通常是守恆的,歷史從未被抹去的。如果邏輯閘是由單一原子或次原子粒子所組成,它們應該存在於一台量子電腦內,而它們所處理的計算過程必須是可逆的。你可以盡其所能的操縱這些粒子來解決問題,一旦你有了答案,理論要求一定存在著一種方式可以回到原先所提的問題。它必須有機會從輸入回到輸出,然後再次回到輸入。
我有兩個疑問:
- 否邏輯閘本來就是可逆的啊,幹嘛還要多加一個控制邏輯閘會不會運作的位元?
- 書上也沒講其他的邏輯閘要怎麼用可控制否邏輯閘做出來;只靠否邏輯閘到底要怎麼弄出或邏輯閘、與邏輯閘啊?
關於第一個疑問,嚴可宣說電腦的電路板(我不太記得他說的是什麼,就先當做是電路板好了)上本來就有控制邏輯閘會不會運作的設計,所以沒什麼好奇怪的。
我上次一時沒搞懂你的意思,忘掉那個答案吧~
ReplyDelete我想作者在這裡想說的是,量子電路中的邏輯閘必須有可逆性。傳統電路中像是NOT這種邏輯閘有可逆性,但是AND和OR就沒有。我們知道傳統電路僅僅用NAND這種邏輯閘就可以達到功能的完備性(拼湊出所有可能類型的邏輯閘),那麼量子電路有沒有這樣一種邏輯閘,只用它就可以達到功能的完備性呢?畢竟只用NOT肯定是不夠的。答案是有的,這種邏輯閘稱為Toffoli Gate,它有三個輸入,三個輸出:
INPUT OUTPUT
a b c d e f
0 0 0 0 0 0
0 0 1 0 0 1
0 1 0 0 1 0
0 1 1 0 1 1
1 0 0 1 0 0
1 0 1 1 0 1
1 1 0 1 1 1
1 1 1 1 1 0
實際上可以把它理解成一個從|a, b, c〉對應到|a, b, c XOR (a AND b)〉的邏輯閘,從真值表很明顯可以看出它是可逆的。它跟controled-NOT gate的差別在於它用a和b兩個量子位元當作NOT的開關,而CNOT只用了一個量子位元當開關(所以Toffoli Gate又稱為CCNOT)。要證明一個邏輯閘有功能的完備性,最簡單的方法是說明它可以模擬AND和NOT就行了。看來用Toffoli Gate來模擬傳統電路的AND是很簡單的,比方說c只要固定輸入0,我們就得到了一個AND gate,它的輸入在a和b,輸出在f。你可以自己試試看湊出NOT gate和OR gate。
關於Toffoli Gate的資料在這裡:
http://en.wikipedia.org/wiki/Quantum_gate
這個方法好好聰明噢!謝謝你的資訊。
ReplyDelete可是那本書裡提到,CNOT的兩個位元,一個是用原子的電子在高能量軌或低能量軌(書我拿去還了所以不確定是不是叫做能量軌)來代表0和1,另一個是用原子是左旋或右旋來代表。那CCNOT的第三個位元要拿原子的什麼東西來代表啊?
幹,你們都在唸好難的東西
ReplyDelete>那CCNOT的第三個位元要拿原子的什麼東西來代表啊?
ReplyDelete這你可問倒我啦,我又不懂物理 XD
維基百科說Toffoli gate可以用5個2量子位元的量子邏輯閘來實作,不知道意思是不是說用CNOT的那兩個量子位元實作的同樣方法就能搞定...
這裡有論文你可以慢慢看:
http://arxiv.org/abs/quant-ph/9503016
謝謝你XD
ReplyDelete