婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > python使用ProjectQ生成量子算法指令集

python使用ProjectQ生成量子算法指令集

熱門標(biāo)簽:富錦商家地圖標(biāo)注 武漢外呼系統(tǒng)平臺(tái) 沈陽(yáng)外呼系統(tǒng)呼叫系統(tǒng) 沈陽(yáng)人工外呼系統(tǒng)價(jià)格 如何申請(qǐng)400電話費(fèi)用 外呼系統(tǒng)哪些好辦 江西省地圖標(biāo)注 沈陽(yáng)防封電銷卡品牌 池州外呼調(diào)研線路

輸出算法操作

首先介紹一個(gè)最基本的使用方法,就是使用ProjectQ來(lái)打印量子算法中所輸入的量子門操作,這里使用到了ProjectQ中的DummyEngine后端用于保存操作的指令。比如最簡(jiǎn)單的一個(gè)Bell State的制備,可以通過如下代碼實(shí)現(xiàn),并且打印出所保存的基本操作:

from projectq import MainEngine
from projectq.cengines import DummyEngine
from projectq.ops import H, CX, All, Measure

backend = DummyEngine(save_commands=True)
eng = MainEngine(backend=backend)

qureg = eng.allocate_qureg(2)
H | qureg[0]
CX | (qureg[0], qureg[1])

All(Measure) | qureg
eng.flush(deallocate_qubits=True)

for cmd in backend.received_commands:
    print (cmd)

運(yùn)行結(jié)果如下:

Allocate | Qureg[0]
H | Qureg[0]
Allocate | Qureg[1]
CX | ( Qureg[0], Qureg[1] )
Measure | Qureg[0]
Measure | Qureg[1]
Deallocate | Qureg[0]
Deallocate | Qureg[1]

這里有一點(diǎn)需要注意的是,如果是單次運(yùn)算,我們到Measure就可以結(jié)束了。但是如果同一個(gè)線程的任務(wù)還沒有結(jié)束的話,需要在Measure之后加上一個(gè)deallocate_qubits=True的配置項(xiàng),用于解除當(dāng)前分配的量子比特所占用的內(nèi)存。

封裝的操作

在量子算法的實(shí)現(xiàn)中,我們可以用一些函數(shù)或者類來(lái)封裝一部分的量子算法操作指令,但是這可能會(huì)導(dǎo)致一個(gè)問題,那就是在ProjectQ上打印出來(lái)的操作指令沒有把封裝的模塊的內(nèi)容輸出出來(lái),比如如下的案例:

from projectq import MainEngine
from projectq.cengines import DummyEngine
from projectq.ops import H, CX, All, Measure, TimeEvolution, QubitOperator

backend = DummyEngine(save_commands=True)
eng = MainEngine(backend=backend)

qureg = eng.allocate_qureg(3)
H | qureg[0]
CX | (qureg[0], qureg[1])
TimeEvolution(1, QubitOperator('X2 X1')) | qureg

All(Measure) | qureg
eng.flush()

for cmd in backend.received_commands:
    print (cmd)

執(zhí)行結(jié)果如下:

Allocate | Qureg[0]
H | Qureg[0]
Allocate | Qureg[1]
CX | ( Qureg[0], Qureg[1] )
Measure | Qureg[0]
Allocate | Qureg[2]
exp(-1j * (1.0 X0 X1)) | Qureg[1-2]
Measure | Qureg[1]
Measure | Qureg[2]

我們發(fā)現(xiàn)這里的含時(shí)演化的操作算符沒有被分解,而是直接打印輸出了出來(lái)。但是如果在硬件系統(tǒng)中,只能夠識(shí)別支持的指令操作,這里的含時(shí)演化操作可能并未在量子硬件體系中被實(shí)現(xiàn),因此我們就需要在將指令發(fā)送給量子硬件之前,就對(duì)其進(jìn)行分解。

含時(shí)演化算符的分解

這里我們直接調(diào)用ProjectQ的配置中的restrictedgateset方法進(jìn)行操作分解,我們將單比特門操作的范圍放寬到所有的操作,但是雙比特操作只允許CX操作,并將這個(gè)配置作為engin_list配置到ProjectQ的MainEngine中:

from projectq import MainEngine
from projectq.cengines import DummyEngine
from projectq.ops import H, CX, All, Measure, TimeEvolution, QubitOperator
from projectq.setups import restrictedgateset

engine_list = restrictedgateset.get_engine_list(one_qubit_gates="any",two_qubit_gates=(CX,))
backend = DummyEngine(save_commands=True)
eng = MainEngine(backend=backend,engine_list=engine_list)

