IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社QunaSysの特許一覧

特開2024-132698情報処理装置、情報処理方法、情報処理プログラム、及びハイブリッドシステム
<>
  • 特開-情報処理装置、情報処理方法、情報処理プログラム、及びハイブリッドシステム 図1
  • 特開-情報処理装置、情報処理方法、情報処理プログラム、及びハイブリッドシステム 図2
  • 特開-情報処理装置、情報処理方法、情報処理プログラム、及びハイブリッドシステム 図3
  • 特開-情報処理装置、情報処理方法、情報処理プログラム、及びハイブリッドシステム 図4
  • 特開-情報処理装置、情報処理方法、情報処理プログラム、及びハイブリッドシステム 図5
  • 特開-情報処理装置、情報処理方法、情報処理プログラム、及びハイブリッドシステム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024132698
(43)【公開日】2024-10-01
(54)【発明の名称】情報処理装置、情報処理方法、情報処理プログラム、及びハイブリッドシステム
(51)【国際特許分類】
   G06N 10/80 20220101AFI20240920BHJP
【FI】
G06N10/80
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2023043575
(22)【出願日】2023-03-17
(71)【出願人】
【識別番号】518253439
【氏名又は名称】株式会社QunaSys
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】今井 良輔
(72)【発明者】
【氏名】楊 天任
(72)【発明者】
【氏名】アンドレアス トマセン
(72)【発明者】
【氏名】井辺 洋平
(72)【発明者】
【氏名】高椋 章太
(57)【要約】
【課題】量子コンピュータに量子化学計算を実行させる際に、量子回路を自動的に設定することができるようにする。
【解決手段】古典コンピュータ110が、分子に関する情報である分子情報を取得し、分子情報に基づいて、量子回路の深さを含む量子回路の要素を設定することにより、量子化学計算に用いられる量子回路を設定する。古典コンピュータ110は、要素が設定された前記量子回路に基づき計算された結果を取得する。
【選択図】図1
【特許請求の範囲】
【請求項1】
1又は複数のコンピュータプロセッサに実行させるためのプログラムであって、
分子に関する情報である分子情報を取得し、
前記分子情報に基づいて、量子回路の深さを含む量子回路の要素を設定することにより、量子化学計算に用いられる量子回路を設定し、
前記要素が設定された前記量子回路に基づき計算された結果を取得する、
処理をコンピュータプロセッサに実行させるためのプログラム。
【請求項2】
前記量子回路の深さは、前記量子回路を構成する量子ゲートの配置に基づいて定まる量子回路計算のステップ数である、
請求項1に記載のプログラム。
【請求項3】
前記量子回路の深さは、前記量子回路内における量子ゲートの繰り返し数である、
請求項1に記載のプログラム。
【請求項4】
前記分子情報に基づき算出される分子軌道数と、分子軌道数と量子回路の深さとの間の統計に基づく統計情報とに基づいて、前記量子回路の深さを算出する、
請求項1に記載のプログラム。
【請求項5】
更に、ユーザによって指定された量子化学計算の要求精度に基づいて、前記量子回路の深さを算出する、
請求項4に記載のプログラム。
【請求項6】
前記分子軌道数と、分子軌道数と量子回路の深さとの間の統計に基づく統計パラメータと、前記要求精度と、を予め生成された回帰式に入力することにより、前記量子回路の深さを算出する、
請求項5に記載のプログラム。
【請求項7】
前記量子化学計算の計算対象に基づいて、前記量子回路内の量子ゲートの集合を決定する際に用いられるAnsatzの種類を選択する、
請求項1に記載のプログラム。
【請求項8】
前記分子情報から算出されたハミルトニアンに基づいて、前記量子回路内の量子ゲートの集合を決定する際に用いられるAnsatzの種類を選択する、
請求項1に記載のプログラム。
【請求項9】
前記分子情報から算出された分子軌道数に基づいて、量子ビット数を決定する、
請求項1に記載のプログラム。
【請求項10】
前記計算対象が基底状態のエネルギーである場合には、第1種類のAnsatzを選択し、
前記計算対象が励起状態のエネルギーである場合には、第2種類のAnsatzを選択する、
請求項7に記載のプログラム。
【請求項11】
ユーザによって指定された前記計算対象に基づいて、前記量子化学計算をするための量子化学計算アルゴリズムを選択する、
請求項7に記載のプログラム。
【請求項12】
1又は複数のコンピュータプロセッサを備える情報処理装置であって、
入力された分子に関する情報である分子情報を取得し、
前記分子情報に基づいて、量子回路の深さを含む量子回路の要素を設定することにより、量子化学計算に用いられる量子回路を設定し、
前記要素が設定された前記量子回路に基づき計算された結果を取得する、
情報処理装置。
【請求項13】
1又は複数のコンピュータプロセッサが実行する情報処理方法であって、
分子に関する情報である分子情報を取得し、
前記分子情報に基づいて、量子回路の深さを含む量子回路の要素を設定することにより、量子化学計算に用いられる量子回路を設定し、
前記要素が設定された前記量子回路に基づき計算された結果を取得する、
情報処理方法。
【請求項14】
請求項12に記載の情報処理装置と量子コンピュータとを備えるハイブリッドシステムであって、
前記情報処理装置は、量子化学計算に用いられる前記量子回路を実行することを表す制御信号を前記量子コンピュータへ出力し、
前記量子コンピュータは、前記制御信号に応答して、前記量子回路に応じた量子化学計算を実行し、前記量子化学計算の結果を前記情報処理装置へ出力し、
前記情報処理装置は、前記量子回路に基づき計算された前記量子化学計算の結果を取得する、
ハイブリッドシステム。
【発明の詳細な説明】
【技術分野】
【0001】
開示の技術は、情報処理装置、情報処理方法、情報処理プログラム、及びハイブリッドシステムに関する。
【背景技術】
【0002】
従来、量子コンピュータを用いて量子化学計算を実行する技術が知られている。例えば、特許文献1には、量子コンピュータを用いてエネルギーの微分を求める量子情報処理方法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2021-028847号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、量子コンピュータを用いて量子化学計算を実行し、その計算結果を得ようとする場合には、ユーザは量子コンピュータに関する高度な知識を有している必要がある。ユーザが量子コンピュータに関する高度な知識を有していない場合、ユーザは自らが望む量子化学計算の結果を得るために、どのような量子回路を設定すればよいのかが分からず、量子コンピュータに対して量子化学計算を実行させることが難しい、という課題がある。
【0005】
開示の技術は、上記の事情を鑑みてなされたものであり、ユーザが量子コンピュータに関する高度な知識を有していない場合であっても、量子コンピュータに量子化学計算を実行させることができる情報処理装置、情報処理方法、情報処理プログラム、及びハイブリッドシステムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本開示の第1態様のプログラムは、1又は複数のコンピュータプロセッサに実行させるためのプログラムであって、分子に関する情報である分子情報を取得し、前記分子情報に基づいて、量子回路の深さを含む量子回路の要素を設定することにより、量子化学計算に用いられる量子回路を設定し、前記要素が設定された前記量子回路に基づき計算された結果を取得する、処理をコンピュータプロセッサに実行させるためのプログラムである。
【0007】
本開示の第2態様の情報処理装置は、1又は複数のコンピュータプロセッサを備える情報処理装置であって、入力された分子に関する情報である分子情報を取得し、前記分子情報に基づいて、量子回路の深さを含む量子回路の要素を設定することにより、量子化学計算に用いられる量子回路を設定し、前記要素が設定された前記量子回路に基づき計算された結果を取得する、情報処理装置である。
【0008】
本開示の第2態様の情報処理方法は、1又は複数のコンピュータプロセッサが実行する情報処理方法であって、分子に関する情報である分子情報を取得し、前記分子情報に基づいて、量子回路の深さを含む量子回路の要素を設定することにより、量子化学計算に用いられる量子回路を設定し、前記要素が設定された前記量子回路に基づき計算された結果を取得する、情報処理方法である。
【発明の効果】
【0009】
開示の技術によれば、ユーザが量子コンピュータに関する高度な知識を有していない場合であっても、量子コンピュータに量子化学計算を実行させることができる、という効果が得られる。
【図面の簡単な説明】
【0010】
図1】本実施形態のハイブリッドシステム100の概略構成の一例を示す図である。
図2】古典コンピュータ110、制御装置121、及びユーザ端末130として機能するコンピュータの概略ブロック図である。
図3】量子回路の決定方法を説明するための図である。
図4】量子回路の深さを説明するための図である。
図5】本実施形態のハイブリッドシステム100が実行するシーケンスの一例を示す図である。
図6】量子回路の深さの別の例を説明するための図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して開示の技術の実施形態を詳細に説明する。
【0012】
<実施形態に係るハイブリッドシステム100>
【0013】
図1に、実施形態に係るハイブリッドシステム100を示す。本実施形態のハイブリッドシステム100は、情報処理装置の一例である古典コンピュータ110と量子コンピュータ120とユーザ端末130とを備える。古典コンピュータ110と量子コンピュータ120とユーザ端末130とは、図1に示されるように、一例としてIPネットワークなどのコンピュータネットワークを介して接続されている。
【0014】
本実施形態のハイブリッドシステム100においては、量子コンピュータ120が古典コンピュータ110からの要求に応じて所定の量子化学計算を行い、当該量子化学計算の計算結果を古典コンピュータ110へ出力する。古典コンピュータ110はユーザ端末130へ量子化学計算に応じた計算結果を出力する。これにより、ハイブリッドシステム100全体として所定の計算処理が実行される。
【0015】
古典コンピュータ110は、通信インターフェース等の通信部111と、プロセッサ、CPU(Central processing unit)等の処理部112と、メモリ、ハードディスク等の記憶装置又は記憶媒体を含む情報記憶部113とを備え、各処理を行うためのプログラムを実行することによって構成されている。なお、古典コンピュータ110は1又は複数の装置ないしサーバを含むことがある。また、当該プログラムは1又は複数のプログラムを含むことがあり、また、コンピュータによって読み取り可能な記憶媒体に記録して非一過性のプログラムプロダクトとすることができる。
【0016】
量子コンピュータ120は、一例として、古典コンピュータ110から送信される情報に基づいて量子ビット群123のうちの少なくとも何れかの量子ビットへ照射するための電磁波を生成する。そして、量子コンピュータ120は、生成された電磁波を、量子ビット群123のうちの少なくとも何れかの量子ビットへ照射することにより、量子回路を実行する。
【0017】
図1の例では、量子コンピュータ120は、古典コンピュータ110と通信を行う制御装置121と、制御装置121からの要求に応じて電磁波を生成する電磁波生成装置122と、電磁波生成装置122からの電磁波照射を受ける量子ビット群123とを備える。量子コンピュータ120のうちの電磁波生成装置122及び量子ビット群123は、QPU(Quantum processing unit)でもある。なお、本実施形態において「量子コンピュータ」とは、古典ビットによる演算を一切行わないことを意味するものではなく、量子ビットによる演算を含むコンピュータをいう。
【0018】
制御装置121は、古典ビットにより演算を行う古典コンピュータであり、古典コンピュータ110において行うものとして本明細書にて説明する処理の一部又は全部を代替的に行う。
【0019】
ユーザ端末130は、古典ビットにより演算を行う古典コンピュータである。ユーザ端末130は、ユーザから入力された情報を受け付け、当該情報に応じた処理を実行する。
【0020】
古典コンピュータ110、制御装置121、及びユーザ端末130は、例えば、図2に示すコンピュータ50で実現することができる。コンピュータ50はCentral processing unit(CPU)51、一時記憶領域としてのメモリ52、及び不揮発性の記憶部53を備える。また、コンピュータ50は、外部装置及び出力装置等が接続される入出力interface(I/F)54、及び記録媒体に対するデータの読み込み及び書き込みを制御するread/write(R/W)部55を備える。また、コンピュータ50は、インターネット等のネットワークに接続されるネットワークI/F56を備える。CPU51、メモリ52、記憶部53、入出力I/F54、R/W部55、及びネットワークI/F56は、バス57を介して互いに接続される。
【0021】
量子コンピュータを用いて量子化学計算を実行するためには、ユーザは各種の計算パラメータを設定する必要があり、これには量子化学計算の高度な知識が必要となる。そのため、量子化学計算の知識を十分に有していないユーザは、量子コンピュータに対して量子化学計算を実行させることが難しい、という課題がある。
【0022】
また、量子化学計算の知識を有しているユーザであっても、そのユーザが量子コンピュータの高度な知識を有していない場合には、自らが望む量子化学計算の結果を得るためには、どのような量子回路を設定すればよいのかが分からず、同様に、量子コンピュータに対して量子化学計算を実行させることが難しい、という課題もある。
【0023】
そこで、実施形態のハイブリッドシステム100の古典コンピュータ110は、ユーザが量子コンピュータに関する高度な知識を有していない場合であっても、量子コンピュータに量子化学計算を実行させることを可能とする。具体的には、古典コンピュータ110は、量子化学計算を実行する際に必要となる量子回路を設定する。量子回路とは、量子ビットに対する操作を表す量子ゲートの組み合わせである。
【0024】
具体的には、古典コンピュータ110は、ユーザによって入力された分子情報を含む各種情報に基づいて、量子回路の深さを含む量子回路の要素を設定することにより、ユーザが望む量子化学計算を実行するための量子回路を設定する。これにより、量子コンピュータに関する知識を十分に有していないユーザ又は量子化学計算に関する知識を十分に有していないユーザであっても、量子コンピュータを用いた量子化学計算を簡易に実行することができる。
【0025】
図3は、量子回路を生成する際に必要な各種情報を説明するための図である。図3に示されている「Ansatz」は量子回路を形成するためのルールであり、量子回路を構成する量子ゲートの集合を決定するためのものである。また、図3に示されている「Quantum Circuit」は量子回路を表す。図3に示されている「Molecular Information」は、計算対象の分子に関する情報である分子情報を表す。図3に示されているように、分子情報には、分子構造、分子に含まれる原子の種類、及び座標等(図3では「Geometry」と表記)の各種情報が含まれている。なお、本実施形態では、分子情報には、分子構造、分子に含まれている原子の種類、及び座標等が含まれている場合を例に説明するが、これに限定されるものではない。分子情報に含まれている情報としては、分子軌道数を計算できる情報であればどのような情報であってもよい。また、分子情報には、量子化学計算に必要な基底関数系(図3では「Basis set」と表記)及び活性空間に関する情報(図3では「Active space」と表記)等が含まれている。
【0026】
基底関数系(図3では「Basis set」と表記)とは、原子軌道を構成する元となる関数の集合である。基底関数系は、ユーザの指定によって決定される。なお、量子化学計算に利用される基底関数系は予め決まっている。このため、ユーザはそれらの基底関数系から利用対象の基底関数系を指定する。なお、ユーザから基底関数系の指定入力が無い場合には、古典コンピュータ110は、デフォルトとなる基底関数系を設定するようにしてもよい。又は、古典コンピュータ110は、後述する計算対象に応じて基底関数系のレコメンドをするようにしてもよい。例えば、古典コンピュータ110は、計算対象の計算コストが高い場合には、より簡易な基底関数系を選ぶことをユーザに対してレコメンドするようにしてもよい。
【0027】
活性空間(図3では「Active space」と表記)とは、計算に取り入れる分子軌道で作られる空間である。活性空間を指定することにより、量子化学における多体問題を解く場合に、計算に取り入れる分子軌道と取り入れない分子軌道を決めることができる。計算に取り入れる分子軌道を減らした方が、計算コストが低減されるものの計算精度は低くなる。活性空間は、ユーザの指定によって決定される。なお、古典コンピュータ110は、ユーザからの指定入力がない場合には、特に自由度の制限を持たせずに計算を実行させるようにしてもよい。
【0028】
古典コンピュータ110は、量子回路の各種要素を設定する。以下、具体的に説明する。
【0029】
[Typeの決定]
まず、古典コンピュータ110は、Ansatzの種類(図3では「Type」と表記)を決定する。Ansatzの種類は、量子回路を形成するためのルールの種類に相当する。具体的には、古典コンピュータ110は、量子化学計算の計算対象を表す情報の一例である計算対象のエネルギー準位(図3では「Ground state or Excited state ?」と表記)に基づいて、Ansatzの種類を決定する。Ansatzの種類に応じて、量子回路を構成する量子ゲートの集合が決定される。
【0030】
量子コンピュータを用いて量子化学計算を実行する際には、Ansatzを量子ゲートによって表現し、その量子ゲートの組み合わせを量子回路として設定する必要がある。なお、量子化学計算の計算対象によって必要となるAnsatzの種類は異なる。このため、古典コンピュータ110は、必要となるAnsatzの種類を決定し、そのAnsatzの種類に応じて量子回路内の量子ゲートの集合を設定する。
【0031】
例えば、古典コンピュータ110は、計算対象のエネルギー準位が基底状態である場合に、第1種類に該当するAnsatzを選択する。また、古典コンピュータ110は、計算対象のエネルギー準位が励起状態である場合に、第1種類とは別の第2種類に該当するAnsatzを選択する。このように、Ansatzの種類は、計算対象のエネルギー準位に応じて予め設定される。
【0032】
例えば、計算対象のエネルギー準位が基底状態である場合、波動関数の展開係数は実数でよいことが知られている。その一方で、計算対象のエネルギー準位が励起状態である場合、波動関数の展開係数には複素数も含める必要があることが知られている。このため、計算対象のエネルギー準位が基底状態である場合には、計算対象のエネルギー準位が励起状態である場合よりも探索空間が小さくて済む。そのため、古典コンピュータ110は、計算対象のエネルギー準位が励起状態である場合、計算対象のエネルギー準位が基底状態である場合よりも、より複雑なAnsatzである第2種類に属するAnsatzを選択する。
【0033】
また、古典コンピュータ110は、分子情報から計算されるハミルトニアン(図3では「Hamiltonian」と表記)と、予め用意されている情報の一例であるフェルミオンキュービットマッピング(図3では「Fermion qubit mapping」と表記)とに基づいて、Ansatzの種類を決定するようにしてもよい。なお、分子情報からハミルトニアンを計算する手法は、既知の手法を利用することができる。
【0034】
例えば、古典コンピュータ110は、ハミルトニアン(図3では「Hamiltonian」と表記)に基づく演算子に応じて、Ansatzの種類を選択する。選択されたAnsatzの種類に応じて、量子回路を構成する量子ゲートの集合が決定される。
【0035】
また、例えば、フェルミオンキュービットマッピング(図3では「Fermion qubit mapping」と表記)から特定の量子ビットが0又は1となることが特定できる場合、その量子ビットを省いた量子回路を構成できる。このため、古典コンピュータ110は、量子回路を構成する際に量子ビットを省くことが可能なAnsatzの種類を選択する。そして、選択されたAnsatzの種類に応じて、量子ビットが省かれた量子回路が決定される。
【0036】
なお、図3に示されているように、Ansatzの種類を選択する際には、計算対象のエネルギー準位(図3では「Ground state or Excited state ?」と表記)は必須の事項であるのに対し、フェルミオンキュービットマッピング(図3では「Fermion qubit mapping」と表記)の情報とハミルトニアン(図3では「Hamiltonian」と表記)とは任意の事項である。
【0037】
なお、量子回路に含まれる量子ゲートの並びは、計算対象の分子に応じて変化する場合もある。このため、分子情報に応じてAnsatzの種類を決定するようにしてもよい。
【0038】
[Depthの決定]
次に、古典コンピュータ110は、量子回路の深さ(図3では「Depth」と表記)を決定する。
【0039】
図4は、量子回路の深さを説明するための図である。図4には、量子回路の一部分が示されている。本実施形態における量子回路の深さとは、量子回路を構成する量子ゲートの配置に基づいて定まる量子回路計算のステップ数である。
【0040】
図4は、3つの量子ビットに対する量子回路である。|0>は量子ビットの状態を表し、|ψ(θ)>は量子回路によって得られる量子状態を表す。また、θは量子回路のパラメータを表す。図4に示されている例では、4つの演算要素S1,S2,S3,S4が示されている。この4つの演算要素S1,S2,S3,S4の各々は量子ゲートによって構成されている。Hはアダマールゲートを表し、XはXゲート(NOTゲート)を表し、CN1,CN2はCNOTゲートを表す。図4に示されている例では、量子回路計算のステップ数が4(S1,S2,S3,S4)であるため、量子回路の深さは4である。古典コンピュータ110は、ユーザから入力された分子情報に基づいて、この量子回路の深さを設定する。
【0041】
具体的には、まず、古典コンピュータ110は、分子情報に基づいて、例えば、既知の手法を用いることにより、分子軌道数(図3では「Number of orbitals」と表記)を算出する。なお、分子軌道数は、既知の手法を用いることにより、分子の種類から一意に計算することが可能である。このため、古典コンピュータ110は、分子情報が表す分子の種類に基づいて分子軌道数を計算する。次に、古典コンピュータ110は、分子軌道数に基づいて、量子化学計算に必要な量子ビットの数を計算する。通常は、分子軌道数の2倍の数が、量子ビット数として計算される。なお、量子ビット数を決定する際には、フェルミオンキュービットマッピング(図3の「Fermion qubit mapping」)を利用することにより、量子ビット数を低減させることもできる。
【0042】
そして、古典コンピュータ110は、計算により決定された量子ビット数と、ユーザによって指定された量子化学計算の要求精度と、予め用意されている統計情報とに基づいて、量子回路の深さを算出する。予め用意されている統計情報は、量子ビットの数と量子回路の深さとの間の統計に基づく情報である。量子ビットの数と量子回路の深さとの間の統計に基づく統計情報は、過去の量子化学計算の実績に基づき得られる情報である。例えば、統計情報の一例として回帰式を利用することができる。
【0043】
統計情報の一例として回帰式を利用する場合には、古典コンピュータ110は、分子軌道数から算出された量子ビット数と、分子軌道数と量子回路の深さとの間の統計に基づく統計パラメータと、ユーザによって指定された量子化学計算の要求精度に関するパラメータと、を予め生成された回帰式に入力することにより、量子回路の深さを算出する。回帰式の一例を以下の式(1)に示す。
【0044】
Depth=α・x+β・x+S
(1)
【0045】
上記の回帰式(1)におけるDepthは量子回路の深さであり、α,βは予め設定される統計パラメータである。また、例えば、上記の回帰式(1)におけるxは量子ビット数であり、xは量子化学計算の要求精度に関するパラメータである。Sは定数又は変数である。Sが定数である場合には、量子ビット数及び量子化学計算の要求精度とは異なる変数も考慮されて量子回路の深さが決定される。
【0046】
なお、量子ビット数は分子軌道数に応じて一意に決定可能であるため、古典コンピュータ110は、分子情報に基づき算出された分子軌道数と、分子軌道数と量子回路の深さとの間の統計に基づく統計情報とに基づいて、量子回路の深さを算出するようにしてもよい。この場合には、例えば、以下の回帰式(2)に従って量子回路の深さが算出される。以下の式(2)におけるzは分子軌道数である。また、以下の式(2)におけるγは予め設定される統計パラメータである。
【0047】
Depth=γ・z+β・x+S
(2)
【0048】
なお、図4に示されるような量子回路に関して、量子ビット数と量子回路の深さとの間の比率が所定の比率である場合には、量子化学計算の精度と計算量との間の関係が好適となる場合が多い。例えば、量子ビット数と量子回路の深さの数の比率が約1:1である場合には、量子化学計算の精度と計算量との間のバランスが良好であることが多い。このため、量子ビット数と量子回路の深さの数の比率が約1:1であると好ましい。その一方で、量子化学計算の精度を高めたい場合には、量子ビット数に比べて量子回路の深さを深くした方が好ましく、例えば、量子ビット数と量子回路の深さの数の比率が約1:1.5とすると、精度の高い計算結果を得ることができる。なお、量子ビット数に対して量子回路の深さが深い場合には、量子化学計算の精度は高くなるものの、計算量が多くなる。このため、上記式(1)又は式(2)により、量子化学計算の要求精度が一般的な精度である場合には、量子ビット数と量子回路の深さの数の比率が約1:1となるように、量子回路の深さが決定される。その一方で、量子化学計算の要求精度が高い場合には、例えば、量子ビット数と量子回路の深さの数の比率が約1:1.5となるように量子回路の深さが決定される。なお、上述した比率はあくまでも一例である。このため、量子ビット数と量子回路の深さの数の比率は、上述した比率以外であってもよく、例えば約1:1.2のような値であってもよい。
【0049】
なお、量子回路の深さを決定する際には、上記の方法とは異なる方法を採ってもよい。例えば、古典コンピュータ110は、量子化学計算の要求精度が所定閾値以上である場合には、量子回路の深さを第1の値として設定し、量子化学計算の要求精度が所定閾値未満である場合には、量子回路の深さを第2の値として設定するようにしてもよい。なお、第2の値は第1の値よりも小さい。又は、分子情報と量子回路の深さとが対応付けられているテーブルを参照することにより、量子回路の深さを決定するようにしてもよい。
【0050】
[Patternの決定]
次に、古典コンピュータ110は、Ansatzのエンタングリングゲートの配置パターン(図3では「Pattern」と表記)を決定する。
【0051】
エンタングリングゲートの配置パターン(図3では「Pattern」と表記)は、量子化学計算に用いる量子コンピュータの種類に応じて決定される必要がある。エンタングリングゲートの配置パターンは、上述したような方法によって決定される量子回路を、どのように量子コンピュータのハードウェアに当てはめるかを決定するためのものである。
【0052】
例えば、まず、古典コンピュータ110は、量子化学計算を計算させる量子コンピュータの種類(図3では「Connectivity of quantum device」と表記)を特定する。例えば、古典コンピュータ110は、ユーザから入力された量子コンピュータの情報に基づいて、量子化学計算をさせる量子コンピュータの種類を特定する。量子コンピュータの種類としては、例えば、超電導方式及びイオントラップ方式等が挙げられる。なお、量子化学計算を計算させる量子コンピュータには、古典コンピュータによる量子シミュレータが含まれていてもよい。古典コンピュータによる量子シミュレータとは、例えば、古典コンピュータ上で量子コンピュータの挙動を疑似的に再現したシミュレータである。そして、古典コンピュータ110は、量子コンピュータの種類に応じて、Ansatzのエンタングリングゲートの配置パターン(図3では「Pattern」と表記)を決定する。量子コンピュータの種類とエンタングリングゲートの配置パターンとは予め対応付けられている。このため、古典コンピュータ110は、量子コンピュータの種類に予め対応付けられているエンタングリングゲートの配置パターンを、利用対象のエンタングリングゲートの配置パターンとして決定する。
【0053】
古典コンピュータ110は、上述のように決定された、量子回路の深さ(図3では「Depth」と表記)と、Ansatzの要素の種類(図3では「Type」と表記)と、Ansatzのエンタングリングゲートの配置パターン(図3では「Pattern」と表記)とに応じて、量子回路を設定する(図3では「Build Quantum Circuit」と表記)。
【0054】
古典コンピュータ110による量子回路の設定は、量子コンピュータが量子計算を実行する際に用いられる量子回路を設定することに相当する。なお、量子回路を設定するということは、古典コンピュータ110が、量子コンピュータがどのように動作すべきかを決定することでもある。また、量子回路を設定するということは、古典コンピュータ110が、量子コンピュータの量子ビットに対する操作への命令を決定することでもある。なお、古典コンピュータ110による量子回路の設定には、量子回路に基づく各種情報を量子コンピュータに対して送信することも含まれる。後述するように、量子コンピュータは、このようにして古典コンピュータ110によって設定された量子回路に基づいて、量子計算を実行する。
【0055】
そして、古典コンピュータ110は、上記のようにして生成された量子回路を実行することを表す制御信号を量子コンピュータ120へ出力する。
【0056】
量子コンピュータ120の制御装置121は、古典コンピュータ110から出力された制御信号に応答して、量子コンピュータ120に当該量子回路に応じた量子化学計算を実行させる。そして、量子コンピュータ120の制御装置121は、量子化学計算の結果を古典コンピュータ110へ出力する。
【0057】
古典コンピュータ110は、量子回路に基づき計算された量子化学計算の結果を取得する。
【0058】
[実施形態のハイブリッドシステム100の動作]
【0059】
次に、実施形態のハイブリッドシステム100の具体的な動作について説明する。ハイブリッドシステム100の各装置において、図5に示される各処理が実行される。
【0060】
まず、ステップS100において、ユーザ端末130は、ユーザから入力された、計算対象に関する情報である計算対象情報と、計算方法に関する情報である計算方法情報とを、古典コンピュータ110へ送信する。
【0061】
計算対象情報には、例えば、分子情報(例えば、分子を構成する原子の種類、数、及び座標等)、基底関数系、量子化学計算の計算対象(例えば、基底又は励起等)、量子化学計算の要求精度、及び量子コンピュータ情報(例えば、ユーザが利用する量子コンピュータの種類又は擬似量子コンピュータの種類)等が含まれている。
【0062】
計算方法情報には、例えば、量子化学計算に用いられるアルゴリズムに関する情報が含まれている。量子化学計算に用いられるアルゴリズムとしては、例えば、その一例として、VQE(Variational Quantum Eigensolver)又はSSVQE(Subspace-search variational quantum eigensolver)といった各種のアルゴリズムが挙げられる。なお、量子化学計算に用いられるアルゴリズムとしては、VQE及びSSVQEに限定されるものではなく、他の様々なアルゴリズムを用いることが可能である。
【0063】
次に、ステップS102において、古典コンピュータ110は、ユーザ端末130から送信された計算対象情報及び計算方法情報を受信する。
【0064】
ステップS103において、古典コンピュータ110は、ステップS102で受信した計算方法情報に基づいて、量子化学計算に用いられるアルゴリズムを決定する。
【0065】
なお、本実施形態では、ユーザが量子化学計算アルゴリズムを決定する場合を例に説明するが、量子化学計算アルゴリズムは、ユーザが決定せずに、ユーザにより指定された計算対象から決定するようにしてもよい。例えば、計算対象と量子化学計算アルゴリズムとが関連付けられたテーブルが予め用意されており、計算対象と相性の良いアルゴリズムがレコメンドされるようにしてもよい。この場合には、レコメンドされた量子化学計算アルゴリズムからユーザが実際に用いる量子化学計算アルゴリズムを選択するようにしてもよい。
【0066】
ステップS104において、古典コンピュータ110は、上述したように、量子回路内の量子ゲートの集合を決定するための、Ansatzの種類(図3では「Type」と表記)を決定する。
【0067】
ステップS105において、古典コンピュータ110は、上述したように、ステップS102で取得した分子情報に基づいて分子軌道数を計算し、その分子軌道数に応じて量子ビット数を決定する。また、古典コンピュータ110は、上述したように、決定された量子ビット数と、統計パラメータと、ステップS102で取得した量子化学計算の要求精度に関するパラメータと、を予め生成された回帰式に入力することにより、量子回路の深さ(図3では「Depth」と表記)を算出する。
【0068】
ステップS106において、古典コンピュータ110は、上述したように、ステップS102で取得した量子コンピュータ情報に基づいて、エンタングリングゲートの配置パターン(図3では「Pattern」と表記)を決定する。
【0069】
ステップS107において、古典コンピュータ110は、ステップS104~ステップS106で設定された各種要素に基づいて、量子化学計算に用いられる量子回路を設定する(図3では「Build Quantum Circuit」と表記)。
【0070】
ステップS108において、古典コンピュータ110は、量子化学計算に必要な各種情報とステップS106で設定された量子回路を実行することを表す制御信号とを、量子コンピュータ120へ送信する。
【0071】
ステップS110において、量子コンピュータ120の制御装置121は、ステップS108で古典コンピュータ110から送信された各種情報と制御信号とを受信する。
【0072】
ステップS112において、制御装置121は、ステップS110で受信した各種情報に応じた量子化学計算を量子コンピュータ120に実行させる。
【0073】
具体的には、量子コンピュータ120は、制御装置121の制御に応じて、量子ビット群123のうちの少なくとも何れかの量子ビットへ照射するための電磁波を生成する。そして、量子コンピュータ120は、生成された電磁波を、量子ビット群123のうちの少なくとも何れかの量子ビットへ照射し、初期情報に応じた量子回路を実行する。量子回路に含まれる各量子ゲートのゲート操作は対応する電磁波波形へと変換され、生成された電磁波が電磁波生成装置122によって量子ビット群123に照射される。そして、量子コンピュータ120は、量子化学計算の結果を出力する。
【0074】
ステップS114において、制御装置121は、上記ステップS112で得られた結果を、古典コンピュータ110へ送信する。
【0075】
ステップS116において、古典コンピュータ110は、ステップS114で制御装置121から送信された結果を受信する。
【0076】
なお、ステップS108~ステップS116においては、古典コンピュータ110と量子コンピュータ120との間において量子回路に基づいた所定の繰り返し計算が実行され、それによって結果が得られる場合もある。
【0077】
ステップS118において、古典コンピュータ110は、ステップS116で得られた結果又はその結果を加工した結果を、ユーザ端末130へ送信する。
【0078】
ステップS120において、ユーザ端末130は、古典コンピュータ110から送信された結果を受信する。
【0079】
なお、ユーザ端末130は、量子化学計算の結果である物性値(例えば、エネルギーなど)及びコスト関数の履歴等を自らの表示部(図示省略)に表示させるようにしてもよい。また、ユーザ端末130は、量子化学計算の結果として、計算コスト又は計算ステップ数の見積結果等を表示部(図示省略)へ表示させるようにしてもよい。
【0080】
また、ユーザ端末130は、量子計算を実行する際に、必要となる量子ビット数、計算に要する時間、及び計算のサイクル数等の見積に関する情報を自らの表示部(図示省略)に表示させるようにしてもよい。この場合には、古典コンピュータ110は、予め用意されている見積用計算の実行(例えば、所定の繰り返し計算の実行)を量子コンピュータ120へ指示する。古典コンピュータ110は、量子コンピュータ120による繰り返し計算の記録(例えば、繰り返し計算に要した時間等)を取得する。そして、古典コンピュータ110は、繰り返し計算の記録を予め用意されている回帰式に当てはめ、量子コンピュータ120の性能を考慮して、実際の量子計算に要する時間を予測する。そして、古典コンピュータ110は、実際の量子計算に要する時間の予測結果をユーザ端末130へ送信する。なお、古典コンピュータ110は、量子コンピュータの性能と実際の量子計算に要する時間の予測結果とが対応付けられたテーブルを用意し、そのテーブルを参照することにより、お薦めの量子コンピュータをレコメンドするようにしてもよい。
【0081】
ユーザは、ユーザ端末130の表示部(図示省略)に表示された結果を確認する。
【0082】
以上説明したように、実施形態のハイブリッドシステムの古典コンピュータは、1又は複数のコンピュータプロセッサを備える情報処理装置であり、入力された分子に関する情報である分子情報を取得する。そして、古典コンピュータは、分子情報に基づいて、量子回路の深さを含む量子回路の要素を設定することにより、量子化学計算に用いられる量子回路を設定する。そして、古典コンピュータは、量子回路の要素が設定された量子回路に基づき計算された結果を取得する。これにより、量子コンピュータに量子化学計算を実行させる際に、量子回路を自動的に設定することができる。
【0083】
更に、ユーザが量子コンピュータに関する高度な知識を有していなくても、量子コンピュータを用いて量子化学計算を実行することが可能となる。
【0084】
また、量子コンピュータを用いて量子化学計算を実行する際に、量子ビット数と量子回路の深さとの間の比率が所定の比率となるように量子回路の深さを設定することにより、量子化学計算の精度と計算量とのバランスを最適化することが可能となる。
【0085】
また、量子ビット数と量子回路の深さとの間の比率に基づいて、量子回路の深さを設定することにより、量子回路の設定をある程度自動化することが可能となる。
【0086】
なお、本開示の技術は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【0087】
例えば、上記実施形態において、古典コンピュータ110と量子コンピュータ120との間の情報の送受信はどのようになされてもよい。例えば、古典コンピュータ110と量子コンピュータ120との間における、量子回路のパラメータの送受信及び測定結果の送受信等は、所定の計算が完了する毎に逐次送受信が行われてもよいし、全ての計算が完了した後に送受信が行われてもよい。
【0088】
また、上記実施形態では、回帰式を用いて量子回路の深さを決定する場合を例に説明したが、これに限定されるものではない。例えば、機械学習アルゴリズムにより生成された学習済みモデルを用いて、量子回路の深さを決定するようにしてもよい。この場合には、分子軌道数又は量子ビット数と量子化学計算の要求精度とが学習済みモデルへ入力されると、学習済みモデルは量子回路の深さを出力する。又は、例えば、分子軌道数又は量子ビット数と、量子化学計算の要求精度と、量子回路の深さとが予めテーブルによって対応付けられており、古典コンピュータ110は、そのテーブルを参照することにより、量子回路の深さを決定するようにしてもよい。
【0089】
また、上記実施形態では、ユーザ端末130から古典コンピュータ110へ計算対象情報が送信され、古典コンピュータ110が計算対象情報に応じた計算を実行する場合を例に説明したが、これに限定されるものではない。ユーザ端末130は、IPネットワークなどのコンピュータネットワークを介して古典コンピュータ110又は古典コンピュータ110がアクセス可能な記憶媒体又は記憶装置に計算対象情報を送信してもよいが、記憶媒体又は記憶装置に記憶して古典コンピュータ110の運営者に渡し、当該運営者が古典コンピュータ110に当該記憶媒体又は記憶装置を用いて計算対象情報を入力するようにしてもよい。
【0090】
また、上記実施形態では、電磁波の照射によって量子回路が実行される場合を例に説明したが、これに限定されるものではなく、異なる方式によって量子回路が実行されてもよい。
【0091】
また、上記実施形態では、量子コンピュータ120が量子化学計算を実行する場合を例に説明したが、これに限定されるものではない。例えば、量子コンピュータの挙動を模擬する古典コンピュータによって量子化学計算が実行されてもよい。
【0092】
また、上記実施形態では、異なる組織によって古典コンピュータ110及び量子コンピュータ120が管理されている場合を想定しているが、古典コンピュータ110及び量子コンピュータ120は同一の組織によって一体として管理されていてもよい。この場合には、量子化学計算情報の古典コンピュータ110から量子コンピュータ120への送信及び量子コンピュータ120から古典コンピュータ110への測定結果の送信は不要となる。また、この場合には、量子コンピュータ120の制御装置121において上述の説明における古典コンピュータ110の役割を担うことが考えられる。
【0093】
また、上記実施形態では、量子回路の深さは、量子回路を構成する量子ゲートの配置に基づいて定まる量子回路計算のステップ数である場合を例に説明したが、これに限定されるものではない。例えば、量子回路の深さは、量子回路の所定の量子ゲートにおける繰り返し計算数であってもよい。又は、所定の量子ゲートの塊を1つのユニットとし、そのユニットの数を、量子回路の深さとしてもよい。例えば、図6に示されているように、量子回路が、ユニットU1、ユニットU2、及びユニットU3により構成されている場合、ユニットU1の繰り返し数Dと、ユニットU2の数1と、ユニットU3の数1との総和であるD+2を量子回路の深さとしてもよい。なお、図6における、R,Rは、所定の回転ゲートを表す。
【0094】
なお、上記実施形態においては、「××のみに基づいて」、「××のみに応じて」、「××のみの場合」というように「のみ」との記載がなければ、本明細書においては、付加的な情報も考慮し得ることが想定されていることに留意されたい。一例として、「aの場合にbする」という記載は、明示した場合を除き、「aの場合に常にbする」ことを必ずしも意味しない。
【0095】
また、上記実施形態において、「最適化する」又は「最適化されたパラメータ」等の表現が用いられているが、これら「最適化」の表現は、最適な状態に近づけることを意味することに留意されたい。このため、ある関数が最小となるようなパラメータを得ようとする場合、当該関数を最適化して得られたパラメータは、当該関数が最小となるような大局解ではなく、局所解である場合も想定されることに留意されたい。
【0096】
また、何らかの方法、プログラム、端末、装置、サーバ又はシステム(以下「方法等」)において、本明細書で記述された動作と異なる動作を行う側面があるとしても、開示の技術の各態様は、本明細書で記述された動作の何れかと同一の動作を対象とするものであり、本明細書で記述された動作と異なる動作が存在することは、当該方法等を本開示の技術の各態様の範囲外とするものではない。
【0097】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータによって読み取り可能な記録媒体に格納して提供することも可能である。
【0098】
また、本実施形態のハイブリッドシステムの各構成要素は、単一のコンピュータ又はサーバによって実現しなければならないものではなく、ネットワークによって接続された複数のコンピュータに分散して実現されてもよい。
【0099】
例えば、上記各実施形態の古典コンピュータが実行する処理は、ネットワークによって接続された複数の古典コンピュータが分散して処理するようにしてもよい。又は、例えば、上記各実施形態の量子コンピュータが実行する処理は、ネットワークによって接続された複数の量子コンピュータが分散して処理するようにしてもよい。この場合には、少なくとも1以上の古典コンピュータと少なくとも1以上の量子コンピュータとによってハイブリッドシステムが構成される。
【符号の説明】
【0100】
100 ハイブリッドシステム
110 古典コンピュータ
111 通信部
112 処理部
113 情報記憶部
120 量子コンピュータ
121 制御装置
122 電磁波生成装置
123 量子ビット群
130 ユーザ端末
図1
図2
図3
図4
図5
図6