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

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

▶ 日本電信電話株式会社の特許一覧

特開2024-124961スケジューリング装置、スケジューリング方法及びプログラム
<>
  • 特開-スケジューリング装置、スケジューリング方法及びプログラム 図1
  • 特開-スケジューリング装置、スケジューリング方法及びプログラム 図2
  • 特開-スケジューリング装置、スケジューリング方法及びプログラム 図3
  • 特開-スケジューリング装置、スケジューリング方法及びプログラム 図4
  • 特開-スケジューリング装置、スケジューリング方法及びプログラム 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024124961
(43)【公開日】2024-09-13
(54)【発明の名称】スケジューリング装置、スケジューリング方法及びプログラム
(51)【国際特許分類】
   G06N 10/60 20220101AFI20240906BHJP
【FI】
G06N10/60
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023032980
(22)【出願日】2023-03-03
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110004381
【氏名又は名称】弁理士法人ITOH
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100124844
【弁理士】
【氏名又は名称】石原 隆治
(72)【発明者】
【氏名】鈴木 泰成
(72)【発明者】
【氏名】徳永 裕己
(72)【発明者】
【氏名】浜田 航宇
(57)【要約】      (修正有)
【課題】格子手術のスケジュールを最適化するスケジューリング装置、スケジューリング方法及びプログラムを提供する。
【解決手段】誤り耐性量子計算装置において、制御装置のスケジューリング処理部は、論理量子ビットが配置可能なセルのサイズ、論理量子ビットが配置されているセルのリスト及び複数の格子手術の命令列とを入力する入力部と、前記セルのサイズの二次元グリッド平面に対して時間方向の軸を加えて拡張した三次元空間内において、所定の制約条件の下で経路探索により、格子手術の命令に含まれる始点及び終点間の経路を計算する経路計算部と、前記経路が所定の条件を満たす場合は、最適な経路を始点及び終点間の経路と等しくし、満たさない場合は、始点及び終点間の経路を前記条件を満たすように調整した調整後経路とする経路設定部と、格子手術を実行する量子プロセッサに対する制御命令として経路列をスケジューリングする出力部と、を有する。
【選択図】図3
【特許請求の範囲】
【請求項1】
論理量子ビットが配置可能なセルのサイズwと、前記論理量子ビットが配置されているセルのリストPと、m個の格子手術の命令列(O,・・・,Om-1)とを入力する入力部と、
前記論理量子ビットが配置されるサイズwの二次元グリッド平面に対して時間方向の軸を加えて拡張した三次元空間内において、所定の制約条件の下で経路探索により、前記格子手術の命令O(a∈{0,・・・,m-1})に含まれる始点及び終点間の経路ωを計算する経路計算部と、
前記経路ωが所定の条件を満たす場合はW'=ω、前記経路ωが前記条件を満たさない場合は前記経路ωが前記条件を満たすように調整した調整後経路ω'をW'=ω'として設定する経路設定部と、
前記格子手術を実行する量子プロセッサに対する制御命令として経路列(W',・・・,Wm-1')をスケジューリングする出力部と、
を有するスケジューリング装置。
【請求項2】
前記経路計算部は、
前記始点に配置されている第1の論理量子ビットの(x,y)座標と前記第1の論理量子ビットが最後に利用された時刻を示すz座標とを持つ点を始点p'、前記終点に配置されている第2の論理量子ビットの(x,y)座標と前記第2の論理量子ビットが最後に利用された時刻を示すz座標とを持つ点を終点p'として、前記始点p'から前記終点p'までの経路であって、前記三次元空間内の点を端点に持ち、かつ、x軸方向、y軸方向又はz軸方向のいずれかの方向と平行なエッジで構成される経路を、前記経路ωとして計算する、請求項1に記載のスケジューリング装置。
【請求項3】
前記エッジは、前記エッジの中点のz座標値に応じて指数的に増加する重みを持ち、
前記経路計算部は、最短経路探索により、前記経路ωを計算する、請求項2に記載のスケジューリング装置。
【請求項4】
前記経路計算部は、
(x,y)座標を経由するコストが2C(x,y)(ただし、C(x,y)は、これまでに(x,y)座標が利用された数)となる二次元平面上で前記第1の論理量子ビットの(x,y)座標を始点、前記第2の論理量子ビットの(x,y)座標を終点とする最短経路探索により第1の経路を計算し、
前記第1の経路を達成できる三次元的な第2の経路であって、かつ、最もz座標値が低い座標を沿って繋ぐような第2の経路を、前記経路ωとして計算する、請求項2に記載のスケジューリング装置。
【請求項5】
前記条件は、前記経路ω'に含まれる部分経路のうち、前記部分経路を構成する最初のエッジはx軸方向又はy軸方向のいずれか一方と平行であり、最後のエッジは前記一方とは異なる他方と平行であり、かつ、前記最初のエッジと前記最後のエッジ以外のエッジはz軸方向と平行である部分経路を示す回転点の数は偶数であることを表し、
前記経路設定部は、
前記経路ωが前記条件を満たさない場合、前記終点p'を端点に持つエッジの直前に、z軸方向と平行であるエッジも含めてオーバヘッドが小さくなる前記回転点を追加した前記調整後経路ω'を作成し、前記調整後経路ω'をW'=ω'として設定する、請求項2乃至4の何れか一項に記載のスケジューリング装置。
【請求項6】
論理量子ビットが配置可能なセルのサイズwと、前記論理量子ビットが配置されているセルのリストPと、m個の格子手術の命令列(O,・・・,Om-1)とを入力する入力手順と、
前記論理量子ビットが配置されるサイズwの二次元グリッド平面に対して時間方向の軸を加えて拡張した三次元空間内において、所定の制約条件の下で経路探索により、前記格子手術の命令O(a∈{0,・・・,m-1})に含まれる始点及び終点間の経路ωを計算する経路計算手順と、
前記経路ωが所定の条件を満たす場合はW'=ω、前記経路ωが前記条件を満たさない場合は前記経路ωが前記条件を満たすように調整した調整後経路ω'をW'=ω'として設定する経路設定手順と、
前記格子手術を実行する量子プロセッサに対する制御命令として経路列(W',・・・,Wm-1')をスケジューリングする出力手順と、
をコンピュータが実行するスケジューリング方法。
【請求項7】
論理量子ビットが配置可能なセルのサイズwと、前記論理量子ビットが配置されているセルのリストPと、m個の格子手術の命令列(O,・・・,Om-1)とを入力する入力手順と、
前記論理量子ビットが配置されるサイズwの二次元グリッド平面に対して時間方向の軸を加えて拡張した三次元空間内において、所定の制約条件の下で経路探索により、前記格子手術の命令O(a∈{0,・・・,m-1})に含まれる始点及び終点間の経路ωを計算する経路計算手順と、
前記経路ωが所定の条件を満たす場合はW'=ω、前記経路ωが前記条件を満たさない場合は前記経路ωが前記条件を満たすように調整した調整後経路ω'をW'=ω'として設定する経路設定手順と、
前記格子手術を実行する量子プロセッサに対する制御命令として経路列(W',・・・,Wm-1')をスケジューリングする出力手順と、
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、スケジューリング装置、スケジューリング方法及びプログラムに関する。
【背景技術】
【0002】
量子コンピュータは量子ビットと呼ばれる素子で構成されるが、量子ビットにはエラーが生じやすいため、量子コンピュータの計算を進めていくためにはそのエラーを訂正する必要がある。一方で、量子ビットはその性質により、直接観測してエラーの有無を調べることはできない。このため、異なる役割を持つ複数の物理量子ビットを符号化して1つの論理量子ビットを構成する量子誤り訂正符号という仕組みが提案されている。
【0003】
代表的な量子誤り訂正符号の1つである表面符号で符号化された複数の論理量子ビットに対して誤りに耐性のある形で操作を行う手法として、格子手術が知られている。与えられたプログラムを効率的に完了するためには、複数の格子手術が並列に行えるように2つの論理量子ビットのブロックを繋ぐパス(経路)を最適化した上で、それらの格子手術を制御命令としてスケジュールする必要がある。非特許文献1では、このパスの最適化に関して一定の拡張を加えた上で、貪欲法を用いて現実的な時間で求めることが可能な近似解法を提案している。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Beverland, M., Kliuchnikov, V., & Schoute, E. (2022). "Surface code compilation via edge-disjoint paths.", PRX Quantum, 3(2), 020342.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、一般に貪欲法を用いた解法は最適解からは遠いケースが多いことが知られており、また現実的な時間で実施できるより効率的なパスの探索は未解明である。
【0006】
本開示は、上記の点に鑑みてなされたもので、格子手術のスケジュールを最適化する技術を提供する。
【課題を解決するための手段】
【0007】
本開示の一態様によるスケジューリング装置は、論理量子ビットが配置可能なセルのサイズwと、前記論理量子ビットが配置されているセルのリストPと、m個の格子手術の命令列(O,・・・,Om-1)とを入力する入力部と、前記論理量子ビットが配置されるサイズwの二次元グリッド平面に対して時間方向の軸を加えて拡張した三次元空間内において、所定の制約条件の下で経路探索により、前記格子手術の命令O(a∈{0,・・・,m-1})に含まれる始点及び終点間の経路ωを計算する経路計算部と、前記経路ωが所定の条件を満たす場合はW'=ω、前記経路ωが前記条件を満たさない場合は前記経路ωが前記条件を満たすように調整した調整後経路ω'をW'=ω'として設定する経路設定部と、前記格子手術を実行する量子プロセッサに対する制御命令として経路列(W',・・・,Wm-1')をスケジューリングする出力部と、を有する。
【発明の効果】
【0008】
格子手術のスケジュールを最適化する技術が提供される。
【図面の簡単な説明】
【0009】
図1】本実施形態に係る誤り耐性量子計算装置の構成例を示す図である。
図2】本実施形態に係る制御装置のハードウェア構成例を示す図である。
図3】本実施形態に係る制御装置の機能構成例を示す図である。
図4】本実施形態に係るスケジューリング処理の一例を示すフローチャートである。
図5】経路探索の落とし込みの一例を示す図である。
【発明を実施するための形態】
【0010】
以下、本発明の一実施形態について説明する。
【0011】
<量子誤り訂正符号>
代表的な量子誤り訂正符号の1つとして、表面符号(参考文献1)と呼ばれるものがある。表面符号は、二次元のグリッド状に並んだデータ量子ビットと、観測用の補助量子ビットとで構成される。データ量子ビットは論理量子ビットの重ね合わせ状態を表すために用いられ、直接観測されることはない。補助量子ビットの観測値は、その補助量子ビットと隣接するデータ量子ビットに生じたエラーのパリティを与える。このパリティから、実際にデータ量子ビットに生じているエラーの種類と箇所を推定することが可能であり、これは「復号」と呼ばれる。
【0012】
誤り耐性量子計算においては二次元的に大規模集積化された量子ビットの列について、一部の二次元的なブロックをセルとして論理量子ビットを埋め込む。このセルのサイズを十分に大きくすることで、誤り訂正における論理誤り率を任意の値まで小さくすることができる。
【0013】
<格子手術>
表面符号で符号化された複数の論理量子ビットに対して誤りに耐性のある形で操作を行う手法として、格子手術(参考文献2)が知られている。格子手術は、二つの符号化された論理量子ビットのブロックを、論理量子ビットが埋め込まれていない領域を利用して一時的に接続し、所定の時間が経過した後に元の状態に戻すという操作である。格子手術の操作は、接続する二つの論理量子ビットのどちらかが既に別の操作を行っている場合は実施することはできない。それに加えて、二つの格子手術の操作を並列に行う場合、1つ目のペアに含まれるブロック同士を接続する経路と2つ目のペアに含まれるブロック同士を接続する経路は互いに交わってはいけない。したがって、操作の対象となる2つの論理量子ビットのブロックに関して演算が行われていない状況であったとしても、その2つのブロックを繋ぐ経路(パス)を量子ビットの配列全体の中から見出すことができない場合は、格子手術の操作を行うことはできないことになる。このため、与えられたプログラムを効率的に完了するためには、複数の格子手術が並列に行えるように、経路を最適化する必要がある。
【0014】
ただし、格子手術をできるだけ並列に実施し、最適な接続方法を探索する問題はNP困難と呼ばれる計算量クラスに属し、最適解を得るにはプログラムのサイズに対して指数関数的に増大する時間が必要になることが知られている(参考文献3)。非特許文献1では、このパスの最適化に関して一定の拡張を加えた上で、貪欲法を用いて現実的な時間で求めることが可能な近似解法を提案している。しかしながら、上述したように、一般に貪欲法を用いた解法は最適解からは遠いケースが多いことが知られており、また現実的な時間で実施できるより効率的なパスの探索は未解明である。
【0015】
そこで、以下の実施形態では、非特許文献1で提案されている格子手術の拡張の下でより効率的なパスを探索し、与えられたプログラムをより効率的に実行することができる誤り耐性量子計算装置10について説明する。
【0016】
<各種定義の準備>
以下、本実施形態に係る誤り耐性量子計算装置10の説明に必要な各種定義を準備する。
【0017】
誤り耐性量子計算装置10において、量子ビットを確保可能なセルは幅と高さ(幅と高さをまとめてサイズともいう。)がwとなる二次元のグリッド座標系に配置されているものとする。このとき、論理量子ビットを埋め込み可能なすべてのセルの集合をV={(x,y)|0≦x,y<w}とする。
【0018】
セルには論理量子ビットを埋め込むことが可能であるが、すべてのセルに論理量子ビットの情報が埋め込まれているわけではない。以下では、n個の論理量子ビットが配置されているものとし、i(0≦i<n)番目の論理量子ビットはp∈Vに配置されているものとする。また、論理量子ビットが配置されているすべてのセルのリストをP=(p,・・・,pn-1)とする。
【0019】
格子手術の命令は、二つの論理量子ビットのセルを繋ぐ命令である。格子手術では、二つのセルを繋ぐとき、繋ぐべき辺に制約がある。制約はH,Vの2種類のいずれかであり、Hの場合はセルの左右の辺のどちらかを、Vの場合はセルの上下の辺のどちらかを繋がなければならない。したがって、格子手術の命令Oは、接続対象となる2つの論理量子ビットの添え字である(i,j)∈[0,・・・,n-1]と、それぞれの論理量子ビットを上下と左右のどちらで繋ぐ必要があるかを表す制約(d,d')∈{H,V}とで表現される。すなわち、O=(i,j,d,d')と表現される。
【0020】
誤り耐性量子計算装置10に与えられるプログラム(以下、対象プログラムともいう。)は、当該誤り耐性量子計算装置10が備える量子プロセッサ200(後述)において量子ビットが確保可能なセルの幅及び高さw、論理量子ビットが配置されているセルのリストP、m個の格子手術の命令列(O,・・・,Om-1)となる。このとき、できるだけ短い時間ですべての格子手術の命令を処理することが目的である。
【0021】
格子手術の命令O=(i,j,d,d')を処理するために二つの論理量子ビットのセル(p,p)を繋ぐとき、通常の格子手術の場合は二次元平面上で論理量子ビットが埋め込まれていないセルのみを使って、二つのセルを所定の辺の向きで繋ぐ必要がある。すなわち、セルの集合Vの中で隣り合っているセルのペアを表す辺集合をE⊂V×Vとして、pとpを連続的に繋ぐ経路W=(e,・・・,ek-1)を選択する必要がある。ここで、e,・・・,ek-1∈Eである。また、d,d'による条件(制約)を満たすように最初と最後の辺e,ek-1を選択する必要があり、経路の始点と終点以外に論理量子ビットが埋め込まれている座標pが経路W中の辺に含まれていてはいけない。
【0022】
非特許文献1では、格子手術を実行する枠組みを以下の条件に拡張している。まず、セルの座標に時間を加えた三次元座標系をV'={(x,y,t)|0≦x,y<w,0≦t}とする。辺(エッジ)も同様に拡張し、三次元座標系で隣接しているセルのペアを表す辺集合を時間方向にも拡張したものをE'⊂V'×V'とする。このとき、格子手術の命令O=(i,j,d,d')を処理するための経路W'=(e',・・・,ek-1')は以下の条件1~条件6を満たせばよい。なお、以下、V'に含まれる点のことを「ノード」と呼ぶこともある。
【0023】
条件1:始点の(x,y)座標はpと一致していなければならない。
【0024】
条件2:終点の(x,y)座標はpと一致していなければならない。
【0025】
条件3:始点及び終点を繋ぐ辺e'及びek-1'はx軸又はy軸に沿って移動する辺であり、かつ、(d,d')による条件(制約)を満たすものでなければならない。
【0026】
条件4:始点の時刻tは、始点のセルが最後に接続された時刻t'に対してt>t'を満たさねばならない。同様に、終点の時刻tは、終点のセルが最後に接続された時刻t'に対してt>t'を満たさねばならない。
【0027】
条件5:始点と終点を繋ぐ経路中の座標p'=(x,y,t)について、(x,y)は論理量子ビットが配置されているセルのリストPに含まれてはいけない。
【0028】
条件6:経路中の辺は、三次元空間においてx軸に沿った移動、y軸に沿った移動、z軸に沿った移動のいずれかに分類することができる。これを分類する関数をf:E'→{X,Y,Z}とする。ここで、Xはx軸に沿った移動、Yはy軸に沿った移動、Zはz軸に沿った移動をそれぞれ表す。また、経路中のサブシーケンス(e',・・・,e')(ただし、s<t)に関して、s<l<tについてf(e')=Zであり、f(e'),f(e')∈{X,Y}であり、かつ、f(e')≠f(e')であるような部分列を回転点と呼ぶことにする。このとき、経路中の回転数の数は偶数でなければならない。
【0029】
上記の条件1~条件6を満たすように、すべての格子手術の命令(O,・・・,Om-1)に関してそれぞれに対応する経路(W',・・・,Wm-1')を選択する。このとき、各経路に含まれるノードの時刻tの最大値tmaxが、その命令の処理に要する時間に対応する。このため、このtmaxを最小化するような経路の列(W',・・・,Wm-1')を求めることが目的となる。
【0030】
<誤り耐性量子計算装置10の構成例>
本実施形態に係る誤り耐性量子計算装置10の構成例を図1に示す。図1に示すように、本実施形態に係る誤り耐性量子計算装置10は、制御装置100と、量子プロセッサ200とを備える。
【0031】
制御装置100は、量子プロセッサ200に対して制御信号を送信し、量子プロセッサ200から計算結果を取得する。これにより、誤り耐性量子計算が行われる。制御装置100は、例えば、古典コンピュータ等により実現される。
【0032】
量子プロセッサ200は、量子ビット(物理量子ビット)と呼ばれる量子2準位系を構成すると共に、物理量子ビットに対して、初期化、ゲート操作(ユニタリ変換)、測定等の物理演算を行う。量子ビットを実現するための物理系は特に限定されず、どのような物理系が使用されてもよい。例えば、物理系として、超伝導回路、イオントラップ、光子、量子ドット等を使用することができる。
【0033】
<制御装置100のハードウェア構成例>
本実施形態に係る制御装置100のハードウェア構成例を図2に示す。図2に示すように、本実施形態に係る制御装置100は、入力装置101と、表示装置102と、外部I/F103と、通信I/F104と、RAM(Random Access Memory)105と、ROM(Read Only Memory)106と、補助記憶装置107と、プロセッサ108とを有する。これらの各ハードウェアは、それぞれがバス109を介して通信可能に接続される。
【0034】
入力装置101は、例えば、キーボード、マウス、タッチパネル、物理ボタン等である。表示装置102は、例えば、ディスプレイ、表示パネル等である。なお、制御装置100は、例えば、入力装置101及び表示装置102のうちの少なくとも一方を有していなくてもよい。
【0035】
外部I/F103は、記録媒体103a等の外部装置とのインタフェースである。記録媒体103aとしては、例えば、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等が挙げられる。
【0036】
通信I/F104は、量子プロセッサ200との間で各種信号の送受信を行うためのインタフェースである。RAM105は、プログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。ROM106は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。補助記憶装置107は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等の不揮発性の記憶装置(ストレージ装置)である。プロセッサ108は、例えば、CPU(Central Processing Unit)等の演算装置である。
【0037】
なお、図2に示すハードウェア構成は一例であって、制御装置100のハードウェア構成はこれに限られるものではない。例えば、制御装置100は、複数の補助記憶装置107や複数のプロセッサ108を有していてもよいし、図示したハードウェアの一部を有していなくてもよいし、図示したハードウェア以外の種々のハードウェアを有していてもよい。
【0038】
<制御装置100の機能構成例>
本実施形態に係る制御装置100の機能構成例を図3に示す。図3に示すように、本実施形態に係る制御装置100は、スケジューリング処理部110と、制御部120とを有する。これら各部は、例えば、制御装置100にインストールされた1以上のプログラムが、プロセッサ108等に実行させる処理により実現される。また、本実施形態に係る制御装置100は、記憶部130を有する。当該記憶部130は、例えば、補助記憶装置107等により実現される。
【0039】
スケジューリング処理部110は、対象プログラム(w,P,(O,・・・,Om-1))が与えられたときに、その格子手術の命令列(O,・・・,Om-1)に対応する最適な経路列(W',・・・,Wm-1')を制御命令列として制御部120にスケジューリングするスケジューリング処理を実行する。
【0040】
制御部120は、スケジューリング処理部110によってスケジューリングされた制御命令列(W',・・・,Wm-1')に応じた制御信号を量子プロセッサ200に送信する。また、制御部120は、この制御信号に応じて量子プロセッサ200で計算された計算結果を当該量子プロセッサ200から取得する。
【0041】
記憶部130は、スケジューリング処理の実行に必要な各種情報(例えば、三次元座標の特定の場所が使用済みであるか否かを表す関数U(x,y,t)、i番目の量子ビットが最後に利用された時刻T、現在処理中の格子手術命令の添え字を表す変数a等)を記憶する。
【0042】
ここで、スケジューリング処理部110には、入力部111と、初期化部112と、経路計算部113と、経路設定部114と、出力部115とが含まれる。入力部111は、与えられた対象プログラム(w,P,(O,・・・,Om-1))を入力する。初期化部112は、関数U(x,y,t)、変数T、変数aを初期化する。経路計算部113は、格子手術の命令Oに対応する経路ωを計算する。経路設定部114は、経路ω又はその経路ωを調整した経路ω'を最適な経路W'として設定する。出力部115は、最適な経路列(W',・・・,Wm-1')を制御命令列として制御部120にスケジューリングする。
【0043】
<スケジューリング処理>
以下、本実施形態に係るスケジューリング処理について、図4を参照しながら説明する。
【0044】
まず、スケジューリング処理部110の入力部111は、与えられた対象プログラム(w,P,(O,・・・,Om-1))を入力する(ステップS101)。
【0045】
次に、スケジューリング処理部110の初期化部112は、関数U(x,y,t)と変数Tと変数aとを初期化する(ステップS102)。ここで、U(x,y,t)は、三次元座標の特定の場所が使用済みであるか否かを表す関数である。初期化部112は、上記のステップS101で入力された対象プログラムに含まれるリストP=(p,・・・,pn-1)を用いて、(x,y)に論理量子ビットが配置されている場合はU(x,y,t)=1(使用済)、(x,y)に論理量子ビットが配置されていない場合はU(x,y,t)=0(未使用)に初期化する。また、Tはi番目の量子ビットが最後に利用された時刻であり、初期化部112は、T=0(0≦i<n)に初期化する。更に、aは現在処理中の格子手術命令の添え字を表す変数であり、初期化部112は、a=0に初期化する。
【0046】
次に、スケジューリング処理部110の経路計算部113は、格子手術の命令Oに対応する経路ωを計算する(ステップS103)。以下、O=(i,j,d,d')であるものとして、本ステップにおける経路ωの計算方法について説明する。このとき、経路計算部113は、(x,y)座標がp、z座標がTである点を始点p'、(x,y)座標がp、z座標がTである点を終点p'として、始点p'から終点p'までの経路探索を行って経路ωを計算する。ただし、経路計算部113は、経路ωに含まれるノードは、V'のうち、U(x,y,t)=0であるもののみに限定する。また、経路計算部113は、最初の辺はdによる条件(制約)を満たすものに限定し、かつ、最後の辺はd'による条件(制約)を満たすものに限定する。
【0047】
経路探索を行う具体的な例としては、例えば、以下の二つがあるが、本実施形態における経路探索の方法はこれら二つに限定されるものではない。
【0048】
一つ目の方法は、最短経路探索を行って経路ωを計算する方法である。このとき、辺に与える重みとしては、辺eの重み関数をw(e)としたとき、重みが辺eの中点の座標zに応じて指数的に増加するように設定する方法がある。このようにすることで、z座標が小さい領域が優先的に利用され、スケジューリングを時間的に効率化できる。
【0049】
二つ目の方法は、以下のようなものである。(x,y)座標を経由するコストが、これまでその座標が利用された数C(x,y)=ΣU(x,y,t)について2C(x,y)となるような二次元平面を考える。この二次元平面内でpを始点、pを終点として、始点から終点までの最短経路探索を行う。その後、この最短経路探索で得られた経路を達成できる三次元的な経路であって、かつ、最もz座標値が低い座標を沿って繋ぐような経路を計算し、この経路ωとする。すなわち、この方法では、二次元平面内での経路探索に落とし込んだ後、その経路探索で得られた経路から三次元的な経路ωを得る。この様子の一例を図5に示す。
【0050】
なお、上記のステップS103で経路ωが存在しない場合、スケジューリング処理部110は、スケジューリング不能を示す情報を出力し、スケジューリング処理を終了する。
【0051】
次に、スケジューリング処理部110の経路設定部114は、上記のステップS103で計算された経路ωが上記の条件6を満たす場合はW'=ωと設定し、上記の条件6を満たさない場合は当該条件6を満たす形に経路ωを調整した上でその調整後の経路ω'をW'=ω'と設定する(ステップS104)。ここで、経路ωが上記の条件6を満たさない場合、経路設定部114は、当該経路ωの終点に繋がる辺の直前に、z軸に沿った移動も含めてオーバヘッドが小さくなるような回転点を1つ作成することにより、経路ω'を作成すればよい。
【0052】
次に、スケジューリング処理部110は、a←a+1とする(ステップS105)。
【0053】
次に、スケジューリング処理部110は、a=mであるか否かを判定する(ステップS106)。
【0054】
上記のステップS106でa=mであると判定されなかった場合、スケジューリング処理部110は、上記のステップS103に戻る。これにより、a=0,・・・,m-1に対して格子手術の命令Oに対応する最適な経路W'が得られる。
【0055】
一方で、上記のステップS106でa=mであると判定された場合、スケジューリング処理部110は、最適な経路列(W',・・・,Wm-1')を制御命令列として制御部120にスケジューリングする(ステップS107)。なお、この最適な経路列(W',・・・,Wm-1')は、上記の条件1~6をすべて満たすことがわかる。
【0056】
<まとめ>
以上のように、本実施形態に係る制御装置100は、格子手術を時間方向にも繋げるように拡張し、より自在なスケジューリングを可能としていると共に、グラフアルゴリズムの考え方を量子計算機のコンパイル最適化に組み合わせてより効率的なスケジューリングを可能としている。これにより、与えられたプログラムをより短い時間で実行できるように最適化することが可能となり、その結果、誤り耐性量子計算装置10をより効率的に活用することができる。
【0057】
なお、本実施形態に係る誤り耐性量子計算装置10は、数値的な評価により、典型的な格子手術のスケジュールにおいて既存手法よりも小さなtmaxの実現が期待できることがわかっている。また、典型的なサイズwと論理量子ビットが配置されているセルのリストPに対して、上記のステップS103でスケジューリング不能となるケースは生じていないことを確認している。
【0058】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲の記載から逸脱することなく、種々の変形や変更、既知の技術との組み合わせ等が可能である。
【0059】
[参考文献]
参考文献1:Fowler, Austin G., et al. "Surface codes: Towards practical large-scale quantum computation." Physical Review A 86.3 (2012): 032324.
参考文献2:Horsman, C., Fowler, A. G., Devitt, S., & Van Meter, R. (2012). Surface code quantum computing by lattice surgery. New Journal of Physics, 14(12), 123011.
参考文献3:Herr, D., Nori, F., & Devitt, S. J. (2017). Optimization of lattice surgery is NP-hard. npj Quantum Information, 3(1), 35.
【符号の説明】
【0060】
10 誤り耐性量子計算装置
100 制御装置
101 入力装置
102 表示装置
103 外部I/F
103a 記録媒体
104 通信I/F
105 RAM
106 ROM
107 補助記憶装置
108 プロセッサ
109 バス
110 スケジューリング処理部
111 入力部
112 初期化部
113 経路計算部
114 経路設定部
115 出力部
120 制御部
130 記憶部
200 量子プロセッサ
図1
図2
図3
図4
図5