qureg = eng.allocate_qureg(3)
H | qureg[0]
CX | (qureg[0], qureg[1])
TimeEvolution(1, QubitOperator('X2 X1')) | qureg

All(Measure) | qureg
eng.flush(deallocate_qubits=True)

for cmd in backend.received_commands:
    print (cmd)

打印輸出的結(jié)果如下:

Allocate | Qureg[0]
H | Qureg[0]
Allocate | Qureg[1]
CX | ( Qureg[0], Qureg[1] )
Measure | Qureg[0]
Allocate | Qureg[2]
H | Qureg[2]
H | Qureg[1]
CX | ( Qureg[1], Qureg[2] )
Rz(2.0) | Qureg[2]
CX | ( Qureg[1], Qureg[2] )
H | Qureg[1]
Measure | Qureg[1]
H | Qureg[2]
Measure | Qureg[2]
Deallocate | Qureg[0]
Deallocate | Qureg[1]
Deallocate | Qureg[2]

可以看到含時(shí)演化算符已經(jīng)被分解并輸出了出來(lái)。由于已知單比特量子門加上一個(gè)CX是一個(gè)完備的量子門集合,因此一般我們可以直接使用這個(gè)集合來(lái)進(jìn)行量子門操作指令集的限制。

QFT的分解

QFT是ProjectQ中所自帶支持的量子傅里葉變換的量子門操作封裝,跟上一個(gè)章節(jié)中所介紹的含時(shí)演化算符類似的,我們可以用restrictedgateset來(lái)具體分解QFT算符:

from projectq import MainEngine
from projectq.cengines import DummyEngine
from projectq.ops import H, CX, All, Measure, TimeEvolution, QubitOperator, QFT
from projectq.setups import restrictedgateset

engine_list = restrictedgateset.get_engine_list(one_qubit_gates="any",two_qubit_gates=(CX,))
backend = DummyEngine(save_commands=True)
eng = MainEngine(backend=backend,engine_list=engine_list)

qureg = eng.allocate_qureg(3)
H | qureg[0]
CX | (qureg[0], qureg[1])
QFT | qureg

All(Measure) | qureg
eng.flush(deallocate_qubits=True)

for cmd in backend.received_commands:
    print (cmd)

輸出的結(jié)果如下:

Allocate | Qureg[2]
Allocate | Qureg[1]
H | Qureg[2]
Rz(0.785398163398) | Qureg[2]
Allocate | Qureg[0]
H | Qureg[0]
CX | ( Qureg[0], Qureg[1] )
R(0.785398163398) | Qureg[1]
CX | ( Qureg[1], Qureg[2] )
Rz(11.780972450962) | Qureg[2]
CX | ( Qureg[1], Qureg[2] )
R(0.392699081698) | Qureg[0]
Rz(0.392699081698) | Qureg[2]
CX | ( Qureg[0], Qureg[2] )
H | Qureg[1]
Rz(12.173671532661) | Qureg[2]
CX | ( Qureg[0], Qureg[2] )
R(0.785398163398) | Qureg[0]
Rz(0.785398163398) | Qureg[1]
CX | ( Qureg[0], Qureg[1] )
Rz(11.780972450962) | Qureg[1]
CX | ( Qureg[0], Qureg[1] )
H | Qureg[0]
Measure | Qureg[0]
Measure | Qureg[1]
Measure | Qureg[2]
Deallocate | Qureg[1]
Deallocate | Qureg[2]
Deallocate | Qureg[0]

如果2比特門操作也不加以限制的化,ProjectQ中會(huì)自動(dòng)選取最簡(jiǎn)易的分解形式:

from projectq import MainEngine
from projectq.cengines import DummyEngine
from projectq.ops import H, CX, All, Measure, TimeEvolution, QubitOperator, QFT
from projectq.setups import restrictedgateset

engine_list = restrictedgateset.get_engine_list(one_qubit_gates="any",two_qubit_gates="any")
backend = DummyEngine(save_commands=True)
eng = MainEngine(backend=backend,engine_list=engine_list)

qureg = eng.allocate_qureg(3)
H | qureg[0]
CX | (qureg[0], qureg[1])
QFT | qureg

All(Measure) | qureg
eng.flush(deallocate_qubits=True)

for cmd in backend.received_commands:
    print (cmd)

輸出結(jié)果如下:

