(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-01
(54)【発明の名称】量子プログラムの実行方法、量子プログラムのコンパイル方法、量子コンピュータ及びプログラム
(51)【国際特許分類】
G06N 10/80 20220101AFI20240222BHJP
G06F 8/41 20180101ALI20240222BHJP
G06F 9/50 20060101ALI20240222BHJP
【FI】
G06N10/80
G06F8/41
G06F9/50 150Z
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023538916
(86)(22)【出願日】2022-10-21
(85)【翻訳文提出日】2023-06-22
(86)【国際出願番号】 CN2022126780
(87)【国際公開番号】W WO2023103612
(87)【国際公開日】2023-06-15
(31)【優先権主張番号】202111492774.7
(32)【優先日】2021-12-08
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】522424072
【氏名又は名称】シェンジェン テンセント コンピューター システムズ カンパニー リミテッド
【氏名又は名称原語表記】SHENZHEN TENCENT COMPUTER SYSTEMS COMPANY LIMITED
【住所又は居所原語表記】Floor 35,Tencent Building,Kejizhongyi Avenue,Hi-tech Park,Nanshan District,Shenzhen,Guangdong 518057 China
(71)【出願人】
【識別番号】523233640
【氏名又は名称】インスティテュート オブ ソフトウェア チャイニーズ アカデミー オブ サイエンスィズ
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ヂョウ,シャンヂェン
【テーマコード(参考)】
5B081
【Fターム(参考)】
5B081AA10
(57)【要約】
本出願は量子プログラムの実行方法及び量子プログラムのコンパイル方法に関する。前記実行方法は目標量子プログラムに含まれる物理量子回路のうちの初期量子回路を現在の量子回路とし(202);現在の量子回路を実行して量子測定結果を取得し(204);前記現在の量子回路と接続関係がある候補量子回路から、前記量子測定結果にマッチした目標量子回路を選択し、前記接続関係は前記目標量子プログラムに対応する制御フローにマッチしており(206);及び、前記現在の量子回路と前記目標量子回路との間のマッピング変換回路を実行して前記目標量子回路を現在の量子回路とし(208)、前記現在の量子回路を実行して量子測定結果を取得するステップ(204)にリターンし継続して実行し、実行終了条件が満足されたときにプログラム実行結果を得るステップ(210)を含む。
【特許請求の範囲】
【請求項1】
量子コンピュータが実行する、量子プログラムを実行する方法であって、
目標量子プログラムに含まれる物理量子回路のうちの初期量子回路を現在の量子回路とするステップ;
現在の量子回路を実行して量子測定結果を取得するステップ;
前記現在の量子回路と接続関係がある候補量子回路から、前記量子測定結果にマッチした目標量子回路を選択するステップであって、前記接続関係は前記目標量子プログラムに対応する制御フローにマッチしている、ステップ;
前記現在の量子回路と前記目標量子回路との間のマッピング変換回路を実行して前記目標量子回路を現在の量子回路とするステップ;及び
前記現在の量子回路を実行して量子測定結果を取得するステップにリターンし継続して実行し、実行終了条件が満足されるときにプログラム実行結果を取得するステップを含む、方法。
【請求項2】
請求項1に記載の方法であって、
量子プログラム実行環境に対応する実行条件に基づいて、初期量子プログラムの制御フローに従って、前記初期量子プログラムをコンパイルして目標量子プログラムを取得するステップをさらに含み、
前記目標量子プログラムに含まれる各物理量子回路は前記制御フローの各ノードに対応し、各前記物理量子回路間のマッピング変換回路は各前記ノード間の接続関係に対応する、方法。
【請求項3】
請求項2に記載の方法であって、
前記量子プログラム実行環境に対応する実行条件に従って、制御フローを含む初期量子プログラムをコンパイルして目標量子プログラムを取得するステップは、
初期量子プログラムの制御フローに従って、前記初期量子プログラムに含まれる複数の論理量子回路及び各前記論理量子回路間の接続関係を決定するステップ;
量子プログラム実行環境に対応する実行条件に従って、各前記論理量子回路をそれぞれ物理量子回路に変換するステップ;
各前記論理量子回路間の接続関係の前記物理量子回路間でのマッピングに基づいて、接続関係を有する2つの物理量子回路に対して量子ビットマッピング関係の変換を行い、マッピング変換回路を取得するステップ;及び
前記物理量子回路及び前記マッピング変換回路を含む目標量子プログラムを決定するステップを含む、方法。
【請求項4】
請求項3に記載の方法であって、
各前記論理量子回路間の接続関係の前記物理量子回路間でのマッピングに基づいて、接続関係を有する2つの物理量子回路に対して量子ビットマッピング関係の変換を行い、マッピング変換回路を取得するステップは、
各前記論理量子回路間の接続関係の前記物理量子回路間でのマッピングに基づいて、前記物理量子回路間の接続関係を決定するステップ;
接続関係を有する2つの物理量子回路から、ソース物理量子回路に対応する最後の量子ビットマッピング関係及びターゲット物理量子回路に対応する最初の量子ビットマッピング関係を取得するステップ;及び
マッピング関係変換により、前記最後の量子ビットマッピング関係を前記最初の量子ビットマッピング関係に変換するマッピング変換回路を取得するステップを含む、方法。
【請求項5】
請求項4に記載の方法であって、
前記マッピング関係変換により、前記最後の量子ビットマッピング関係を前記最初の量子ビットマッピング関係に変換するマッピング変換回路を取得するステップは、
前記実行条件を表す構成図から第一物理量子ビットを決定するステップであって、前記第一物理量子ビットは前記構成図から削除された後に構成図における量子ビット接続関係に影響しない物理量子ビットである、ステップ;
前記最後の量子ビットマッピング関係に基づいて、前記第一物理量子ビットに対応する論理量子ビットを決定し、前記最初の量子ビットマッピング関係に基づいて、前記論理量子ビットに対応する第二物理量子ビットを決定するステップ;
前記第一量子ビットと前記第二量子ビットとの前記構成図での接続径路を決定するステップ;及び
前記接続径路に従って交換ゲートを導入し、前記最後の量子ビットマッピング関係を前記最初の量子ビットマッピング関係に変換するマッピング変換回路を取得するステップを含む、方法。
【請求項6】
請求項3に記載の方法であって、
前記量子プログラム実行環境に対応する実行条件に従って、各前記論理量子回路をそれぞれ物理量子回路に変換するステップは、
量子プログラム実行環境に基づいて、前記量子プログラム実行環境に対応する量子ビット接続関係を決定するステップ;及び
各前記論理量子回路について、量子ビット接続関係に従って、前記論理量子回路に対して量子回路変換を行い、物理量子回路を取得するステップを含む、方法。
【請求項7】
請求項6に記載の方法であって、
各前記論理量子回路について、量子ビット接続関係に従って、前記論理量子回路に対して量子回路変換を行い、物理量子回路を取得するステップは、
前記論理量子回路における各量子ゲートの配列順序に基づいて、量子ビット接続関係に従って、前記量子ゲートが作用する論理量子ビットとマッピング関係がある目標物理量子ビットを順次決定するステップ;
前記量子ゲートをその作用する論理量子ビットに対応する目標物理量子ビットに追加し、前記論理量子回路から前記量子ゲートを削除するステップ;及び
前記論理量子回路の量子ゲートの数がゼロになるときに、前記論理量子回路に対応する物理量子回路を取得するステップを含む、方法。
【請求項8】
請求項7に記載の方法であって、
前記量子ゲートが作用する論理量子ビットとマッピング関係がある目標物理量子ビットを決定するステップは、
前記量子ゲートが、その作用する論理量子ビットの数が1の1ビット量子ゲートであるときに、量子ビットマッピング関係に基づいて、前記論理量子ビットにマッピングされる物理量子ビットを決定するステップ;及び
前記量子ゲートが、その作用する論理量子ビットの数が2の2ビット量子ゲートであるときに、交換ゲートを導入して量子ビットマッピング関係に対してマッピング関係更新を行い、更新した量子ビットマッピング関係に基づいて、前記論理量子ビットにマッピングされる物理量子ビットを決定するステップを含む、方法。
【請求項9】
請求項8に記載の方法であって、
前記量子ビットマッピング関係を構築し、交換ゲートを導入してマッピング関係更新を行うステップは、
最初の量子ビットマッピング関係を構築し、前記2ビット量子ゲートが作用する2つの論理量子ビットを2つの物理量子ビットにマッピングするステップ;
前記量子ビット接続関係に従って、前記2つの物理量子ビットの間の接続径路を決定するステップ;及び
前記接続径路に基づいて交換ゲートを導入し、前記最初の量子ビットマッピング関係を更新し、更新した量子ビットマッピング関係を取得するステップを含む、方法。
【請求項10】
請求項1乃至9のうちの何れか1項に記載の方法であって、
前記現在の量子回路と前記目標量子回路との間のマッピング変換回路を実行して前記目標量子回路を現在の量子回路とし、前記現在の量子回路を実行して量子測定結果を取得するステップにリターンし継続して実行し、実行終了条件が満足されるときにプログラム実行結果を取得するステップは、
前記目標量子回路が終了量子回路でないときに、前記現在の量子回路と前記目標量子回路との間のマッピング変換回路を実行し、前記目標量子回路を現在の量子回路とするステップ;
前記現在の量子回路を実行して量子測定結果を取得するステップにリターンし継続して実行し;及び
前記目標量子回路が終了量子回路であるときに、前記終了量子回路を実行して前記目標量子プログラムの実行結果を取得するステップを含む、方法。
【請求項11】
請求項1乃至9のうちの何れか1項に記載の方法であって、
前記現在の量子回路に対しての実行起動イベントに応じて、前記現在の量子回路における目標量子ビットに対して量子測定操作を行うステップをさらに含み、
前記現在の量子回路を実行して量子測定結果を取得するステップは、
前記現在の量子回路の実行が終了したときに、前記目標量子ビットに対応する量子測定結果を取得するステップを含む、方法。
【請求項12】
請求項11に記載の方法であって、
前記現在の量子回路に対しての実行起動イベントに応じて、前記現在の量子回路における目標量子ビットに対して量子測定操作を行うステップは、
前記現在の量子回路に対しての実行起動イベントに応じて、前記現在の量子回路において測定操作を行うための目標量子ゲート及び前記目標量子ゲートにマッチした目標量子ビットを決定するステップ;及び
前記目標量子ゲートに基づいて、前記目標量子ゲートにマッチした目標量子ビットの状態データに対して測定操作を行うステップを含む、方法。
【請求項13】
請求項11に記載の方法であって、
前記目標量子ビットの数は複数であり、
前記現在の量子回路の実行が終了したとき、前記目標量子ビットに対応する量子測定結果を取得するステップは、
前記現在の量子回路の実行が終了したときに、量子測定を行うための目標量子ゲートから量子測定結果を表す2進数ビットデータを読み取るステップ;及び
各前記2進数ビットデータからなる2進数ビットストリングを量子測定結果とするステップを含む、方法。
【請求項14】
古典コンピュータ又は量子コンピュータが実行する、量子プログラムをコンパイルする方法であって、
初期量子プログラムの制御フローに従って、前記初期量子プログラムに含まれる複数の論理量子回路及び各前記論理量子回路間の接続関係を決定するステップ;
量子プログラム実行環境に対応する実行条件に従って、各前記論理量子回路をそれぞれ物理量子回路に変換するステップ;
各前記論理量子回路間の接続関係の前記物理量子回路間でのマッピングに基づいて、接続関係を有する2つの物理量子回路に対して量子ビットマッピング関係の変換を行い、マッピング変換回路を取得するステップ;及び
前記物理量子回路及び前記マッピング変換回路を含む目標量子プログラムを前記初期量子プログラムのコンパイル結果とするステップを含む、方法。
【請求項15】
請求項14に記載の方法であって、
前記量子プログラム実行環境に対応する実行条件に従って、各前記論理量子回路をそれぞれ物理量子回路に変換し、各前記論理量子回路間の接続関係の前記物理量子回路間でのマッピングに基づいて、接続関係を有する2つの物理量子回路に対して量子ビットマッピング関係の変換を行い、マッピング変換回路を取得するステップは、
前記論理量子回路をノードとし、各前記論理量子回路間の接続関係をノード間の接続エッジとし、有向グラフを構築するステップ;
前記有向グラフの各変換待ちノードに基づいて、量子プログラム実行環境に対応する実行条件に従って量子回路変換を行い、各前記変換待ちノードが表す論理量子回路をそれぞれ物理量子回路に変換するステップ;及び
前記有向グラフの各変換待ち接続エッジに基づいて、各前記変換待ち接続エッジに接続される物理量子回路に対して最初と最後の量子ビットマッピング関係変換を行い、マッピング変換回路を取得するステップを含む、方法。
【請求項16】
量子プログラムを実行する装置であって、
目標量子プログラムに含まれる物理量子回路のうちの初期量子回路を現在の量子回路とするための初期量子回路識別モジュール;
現在の量子回路を実行して量子測定結果を取得するための量子測定結果取得モジュール;
前記現在の量子回路と接続関係がある候補量子回路から、前記量子測定結果にマッチした目標量子回路を選択するための量子回路選択モジュールであって、前記接続関係は前記目標量子プログラムに対応する制御フローにマッチしている、量子回路選択モジュール;及び
前記現在の量子回路と前記目標量子回路との間のマッピング変換回路を実行して前記目標量子回路を現在の量子回路とし、前記量子測定結果取得モジュールにジャンプし継続して実行し、終了条件が満足されるときにプログラム実行結果を取得するための目標量子回路更新モジュールを含む、装置。
【請求項17】
量子プログラムをコンパイルする装置であって、
初期量子プログラムの制御フローに従って、前記初期量子プログラムに含まれる複数の論理量子回路及び各前記論理量子回路間の接続関係を決定するための論理量子回路決定モジュール;
量子プログラム実行環境に対応する実行条件に従って、各前記論理量子回路をそれぞれ物理量子回路に変換するための量子回路変換モジュール;
各前記論理量子回路間の接続関係の前記物理量子回路間でのマッピングに基づいて、接続関係を有する2つの物理量子回路に対して量子ビットマッピング関係の変換を行い、マッピング変換回路を取得するためのマッピング関係変換モジュール;及び
前記物理量子回路及び前記マッピング変換回路を含む目標量子プログラムを前記初期量子プログラムのコンパイル結果とするためのコンパイル結果決定モジュールを含む、装置。
【請求項18】
記憶器と、前記記憶器に接続される処理器と、を含む、量子コンピュータであって、
前記記憶器にはコンピュータ可読命令が記憶されており、
前記処理器は前記コンピュータ可読命令を実行して請求項1乃至15のうちの何れか1項に記載の方法を実現するように構成される、量子コンピュータ。
【請求項19】
コンピュータに、請求項1乃至15のうちの何れか1項に記載の方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2021年12月08日に中国専利局に出願した、出願番号が202111492774.7、発明の名称が「量子プログラムの実行方法及び量子プログラムのコンパイル方法」である中国特許出願に基づく優先権を主張するものであり、その全内容を参照によりここに援用する。
【0002】
本出願は、量子の技術分野に関し、特に、量子プログラムの実行方法、装置、量子コンピュータ、記憶媒体及びコンピュータプログラム、並びに量子プログラムのコンパイル方法、装置、量子コンピュータ、記憶媒体及びコンピュータプログラムに関する。
【背景技術】
【0003】
量子コンピュータは量子ビットを基本的な記憶単位として量子プログラムを実行できるコンピュータである。量子コンピュータでは量子ビット間の接続性(connectivity)が制限されているので、特定の量子ビット対(ペア)の間で2つの量子ビットのゲート変換しか実行できない。
【0004】
今のところ、量子コンピュータにおける量子プログラムの実行は、量子プログラムを、量子コンピュータで実行可能な基本ゲートからなる量子回路にコンパイルし、コンパイル済みの量子回路を順次実行することで、量子プログラムの量子コンピュータにおける実行タスクを実現する。しかし、現在の量子プログラムに対しての処理方法では、量子コンピュータで処理フローが単一の量子プログラムのみを実行できるが、量子コンピュータで制御フローを有する複雑な量子プログラムを実行できない。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本出願の実施例は、制御フローに従って実行されることを実現し得る量子プログラムの実行方法、装置、量子コンピュータ、コンピュータ可読記憶媒体及びコンピュータプログラム、並びに量子プログラムのコンパイル方法、装置、量子コンピュータ、コンピュータ可読記憶媒体及びコンピュータプログラムを提供することを課題とする。
を提供することを課題とする。
【課題を解決するための手段】
【0006】
本出願では量子プログラムの実行方法が提供され、前記方法は、
目標(ターゲット)量子プログラムに含まれる物理量子回路のうちの初期量子回路を現在の量子回路とし;
現在の量子回路を実行して量子測定結果を取得し;
前記現在の量子回路と接続関係がある候補量子回路のうちから、前記量子測定結果にマッチした目標量子回路を選択し、前記接続関係は前記目標量子プログラムに対応する制御フローにマッチしており;及び
前記現在の量子回路と前記目標量子回路との間のマッピング変換回路を実行することで前記目標量子回路を現在の量子回路とし、前記現在の量子回路を実行して量子測定結果を取得すること(ステップ)にリターンし継続して実行し、実行終了条件が満足されるときにプログラム実行結果を取得することを含む。
【0007】
本出願では量子プログラムの実行装置がさらに提供され、前記装置は、
目標量子プログラムに含まれる物理量子回路のうちの初期量子回路を現在の量子回路とするための初期量子回路識別(認識)モジュール;
現在の量子回路を実行して量子測定結果を取得するための量子測定結果取得モジュール;
前記現在の量子回路と接続関係がある候補量子回路のうちから、前記量子測定結果にマッチした目標量子回路を選択するための量子回路選択モジュールであって、前記接続関係は前記目標量子プログラムに対応する制御フローにマッチしている、量子回路選択モジュール;及び
前記現在の量子回路と前記目標量子回路との間のマッピング変換回路を実行することで前記目標量子回路を現在の量子回路とし、前記量子測定結果取得モジュールにジャンプし継続して実行し、実行終了条件が満足されるときにプログラム実行結果を取得するための目標量子回路更新モジュールを含む。
【0008】
本出願では量子プログラムのコンパイル方法がさらに提供され、前記方法は、
初期量子プログラムの制御フローに従って、前記初期量子プログラムに含まれる複数の論理量子回路及び各前記論理量子回路間の接続関係を決定し;
量子プログラム実行環境に対応する実行条件に従って、各前記論理量子回路をそれぞれ物理量子回路に変換し;
各前記論理量子回路間の接続関係の前記物理量子回路間でのマッピングに基づいて、接続関係を有する2つの物理量子回路に対して量子ビットマッピング関係の変換を行い、マッピング変換回路を取得し;及び
前記物理量子回路及び前記マッピング変換回路を含む目標量子プログラムを前記初期量子プログラムのコンパイル結果とすることを含む。
【0009】
本出願では量子プログラムのコンパイル装置がさらに提供され、前記装置は、
初期量子プログラムの制御フローに従って、前記初期量子プログラムに含まれる複数の論理量子回路及び各前記論理量子回路間の接続関係を決定するための論理量子回路決定モジュール;
量子プログラム実行環境に対応する実行条件に従って、各前記論理量子回路をそれぞれ物理量子回路に変換するための量子回路変換モジュール;
各前記論理量子回路間の接続関係の前記物理量子回路間でのマッピングに基づいて、接続関係を有する2つの物理量子回路に対して量子ビットマッピング関係の変換を行い、マッピング変換回路を取得するためのマッピング関係変換モジュール;及び
前記物理量子回路及び前記マッピング変換回路を含む目標量子プログラムを前記初期量子プログラムのコンパイル結果とするためのコンパイル結果決定モジュールを含む。
【0010】
本出願では量子コンピュータがさらに提供され、前記量子コンピュータは記憶器及び1つ又は複数の処理器を含み、前記記憶器はコンピュータ可読命令を記憶しており、前記1つ又は複数の処理器は前記コンピュータ可読命令を実行するときに上述の各方法の実施例のステップを実現する。
【0011】
本出願ではコンピュータ可読記憶媒体がさらに提供され、前記コンピュータ可読記憶媒体にはコンピュータ可読命令が記憶されており、前記コンピュータ可読命令は1つ又は複数の処理器により実行されるときに上述の各方法の実施例のステップを実現する。
【0012】
本出願ではコンピュータプログラムがさらに提供され、前記コンピュータプログラムはコンピュータ可読命令を含み、該コンピュータ可読命令は1つ又は複数の処理器により実行されるときに上述の各方法の実施例のステップを実現する。
【0013】
本出願の1つ又は複数の実施例の詳細な内容は以下の図面及び説明で提供される。本出願の他の特徴、目的及び利点は明細書、図面及び特許請求の範囲から明確になる。
【図面の簡単な説明】
【0014】
本出願の実施例における技術案をより明らかに説明するために、以下、実施例の説明に使用される必要のある図面について簡単に紹介する。明らかのように、以下の説明における図面は本出願の幾つかの実施例に過ぎず、当業者は創造性のある労働をせずにこれらの図面に基づいて他の図面を得ることもできる。
【
図1】一実施例における量子プログラムの実行方法の適用環境を示す図である。
【
図2】一実施例における量子プログラムの実行方法のフローを示す図である。
【
図4】一実施例における量子プログラムの制御フローに対応する有向グラフを示す図である。
【
図5】一実施例において量子コンピュータの物理量子ビットの接続関係を表す構成図である。
【
図6】一実施例における量子プログラムのコンパイル方法のフローを示す図である。
【
図7】一実施例において交換ゲートにより量子ビットマッピング関係を変えることを示す図である。
【
図8】一実施例における量子回路変換結果を示す図である。
【
図9】一実施例における量子プログラムのコンパイル方法のフローを示す図である。
【
図10】一実施例における量子プログラムの実行方法のフローを示す図である。
【
図11】一実施例における量子プログラムのコンパイルプロセスと実行プロセスとの関係を示す図である。
【
図12】一実施例における量子プログラムの実行装置の構成を示すブロック図である。
【
図13】一実施例における量子プログラムのコンパイル装置の構成を示すブロック図である。
【
図14】一実施例における量子コンピュータの内部構成を示す図である。
【発明を実施するための形態】
【0015】
本出願の目的、技術案及び利点をより明確にするために、以下、図面及び実施例と併せて本出願をさらに詳細に説明する。なお、ここで説明される具体的な実施例は本出願を解釈するためにのみ用いられ、本出願を限定するものではない。
【0016】
本出願の実施例で提供される量子プログラムの実行方法は
図1に示すような適用環境に用いることができる。この適用環境には古典コンピュータ102及び量子コンピュータ104が含まれる。そのうち、量子コンピュータ104はネットワークを介して古典コンピュータ102と通信でき、量子コンピュータは量子力学の法則に従って高速な数学的及び論理演算の実行や量子情報の記憶及び処理を行う物理装置である。古典コンピュータは量子コンピュータと相対的なものであり、古典コンピュータは通常のコンピュータと呼ばれても良く、現在成熟した計算機である。量子コンピュータにおける量子ビットの間は完全に接続されていない可能性があり、即ち、一部のみの量子ビットの間は接続可能である。量子コンピュータは接続関係を有する量子ビット対(ペア)の間又は単一の量子ビット上で量子操作しか実行できない。通常、ハイブリッド量子アルゴリズムを設計するときに、量子コンピュータの量子ビット接続関係を考慮しないため、論理量子回路で構成される量子プログラムは直接量子コンピュータで実行され得ないことがある。よって、論理量子回路に対して変換を行い、変換後の量子回路(説明の便宜のため、以下、変換後の量子回路を物理量子回路と称する場合がある)が量子ビット接続関係を満足するようにさせることで、量子コンピュータで実行されるようにさせることができる。
図1に示す適用シナリオの場合、論理量子回路からなる初期量子プログラムに対して変換を行うプロセスは
図1における古典コンピュータにより実行され得る。
【0017】
一実施例において、古典コンピュータは量子コンピュータと通信可能に接続され、初期量子プログラムは古典コンピュータに記憶されており、古典コンピュータは量子コンピュータとのインタラクションにより、初期量子プログラムを量子コンピュータに送信し、量子コンピュータは自分の量子ビット接続関係を記憶している。量子コンピュータは量子コンピュータの量子ビット接続関係に基づいて初期量子プログラムをコンパイルすることで物理量子回路及びマッピング変換回路を含む目標量子プログラムを取得し実行する。
【0018】
もう1つの実施例において、古典コンピュータは量子コンピュータと通信可能に接続され、古典コンピュータは量子コンピュータとのインタラクションにより、初期量子プログラム及び量子コンピュータの量子ビット接続関係を取得する。古典コンピュータは量子コンピュータの量子ビット接続関係に基づいて論理量子回路に対して変換を行って物理量子回路を取得し、そして、物理量子回路からなる目標量子プログラムを量子コンピュータに送信して実行してもらう。
【0019】
具体的には、古典コンピュータは取得した量子プログラムについて量子コンピュータの量子ビット接続関係に従ってコンパイルを行ってコンパイル後の目標量子プログラムを取得し、そして、量子コンピュータに送信して実行してもらい、そのうち、量子コンピュータが目標量子プログラムを実行するプロセスは、量子コンピュータが目標量子プログラムに含まれる物理量子回路のうちの初期量子回路を現在の量子回路とし;現在の量子回路を実行して量子測定結果を取得し;現在の量子回路と接続関係がある候補量子回路のうちから、量子測定結果にマッチした目標量子回路を選択し、接続関係は目標量子プログラムに対応する制御フローにマッチしており;及び、現在の量子回路と目標量子回路との間のマッピング変換回路を実行することで目標量子回路を現在の量子回路とし、実行終了条件が満足されないときに、上述の現在の量子回路を実行して量子測定結果を取得するステップにリターンし継続して実行し、実行終了条件が満足されるときにプログラム実行結果を取得することを含む。
【0020】
そのうち、古典コンピュータ102は各種のパソコン、ノートブックコンピュータ、スマートフォン、タブレットコンピュータ、IoTデバイス及びポータブルウェアラブルデバイスであっても良いが、これらに限定されず、IoTデバイスはスマートスピーカ、スマートテレビ、スマートエアコン、スマート車載機器などであっても良い。ポータブルウェアラブルデバイスはスマートウォッチ、スマートブレスレット、ヘッドマウントデバイスなどであっても良い。量子コンピュータ104は量子力学の法則に従って高速な数学的及び論理演算の実行や量子情報の記憶及び処理を行う物理装置である。
【0021】
一実施例において、
図2に示すように、量子プログラムの実行方法が提供され、以下、該方法が
図1における量子コンピュータに適用されることを例にして説明を行い、具体的には以下のステップを含む。
【0022】
ステップ202:目標量子プログラムに含まれる物理量子回路のうちの初期量子回路を現在の量子回路とする。
【0023】
そのうち、目標量子プログラムは量子コンピュータにおける量子ビット間の接続性を満足し、かつ量子コンピュータで実行され得る量子プログラムである。具体的には、目標量子プログラムは量子コンピュータにおける量子ビット間の接続性に従って書かれた量子プログラムであっても良く、予め書かれた初期量子プログラムについて量子コンピュータにおける量子ビット間の接続性に基づいて該初期量子プログラムをコンパイルすることで得られた量子プログラムであっても良い。目標量子プログラムにおける各量子回路の制御実行方式は古典制御方式であり、古典制御方式とは1つ前のステップの実行結果によってその次のステップの実行動作をリアルタイムに判断する制御方式を指す。
【0024】
量子回路は量子プログラムの構成部分であり、1つの量子プログラムは1つの量子回路を含んでも良く、2つ又は2つ以上の量子回路を含んでも良い。量子回路は複数の量子ビット及び一連の量子ゲートと量子測定操作を含む。
【0025】
そのうち、量子ビットは量子コンピュータがデータを記憶する基本的な単位であり、量子プログラムは量子ビットに対してそれ相応の操作を行って具体的な機能を実現する。量子ゲートはその作用する量子ビットの状態を変えることで特定の量子操作を実現できる。その作用する量子ビットの数に従って、量子ゲートは1量子ビットゲートと2量子ビットゲートに分けることができる。1量子ビットゲートは1つのみの特定の量子ビットに作用し、該量子ビットの状態しか変更できず、2量子ビットゲートは2つの量子ビットに作用し、この2つの量子ビットの状態を変更でき、2量子ビットゲートは具体的には制御ノットゲート(制御NOTゲート)、交換ゲートなどを含む。
図3に示す量子回路では該量子回路は2つの量子ビットq
0、q
1を含み、各ラインは対応する量子ビットを表し、モジュールAは量子ビットq
0に作用する一般的な1量子ビットゲートを表し、モジュールBは量子ビットq
0、q
1に作用する制御ノットゲートを表し、モジュールCは量子ビットq
0に対しての測定操作を表す。
【0026】
古典制御を含む目標量子プログラムには2つの特殊な量子回路があり、それぞれは初期量子回路及び終了量子回路である。そのうち、初期量子回路は量子プログラムが初期状態で実行する必要のある1番目の量子回路を表し、終了量子回路は対応する量子回路を実行した後に量子プログラムが終了し、即ち、量子プログラムが実行する必要のある最後の1つの量子回路を表す。量子コンピュータは初期量子回路に対応する標識に対しての識別に基づいて量子プログラムにおける初期量子回路及び終了量子回路を決定できる。初期量子回路に対応する標識及び終了量子回路に対応する標識は量子プログラムを書くプロセスでマックされ得る。
【0027】
具体的には、量子コンピュータは量子コンピュータにおける量子ビット間の接続性を満足する目標量子プログラムを得た後に、目標量子プログラムに含まれる量子回路のうちから初期量子回路を識別し、初期量子回路を現在の量子回路とし、そして、初期量子回路における量子ゲートの配列順序に従って初期量子回路における各量子ビットに対して量子操作を順次行う。
【0028】
ステップ204:現在の量子回路を実行して量子測定結果を取得する。
【0029】
そのうち、現在の量子回路は量子プログラムの実行プロセスで現在実行される必要のある量子回路であり、現在の量子回路は実行プロセスに伴って変化し得る。具体的には現在の量子回路に対しての実行が終了した後に、次の実行待ちの量子回路を新しい現在の量子回路とすると表現される。
【0030】
具体的には、現在の量子回路の実行プロセスは具体的には、現在実行される量子回路における量子ゲートの配列順序に従って、量子ビットの状態に対して量子ゲートに対応する量子操作を順次行うことで、量子ビットの状態を変更する。なお、量子ゲートの毎回の量子操作がすべてその作用する量子ビットの状態を変え得るので、同一の量子ビットに対して行われる毎回の量子測定結果には差異が出る可能性がある。
【0031】
量子測定結果は量子ビットに対して量子測定処理を行った後に得られる結果であり、量子測定は特殊な量子操作であり、量子測定の具体的な処理プロセスは1つ又は複数の特定の量子ビットに対して所定の調整・制御を行うことで量子ビット状態について1つの測定結果を得ることを含み、測定結果の値はランダムであり、かつ或る結果を得る確率は被測定量子ビットの状態に関連している。
【0032】
量子ビットに対して量子測定操作を行った後に、被測定量子ビットの状態もランダムに変わり得る。目標量子プログラムにおける各量子回路は何れも対応する量子測定操作を有し、1つの量子回路の実行が完了した後に、量子回路における1つ又は複数の量子ビットに対して行われた量子測定操作に基づいて量子測定結果を読み取り、その後に実行される必要のある量子回路を決定する。
【0033】
具体的には、量子コンピュータは現在の量子回路が表する量子回路を決定した後に、該量子回路についての実行プロセスを起動(開始)し、量子回路における量子ゲートの配列順序に従って、量子ゲートによって対応する量子操作を実行して量子ビットの状態を変更し、そして、量子測定を行うための量子ゲートから該量子回路に対応する量子測定結果を読み取る。
【0034】
ステップ206:現在の量子回路と接続関係がある候補量子回路のうちから、量子測定結果にマッチした目標量子回路を選択し、接続関係は目標量子プログラムに対応する制御フローにマッチしている。
【0035】
そのうち、候補量子回路は現在の量子回路と接続関係がある量子回路である。具体的には、量子コンピュータは目標量子プログラムに対応する制御フローに基づいて、現在の量子回路と接続関係がある量子回路を決定し、接続関係がある量子回路を候補量子回路とする。量子測定結果は文字列(string of characters)で表すことができ、文字列における各文字は被測定目標量子ビットの測定結果を表し、文字列の桁数は被測定目標量子ビットの数に関連しても良く、被測定目標量子ビットの数は現在の量子回路と接続関係がある候補量子回路の数に基づいて決定され得る。
【0036】
目標量子プログラムに対応する制御フローは量子回路の実行順序を表すために用いられ、量子回路間の接続関係は事前設定の実行順序に従って決定され、量子回路間での事前設定の実行順序に従って、順次実行される必要のある2つ量子回路を接続することで、量子回路間の接続関係を得ることができる。例えば、量子プログラムを書くときに、先に量子回路Aを実行し、次に量子回路Bを実行すると設定する場合、設定された実行順序に従って量子回路Aと量子回路Bとを接続することで量子回路Aと量子回路Bとの接続関係を決定できる。なお、接続関係は単一の方向(一方向)であり、同一の量子回路は複数の量子回路を接続しても良く、複数の量子回路に接続されても良い。例えば、量子回路1、量子回路2及び量子回路3はすべて量子回路4に接続され、量子回路4はそれぞれ量子回路5及び量子回路6に接続される。量子コンピュータは量子回路4の実行を完了したとき、量子回路4の現在の実行結果に基づいて、次に実行される量子回路が量子回路5及び量子回路6のうちのどちらかをリアルタイムに判断する。
【0037】
具体的には、量子コンピュータは現在の量子回路と接続関係がある候補量子回路を決定することで、現在の量子回路に対応する量子測定結果に基づいて、候補量子回路のうちから量子測定結果にマッチした目標量子回路を選択する。具体的な応用では、目標量子プログラムに対応する制御フローを表す有向グラフと併せて、現在の量子回路と接続関係がある候補量子回路を決定できる。
【0038】
1つの具体的な応用において、目標量子プログラムに対応する制御フローは1つの有向グラフにより表すことができ、有向グラフにおけるノードは1つの具体的な量子回路を表し、ノードの出方向エッジ(outgoing edge)は該量子回路の1つの量子測定結果に対応する。出方向エッジが指向する目的ノードは該測定結果を得た場合、その後に実行される必要のある量子回路を表す。また、有向グラフはさらに2つの特殊ノードを定義する必要があり、それぞれは初期ノード及び終了ノードである。初期ノードは量子プログラムが初期状態で実行する必要のある初期量子回路を表し、終了ノードは量子プログラムの終了量子回路を表し、終了ノードのアウトディグリー(out-degree)は0であり、アウトディグリーとはノードの出方向エッジの数を指す。
図4は古典制御フローを表す有向グラフであり、
図4に示すように、0のノードは初期ノードであり、7のノードは終了ノードである。0のノードと1のノードの間は2つの有向矢印により接続され、0のノードから1のノードへの出方向エッジは、0のノードに含まれる量子回路の実行を完了した後に、1のノードに含まれる量子回路を実行することを表す。1のノードから0のノードへの出方向エッジは、1のノードに含まれる量子回路の実行を完了した後に、0のノードに含まれる量子回路を実行することを表す。
【0039】
ステップ208:現在の量子回路と目標量子回路との間のマッピング変換回路を実行することで目標量子回路を現在の量子回路とする。
【0040】
実行終了条件が満足されないときに、ステップ204にリターンし継続して実行し、実行終了条件が満足されるときに、ステップ210に移行する。
【0041】
ステップ210:プログラム実行結果を得る。
【0042】
そのうち、マッピング変換回路は2つの物理量子回路を接続するための中間回路であり、マッピング変換回路はソース物理量子回路の最後の量子ビットマッピング関係とターゲット(目的)物理量子回路の最初の量子ビットマッピング関係の変換を実現できる。マッピング変換回路を実行して物理量子回路の切り替えを実現することで、現在の量子回路を更新する。実行終了条件とは、現在の量子回路を実行して量子測定結果を取得することにリターンする処理プロセスを終了する終了条件を指す。具体的には、実行終了条件は現在の量子回路に接続関係を有する候補量子回路が存在せず、即ち、現在の量子回路が量子プログラムにおける終了量子回路であるということであっても良い。実行終了条件が満足されたときに得られる実行結果は、量子プログラムにおける全部の量子回路の実行を完了した、即ち、終了量子プログラムの実行を完了した後に得られる結果である。
【0043】
具体的には、量子コンピュータは目標量子回路を現在の量子回路とし、現在の量子回路が表す量子回路を実行することで量子回路に対応する量子測定結果を取得し、そして、現在の量子回路に接続関係を有する候補量子回路が存在するかを判断し、判断結果が存在である場合、現在の量子回路と接続関係がある候補量子回路のうちから、量子測定結果にマッチした目標量子回路を選択し、引き続き該目標量子回路を現在の量子回路とし、判断結果が不存在になるまで繰り返して実行し、また、判断結果が不存在である場合、量子プログラム実行終了時の実行結果をフィードバックする。
【0044】
上述の量子プログラムの実行方法では、目標量子プログラムに含まれる物理量子回路のうちの初期量子回路を現在の量子回路とすることで、量子プログラムの実行開始点を決定し、現在の量子回路を実行して量子測定結果を取得することで、現在の量子回路と接続関係がある候補量子回路のうちから、量子測定結果にマッチした目標量子回路を選択し、量子測定結果に基づいて目標量子回路の選択を行うことで、制御フローに基づく量子回路の実行を実現し、現在の量子回路と目標量子回路との間のマッピング変換回路を実行して目標量子回路を現在の量子回路とすることで、異なる物理量子回路間の接続の実行を実現し、現在の量子回路を実行して量子測定結果を取得することにリターンし継続して実行することで、実行終了条件が満足されるときにプログラム実行結果を取得し、このようにして、量子コンピュータは制御フローを有する複雑な量子プログラムを実行し、データ処理リソースへの占用を簡素化できるため、量子コンピュータが制御フローに従って制御フローを有する複雑な量子プログラムを正確に実行し得るようにさせることができる。
【0045】
一実施例において、現在の量子回路と目標量子回路との間のマッピング変換回路を実行することで目標量子回路を現在の量子回路とし、現在の量子回路を実行して量子測定結果を取得するステップにリターンし継続して実行し、実行終了条件が満足されるときにプログラム実行結果を取得することは、目標量子回路が終了量子回路でないときに、目標量子回路を現在の量子回路とし、現在の量子回路を実行して量子測定結果を取得するステップにリターンし継続して実行し;及び、目標量子回路が終了量子回路であるときに、終了量子回路を実行し、目標量子プログラムの実行結果を取得することを含む。
【0046】
そのうち、終了量子回路とは目標量子プログラムにおける最後の1つの実行される量子回路を指し、終了量子回路の実行後の結果は目標量子プログラムの実行結果である。量子コンピュータは終了量子回路に対応する標識に対しての識別に基づいて、目標量子回路が終了量子回路であるかを判定できる。そのうち、終了量子回路に対応する標識は量子プログラムを書くプロセスでマークすることができる。
【0047】
具体的には、現在の量子回路の反復更新プロセスでは量子コンピュータは目標量子回路が終了量子回路であるかを判断し、目標量子回路が終了量子回路でないときに、目標量子回路を現在の量子回路とし、現在の量子回路と接続関係がある候補量子回路のうちから、量子測定結果にマッチした目標量子回路を選択し、そして、判断結果が「目標量子回路が終了量子回路である」になるまで循環的に実行し、また、目標量子回路が終了量子回路であるときに、終了量子回路を実行し、目標量子プログラムの実行結果を取得できる。そのうち、目標量子回路が終了量子回路であるかは量子回路に対応する標識に基づいて決定されても良く、接続関係を有する候補量子回路が存在するかに基づいて決定されても良い。
【0048】
具体的な応用では、量子コンピュータは選択した目標量子回路が終了量子回路であるかを判断することで、循環を終了するかを決定し、循環が終了したときに、終了量子回路を実行して目標量子プログラムの実行結果を取得でき、このようにして、終了量子回路を実行するときに、量子測定結果を得る必要がなく、データ処理量を減少させることができる。量子コンピュータは実行される目標量子回路に接続関係を有する候補量子回路が存在するかを判断することで、循環を終了するかを決定し、循環が終了したときに、目標量子プログラムの実行結果を直接取得でき、このようにして、直接、候補量子回路が存在するかに基づいて判断を行うことで、終了量子回路の識別プロセスを簡素化でき、データ処理効率の向上に有利である。
【0049】
本実施例では、量子コンピュータは目標量子回路が終了量子回路であるかを判断することで、目標量子回路が終了量子回路でないときに、目標量子回路を現在の量子回路とし、また、目標量子回路を再決定することで、循環的に実行する。循環終了条件を設定することで、目標量子プログラムにおける各量子回路が制御フローに従って正確に実行されることを確保できるため、目標量子プログラムの実行結果の正確性を向上させることができる。
【0050】
一実施例において、量子プログラムの実行方法はさらに、現在の量子回路に対しての実行起動イベントに応じて、現在の量子回路における目標量子ビットに対して量子測定操作を行うことを含む。
【0051】
さらに、現在の量子回路を実行して量子測定結果を取得することは、現在の量子回路の実行が終了するときに、目標量子ビットに対応する量子測定結果を取得することを含む。
【0052】
そのうち、実行起動イベントとは現在の量子回路が表す量子回路の実行を開始するトリガーイベントを指す。具体的には、量子コンピュータは量子測定結果に基づいて目標量子回路を決定したときに、目標量子回路を現在の量子回路とし、目標量子回路に対しての実行起動イベントを自動的にトリガーする。量子測定操作は量子回路実行プロセスにおける1つの特殊な量子操作であり、量子測定操作の対象は量子回路における1つ又は複数の目標量子ビットである。目標量子ビットは量子プログラム設計時に設定されても良く、量子測定操作は目標量子ビットの現在の状態に対しての操作であり、かつ量子測定操作のプロセスはその測定する目標量子ビットの状態を変えることもできる。量子測定結果の値はランダムであり、かつ或る結果を得る確率は被測定量子ビットの状態に関連しており、測定の後に、被測定量子ビットの状態もランダムに変わり得る。
【0053】
具体的には、量子コンピュータは現在の量子回路がトリガーした、現在の量子回路に対しての実行起動イベントの決定に応じて、現在の量子回路が表す量子回路に含まれる量子測定用の量子ゲートに基づいて、目標量子ビットに対して量子測定操作を行う。現在の量子回路が表す量子回路に対しての実行が終了するときに、目標量子ビットに対応する量子測定結果を取得し、そして、量子測定結果に基づいて、更新される現在の量子回路を決定する。具体的な実現にあたって、量子コンピュータは現在の量子回路に対しての実行起動イベントに応じて、現在の量子回路において測定操作を行うための目標量子ゲート、及び、目標量子ゲートにマッチした目標量子ビットを決定し、目標量子ゲートに基づいて、マッチした目標量子ビットの状態データに対して測定操作を行い、更新状態データ及び量子測定結果を取得する。
【0054】
本実施例では、量子コンピュータは現在の量子回路がトリガーした、現在の量子回路に対しての実行起動イベントの決定に応じて、現在の量子回路が表す量子回路に含まれる量子測定の量子ゲートに基づいて、目標量子ビットに対して量子測定操作を行い、現在の量子回路の実行が終了するときに、目標量子ビットに対応する量子測定結果を取得し、このようにして、量子測定結果の正確性を確保できる。
【0055】
一実施例において、目標量子ビットの数は複数であり、現在の量子回路の実行が終了するときに、目標量子ビットに対応する量子測定結果を取得することは、現在の量子回路の実行が終了するときに、各目標量子ゲートのうちからそれぞれ量子測定結果を表すための2進数(バイナリ)ビットデータを読み取り、各2進数ビットデータからなる2進数ビットストリングを量子測定結果とすることを含む。
【0056】
そのうち、2進数ビットデータとは値が0又は1のビットデータを指し、量子測定結果は2進数古典ビットストリングで表され、その桁数は被測定量子ビットの数に等しい。量子プログラムにおけるすべての測定操作について、論理量子回路間の接続関係
【0057】
【数1】
を決定し、そのうち、iは該測定操作の所在する論理量子回路の番号を表し、j
mはmの測定結果を得た後に実行される必要のある論理量子回路の番号を表し、nは被測定量子ビットの数を表す。例えば、論理量子回路iと接続関係がある論理量子回路の数が4である場合、被測定目標量子ビットの数は2であっても良く、論理量子回路iと接続関係がある論理量子回路の数が8である場合、被測定目標量子ビットの数は3であっても良い。
【0058】
本実施例では、2進数ビットデータからなる2進数ビットストリングを量子測定結果とすることで、被測定目標量子ビットの測定結果に対しての表現を簡素化し、被測定目標量子ビットの数を効果的に減少させることができるため、量子測定プロセスの処理効率を向上させることができる。
【0059】
一実施例において、量子プログラムの実行方法は目標量子プログラムのコンパイルプロセスをさらに含み、そのうち、目標量子プログラムのコンパイルプロセスは古典コンピュータで実現されても良く、古典コンピュータはコンパイルして得た目標量子プログラムを量子コンピュータに送信して実行してもらい、又は、目標量子プログラムのコンパイルプロセスは量子コンピュータで実現されても良く、量子コンピュータはコンパイルした後にコンパイルして得た目標量子プログラムを直接実行する。
【0060】
量子プログラムのコンパイルプロセスは具体的には、古典コンピュータ又は量子コンピュータが量子プログラム実行環境に対応する実行条件に基づいて、初期量子プログラムの制御フローに従って、初期量子プログラムをコンパイルして目標量子プログラムを得ることを含む。そのうち、目標量子プログラムが含む各物理量子回路は制御フローの各ノードに対応し、各物理量子回路間のマッピング変換回路は各ノード間の接続関係に対応する。
【0061】
そのうち、量子プログラム実行環境に対応する実行条件は目標量子プログラムを実行する量子コンピュータにより決定され、異なる量子コンピュータに対応する実行条件は異なる可能性がある。実行条件は具体的には量子コンピュータにおける各量子ビットの間の物理接続制限条件であっても良い。物理接続制限条件は量子コンピュータの構成図で表すことができる。量子コンピュータの構成図は1つの無向接続図であり、図中ではノードが物理量子ビットを表し、エッジが量子ビットの接続を表し、エッジにより直接接続される物理量子ビットの間でのみ2つの量子ビットのゲート変換を実行できる。
図5に示す無向接続図では、物理ビット(v0,v1)、(v1,v2)の間でのみ2つの量子ビットのゲート変換を実行でき、(v0,v2)の間では対応するゲート変換を実行できない。
【0062】
初期量子プログラムとは量子コンピュータの物理接続制限条件を考慮せずに設計される量子アルゴリズムを指す。コンパイルとは、量子コンピュータの物理接続制限条件を考慮せずに設計される初期量子プログラムを、量子コンピュータで実行できる目標量子プログラムに変換する処理プロセスを指す。初期量子プログラムは論理量子回路からなり、古典コンピュータ又は量子コンピュータは論理量子回路からなる初期量子プログラムを変換することで、変換後の目標量子回路が量子コンピュータの物理接続性制限を満足するようにさせることができ、これによって、量子コンピュータで実行され得るようにさせることができる。
【0063】
初期量子プログラムの制御フローは古典制御フローを導出するためのサブプログラムにより実現されても良く、このようにして、初期量子プログラムの制御フローを表すための有向グラフを得ることができる。有向グラフにおけるノード及びノード間の有向接続関係により、量子回路及び量子回路の間の接続関係を表すことができる。
【0064】
1つの具体的な応用において、古典コンピュータ又は量子コンピュータは入力された初期量子プログラムに対して古典制御フロー導出サブプログラムを実行し、古典制御フロー導出サブプログラムのデータ処理プロセスは次のようなことを含み、即ち、初期量子プログラムにおける各論理量子回路について1つの対応するノードを生成し、初期論理量子回路に対応するノードを初期ノードと記し、終了論理量子回路に対応するノードを終了ノードと記し、初期量子プログラムにおけるすべての測定操作についてエッジ
【0065】
【数2】
を生成し、そのうち、iは該測定操作の所在する論理量子回路ノード番号を表し、j
mはmの測定結果を得た後に実行される必要のある論理量子回路ノードの番号を表し、nは被測定量子ビットの数を表し、そして、生成されるノード及びノード間のエッジに基づいて、初期量子プログラムの制御フローを表すための有向グラフを得ることである。古典コンピュータ又は量子コンピュータは初期量子プログラムにおける論理量子回路を物理量子回路に変換し、有向グラフが表す論理量子回路間の接続関係に基づいて変換後の物理量子回路を接続し、目標量子プログラムを得る。
【0066】
本実施例では、古典コンピュータ又は量子コンピュータは量子プログラム実行環境に対応する実行条件に基づいて、初期量子プログラムの制御フローに従って、初期量子プログラムをコンパイルして目標量子プログラムを得ることで、コンパイルの方式により、量子コンピュータの物理接続制限条件を考慮せずに設計される量子アルゴリズムを、量子コンピュータで実行され得る目標量子プログラムに変換できるため、量子プログラム設計時の制限条件を減少させることができ、異なる量子コンピュータについて、対応する物理接続制限条件に従ってコンパイルを行うだけで良く、量子プログラム設計時の制限を低減できるとともに、量子プログラムの使用可能な範囲を拡大(拡張)することもできる。
【0067】
一実施例において、
図6に示すように、量子プログラムのコンパイル方法が提供される。なお、量子プログラムのコンパイル方法は上述の量子プログラムの実行方法で量子プログラム実行環境に対応する実行条件に従って制御フローを含む初期量子プログラムをコンパイルして目標量子プログラムを得る具体的な実現プロセスとすることもできる。以下、該方法が
図1における量子コンピュータに適用されることを例にして説明を行い、具体的には以下のステップを含む。
【0068】
ステップ602:初期量子プログラムの制御フローに従って、初期量子プログラムに含まれる複数の論理量子回路及び各論理量子回路間の接続関係を決定する。
【0069】
ステップ604:量子プログラム実行環境に対応する実行条件に従って、各論理量子回路をそれぞれ物理量子回路に変換する。
【0070】
ステップ606:各論理量子回路間の接続関係の物理量子回路間でのマッピングに基づいて、接続関係を有する2つの物理量子回路に対して量子ビットマッピング関係の変換を行い、マッピング変換回路を取得する。
【0071】
ステップ608:物理量子回路及びマッピング変換回路を含む目標量子プログラムを初期量子プログラムのコンパイル結果とする。
【0072】
そのうち、量子プログラム実行環境に対応する実行条件は量子コンピュータの物理接続制限条件、即ち、量子コンピュータに合致した量子ビット接続関係を含む。量子プログラムの設計では通常、量子コンピュータの量子ビット接続関係を考慮せず、かつデフォルトで任意の量子ビットの間で2量子ビットゲート変換を行うことができると見なし、このような仮定に基づいて設計された量子回路は論理量子回路であり、論理量子回路に含まれる量子ビットは論理量子ビットである。それ相応に、1つの量子回路におけるすべての2量子ビットゲートが何れも或る特定の量子コンピュータの量子ビット接続関係を満足する場合、該量子回路を物理量子回路と呼び、物理量子回路に含まれる量子ビットは物理量子ビットである。
【0073】
量子コンピュータの量子ビット接続関係に基づいて、量子ビットマッピングにより、論理量子回路を物理量子回路に変換できる。量子コンピュータは量子プログラムを実行するときに、論理量子回路における量子ビットを物理量子ビットにマッピングする必要があり、該プロセスは量子ビットマッピングと称される。物理回路に交換ゲートを導入することで1つの決定された量子ビットマッピングを変えることができ、
図7に示すように、量子ビットマッピングの初期状態がq
0からv
0へのマッピング、q
1からv
1へのマッピング、q
2からv
2へのマッピングであり、交換ゲートSWAP(v
0,v
1)を導入することで、量子ビットマッピングを、q
0からv
1へのマッピング、q
1からv
0へのマッピング、q
2からv
2へのマッピングと変換できる。符号τで1つの量子ビットマッピングを表すとし、τ(q)はqの論理量子ビットの該マッピング下の対応する物理量子ビットを表す。
【0074】
そのうち、論理量子ビットの数は物理量子ビットの数と同じであっても良く又は異なっても良い。両者の数が同じであるときに、論理量子ビットと物理量子ビットの間は一対一対応しても良い。
図7に示すように、
図7ではq
0はv
0にマッピングされ、q
1はv
1にマッピングされ、q
2はv
2にマッピングされる。両者の数が異なるときに、物理量子ビットの数は論理量子ビットの数よりも大きくても良い。この場合、論理量子ビットは一部の物理量子ビットにマッピングされ得る。例えば、量子コンピュータに10個の物理量子ビットが含まれるとする場合、10個の物理量子ビットのうちから、3つの物理量子ビットを、論理量子ビットに一対一対応するように選択しても良い。
【0075】
各論理量子回路をそれぞれ物理量子回路に変換するプロセスは量子回路変換と称され、量子回路変換とは次のようなことを指し、即ち、特定の量子コンピュータで量子回路を実行するために、量子コンピュータにおける物理量子ビットの構成図に基づいて、まず、1つの初期量子ビットマッピングを決定し、その後、冗長な交換ゲート操作を導入し、論理量子回路を実行可能な物理量子回路に変換することで、生成される物理量子回路が機能上、論理量子回路と等価になるようにさせ、かつそのうちの2量子ビットゲートが量子コンピュータの構成図の接続性制限を満足させるようにさせることである。
【0076】
マッピング変換回路は量子ビットマッピング変換を実現するための量子回路である。量子ビットマッピング変換とは2つの量子ビットマッピング関係の変換を指す。具体的に言えば、与えられる2つの量子ビットマッピング関係について、一連の交換ゲート操作を導入することで1つの量子ビットマッピング関係をもう1つの量子ビットマッピング関係に変換するプロセスである。
【0077】
具体的には、古典コンピュータ又は量子コンピュータは初期量子プログラムを得ることで、初期量子プログラムの制御フローに従って、初期量子プログラムに含まれる複数の論理量子回路及び各論理量子回路間の接続関係を決定し、また、論理量子回路をノードとし、かつ各論理量子回路間の接続関係をノード間の接続エッジとすることで有向グラフを構築し;論理量子回路をノードとし、かつ各論理量子回路間の接続関係をノード間の接続エッジとすることで有向グラフを構築した後に、有向グラフの各変換待ちノードに基づいて、量子プログラム実行環境に対応する実行条件に従って量子回路変換を行うことで、各変換待ちノードが表す論理量子回路をそれぞれ物理量子回路に変換し、向グラフの各変換待ち接続エッジに基づいて、各変換待ち接続エッジに接続される物理量子回路に対して最初と最後の量子ビットマッピング関係の変換を行い、マッピング変換回路を取得し、具体的には古典コンピュータ又は量子コンピュータは有向グラフの任意の1つの未変換(変換前)のノード、即ち、物理量子回路に変換されていない論理量子回路について、量子プログラム実行環境に対応する実行条件に従って、各論理量子回路のそれぞれを、有向グラフにおけるすべてのノードの変換が完了するまで物理量子回路に変換し;その後、有向グラフの任意の1つの未変換のエッジ、即ち、量子ビットマッピング関係の変換が行われておらず、かつ接続関係を有する2つの物理量子回路について、最初と最後の量子ビットマッピング関係の変換を、有向グラフにおけるすべての未変換のエッジの変換が完了するまで行い、そして、変換後のノード及びノードの接続エッジの有向グラフに基づいて、変換後の有向グラフが表す量子プログラムを取得し、それはコンパイル後の目標量子プログラムである。
【0078】
本実施例では、古典コンピュータ又は量子コンピュータは、コンパイル段階では、古典制御フローを含む論理レベルの初期量子プログラムを、量子回路変換処理及び最初と最後の量子ビットマッピング関係の変換処理により、量子コンピュータで実行可能な一連の物理量子回路集合に変換し;量子プログラムの実行段階では、量子コンピュータが物理量子回路に対しての測定結果に基づいて、対応するコンパイル済みの次の物理量子回路を呼び出すようにさせる。これによって、古典制御を含む1つの量子プログラムの実行プロセスを確実に実現でき、異なる量子コンピュータについて、対応する物理接続制限条件に従ってコンパイルを行うだけで良いため、量子プログラム設計時の制限を低減し、量子プログラムの使用可能な範囲を拡大できる。
【0079】
一実施例において、各論理量子回路間の接続関係の物理量子回路間でのマッピングに基づいて、接続関係を有する2つの物理量子回路に対して量子ビットマッピング関係の変換を行い、マッピング変換回路を取得することは、各論理量子回路間の接続関係の物理量子回路間でのマッピングに基づいて、物理量子回路間の接続関係を決定し;接続関係を有する2つの物理量子回路のうちから、ソース物理量子回路に対応する最後の量子ビットマッピング関係及びターゲット物理量子回路に対応する最初の量子ビットマッピング関係を取得し;そして、マッピング関係の変換により、最後の量子ビットマッピング関係を最初の量子ビットマッピング関係に変換したマッピング変換回路を得ることを含む。
【0080】
そのうち、交換ゲートはスワップゲート(SWAP)とも称され、SWAPゲートの操作対象は2つの量子ビットである、SWAPゲートの作用(機能/役割)は2つの量子ビットが互いに、量子ビットを交換するようにさせることである。具体的には、古典コンピュータ又は量子コンピュータは各論理量子回路間の接続関係に基づいて接続関係の物理量子回路間でのマッピングを実現することで、物理量子回路間の接続関係を決定でき、接続関係を有する2つの物理量子回路について、各物理量子回路が複数の量子ビット及び順に配列される量子ゲートを含むため、量子ビット及び順に配列される量子ゲートに基づいて、接続関係を有する2つの物理量子回路のうちから、ソース物理量子回路に対応する最後の量子ビットマッピング関係及びターゲット(目的)物理量子回路に対応する最初の量子ビットマッピング関係を得ることができる。最後の量子ビットマッピング関係及び最初の量子ビットマッピング関係により対応する物理量子ビットを決定し、決定した物理量子ビットの間に交換ゲートを導入し、マッピング変換回路を取得し、そして、マッピング変換回路に基づいて最後の量子ビットマッピング関係と最初の量子ビットマッピング関係のマッピング関係の変換を実現することで、物理量子回路間の接続も量子コンピュータに対応する量子ビット接続関係に一致するようにさせることができるため、物理量子回路が順次実行されるようにさせることができる。
【0081】
本実施例では、古典コンピュータ又は量子コンピュータは接続関係を有する2つの物理量子回路のうちから、ソース物理量子回路に対応する最後の量子ビットマッピング関係及びターゲット物理量子回路に対応する最初の量子ビットマッピング関係を取得し;また、交換ゲートを導入してマッピング変換回路を構築し、量子ビットマッピング関係の変換を行うことで、2つの物理量子回路の実行プロセスでの接続を実現できるため、量子プログラムの実行プロセスの信頼性を向上させることができる。
【0082】
一実施例において、マッピング関係変換により、最後の量子ビットマッピング関係を最初の量子ビットマッピング関係に変換したマッピング変換回路を得ることは、古典コンピュータ又は量子コンピュータは実行条件を表す構成図のうちから第一物理量子ビットを決定し、第一物理量子ビットは構成図から削除されたとしても構成図における量子ビット接続関係に影響しない物理量子ビットであり;最後の量子ビットマッピング関係に基づいて、第一物理量子ビットに対応する論理量子ビットを決定し、また、最初の量子ビットマッピング関係に基づいて、論理量子ビットに対応する第二物理量子ビットを決定し;第一量子ビットと第二量子ビットの構成図での接続径路を決定し;及び、接続径路に従って交換ゲートを導入することで、最後の量子ビットマッピング関係を最初の量子ビットマッピング関係に変換したマッピング変換回路を得ることを含む。
【0083】
そのうち、構成図は量子コンピュータにおける各物理量子ビットの接続性を表すための無向接続図であり、構成図におけるノードはそれぞれ、量子コンピュータにおける各物理量子ビットを表し、ノード間の接続エッジは接続されるノードが表す物理量子ビットの間に接続性があることを表す。論理量子ビット及び物理量子ビットの間はマッピング関係により一対一対応することができる。よって、最後の量子ビットマッピング関係及び第一物理量子ビットに基づいて、第一物理量子ビットに対応する論理量子ビットを決定でき、また、論理量子ビット及び最初の量子ビットマッピング関係に基づいて、論理量子ビットに対応する第二物理量子ビットをも決定できる。第一物理量子ビット及び第二物理量子ビットは2つの異なる量子ビットであり、実際の応用では、第一物理量子ビット及び第二物理量子ビットの名前は交換できる。
【0084】
接続径路とは、量子コンピュータに対応する量子ビット接続関係に一致しない末端(最後の)量子ビット及び始端(最初の)量子ビットについて、中間量子ビットを増加させることで末端量子ビットと始端量子ビットとを接続した後に得られた、末端量子ビット、中間量子ビット及び始端量子ビットからなる量子ビット集合を指す。接続径路に基づいて交換ゲートを導入するとは、接続径路が表す、順次接続される各量子ビットに基づいて、隣接する量子ビットの間に交換ゲートを導入することで、順次交換された後に末端量子ビットと始端量子ビットとの接続が実現されるようにさせることを指す。
【0085】
具体的には、古典コンピュータ又は量子コンピュータは量子コンピュータに対応する量子ビット接続関係に従って、物理量子ビットviとvjの間の1つの径路を構築し、
【0086】
【0087】
【数4】
は中間量子ビットであり、lは径路の長さであり、構築された接続径路に基づいて、物理量子回路に接続径路における各量子ビットの交換ゲート
【0088】
【数5】
を導入し、そのうち、導入された交換ゲートの数は径路の長さと同じである。
【0089】
1つの具体的な応用において、古典コンピュータ又は量子コンピュータは1つの空(empty)物理量子回路PCを構築すると同時に、現在の量子ビットマッピングτ=τiniを構築することで、量子コンピュータの量子ビット接続関係を表す構成図のうちから、1つの目標ノードを取り出し、vjと記し、かつvjを削除した後に構成図が依然として接続図であることを満足する必要があり、その後、変換後の物理量子回路のうちから、τfin(q)=vjを満足する1つの末端量子ビットqを見つけ、また、始端量子ビットをvi=τ(q)とし;構成図上で物理量子ビットviとvjの間の1つの径路を構成し、
【0090】
【数6】
と記し、そのうち、lは径路の長さであり、PCに
【0091】
【数7】
を導入し、かつ導入された交換ゲートに基づいてτを更新することで、末端量子ビットと始端量子ビットとの間の量子ビットマッピング変換を実現する。
【0092】
本実施例では、古典コンピュータ又は量子コンピュータは接続径路を構築し、接続径路に基づいて末端量子ビットと始端量子ビットとの間に交換ゲートを導入し、末端量子ビットと始端量子ビットとに対して量子ビットマッピング変換を行うことで、末端量子ビットと始端量子ビットとの接続を実現し、かつ元の実行論理に一致するようにさせることができるため、量子プログラムの実行プロセスの信頼性を向上させることができる。
【0093】
一実施例において、量子プログラム実行環境に対応する実行条件に従って、各論理量子回路をそれぞれ物理量子回路に変換することは量子プログラム実行環境に基づいて、量子プログラム実行環境に対応する量子ビット接続関係を決定し;各論理量子回路について、量子ビット接続関係に従って、論理量子回路に対して量子回路変換を行って物理量子回路を取得することを含む。
【0094】
そのうち、量子プログラム実行環境とはコンパイル後の目標量子プログラムを実行するための量子コンピュータにより提供される実行環境を指す。異なる量子コンピュータにおける物理量子ビットの間に異なる接続関係があるので、目標量子プログラムを実行する量子コンピュータを決定した後に、量子コンピュータに対応する量子ビット接続関係を得る必要がある。その後、量子ビット接続関係に基づいて量子回路変換を行う。
【0095】
量子回路変換は特定の量子コンピュータで量子回路を実行するために、該特定の量子コンピュータにおける物理量子ビット間の接続関係を表す構成図に基づいて、論理量子回路を実行可能な物理量子回路に変換するプロセスである。具体的には、論理量子回路における各論理量子ビットについて、1つの初期量子ビットマッピングを決定し、論理量子回路における各論理量子ビットに一対一対応する物理量子ビットを決定し、その後、冗長な交換ゲート操作を導入し、論理量子回路を実行可能な物理量子回路に変換することで、生成される物理量子回路が機能上、論理量子回路と等価になり、かつ物理量子回路における2量子ビットゲートが量子コンピュータ構成図の接続性制限を満足するようにさせる。
【0096】
1つの具体的な応用において、
図8に示すように、論理量子回路が論理量子ビットq
0、q
1、q
2及び制御ノットゲートCNOT(q
1,q
2)、CNOT(q
0,q
2)を含み、量子コンピュータにおける物理量子ビットがv
0、v
1、v
2を含み、そのうち、v
1はv
2に接続され、v
0はv
1に接続されるとする。量子回路変換のプロセスは、初期量子ビットマッピングをq
0からv
0へのマッピング、q
1からv
1へのマッピング、q
2からv
2へのマッピングとして選択し、物理量子回路にSWAP(v
0,v
1)を導入し、量子ビットマッピングをq
0からv
1へのマッピング、q
1からv
0へのマッピング、q
2からv
2へのマッピングに変更する同時に、CNOT(v
1,v
2)を導入し、該ゲートは機能上、論理量子回路におけるCNOT(q
0,q
2)に対応し;物理量子回路にSWAP(v
0,v
1)を導入し、量子ビットマッピングをq
0からv
0へのマッピング、q
1からv
1へのマッピング、q
2からv
2へのマッピングに変更すると同時に、CNOT(v
1,v
2)を導入し、該ゲートは機能上、論理量子回路におけるCNOT(q
1,q
2)に対応し、これによって、論理量子回路から同じ機能の物理量子回路への変換を実現する。
【0097】
本実施例では、古典コンピュータ又は量子コンピュータは量子プログラム実行環境に基づいて量子プログラム実行環境に対応する量子ビット接続関係を決定し;各論理量子回路について、量子ビット接続関係に従って、論理量子回路に対して量子回路変換を行うことで、変換後の物理量子回路が機能上、論理量子回路と同じになり、かつ量子コンピュータに対応する量子プログラム実行環境で実行されるようにさせることができるため、量子プログラムの実行の信頼性を向上させることができる。
【0098】
一実施例において、各論理量子回路について、量子ビット接続関係に従って、論理量子回路に対して量子回路変換を行って物理量子回路を得ることは、論理量子回路における各量子ゲートの配列順序に基づいて、量子ビット接続関係に従って、量子ゲートが作用する論理量子ビットとマッピング関係がある目標物理量子ビットを順次決定し;量子ゲートを、その作用する論理量子ビットに対応する目標物理量子ビットに追加し、論理量子回路のうちから量子ゲートを削除し;そして、論理量子回路の量子ゲート数がゼロ(0)になるときに、論理量子回路に対応する物理量子回路を得ることを含む。
【0099】
そのうち、量子ゲートは量子回路の構成部分である。量子ゲートは量子回路における量子ビットに作用し、その作用する量子ビットの状態を変更することで、特定の量子操作を実現するために用いられる。作用する量子ビットの数に従って、量子ゲートは1量子ビットゲートと2量子ビットゲートに分けることができる。1量子ビットゲートは1つのみの特定の量子ビットに作用し、該量子ビットのみの状態を変えることができ、2量子ビットゲートは2つの量子ビットに作用し、この2つの量子ビットの状態を変えることができ、2量子ビットゲートは制御ノットゲート及び交換ゲートを含む。量子回路における各量子ゲートは順序に従って配列されることで、量子ビットに対して順次行われる量子操作を表す。
【0100】
具体的には、古典コンピュータ又は量子コンピュータは論理量子回路における各量子ゲートの配列順序に従って、順次、量子ゲートが作用する論理量子ビットを、量子ビット接続関係を満足する物理量子ビットにマッピングすることで、物理量子回路において物理量子ビットについて論理量子ビットと同じの量子操作を実現でき、各量子ゲートが作用する論理量子ビットに対してのマッピングを正確に実現し、かつマッピング後の物理量子回路において同じ機能を実現するために、論理量子回路のうちからマッピング処理済みの論理量子ビットに対応する量子ゲートを削除し、かつ量子ゲートを、論理量子ビットとマッピング関係がある物理量子ビットに追加することで、量子ゲートの同期構造を表す。論理量子回路における量子ゲートの数が削除処理(プロセス)に伴って次第に減少し、論理量子回路の量子ゲートの数がゼロになるときに、各物理量子ビット及び物理量子ビットに作用する量子ゲートを含む物理量子回路を取得する。
【0101】
1つの具体的な応用において、古典コンピュータ又は量子コンピュータは論理量子回路LC及び量子コンピュータ構成図に基づいて、1つの初期量子ビットマッピングτiniを構築し、該マッピングはqiをviにマッピングし、その後、1つの空物理量子回路PCを構築し、また、現在の量子ビットマッピングτ=τiniも構築し、LCの量子ゲートは実行の順序に従って左から右へと順次配列され、毎回、論理量子回路LCの一番左側から量子ゲートを取り出し、G()と記し、G()が作用する論理量子ビットについて、論理量子ビットに一対一マッピングする物理量子ビットを、LCに取り出し可能な量子ゲートがなくなり、即ち、LCにおける量子ゲートの数が0になるまで決定する。
【0102】
本実施例では、順次、量子ゲートが作用する量子ビットに対してマッピング関係変換を行い、かつマッピングにより得られる物理量子ビットについて量子ゲートを追加することで、変換により得られる物理量子回路が機能上、論理量子回路と同じになるようにさせることができるため、量子プログラムの実行の信頼性を向上させることができる。
【0103】
一実施例において、量子ゲートが作用する論理量子ビットを、量子ビット接続関係を満足する物理量子ビットにマッピングすることは、量子ゲートが、その作用する論理量子ビットの数が1の1ビット量子ゲートであるときに、量子ビットマッピング関係に基づいて、論理量子ビットにマッピングされる物理量子ビットを決定し;及び、量子ゲートが、その作用する論理量子ビットの数が2の2ビット量子ゲートであるときに、量子ビットマッピング関係を構築し、かつ交換ゲートを導入してマッピング関係の更新を行うことで、論理量子ビットにマッピングされる物理量子ビットを決定することを含む。
【0104】
そのうち、1量子ビットゲートとは1つの特定の量子ビットに作用し、該量子ビットのみの状態を変えることができる量子ゲートを指す。2量子ビットゲートとは2つの量子ビットに作用し、この2つの量子ビットの状態を変えることができる量子ゲートを指す。
【0105】
1量子ビットゲート及び2量子ビットゲートについて、その対応する物理量子ビットのマッピング方式には差異が存在する。具体的には、1量子ビットゲートの作用する対象が1つのものであり、他の量子ビットに影響することがないので、直接、構築された論理量子ビットと物理量子ビットとのマッピング関係に基づいて、論理量子ビットに対応する物理量子ビットを決定できる。対して、2量子ビットゲートの作用する対象が2つのものであり、実行時に量子ビット接続関係を考慮する必要があるので、交換ゲートを導入してマッピング関係を更新することで、マッピング関係更新後の論理量子ビットに対応する物理量子ビットが論理量子ビットと同じ量子操作を実現できるようにさせる必要がある。
【0106】
具体的には、古典コンピュータ又は量子コンピュータは量子ゲートが作用する論理量子ビットの数に基づいて、量子ゲートが1量子ビットゲートか、それとも2量子ビットゲートであるかを判断する。量子ゲートが、その作用する論理量子ビットの数が1の1ビット量子ゲートであるときに、該論理量子ビットの現在の対応するマッピング関係を見つけ、見つけたマッピング関係に基づいて、論理量子ビットにマッピングされる物理量子ビットを決定する。具体的には、1ビット量子ゲートが作用する論理量子ビットのマッピング関係がまだ更新されていない場合、論理量子ビットの現在の対応するマッピング関係は構築された初期マッピング関係であり、マッピング関係が既に更新されている場合、論理量子ビットの現在の対応するマッピング関係は更新されたマッピング関係である。量子ゲートが、その作用する論理量子ビットの数が2の2ビット量子ゲートであるとき、量子ビットマッピング関係を構築し、かつ交換ゲートを導入してマッピング関係の更新を行うことで、論理量子ビットにマッピングされる物理量子ビットを決定する。
【0107】
1つの具体的な応用において、古典コンピュータ又は量子コンピュータは論理量子回路LC及び量子コンピュータの構成図に基づいて、1つの初期量子ビットマッピングτiniを構築し、該マッピングはqiをviにマッピングし、その後、1つの空物理量子回路PCを構築し、また、現在の量子ビットマッピングτ=τiniをも構築する。論理量子回路LCにおける量子ゲートG()について、G()が論理量子ビットqに作用する1量子ビットゲートG(q)である場合、PCの末尾にG(τ(q))を追加し、τ(q)は論理量子ビットqにマッピングされる物理量子ビットであり、τはマッピング関係を表す。G()が論理量子ビット(qi,qj)に作用する2量子ビットゲートG(qi,qj)である場合、物理量子ビットτ(qi)とτ(qj)との間の径路を構築し、
【0108】
【数8】
と記し、そのうち、lは径路の長さ(L>2)であり、PCに
【0109】
【数9】
を導入し、且つ導入した交換ゲートに基づいてマッピング関係τを更新する。
【0110】
本実施例では、古典コンピュータ又は量子コンピュータは量子ゲートが作用する論理量子ビットの数に基づいて、量子ゲートが1量子ビットゲートであるか、それとも2量子ビットゲートであるかを判断し、異なる量子ビットゲートに対して異なる処理を行う。1量子ビットゲートの作用する対象が1つのものであるため、他の量子ビットに影響しないという特徴に基づいて、直接、構築された論理量子ビットと物理量子ビットとのマッピング関係に従って論理量子ビットに対応する物理量子ビットを決定する。2量子ビットゲートの作用する対象が2つのものであり、実行時に量子ビット接続関係を考慮する必要があるという特徴に基づいて、交換ゲートを導入してマッピング関係を更新し、マッピング関係更新後の論理量子ビットに対応する物理量子ビットが論理量子ビットと同じ量子操作を実現し得るようにさせることで、量子プログラムの実行の正確性を向上させることができる。
【0111】
そのうちの1つの実施例において、量子ビットマッピング関係を構築し交換ゲートを導入することでマッピング関係の更新を行うことは、最初の量子ビットマッピング関係を構築することで、2ビット量子ゲートが作用する2つの論理量子ビットをそれぞれ第一物理量子ビット及び第二物理量子ビットにマッピングし;量子ビット接続関係に従って、第一物理量子ビットと第二物理量子ビットとの接続径路を決定し;接続径路に基づいて交換ゲートを導入し、最初の量子ビットマッピング関係を更新することで、更新された量子ビットマッピング関係を得ることを含む。
【0112】
そのうち、第一物理量子ビット及び第二物理量子ビットは2つの異なる量子ビットであり、実際の応用では、第一物理量子ビット及び第二物理量子ビットは交換できる。最初の量子ビットマッピング関係はランダムに構築でき、物理量子ビットと論理量子ビットとの一対一対応する関係を満足すれば良い。接続径路とは直接接続され得ない2つの量子ビットに対して中間量子ビットを増加させることで量子ビットを接続した結果を指す。接続径路に基づいて交換ゲートを導入するとは接続径路が表す、順次接続される各量子ビットに基づいて、隣接する量子ビットの間に交換ゲートを導入することで、順次交換された後に2つの量子ビットの接続が実現されるようにさせることを指す。
【0113】
1つの具体的な応用において、論理量子ビット(qi,qj)に作用する2量子ビットゲートG(qi,qj)について、論理量子ビットqi及びqjにマッピングされる物理量子ビットτ(qi)及びτ(qj)を決定し、構成図上で物理量子ビットτ(qi)とτ(qj)との間の径路を構築し、
【0114】
【数10】
と記し、そのうち、lは径路の長さ(L>2)であり、構築された空物理量子回路PCに、
【0115】
【数11】
を導入し、物理量子ビットτ(q
i)とτ(q
j)との接続を実現し、かつ導入された交換ゲートに基づいてマッピング関係τを更新し、即ち、論理量子ビットq
iにマッピングされる物理量子ビットはτ(q
i)から
【0116】
【0117】
本実施例では、接続径路を構築し、中間量子ビットを追加して物理量子ビットを接続し、接続径路が表す、順次接続される各量子ビットに基づいて、隣接する量子ビットの間に交換ゲートを導入してマッピング関係の更新を実現することで、順次交換されマッピング更新が行われた後の物理量子ビットの接続が実現され、かつ元の論理量子ビットに対応する操作が実現され得るようにさせることができ、このようにして、量子プログラムの実行結果の正確性を確保できる。
【0118】
1つの具体的な実施例において、
図9に示すように、量子プログラムのコンパイル方法が提供され、それは次のような量子プログラムのコンパイルプロセスを含む。量子プログラムのコンパイルプロセスは古典コンピュータ又は量子コンピュータにより実現されても良く、そのうち、古典コンピュータ又は量子コンピュータは量子プログラムに対してコンパイルを行うプロセスは具体的に以下のステップを含む。
【0119】
ステップ902:初期量子プログラムの制御フローに従って、初期量子プログラムに含まれる複数の論理量子回路及び各論理量子回路間の接続関係を決定する。
【0120】
ステップ904:各論理量子回路について、論理量子回路における各量子ゲートの配列順序に基づいて、量子コンピュータに対応する量子ビット接続関係に従って、量子ゲートが作用する論理量子ビットとマッピング関係がある目標物理量子ビットを順次決定する。
【0121】
ステップ906:量子ゲートが、その作用する論理量子ビットの数が1の1ビット量子ゲートであるときに、量子ビットマッピング関係に基づいて、論理量子ビットにマッピングされる物理量子ビットを決定する。
【0122】
ステップ908:量子ゲートが、その作用する論理量子ビットの数が2の2ビット量子ゲートであるときに、最初の量子ビットマッピング関係を構築し、2ビット量子ゲートが作用する2つの論理量子ビットを2つの物理量子ビットにマッピングする。
【0123】
ステップ910:量子ビット接続関係に従って、2つの物理量子ビットの接続径路を決定する。
【0124】
ステップ912:接続径路に基づいて交換ゲートを導入し、最初の量子ビットマッピング関係を更新し、更新した量子ビットマッピング関係を取得し、そして、更新した量子ビットマッピング関係に基づいて、論理量子ビットにマッピングされる物理量子ビットを決定する。
【0125】
ステップ914:量子ゲートを、その作用する論理量子ビットに対応する目標物理量子ビットに追加し、論理量子回路のうちから量子ゲートを削除する。
【0126】
ステップ916:論理量子回路の量子ゲートの数がゼロになるときに、論理量子回路に対応する物理量子回路を得る。
【0127】
ステップ918:各論理量子回路間の接続関係の物理量子回路間でのマッピングに基づいて、物理量子回路間の接続関係を決定する。
【0128】
ステップ920:接続関係を有する2つの物理量子回路のうちから、ソース物理量子回路に対応する最後の量子ビットマッピング関係及びターゲット物理量子回路に対応する最初の量子ビットマッピング関係を得る。
【0129】
ステップ922:実行条件を表す構成図のうちから第一物理量子ビットを決定し、第一物理量子ビットは構成図のうちから削除された後に構成図における量子ビット接続関係に影響しない物理量子ビットである。
【0130】
ステップ924:最後の量子ビットマッピング関係に基づいて、第一物理量子ビットに対応する論理量子ビットを決定し、また、最初の量子ビットマッピング関係に基づいて、論理量子ビットに対応する第二物理量子ビットを決定する。
【0131】
ステップ926:第一量子ビットと第二量子ビットとの構成図での接続径路を決定する。
【0132】
ステップ928:前記接続径路に従って交換ゲートを導入し、前記最後の量子ビットマッピング関係を前記最初の量子ビットマッピング関係に変換するマッピング変換回路を得る。
【0133】
ステップ930:物理量子回路及びマッピング変換回路を含む目標量子プログラムを決定する。
【0134】
1つの具体的な実施例において、
図10に示すように、量子プログラムの実行方法が提供され、それは次のような量子プログラムの実行プロセスを含む。量子プログラムの実行プロセスは量子コンピュータにより実現されても良く、具体的には以下のステップを含む。
【0135】
ステップ1002:量子ビット接続関係に従ってコンパイルされた後の目標量子プログラムを取得し、目標量子プログラムに含まれる物理量子回路のうちの初期量子回路を現在の量子回路とする。
【0136】
ステップ1004:現在の量子回路に対しての実行起動イベントに応じて、現在の量子回路における目標量子ビットに対して量子測定操作を行う。
【0137】
ステップ1006:現在の量子回路の実行が終了するときに、各目標量子ゲートからそれぞれ量子測定結果を表すための2進数ビットデータを読み取る。
【0138】
ステップ1008:各2進数ビットデータからなる2進数ビットストリングを量子測定結果とする。
【0139】
ステップ1010:現在の量子回路と接続関係がある候補量子回路のうちから、量子測定結果にマッチした目標量子回路を選択し、接続関係は目標量子プログラムに対応する制御フローにマッチしている。
【0140】
ステップ1012:目標量子回路が終了量子回路でないときに、現在の量子回路と目標量子回路との間のマッピング変換回路を実行することで目標量子回路を現在の量子回路とし、現在の量子回路における目標量子ビットに対して量子測定操作を行い、ステップ1006にリターンする。
【0141】
ステップ1014:目標量子回路が終了量子回路であるときに、終了量子回路を実行し、目標量子プログラムの実行結果を取得する。
【0142】
本出願では適用シナリオがさらに提供され、該適用シナリオには上述の量子プログラムの実行方法が用いれる。具体的には、該量子プログラムの実行方法の該適用シナリオにおける適用は次のとおりである。
【0143】
量子プログラムの実行プロセスはコンパイル及び実行の2つの段階を、量子コンピューティングソフトウェアからハードウェアインターフェースへの構成部分として含む。コンパイル段階では古典制御フローを含む論理レベルの量子アルゴリズムを一連の実行可能な物理量子回路集合に変換でき、実行段階では測定結果に基づいて対応するコンパイル済みの物理量子回路を呼び出することができ、これによって、古典制御を含む1つの量子プログラムの実行プロセスを確実に実現できる。
【0144】
図11に示すように、量子プログラムの処理はコンパイルプロセス及び実行プロセスを含む。入力データは古典制御を含む1つの初期量子プログラム、及び量子コンピュータに対応する、量子コンピュータにおける物理量子ビット接続関係を表すための1つの構成図であり、これによって、入力される初期量子プログラムの目標量子コンピュータでのコンパイル及び実行を実現する。コンパイルプロセスは入力される、古典制御を含む1つの初期量子プログラムを特定の量子コンピュータにより実行され得る一連の物理回路に変換することを担当する。説明の便宜のため、構成図における物理量子ビットをvと記し、初期量子プログラムにおける論理量子ビットをqと記す。
【0145】
コンパイルの具体的なステップは次のとおりである。
【0146】
S1:入力される初期量子プログラムに対して古典制御フロー導出サブプログラムを実行し、初期量子プログラムの古典制御フローにマッチした有向グラフを得る。
【0147】
そのうち、有向グラフにおけるノードは1つの具体的な論理量子回路を表し、ノードの出方向エッジは該論理量子回路の1つの測定結果に対応し、出方向エッジに対応する目的ノードは該測定結果を得た場合、その後に実行する必要のある論理量子回路を表す。有向グラフにはさらに2つの特殊ノードが定義され、それぞれは初期ノード及び終了ノードである。初期ノードは量子プログラムの初期状態で実行する必要のある量子回路を含み、終了ノードはアウトディグリーが0であり、量子プログラムの終了論理量子回路を含む。
【0148】
具体的には、古典制御フロー導出サブプログラムの入力は初期量子プログラムであり、その詳細なステップは以下のとおりである。
【0149】
S1-1:初期量子プログラムにおける各論理量子回路について、1つの対応ノードを生成し;
S1-2:初期論理量子回路に対応するノードを初期ノードと記し、終了論理量子回路に対応するノードを終了ノードと記し;
S1-3:初期量子プログラムにおけるすべての測定操作について、エッジ
【0150】
【数13】
を生成し、そのうち、iは該測定操作の所在する論理量子回路ノードの番号を表し、j
mはmの測定結果を得た後に実行する必要のある論理量子回路ノードの番号を表し、nは被測定の量子ビットの数を表し;
S1-4:ノード及びエッジに基づいて生成された有向グラフをリターンする。
【0151】
S2:有向グラフにおける任意の1つの未変換ノードを取り出し、iと記し、それが表す論理量子回路をLCiと記し;
S3:LCiに対して量子回路変換サブプログラムを実行し、変換後に得られた物理回路をPCiと記し、PCiの初期及び最後の量子ビットマッピングをτi
ini及びτi
finと記する。
【0152】
そのうち、量子回路変換サブプログラムはその構成図であり、まず、1つの初期量子ビットマッピングを決定し、次に、冗長な交換ゲート操作を導入して論理量子回路を実行可能な物理量子回路に変換することで、生成される物理量子回路が機能上、論理量子回路と等価になり、かつそのうちの2量子ビットゲートが量子コンピュータ構成図の接続性制限を満足するようにさせる必要があり、これによって、特定の量子コンピュータで量子回路が実行されるようにさせることができる。
【0153】
具体的には、量子回路変換サブプログラムの入力は1つの論理量子回路LC及び量子コンピュータの構成図であり、構成図接続性制限を満足する1つ物理量子回路PC、1つの初期量子ビットマッピングτini及び1つの最後の量子ビットマッピングτfinをリターンする。その詳細なステップは以下のとおりである。
【0154】
S3-1:最初の量子ビットマッピング関係τiniを構築し、該マッピングは論理量子ビットqiを物理量子ビットviにマッピングし;
S3-2:1つの空物理量子回路PCを構築すると同時に、現在の量子ビットマッピングτ=τiniを構築し;
S3-3:論理量子回路LCの一番左側から1つの量子ゲートを取り出し、G()と記し;
S3-4:G()が論理量子ビットqに作用する1量子ビットゲートG(q)である場合、物理量子回路PCの末尾にG(τ(q))を追加し、その後に、S3-6に進み;
S3-5:G()が論理量子ビット(qi,qj)に作用する2量子ビットゲートG(qi,qj)である場合、構成図上で1つの物理量子ビットτ(qi)及びτ(qj)の間の径路を構築し、
【0155】
【数14】
と記し、そのうち、lは径路の長さ(l>2)であり;
S3-6:構築された径路に基づいて、物理量子回路PCに交換ゲート
【0156】
【数15】
を導入し、かつ導入された交換ゲートに基づいて量子ビットマッピング関係τを更新し;
S3-7:論理量子回路LCのうちから、取り出された量子ゲートを削除し、量子ゲートの数が0に減少したときに、次のステップに進み、そうでないときに、S3-3に進み;
S3-8:物理量子回路PC、最初の量子ビットマッピング関係τ
ini、最後の量子ビットマッピング関係τ
finをリターンし、τ
fin=τとし、量子ビットマッピング関係の更新を実現する。
【0157】
S4:構成図におけるすべてのノードの変換が完了した場合、S5に進み、そうでない場合、S2に進み;
S5:有向グラフにおける任意の1つの未変換エッジを取り出し、(i,j)と記し、そのうち、iは該エッジのソースノードであり、jは該エッジの目的ノードであり;
S6:最初の量子ビットマッピング関係τi
finを初期マッピング関係とし、最後の量子ビットマッピング関係τj
iniを目標マッピング関係とし、量子ビットマッピング変換サブプログラムを実行し、変換するために実行する必要のあるマッピング変換回路を構築し、PCi,jと記す。
【0158】
具体的には、量子ビットマッピング変換サブプログラムの入力は1つの初期マッピング関係τini、目標マッピング関係τfin及び量子コンピュータに対応する構成図であり、出力は1つの構築されたマッピング変換物理回路PCであり、それは量子ビットマッピングτiniをτfinに変換できる。量子ビットマッピング変換サブプログラムの詳細なステップは以下のとおりである。
【0159】
S6-1:1つの空物理量子回路PCを構築すると同時に、現在の量子ビットマッピング関係τ=τiniを構築し;
S6-2:構成図のうちから1つの物理量子ビットを取り出し、vjと記し、該物理量子ビットはvjが削除された後に、構成図が依然として接続図であることを満たす必要があり;
S6-3:τfin(q)=vjを満足する論理量子ビットqを見つけ、また、現在の量子ビットマッピング関係τに基づいて、vi=τ(q)とし;
S6-4:構成図上で物理量子ビットviとvjとの間の1つの径路を構築し、
【0160】
【数16】
と記し、そのうち、lは径路の長さであり;
S6-5:構築された径路に基づいて、物理量子回路PCに交換ゲート
【0161】
【数17】
を導入し、かつ導入された交換ゲートに基づいて量子ビットマッピング関係τを更新し;
S6-6:構成図のうちから、取り出された物理量子ビットv
jを削除し;
S6-7:構成図におけるノードの数が0である場合、次のステップに進み、そうでない場合、S6-2に進み;
S6-8:マッピング変換回路PC
i,jをリターンする。
【0162】
実行プロセスは特定のスケジューリング方法により1つのコンパイル済みの量子プログラムの特定の量子コンピュータでの実行プロセスを実現できる。実行プロセスはコンパイルプロセスの直後にあり、具体的なステップは以下のとおりである。
【0163】
S7:コンパイル後の目標量子プログラムの初期ノードを現在のノードとして取り出し、iと記し;
S8:量子コンピュータでノードiが表す物理量子回路PCiを実行し、測定結果mを取得し;
S9:ノードiが終了ノードである場合、S12に進み、そうでない場合、次のステップに進み;
S10:結果mに基づいてその対応ノードiの出方向エッジを決定し、(i,j)と記し、そのうち、jは該出方向エッジの目的ノードであり;
S11:マッピング変換のために実行する必要のあるマッピング変換回路PCi,jを実行し、jをiに割り当てて現在のノードとし、S8に進み;
S12:量子プログラムの実行が完了することをフィードバックし、実行結果を得る。
【0164】
上述の方法により、古典制御を含む量子プログラムのコンパイル及び実行を実現できるため、従来の方法で古典制御フローを含まない単一の論理量子回路しか処理できないという問題を克服できる。古典制御フローを導出して古典制御を含む量子プログラムの実行及びスケジューリングプロセスを表し、量子回路変換アルゴリズム及び量子ビットマッピング変換アルゴリズムを複数回呼び出して一連の物理量子回路を取得し、これらの物理量子回路は特定の量子コンピュータの実行条件を満足でき、これによって、古典制御を含む量子プログラムが特定の量子コンピュータで実行されるようにさせることができる。
【0165】
なお、上述の各実施例に係るフローチャートにおける各ステップは矢印の指示に従って順次示されているが、これらのステップは必ずしも矢印指示の順序に従って順次実行される必要がない。特段の説明がない限り、これらのステップの実行は厳格な順序制限がなく、これらのステップは他の順序に従って実行されても良い。また、上述の各実施例に係るフローチャートにおける少なくとも一部のステップは複数のステップ又は複数の段階を含んでも良く、これらのステップ又は段階は必ずしも同一の時刻に実行される必要がなく、異なる時刻に実行されても良く、これらのステップ又は段階の実行は必ずしも順次実行される必要がなく、他のステップ又は他のステップにおけるステップ又は段階の少なくとも一部と順番に又は交互に実行されても良い。
【0166】
同様の発明構想に基づいて、本出願の実施例ではさらに、上述の量子プログラムの実行方法を実現するための量子プログラムの実行装置、及び量子プログラムのコンパイル方法を実現するための量子プログラムのコンパイル装置が提供される。これらの装置が提供する、問題を解決する実現スキームは上述の方法に記載された実現スキームと同様であるため、以下に提供される1つ又は複数の量子プログラムの実行装置及びコンパイル装置の実施例における具体的な限定は上述の量子プログラムの実行方法及びコンパイル方法についての限定を参照でき、ここではその詳しい説明を省略する。
【0167】
一実施例において、
図12に示すように、量子プログラムの実行装置1200が提供され、それは初期量子回路識別モジュール1202、量子測定結果取得モジュール1204、量子回路選択モジュール1206及び目標量子回路更新モジュール1208を含む。
【0168】
初期量子回路識別モジュール1202は、目標量子プログラムに含まれる物理量子回路のうちの初期量子回路を現在の量子回路とするために用いられ;
量子測定結果取得モジュール1204は、現在の量子回路を実行して量子測定結果を取得するために用いられ;
量子回路選択モジュール1206は、前記現在の量子回路と接続関係がある候補量子回路のうちから、前記量子測定結果にマッチした目標量子回路を選択するために用いられ、前記接続関係は前記目標量子プログラムに対応する制御フローにマッチしており;
目標量子回路更新モジュール1208は、前記現在の量子回路と前記目標量子回路との間のマッピング変換回路を実行することで前記目標量子回路を現在の量子回路とし、前記量子測定結果取得モジュールにジャンプし継続して実行し、実行終了条件が満足されるときにプログラム実行結果を取得するために用いられる。
【0169】
一実施例において、量子プログラムの実行装置はコンパイルモジュールをさらに含み、前記コンパイルモジュールは、量子プログラム実行環境に対応する実行条件に基づいて、初期量子プログラムの制御フローに従って、前記初期量子プログラムをコンパイルして目標量子プログラムを得るために用いられ、そのうち、前記目標量子プログラムが含む各物理量子回路は前記制御フローの各ノードに対応し、各前記物理量子回路間のマッピング変換回路は各前記ノード間の接続関係に対応する。
【0170】
一実施例において、前記コンパイルモジュールは論理量子回路分割モジュール、量子回路変換モジュール、マッピング関係変換モジュール及び統合モジュールをさらに含む。
【0171】
論理量子回路分割モジュールは、初期量子プログラムの制御フローに従って、前記初期量子プログラムに含まれる複数の論理量子回路、及び各前記論理量子回路間の接続関係を決定するために用いられ;
量子回路変換モジュールは、量子プログラム実行環境に対応する実行条件に従って、各前記論理量子回路をそれぞれ物理量子回路に変換するために用いられ;
マッピング関係変換モジュールは、各前記論理量子回路間の接続関係の前記物理量子回路間でのマッピングに基づいて、接続関係を有する2つの物理量子回路に対して量子ビットマッピング関係の変換を行い、マッピング変換回路を取得するために用いられ;
統合モジュールは、前記物理量子回路及び前記マッピング変換回路を含む目標量子プログラムを決定するために用いられる。
【0172】
一実施例において、マッピング関係変換モジュールはさらに次のようなことを行うために用いられ、即ち、各前記論理量子回路間の接続関係の前記物理量子回路間でのマッピングに基づいて、前記物理量子回路間の接続関係を決定し;接続関係を有する2つの物理量子回路のうちから、ソース物理量子回路に対応する最後の量子ビットマッピング関係、及びターゲット物理量子回路に対応する最初の量子ビットマッピング関係を取得し;及び、マッピング関係変換により、前記最後の量子ビットマッピング関係を前記最初の量子ビットマッピング関係に変換するマッピング変換回路を取得する。
【0173】
一実施例において、マッピング関係変換モジュールはさらに次のようなことを行うために用いられ、即ち、前記実行条件を表す構成図のうちから第一物理量子ビットを決定し、前記第一物理量子ビットは前記構成図のうちから削除された後に構成図における量子ビット接続関係に影響しない物理量子ビットであり;前記最後の量子ビットマッピング関係に基づいて、前記第一物理量子ビットに対応する論理量子ビットを決定し、また、前記最初の量子ビットマッピング関係に基づいて、前記論理量子ビットに対応する第二物理量子ビットを決定し;前記第一量子ビットと前記第二量子ビットとの前記構成図での接続径路を決定し;前記接続径路に従って交換ゲートを導入し、前記最後の量子ビットマッピング関係を前記最初の量子ビットマッピング関係に変換するためのマッピング変換回路を取得する。
【0174】
一実施例において、量子回路変換モジュールはさらに次のようなことを行うために用いられ、即ち、量子プログラム実行環境に基づいて、前記量子プログラム実行環境に対応する量子ビット接続関係を決定し;及び、各前記論理量子回路について、量子ビット接続関係に従って、前記論理量子回路に対して量子回路変換を行い、物理量子回路を取得する。
【0175】
一実施例において、量子回路変換モジュールはさらに次のようなことを行うために用いられ、即ち、前記論理量子回路における各量子ゲートの配列順序に従って、量子ビット接続関係に基づいて、前記量子ゲートが作用する論理量子ビットとマッピング関係がある目標物理量子ビットを順次決定し;前記量子ゲートを、その作用する論理量子ビットに対応する目標物理量子ビットに追加し、前記論理量子回路のうちから前記量子ゲートを削除し;及び、現在の記論理量子回路の量子ゲートの数がゼロになるときに、前記論理量子回路に対応する物理量子回路を取得する。
【0176】
一実施例において、量子回路変換モジュールはさらに次のようなことを行うために用いられ、即ち、現在の記量子ゲートが、その作用する論理量子ビットの数が1の1ビット量子ゲートであるとき、量子ビットマッピング関係に基づいて、前記論理量子ビットにマッピングされる物理量子ビットを決定し;及び、現在の記量子ゲートが、その作用する論理量子ビットの数が2の2ビット量子ゲートであるときに、交換ゲートを導入して量子ビットマッピング関係に対してマッピング関係更新を行い、更新した量子ビットマッピング関係に基づいて前記論理量子ビットにマッピングされる物理量子ビットを決定する。
【0177】
一実施例において、量子回路変換モジュールはさらに次のようなことを行うために用いられ、即ち、最初の量子ビットマッピング関係を構築することで、前記2ビット量子ゲートが作用する2つの論理量子ビットをそれぞれ第一物理量子ビット及び第二物理量子ビットにマッピングし;前記量子ビット接続関係に従って、前記第一物理量子ビットと第二物理量子ビットの接続径路を決定し;及び、前記接続径路に基づいて交換ゲートを導入し、前記最初の量子ビットマッピング関係を更新し、更新した量子ビットマッピング関係を取得する。
【0178】
一実施例において、目標量子回路更新モジュールはさらに次のようなことを行うために用いられ、即ち、現在の目標量子回路が終了量子回路でないときに、前記目標量子回路を現在の量子回路とし、前記量子測定結果取得モジュールにジャンプして引き続き実行してもらい;及び、現在の記目標量子回路が終了量子回路であるとき、前記終了量子回路を実行し、前記目標量子プログラムの実行結果を取得する。
【0179】
一実施例において、前記装置は量子測定モジュールをさらに含み、それは前記現在の量子回路に対しての実行起動イベントに応じて、前記現在の量子回路における目標量子ビットに対して量子測定操作を行い;及び、前記現在の量子回路の実行が終了するときに、前記目標量子ビットに対応する量子測定結果を取得する。
【0180】
一実施例において、前記量子測定モジュールはさらに次のようなことを行うために用いられ、即ち、前記現在の量子回路に対しての実行起動イベントに応じて、前記現在の量子回路において測定操作を行うための目標量子ゲート、及び前記目標量子ゲートにマッチした目標量子ビットを決定し;及び、前記目標量子ゲートに基づいて、前記目標量子ゲートにマッチした目標量子ビットの状態データに対して測定操作を行う。
【0181】
一実施例において、前記目標量子ビットの数は複数であり、量子測定モジュールはさらに次のようなことを行うために用いられ、即ち、前記現在の量子回路の実行が終了したときに、各前記目標量子ゲートからそれぞれ量子測定結果を表すための2進数ビットデータを読み取り;及び、各前記2進数ビットデータからなる2進数ビットストリングを量子測定結果とする。
【0182】
上述の量子プログラムの実行装置における各モジュールは全部又は部分的にソフトウェア、ハードウェア及びその組み合わせにより実現され得る。上述の各モジュールはハードウェアの形式で量子コンピュータにおける1つ又は複数の処理器に埋め込まれても良く、ソフトウェアの形式で量子コンピュータにおける記憶器に記憶されても良く、これによって、1つ又は複数の処理器は上述の各モジュールを呼び出して上述の各モジュールに対応する操作を実行できる。
【0183】
一実施例において、
図13に示すように、量子プログラムのコンパイル装置1300がさらに提供され、それは論理量子回路分割モジュール1302、量子回路変換モジュール1304、マッピング関係変換モジュール1306及び統合モジュール1308を含む。
【0184】
論理量子回路分割モジュール1302は、初期量子プログラムの制御フローに従って、前記初期量子プログラムに含まれる複数の論理量子回路及び各前記論理量子回路間の接続関係を決定するために用いられ;
量子回路変換モジュール1304は、量子プログラム実行環境に対応する実行条件に従って、各前記論理量子回路をそれぞれ物理量子回路に変換するために用いられ;
マッピング関係変換モジュール1306は、各前記論理量子回路間の接続関係の前記物理量子回路間でのマッピングに基づいて、接続関係を有する2つの物理量子回路に対して量子ビットマッピング関係の変換を行い、マッピング変換回路を取得するために用いられ;及び
統合モジュール1308は、前記物理量子回路及び前記マッピング変換回路を含む目標量子プログラムを前記初期量子プログラムのコンパイル結果とするために用いられる。
【0185】
一実施例において、前記量子回路変換モジュールはさらに次のようなことを行うために用いられ、即ち、前記論理量子回路をノードとし、各前記論理量子回路間の接続関係をノード間の接続エッジとし、有向グラフを構築し;前記有向グラフの各変換待ちノードに基づいて、量子プログラム実行環境に対応する実行条件に従って量子回路変換を行うことで、各前記変換待ちノードが表す論理量子回路をそれぞれ物理量子回路に変換し;及び
前記マッピング関係変換モジュールはさらに次のようなことを行うために用いられ、即ち、前記有向グラフの各変換待ち接続エッジに基づいて、各前記変換待ち接続エッジに接続される物理量子回路に対して、最初と最後の量子ビットマッピング関係変換を行い、マッピング変換回路を取得する。
【0186】
一実施例において、マッピング関係変換モジュールはさらに次のようなことを行うために用いられ、即ち、各前記論理量子回路間の接続関係の前記物理量子回路間でのマッピングに基づいて、前記物理量子回路間の接続関係を決定し;接続関係を有する2つの物理量子回路のうちから、ソース物理量子回路に対応する最後の量子ビットマッピング関係、及びターゲット物理量子回路に対応する最初の量子ビットマッピング関係を取得し;及び、マッピング関係変換により、前記最後の量子ビットマッピング関係を前記最初の量子ビットマッピング関係に変換するマッピング変換回路を得る。
【0187】
一実施例において、マッピング関係変換モジュールはさらに次のようなことを行うために用いられ、即ち、前記実行条件を表す構成図のうちから第一物理量子ビットを決定し、前記第一物理量子ビットは前記構成図から削除された後に構成図における量子ビット接続関係に影響しない物理量子ビットであり;前記最後の量子ビットマッピング関係に基づいて、前記第一物理量子ビットに対応する論理量子ビットを決定し、また、前記最初の量子ビットマッピング関係に基づいて、前記論理量子ビットに対応する第二物理量子ビットを決定し;前記第一量子ビットと前記第二量子ビットとの前記構成図における接続径路を決定し;及び、前記接続径路に基づいて交換ゲートを導入し、前記最後の量子ビットマッピング関係を前記最初の量子ビットマッピング関係に変換するマッピング変換回路を得る。
【0188】
一実施例において、量子回路変換モジュールはさらに次のようなことを行うために用いられ、即ち、量子プログラム実行環境に基づいて、前記量子プログラム実行環境に対応する量子ビット接続関係を決定し;及び、各前記論理量子回路について、量子ビット接続関係に従って、前記論理量子回路に対して量子回路変換を行い、物理量子回路を取得する。
【0189】
一実施例において、量子回路変換モジュールはさらに次のようなことを行うために用いられ、即ち、前記論理量子回路における各量子ゲートの配列順序に基づいて、量子ビット接続関係に従って、前記量子ゲートが作用する論理量子ビットとマッピング関係がある目標物理量子ビットを順次決定し;前記量子ゲートを、その作用する論理量子ビットに対応する目標物理量子ビットに追加し、前記論理量子回路のうちから前記量子ゲートを削除し;及び、現在の記論理量子回路の量子ゲートの数がゼロになるときに、前記論理量子回路に対応する物理量子回路を取得する。
【0190】
一実施例において、量子回路変換モジュールはさらに次のようなことを行うために用いられ、即ち、前記量子ゲートが、その作用する論理量子ビットの数が1の1ビット量子ゲートであるときに、量子ビットマッピング関係に基づいて、前記論理量子ビットにマッピングされる物理量子ビットを決定し;及び、前記量子ゲートが、その作用する論理量子ビットの数が2の2ビット量子ゲートであときに、交換ゲートを導入して量子ビットマッピング関係に対してマッピング関係更新を行い、更新した量子ビットマッピング関係に基づいて前記論理量子ビットにマッピングされる物理量子ビットを決定する。
【0191】
一実施例において、量子回路変換モジュールはさらに次のようなことを行うために用いられ、即ち、最初の量子ビットマッピング関係を構築し、前記2ビット量子ゲートが作用する2つの論理量子ビットをそれぞれ第一物理量子ビット及び第二物理量子ビットにマッピングし;前記量子ビット接続関係に従って、前記第一物理量子ビットと第二物理量子ビットとの接続径路を決定し;及び、前記接続径路に基づいて交換ゲートを導入し、前記最初の量子ビットマッピング関係を更新し、更新した量子ビットマッピング関係を取得する。
【0192】
一実施例において、量子コンピュータが提供され、該量子コンピュータは端末であっても良く、その内部構成図は
図14に示すとおりであっても良い。該量子コンピュータはシステムバスにより接続される1つ又は複数の処理器、記憶器、通信インターフェース、表示スクリーン及び入力装置を含む。そのうち、該量子コンピュータの1つ又は複数の処理器は演算及び制御の機能を提供するために用いらる。該量子コンピュータの記憶器は不揮発性記憶媒体及び内部記憶器を含む。該不揮発性記憶媒体はOS(operating system)及びコンピュータ可読命令を記憶している。該内部記憶器は不揮発性記憶媒体におけるOS及びコンピュータ可読命令の実行に環境を提供する。該量子コンピュータの通信インターフェースは外部の端末と有線又は無線方式で通信を行うために用いられ、無線方式はWIFI、モバイルセルラーネットワーク、NFC又は他の技術により実現され得る。該コンピュータ可読命令は1つ又は複数の処理器により実行されるときに量子プログラムの実行方法及びコンパイル方法を実現できる。該量子コンピュータの表示スクリーンは液晶表示スクリーン又は電子インク表示スクリーンであっても良く、該量子コンピュータの入力装置は表示スクリーンに覆われるタッチ層であっても良く、量子コンピュータの外殻に設置されるボタン、トラックボール又はタッチパッドであっても良く、さらに外付けのキーボード、タッチパッド、マウスなどでも構わない。
【0193】
当業者が理解できるように、
図14に示す構成は本出願の技術案に係る一部のみの構成であり、本出願の技術案を適用する量子コンピュータについて限定せず、具体的な量子コンピュータは図示よりも多くの又はより少ない部品を含んでも良く、又は、幾つかの部品と組み合わせても良く、又は、異なる部品配置を有しても良い。
【0194】
一実施例において、量子コンピュータがさらに提供され、記憶器及び1つ又は複数の処理器を含み、記憶器には有コンピュータ可読命令が記憶されており、該1つ又は複数の処理器はコンピュータ可読命令を実行するときに上述の各方法の実施例におけるステップを実行する。
【0195】
一実施例において、コンピュータ可読記憶媒体がさらに提供され、コンピュータ可読命令を記憶しており、該コンピュータプログラムは1つ又は複数の処理器により実行されるときに上述の各方法の実施例におけるステップを実行する。
【0196】
一実施例において、コンピュータプログラムプロダクト又はコンピュータプログラムがさらに提供され、該コンピュータプログラムプロダクト又はコンピュータプログラムはコンピュータ可読命令を含み、該コンピュータ可読命令はコンピュータ可読記憶媒体に記憶されている。コンピュータ機器の1つ又は複数の処理器はコンピュータ可読記憶媒体のうちから該コンピュータ可読命令を読み取り、1つ又は複数の処理器は該コンピュータ可読命令を実行することで、該コンピュータ機器に、上述の各方法の実施例におけるステップを実行させる。
【0197】
なお、本出願に係るユーザ情報(ユーザ装置情報、ユーザ個人情報などを含むが、これらに限定されない)及びデータ(分析用のデータ、記憶用のデータ、表示用のデータなどを含むが、これらに限定されない)はすべて、ユーザにより承認された、又は、各当事者により完全に承認された情報及びデータである。
【0198】
当業者が理解できるように、上述の実施例の方法におけるの全部又は一部のフローの実行はコンピュータ可読命令が関連ハードウェアを命令することで完了されても良く、前記コンピュータ可読命令は不揮発性コンピュータ可読取記憶媒体に記憶でき、該コンピュータ可読命令は実行されるときに、上述のような各方法の実施例のフローを含んでも良い。そのうち、本出願で提供される各実施例における記憶器、データベース又は他の媒体への任意の言及は、すべて、不揮発性及び揮発性記憶器のうちの少なくとも1つを含んでも良い。不揮発性記憶器はROM(Read-Only Memory)、磁気テープ、フロッピーディスク、フラッシュメモリ、光ディスク、高密度埋め込み不揮発性メモリ、抵抗性メモリ(ReRAM)、MRAM(Magnetoresistive
Random Access Memory)、FRAM(Ferroelectric
Random Access Memory)、PCM(Phase
Change Memory)、グラフェンメモリなどを含んでも良い。揮発性記憶器はRAM(Random Access Memory、RAM)、外部高速キャッシュメモリなどを含んでも良い。限定ではなく例示として、RAMはスタティックランダムアクセスメモリ(Static Random Access
Memory、SRAM)、ダイナミックランダムアクセスメモリ(Dynamic
Random Access Memory、DRAM)などの様々な形式であり得る。本出願で提供される各実施例に係るデータベースはリレーショナルデータベース及び非リレーショナルデータベースのうちの少なくとも1つを含むことができる。非リレーショナルデータベースとしては、ブロックチェーンベースの分散型データベースなどが挙げられるが、これらに限定されるものではない。本出願によって提供される各実施例に係る処理器は汎用プロセッサ、中央処理装置、グラフィックプロセッサ、デジタル信号プロセッサ、プログラマブル論理デバイス、量子コンピューティングに基づくデータ処理論理デバイスなどであっても良いが、これらに限定されない。
【0199】
以上、本出願の好ましい実施例を説明したが、本出願はこの実施例に限定されず、本出願の趣旨を離脱しない限り、本出願に対するあらゆる変更は本出願の技術的範囲に属する。
【国際調査報告】