一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在量子計算機上編程——QPU編程

西西 ? 來源:博客園 ? 作者: 夏天喵 ? 2020-09-23 14:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今天要給大家介紹的是這本書《Programming Quantum Computers —— Essential Algorithms and Code Samples》,主要講如何在量子計算機上編程,又示例的代碼可以跑 https://oreilly-qc.github.io./ ,這本書的理解方向是純粹計算機的,連矩陣都很少涉及,一個量子計算機就像是協(xié)處理器一樣,很像我們現(xiàn)在的GPU

單量子比特

這本書中對于量子的表達(dá)方式如下circle notation:

藍(lán)色圈的面積就是這個量子態(tài)測量后是這個狀態(tài)的概率,中間的藍(lán)色短線代表他們的相位,因為全局相位也觀察不出來,所以一般|0? |0?就是朝上的。對于一個量子比特來說,重要的也就這兩個,magnitude和relative phase(可能因為重要的是概率大小,所以他其實沒有提amplitude其實是一個復(fù)數(shù))。

這兩個態(tài)實際上是等價的。

電路圖呢,一般長這樣

這個電路圖對應(yīng)的代碼如下:(這個例子都可以在上面那個網(wǎng)站上跑起來)

qc.reset(1);         // allocate one qubit
qc.write(0);         // write the value zero
qc.had();            // place it into superposition of 0 and 1
var result = qc.read();  // read the result as a digital bit

第一步就是申請一個qubit,就像你要給變量分配空間一樣。

第二步寫0,其實寫0很容易,你可以直接測量,要么0,要么1,如果結(jié)果是1的話,再做一個not操作就好;當(dāng)然,你要是嫌麻煩,對于一個qubit,長時間的靜置他,他也會變成0,畢竟還是基態(tài)比較穩(wěn)定。

第三步就是進行一個H門的操作

第四步讀,其實就是測量了

常見的作用于單量子比特操作的表達(dá)方式:

其中值得一提的是PHASE相位操作,phase操作只作用在 |1?|1? 上,因為他的效果是改變相對相位,如果大家都改變就沒有什么用了。可能有同學(xué)聽說過繞X軸旋轉(zhuǎn)和繞Y軸旋轉(zhuǎn),這些都是針對Bloch球的表達(dá)方式,與這里的circle notation的方式不要弄混了。

一個操作也可能是其他幾個操作的組合,比如:

如果我們可以把not變成H+180°旋轉(zhuǎn)+H,那么我們也可以把中間的180°旋轉(zhuǎn)變成兩個90°的旋轉(zhuǎn),中間再加上兩個H,因為HH=IHH=I,他們可以相互抵消,這樣我們還可以得到RNOT:

