(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024031144
(43)【公開日】2024-03-07
(54)【発明の名称】量子コンピュータ制御プログラム、量子コンピュータ制御装置、および量子コンピュータ制御方法
(51)【国際特許分類】
G06N 10/70 20220101AFI20240229BHJP
【FI】
G06N10/70
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2022134503
(22)【出願日】2022-08-25
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】徳永 新吾
(57)【要約】
【課題】量子コンピューティング環境において複数のユーザのタスク同士が干渉し、計算結果の精度が低下する場合がある。
【解決手段】コンピュータは、量子コンピュータに含まれる複数のキュービットの各々の1ショットごとの測定を行い、第1の量子計算の第1のタスクに対する複数のキュービットの各々の1ショットごとの測定結果と、第2の量子計算の第2のタスクの実行状態とから第1のタスクに対する第2のタスクからの干渉の影響を推定する。
【選択図】
図6
【特許請求の範囲】
【請求項1】
量子コンピュータに含まれる複数のキュービットの各々の1ショットごとの測定を行い、
第1の量子計算の第1のタスクに対する前記複数のキュービットの各々の前記1ショットごとの測定結果と、第2の量子計算の第2のタスクの実行状態とから前記第1のタスクに対する前記第2のタスクからの干渉の影響を推定する
処理をコンピュータに実行させることを特徴とする量子コンピュータ制御プログラム。
【請求項2】
前記第2のタスクからの干渉の影響があると推定された場合、前記第1のタスクと、前記第2のタスクとが同時に実行されないように、前記第1のタスクおよび前記第2のタスクの少なくとも1つのショットの実行タイミングを移動させる処理を前記コンピュータに実行させることを特徴とする請求項1に記載の量子コンピュータ制御プログラム。
【請求項3】
量子コンピュータに含まれる複数のキュービットの各々の1ショットごとの測定を行い、
第1の量子計算の第1のタスクに対する前記複数のキュービットの各々の前記1ショットごとの測定結果と、第2の量子計算の第2のタスクの実行状態とから前記第1のタスクに対する前記第2のタスクからの干渉の影響を推定する
処理を実行する制御部を備えたことを特徴とする量子コンピュータ制御装置。
【請求項4】
量子コンピュータに含まれる複数のキュービットの各々の1ショットごとの測定を行い、
第1の量子計算の第1のタスクに対する前記複数のキュービットの各々の前記1ショットごとの測定結果と、第2の量子計算の第2のタスクの実行状態とから前記第1のタスクに対する前記第2のタスクからの干渉の影響を推定する
処理をコンピュータが実行することを特徴とする量子コンピュータ制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クラウドサービスにおける量子コンピューティングリソースの共同利用に関する。
【背景技術】
【0002】
現在、量子コンピュータの研究が盛んであり、一部はクラウド上で公開され、誰もが利用できるが環境が整いつつある。実用化の可能性がある量子コンピュータは、NISQ(Noisy Intermediate-Scale Quantum device)と呼ばれるもので、計算途中でエラーを訂正することができない。そのため、キュービットのエラー率、コヒーレンス時間、およびクロストークの影響などによって、計算結果の精度が低下することがある。
【0003】
また、複数のユーザが、複数のキュービットから構成される量子処理ユニット(Quantum Processing Unit/以下、「QPU」という)を共有し、各自が使用するエリアをそれぞれ割り当てて利用することが想定される。この場合、クロストークの影響によって、各ユーザの計算処理が互いに影響を及ぼしあう問題がある。そのため、複数のユーザが同時に利用可能なコンピューティング環境を提供することが難しい。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許出願公開第2020/0174879号明細書
【特許文献2】米国特許出願公開第2021/0152189号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、量子コンピューティング環境を複数のユーザが同時に使用するような場合、ユーザが実行しようとする量子アルゴリズムタスク(以下、「タスク」という)同士が干渉し、お互いの計算結果の精度が低下する場合がある。
【0006】
1つの側面では、量子計算の精度を向上させることを目的とする。
【課題を解決するための手段】
【0007】
1つの態様において、量子コンピュータ制御プログラムは、量子コンピュータに含まれる複数のキュービットの各々の1ショットごとの測定を行い、第1の量子計算の第1のタスクに対する複数のキュービットの各々の1ショットごとの測定結果と、第2の量子計算の第2のタスクの実行状態とから第1のタスクに対する第2のタスクからの干渉の影響を推定する処理をコンピュータに実行させる。
【発明の効果】
【0008】
1つの側面では、量子計算の精度を向上させることができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、本実施形態にかかる情報処理システムの構成例を示す図である。
【
図2】
図2は、本実施形態にかかる量子コンピュータ制御装置10の構成例を示す図である。
【
図3】
図3は、近接ビットについて説明するための図である。
【
図4】
図4は、近接タスクおよびクロストークについて説明するための図である。
【
図5】
図5は、ショットについて説明するための図である。
【
図6】
図6は、ショットデータの分類の一例を示す図である。
【
図7】
図7は、測定結果情報32に記憶されるデータの一例を示す図である。
【
図8】
図8は、量子測定におけるI-Q平面測定値と射影測定結果との関係の一例を示す図である。
【
図9】
図9は、|0>データ読み出しの実験結果の一例を示す図である。
【
図10】
図10は、実施例1にかかる測定データの標準偏差の算出方法の一例を示す図である。
【
図11】
図11は、ショット測定データの偏差値と近接タスクとの関係性の算出の一例を示す図である。
【
図12】
図12は、ショット実行スケジューリングの例を示す図である。
【
図13】
図13は、本実施形態にかかる干渉影響推定処理の流れの一例を示すフローチャートである。
【
図14】
図14は、本実施形態にかかるショット実行スケジューリング処理の流れの一例を示すフローチャートである。
【
図15】
図15は、本実施形態にかかる量子コンピュータ制御装置10のハードウェア構成例を示す図である。
【発明を実施するための形態】
【0010】
以下に、本実施形態にかかる量子コンピュータ制御プログラム、量子コンピュータ制御装置、および量子コンピュータ制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例により本実施形態が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【0011】
まず、本実施形態を実施するための情報処理システムについて説明する。
図1は、本実施形態にかかる情報処理システムの構成例を示す図である。
図1に示すように、本実施形態にかかる情報処理システムは、量子コンピュータ制御装置10と、量子コンピュータ100とが、ネットワーク50を介して相互に通信可能に接続されるシステムである。
【0012】
ネットワーク50には、有線や無線を問わず、例えば、イントラネットやインターネットなどの各種通信網を採用できる。また、ネットワーク50は、単一のネットワークではなく、例えば、イントラネットとインターネットとがゲートウェイなどネットワーク装置やその他の装置(図示せず)を介して構成されてよい。
【0013】
量子コンピュータ制御装置10は、例えば、サーバコンピュータ、またはデスクトップPC(Personal Computer)やノートPCなどの情報処理装置である。量子コンピュータ制御装置10は、例えば、量子コンピュータ100によって用いられる複数のキュービットの各々に対してドライブ信号を送信する。これにより、当該ドライブ信号は、量子コンピュータ100が、複数のキュービットを用いて、複数のユーザが同時に実行する量子アルゴリズムで用いられるゲート操作を行うための信号である。なお、ゲート操作とは、各キュービットに対して実行される計算処理のことをいう。
【0014】
また、量子コンピュータ制御装置10は、例えば、複数のキュービットの各々の1ショットごとの測定を行う。そして、量子コンピュータ制御装置10は、例えば、第1のユーザの量子計算の第1のタスクに対する複数のキュービットの各々の1ショットごとの測定結果と、他のユーザの量子計算の第2のタスクの状況とを関連付けて記憶する。なお、タスクとは、量子コンピュータ100がゲート操作を行い、量子計算を実行することをいう。
【0015】
また、量子コンピュータ制御装置10は、例えば、量子計算の第1のタスクの実行時に同時に実行されている、第1のタスクが使用するビットに隣接するビットを使用する第2のタスクである近接タスクの実行状態を監視して記憶する。
【0016】
また、量子コンピュータ制御装置10は、例えば、第1のタスクに対する複数のキュービットの各々の1ショットごとの測定結果と近接タスクの実行状態とを関連付けて記憶する。
【0017】
また、量子コンピュータ制御装置10は、例えば、第1のタスクに対する複数のキュービットの各々の1ショットごとの測定結果と近接タスクの実行状態とに関する情報から第1のタスクに対する近接タスクからの干渉の影響を推定する。
【0018】
また、量子コンピュータ制御装置10は、例えば、第1のタスクに対する複数のキュービットの各々の1ショットごとの測定結果のばらつき度を数値化する。そして、量子コンピュータ制御装置10は、例えば、数値化されたばらつき度の値が所定の閾値以上ある場合に、特定の近接タスクが実行状態であったかどうかを検証し、測定結果のばらつきの原因である近接タスクを推定する。
【0019】
量子コンピュータ100は、例えば、量子コンピュータ100からドライブ信号を受信すると、複数のキュービットを用いて、複数のユーザが同時に実行する量子アルゴリズムで用いられるゲート操作を行い、量子計算を実行する。
【0020】
なお、
図1では、量子コンピュータ制御装置10および量子コンピュータ100をそれぞれ1台のコンピュータとして示しているが、複数台のコンピュータで構成される分散型コンピューティングシステムであってもよい。また、量子コンピュータ制御装置10および量子コンピュータ100は、クラウドコンピューティングサービスを提供するサービス提供者によって管理されるクラウドコンピュータ装置であってもよい。
【0021】
(量子コンピュータ制御装置10の機能構成)
次に、本実施形態の動作主体となる量子コンピュータ制御装置10の機能構成について説明する。
図2は、本実施形態にかかる量子コンピュータ制御装置10の構成例を示す図である。
図2に示すように、量子コンピュータ制御装置10は、通信部20、記憶部30、および制御部40を有する。
【0022】
通信部20は、量子コンピュータ100など、他の情報処理装置との間の通信を制御する処理部であり、例えば、ネットワークインタフェースカードなどの通信インタフェースやUSB(Universal Serial Bus)インタフェースである。
【0023】
記憶部30は、各種データや、制御部40が実行するプログラムを記憶する機能を有し、例えば、メモリやハードディスクなどの記憶装置により実現される。記憶部30は、ビット割り当て情報31、測定結果情報32、およびショット実行スケジュール33などを記憶する。
【0024】
ビット割り当て情報31には、例えば、各タスクのQPU上で使用するビットを割り当てるための情報が記憶される。
【0025】
測定結果情報32には、例えば、射影測定結果と近接タスクの実行状況とをまとめた測定結果情報が記憶される。測定結果情報の一例については後述する。
【0026】
ショット実行スケジュール33には、例えば、各タスクのショット実行開始時間などを定めたタイムラインが記憶される。
【0027】
なお、記憶部30に記憶される上記情報はあくまでも一例であり、記憶部30は、上記情報以外にも様々な情報を記憶できる。
【0028】
制御部40は、量子コンピュータ制御装置10全体を司る処理部であり、例えば、プロセッサなどである。制御部40は、ビット割り当て部41、量子計算実行部42、測定部43、測定結果分類部44、干渉影響推定部45、およびショット実行スケジューリング部46を備える。なお、各処理部は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
【0029】
ビット割り当て部41は、例えば、QPU上のビット割り当てを決定する。
【0030】
量子計算実行部42は、例えば、量子コンピュータ100によって用いられる複数のキュービットの各々に対してゲート操作を行うためのマイクロ波であるドライブ信号を出力する。
【0031】
測定部43は、例えば、量子計算実行部42によって出力されたマイクロ波の反射を観測し、キュービットの計算基底(「Z基底」ともいう)の状態を測定する。なお、測定は、例えば、複数のキュービットの各々の1ショットごとに測定されてよい。
【0032】
測定結果分類部44は、例えば、測定部43によって測定された測定結果とゲート操作実行時の近接タスクの情報で分類を行い、射影測定結果と近接タスクの実行状況とをまとめた測定結果情報を測定結果情報32に記憶する。より具体的には、測定結果分類部44は、例えば、対象となる第1のユーザの測定結果と、第1のユーザ以外の他のユーザの量子計算の第2のタスクの状況とを関連付けて記憶する。また、測定結果分類部44は、例えば、量子計算の第1のタスクの実行時に同時に実行されている、第1のタスクが使用するビットに隣接するビットを使用する周辺の第2のタスクである近接タスクの実行状態を監視して記憶する。そして、測定結果分類部44は、例えば、測定部43によって測定された測定結果と近接タスクの実行状態とを関連付けて測定結果情報32に記憶する。
【0033】
干渉影響推定部45は、例えば、測定部43によって測定され、測定結果分類部44によって測定結果情報32に記憶された測定結果の平均値および分散と、近接タスクの実行結果から、測定結果と近接タスクとの関連を推定する。すなわち、対象となる第1のユーザの量子計算の第1のタスクに対する、他のユーザの近接タスクからの干渉の影響を推定する。
【0034】
また、干渉影響推定部45は、例えば、測定部43によって測定され、測定結果分類部44によって測定結果情報32に記憶された測定結果のばらつき度を数値化する。そして、干渉影響推定部45は、例えば、数値化されたばらつき度の値が所定の閾値以上ある場合に、特定の近接タスクが実行状態であったかどうかを検証し、測定結果のばらつきの原因である近接タスクを推定する。なお、ばらつき度の値が所定の閾値以上あるか否かを判定するのは、例えば、そもそも測定結果にばらつきが少なければ、タスク同士の干渉の影響も少なく、量子計算の精度低下も引き起こしていないだろうという考えによる。
【0035】
ショット実行スケジューリング部46は、例えば、干渉影響推定部45による推定結果に基づいて、各タスクのショット実行を再調整する。より具体的には、ショット実行スケジューリング部46は、例えば、対象となる第1のユーザの第1のタスクと測定結果のばらつきの原因と推定された近接タスクとが同時に実行されないように、計算ショットの実行タイミングを移動させる。
【0036】
(機能詳細)
次に、量子コンピュータ制御装置10を動作主体として実行される本実施形態についてより具体的に説明する。まず、本実施形態を説明するために用いられる各用語について説明する。タスクとは、量子コンピュータ100が、対象となるユーザが量子計算のために使用するビット群、およびその群を使ってゲート操作を行い、量子計算を実行することをいう。
【0037】
また、近接ビットとは、対象となるユーザが使用するビットの周りに配置されているビットをいう。
図3は、近接ビットについて説明するための図である。
図3は、対象となるユーザが使用する対象ユーザビット、それらの周りに配置される近接ビット、およびその他のキュービットを含む25個のキュービットQ0-Q24を示す。
【0038】
図4は、近接タスクおよびクロストークについて説明するための図である。
図4に示すように、QPU上には複数のタスクが存在しており、隣接して配置される場合がある。
図4において、例えば、対象となるユーザのタスクをtask A、ならびに近接する他ユーザのタスクをtask Bおよびtask Cとする。例えば、task Aの各キュービットに対してゲート操作が行われている間に、近接するtask Bやtask Cの各キュービットもゲート操作が行われる場合がある。この場合、近接するtask Bやtask Cの干渉の影響をtask Aのキュービットが受けることになり、結果的にtask Aが出力する計算結果の精度が低下する場合がある。なお、
図4では、干渉の影響を受けるビットの例として、お互いのビットが最も近接しているケースを示しているが、例えば、1つ飛ばしで隣り合っている(「次近接」という)の場合においても、お互いに干渉する場合がある。そして、あるタスクが近接タスクの干渉の影響を受けると、キュービットの計算結果にばらつきが生じ、量子計算の精度が低下してしまう場合がある。
【0039】
量子計算においてはビットの計算結果にばらつきが生じるのは常である。しかしながら、当該ばらつきを極力排除するため、同一の計算処理(以下、「ショット」という)を複数回実行し、得られた測定結果の平均値から、最終的な計算結果を得るといったことがおこなわれる。
図5は、ショットについて説明するための図である。
図5に示すように、例えば、量子計算タスクによって同一の量子計算を繰り返し実行し、1~n(nは任意の整数)ショットの測定結果の平均値が当該量子計算として計算される。
【0040】
しかしながら、近接するタスクが同時に実行されると、計算結果にお互いのクロストークの影響が含まれ、計算結果の信頼性が低下する場合がある。また、計算結果の信頼性が低下する要因はクロストーク以外にも存在するため、クロストークがどの程度、計算結果の信頼性に影響しているのかを知ることは困難である。
【0041】
そこで、各ショットを実行するタイミングにおいて、量子コンピュータ制御装置10は、対象となるユーザのタスクに加えて、近接タスクの稼働状況も併せて監視し記録する。近接タスクが稼働していた時の計算結果と、そうでないときの計算結果を分けて集計することで、各々の測定データのばらつき(偏差値)から、そのショットデータに対してクロストークの影響がどの程度含まれていたかを推定する。
【0042】
クロストークの影響の推定について、より具体的に説明する。
図6は、ショットデータの分類の一例を示す図である。
図6は、対象となるユーザの実行タスクであるtask A、ならびに近接する他ユーザの実行タスクであるtask Bおよびtask Cのショットデータを分類し、クロストークの影響を推定する方法を示す。
図6に示すように、量子コンピュータ制御装置10は、task Aの実行および測定が行われている間に、task Bおよびtask Cが実行されていたかどうかを監視し、その結果をtask Aの測定結果と共に測定結果情報32に記憶する。
【0043】
測定結果情報32に記憶されるデータについて、より具体的に説明する。
図7は、測定結果情報32に記憶されるデータの一例を示す図である。
図7に示すように、測定結果情報32は、例えば、対象となるユーザの実行タスクのショットを一意に示す「ショット番号」、ショット番号によって示されるショットの測定結果を示す「測定結果(a+bi)」を記憶する。なお、「ショット番号」は、例えば、
図6の上段に示すように、対象ユーザの実行タスクの各ショット番号に対応する。また、測定結果情報32は、例えば、対象となるユーザの実行タスクと同時に実行されている近接タスクを示す「近接タスク」を記憶する。より具体的には、「近接タスク」は、
図6を用いて説明すると、対象ユーザの実行タスクであるtask Aのショット番号1、2、および5、6によって示されるショットの各々と同時に実行されているtask Cおよびtask Bが該当する。また、測定結果情報32は、例えば、対象となるユーザの実行タスクと同時に実行されている近接タスクを実行していた時間を記憶してよい。
【0044】
そして、
図6に示すように、量子コンピュータ制御装置10は、例えば、対象ユーザの実行タスクと近接タスクが同時に実行されていた時の測定結果と、そうでないときの測定結果とを分けて集計する。また、量子コンピュータ制御装置10は、各々の測定結果のばらつき、例えば、偏差値から、各ショットデータに対してクロストークの影響がどの程度含まれていたかを推定する。
【0045】
クロストークの影響推定方法についてより具体的に説明する。まず、量子コンピュータ制御装置10は、例えば、対象となるユーザのタスクの実行および測定が行われている間に、近接ビットが実行されていたかどうかを監視し、その結果を対象となるユーザのタスクの測定結果と共に、測定結果情報32に記憶する。
【0046】
図8は、量子測定におけるI-Q平面測定値と射影測定結果との関係の一例を示す図である。測定結果情報32に記憶されるデータの一例は、
図7を用いて前述したが、実際の測定データは、
図8に示すような、振幅情報と位相情報の両方を併せ持つ複素数データとして記憶される。クロストークやノイズの影響がない理想状態であれば、
図8に示す複素平面であるI-Q平面上の|1>を示す点60、および|0>を示す点70の2点間を結ぶ直線上にデータが観測される。なお、
図8の例では、点60をI-Q平面の右下である第四象限、点70をI-Q平面の左上である第一象限にそれぞれ示したが、実際に各データがどの位置に観測されるかは、測定器の設置条件などによって異なる。
【0047】
図9は、|0>データ読み出しの実験結果の一例を示す図である。
図9は、実際にキュービットを|0>に初期化した後に測定操作を行い、結果をI-Q平面上にプロットしたデータを示す。
図9では、ショットごとの測定結果が多く集まっている箇所は濃淡が淡くて明るく、少ない場所は濃淡が濃くて暗く表現されている。
図9に示すように、キュービットを初期化しただけの単純なケースであっても、測定値がばらつく場合がある。
【0048】
そこで、量子コンピュータ制御装置10は、例えば、各ショットデータの偏差値を求めることで、クロストークの影響、すなわち、対象となるユーザ以外の第2のタスクからの干渉を推定する。
図10は、実施例1にかかる測定データの標準偏差の算出方法の一例を示す図である。
図10において、点80の1つ1つが各ショットデータである。
図10に示すように、量子コンピュータ制御装置10は、例えば、全ショットデータの標準偏差を求めた上で、各ショットデータの偏差値を求める。測定データの標準偏差は、例えば、「測定データの標準偏差=Iの標準偏差×Q標準偏差」の式により算出可能である。また、各点の偏差値は、「各店の偏差値={(Iの値-Iの平均)×(Q値-Q平均)}/測定データの標準偏差」の式により算出可能である。このように算出された偏差値を用いて、偏差値が大きいほど、そのショットは平均から外れているため、他タスクからの干渉など何らかの外部要因があると推定される。なお、このような偏差値の算出は、2次元データを一次元の値である偏差値にするための処理である。
【0049】
そして、量子コンピュータ制御装置10は、例えば、測定データのズレである偏差値と、近接タスクとの稼働状況との間に関係性がある、すなわち推定される外部要因が他タスクからの干渉であるか否かを検証する。
【0050】
図11は、ショット測定データの偏差値と近接タスクとの関係性の算出の一例を示す図である。
図11に示すように、量子コンピュータ制御装置10は、例えば、各ショット測定データの偏差値、および対象となるユーザの対象タスクと他ユーザの近接タスクとが同時に実行された時間の偏差の関係を2次元平面上にプロットする。このように2次元平面上にプロットされた両偏差に関係性があるかを検証するために、量子コンピュータ制御装置10は、例えば、双方の相関(「共分散」という)を算出する。なお、当該共分散の算出は、対象タスクと同時に実行されたすべての近接タスクに対して個別に行われる。そして、例えば、共分散の絶対値が大きいほど、2次元平面上にプロットされた両偏差には強い関係性があると推定される。例えば、当該共分散の絶対値が所定の閾値以上ある場合、対象タスクは近接タスクの干渉の影響、すなわちクロストークの影響を許容できないレベルで受けていると判断できる。そのため、量子コンピュータ制御装置10は、例えば、近接タスクを排除すべく、対象タスクと近接タスクとの同時実行を排除するようなショット実行スケジューリングを行う。
【0051】
図12は、ショット実行スケジューリングの例を示す図である。
図12の上段は、例えば、
図11を用いて説明したような共分散の絶対値が所定の閾値未満であり、クロストークの影響が許容範囲内の場合に生成されるショット実行スケジューリングの一例である。一方、
図12の下段は、例えば、
図11を用いて説明したような共分散の絶対値が所定の閾値以上であり、クロストークの影響が許容範囲外の場合に生成されるショット実行スケジューリングの一例である。
【0052】
クロストークの影響が許容範囲内の場合は、対象タスクのショット、および近接タスクのショットが同時に実行されても問題ないため、
図12の上段に示すように、個々のタスクでスケジューリングされてよい。
【0053】
一方、クロストークの影響が許容範囲外の場合は、
図12の下段に示すように、対象タスクのショットおよび近接タスクのショットが同時に実行されないように、個々のタスクのショットタイミングをずらしてスケジューリングされる。なお、タスク同士の干渉を推定する情報が十分に取得できない場合は、近接タスクの実行タイミングを対象タスクの実行タイミングと意図的に重ねるスケジューリングを行い、干渉推定に必要なデータを取得するようにしてもよい。
【0054】
(処理の流れ)
次に、
図13を用いて、量子コンピュータ制御装置10および量子コンピュータ100によって実行される干渉影響推定処理について説明する。
図13は、本実施形態にかかる干渉影響推定処理の流れの一例を示すフローチャートである。
【0055】
まず、
図13に示すように、量子コンピュータ制御装置10は、例えば、ビット割り当て情報31に記憶されたデータなどから、対象となるユーザが実行する対象タスク周辺の近接タスクを把握する(ステップS101)。なお、量子計算を実行する計算タスクのショットごとに量子計算の測定が行われるため、ステップS101~S109はショット数分繰り返し実行される。
【0056】
次に、量子コンピュータ制御装置10は、例えば、量子計算を実行する計算タスクの実行要求としてドライブ信号を量子コンピュータ100に送信する(ステップS102)。
【0057】
次に、量子コンピュータ100は、例えば、ステップS102で量子コンピュータ制御装置10から送信された実行要求をまだ受信していない場合(ステップS103:No)、実行要求の受信を待つ。一方、実行要求を受信した場合(ステップS103:Yes)、量子コンピュータ100は、例えば、複数のキュービットの各々に対して量子計算を実行させるためのビットドライブ信号を生成する(ステップS104)。
【0058】
次に、量子コンピュータ100は、例えば、量子計算を実行するためにステップS104で生成されたビットドライブ信号を各キュービットに送信し、計算タスクのショットを実行する(ステップS105)。
【0059】
次に、量子コンピュータ100は、例えば、各キュービットの実行状態を測定する(ステップS106)。
【0060】
次に、量子コンピュータ100は、例えば、ステップS106の測定結果を量子コンピュータ制御装置10に送信する(ステップS107)。
【0061】
次に、量子コンピュータ制御装置10は、例えば、ステップS107で量子コンピュータ100から送信された測定結果をまだ受信していない場合(ステップS108:No)、測定結果の受信を待つ。一方、測定結果を受信した場合(ステップS108:Yes)、量子コンピュータ制御装置10は、例えば、測定結果と近接タスクの実行状態とを関連付けて測定結果情報32に記憶する(ステップS109)。ステップS109の実行後、次のショットがある場合はステップS101に戻り、前述したように、ステップS101~S109がショット数分繰り返し実行される。
【0062】
ステップS101~S109がショット数分繰り返し実行されると、次に、量子コンピュータ制御装置10は、ステップS108で受信された測定結果に基づいて、全ショットの測定データの標準偏差を算出する(ステップS110)。
【0063】
ステップS110で算出された標準偏差が所定の閾値未満の場合(ステップS111:No)、タスク同士の干渉の影響も少ないと判断し、
図13に示す干渉影響推定処理は終了する。
【0064】
一方、標準偏差が所定の閾値以上の場合(ステップS111:Yes)、量子コンピュータ制御装置10は、例えば、ショットの測定データを、対象タスクと同時に実行されていた近接タスクごとに分類する(ステップS112)。
【0065】
次に、量子コンピュータ制御装置10は、例えば、対象タスクと同時に実行されていた近接タスクごとに、ショットの測定データの偏差値を算出する(ステップS113)。
【0066】
次に、量子コンピュータ制御装置10は、例えば、対象タスクと同時に実行されていた近接タスクごとに、ステップS113で算出された偏差値と、当該近接タスクの実行時間の偏差との共分散を算出する(ステップS114)。
【0067】
ステップS114で算出された、対象タスクと同時実行の近接タスクごとの共分散に所定の閾値以上のものがない場合(ステップS115:No)、タスク同士の干渉の影響も少ないと判断し、
図13に示す干渉影響推定処理は終了する。
【0068】
対象タスクと同時実行の近接タスクごとの共分散に所定の閾値以上のものがある場合(ステップS115:Yes)、量子コンピュータ制御装置10は、共分散が閾値以上の近接タスクを干渉の影響ありと推定する(ステップS116)。ステップS116の実行後、
図13に示す干渉影響推定処理は終了する。
【0069】
次に、
図14を用いて、量子コンピュータ制御装置10を動作主体として実行されるショット実行スケジューリング処理について説明する。
図14は、本実施形態にかかるショット実行スケジューリング処理の流れの一例を示すフローチャートである。
【0070】
まず、
図14に示すように、量子コンピュータ制御装置10は、例えば、ショット実行スケジュール33に記憶されたデータなどから、対象となるユーザが実行する対象タスクのショットの実行時間を決定する(ステップS201)。
【0071】
次に、量子コンピュータ制御装置10は、例えば、対象タスクに干渉している近接タスク(以下、「被疑タスク」という)が存在するか否かを確認する(ステップS202)。これは、例えば、
図13を用いて説明した干渉影響推定処理のステップS116において干渉の影響ありと推定された近接タスクの有無を確認することであってよい。
【0072】
被疑タスクがない場合(ステップS203:No)、量子コンピュータ制御装置10は、例えば、対象タスクの2つ目以降のショットの実行開始時間を、その前に実行されるショットの終了時間にセットする(ステップS204)。すなわち、干渉の影響のある近接タスクが存在しないため、近接タスクを気にすることなく対象タスクの各ショットのスケジューリングが行われる。ステップS204の実行後、
図14に示すショット実行スケジューリング処理は終了する。
【0073】
一方、被疑タスクがある場合(ステップS203:Yes)、量子コンピュータ制御装置10は、例えば、ショット実行スケジュール33に記憶されたデータなどから、被疑タスクのショットの終了時間を確認する(ステップS205)。
【0074】
次に、量子コンピュータ制御装置10は、例えば、対象タスクの2つ目以降のショットの実行開始時間を、その前に実行される被疑タスクのショットの終了時間にセットする(ステップS206)。
【0075】
次に、量子コンピュータ制御装置10は、例えば、被疑タスクのショットの実行開始時間を、その前に実行される対象タスクのショットの終了時間にセットする(ステップS207)。
【0076】
次に、量子コンピュータ制御装置10は、例えば、ステップS206およびS207によってセットされたスケジュールに基づいて、対象タスクおよび被疑タスクの実行タイムラインを修正する(ステップS208)。すなわち、
図12の下段に示したように、被疑タスクの干渉を回避するため、対象タスクのショットおよび被疑タスクのショットが同時に実行されないように、個々のタスクのショットタイミングをずらして再スケジューリングされる。なお、修正されたタイムラインは、ショット実行スケジュール33に記憶されてよい。ステップS208の実行後、
図14に示すショット実行スケジューリング処理は終了する。
【0077】
(効果)
上述したように、量子コンピュータ制御装置10は、量子コンピュータ100に含まれる複数のキュービットの各々の1ショットごとの測定を行い、第1の量子計算の第1のタスクに対する複数のキュービットの各々の1ショットごとの測定結果と、第2の量子計算の第2のタスクの実行状態とから第1のタスクに対する第2のタスクからの干渉の影響を推定する。
【0078】
このように、量子コンピュータ制御装置10は、対象タスクと同時に実行されている近接タスクからの干渉の影響を推定することにより、量子コンピュータ制御装置10は、量子計算の精度を向上させることができる。
【0079】
また、量子コンピュータ制御装置10は、第2のタスクからの干渉の影響があると推定された場合、第1のタスクと、第2のタスクとが同時に実行されないように、第1のタスクおよび第2のタスクの少なくとも1つのショットの実行タイミングを移動させる。
【0080】
これにより、量子コンピュータ制御装置10は、量子計算の精度を向上させることができる。
【0081】
(システム)
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報は、特記する場合を除いて任意に変更されてもよい。また、実施例で説明した具体例、分布、数値などは、あくまで一例であり、任意に変更されてもよい。
【0082】
また、量子コンピュータ制御装置10の構成要素の分散や統合の具体的形態は図示のものに限られない。例えば、量子コンピュータ制御装置10の干渉影響推定部45が複数の処理部に分散されたり、量子コンピュータ制御装置10の測定部43と測定結果分類部44とが1つの処理部に統合されたりしてもよい。つまり、その構成要素の全部または一部は、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合されてもよい。さらに、各装置の各処理機能は、その全部または任意の一部が、CPU(Central Processing Unit)および当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0083】
図15は、本実施形態にかかる量子コンピュータ制御装置10のハードウェア構成例を示す図である。
図15では、量子コンピュータ制御装置10を例として、ハードウェア構成例を示すが、
図1に示す量子コンピュータ100も量子コンピュータ制御装置10と同様のハードウェア構成を採用できる。
図15に示すように、量子コンピュータ制御装置10は、通信インタフェース10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、
図15に示した各部は、バスなどで相互に接続される。
【0084】
通信インタフェース10aは、ネットワークインタフェースカードなどであり、他の情報処理装置との通信を行う。HDD10bは、例えば、量子コンピュータ制御装置10の各機能を動作させるプログラムやデータを記憶する。
【0085】
プロセッサ10dは、CPU、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などである。また、プロセッサ10dは、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路により実現されるようにしてもよい。プロセッサ10dは、例えば、
図2などに示した各処理部と同様の処理を実行するプログラムをHDD10bなどから読み出してメモリ10cに展開する。これにより、プロセッサ10dは、量子コンピュータ制御装置10の各機能を実現するプロセスを実行するハードウェア回路として動作可能である。
【0086】
また、量子コンピュータ制御装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、量子コンピュータ制御装置10によって実行されることに限定されるものではない。例えば、他の情報処理装置がプログラムを実行する場合や、他の情報処理装置と量子コンピュータ制御装置10とが協働してプログラムを実行するような場合にも、上記実施例が同様に適用されてよい。
【0087】
当該プログラムは、インターネットなどのネットワークを介して配布されてもよい。また、当該プログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)などのコンピュータ可読記憶媒体に記録されてよい。そして、当該プログラムは、量子コンピュータ制御装置10などによって記録媒体から読み出されることによって実行されてもよい。
【0088】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0089】
(付記1)量子コンピュータに含まれる複数のキュービットの各々の1ショットごとの測定を行い、
第1の量子計算の第1のタスクに対する前記複数のキュービットの各々の前記1ショットごとの測定結果と、第2の量子計算の第2のタスクの実行状態とから前記第1のタスクに対する前記第2のタスクからの干渉の影響を推定する
処理をコンピュータに実行させることを特徴とする量子コンピュータ制御プログラム。
【0090】
(付記2)前記第2のタスクからの干渉の影響があると推定された場合、前記第1のタスクと、前記第2のタスクとが同時に実行されないように、前記第1のタスクおよび前記第2のタスクの少なくとも1つのショットの実行タイミングを移動させる処理を前記コンピュータに実行させることを特徴とする付記1に記載の量子コンピュータ制御プログラム。
【0091】
(付記3)量子コンピュータに含まれる複数のキュービットの各々の1ショットごとの測定を行い、
第1の量子計算の第1のタスクに対する前記複数のキュービットの各々の前記1ショットごとの測定結果と、第2の量子計算の第2のタスクの実行状態とから前記第1のタスクに対する前記第2のタスクからの干渉の影響を推定する
処理を実行する制御部を備えたことを特徴とする量子コンピュータ制御装置。
【0092】
(付記4)前記制御部は、前記第2のタスクからの干渉の影響があると推定された場合、前記第1のタスクと、前記第2のタスクとが同時に実行されないように、前記第1のタスクおよび前記第2のタスクの少なくとも1つのショットの実行タイミングを移動させることを特徴とする付記3に記載の量子コンピュータ制御装置。
【0093】
(付記5)量子コンピュータに含まれる複数のキュービットの各々の1ショットごとの測定を行い、
第1の量子計算の第1のタスクに対する前記複数のキュービットの各々の前記1ショットごとの測定結果と、第2の量子計算の第2のタスクの実行状態とから前記第1のタスクに対する前記第2のタスクからの干渉の影響を推定する
処理をコンピュータが実行する量子コンピュータ制御方法。
【0094】
(付記6)前記第2のタスクからの干渉の影響があると推定された場合、前記第1のタスクと、前記第2のタスクとが同時に実行されないように、前記第1のタスクおよび前記第2のタスクの少なくとも1つのショットの実行タイミングを移動させる処理を前記コンピュータが実行することを特徴とする付記5に記載の量子コンピュータ制御方法。
【0095】
(付記7)プロセッサと、
プロセッサに動作可能に接続されたメモリと
を備えた情報処理装置であって、プロセッサは、
量子コンピュータに含まれる複数のキュービットの各々の1ショットごとの測定を行い、
第1の量子計算の第1のタスクに対する前記複数のキュービットの各々の前記1ショットごとの測定結果と、第2の量子計算の第2のタスクの実行状態とから前記第1のタスクに対する前記第2のタスクからの干渉の影響を推定する
処理を実行する制御部を備えたことを特徴とする量子コンピュータ制御装置。
【符号の説明】
【0096】
10 量子コンピュータ制御装置
10a 通信インタフェース
10b HDD
10c メモリ
10d プロセッサ
20 通信部
30 記憶部
31 ビット割り当て情報
32 測定結果情報
33 ショット実行スケジュール
40 制御部
41 ビット割り当て部
42 量子計算実行部
43 測定部
44 測定結果分類部
45 干渉影響推定部
46 ショット実行スケジューリング部
60、70、80 点
100 量子コンピュータ