##EasyReadMore##

11.05.2010

下一波資訊革命:量子電腦

我覺得這本書挺有趣的。第一章作者用自己的經歷幫讀者熱身,說明電腦零件的材質是什麼不重要,重要的是那些零件怎麼組合。第二章則是說明東西要怎麼組合以發揮電腦的功能。第三章簡介量子力學。第四章提到涂林機怎麼做運算,以及當解決一個問題需要進行非常多、多到用超級電腦算了很久很久也算不完的運算時,量子電腦怎麼幫上忙。後面幾章我懶得簡介就算了。

第一、二和四章和心靈哲學有點相關,當老師提到多重實現性和涂林機的時候,因為我已經讀過那幾章所以非常能理解老師在說什麼。

這本書還提到關於密碼學的事,真是太有趣了。所以我後來又去借《碼書:編碼與解碼的戰爭》,雖然不曉得什麼時候能看完。

不過這本書裡第七章提到的某件事讓我很困惑:
量子計算不像傳統的計算,量子計算必須能夠完全地可逆。為了瞭解什麼叫做可逆性,我們可以想想一個簡單的口袋型計算機裡頭的運作情形,當按下2+2,結果出現4,但沿著這個計算方向,前往答案的路徑將被摧毀,如果你遇到一台計算機顯示出4,你無法知道原先的輸入是2+2,或1+3,還是(237×558)/2-66119。…(略)…這種計算是不可逆的,你無法再次回頭。

相同的電子健忘症也會發生在每個單一邏輯閘的層面上,一個否邏輯閘具有明確的可逆性,假設結果是1,你可以確知它的輸入一定是0。或邏輯閘和與邏輯閘只會在單一面向上運作,假如輸入是10或01或11,則結果是1。只知道它的輸出值,是不可能知道原先的輸入值,過往的歷史已經被抹去了。

…(略)…總的來說,在量子系統內,訊息通常是守恆的,歷史從未被抹去的。如果邏輯閘是由單一原子或次原子粒子所組成,它們應該存在於一台量子電腦內,而它們所處理的計算過程必須是可逆的。你可以盡其所能的操縱這些粒子來解決問題,一旦你有了答案,理論要求一定存在著一種方式可以回到原先所提的問題。它必須有機會從輸入回到輸出,然後再次回到輸入。
這章稍後介紹了一個解決方法:可控制否邏輯閘。輸入和輸出都有兩個位元,第一個位元用來控制否邏輯閘會不會運作(0是關閉,1是開啟),第二個位元才是否邏輯閘要處理的位元(輸入1則輸出0,輸入0則輸出1)。只要把可控制否邏輯閘的輸出值丟回邏輯閘裡就可以得到輸入值;此外,其他的邏輯閘都可以用可控制否邏輯閘做出來,所以問題解決了。

我有兩個疑問:
  1. 否邏輯閘本來就是可逆的啊,幹嘛還要多加一個控制邏輯閘會不會運作的位元?
  2. 書上也沒講其他的邏輯閘要怎麼用可控制否邏輯閘做出來;只靠否邏輯閘到底要怎麼弄出或邏輯閘、與邏輯閘啊?
關於第一個疑問,嚴可宣說電腦的電路板(我不太記得他說的是什麼,就先當做是電路板好了)上本來就有控制邏輯閘會不會運作的設計,所以沒什麼好奇怪的。

5 comments:

  1. 我上次一時沒搞懂你的意思,忘掉那個答案吧~

    我想作者在這裡想說的是,量子電路中的邏輯閘必須有可逆性。傳統電路中像是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
  2. 這個方法好好聰明噢!謝謝你的資訊。

    可是那本書裡提到,CNOT的兩個位元,一個是用原子的電子在高能量軌或低能量軌(書我拿去還了所以不確定是不是叫做能量軌)來代表0和1,另一個是用原子是左旋或右旋來代表。那CCNOT的第三個位元要拿原子的什麼東西來代表啊?

    ReplyDelete
  3. 幹,你們都在唸好難的東西

    ReplyDelete
  4. >那CCNOT的第三個位元要拿原子的什麼東西來代表啊?
    這你可問倒我啦,我又不懂物理 XD
    維基百科說Toffoli gate可以用5個2量子位元的量子邏輯閘來實作,不知道意思是不是說用CNOT的那兩個量子位元實作的同樣方法就能搞定...
    這裡有論文你可以慢慢看:
    http://arxiv.org/abs/quant-ph/9503016

    ReplyDelete

為了避免辛辛苦苦寫的留言送出後就不見,你可以在送出前把它複製到別處。
如果留言一直沒顯示,可能是被系統當成垃圾留言擋下來。你可以寄信到右上角的信箱叫我處理。