(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025024875
(43)【公開日】2025-02-21
(54)【発明の名称】量子操作連動シミュレーション装置及び量子操作連動シミュレーション方法
(51)【国際特許分類】
G06N 10/80 20220101AFI20250214BHJP
【FI】
G06N10/80
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2023129226
(22)【出願日】2023-08-08
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和5年度、国立研究開発法人 科学技術振興機構、ムーンショット型研究開発事業「(1)大規模集積シリコン量子コンピュータの研究開発 (2)2次元量子ビットアレイ (3)量子ビット高精度制御・高感度読み出し回路 (4)システムアーキテクチャ」委託研究、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000176
【氏名又は名称】弁理士法人一色国際特許事務所
(72)【発明者】
【氏名】佐藤 直人
(57)【要約】
【課題】量子プログラムや操作命令の構成要素単位の対応関係や、それらを実行する量子コンピュータの振る舞いの対応関係を把握可能とする。
【解決手段】量子操作連動シミュレーション装置100において、量子プログラム及び量子プログラムから変換された操作命令を表す、量子演算命令と、当該量子演算命令を実行する量子コンピュータの振る舞いとの対応関係に関する、所定のシミュレーション結果を保持する記憶装置101と、前記量子演算命令と前記振る舞いとの間で対応する、それぞれの構成要素を表示対象として特定し、当該表示対象として特定した構成要素同士を関連付けた情報を出力する演算装置104を含む構成とする。
【選択図】
図2
【特許請求の範囲】
【請求項1】
量子プログラム及び量子プログラムから変換された操作命令を表す、量子演算命令と、当該量子演算命令を実行する量子コンピュータの振る舞いとの対応関係に関する、所定のシミュレーション結果を保持する記憶装置と、
前記量子演算命令と前記振る舞いとの間で対応する、それぞれの構成要素を表示対象として特定し、当該表示対象として特定した構成要素同士を関連付けた情報を出力する演算装置と、
を含むことを特徴とする量子操作連動シミュレーション装置。
【請求項2】
前記記憶装置は、
前記対応関係に関する前記シミュレーション結果において、第1の量子演算命令から作成される第2の量子演算命令について、前記第1の量子演算命令またはそれを実行する量子コンピュータの振る舞いの遷移状況を表す第1の遷移列における任意の遷移要素と、前記第2の量子演算命令またはそれを実行する量子コンピュータの振る舞いの遷移状況を表す第2の遷移列における特定の遷移要素との間の対応関係を定義した情報を保持しており、
前記演算装置は、
前記第1の遷移列における遷移要素に関する所定操作を受け付けた場合、当該遷移要素と、前記第2の遷移列において対応する前記特定の遷移要素とを対応付けて表示するものである、
ことを特徴とする請求項1に記載の量子操作連動シミュレーション装置。
【請求項3】
前記演算装置は、
前記第1の遷移列における前記任意の遷移要素と対応する、前記第2の遷移列における前記特定の遷移要素が複数存在する場合、前記第2の遷移列において最も前方または後方の遷移要素を前記特定の遷移要素として表示するものである、
ことを特徴とする請求項2に記載の量子操作連動シミュレーション装置。
【請求項4】
前記演算装置は、
前記第1の遷移列における前記任意の遷移要素と対応する、前記第2の遷移列における前記特定の遷移要素が存在しない場合、前記第2の遷移列において近接する遷移要素を代替的な前記特定の遷移要素として表示するものである、
ことを特徴とする請求項2に記載の量子操作連動シミュレーション装置。
【請求項5】
前記演算装置は、
前記第1の量子演算命令から前記第2の量子演算命令を作成する際、および前記第1及び前記第2の量子演算命令を実行した場合の前記振る舞いにする前記シミュレーション結果を取得する際、前記任意の遷移要素と前記特定の遷移要素との前記対応関係を作成し、前記記憶装置において保持するものである、
ことを特徴とする請求項2に記載の量子操作連動シミュレーション装置。
【請求項6】
前記演算装置は、
所定の量子演算命令、または当該量子演算命令を実行する量子コンピュータの振る舞いを表す遷移列を、新たな表示対象として追加する場合、前記量子演算命令を構成する命令文と、前記遷移列における遷移要素との間の対応関係を定義し、前記量子演算命令の生成元または生成先の量子演算命令である生成演算命令について、前記量子演算命令を構成する命令文と前記生成演算命令を構成する命令文との対応関係を参照することで、前記量子演算命令の遷移列を構成する遷移要素と、前記生成演算命令の遷移列を構成する遷移要素との対応関係を導出するものである、
ことを特徴とする請求項2に記載の量子操作連動シミュレーション装置。
【請求項7】
前記演算装置は、
所定のインターフェイスを介して、前記量子コンピュータのユーザのロール設定を受け付けた場合、ユーザのロールに応じた前記表示対象の選択ルールに基づいて前記表示対象を選択し前記出力を行うものである、
ことを特徴とする請求項1に記載の量子操作連動シミュレーション装置。
【請求項8】
前記演算装置は、
前記表示対象の前記第1または前記第2の遷移列のうちいずれか一方の遷移列における、量子演算命令または振る舞いに対するユーザからの編集を受け付けた場合、前記編集の結果を、前記表示対象である他方の遷移列に反映することで、前記第1及び前記第2の遷移列の間での整合性を保つ同期機能を備える、
ことを特徴とする請求項2に記載の量子操作連動シミュレーション装置。
【請求項9】
前記演算装置は、
前記同期機能において、所定の操作命令から、当該操作命令の生成元となった別の操作命令又は量子プログラムを生成するための逆生成機能をさらに備える、
ことを特徴とする請求項8に記載の量子操作連動シミュレーション装置。
【請求項10】
情報処理装置が、
量子プログラム及び量子プログラムから変換された操作命令を表す、量子演算命令と、当該量子演算命令を実行する量子コンピュータの振る舞いとの対応関係に関する、所定のシミュレーション結果を保持する記憶装置を備えて、
前記量子演算命令と前記振る舞いとの間で対応する、それぞれの構成要素を表示対象として特定し、当該表示対象として特定した構成要素同士を関連付けた情報を出力する、
ことを特徴とする量子操作連動シミュレーション方法。
【請求項11】
前記情報処理装置が、
前記記憶装置において、前記対応関係に関する前記シミュレーション結果において、第1の量子演算命令から作成される第2の量子演算命令について、前記第1の量子演算命令またはそれを実行する量子コンピュータの振る舞いの遷移状況を表す第1の遷移列における任意の遷移要素と、前記第2の量子演算命令またはそれを実行する量子コンピュータの振る舞いの遷移状況を表す第2の遷移列における特定の遷移要素との間の対応関係を定義した情報を保持し、
前記第1の遷移列における遷移要素に関する所定操作を受け付けた場合、当該遷移要素と、前記第2の遷移列において対応する前記特定の遷移要素とを対応付けて表示する、
ことを特徴とする請求項10に記載の量子操作連動シミュレーション方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、量子操作連動シミュレーション装置及び量子操作連動シミュレーション方法に関するものである。
【背景技術】
【0002】
量子コンピュータに対する演算の命令は、量子ゲートからなる量子回路形式のプログラムとして記述される(以後、当該プログラムを量子プログラムと称する)。量子プログラムは、量子コンピュータに対する物理的な操作命令に変換され、実行される。
上述の操作命令は、量子コンピュータのアーキテクチャに依存して、多段に変換される場合がある。例えばシリコン電子方式の量子コンピュータの場合、量子プログラムは、電子に対する初期化操作命令、移動操作命令と演算操作命令に変換される。さらに、これらの操作命令は、電圧や電流の印加操作命令に変換される。
【0003】
また量子コンピュータの物理的な制約から、上述の演算操作命令を、別の等価な演算操作命令に置き換えて実行する場合もある。
【0004】
このように量子コンピュータの実行に際しては、命令の変換や置換が多段階で行われている。
【0005】
一方、量子コンピュータは、これらの操作命令に従って実行されるが、外部環境からのノイズなどの影響により、誤った計算結果が得られることがある。そして、操作命令の校正や計算結果の補正などの対処・対応をするためには、誤りの原因を把握する必要がある。
【0006】
例えば、外部環境から受ける影響の種類やその度合いが分かれば、その影響を考慮して量子コンピュータの操作パラメータ値を決定できる。これにより、当該影響を打ち消すように量子コンピュータを操作可能となり、外部環境の影響下でも正しい計算結果を得られるようになる(いわゆるCalibration)。
【0007】
または、量子コンピュータが計算を終えた後に、その計算結果から正しい値を推定することも可能になる(いわゆるMitigation)。
【0008】
さらに、特定の操作命令が外部環境の影響を受けやすいというような傾向が分かれば、その命令を、等価または類似の別の命令に置き換えることも考えられる。
【0009】
あるいは、現状の技術では誤りの原因を取り除くことが困難と分かれば、その結果生じる差異を誤差として受け入れて、量子コンピュータを活用することになる(その場合、アプリケーションレイヤでの工夫を考える)。
【0010】
このように、想定とは異なる計算結果が得られる場合は、その原因を特定することが重要である。そしてそのためには、ユーザが記述した量子プログラムがどのような操作命令に変換され、どのように実行されたかを把握する必要がある。
【0011】
こうした状況に対して、ユーザの記述した量子プログラムや、量子プログラムから変換された操作命令を表示し、それらの実行をシミュレートする従来技術が存在する。その1つとしては、例えば、量子回路のシミュレーションを高速化させる技術(特許文献1参照)が提案されている。
【0012】
この技術は、クリフォード回路をシミュレートするための情報処理装置であって、入力された量子回路に含まれる命令のうち、「測定」と「操作」の命令の連続性を向上させるように、前記量子回路を更新する量子回路更新部と、更新された前記量子回路に基づいて、スタビライザーテーブルの各要素のメモリ上の配置を切り替えながらシミュレートするシミュレート部と、を備える情報処理装置に係るものである。
【0013】
また他にも、ターゲット量子ゲートとの誤差が予め設定されるルールを満たすターゲットシミュレーション量子ゲートを迅速に取得する技術(特許文献2参照)が提案されている。
この技術は、量子システムに対応するハードウェアパラメータ及び前記量子システムの実現すべきターゲット量子ゲートを取得することと、離散的なタイムスライスによって特徴付けられるパルス関数を取得することと、前記パルス関数の中の離散的な前記タイムスライスに対応するターゲットステップサイズを決定し、前記タイムスライスに対応するターゲットステップサイズ及び前記パルス関数に基づき、前記ターゲットステップサイズに対応する時間長でのパルスパラメータ値を取得することと、取得された前記ターゲットステップサイズに対応する時間長でのパルスパラメータ値及び前記量子システムのハードウェアパラメータに基づき、予め設定されるパルス時間長でのターゲットシミュレーション量子ゲートを取得するまで、前記ターゲットステップサイズに対応する時間長でのシミュレーション量子ゲートを取得することを含み、各タイムスライスの開始時間と終了時間の時間帯内のパルスパラメータ値は、同じであり、前記予め設定されるパルス時間長での前記ターゲットシミュレーション量子ゲートと前記ターゲット量子ゲートの差は、予め設定されるルールを満たすことを特徴とする量子制御におけるシミュレーション方法に係るものである。
【先行技術文献】
【特許文献】
【0014】
【特許文献1】特開2023-013672号公報
【特許文献2】特開2022-000786号公報
【発明の概要】
【発明が解決しようとする課題】
【0015】
従来技術により、量子プログラムからどのような操作命令が作成されたか、さらにはその操作命令がどのような別の操作命令に変換されたかを把握できる。即ち、量子プログラム全体や操作命令全体の単位でのトレーサビリティは確保可能である。
しかし、量子プログラムの構成要素である各量子ゲートが、操作命令のどの要素に対応するかまでは把握できない。即ち、構成要素単位でのトレーサビリティは確保できない。
【0016】
また、量子プログラムや操作命令は量子コンピュータに対する命令を記述したもの、という点では共通だが、その観点や抽象度は異なる。つまり、従来のシミュレーション機能は、量子コンピュータの振る舞いを、それぞれ異なる観点や抽象度で表すものといえる。
【0017】
そして上述のとおり、量子プログラムから操作命令が作成され、さらにその操作命令から別の操作命令が作成されるという対応関係であることから、それらを実行する量子コンピュータの振る舞いにも対応関係がある。
【0018】
しかし前述のシミュレーション機能では、観点や抽象度の異なる複数の振る舞いの対応関係を把握することはできない。
【0019】
そこで本発明の目的は、量子プログラムや操作命令の構成要素単位の対応関係や、それらを実行する量子コンピュータの振る舞いの対応関係を把握可能とする技術を提供することにある。
【課題を解決するための手段】
【0020】
上記課題を解決する本発明の量子操作連動シミュレーション装置は、量子プログラム及び量子プログラムから変換された操作命令を表す、量子演算命令と、当該量子演算命令を実行する量子コンピュータの振る舞いとの対応関係に関する、所定のシミュレーション結果を保持する記憶装置と、前記量子演算命令と前記振る舞いとの間で対応する、それぞれの構成要素を表示対象として特定し、当該表示対象として特定した構成要素同士を関連付けた情報を出力する演算装置と、を含むことを特徴とする。
また、本発明の量子操作連動シミュレーション方法は、情報処理装置が、量子プログラム及び量子プログラムから変換された操作命令を表す、量子演算命令と、当該量子演算命令を実行する量子コンピュータの振る舞いとの対応関係に関する、所定のシミュレーション結果を保持する記憶装置を備えて、前記量子演算命令と前記振る舞いとの間で対応する、それぞれの構成要素を表示対象として特定し、当該表示対象として特定した構成要素同士を関連付けた情報を出力する、ことを特徴とする。
【発明の効果】
【0021】
本発明によれば、量子プログラムや操作命令の構成要素単位の対応関係や、それらを実行する量子コンピュータの振る舞いの対応関係を把握可能となる。
【図面の簡単な説明】
【0022】
【
図1】本実施形態の量子操作連動シミュレーション装置を含むネットワーク構成図である。
【
図2】本実施形態における量子操作連動シミュレーション装置のハードウェア構成例を示す図である。
【
図3】本実施形態の量子操作連動シミュレーション装置の機能ブロック図である。
【
図4】本実施形態の量子プログラムと量子演算命令の対応例を示す図である。
【
図5】本実施形態における量子演算命令対応関係の例を示す図である。
【
図6】本実施形態における量子操作命令と遷移列(振る舞い)の対応例を示す図である。
【
図7】本実施形態における遷移列対応関係の例を示す図である。
【
図8】本実施形態における量子操作命令間の対応例を示す図である。
【
図9】本実施形態における量子操作連動シミュレーション方法のフロー例を示す図である。
【
図10】本実施形態における量子操作連動シミュレーション方法のフロー例を示す図である。
【
図11】本実施形態における画面例1を示す図である。
【
図12】本実施形態における画面例2を示す図である。
【
図13】本実施形態における画面例3を示す図である。
【
図14】本実施形態における画面例4を示す図である。
【
図15】本実施形態における画面例3を示す図である。
【
図16】本実施形態における画面例5を示す図である。
【
図17】本実施形態における画面例6を示す図である。
【
図18】本実施形態における画面例7を示す図である。
【
図19】本実施形態における量子操作命令の逆生成例を示す図である。
【発明を実施するための形態】
【0023】
<ネットワーク構成>
以下に本発明の実施形態について図面を用いて詳細に説明する。
図1は、本実施形態の量子操作連動シミュレーション装置100を含むネットワーク構成図である。
図1に示す量子操作連動シミュレーション装置100は、量子プログラムや操作命令の構成要素単位の対応関係や、それらを実行する量子コンピュータの振る舞いの対応関係を把握可能とするコンピュータである。
【0024】
本実施形態の量子操作連動シミュレーション装置100は、
図1で示すように、ネットワーク1を介して、量子シミュレータないし量子コンピュータ20、及びユーザ端末200と通信可能に接続されている。よって、これらを総称して量子操作連動シミュレーションシステム10としてもよい。
【0025】
本実施形態の量子操作連動シミュレーション装置100は、量子プログラムのテスターや開発者、量子デバイスの運用者、開発者といった各者に対し、量子プログラム等と量子コンピュータの振る舞いの対応関係を提示するサービスの提供装置と言える。
【0026】
従来技術では、量子プログラムや操作命令の構成要素単位の対応関係や、それらを実行する量子コンピュータの振る舞いの対応関係を把握できないという課題があったが、本実施形態の量子操作連動シミュレーション技術を適用することで、量子コンピュータの実行結果が想定とは異なるケースの原因を効率的に特定し、適切な対処・対応を実施可能となる効果を奏することとなる。
【0027】
なお、上述のネットワーク1に接続されている量子シミュレータ/量子コンピュータ20は、量子操作連動シミュレーション装置100に対して、量子コンピュータにおける量子プログラム実行に伴う振る舞い等の結果を提供可能な存在である。こうした量子シミュレータ/量子コンピュータ20は、既に述べた従来技術、すなわち量子プログラムがどのような操作命令に変換され、どのように実行されたかシミュレートする従来技術が実装されたものとなる。
【0028】
なお、上述の量子シミュレータないし量子コンピュータの構成や機能を、量子操作連動シミュレーション装置100が一体に備え、その機能を自身で随意に利用可能な構成を採用するとしても良い。
【0029】
また、ユーザ端末200は、量子プログラムのテスターや開発者、量子デバイスの運用者、開発者といったユーザが操作し、量子操作連動シミュレーション装置100からの出力結果の表示や編集を行う端末となる。具体的には、パーソナルコンピュータ、タブレット端末、及びスマートフォンなどを想定できるが、ネットワーク1に接続可能で、量子操作連動シミュレーション装置100と通信可能な情報処理装置であれば、これに限定しない。
<ハードウェア構成>
また、本実施形態の量子操作連動シミュレーション装置100のハードウェア構成は、
図2に示す構成を想定できる。すなわち量子操作連動シミュレーション装置100は、記憶装置101、メモリ103、演算装置104、および通信装置105、を備える。
【0030】
このうち記憶装置101は、SSD(Solid State Drive)やHDD(Hard Disk Drive:ハードディスクドライブ)など適宜な不揮発性記憶素子で構成される。
【0031】
また、メモリ103は、RAM(Random Access Memory)など揮発性記憶素子で構成される。
【0032】
また、演算装置104は、記憶装置101に保持されるプログラム102をメモリ103に読み出すなどして実行し装置自体の統括制御を行なうとともに各種判定、演算及び制御処理を行なうCPU(Central processing Unit)である。
【0033】
また、通信装置105は、ネットワーク1と接続して量子シミュレータ/量子コンピュータ20やユーザ端末200との通信処理を担うネットワークインターフェイスカード等を想定する。
【0034】
なお、量子操作連動シミュレーション装置100がユーザらの操作を直接受け付ける場合、ユーザからのキー入力や音声入力を受け付ける入力装置、処理データの表示を行うディスプレイ等の出力装置、を更に備えるとすれば好適である。
【0035】
また、記憶装置101内には、本実施形態の量子操作連動シミュレーション装置として必要な機能を実装する為のプログラム102に加えて、量子演算命令保持部110、量子演算命令対応関係保持部112、振る舞い保持部113、及び遷移列対応関係保持部115の各記憶領域が少なくとも確保されている。これら記憶領域で保持・管理される情報の詳細は後述する。
【0036】
また、演算装置104がプログラム102を実行することで、量子演算命令作成部111、遷移列対応付け部114、量子演算命令逆生成部116、及び画面表示部117の各機能部が実装される。これら機能部の連携等については
図3に示すとおりである。
【0037】
すなわち、量子操作連動シミュレーション装置100は、量子演算命令保持部110、量子演算命令作成部111、量子演算命令対応関係保持部112、振る舞い保持部113、遷移列対応付け部114、遷移列対応関係保持部115、量子演算命令逆生成部116、及び画面表示部117を備えている。
【0038】
このうち量子演算命令作成部111は、処理対象となる量子プログラムをユーザ端末200や量子演算命令保持部110から取得し、これに既知の技術(例:既にあげた特許文献らの技術)を適用して量子操作命令(以後、量子演算命令とする)を生成する。
【0039】
図4で、そうした量子プログラムから生成した量子演算命令の例を示している。ここで示すように、量子プログラムにおける1行のステートメントから1つ、または複数(図中の例では3つ)の量子演算命令が生成されうる。量子演算命令は、格子状の量子ドットにおける電子の配置や移動等を指示するものとなる。
【0040】
なお、量子演算命令作成部111は、上述のように量子演算命令の生成を行う際、量子操作の目的(例:電子のセットや移動について、対象となる電子や位置を指定したものや、演算内容を指定したもの)を記述した第1のレイヤー(量子操作命令1)と、より物理的な操作内容を記述した第2のレイヤー(量子操作命令2)の2段階で量子演算命令を生成する(
図5参照)。
【0041】
例えば、既存のコンパイラ等を適宜に利用して、「move(A1, B1)」なる量子演算命令を実現するための量子操作命令1は、電子A1、B1に電圧を印加するための「applyVoltage(A1, B1」なる量子操作命令2として生成される(
図5参照)。
【0042】
こうした2つのレイヤーでの量子演算命令が生成されることで、量子演算命令作成部111は、レイヤー間、すなわち量子操作命令1及び量子操作命令2の各量子操作命令間における量子演算命令対応関係112、を特定できる。量子演算命令作成部111は、この量子演算命令対応関係112を、量子演算命令対応関係保持部112に格納する。
【0043】
また、量子操作連動シミュレーション装置100は、量子シミュレータ/量子コンピュータ20に対して、量子演算命令保持部110で保持する量子演算命令を入力して、その振り舞いを観察し、当該情報を振る舞い保持部113に格納する。この振る舞いは、
図6で示すように、量子操作命令を順次実行した場合に、量子シミュレータ/量子コンピュータ20で観測された電子等の状態遷移を遷移列として示したものとなる。
【0044】
この遷移列は、量子操作命令の実行操作を矢印の線分、当該実行操作で生じた状態をドットで示したものとなる。
【0045】
遷移列対応付け部114は、振る舞い保持部113に格納された、各量子操作命令に応じた遷移列の情報に基づき、量子操作命令間での遷移列における遷移要素の対応関係(
図7参照)を、遷移列対応関係として遷移列対応関係保持部115に格納する。こうした対応関係を各種の生成手順にあわせて模式的に示すと、
図3で例示する、「量子操作命令1」と、当該量子操作命令1から既存のコンパイラ等で生成される「量子操作命令2」との関係1050(
図3参照)を踏まえた、遷移要素の間の対応関係1055(
図3参照)となる。
【0046】
また、画面表示部117は、上述の遷移列対応関係保持部115に格納されている情報に基づき、処理対象とされた量子プログラムにおける、各量子操作命令とその遷移列の対応関係をそれぞれ表現する画面データ(例えば、
図13~
図15参照)を生成し、これをユーザ端末200に送信し表示させる。
【0047】
なお、量子演算命令逆生成部116は、量子演算命令保持部110及び量子演算命令対応関係保持部112に基づき、例えば、量子操作命令2から量子操作命令1を逆生成(通常は、上位のレイヤーである量子操作命令1から下位のレイヤーの量子操作命令2を生成するため、「逆生成」と称する)するものである(
図19参照)。こうした「逆生成」において、量子演算命令逆生成部116は、例えば、ユーザ端末200を介して量子操作命令2の編集指示を受け、その編集指示により内容が変更された量子操作命令2に基づいて、量子操作命令1を生成し、量子操作命令1と量子操作命令2の対応関係も含めて更新する。
<フロー例:対応関係生成>
以下、本実施形態における量子操作連動シミュレーション方法の実際手順について図に基づき説明する。以下で説明する量子操作連動シミュレーション方法に対応する各種動作は、量子操作連動シミュレーション装置100がメモリ等に読み出して実行するプログラムによって実現される。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
【0048】
図9は、本実施形態における量子操作連動シミュレーション方法のフロー例を示す図であり、具体的には、遷移列の間における遷移要素の対応関係を特定する処理例を示すフロー図である。
【0049】
この場合、量子操作連動シミュレーション装置100における、例えば、遷移列対応付け部114は、量子シミュレータ/量子コンピュータ20による、量子演算命令実行時の振る舞い、すなわち遷移列(
図6の説明で既出)を取得する(s1)。なお、量子シミュレータ/量子コンピュータ20にて実行される量子演算命令は、上述の量子操作命令1及び量子操作命令2のうち少なくとも量子操作命令1となる。
【0050】
このs1の処理に先立ち、量子演算命令作成部111は、量子プログラムが含むステートメントから量子操作命令1を、また量子操作命令1から量子操作命令2を生成し、これら量子操作命令1、量子演算命令2を量子演算命令保持部110に格納済みである。また、量子演算命令作成部111は、これら量子操作命令1と量子操作命令2との対応関係を量子演算命令対応関係保持部112に格納済みである。
【0051】
続いて、遷移列対応付け部114は、s1で得た量子操作命令1及び量子操作命令2のそれぞれの遷移列に関して、当該遷移列らの間で、当該遷移列を構成する遷移要素同士の対応関係を特定する(s2)。
【0052】
この特定は、例えば、或る量子演算命令(量子操作命令1)を構成するステートメント(命令文)と、その遷移列における遷移要素(矢印線分:操作、ドット:状態)との間の対応関係、当該量子演算命令から生成された生成演算命令(量子操作命令2)を構成するステートメント(命令文)と、その遷移列における遷移要素との対応関係について、当該遷移要素の元となった量子操作命令1、2における命令文同士の対応関係に基づいて特定する処理となる。
【0053】
また、遷移列対応付け部114は、s2で特定した遷移要素同士の対応関係を、遷移列対応関係保持部115に格納し(s3)、処理を終了する。
<フロー例:遷移列等の表示処理>
続いて、上述の遷移列やその遷移要素同士の対応関係等の表示処理について図に基づき説明する。
図9は、本実施形態における量子操作連動シミュレーション方法のフロー例を示す図であり、具体的には、画面表示部117における処理例を示すフロー図である。
【0054】
この場合、量子操作連動シミュレーション装置100における画面表示部117は、例えば、ユーザ端末200からの指定を受けた量子プログラムに関して、予め生成された量子演算命令(量子操作命令1、2)と、その振る舞いすなわち遷移列との間で対応する、それぞれの遷移要素を、遷移列対応関係保持部115にて表示対象として特定する(s10)。
【0055】
続いて、量子操作連動シミュレーション装置100の画面表示部117は、s10で特定した遷移要素同士を関連付けた情報を出力するにあたり、量子プログラムまたは量子操作命令1に関する遷移列での遷移要素に関するクリック等の指定操作(
図12の画面1010参照)を受け付けて、当該遷移要素と、量子操作命令1または量子操作命令2の遷移列において対応する特定の遷移要素とを対応付けて、メモリ103などに保持する(s11)。
【0056】
ここで特定された遷移要素の対応関係は、
図11の画面1000や
図12の画面1010における「シミュレーションマネージャ」フレームで示すように、量子プログラムのレイヤー、量子操作命令1のレイヤー、量子操作命令2のレイヤー、といった3層における、それぞれの遷移列を、遷移要素の1つである円形のオブジェクト(状態を示すもの)を、もう1つの遷移要素である矢印線分(操作を示すもの)で結んで構成し、これらレイヤー間で対応する遷移要素のうち、例えば状態を示す円形のオブジェクト間を縦に延びる破線で結んで対応関係を示すものとしている。
【0057】
続いて、量子操作連動シミュレーション装置100の画面表示部117は、s11で特定した遷移要素の対応関係に基づいて、量子プログラム、量子操作命令1、及び量子操作命令2の各レイヤーでの遷移列及びそこでの遷移要素の対応関係と、当該量子プログラム、量子操作命令1、及び量子操作命令2のそれぞれの内容や状態を、1つの画面に構成してユーザ端末200に出力し(s12)、処理を終了する。
【0058】
図12の例では、画面1010において、「シミュレーションマネージャ」、「量子プログラム」、「量子操作命令1」、及び「量子操作命令2」の各フレームが備わる構成を示している。このうち「量子プログラム」フレームには、ユーザ端末200で指定された量子プログラムの情報が示される。また、「量子操作命令1」フレームには、ユーザ指定を受けた量子プログラムに対応する量子操作命令1での操作による、量子ドットの格子上での電子の設定状況を示す画像が示される。また、「量子操作命令2」フレームには、量子操作命令1に対応する量子操作命令2が存在する場合に当該量子操作命令2による、量子ドットの格子上での電子の設定状況を示す画像が示されるが、
図12の例では量子操作命令1に対応する量子操作命令2が存在せず、情報も表示されない例となっている。
【0059】
また
図13の例では、画面1020において、「シミュレーションマネージャ」フレームにて、量子プログラムの遷移列のうち、最初の状態の遷移要素がユーザから指定された状況を示している。この場合、「量子プログラム」フレームには、ユーザ端末200で指定された量子プログラムのうち、上述の「状態」に対応した位置の情報(縦の黒線分)が示される。また、「量子操作命令1」フレームには、ユーザ指定を受けた操作に対応した量子操作命令1での操作による、量子ドットの格子上での電子の設定状況を示す画像が示される(図中の例では、A1、A1、C2の各位置に電子が配置)。また、「量子操作命令2」フレームには、量子操作命令1に対応する量子操作命令2が存在する場合に当該量子操作命令2による、量子ドットの格子上での電子の設定状況を示す画像が示されるが、
図12の例では量子操作命令1に対応する量子操作命令2が存在せず、情報も表示されない例となっている。
【0060】
なお、量子操作連動シミュレーション装置100の画面表示部117は、量子プログラムまたは量子操作命令1の遷移列における上述の指定操作を受けた遷移要素と対応する、量子操作命令1又は量子操作命令2の遷移列での特定の遷移要素が複数存在する場合、量子操作命令2の遷移列において(時系列的に)最も前方または後方の遷移要素を特定の遷移要素とする(
図14の画面1030参照)。
【0061】
図14の例では、画面1030において、「シミュレーションマネージャ」フレームにて、量子プログラムの遷移列のうち、2つめの操作の遷移要素がユーザから指定された状況を示している。この場合、「量子プログラム」フレームには、ユーザ端末200で指定された量子プログラムのうち、上述の「操作」に対応した位置の情報(縦の黒枠)が示される。また、「量子操作命令1」フレームには、ユーザ指定を受けた操作に対応した量子操作命令1での操作による、量子ドットの格子上での電子の移動状況を示す画像が示される(図中の例では、A1の電子がB1に移動)。また、「量子操作命令2」フレームには、量子操作命令1に対応する量子操作命令2による、量子ドットの格子上での物理的操作状況を示す画像が示される。
図14の例では量子操作命令2による物理的操作状況として、ドットA1、B1のそれぞれに、電極による電圧印加が施される様子が表示されている。
【0062】
また、量子操作連動シミュレーション装置100の画面表示部117は、上述の量子プログラムないし量子操作命令1の遷移列における上述の指定操作対象(
図12の画面1010参照)となった遷移要素(例:操作のいずれか)と対応する、量子操作命令1ないし量子操作命令2の遷移列における特定の遷移要素が存在しない場合、量子操作命令2の遷移列において近接する遷移要素(
図15の画面1040参照)を代替的な特定の遷移要素とする。
【0063】
図15の例では、画面1040において、「シミュレーションマネージャ」フレームにて、量子操作命令1の遷移列のうち、2つめの状態の遷移要素がユーザから選択された状況を示している。
【0064】
この場合、「量子プログラム」フレームには、ユーザ端末200で指定された量子プログラムのうち、上述の「状態」に対応した位置の情報(縦の黒枠)が示される。また、「量子操作命令1」フレームには、ユーザ指定を受けた状態に対応した、量子ドットの格子上での電子の配置状況を示す画像が示される(図中の例では、B1、A2、C2に電子が配置)。
【0065】
また、「量子操作命令2」フレームには、量子操作命令1に対応する量子操作命令2の代わりに、量子操作命令1の遷移列で指定された「状態」に至る直前のすなわち近接する操作による、量子ドットの格子上での物理的操作状況を示す画像が示される。
図15の例では量子操作命令2による物理的操作状況として、ドットA1、B1のそれぞれに、電極による電圧印加が施される様子が表示されている。
【0066】
また
図16の例では、画面1060において、「シミュレーションマネージャ」フレームにおいて、ロール名の選択UI1061が含まれる構成となっている。本実施形態におけるロール名の選択UI1061は、量子コンピュータ20のユーザのロール設定を受け付けるプルダウンタイプのユーザインターフェイスである。ここで選択可能なロールとしては、量子プログラムのテスター、プログラム開発者、量子デバイス開発者、量子デバイス運用者、などを想定できる。
【0067】
量子操作連動シミュレーション装置100は、上述のロール名の選択UI1061においてユーザからのロール名選択動作を受け付けると、当該ロール名に応じて、画面1060での表示対象を選択する。このため量子操作連動シミュレーション装置100は、ロール名ごとに表示対象を規定したリスト(ルール)を予め記憶装置101等で保持し、適宜に利用するものとする。
【0068】
ロール名により表示対象が選択的に表示されることは、例えば、ユーザが複数人存在し、そのロールが量子プログラムのテスター、プログラム開発者、量子デバイス開発者、量子デバイス運用者、といった異なる種類にわかれている場合に対応し、当該ロールの者が認識したほうがよい粒度、範囲での情報提示を行う、という効果を奏することにつながる。
図16の画面1060の例では、「シミュレーションマネージャ」フレーム及び「量子プログラム」フレームでのみ情報表示がなされ、「量子操作命令1」及び「量子操作命令2」の各フレームでは情報表示はなされていない。
【0069】
また
図17の例では、画面表示部117での画面1070の表示中に、「量子操作命令1」においてユーザによる編集操作を受け付けた場合の動作例について示す。この例では、量子ドットの格子上における電子移動を、当初のドットA1→ドットB1の移動パターンから、ドットA1→ドットB2の移動パターン、に変更する編集が行われている。
【0070】
この場合、量子操作連動シミュレーション装置100は、この編集により変更された量子操作命令1の内容を既存のコンパイラ等に与えることで、新たな量子操作命令2を得る。そこで量子操作連動シミュレーション装置100は、「量子操作命令2」フレームにおいて、新たな量子操作命令2の内容、すなわち量子ドットの格子上で電圧印加する位置を、ドットA2とドットB2を電極で囲む表示内容に変更に更新する。こうした更新の様子については、
図18の画面1080における「量子操作命令2」フレームにて示す。
【0071】
なお、量子操作連動シミュレーション装置100は、当然ながら、上述の変更された量子操作命令1の内容をシミュレータ20に与えることで新たな遷移要素を取得し、また、上記新たな量子操作命令2の内容をシミュレータ20に与えることで新たな遷移要素を得るものとする。
【0072】
上述のようなユーザによる編集操作に応じて、量子演算命令や遷移要素を生成しなおし、それらの対応関係を最新のものに更新する動作は、すなわち、量子操作連動シミュレーション装置100において、表示対象の遷移列(量子操作命令1または量子操作命令2)のうちいずれか一方の遷移列における、量子演算命令または振る舞い(遷移要素)に対するユーザからの編集を受け付けた場合、当該編集の結果を、表示対象である他方の遷移列に反映することで、上述の遷移列の間での整合性を保つ同期処理、を行うことに該当する。
【0073】
上述の例では、量子操作命令1での編集に応じて量子操作命令2の内容を更新する構成について示したが、これとは逆に、量子操作命令2での編集に応じて量子操作命令1の内容を更新することも想定できる。こうしたケースにおいて、逆生成部116は、
図19に示すように、量子操作命令2(例:applyVoltage(x,y))から、当該量子操作命令2の生成元となった量子操作命令1(又は量子プログラム)として「move(x,y)」を逆生成する。こうした逆生成の機能は、例えば、既存のコンパイラ等が予め備えているとしてもよいし、或いは、逆生成部116が、量子操作命令1と量子操作命令2との間の生成関係のリストを予め保持しておき、量子操作命令1と量子操作命令2の一方が分かれば、他方を特定出来る機能を有しているとしてもよい。
【0074】
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【0075】
こうした本実施形態によれば、量子プログラムや操作命令の構成要素単位の対応関係や、それらを実行する量子コンピュータの振る舞いの対応関係を把握可能となる。
【0076】
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態の量子操作連動シミュレーション装置において、前記記憶装置は、前記対応関係に関する前記シミュレーション結果において、第1の量子演算命令から作成される第2の量子演算命令について、前記第1の量子演算命令またはそれを実行する量子コンピュータの振る舞いの遷移状況を表す第1の遷移列における任意の遷移要素と、前記第2の量子演算命令またはそれを実行する量子コンピュータの振る舞いの遷移状況を表す第2の遷移列における特定の遷移要素との間の対応関係を定義した情報を保持しており、前記演算装置は、前記第1の遷移列における遷移要素に関する所定操作を受け付けた場合、当該遷移要素と、前記第2の遷移列において対応する前記特定の遷移要素とを対応付けて表示するものである、としてもよい。
【0077】
これによれば、量子演算命令の間において対応関係にある振る舞いについて、その時系列上の遷移も含めて適宜な粒度で視覚的に表示しユーザに提示可能となる。
【0078】
また、本実施形態の量子操作連動シミュレーション装置において、前記演算装置は、前記第1の遷移列における前記任意の遷移要素と対応する、前記第2の遷移列における前記特定の遷移要素が複数存在する場合、前記第2の遷移列において最も前方または後方の遷移要素を前記特定の遷移要素として表示するものである、としてもよい。
【0079】
これによれば、遷移要素同士が同数ではない状況に適宜に対応し、ユーザにおける認識のしやすさや妥当性の観点で適宜な対応関係をもって遷移要素の表示を行うことが可能となる。
【0080】
また、本実施形態の量子操作連動シミュレーション装置において、前記演算装置は、前記第1の遷移列における前記任意の遷移要素と対応する、前記第2の遷移列における前記特定の遷移要素が存在しない場合、前記第2の遷移列において近接する遷移要素を代替的な前記特定の遷移要素として表示するものである、としてもよい。
【0081】
これによれば、例えば、対応関係にある量子操作命令等の間のうち、一方の遷移要素が1つの状態を示すもので、他方の遷移要素が状態変化を生じる操作を示すものであるなど、一対一の関係にないケースに適宜に対応し、当該対応関係を視覚的に明示可能となる。
【0082】
また、本実施形態の量子操作連動シミュレーション装置において、前記演算装置は、前記第1の量子演算命令から前記第2の量子演算命令を作成する際、および前記第1及び前記第2の量子演算命令を実行した場合の前記振る舞いにする前記シミュレーション結果を取得する際、前記任意の遷移要素と前記特定の遷移要素との前記対応関係を作成し、前記記憶装置において保持するものである、としてもよい。
【0083】
これによれば、量子回路の既存シミュレーション技術を適宜に利用して、上述の遷移要素間の対応関係を特定・保持し、本実施形態における量子操作連動シミュレーションを効率的に実行可能となる。
【0084】
また、本実施形態の量子操作連動シミュレーション装置において、前記演算装置は、所定の量子演算命令、または当該量子演算命令を実行する量子コンピュータの振る舞いを表す遷移列を、新たな表示対象として追加する場合、前記量子演算命令を構成する命令文と、前記遷移列における遷移要素との間の対応関係を定義し、前記量子演算命令の生成元または生成先の量子演算命令である生成演算命令について、前記量子演算命令を構成する命令文と前記生成演算命令を構成する命令文との対応関係を参照することで、前記量子演算命令の遷移列を構成する遷移要素と、前記生成演算命令の遷移列を構成する遷移要素との対応関係を導出するものである、としてもよい。
【0085】
これによれば、量子回路の既存シミュレーション技術を適宜に利用して、上述の遷移要素間の対応関係を、より細かな粒度にて特定・保持し、本実施形態における量子操作連動シミュレーションをさらに効率的に実行可能となる。
【0086】
また、本実施形態の量子操作連動シミュレーション装置において、前記演算装置は、所定のインターフェイスを介して、前記量子コンピュータのユーザのロール設定を受け付けた場合、ユーザのロールに応じた前記表示対象の選択ルールに基づいて前記表示対象を選択し前記出力を行うものである、としてもよい。
【0087】
これによれば、例えば、ユーザが複数人存在し、そのロールが量子プログラムのテスター、プログラム開発者、量子デバイス開発者、量子デバイス運用者、といった異なる種類にわかれている場合に対応し、当該ロールの者が認識したほうがよい粒度、範囲での情報提示を行うことが可能となる。
【0088】
また、本実施形態の量子操作連動シミュレーション装置において、前記演算装置は、前記表示対象の前記第1または前記第2の遷移列のうちいずれか一方の遷移列における、量子演算命令または振る舞いに対するユーザからの編集を受け付けた場合、前記編集の結果を、前記表示対象である他方の遷移列に反映することで、前記第1及び前記第2の遷移列の間での整合性を保つ同期機能を備える、としてもよい。
【0089】
これによれば、ユーザによる編集操作を、第1及び第2の遷移列の間で齟齬無く反映させることが可能となる。
【0090】
また、本実施形態の量子操作連動シミュレーション装置において、前記演算装置は、前記同期機能において、所定の操作命令から、当該操作命令の生成元となった別の操作命令又は量子プログラムを生成するための逆生成機能をさらに備える、としてもよい。
【0091】
これによれば、ユーザによる編集操作を、第2の量子演算命令から第1の量子演算命令へと遡って適用可能となる。
【0092】
また、本実施形態の量子操作連動シミュレーション方法において、前記情報処理装置が、前記記憶装置において、前記対応関係に関する前記シミュレーション結果において、第1の量子演算命令から作成される第2の量子演算命令について、前記第1の量子演算命令またはそれを実行する量子コンピュータの振る舞いの遷移状況を表す第1の遷移列における任意の遷移要素と、前記第2の量子演算命令またはそれを実行する量子コンピュータの振る舞いの遷移状況を表す第2の遷移列における特定の遷移要素との間の対応関係を定義した情報を保持し、前記第1の遷移列における遷移要素に関する所定操作を受け付けた場合、当該遷移要素と、前記第2の遷移列において対応する前記特定の遷移要素とを対応付けて表示する、としてもよい。
【符号の説明】
【0093】
1 ネットワーク
10 量子操作連動シミュレーションシステム
20 量子シミュレータ/量子コンピュータ
100 量子操作連動シミュレーション装置
101 記憶装置
102 プログラム
103 メモリ
104 演算装置
105 通信装置
110 量子演算命令保持部
111 量子演算命令作成部
112 量子演算命令対応関係保持部
113 振る舞い保持部
114 遷移列対応付け部
115 遷移列対応関係保持部
116 量子演算命令逆生成部
117 画面表示部
200 ユーザ端末