Allocate | Qureg[0]
Allocate | Qureg[1]
H | Qureg[0]
CX | ( Qureg[0], Qureg[1] )
Allocate | Qureg[2]
H | Qureg[2]
CR(1.570796326795) | ( Qureg[1], Qureg[2] )
CR(0.785398163397) | ( Qureg[0], Qureg[2] )
H | Qureg[1]
CR(1.570796326795) | ( Qureg[0], Qureg[1] )
H | Qureg[0]
Measure | Qureg[0]
Measure | Qureg[1]
Measure | Qureg[2]
Deallocate | Qureg[1]
Deallocate | Qureg[2]
Deallocate | Qureg[0]

可以發(fā)現(xiàn)使用了CR來(lái)替代CX之后,分解出來(lái)的線路會(huì)更加的簡(jiǎn)短。

總結(jié)概要

本文主要從工程實(shí)現(xiàn)的角度,講解在ProjectQ開源量子計(jì)算模擬器框架中,實(shí)現(xiàn)量子門操作分解與輸出的方法。通過這個(gè)方法,可以限制量子指令集的范圍,將量子算法中不被支持的量子門操作等價(jià)(或近似地)變化到量子硬件體系所支持的量子指令集上。

以上就是python使用ProjectQ生成量子算法指令集的詳細(xì)內(nèi)容,更多關(guān)于python 用ProjectQ生成算法指令集的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • python 算法題——快樂數(shù)的多種解法
  • Python機(jī)器學(xué)習(xí)算法之決策樹算法的實(shí)現(xiàn)與優(yōu)缺點(diǎn)
  • Python集成學(xué)習(xí)之Blending算法詳解
  • python3實(shí)現(xiàn)Dijkstra算法最短路徑的實(shí)現(xiàn)
  • Python實(shí)現(xiàn)K-means聚類算法并可視化生成動(dòng)圖步驟詳解
  • Python自然語(yǔ)言處理之切分算法詳解
  • python入門之算法學(xué)習(xí)
  • Python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法的分類

