技術(shù)領(lǐng)域
[0001] 本
發(fā)明涉及計(jì)算機(jī)領(lǐng)域,具體而言,涉及一種量子程序的處理方法及裝置、存儲(chǔ)介質(zhì)和電子裝置。
背景技術(shù)
[0002] 相關(guān)技術(shù)總提供了能夠分解任意單
量子比特邏輯門(mén)到H,S,T門(mén)所構(gòu)成的集合中的方案,但是用戶在創(chuàng)建量子程序或者在進(jìn)行量子線路轉(zhuǎn)化時(shí),不可避免地會(huì)產(chǎn)生冗余的量子
邏輯門(mén),即如果用戶給出的量子線路中存在冗余的單比特操作,則會(huì)產(chǎn)生冗余的量子邏輯門(mén),但是相關(guān)技術(shù)中沒(méi)有給出對(duì)冗余線路進(jìn)行轉(zhuǎn)化的方案。
[0003] 針對(duì)相關(guān)技術(shù)中的上述問(wèn)題,目前尚未存在有效的解決方案。
發(fā)明內(nèi)容
[0004] 本發(fā)明
實(shí)施例提供了一種量子程序的處理方法及裝置、存儲(chǔ)介質(zhì)和電子裝置,以至少解決相關(guān)技術(shù)中用戶在創(chuàng)建量子程序或者在進(jìn)行量子線路轉(zhuǎn)化時(shí),產(chǎn)生冗余的量子邏輯門(mén)的問(wèn)題。
[0005] 根據(jù)本發(fā)明的一個(gè)實(shí)施例,提供了一種量子程序的處理方法,包括:獲取量子程序的一量子邏輯門(mén)
節(jié)點(diǎn)作為當(dāng)前
指定節(jié)點(diǎn);其中,所述當(dāng)前指定節(jié)點(diǎn)的量子邏輯門(mén)為單量子邏輯門(mén);獲取與所述當(dāng)前指定節(jié)點(diǎn)相鄰的下一量子邏輯門(mén)節(jié)點(diǎn)作為當(dāng)前待處理節(jié)點(diǎn);根據(jù)所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)的屬性確定是否執(zhí)行所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)與所述當(dāng)前指定節(jié)點(diǎn)的操作門(mén)的合并操作,并確定用于下次合并操作的當(dāng)前指定節(jié)點(diǎn)和當(dāng)前待處理節(jié)點(diǎn)。
[0006] 根據(jù)本發(fā)明的另一個(gè)實(shí)施例,提供了一種量子程序的處理裝置,包括:第一獲取模
塊,用于獲取量子程序的一量子邏輯門(mén)節(jié)點(diǎn)作為當(dāng)前指定節(jié)點(diǎn),其中,所述當(dāng)前指定節(jié)點(diǎn)的量子邏輯門(mén)為單量子邏輯門(mén);第二獲取模塊,用于獲取與所述當(dāng)前指定節(jié)點(diǎn)相鄰的下一量子邏輯門(mén)節(jié)點(diǎn)作為當(dāng)前待處理節(jié)點(diǎn);第一處理模塊,用于根據(jù)所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)的屬性確定是否執(zhí)行所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)與所述當(dāng)前指定節(jié)點(diǎn)的操作門(mén)的合并操作,并確定用于下次合并操作的當(dāng)前指定節(jié)點(diǎn)和當(dāng)前待處理節(jié)點(diǎn)。
[0007] 根據(jù)本發(fā)明的又一個(gè)實(shí)施例,還提供了一種存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)中存儲(chǔ)有
計(jì)算機(jī)程序,其中,所述計(jì)算機(jī)程序被設(shè)置為運(yùn)行時(shí)執(zhí)行上述量子程序的處理方法實(shí)施例中的步驟。
[0008] 根據(jù)本發(fā)明的又一個(gè)實(shí)施例,還提供了一種電子裝置,包括
存儲(chǔ)器和處理器,所述存儲(chǔ)器中存儲(chǔ)有計(jì)算機(jī)程序,所述處理器被設(shè)置為運(yùn)行所述計(jì)算機(jī)程序以執(zhí)行上述量子程序的處理方法實(shí)施例中的步驟。
[0009] 通過(guò)本發(fā)明,獲取量子程序的一量子邏輯門(mén)節(jié)點(diǎn)作為當(dāng)前指定節(jié)點(diǎn);其中,所述當(dāng)前指定節(jié)點(diǎn)的量子邏輯門(mén)為單量子邏輯門(mén);獲取與所述當(dāng)前指定節(jié)點(diǎn)相鄰的下一量子邏輯門(mén)節(jié)點(diǎn)作為當(dāng)前待處理節(jié)點(diǎn);根據(jù)所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)的屬性確定是否執(zhí)行所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)與所述當(dāng)前指定節(jié)點(diǎn)的操作門(mén)的合并操作,并確定用于下次合并操作的當(dāng)前指定節(jié)點(diǎn)和當(dāng)前待處理節(jié)點(diǎn),也就是說(shuō),針對(duì)確定的當(dāng)前指定節(jié)點(diǎn)和當(dāng)前待處理節(jié)點(diǎn),會(huì)根據(jù)量子邏輯門(mén)的屬性確定執(zhí)行邏輯門(mén)的合并操作,解決了用戶在創(chuàng)建量子程序或者在進(jìn)行量子線路轉(zhuǎn)化時(shí),產(chǎn)生冗余的量子邏輯門(mén)的問(wèn)題,填補(bǔ)了相關(guān)技術(shù)中的空白。
附圖說(shuō)明
[0010] 此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本
申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0011] 圖1是根據(jù)本發(fā)明實(shí)施例的量子程序的處理方法的
流程圖;
[0012] 圖2是根據(jù)本發(fā)明實(shí)施例的量子程序的優(yōu)化方法流程圖;
[0013] 圖3是根據(jù)本發(fā)明實(shí)施例的量子程序的處理裝置的結(jié)構(gòu)
框圖。
具體實(shí)施方式
[0014] 下文中將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。
[0015] 需要說(shuō)明的是,本發(fā)明的
說(shuō)明書(shū)和
權(quán)利要求書(shū)及上述附圖中的術(shù)語(yǔ)“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。
[0016] 實(shí)施例1
[0017] 在本實(shí)施例中提供了一種量子程序的處理方法,圖1是根據(jù)本發(fā)明實(shí)施例的量子程序的處理方法的流程圖,如圖1所示,該流程包括如下步驟:
[0018] 步驟S102,獲取量子程序的一量子邏輯門(mén)節(jié)點(diǎn)作為當(dāng)前指定節(jié)點(diǎn);其中,所述當(dāng)前指定節(jié)點(diǎn)的量子邏輯門(mén)為單量子邏輯門(mén);
[0019] 步驟S104,獲取與所述當(dāng)前指定節(jié)點(diǎn)相鄰的下一量子邏輯門(mén)節(jié)點(diǎn)作為當(dāng)前待處理節(jié)點(diǎn);
[0020] 步驟S106,根據(jù)所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)的屬性確定是否執(zhí)行所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)與所述當(dāng)前指定節(jié)點(diǎn)的操作門(mén)的合并操作,并確定用于下次合并操作的當(dāng)前指定節(jié)點(diǎn)和當(dāng)前待處理節(jié)點(diǎn)。
[0021] 通過(guò)上述步驟S102至步驟S106,獲取量子程序的一量子邏輯門(mén)節(jié)點(diǎn)作為當(dāng)前指定節(jié)點(diǎn);獲取與所述當(dāng)前指定節(jié)點(diǎn)相鄰的下一量子邏輯門(mén)節(jié)點(diǎn)作為當(dāng)前待處理節(jié)點(diǎn);根據(jù)所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)的屬性確定是否執(zhí)行所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)與所述當(dāng)前指定節(jié)點(diǎn)的操作門(mén)的合并操作,并確定用于下次合并操作的當(dāng)前指定節(jié)點(diǎn)和當(dāng)前待處理節(jié)點(diǎn),也就是說(shuō),針對(duì)確定的當(dāng)前指定節(jié)點(diǎn)和當(dāng)前待處理節(jié)點(diǎn),會(huì)根據(jù)量子邏輯門(mén)的屬性確定執(zhí)行邏輯門(mén)的合并操作,解決了用戶在創(chuàng)建量子程序或者在進(jìn)行量子線路轉(zhuǎn)化時(shí),產(chǎn)生冗余的量子邏輯門(mén)的問(wèn)題,填補(bǔ)了相關(guān)技術(shù)中的空白。
[0022] 在本實(shí)施例的可選實(shí)施方式中,對(duì)于上述步驟S106中根據(jù)所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)的屬性確定是否執(zhí)行所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)與所述當(dāng)前指定節(jié)點(diǎn)的操作門(mén)的合并操作,并確定用于下次合并操作的當(dāng)前指定節(jié)點(diǎn)和當(dāng)前待處理節(jié)點(diǎn)可以通過(guò)如下步驟來(lái)實(shí)現(xiàn):
[0023] 步驟S106-1,判斷所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)是否為單量子邏輯門(mén);
[0024] 步驟S106-a1,在判斷所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)為單量子邏輯門(mén)的情況下,繼續(xù)判斷所述當(dāng)前待處理節(jié)點(diǎn)的操作比特與所述當(dāng)前指定節(jié)點(diǎn)的操作比特是否一致;
[0025] 步驟S106-a2,在判斷所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)為單量子邏輯門(mén)的情況下,且所述當(dāng)前待處理節(jié)點(diǎn)的操作比特與所述當(dāng)前指定節(jié)點(diǎn)的操作比特兩者一致的情況下,執(zhí)行所述待處理節(jié)點(diǎn)的操作門(mén)與所述當(dāng)前指定節(jié)點(diǎn)的操作門(mén)的合并。
[0026] 步驟S106-a3,將合并結(jié)果
覆蓋所述當(dāng)前指定節(jié)點(diǎn)的操作門(mén)以更新所述當(dāng)前指定節(jié)點(diǎn),且將更新過(guò)的當(dāng)前指定節(jié)點(diǎn)作為下次合并操作的當(dāng)前指定節(jié)點(diǎn),獲取與本次合并操作的所述當(dāng)前待處理節(jié)點(diǎn)相鄰的下一量子邏輯門(mén)節(jié)點(diǎn)作為下次合并操作的當(dāng)前待處理節(jié)點(diǎn),并刪除本次合并操作的所述前待處理節(jié)點(diǎn)。
[0027] 可見(jiàn),通過(guò)上述步驟S106-1至步驟S106-a3,判斷所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)為單量子邏輯門(mén),且所述當(dāng)前待處理節(jié)點(diǎn)的操作比特與所述當(dāng)前指定節(jié)點(diǎn)的操作比特兩者一致的情況下,則會(huì)執(zhí)行所述待處理節(jié)點(diǎn)的操作門(mén)與所述當(dāng)前指定節(jié)點(diǎn)的操作門(mén)的合并,因此,對(duì)具有相同屬性的單量子邏輯門(mén)進(jìn)行了合并,有效的防止了冗余單量子邏輯門(mén)的產(chǎn)生。并以下列第一方式重新確定下次合并操作用的當(dāng)前指定節(jié)點(diǎn)和當(dāng)前待處理節(jié)點(diǎn),進(jìn)而實(shí)現(xiàn)量子程序中的量子邏輯門(mén)的合并去冗余。
[0028] 其中:第一方式具體描述為:將合并結(jié)果覆蓋所述當(dāng)前指定節(jié)點(diǎn)的操作門(mén)以更新所述當(dāng)前指定節(jié)點(diǎn),且將更新過(guò)的當(dāng)前指定節(jié)點(diǎn)作為下次合并操作的當(dāng)前指定節(jié)點(diǎn),獲取與本次合并操作的所述當(dāng)前待處理節(jié)點(diǎn)相鄰的下一量子邏輯門(mén)節(jié)點(diǎn)作為下次合并操作的當(dāng)前待處理節(jié)點(diǎn),并刪除本次合并操作的所述前待處理節(jié)點(diǎn)。通過(guò)第一方式,確定了當(dāng)前合并操作順利進(jìn)行的情況下下一次合并操作的當(dāng)前指定節(jié)點(diǎn)和當(dāng)前待處理節(jié)點(diǎn),確保了量子程序上的具有前后執(zhí)行時(shí)序的量子邏輯門(mén)的合并,推進(jìn)了合并的進(jìn)行。
[0029] 此外,對(duì)于上述步驟S106,在本實(shí)施例的可選實(shí)施方式中還可以包括:
[0030] 步驟S106-a4,在判斷所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)為單量子邏輯門(mén),且所述當(dāng)前待處理節(jié)點(diǎn)的操作比特與所述當(dāng)前指定節(jié)點(diǎn)的操作比特兩者不一致的情況下,不執(zhí)行所述待處理節(jié)點(diǎn)的操作門(mén)與所述當(dāng)前指定節(jié)點(diǎn)的操作門(mén)的合并,并通過(guò)第二方式重新確定下次合并操作用的當(dāng)前指定節(jié)點(diǎn)和當(dāng)前待處理節(jié)點(diǎn)。
[0031] 其中:第二方式具體描述為:將用于本次合并操作的當(dāng)前指定節(jié)點(diǎn)作為下次合并操作的當(dāng)前指定節(jié)點(diǎn),獲取與本次合并操作的所述當(dāng)前待處理節(jié)點(diǎn)相鄰的下一量子邏輯門(mén)節(jié)點(diǎn)作為下次合并操作的當(dāng)前待處理節(jié)點(diǎn),并保留用于本次合并操作的所述前待處理節(jié)點(diǎn)。通過(guò)第一方式,確定了當(dāng)前合并操作確定的待合并的兩個(gè)單量子邏輯門(mén)的量子比特?cái)?shù)不同導(dǎo)致的待合并操作不能順利進(jìn)行情況下下一次合并操作的當(dāng)前指定節(jié)點(diǎn)和當(dāng)前待處理節(jié)點(diǎn),確保了量子程序上的具有前后執(zhí)行時(shí)序的量子邏輯門(mén)的合并,推進(jìn)了合并的進(jìn)行,進(jìn)而實(shí)現(xiàn)量子程序中的量子邏輯門(mén)的合并去冗余。
[0032] 需要說(shuō)明的是,以上所述的所述待處理節(jié)點(diǎn)的操作門(mén)與所述當(dāng)前指定節(jié)點(diǎn)的操作門(mén)兩者的合并具體是指所述待處理節(jié)點(diǎn)的操作門(mén)對(duì)應(yīng)的矩陣左乘所述當(dāng)前指定節(jié)點(diǎn)的操作門(mén)對(duì)應(yīng)的矩陣,得到合并結(jié)果。
[0033] 而在在判斷所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)不為單量子邏輯門(mén)的情況下,本實(shí)施例的步驟S106還包括:
[0034] 步驟S106-b1,繼續(xù)判斷所述待處理節(jié)點(diǎn)的操作門(mén)是否為第一量子邏輯門(mén),其中:所述第一量子邏輯門(mén)為兩量子邏輯門(mén)或多量子邏輯門(mén);
[0035] 步驟S106-b2,在判斷所述待處理節(jié)點(diǎn)的操作門(mén)不是單量子邏輯門(mén)也不是第一量子邏輯門(mén)的情況下,則流程結(jié)束。
[0036] 當(dāng)所述待處理節(jié)點(diǎn)的操作門(mén)既不是單量子邏輯門(mén)也不是第一量子邏輯門(mén)的情況下,即所述待處理節(jié)點(diǎn)的操作門(mén)既不是單量子邏輯門(mén)也不是雙量子邏輯門(mén)、也不是多量子邏輯門(mén),說(shuō)明量子程序出錯(cuò),則直接結(jié)束量子邏輯門(mén)合并實(shí)現(xiàn)量子程序去冗余的工作。
[0037] 此外,對(duì)于上述步驟S106,在本實(shí)施例的可選實(shí)施方式中還可以包括:
[0038] 步驟S106-b3,在判斷所述待處理節(jié)點(diǎn)的操作門(mén)不是單量子邏輯門(mén)但是第一量子邏輯門(mén)的情況下,則繼續(xù)判斷所述待處理節(jié)點(diǎn)的操作比特是否與所述當(dāng)前指定節(jié)點(diǎn)的操作比特是否具有相同的部分;
[0039] 步驟S106-b4,在判斷所述待處理節(jié)點(diǎn)的操作門(mén)不是單量子邏輯門(mén)但是第一量子邏輯門(mén)的情況下,且所述待處理節(jié)點(diǎn)的操作比特具有與所述當(dāng)前指定節(jié)點(diǎn)的操作比特相同的部分,則流程結(jié)束。
[0040] 通過(guò)步驟S106-b3至步驟S106-b4,說(shuō)明與當(dāng)前指定節(jié)點(diǎn)相鄰的所述待處理節(jié)點(diǎn)為兩量子邏輯門(mén)節(jié)點(diǎn)或者多量子邏輯門(mén)節(jié)點(diǎn),不能進(jìn)行合并運(yùn)算,且量子程序上執(zhí)行時(shí)序相近的兩第一量子邏輯門(mén)之間也沒(méi)有其它可以合并的單量子邏輯門(mén),則直接結(jié)束即可。
[0041] 此外,對(duì)于上述步驟S106,在本實(shí)施例的可選實(shí)施方式中還可以包括:
[0042] 步驟S106-b5,在判斷所述待處理節(jié)點(diǎn)的操作門(mén)不是單量子邏輯門(mén)但是第一量子邏輯門(mén)的情況下,且所述待處理節(jié)點(diǎn)的操作比特不具有與所述當(dāng)前指定節(jié)點(diǎn)的操作比特相同的部分,則通過(guò)第三方式重新確定下次合并操作用的當(dāng)前指定節(jié)點(diǎn)和當(dāng)前待處理節(jié)點(diǎn)。
[0043] 其中:第三方式具體描述為:獲取與用于本次合并操作的當(dāng)前指定節(jié)點(diǎn)相鄰的下一量子邏輯門(mén)節(jié)點(diǎn)作為下次合并操作用的當(dāng)前指定節(jié)點(diǎn);其中,每次合并操作的所述當(dāng)前指定節(jié)點(diǎn)的量子邏輯門(mén)均為單量子邏輯門(mén);獲取與所述當(dāng)前指定節(jié)點(diǎn)相鄰的下一量子邏輯門(mén)節(jié)點(diǎn)作為當(dāng)前待處理節(jié)點(diǎn)。
[0044] 通過(guò)步驟S106-b5,判斷所述待處理節(jié)點(diǎn)的操作門(mén)不是單量子邏輯門(mén)但是第一量子邏輯門(mén)的情況下,且所述待處理節(jié)點(diǎn)的操作比特不具有與所述當(dāng)前指定節(jié)點(diǎn)的操作比特相同的部分,說(shuō)明量子程序中的當(dāng)前指定節(jié)點(diǎn)和兩量子邏輯門(mén)(或多量子邏輯門(mén))之間還具有其他單量子比特邏輯門(mén),則按照第三方式重新確定當(dāng)前指定節(jié)點(diǎn)和當(dāng)前待處理節(jié)點(diǎn)。通過(guò)以上過(guò)程,可以實(shí)現(xiàn)量子程序中執(zhí)行時(shí)序
位置前后相鄰的兩第一量子邏輯門(mén)之間的每一種量子比特所對(duì)應(yīng)的所有量子邏輯門(mén)的合并,以實(shí)現(xiàn)去冗余。
[0045] 需要說(shuō)明的是,以上描述的全部工作是基于在量子程序中,兩執(zhí)行時(shí)序距離最近的第一量子邏輯門(mén)(包括雙量子邏輯門(mén)和多量子邏輯門(mén))之間的單量子邏輯門(mén)可以在其對(duì)應(yīng)的量子比特相同時(shí)進(jìn)行合并,而第一量子邏輯門(mén)(包括雙量子邏輯門(mén)和多量子邏輯門(mén))是不能被合并,且第一量子邏輯門(mén)的執(zhí)行時(shí)序不能和單量子邏輯門(mén)的執(zhí)行時(shí)序進(jìn)行交換這一前提的。因?yàn)榫哂邢嗤孔颖忍氐膯瘟孔舆壿嬮T(mén)的存在會(huì)造成量子程序的冗余。
[0046] 另外,需要說(shuō)明的是,以上描述的任何當(dāng)前指定節(jié)點(diǎn)及任何當(dāng)前待處理節(jié)點(diǎn)均指量子線路上作用有量子邏輯門(mén)的量子邏輯門(mén)節(jié)點(diǎn),對(duì)量子線路上的空節(jié)點(diǎn),不計(jì)入本實(shí)施例考慮的節(jié)點(diǎn)范圍。其中:空節(jié)點(diǎn)對(duì)應(yīng)的矩陣為單位矩陣,。
[0047] 作為本實(shí)施例的優(yōu)選技術(shù)方案,本實(shí)施例的方法還包括步驟SA:在確定每次合并操作的當(dāng)前指定節(jié)點(diǎn)之后,對(duì)應(yīng)所述當(dāng)前指定節(jié)點(diǎn)創(chuàng)建臨時(shí)節(jié)點(diǎn);在確定該次合并操作的當(dāng)前待處理節(jié)點(diǎn)之后,將該前待處理節(jié)點(diǎn)的操作門(mén)覆蓋所述臨時(shí)節(jié)點(diǎn)。
[0048] 通過(guò)步驟SA,每次確定當(dāng)前指定節(jié)點(diǎn)時(shí),都對(duì)應(yīng)該當(dāng)前指定節(jié)點(diǎn)創(chuàng)建臨時(shí)節(jié)點(diǎn),然后在獲得當(dāng)前待處理節(jié)點(diǎn)之后,將當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)賦值給臨時(shí)節(jié)點(diǎn),然后判斷臨時(shí)節(jié)點(diǎn)的操作門(mén)的屬性,如果可以與當(dāng)前指定節(jié)點(diǎn)進(jìn)行合并,則將臨時(shí)節(jié)點(diǎn)操作門(mén)對(duì)應(yīng)的矩陣左乘當(dāng)前指定節(jié)點(diǎn)的操作門(mén)對(duì)應(yīng)的矩陣得到合并矩陣,即合并結(jié)果,然后將該合并矩陣賦值給當(dāng)前指定節(jié)點(diǎn)的操作門(mén)。該過(guò)程,通過(guò)臨時(shí)節(jié)點(diǎn),實(shí)現(xiàn)了臨時(shí)存放或交換數(shù)據(jù)的作用,避免了直接對(duì)量子程序進(jìn)行合并操作造成的對(duì)量子程序的不必要破壞。
[0049] 下面結(jié)合本實(shí)施例的具體實(shí)施方式對(duì)本發(fā)明進(jìn)行舉例說(shuō)明;
[0050] 本具體實(shí)施方式提供了一種量子程序的優(yōu)化方法,在該方法在可選應(yīng)用場(chǎng)景中的表現(xiàn)形式優(yōu)選為一段計(jì)算機(jī)程序。該程序接收的輸入為量子程序的一個(gè)表示,這種表示可以是一個(gè)鏈表,數(shù)組或JSON字符串等,(就是對(duì)量子程序的一種表征),該程序的輸出為同樣形式的量子程序。圖2是根據(jù)本發(fā)明實(shí)施例的量子程序的優(yōu)化方法流程圖,其中,子程序的輸入是量子邏輯門(mén)節(jié)點(diǎn)node,該子程序不具有輸出,如圖2所示,該“合并
算法”的方法步驟包括:
[0051] 步驟S202,記錄節(jié)點(diǎn)node的位置為temp。
[0052] 步驟S204,找到temp(節(jié)點(diǎn)node)的下一個(gè)量子邏輯門(mén),覆蓋temp。
[0053] 步驟S206,判斷temp是否是單量子邏輯門(mén);若是,進(jìn)入步驟S208。若否,進(jìn)入步驟S210。
[0054] 步驟S208,進(jìn)一步判斷temp和node的操作比特是否相同;若是,則將temp中的矩陣左乘node中的矩陣,將該結(jié)果覆蓋node中的矩陣,刪除temp邏輯門(mén),返回步驟S202;若否,返回步驟S204。
[0055] 步驟S210,判斷是否為第一量子邏輯門(mén),其中第一量子邏輯門(mén)為雙量子邏輯門(mén)或者多量子邏輯門(mén);若是,進(jìn)入步驟S212;若否,結(jié)束該子程序。
[0056] 步驟S212,判斷temp中是否具有和node中相同的操作比特,若是,則結(jié)束該子程序;若否,返回步驟S202,子程序結(jié)束。
[0057] 通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實(shí)施例的方法可借助
軟件加必需的通用
硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)
現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如ROM/RAM、磁碟、光盤(pán))中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),
服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例的方法。
[0058] 實(shí)施例2
[0059] 在本實(shí)施例中還提供了一種量子程序的處理裝置,該裝置用于實(shí)現(xiàn)上述實(shí)施例及優(yōu)選實(shí)施方式,已經(jīng)進(jìn)行過(guò)說(shuō)明的不再贅述。如以下所使用的,術(shù)語(yǔ)“模塊”可以實(shí)現(xiàn)預(yù)定功能的軟件和/或硬件的組合。盡管以下實(shí)施例所描述的裝置較佳地以軟件來(lái)實(shí)現(xiàn),但是硬件,或者軟件和硬件的組合的實(shí)現(xiàn)也是可能并被構(gòu)想的。
[0060] 圖3是根據(jù)本發(fā)明實(shí)施例的量子程序的處理裝置的結(jié)構(gòu)框圖,如圖3所示,該裝置包括第一獲取模塊32、第二獲取模塊34和第一處理模塊36。
[0061] 第一獲取模塊32用于獲取量子程序的一量子邏輯門(mén)節(jié)點(diǎn)作為當(dāng)前指定節(jié)點(diǎn),其中,所述當(dāng)前指定節(jié)點(diǎn)的量子邏輯門(mén)為單量子邏輯門(mén)。
[0062] 第二獲取模塊34用于獲取與所述當(dāng)前指定節(jié)點(diǎn)相鄰的下一量子邏輯門(mén)節(jié)點(diǎn)作為當(dāng)前待處理節(jié)點(diǎn)。
[0063] 第一處理模塊36,與第一獲取模塊32和第二獲取模塊34耦合連接,用于根據(jù)所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)的屬性確定是否執(zhí)行所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)與所述當(dāng)前指定節(jié)點(diǎn)的操作門(mén)的合并操作,并確定用于下次合并操作的當(dāng)前指定節(jié)點(diǎn)和當(dāng)前待處理節(jié)點(diǎn)。
[0064] 作為本實(shí)施例的優(yōu)選技術(shù)方案,該第一處理模塊36包括第一判斷單元、第二判斷單元、第一合并處理單元和第一確定處理單元。
[0065] 第一判斷單元用于判斷所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)是否為單量子邏輯門(mén)。
[0066] 第二判斷單元與第一判斷單元耦合連接,用于在判斷所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)為單量子邏輯門(mén)的情況下,繼續(xù)判斷所述當(dāng)前待處理節(jié)點(diǎn)的操作比特與所述當(dāng)前指定節(jié)點(diǎn)的操作比特是否一致。
[0067] 第一合并處理單元與第二判斷單元耦合連接,用于在判斷所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)為單量子邏輯門(mén)的情況下,且所述當(dāng)前待處理節(jié)點(diǎn)的操作比特與所述當(dāng)前指定節(jié)點(diǎn)的操作比特兩者一致的情況下,執(zhí)行所述待處理節(jié)點(diǎn)的操作門(mén)與所述當(dāng)前指定節(jié)點(diǎn)的操作門(mén)的合并。
[0068] 第一確定處理單元與第一合并處理單元耦合連接,用于在合并后,將合并結(jié)果覆蓋所述當(dāng)前指定節(jié)點(diǎn)的操作門(mén),且將更新過(guò)的當(dāng)前指定節(jié)點(diǎn)作為下次合并操作的當(dāng)前指定節(jié)點(diǎn),獲取與本次合并操作的所述當(dāng)前待處理節(jié)點(diǎn)相鄰的下一量子邏輯門(mén)節(jié)點(diǎn)作為下次合并操作的當(dāng)前待處理節(jié)點(diǎn),并刪除本次合并操作的所述前待處理節(jié)點(diǎn)。
[0069] 作為本實(shí)施例的優(yōu)選方案,該第一處理模塊36還包括第二確定處理單元,第二確定處理單元用于在判斷所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)為單量子邏輯門(mén)的情況下,且所述當(dāng)前待處理節(jié)點(diǎn)的操作比特與所述當(dāng)前指定節(jié)點(diǎn)的操作比特兩者不一致的情況下,不執(zhí)行所述待處理節(jié)點(diǎn)的操作門(mén)與所述當(dāng)前指定節(jié)點(diǎn)的操作門(mén)的合并;并直接將用于本次合并操作的當(dāng)前指定節(jié)點(diǎn)作為下次合并操作的當(dāng)前指定節(jié)點(diǎn),獲取與本次合并操作的所述當(dāng)前待處理節(jié)點(diǎn)相鄰的下一量子邏輯門(mén)節(jié)點(diǎn)作為下次合并操作的當(dāng)前待處理節(jié)點(diǎn),并保留用于本次合并操作的所述前待處理節(jié)點(diǎn)。
[0070] 作為本實(shí)施例的優(yōu)選方案,該第一處理模塊36還包括第三判斷單元,所述第三判斷單元用于在判斷所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)不為單量子邏輯門(mén)的情況下,繼續(xù)判斷所述待處理節(jié)點(diǎn)的操作門(mén)是否為第一量子邏輯門(mén),其中:所述第一量子邏輯門(mén)為兩量子邏輯門(mén)或多量子邏輯門(mén),在判斷所述待處理節(jié)點(diǎn)的操作門(mén)不是單量子邏輯門(mén)也不是量子邏輯門(mén)的情況下,則流程結(jié)束。
[0071] 作為本實(shí)施例的優(yōu)選方案,該第一處理模塊36還包括第四判斷單元,第四判斷單元用于在判斷所述待處理節(jié)點(diǎn)的操作門(mén)不是單量子邏輯門(mén)但是第一量子邏輯門(mén)的情況下,則繼續(xù)判斷所述待處理節(jié)點(diǎn)的操作比特是否與所述當(dāng)前指定節(jié)點(diǎn)的操作比特是否具有相同的部分;在判斷所述待處理節(jié)點(diǎn)的操作門(mén)不是單量子邏輯門(mén)但是量子邏輯門(mén)的情況下,且所述待處理節(jié)點(diǎn)的操作比特具有與所述當(dāng)前指定節(jié)點(diǎn)的操作比特相同的部分,則流程結(jié)束。
[0072] 作為本實(shí)施例的優(yōu)選技術(shù)方案,該第一處理模塊36還包括第二確定處理單元,用于在在判斷所述待處理節(jié)點(diǎn)的操作門(mén)不是單量子邏輯門(mén)但是第一量子邏輯門(mén),且所述待處理節(jié)點(diǎn)的操作比特不具有與所述當(dāng)前指定節(jié)點(diǎn)的操作比特相同的部分,則獲取與用于本次合并操作的當(dāng)前指定節(jié)點(diǎn)相鄰的下一量子邏輯門(mén)節(jié)點(diǎn)作為下次合并操作用的當(dāng)前指定節(jié)點(diǎn);其中,每次合并操作的所述當(dāng)前指定節(jié)點(diǎn)的量子邏輯門(mén)均為單量子邏輯門(mén);獲取與所述當(dāng)前指定節(jié)點(diǎn)相鄰的下一量子邏輯門(mén)節(jié)點(diǎn)作為當(dāng)前待處理節(jié)點(diǎn)。
[0073] 需要說(shuō)明的是,上述各個(gè)模塊是可以通過(guò)軟件或硬件來(lái)實(shí)現(xiàn)的,對(duì)于后者,可以通過(guò)以下方式實(shí)現(xiàn),但不限于此:上述模塊均位于同一處理器中;或者,上述各個(gè)模塊以任意組合的形式分別位于不同的處理器中。
[0074] 本發(fā)明的實(shí)施例還提供了一種存儲(chǔ)介質(zhì),該存儲(chǔ)介質(zhì)中存儲(chǔ)有計(jì)算機(jī)程序,其中,該計(jì)算機(jī)程序被設(shè)置為運(yùn)行時(shí)執(zhí)行上述任一項(xiàng)方法實(shí)施例中的步驟。
[0075] 可選地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的計(jì)算機(jī)程序:
[0076] S1,獲取量子程序的一量子邏輯門(mén)節(jié)點(diǎn)作為當(dāng)前指定節(jié)點(diǎn);其中,所述當(dāng)前指定節(jié)點(diǎn)的量子邏輯門(mén)為單量子邏輯門(mén);
[0077] S2,獲取與所述當(dāng)前指定節(jié)點(diǎn)相鄰的下一量子邏輯門(mén)節(jié)點(diǎn)作為當(dāng)前待處理節(jié)點(diǎn);
[0078] S3,根據(jù)所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)的屬性確定是否執(zhí)行所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)與所述當(dāng)前指定節(jié)點(diǎn)的操作門(mén)的合并操作,并確定用于下次合并操作的當(dāng)前指定節(jié)點(diǎn)和當(dāng)前待處理節(jié)點(diǎn)。
[0079] 可選地,存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的計(jì)算機(jī)程序:
[0080] S1,獲取量子程序的一量子邏輯門(mén)節(jié)點(diǎn)作為當(dāng)前指定節(jié)點(diǎn);其中,所述當(dāng)前指定節(jié)點(diǎn)的量子邏輯門(mén)為單量子邏輯門(mén);
[0081] S2,獲取與所述當(dāng)前指定節(jié)點(diǎn)相鄰的下一量子邏輯門(mén)節(jié)點(diǎn)作為當(dāng)前待處理節(jié)點(diǎn);
[0082] S3,根據(jù)所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)的屬性確定是否執(zhí)行所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)與所述當(dāng)前指定節(jié)點(diǎn)的操作門(mén)的合并操作,并確定用于下次合并操作的當(dāng)前指定節(jié)點(diǎn)和當(dāng)前待處理節(jié)點(diǎn)。
[0083] 可選地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以包括但不限于:U盤(pán)、
只讀存儲(chǔ)器(Read-Only?Memory,簡(jiǎn)稱為ROM)、
隨機(jī)存取存儲(chǔ)器(Random?Access?Memory,簡(jiǎn)稱為RAM)、移動(dòng)
硬盤(pán)、磁碟或者光盤(pán)等各種可以存儲(chǔ)計(jì)算機(jī)程序的介質(zhì)。
[0084] 本發(fā)明的實(shí)施例還提供了一種電子裝置,包括存儲(chǔ)器和處理器,該存儲(chǔ)器中存儲(chǔ)有計(jì)算機(jī)程序,該處理器被設(shè)置為運(yùn)行計(jì)算機(jī)程序以執(zhí)行上述任一項(xiàng)方法實(shí)施例中的步驟。
[0085] 可選地,上述電子裝置還可以包括傳輸設(shè)備以及輸入輸出設(shè)備,其中,該傳輸設(shè)備和上述處理器連接,該輸入輸出設(shè)備和上述處理器連接。
[0086] 可選地,在本實(shí)施例中,上述處理器可以被設(shè)置為通過(guò)計(jì)算機(jī)程序執(zhí)行以下步驟:
[0087] S1,獲取量子程序的一量子邏輯門(mén)節(jié)點(diǎn)作為當(dāng)前指定節(jié)點(diǎn);其中,所述當(dāng)前指定節(jié)點(diǎn)的量子邏輯門(mén)為單量子邏輯門(mén);
[0088] S2,獲取與所述當(dāng)前指定節(jié)點(diǎn)相鄰的下一量子邏輯門(mén)節(jié)點(diǎn)作為當(dāng)前待處理節(jié)點(diǎn);
[0089] S3,根據(jù)所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)的屬性確定是否執(zhí)行所述當(dāng)前待處理節(jié)點(diǎn)的操作門(mén)與所述當(dāng)前指定節(jié)點(diǎn)的操作門(mén)的合并操作,并確定用于下次合并操作的當(dāng)前指定節(jié)點(diǎn)和當(dāng)前待處理節(jié)點(diǎn)。
[0090] 可選地,本實(shí)施例中的具體示例可以參考上述實(shí)施例及可選實(shí)施方式中所描述的示例,本實(shí)施例在此不再贅述。
[0091] 顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來(lái)實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來(lái)執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個(gè)集成
電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來(lái)實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0092] 以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的原則之內(nèi),所作的任何
修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。