COPY:這是一個需要注意的操作,因為量子程序里沒有復(fù)制,這也保障了量子傳輸?shù)男畔⒉粫桓`聽, 因為你要竊聽,你就需要去讀,一讀就是測量,而量子比特一測量就是坍縮。由于量子不能復(fù)制,所以,上述所有操作都是在原有的那個比特上操作的,所以操作就會被發(fā)現(xiàn)。

一個簡單例子:

對于這里例子來說, A1A1 和 A2A2 是對qubit Hadmard門操作后測量得到的隨機值,因為這個是真隨機,所以就不會被竊聽者提前知道或者預(yù)估,那么當(dāng)我傳輸這個被我用紅色圈出來的比特的時候,spy并不知道這個比特是否執(zhí)行了H門和not操作,那他就只能猜了,25%的概率,圖里面所示就是他猜有執(zhí)行了,然后他再按照他的猜測如法炮制一個qubit繼續(xù)傳遞,當(dāng)B收了這個bit后,B也隨機一個數(shù)據(jù)B2B2,看是否執(zhí)行H門,然后測量。這個時候消息也都收到了,測量也都測量好了,那么把 A2A2的信息發(fā)過來也和竊聽沒有關(guān)系了,如果 B2B2 A2A2 的結(jié)果一樣,那么測量結(jié)果應(yīng)該一樣,如果不一樣,那么一定被竊聽了。

這樣的成功概率有多少呢? B2B2 A2A2 一樣的概率0.5,在這種情況下spy被發(fā)現(xiàn)的概率0.25??雌饋聿皇呛芨撸侨绻覀冇幸话賯€比特先檢測一下這條線路,不被發(fā)現(xiàn)的概率將會降到百萬分之一。

現(xiàn)在來看一下代碼:https://oreilly-qc.github.io/?p=2-4

qc.reset(3);//申請三個qubit

qc.discard();
var a = qint.new(1, 'alice'); //給其中一個變量命名為a,但是畫出來的電路圖中顯示alice
var fiber = qint.new(1, 'fiber');
var b = qint.new(1, 'bob');

function random_bit(q) {//對一個初始化為0的比特,進行H操作,然后測量,測量結(jié)果是隨機的
    q.write(0);
    q.had();
    return q.read();
}

// Generate two random bits
qc.label('get two random bits');
var send_had = random_bit(a);//得到是否執(zhí)行H門的隨機值
var send_value = random_bit(a);//得到是否not的隨機值
qc.label('');

// Prepare Alice's qubit
a.write(0);//a重新賦值為0,所以前面取隨機值的操作也可以在a上進行
qc.label('set value');
qc.nop();
if (send_value)
    a.not();
qc.nop();
qc.label('');
qc.nop();
qc.label('apply had');
qc.nop();
if (send_had)
    a.had();
qc.nop();
qc.label('');

// Send the qubit!
fiber.exchange(a);

// Activate the spy
var spy_is_present = true;
if (spy_is_present)
{
    var spy_had = 1;
    qc.nop();
    qc.label('spy');
    if (spy_had)
        fiber.had();
    stolen_data = fiber.read();
    fiber.write(0);
    if (stolen_data)
        fiber.not();
    if (spy_had)
        fiber.had();
    qc.label('');
    qc.nop();
}

// Receive the qubit!
var recv_had = random_bit(b);
fiber.exchange(b);
qc.label('apply had');
qc.nop();
if (recv_had)
    b.had();
qc.nop();
qc.label('');
qc.nop();
qc.label('read value');
qc.nop();
recv_val = b.read();
qc.nop();
qc.label('');
qc.nop();

// Now Alice emails Bob to tell
// him her had setting and value.
// If the had setting matches and the
// value does not, there's a spy!
if (send_had == recv_had)
    if (send_value != recv_val)
        qc.print('Caught a spy!\n');

多量子比特

多量子比特的表示方法和單量子比特沒有什么區(qū)別,下面的數(shù)字就是把他們從01的二進制換算成了我們熟悉的十進制。0x是十六進制的表示方法,最上面的是地位,正好可以not操作表示了出來,0就是000,1就是001,2就是010……以此類推

真要說和單量子比特的區(qū)別,那主要是兩方面,一個是糾纏;另一個就是受控操作。

糾纏

糾纏好說,兩個糾纏的量子比特就是其中一個的測量結(jié)果會影響另一個。

具體可以看一下這篇量子糾纏1——量子比特、Bell態(tài)、EPR佯謬

受控操作

受控操作就是說有兩類比特,一個是用來控制的,另一個是被控制的。

比如大家耳熟能詳?shù)腃NOT,當(dāng)控制比特是1的時候,就翻轉(zhuǎn)被控制的比特,如果控制比特是0的時候,那就不做操作。還有CCNOT門,又叫做toffli門,有兩個控制比特,只有當(dāng)他們都為1的時候才翻轉(zhuǎn)。

現(xiàn)在要介紹一個前面沒有提過的CPHASE受控相位門,和CNOT相似,同樣是當(dāng)控制比特為1的時候才進行,但是正如前面我們提過,PHASE操作只操作在1上,也就是說,如果這個操作被執(zhí)行其實只有一種情況,那就是|11?|11? 。

在前面我們表示過一個旋轉(zhuǎn)180°的相位操作可以表示成一個 H+NOT+H figure 2-14

那么現(xiàn)在受控相位操作擁有了三種表示方法:

當(dāng)控制比特為0的時候,CNOT就不會發(fā)生,兩個H又正好抵消了。

phase kickback

在這之所以說這么多的受控相位操作是因為這里面有個一很有趣的小技巧 QPU Trick: Phase Kickback 來看下面這個電路圖

這個電路圖很容易理解,一種理解方式就是把register 1當(dāng)作控制比特,register 2 當(dāng)作受控比特,兩個H門使得register 1變成了等可能的四種情況 12|00?+12|01?+12|10?+12|11?12|00?+12|01?+12|10?+12|11? 。

現(xiàn)在來看看結(jié)果:

因為register 2并不是疊加態(tài),所以沒有相對相位,而絕對相位又測不出來,所以他可以說是沒有變的,改變了的,反而是register 1 , |3?|3? 轉(zhuǎn)了135°是因為兩個都為1,45°和90°都轉(zhuǎn)了。作為一個受控操作,控制比特反而變了,而受控比特沒有改變。

swap

受控操作當(dāng)然也能連在一起,得到一些有用的結(jié)果,比如三個CNOT操作,他就可以交換兩條線路。

這個的證明是一件很容易的事情,你可以取一個任意態(tài)推一邊,專門把這個提出來說一遍是因為這個還能做一件有趣的事情,那就是驗證兩個比特是否相等。我們需要用到的是CSWAP,即當(dāng)控制比特為1時才交換。

當(dāng)我們的output比特經(jīng)過H門后,他就變成了等概率的 |0?|0? 和 |1?|1? 經(jīng)過一個CSWAP,為1情況下的input1和input2就會交換,也就是說他們原來x概率的ab就變成了x概率的ba了,這樣的問題出在哪?

如果概率還是原來的分布,那么在經(jīng)過一個H門output等待率的 |0?|0? 和 |1?|1? 又會化簡成 |0?|0? ,各種各樣的 |1?|1? 的概率會相互抵消掉,那么在經(jīng)歷一個NOT操作就一定會得到1。

那,如果這兩個數(shù)據(jù)不一樣,就一定得不到1嗎?不一定,只是他有概率不是1,而一旦有概率不是1,那只要多檢測幾次就一定能檢測出來,就像上面那個竊聽一樣,明明只有四分之一的概率,但僅需要一百次,測不出來的可能性就降到了百萬分之一。

當(dāng)然,代碼在這里https://oreilly-qc.github.io/?p=3-4,這也是這本書的特色了。

受控操作當(dāng)然不止這些,但是很多受控操作都可以分解成CNOT加上一些相位操作,我們可以自己構(gòu)造自己需要的操作。

遠(yuǎn)距離操控隨機

這里的遠(yuǎn)距離操控不是指我能扣確定他是什么,如果我能確定,那就不是隨機了,而是說,我把兩個比特弄成糾纏,當(dāng)我一個測出來是0的時候,另一個以x%的概率得到0,至于我測出來是不是0看天意,對面測出來是不是0,也看天意,其中唯一能確定的,就只有這個x了。

這個例子是書上例子3-6 https://oreilly-qc.github.io/?p=3-6 方法很簡單,就是我H門操作后,我旋轉(zhuǎn)45°的角度,這樣再來一個H門,因為相位變了,符號對不上,所以回不去了,就有了關(guān)聯(lián)。

更強大的一點的應(yīng)用是——量子隱形傳態(tài),量子隱形傳態(tài) Quantum Teleportation 提過了,就不在累述。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3689

    瀏覽量

    95158
  • 量子
    +關(guān)注

    關(guān)注

    0

    文章

    490

    瀏覽量

    25857
  • 量子計算機
    +關(guān)注

    關(guān)注

    4

    文章

    535

    瀏覽量

    26417
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    何在計算機上安裝麒麟操作系統(tǒng)Kylin V10 SP3

    麒麟操作系統(tǒng) Kylin V10 SP3 是一款基于 Linux 的操作系統(tǒng),廣泛應(yīng)用于政府、企業(yè)和個人用戶。本文將詳細(xì)介紹如何在計算機上安裝麒麟操作系統(tǒng) Kylin V10 SP3,幫助您順利完成安裝并開始使用。
    的頭像 發(fā)表于 04-11 15:32 ?1824次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>計算機上</b>安裝麒麟操作系統(tǒng)Kylin V10 SP3

    基于玻色量子相干光量子計算機的混合量子經(jīng)典計算架構(gòu)

    近日,北京玻色量子科技有限公司(以下簡稱“玻色量子”)與北京師范大學(xué)、中國移動研究院組成的聯(lián)合研究團隊提出一種基于相干光量子計算機的混合量子
    的頭像 發(fā)表于 03-10 15:43 ?475次閱讀
    基于玻色<b class='flag-5'>量子</b>相干光<b class='flag-5'>量子</b><b class='flag-5'>計算機</b>的混合<b class='flag-5'>量子</b>經(jīng)典<b class='flag-5'>計算</b>架構(gòu)

    Quantinuum“Reimei”量子計算機在RIKEN正式運行

    近日,東京——全球領(lǐng)先的集成量子計算公司Quantinuum與日本頂尖的綜合研究機構(gòu)RIKEN共同宣布,Quantinuum的“Reimei”量子計算機已在RIKEN Wako園區(qū)(位
    的頭像 發(fā)表于 02-17 10:21 ?457次閱讀

    量子處理器是什么_量子處理器原理

    量子處理器(QPU)是量子計算機的核心部件,它利用量子力學(xué)原理進行高速數(shù)學(xué)和邏輯運算、存儲及處理量子
    的頭像 發(fā)表于 01-27 11:53 ?912次閱讀

    量子計算機與普通計算機工作原理的區(qū)別

    ? 本文介紹了量子計算機與普通計算機工作原理的區(qū)別。 量子計算是一個新興的研究領(lǐng)域,科學(xué)家們利用量子
    的頭像 發(fā)表于 11-24 11:00 ?1452次閱讀
    <b class='flag-5'>量子</b><b class='flag-5'>計算機</b>與普通<b class='flag-5'>計算機</b>工作原理的區(qū)別

    使用CUDA-Q實現(xiàn)量子聚類算法

    量子計算機能夠利用疊加、糾纏和干涉等量子特性,從數(shù)據(jù)中歸納出知識點并獲得洞察。這些量子機器學(xué)習(xí)(QML)技術(shù)最終將在量子加速的超級
    的頭像 發(fā)表于 11-20 10:14 ?710次閱讀
    使用CUDA-Q實現(xiàn)<b class='flag-5'>量子</b>聚類算法

    新思科技如何應(yīng)對量子計算機的威脅

    隨著技術(shù)發(fā)展的突飛猛進,量子計算機的威脅日益凸顯。盡管量子計算機有望在天氣預(yù)報、藥物研發(fā)和基礎(chǔ)物理學(xué)等領(lǐng)域帶來革命性的變革,但它也對現(xiàn)行加密體系構(gòu)成了顯著威脅。這種威脅并非僅限于未來;
    的頭像 發(fā)表于 11-18 09:33 ?911次閱讀

    本源產(chǎn)品集納之一 :量子計算機整機系列

    本源量子研制的中國第一代、第二代、第三代自主超導(dǎo)量子計算機均已交付中國用戶使用,使中國成為世界上第三個具備量子計算機整機交付能力的國家。圖為
    的頭像 發(fā)表于 10-25 16:08 ?1694次閱讀
    本源產(chǎn)品集納之一 :<b class='flag-5'>量子</b><b class='flag-5'>計算機</b>整機系列

    本源產(chǎn)品丨量子計算機應(yīng)用——《QPanda量子計算編程

    量子計算機走出實驗室造中國自主可控量子計算機由于量子計算機的研制屬于巨型系統(tǒng)工程,真機搭建復(fù)雜
    的頭像 發(fā)表于 09-27 08:07 ?609次閱讀
    本源產(chǎn)品丨<b class='flag-5'>量子</b><b class='flag-5'>計算機</b>應(yīng)用——《QPanda<b class='flag-5'>量子</b><b class='flag-5'>計算</b><b class='flag-5'>編程</b>》

    利用AI構(gòu)建實用量子計算應(yīng)用

    在實踐中構(gòu)建實用量子計算機的難度極高,這需要大幅提高量子計算機的規(guī)模、保真度、速度、可靠性和可編程性,才能充分發(fā)揮其優(yōu)勢。另外,還需要功能強
    的頭像 發(fā)表于 09-09 10:24 ?799次閱讀
    利用AI構(gòu)建實用<b class='flag-5'>量子</b><b class='flag-5'>計算</b>應(yīng)用

    中國量子計算機證明是可用的——《瞭望》刊發(fā)中國量子信息奠基人郭光燦院士專訪

    量子計算機處理特定數(shù)據(jù)能力與電子計算機相比,相當(dāng)于電子計算機與算盤相比◇本源量子把72比特的“本源悟空”上到云端向全世界開放,被120多個國
    的頭像 發(fā)表于 08-30 12:41 ?481次閱讀
    中國<b class='flag-5'>量子</b><b class='flag-5'>計算機</b>證明是可用的——《瞭望》刊發(fā)中國<b class='flag-5'>量子</b>信息奠基人郭光燦院士專訪

    《圖說本源產(chǎn)品》系列之五:“本源悟空”量子計算機整機

    科技自立自強不能停留在論文中、匯報中和總結(jié)中,而是要一個一個產(chǎn)品制造出來。本源,擁有中國第一條超導(dǎo)量子計算機制造鏈。《圖說本源產(chǎn)品》以圖片形式,系列展示中國自主量子計算系列產(chǎn)品。產(chǎn)品簡
    的頭像 發(fā)表于 08-13 08:22 ?1700次閱讀
    《圖說本源產(chǎn)品》系列之五:“本源悟空”<b class='flag-5'>量子</b><b class='flag-5'>計算機</b>整機

    借助NVIDIA超級計算機加速量子計算發(fā)展

    科學(xué)期刊《自然》(Nature)本月早些時候發(fā)表了一項研究,通過使用 NVIDIA 驅(qū)動的超級計算機,驗證了量子計算的商業(yè)化途徑。
    的頭像 發(fā)表于 07-25 09:55 ?898次閱讀

    第三屆CCF“司南杯”量子計算編程挑戰(zhàn)賽獲獎名單公布!

    轉(zhuǎn)自中國計算機學(xué)會量子計算專業(yè)委員會近日,由中國計算機學(xué)會(CCF)主辦,中國計算機學(xué)會量子
    的頭像 發(fā)表于 07-16 08:22 ?629次閱讀
    第三屆CCF“司南杯”<b class='flag-5'>量子</b><b class='flag-5'>計算</b><b class='flag-5'>編程</b>挑戰(zhàn)賽獲獎名單公布!

    【《計算》閱讀體驗】量子計算

    ,經(jīng)典計算可以看作量子計算的一個特例,所有經(jīng)典計算都可以在量子計算機上模擬。最后,
    發(fā)表于 07-13 22:15