標(biāo)簽:黑龍江 銅川 呂梁 阿里 潛江 常德 株洲 通遼

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python使用ProjectQ生成量子算法指令集》,本文關(guān)鍵詞  python,使用,ProjectQ,生成,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python使用ProjectQ生成量子算法指令集》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于python使用ProjectQ生成量子算法指令集的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    3atv在线一区二区三区| 色网综合在线观看| 亚洲乱码国产乱码精品精的特点 | 亚洲午夜在线电影| 蜜臀av性久久久久蜜臀aⅴ流畅| 午夜精品一区二区三区三上悠亚| 奇米影视在线99精品| av福利精品导航| 欧美日韩精品高清| 中文字幕巨乱亚洲| 日韩av成人高清| 色婷婷久久久综合中文字幕| 成人av网站在线| 精品噜噜噜噜久久久久久久久试看| 国产精品美女久久福利网站| 欧美高清你懂得| 亚洲一区二区黄色| 亚洲人成网站色在线观看| 另类中文字幕网| 国产精品视频你懂的| 自拍偷拍亚洲激情| 国产在线视频一区二区三区| 国产日韩欧美精品电影三级在线| 亚洲电影在线播放| 波多野结衣中文字幕一区二区三区| 欧美一区二区黄| 亚洲精品久久久蜜桃| 成人app网站| 在线播放91灌醉迷j高跟美女| 日韩电影在线观看一区| 色偷偷久久人人79超碰人人澡| 亚洲精品久久久蜜桃| 日韩一区二区免费电影| 国产很黄免费观看久久| 欧美极品少妇xxxxⅹ高跟鞋| 日本久久一区二区三区| 日韩高清不卡在线| 一区二区中文字幕在线| 日韩精品一区二区在线| 亚洲人成网站影音先锋播放| 麻豆免费看一区二区三区| 一区二区三区日韩精品| 国产一区二区不卡在线| 色8久久精品久久久久久蜜| 免费在线欧美视频| 亚洲一区二区三区中文字幕在线| 欧美成人精品福利| 精品视频在线视频| 91丨九色porny丨蝌蚪| 丰满少妇在线播放bd日韩电影| 另类专区欧美蜜桃臀第一页| 一个色妞综合视频在线观看| 亚洲精品一区二区三区影院 | 久久久久国产精品厨房| 欧美精品三级日韩久久| 在线观看中文字幕不卡| 精品一区二区影视| 亚洲成人av福利| ...xxx性欧美| 久久久久综合网| 精品国产麻豆免费人成网站| 欧美老年两性高潮| 91精品国产综合久久福利软件| 欧美日韩国产高清一区二区三区| 欧美日韩视频第一区| 欧美丰满美乳xxx高潮www| 欧美日韩一二三| 日韩午夜激情av| 亚洲国产电影在线观看| 亚洲人成网站影音先锋播放| 亚洲大型综合色站| 美女在线视频一区| 国产传媒久久文化传媒| av一区二区久久| 在线一区二区视频| 欧美一区二区三区四区高清| 亚洲精品在线免费播放| 中文字幕不卡的av| 五月天一区二区三区| 久久成人免费日本黄色| 成人免费高清在线| 欧美色网一区二区| 久久女同性恋中文字幕| 亚洲黄色小视频| 精品日产卡一卡二卡麻豆| 免费看日韩a级影片| 国产成人av一区二区三区在线| 国产一区二区主播在线| 美脚の诱脚舐め脚责91| 福利视频网站一区二区三区| 色综合天天性综合| 久久日一线二线三线suv| 樱桃视频在线观看一区| 婷婷国产在线综合| eeuss鲁片一区二区三区| 欧美日韩一本到| 久久久久久久精| 丝袜美腿亚洲综合| 国产精品911| 精品国产乱码久久久久久蜜臀| 中文字幕在线观看一区| 日韩成人dvd| 欧美一区二区三区视频| 国产欧美日韩综合精品一区二区| 亚洲一区二区三区中文字幕| av激情成人网| 亚洲国产精品成人综合色在线婷婷| 看电视剧不卡顿的网站| 99r国产精品| 国产午夜精品一区二区三区视频| 亚洲视频免费观看| 91老师国产黑色丝袜在线| 久久精品男人天堂av| 国产精品主播直播| 精品三级av在线| 国产大陆精品国产| 日本成人在线看| 欧美在线|欧美| 亚洲同性同志一二三专区| 国内精品视频一区二区三区八戒| 色综合 综合色| 丝袜诱惑制服诱惑色一区在线观看 | 99精品国产99久久久久久白柏| 久久新电视剧免费观看| 国产91对白在线观看九色| 国产精品久久久久久久久动漫| 色婷婷国产精品综合在线观看| 一区二区高清免费观看影视大全| 欧美日韩在线免费视频| 久色婷婷小香蕉久久| 国产三级一区二区| 91丨九色丨蝌蚪富婆spa| 亚洲成人av福利| 久久先锋影音av| 欧洲亚洲精品在线| 久久精品国产99国产精品| 国产精品剧情在线亚洲| 欧美精品粉嫩高潮一区二区| 在线一区二区三区做爰视频网站| 亚洲v中文字幕| 欧美国产一区在线| 欧美精品v国产精品v日韩精品 | 日韩精品一二三四| 久久久99精品免费观看| 欧美日本精品一区二区三区| 国产成人精品免费一区二区| 中文字幕亚洲欧美在线不卡| 欧美一区二区精品| 欧美电影影音先锋| 91毛片在线观看| 成人午夜免费av| 国产精品亚洲专一区二区三区 | 欧美视频一区二区在线观看| 久久久久久9999| 欧美群妇大交群中文字幕| 懂色av一区二区夜夜嗨| 一区二区三区精品在线观看| 久久久久久久电影| 精品国产污污免费网站入口| 欧美无人高清视频在线观看| 色婷婷国产精品| 91啪亚洲精品| 91小视频在线免费看| 亚洲欧洲av在线| 亚洲午夜免费电影| 亚洲人午夜精品天堂一二香蕉| 国产精品国产三级国产a| 欧美韩国日本一区| 国产欧美日韩综合精品一区二区| 欧美tickling挠脚心丨vk| 精品久久久久久最新网址| 六月丁香婷婷色狠狠久久| 黄页视频在线91| 美女看a上一区| 久久不见久久见中文字幕免费| 国产精品一区二区黑丝| heyzo一本久久综合| 欧洲人成人精品| 成人做爰69片免费看网站| 色网综合在线观看| 日韩一区二区三区av| 欧美tickling网站挠脚心| 国产精品免费视频观看| 亚洲午夜一区二区| 国产一区二区在线看| 91.成人天堂一区| 国产精品毛片久久久久久久| 亚洲高清不卡在线| 国产精品一区二区黑丝| 欧美日韩精品一区二区三区四区 | 国产在线精品一区二区| 美国十次综合导航| 亚洲狠狠丁香婷婷综合久久久| 日韩精品一二三| 国产色婷婷亚洲99精品小说| 在线不卡a资源高清| 日韩中文字幕不卡| 亚洲一区自拍偷拍| 亚洲资源中文字幕| 精品综合久久久久久8888|