(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-10
(45)【発行日】2023-03-20
(54)【発明の名称】システム、情報処理方法及びプログラム
(51)【国際特許分類】
G06N 10/70 20220101AFI20230313BHJP
G06N 10/40 20220101ALI20230313BHJP
【FI】
G06N10/70
G06N10/40
(21)【出願番号】P 2021065713
(22)【出願日】2021-04-08
【審査請求日】2022-02-01
(73)【特許権者】
【識別番号】514053169
【氏名又は名称】株式会社メルカリ
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】永山 翔太
【審査官】山本 俊介
(56)【参考文献】
【文献】特表2020-533705(JP,A)
【文献】国際公開第2020/216578(WO,A1)
【文献】特表2020-530619(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 10/00-10/80
(57)【特許請求の範囲】
【請求項1】
システムであって、
それぞれ複数の物理量子ビットを備える複数の量子プロセッサを含み、
前記複数の量子プロセッサのうち第1群の量子プロセッサが、
前記複数の物理量子ビットによって少なくとも1つの論理量子ビットを構成し、
前記論理量子ビットに関するエラー検査を行い、
前記複数の量子プロセッサのうち第2群の量子プロセッサが、
前記複数の物理量子ビットによって少なくとも1つの論理量子ビットを構成し、
少なくとも前記第1群の量子プロセッサに関するエラー検査においてエラーが検出された場合に、前記第1群の量子プロセッサの量子状態と前記第2群の量子プロセッサの量子状態とをスワップし、
前記論理量子ビットに関するエラー検査を行う、
処理を実行する、システム。
【請求項2】
前記第1群の量子プロセッサに含まれる複数の物理量子ビットは、前記第1群の量子プロセッサにわたって結合され、
前記第2群の量子プロセッサに含まれる複数の物理量子ビットは、前記第2群の量子プロセッサにわたって結合されている、
請求項1に記載のシステム。
【請求項3】
前記エラー検査は、複数のエラーシンドローム測定を含み、
前記第1群の量子プロセッサにおける前記複数のエラーシンドローム測定の結果と、前記第2群の量子プロセッサにおける前記複数のエラーシンドローム測定の結果との比較に基づいて、前記複数のエラーシンドローム測定の結果を選択し、
選択された前記複数のエラーシンドローム測定の結果に基づいて、エラー訂正を行う、
請求項1又は2に記載のシステム。
【請求項4】
前記複数の量子プロセッサのうち第3群の量子プロセッサが、
前記複数の物理量子ビットにより少なくとも1つの論理量子ビットを構成し、
少なくとも前記第1群の量子ビットに関するエラー検査においてエラーが検出された場合に、前記第2群の量子プロセッサの量子状態と前記第3群の量子プロセッサの量子状態とのスワップを実行し、
前記論理量子ビットに関するエラー検査を実行する、
請求項1から3のいずれか一項に記載のシステム。
【請求項5】
それぞれ複数の物理量子ビットを備える複数の量子プロセッサを含むシステムが実行する情報処理方法であって、
前記複数の量子プロセッサのうち第1群の量子プロセッサが、
前記複数の物理量子ビットによって少なくとも1つの論理量子ビットを構成し、
前記論理量子ビットに関するエラー検査を行い、
前記複数の量子プロセッサのうち第2群の量子プロセッサが、
前記複数の物理量子ビットによって少なくとも1つの論理量子ビットを構成し、
少なくとも前記第1群の量子プロセッサに関するエラー検査においてエラーが検出された場合に、前記第1群の量子プロセッサの量子状態と前記第2群の量子プロセッサの量子状態とをスワップし、
前記論理量子ビットに関するエラー検査を行う、
情報処理方法。
【請求項6】
システムに含まれる、1つ又は複数のプロセッサに、
それぞれ複数の物理量子ビットを備える複数の量子プロセッサのうち第1群の量子プロセッサによって、
前記複数の物理量子ビットによって少なくとも1つの論理量子ビットを構成し、
前記論理量子ビットに関するエラー検査を行い、
前記複数の量子プロセッサのうち第2群の量子プロセッサによって、
前記複数の物理量子ビットによって少なくとも1つの論理量子ビットを構成し、
少なくとも前記第1群の量子プロセッサに関するエラー検査においてエラーが検出された場合に、前記第1群の量子プロセッサの量子状態と前記第2群の量子プロセッサの量子状態とをスワップし、
前記論理量子ビットに関するエラー検査を行う、
処理を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、システム、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
近年、量子エラー訂正が行える量子コンピュータの前段階に位置付けられるNISQ(Noisy Intermediate-Scale Quantum)デバイスが用いられている。また、多数の物理量子ビットによって一つの論理量子ビットを構成し、量子エラー訂正を行うための研究が行われている。
【0003】
例えば、下記特許文献1には、複数の量子プロセッサを接続して、表面符号によりエンコードされた一つの論理量子ビットを構成する研究が記載されている。
【先行技術文献】
【非特許文献】
【0004】
【文献】Ying Li and Simon C. Benjamin, "Hierarchical surface code for network quantum computing with modules of arbitrary size", Phys. Rev. A 94, 042303, 2016
【発明の概要】
【発明が解決しようとする課題】
【0005】
非特許文献1に記載の技術のように、複数の量子プロセッサを接続してスケーラブルな量子コンピュータを構成する場合、個々の量子プロセッサが適切に稼働することが前提となる。しかしながら、個々の量子プロセッサは、故障したり、マルウェアによる攻撃を受けたりして、意図しない動作をするおそれがある。
【0006】
そこで、本発明は、複数の量子プロセッサを接続して論理量子ビットを構成する場合に、不適切な動作が起こりづらいシステム、情報処理方法及びプログラムを提供する。
【課題を解決するための手段】
【0007】
本開示の一態様に係るシステムは、それぞれ複数の物理量子ビットを備える複数の量子プロセッサを含み、複数の量子プロセッサのうち第1群の量子プロセッサが、複数の物理量子ビットによって少なくとも1つの論理量子ビットを構成し、論理量子ビットに関するエラー検査を行い、複数の量子プロセッサのうち第2群の量子プロセッサが、複数の物理量子ビットによって少なくとも1つの論理量子ビットを構成し、少なくとも第1群の量子プロセッサに関するエラー検査においてエラーが検出された場合に、第1群の量子プロセッサの量子状態と第2群の量子プロセッサの量子状態とをスワップし、論理量子ビットに関するエラー検査を行う、処理を実行する。
【発明の効果】
【0008】
本発明によれば、複数の量子プロセッサを接続して論理量子ビットを構成する場合に、不適切な動作が起こりづらいシステム、情報処理方法及びプログラムを提供することができる。
【図面の簡単な説明】
【0009】
【
図1】本開示の実施形態に係るシステムの概要を示す図である。
【
図2】本実施形態に係る複数の量子プロセッサの一例を示す図である。
【
図3】本実施形態に係る第1群の量子プロセッサに生じるエラーの第1例を示す図である。
【
図4】第1群の量子プロセッサに生じるエラーの第2例を示す図である。
【
図5】本実施形態に係る第2群の量子プロセッサに生じるエラーの例を示す図である。
【
図6】従来の3次元トポロジカル符号の一例を示す図である。
【
図7】本実施形態の変形例に係る複数の量子プロセッサの一例を示す図である。
【
図8】本実施形態に係るクライアントコンピュータの構成を示す図である。
【
図9】本実施形態に係るサーバコンピュータの構成を示す図である。
【
図10】本実施形態に係るシステムにより実行される処理のフローチャートである。
【
図11】本実施形態に係るシステムにより実行される処理のフローチャートである。
【発明を実施するための形態】
【0010】
以下、本開示の実施形態について図面を参照しつつ詳細に説明する。なお、同一の要素には同一の符号を付し、重複する説明を省略する。
【0011】
本実施形態では、複数の量子プロセッサを接続して論理量子ビットを構成する場合に、第1群の量子プロセッサにおいてエラーが検出されても、第2群の量子プロセッサによって再度エラー検査を行い、不適切なエラー訂正が行われる確率を低減するシステム10について説明する。
【0012】
<システムの適用例>
図1は、本開示の実施形態に係るシステム10の概要を示す図である。システム10は、クライアントコンピュータ500、サーバコンピュータ600及び量子プロセッサ20を含む。クライアントコンピュータ500及びサーバコンピュータ600は、後に詳細に説明するように、汎用の古典コンピュータで構成される。量子プロセッサ20は、第1量子プロセッサ21、第2量子プロセッサ22及び第N量子プロセッサ29を含み(Nは3以上の自然数)、複数の物理量子ビットを備え、量子ビットに対してゲート操作を行うことで量子演算を行う量子コンピュータであってよい。量子プロセッサ20は、第1量子プロセッサ21、第2量子プロセッサ22及び第N量子プロセッサ29が備える複数の物理量子ビットによって少なくとも1つの論理量子ビットを構成し、当該論理量子ビットについてエラー検査及びエラー訂正を行いつつ、ゲート操作を行い、量子演算を行う。
【0013】
クライアントコンピュータ500は、インターネット等の通信ネットワークを介してサーバコンピュータ600と接続される。サーバコンピュータ600は、LAN(Local Area Network)等の通信ネットワークを介して量子プロセッサ20と接続される。クライアントコンピュータ500のユーザは、クライアントコンピュータ500を操作することで、間接的に量子プロセッサ20に指令を送り、量子プロセッサ20を用いて、量子演算を実行する。なお、システム10の構成は本適用例に示すものに限られず、例えば、量子プロセッサ20は、サーバコンピュータ600を介さずに、LAN等の通信ネットワークを介してクライアントコンピュータ500と接続されてもよい。
【0014】
図2は、本実施形態に係る複数の量子プロセッサの一例を示す図である。本例では、第1量子プロセッサ21、第2量子プロセッサ22、第3量子プロセッサ23及び第4量子プロセッサ24を示しているが、複数の量子プロセッサの数はこれに限定されない。
【0015】
第1量子プロセッサ21、第2量子プロセッサ22、第3量子プロセッサ23及び第4量子プロセッサ24は、それぞれ複数の物理量子ビットを備える。本実施形態に係る複数の量子プロセッサは、トポロジカル表面符号によって符号化された論理量子ビットを用いて、エラー検査、エラー訂正及び量子演算を行う。そのため、複数の物理量子ビットは、データ量子ビット20aと、Z測定量子ビット20bと、X測定量子ビット20cとを含む。
【0016】
第1量子プロセッサ21、第2量子プロセッサ22、第3量子プロセッサ23及び第4量子プロセッサ24は、第1群の量子プロセッサの例であり、第1量子プロセッサ21、第2量子プロセッサ22、第3量子プロセッサ23及び第4量子プロセッサ24に含まれる複数の物理量子ビットによって1つの論理量子ビットを構成する。第1量子プロセッサ21、第2量子プロセッサ22、第3量子プロセッサ23及び第4量子プロセッサ24の周縁に配置されるZ測定量子ビット20b及びX測定量子ビット20cは、隣接するプロセッサにまたがって配置される。例えば、第1量子プロセッサ21の右端に配置されるZ測定量子ビット20b及びX測定量子ビット20cと、第2量子プロセッサ22の左端に配置されるZ測定量子ビット20b及びX測定量子ビット20cとは、第1量子プロセッサ21及び第2量子プロセッサ22にまたがって配置される。第1群の量子プロセッサに含まれる複数の物理量子ビットは、第1群の量子プロセッサにわたって結合されている。
【0017】
第1量子プロセッサ21、第2量子プロセッサ22、第3量子プロセッサ23及び第4量子プロセッサ24は、論理量子ビットに関するエラー検査を行う。エラー検査は、複数のエラーシンドローム測定を含む。具体的には、エラーシンドローム測定は、全てのZ測定量子ビット20b及びX測定量子ビット20cを測定し、そのパリティを検査することで行われてよい。パリティの偶奇が反転する箇所がある場合、Zエラー又はXエラーが存在する。
【0018】
図3は、本実施形態に係る第1群の量子プロセッサに生じるエラーの第1例を示す図である。同図では、第1群の量子プロセッサ(第1量子プロセッサ21、第2量子プロセッサ22、第3量子プロセッサ23及び第4量子プロセッサ24)を模式的に示しており、エラーが生じている複数のデータ量子ビットをエラー量子ビットE1として示し、Z測定量子ビット又はX測定量子ビットのパリティが反転している第1反転箇所P1として示している。
【0019】
本例では、第3量子プロセッサ23がマルウェア等によって不適切な動作をしており、実際には第3量子プロセッサ23にエラーが生じていないが、偽の情報として第2反転箇所P2をシステム10に通知する。このため、システム10は、第1反転箇所P1及び第2反転箇所P2に挟まれる区間にエラーが生じていると仮定して、エラー訂正を試みる。すなわち、システム10は、第3量子プロセッサ23及び第4量子プロセッサ24にまたがるように、第1反転箇所P1及び第2反転箇所P2に挟まれる区間のデータ量子ビットにXオペレータ又はZオペレータを作用させる。
【0020】
図4は、第1群の量子プロセッサに生じるエラーの第2例を示す図である。同図では、実際に生じているエラー量子ビットE1と、第1反転箇所P1及び第2反転箇所P2に挟まれる区間のデータ量子ビットに対してエラー訂正を行った区間O1とを示している。ここで、マルウェア等によって不適切な動作をしている第3量子プロセッサ23は、区間O2について、区間O1と同様のオペレータを作用させる。これにより、第3量子プロセッサ23及び第4量子プロセッサ24を横断するようにXオペレータ又はZオペレータが作用され、論理量子ビットに対してX演算又はZ演算が行われることになる。このようにして、第1群の量子プロセッサのうち第3量子プロセッサ23のみがマルウェア等によって不適切な動作をするだけで、論理量子ビットに対して意図しない量子演算が行われることになる。
【0021】
図5は、本実施形態に係る第2群の量子プロセッサに生じるエラーの例を示す図である。本実施形態に係るシステム10では、複数の量子プロセッサのうち一部の量子プロセッサがマルウェア等によって不適切な動作をする場合であっても、論理量子ビットに対して意図しない量子演算が行われないように、二重以上のエラー検査を行う。
【0022】
図5では、第5量子プロセッサ25、第6量子プロセッサ26、第7量子プロセッサ27及び第8量子プロセッサ28を模式的に示している。第5量子プロセッサ25、第6量子プロセッサ26、第7量子プロセッサ27及び第8量子プロセッサ28は、第2群の量子プロセッサの例であり、第5量子プロセッサ25、第6量子プロセッサ26、第7量子プロセッサ27及び第8量子プロセッサ28に含まれる複数の物理量子ビットによって1つの論理量子ビットを構成する。第5量子プロセッサ25、第6量子プロセッサ26、第7量子プロセッサ27及び第8量子プロセッサ28の周縁に配置されるZ測定量子ビット及びX測定量子ビットは、隣接するプロセッサにまたがって配置される。例えば、第5量子プロセッサ25の右端に配置されるZ測定量子ビット及びX測定量子ビットと、第6量子プロセッサ26の左端に配置されるZ測定量子ビット及びX測定量子ビットとは、第5量子プロセッサ25及び第6量子プロセッサ26にまたがって配置される。第2群の量子プロセッサに含まれる複数の物理量子ビットは、第2群の量子プロセッサにわたって結合されている。
【0023】
本実施形態に係るシステム10は、少なくとも第1群の量子プロセッサに関するエラー検査においてエラーが検出された場合に、第1群の量子プロセッサの量子状態と第2群の量子プロセッサの量子状態とをスワップし、第2群の量子プロセッサによって構成される論理量子ビットに関するエラー検査を行う。第2群の量子プロセッサには、マルウェア等によって不適切な動作をする量子プロセッサが含まれない場合、第2群の量子プロセッサによって構成される論理量子ビットに関してエラー検査を行うと、第1反転箇所P1のみが検出される。
【0024】
システム10は、第1群の量子プロセッサにおける複数のエラーシンドローム測定の結果と、第2群の量子プロセッサにおける複数のエラーシンドローム測定の結果との比較に基づいて、複数のエラーシンドローム測定の結果を選択し、選択された複数のエラーシンドローム測定の結果に基づいて、エラー訂正を行う。例えば、システム10は、第1群の量子プロセッサにおける複数のエラーシンドローム測定の結果と、第2群の量子プロセッサにおける複数のエラーシンドローム測定の結果との両方に含まれるエラーシンドローム測定の結果に基づいて、エラー訂正を行ってよい。
【0025】
本例の場合、第1反転箇所P1が第1群の量子プロセッサにおける複数のエラーシンドローム測定の結果及び第2群の量子プロセッサにおける複数のエラーシンドローム測定の結果に含まれている。そこで、システム10は、エラー量子ビットE1に対してXオペレータ又はZオペレータを作用させてエラー訂正を行う。これにより、実際にエラーが生じているエラー量子ビットE1を適切に訂正することができる。換言すると、本実施形態に係るシステム10によれば、ビザンチン・フォルトトレランス性を有する量子プロセッサが得られる。
【0026】
システム10は、第1群の量子プロセッサ及び第2群の量子プロセッサだけでなく、第3群の量子プロセッサを用いてエラー検査を行ってもよい。その場合、第3群の量子プロセッサが、複数の物理量子ビットにより少なくとも1つの論理量子ビットを構成し、少なくとも第1群の量子ビットに関するエラー検査においてエラーが検出された場合に、第2群の量子プロセッサの量子状態と第3群の量子プロセッサの量子状態とのスワップを実行する。そして、第3群の量子プロセッサは、論理量子ビットに関するエラー検査を実行する。
【0027】
システム10は、第1群の量子プロセッサにおける複数のエラーシンドローム測定の結果と、第2群の量子プロセッサにおける複数のエラーシンドローム測定の結果と、第3群の量子プロセッサにおける複数のエラーシンドローム測定の結果との多数決によってエラーシンドローム測定の結果を選択し、エラー訂正を行ってよい。また、システム10は、第1群の量子プロセッサにおける複数のエラーシンドローム測定の結果と、第2群の量子プロセッサにおける複数のエラーシンドローム測定の結果と、第3群の量子プロセッサにおける複数のエラーシンドローム測定の結果との全てに含まれるエラーシンドローム測定の結果に基づいて、エラー訂正を行ってよい。このように、3群以上の量子プロセッサを用いることで、複数の量子プロセッサを接続して論理量子ビットを構成する場合に、不適切な動作がさらに起こりづらくなる。
【0028】
ここまで、2次元的に配置される物理量子ビットによってトポロジカル表面符号の論理量子ビットを構成し、エラー検査、エラー訂正及び量子演算を行う例について説明したが、本実施形態に係る量子プロセッサは、このような例に限定されない。以下では、本実施形態の変形例として、3次元的に配置される物理量子ビットによって論理量子ビットを構成し、エラー検査、エラー訂正及び量子演算を行う例について説明する。
【0029】
図6は、従来の3次元トポロジカル符号の一例を示す図である。同図では、Benjamin J. Brown, Naomi H. Nickerson and Dan E. Browne, "Fault-tolerant error correction with the gauge color code", Nature Communications volume 7, 12302, 2016に記載されている3次元トポロジカル符号の例を示している。
【0030】
本例の量子符号は、複数の物理量子ビットにより構成され、複数のデータ量子ビット30aと、複数のデータ量子ビット30aが6面体(立方体)の頂点に配置されて構成される第1Xエラーシンドローム測定量子ビット30bと、複数のデータ量子ビット30aが18面体(立方体)の頂点に配置されて構成される第2Xエラーシンドローム測定量子ビット30c、6面体の各面に構成される第1Zエラーシンドローム測定量子ビット30d、18面体の各面に構成される第2Zエラーシンドローム測定量子ビット30eとを含む。
【0031】
本例の量子符号におけるエラー検査は、複数のエラーシンドローム測定を含む。具体的には、エラーシンドローム測定は、全ての第1Xエラーシンドローム測定量子ビット30b、第2Xエラーシンドローム測定量子ビット30c、第1Zエラーシンドローム測定量子ビット30d及び第2Zエラーシンドローム測定量子ビット30eを測定し、そのパリティを検査することで行われてよい。パリティの偶奇が反転する箇所がある場合、Zエラー又はXエラーが存在する。
【0032】
図7は、本実施形態の変形例に係る複数の量子プロセッサの一例を示す図である。本変形例に係る量子プロセッサ30は、第1量子プロセッサ31、第2量子プロセッサ32、第3量子プロセッサ33、第4量子プロセッサ34、第5量子プロセッサ35、第6量子プロセッサ36、第7量子プロセッサ37及び第8量子プロセッサ38を含む。なお、複数の量子プロセッサの数はこれに限定されない。また、第8量子プロセッサ38は第6量子プロセッサ36の後方に配置されているため、図示されていない。
【0033】
第1量子プロセッサ31、第2量子プロセッサ32、第3量子プロセッサ33、第4量子プロセッサ34、第5量子プロセッサ35、第6量子プロセッサ36、第7量子プロセッサ37及び第8量子プロセッサ38は、それぞれ複数の物理量子ビットを備える。本変形例に係る複数の量子プロセッサは、3次元トポロジカル符号によって符号化された論理量子ビットを用いて、エラー検査、エラー訂正及び量子演算を行う。そのため、複数の物理量子ビットは、データ量子ビット30aと、第1Xエラーシンドローム測定量子ビット30bと、第2Xエラーシンドローム測定量子ビット30cと、第1Zエラーシンドローム測定量子ビット30d及び第2Zエラーシンドローム測定量子ビット30eとを含む。
【0034】
第1量子プロセッサ31、第2量子プロセッサ32、第3量子プロセッサ33、第4量子プロセッサ34、第5量子プロセッサ35、第6量子プロセッサ36、第7量子プロセッサ37及び第8量子プロセッサ38は、第1群の量子プロセッサの例であり、第1量子プロセッサ31、第2量子プロセッサ32、第3量子プロセッサ33、第4量子プロセッサ34、第5量子プロセッサ35、第6量子プロセッサ36、第7量子プロセッサ37及び第8量子プロセッサ38に含まれる複数の物理量子ビットによって1つの論理量子ビットを構成する。第1量子プロセッサ31、第2量子プロセッサ32、第3量子プロセッサ33、第4量子プロセッサ34、第5量子プロセッサ35、第6量子プロセッサ36、第7量子プロセッサ37及び第8量子プロセッサ38の周縁に配置される第1Xエラーシンドローム測定量子ビット30b、第2Xエラーシンドローム測定量子ビット30c、第1Zエラーシンドローム測定量子ビット30d及び第2Zエラーシンドローム測定量子ビット30eは、隣接するプロセッサにまたがって配置される。例えば、第1量子プロセッサ31の周縁に配置される第1Xエラーシンドローム測定量子ビット30b及び第2Xエラーシンドローム測定量子ビット30cと、第2量子プロセッサ32の周縁に配置される第1Xエラーシンドローム測定量子ビット30b及び第2Xエラーシンドローム測定量子ビット30cとは、第1量子プロセッサ31及び第2量子プロセッサ32にまたがってパリティを検査する。第1群の量子プロセッサに含まれる複数の物理量子ビットは、第1群の量子プロセッサにわたって結合されている。
【0035】
第1量子プロセッサ31、第2量子プロセッサ32、第3量子プロセッサ33、第4量子プロセッサ34、第5量子プロセッサ35、第6量子プロセッサ36、第7量子プロセッサ37及び第8量子プロセッサ38は、論理量子ビットに関するエラー検査を行う。エラー検査は、複数のエラーシンドローム測定を含む。具体的には、エラーシンドローム測定は、全ての第1Xエラーシンドローム測定量子ビット30b、第2Xエラーシンドローム測定量子ビット30c、第1Zエラーシンドローム測定量子ビット30d及び第2Zエラーシンドローム測定量子ビット30eを測定し、そのパリティを検査することで行われてよい。パリティの偶奇が反転する箇所がある場合、Zエラー又はXエラーが存在する。
【0036】
本変形例に係るシステムは、第1群の量子プロセッサ(第1量子プロセッサ31、第2量子プロセッサ32、第3量子プロセッサ33、第4量子プロセッサ34、第5量子プロセッサ35、第6量子プロセッサ36、第7量子プロセッサ37及び第8量子プロセッサ38)と同様の構成を有する第2群の量子プロセッサを含む。本変形例に係るシステムは、少なくとも第1群の量子プロセッサに関するエラー検査においてエラーが検出された場合に、第1群の量子プロセッサの量子状態と第2群の量子プロセッサの量子状態とをスワップし、第2群の量子プロセッサによって構成される論理量子ビットに関するエラー検査を行う。本変形例に係るシステムは、第1群の量子プロセッサにおける複数のエラーシンドローム測定の結果と、第2群の量子プロセッサにおける複数のエラーシンドローム測定の結果との比較に基づいて、複数のエラーシンドローム測定の結果を選択し、選択された複数のエラーシンドローム測定の結果に基づいて、エラー訂正を行う。例えば、システムは、第1群の量子プロセッサにおける複数のエラーシンドローム測定の結果と、第2群の量子プロセッサにおける複数のエラーシンドローム測定の結果との両方に含まれるエラーシンドローム測定の結果に基づいて、エラー訂正を行ってよい。これにより、実際にエラーが生じているエラー量子ビットを適切に訂正することができ、ビザンチン・フォルトトレランス性を有する量子プロセッサが得られる。
【0037】
本変形例に係るシステムは、第1群の量子プロセッサ及び第2群の量子プロセッサだけでなく、第3群の量子プロセッサを用いてエラー検査を行ってもよい。その場合、第3群の量子プロセッサが、複数の物理量子ビットにより少なくとも1つの論理量子ビットを構成し、少なくとも第1群の量子ビットに関するエラー検査においてエラーが検出された場合に、第2群の量子プロセッサの量子状態と第3群の量子プロセッサの量子状態とのスワップを実行する。そして、第3群の量子プロセッサは、論理量子ビットに関するエラー検査を実行する。
【0038】
本変形例に係るシステムは、第1群の量子プロセッサにおける複数のエラーシンドローム測定の結果と、第2群の量子プロセッサにおける複数のエラーシンドローム測定の結果と、第3群の量子プロセッサにおける複数のエラーシンドローム測定の結果との多数決によってエラーシンドローム測定の結果を選択し、エラー訂正を行ってよい。また、システムは、第1群の量子プロセッサにおける複数のエラーシンドローム測定の結果と、第2群の量子プロセッサにおける複数のエラーシンドローム測定の結果と、第3群の量子プロセッサにおける複数のエラーシンドローム測定の結果との全てに含まれるエラーシンドローム測定の結果に基づいて、エラー訂正を行ってよい。このように、3群以上の量子プロセッサを用いることで、複数の量子プロセッサを接続して論理量子ビットを構成する場合に、不適切な動作がさらに起こりづらくなる。
【0039】
<構成の一例>
図8は、ある実施形態に係るクライアントコンピュータ500を示すブロック図である。クライアントコンピュータ500は典型的には、1つ又は複数の処理装置(CPU)502、1つ又は複数のネットワーク又は他の通信インタフェース508、メモリ504、及びこれらの構成要素を相互接続するための1つ又は複数の通信バス514を含む。
【0040】
クライアントコンピュータ500はまた、ディスプレイ装置510及びキーボード及び/又はマウス(又は他の何らかのポインティングデバイス)512を備えるユーザインタフェース506も含み得る。
【0041】
メモリ504は、例えば、DRAM、SRAM、DDR RAM又は他のランダムアクセス固体記憶装置などの高速ランダムアクセスメモリであり、また、1つ又は複数の磁気ディスク記憶装置、光ディスク記憶装置、フラッシュメモリデバイス、又は他の不揮発性固体記憶装置などの不揮発性メモリでもよい。
【0042】
また、メモリ504の他の例として、CPU502から遠隔に設置される1つ又は複数の記憶装置でもよい。ある実施形態において、メモリ504は次のプログラム、モジュール及びデータ構造、又はそれらのサブセットを格納する。
【0043】
オペレーティングシステム516は、例えば、様々な基本的なシステムサービスを処理するとともにハードウェアを用いてタスクを実行するためのプロシージャを含む。
【0044】
ネットワーク通信モジュール518は、例えば、クライアントコンピュータ500を他のコンピュータに、1つ又は複数のネットワーク通信インタフェース508及び、インターネット、他の広域ネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどの1つ又は複数の通信ネットワークを介して接続するために使用される。
【0045】
量子プロセッサ制御モジュール520は、例えば、量子プロセッサ20によって論理量子ビットを構成するための情報及びエラー検査を行うための情報の入力をキーボード及び/又はマウス512により受け付けて、サーバコンピュータ600に送信する。量子プロセッサ制御モジュール520は、第1群の量子プロセッサによって構成される論理量子ビットに関するエラー検査を行い、少なくとも第1群の量子ビットに関するエラー検査においてエラーが検出された場合に、第1群の量子プロセッサの量子状態と第2群の量子プロセッサの量子状態とをスワップし、第2群の量子プロセッサによって構成される論理量子ビットに関するエラー検査を行った結果を、サーバコンピュータ600を介して量子プロセッサ20から取得したり、サーバコンピュータ600を介さずに量子プロセッサ20から直接取得したりする。
【0046】
クライアントアプリケーション530は、例えば、ウェブブラウザなどを含む。
【0047】
1つ又は複数の処理装置(CPU)502は、メモリ504から、必要に応じて各モジュールを読み出して実行する。例えば、1つ又は複数の処理装置(CPU)502は、メモリ504に格納されているネットワーク通信モジュール518を実行することで、通信部を構成してもよい。また、1つ又は複数の処理装置(CPU)502は、メモリ504に格納されている量子プロセッサ制御モジュール520を実行することで、量子プロセッサ制御部を構成してもよい。ここで、量子プロセッサ制御部は、CPU502の内部に構成してよい。
【0048】
他の実施形態において、量子プロセッサ制御モジュール520は、クライアントコンピュータ500のメモリ504に格納されるスタンドアロンアプリケーションであってもよい。スタンドアロンアプリケーションとしては、限定はされないが、量子プロセッサ制御アプリケーションが挙げられる。さらに他の実施形態において、量子プロセッサ制御モジュール520は別のアプリケーションへのアドオン又はプラグインであってもよい。例えば、量子プロセッサ制御モジュール520は、ウェブブラウザアプリケーション又は電子メールアプリケーションへのプラグインであってもよい。
【0049】
ある実施形態において、受信されたデータ項目はメモリ504に局所的にキャッシュされ得る。同様に、量子プロセッサ20による演算結果は、メモリ504に局所的にキャッシュされ得る。
【0050】
上記に示した要素の各々は、先述の記憶装置の1つ又は複数に格納され得る。上記に示したモジュールの各々は、上述される機能を実行するための命令のセットに対応する。上記に示したモジュール又はプログラム(すなわち、命令のセット)は別個のソフトウェアプログラム、プロシージャ又はモジュールとして実装される必要はないとともに、従ってこれらのモジュールの様々なサブセットは様々な実施形態で組み合わされるか、或いは再構成されてもよい。ある実施形態において、メモリ504は上記に示されるモジュール及びデータ構造のサブセットを格納し得る。さらには、メモリ504は上述されない追加的なモジュール及びデータ構造を格納し得る。
【0051】
図9は、ある実施形態に係るサーバコンピュータ600を示すブロック図である。サーバコンピュータ600は典型的には、1つ又は複数の処理装置(CPU)602、1つ又は複数のネットワーク又は他の通信インタフェース608、メモリ604、及びこれらの構成要素を相互接続するための1つ又は複数の通信バス610を含む。
【0052】
サーバコンピュータ600は場合によりユーザインタフェース606を含んでもよく、これとしては、ディスプレイ装置(図示せず)、及びキーボード及び/又はマウス(図示せず)を挙げることができる。
【0053】
メモリ604は、例えば、DRAM、SRAM、DDR RAM又は他のランダムアクセス固体記憶装置などの高速ランダムアクセスメモリであり、また、1つ又は複数の磁気ディスク記憶装置、光ディスク記憶装置、フラッシュメモリデバイス、又は他の不揮発性固体記憶装置などの不揮発性メモリでもよい。
【0054】
また、メモリ604の他の例は、CPU602から遠隔に設置される1つ又は複数の記憶装置を挙げることができる。ある実施形態において、メモリ604は次のプログラム、モジュール及びデータ構造、又はそれらのサブセットを格納する。
【0055】
オペレーティングシステム612は、例えば、様々な基本的なシステムサービスを処理するとともにハードウェアを用いてタスクを実行するためのプロシージャを含む。
【0056】
ネットワーク通信モジュール614は、例えば、サーバコンピュータ600を他のコンピュータに、1つ又は複数のネットワーク通信インタフェース608及びインターネット、他の広域ネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどの1つ又は複数の通信ネットワークを介して接続するために使用される。
【0057】
量子プロセッサ制御モジュール616は、例えば、量子プロセッサ20によって論理量子ビットを構成するための情報及びエラー検査を行うための情報をクライアントコンピュータ500から受信し、量子プロセッサ20を制御する。量子プロセッサ制御モジュール616は、第1群の量子プロセッサによって構成される論理量子ビットに関するエラー検査を行い、少なくとも第1群の量子ビットに関するエラー検査においてエラーが検出された場合に、第1群の量子プロセッサの量子状態と第2群の量子プロセッサの量子状態とをスワップし、第2群の量子プロセッサによって構成される論理量子ビットに関するエラー検査を行った結果を、量子プロセッサ20から取得する。
【0058】
上記に示した要素の各々は先述される記憶装置の1つ又は複数に格納され得る。上記に示したモジュールの各々は、上述される機能を実行するための命令のセットに対応する。上記に示したモジュール又はプログラム(すなわち、命令のセット)は別個のソフトウェアプログラム、プロシージャ又はモジュールとして実装される必要はないとともに、従ってこれらのモジュールの様々なサブセットが様々な実施形態で組み合わされるか、或いは再構成され得る。ある実施形態において、メモリ604は上記に示されるモジュール及びデータ構造のサブセットを格納し得る。さらには、メモリ604は上述されない追加的なモジュール及びデータ構造を格納し得る。
【0059】
図9は「サーバコンピュータ」を示すが、
図9は、本明細書に記載される実施形態の構造的な概略としてよりも、サーバのセットに存在し得る様々な特徴についての説明が意図されている。実際には、及び当業者により認識されるとおり、別個に示される項目が組み合わされ得るであろうとともに、ある項目が別個にされ得るであろう。例えば、
図9において別個に示される項目は単一サーバ上に実装され得るであろうとともに、単一の項目が1台又は複数のサーバにより実装され得るであろう。
【0060】
<動作説明>
次に、本実施形態に係るシステム10の動作について説明する。
図10及び11は、本実施形態に係るシステム10の処理の一例を示すフローチャートである。
【0061】
(ステップS10)
システム10は、はじめに、第1群の量子プロセッサに含まれる複数の物理量子ビットで構成された論理量子ビットについてエラー検査を実行する。
【0062】
(ステップS11)
システム10は、エラーが検出されない場合、ステップS10の処理を再び実行する。一方、システム10は、エラーが検出された場合、ステップS12を実行する。
【0063】
(ステップS12)
システム10は、第1群の量子プロセッサの量子状態と第2群の量子プロセッサの量子状態とをスワップする。
【0064】
(ステップS13)
その後、システム10は、第2群の量子プロセッサに含まれる複数の物理量子ビットで構成された論理量子ビットについてエラー検査を実行する。
【0065】
(ステップS14)
システム10は、エラーが検出されない場合、ステップS11においてエラーが検出されていても、エラー訂正せずに処理を終了する。一方、第2群の量子プロセッサについてもエラーが検出された場合、ステップS15を実行する。
【0066】
(ステップS15)
システム10は、複数の物理量子ビットについてエラー訂正を実行する。
【0067】
これにより、本実施形態に係るシステム10は、複数の量子プロセッサを接続して論理量子ビットを構成する場合に、一部の量子プロセッサが不適切な動作をしても、全体として不適切な動作が起こる確率を低減させることができる。
【0068】
(ステップS20)
システム10は、第1群の量子プロセッサに含まれる複数の物理量子ビットで構成された論理量子ビットについてエラー検査を実行する。
【0069】
(ステップS21)
システム10は、エラーが検出されない場合、ステップS20の処理を再び実行する。一方、システム10は、エラーが検出された場合、ステップS22を実行する。
【0070】
(ステップS22)
システム10は、第1群の量子プロセッサの量子状態と第2群の量子プロセッサの量子状態とをスワップする。
【0071】
(ステップS23)
システム10は、第2群の量子プロセッサに含まれる複数の物理量子ビットで構成された論理量子ビットについてエラー検査を実行する。
【0072】
(ステップS24)
さらに、システム10は、第2群の量子プロセッサの量子状態と第3群の量子プロセッサの量子状態とをスワップする。
【0073】
(ステップS25)
そして、システム10は、第3群の量子プロセッサに含まれる複数の物理量子ビットで構成された論理量子ビットについてエラー検査を実行する。
【0074】
(ステップS26)
システム10は、第1群の量子プロセッサ、第2群の量子プロセッサ及び第3群の量子プロセッサによるエラー検査の結果に関する多数決によりエラーが検出されない場合、ステップS21においてエラーが検出されていても、エラー訂正せずに処理を終了する。一方、多数決によりエラーが検出された場合、ステップS27を実行する。
【0075】
(ステップS27)
システム10は、複数の物理量子ビットについてエラー訂正を実行する。
【0076】
これにより、本実施形態に係るシステム10は、複数の量子プロセッサを接続して論理量子ビットを構成する場合に、一部の量子プロセッサが不適切な動作をしても、全体として不適切な動作が起こる確率をより低減させることができる。
【0077】
なお、開示技術は、上述した各実施形態に限定されるものではなく、開示技術の要旨を逸脱しない範囲内において、他の様々な形で実施することができる。このため、上記各実施形態はあらゆる点で単なる例示にすぎず、限定的に解釈されるものではない。例えば、上述した各処理ステップは処理内容に矛盾を生じない範囲で任意に順番を変更し、または並列に実行することができる。
【0078】
本開示の実施形態のプログラムは、コンピュータに読み取り可能な記憶媒体に記憶された状態で提供されてもよい。 記憶媒体は、「一時的でない有形の媒体」に、プログラムを記憶可能である。プログラムは、限定でなく例として、ソフトウェアプログラムやコンピュータプログラムを含む。
【符号の説明】
【0079】
10…システム、20,30…量子プロセッサ、20a,30a…データ量子ビット、20b…Z測定量子ビット、20c…X測定量子ビット、21,31…第1量子プロセッサ、22,32…第2量子プロセッサ、23,33…第3量子プロセッサ、24,34…第4量子プロセッサ、25,35…第5量子プロセッサ、26,36…第6量子プロセッサ、27,37…第7量子プロセッサ、28,38…第8量子プロセッサ、29…第N量子プロセッサ、30b…第1Xエラーシンドローム測定量子ビット、30c…第2Xエラーシンドローム測定量子ビット、30d…第1Zエラーシンドローム測定量子ビット、30e…第2Zエラーシンドローム測定量子ビット、500…クライアントコンピュータ、502…CPU、504…メモリ、506…ユーザインタフェース、508…ネットワーク通信インタフェース、510…ディスプレイ、512…キーボード/マウス、514…通信バス、516…オペレーティングシステム、518…ネットワーク通信モジュール、520…量子プロセッサ制御モジュール、530…クライアントアプリケーション、600…サーバコンピュータ、602…CPU、604…メモリ、606…ユーザインタフェース、608…ネットワーク通信インタフェース、610…通信バス、612…オペレーティングシステム、614…ネットワーク通信モジュール、616…量子プロセッサ制御モジュール