(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-01
(45)【発行日】2022-12-09
(54)【発明の名称】量子計算のための方法及びシステム
(51)【国際特許分類】
G06N 10/00 20220101AFI20221202BHJP
【FI】
G06N10/00
(21)【出願番号】P 2020554200
(86)(22)【出願日】2019-04-18
(86)【国際出願番号】 US2019028178
(87)【国際公開番号】W WO2019209628
(87)【国際公開日】2019-10-31
【審査請求日】2022-01-25
(31)【優先権主張番号】201810398402.X
(32)【優先日】2018-04-27
(33)【優先権主張国・地域又は機関】CN
(32)【優先日】2019-04-17
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】511050697
【氏名又は名称】アリババ グループ ホウルディング リミテッド
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】チェン,ジャンシン
(72)【発明者】
【氏名】チャン,ファン
(72)【発明者】
【氏名】シ,ヤオユン
(72)【発明者】
【氏名】ファン,ジャチェン
(72)【発明者】
【氏名】ニューマン,マイケル
【審査官】加藤 優一
(56)【参考文献】
【文献】米国特許出願公開第2021/0192114(US,A1)
【文献】米国特許出願公開第2014/0039866(US,A1)
【文献】特表2020-515999(JP,A)
【文献】BOIXO, Serigo et al.,Simulation of low-depth quantum circuits as complex undirected graphical models,arXiv [オンライン],2018年01月19日,pp.1-12,[検索日 2022年11月11日],インターネット:<URL: https://arxiv.org/pdf/1712.05384>,1712.05384v2
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00 -99/00
(57)【特許請求の範囲】
【請求項1】
複数の量子ゲートを含む量子回路の振る舞いをシミュレートするコンピュータ実施方法であって、前記方法は、
前記量子回路を表す情報をコンピュータデバイスにより受信すること;
前記量子回路に対応する無向グラフを構築することであって、前記無向グラフ内のそれぞれの頂点が、前記量子回路の振幅を計算するために使用されるFeynman経路積分における個別変数に対応し、それぞれの辺が1つ又は複数の量子ゲートに対応する、構築すること;
少なくとも2つの2キュービット量子ゲートへ結合される前記無向グラフ内の頂点を識別すること;
前記識別された頂点を除去することにより前記無向グラフを簡略化し、これにより、前記識別された頂点へ結合される前記2キュービット量子ゲートを効果的に除去すること;及び
前記簡略化された無向グラフを評価し、これにより前記量子回路の前記振る舞いのシミュレーションを促進すること、を含む、コンピュータ実施方法。
【請求項2】
前記頂点を識別することは、前記無向グラフ内のすべての頂点を走査することを含む、請求項1に記載のコンピュータ実施方法。
【請求項3】
前記頂点を識別することは、前記簡略化された無向グラフを評価するための実行時間に関連付けられた目的関数に基づきグリーディアルゴリズムを行うことを含む、請求項1に記載のコンピュータ実施方法。
【請求項4】
木幅計算アルゴリズムを使用して初期テンソル縮約順序付けを計算することをさらに含む、請求項3に記載のコンピュータ実施方法。
【請求項5】
前記グリーディアルゴリズムを行うことは、
前記初期テンソル縮約順序付けに基づき局所範囲を選択すること;及び
最適頂点を除去することが前記無向グラフを評価することに伴う最小時間費用を生じるようなやり方で、前記局所範囲内の除去のための前記最適頂点を選択することを含む、請求項4に記載のコンピュータ実施方法。
【請求項6】
前記頂点を識別することは、ダイナミックプログラミングアルゴリズムを行うことを含む、請求項1に記載のコンピュータ実施方法。
【請求項7】
前記2キュービット量子ゲートは、2キュービット対角量子ゲートを含む、請求項1に記載のコンピュータ実施方法。
【請求項8】
前記2キュービット対角量子ゲートは、制御型Z(CZ)ゲートを含む、請求項7に記載のコンピュータ実施方法。
【請求項9】
前記量子回路は、少なくとも50個のキュービット及び少なくとも30の深さを有する、請求項1に記載のコンピュータ実施方法。
【請求項10】
複数の量子ゲートを含む量子回路の振る舞いをシミュレートするためのコンピュータシステムであって、前記システムは、
プロセッサと;
前記プロセッサへ結合される記憶デバイスであって、前記プロセッサにより実行されると前記プロセッサに方法を実行させる命令を格納する記憶デバイスと、を含み、前記方法は、
前記量子回路を表す情報を受信すること;
前記量子回路に対応する無向グラフを構築することであって、前記無向グラフ内のそれぞれの頂点が、前記量子回路の振幅を計算するために使用されるFeynman経路積分における個別変数に対応し、それぞれの辺は1つ又は複数の量子ゲートに対応する、構築すること;
少なくとも2つの2キュービット量子ゲートへ結合される前記無向グラフ内の頂点を識別すること;
前記識別された頂点を除去することにより前記無向グラフを簡略化し、これにより、前記識別された頂点へ結合される前記2キュービット量子ゲートを効果的に除去すること;及び
前記簡略化された無向グラフを評価し、これにより前記量子回路の前記振る舞いのシミュレーションを促進することを含む、コンピュータシステム。
【請求項11】
前記頂点を識別することは、前記無向グラフ内のすべての頂点を走査することを含む、請求項10に記載のコンピュータシステム。
【請求項12】
前記頂点を識別することは、前記簡略化された無向グラフを評価するための実行時間に関連付けられた目的関数に基づきグリーディアルゴリズムを行うことを含む、請求項10に記載のコンピュータシステム。
【請求項13】
前記方法は、木幅計算アルゴリズムを使用して初期テンソル縮約順序付けを計算することをさらに含む、請求項12に記載のコンピュータシステム。
【請求項14】
前記グリーディアルゴリズムを行うことは、
前記初期テンソル縮約順序付けに基づき局所範囲を選択すること;及び
最適頂点を除去することが前記無向グラフを評価することに伴う最小時間費用を生じるようなやり方で、前記局所範囲内の除去のための前記最適頂点を選択すること、を含む、請求項13に記載のコンピュータシステム。
【請求項15】
前記頂点を識別することは、ダイナミックプログラミングアルゴリズムを行うことを含む、請求項10に記載のコンピュータシステム。
【請求項16】
前記2キュービット量子ゲートは、2キュービット対角量子ゲートを含み、前記2キュービット対角量子ゲートは、制御型Z(CZ)ゲートを含む、請求項10に記載のコンピュータシステム。
【請求項17】
前記量子回路は、少なくとも50個のキュービット及び少なくとも30の深さを有する、請求項10に記載のコンピュータシステム。
【請求項18】
コンピュータにより実行されると前記コンピュータに複数の量子ゲートを含む量子回路の振る舞いをシミュレートする方法を行わせる命令を格納する非一時的コンピュータ可読記憶媒体であって、前記方法は、
前記量子回路を表す情報をコンピュータデバイスにより受信すること;
前記量子回路に対応する無向グラフを構築することであって、前記無向グラフ内のそれぞれの頂点が、前記量子回路の振幅を計算するために使用されるFeynman経路積分における個別変数に対応し、それぞれの辺は1つ又は複数の量子ゲートに対応する、構築すること;
少なくとも2つの2キュービット量子ゲートへ結合される前記無向グラフ内の頂点を識別すること;
前記識別された頂点を除去することにより前記無向グラフを簡略化し、これにより、前記識別された頂点へ結合される前記2キュービット量子ゲートを効果的に除去すること;及び
前記簡略化された無向グラフを評価し、これにより前記量子回路の前記振る舞いのシミュレーションを促進することを含む、非一時的コンピュータ可読記憶媒体。
【請求項19】
前記頂点を識別することは、前記簡略化された無向グラフを評価するための実行時間に関連付けられた目的関数に基づきグリーディアルゴリズムを行うことを含む、請求項18に記載の非一時的コンピュータ可読記憶媒体。
【請求項20】
前記方法は、木幅計算アルゴリズムを使用して初期テンソル縮約順序付けを計算することをさらに含み、前記グリーディアルゴリズムを行うことは、
前記初期テンソル縮約順序付けに基づき局所範囲を選択すること;及び
最適頂点を除去することが前記無向グラフを評価することに伴う最小時間費用を生じるようなやり方で、前記局所範囲内の除去のための前記最適頂点を選択することを含む、請求項19に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
背景
分野
[0001] 本開示は一般的には量子計算に関する。具体的には、本開示は量子回路の分散シミュレーションを行うためのシステム及び方法に関する。
【背景技術】
【0002】
関連技術
[0002] 近年、量子計算における研究努力が著しい進歩を成し遂げた。量子計算は重ね合わせ及びもつれなどの量子力学原理に基づく計算を指す。大規模量子コンピュータは、最もよく現在知られたアルゴリズムを使用するいかなる古典的コンピュータよりもさらに迅速にいくつかの問題を理論的に解き得る。これらの問題は、一群のすべての可能な解内に検索可能な構造が存在しない整数因数分解問題及びデータベース検索問題を含み得る。さらに、量子コンピュータは場合によっては、古典的コンピュータにより解かれることがほとんど実現可能でない問題を解くことができるかもしれない。
【0003】
[0003] データが2進数(それぞれが2つの定義された状態(0又は1)に常にある)へ符号化されることを要求する一般的なデジタル計算とは異なり、量子計算は、状態の重ね合わせ状態をとり得る量子ビット(又はキュービット)を使用する。キュービットは電子のスピン又は光子の偏光状態などの2状態(又は2レベル)量子力学系であり得る。例えば、スピンアップ状態は「1」を表し得、一方、スピンダウン状態は「0」を表し得る。アップでもダウンでもないスピンは重ね合わせ状態を表し得る。少数のキュービットが比較的大量の情報を保持し得る。例えば、100個の粒子の重ね合わせ状態は最大2100の数を表し得る。量子コンピュータは、超高速レーザパルス又は他の同様な技術を使用してそのキュービットで動作し得る。
【0004】
[0004] 量子コンピュータの継続的ハードウェア開発は、制御されたキュービットの数を9又は10から50又は72まで増加した。このようなシステムは依然として試作品であるが、大規模量子コンピュータ(例えば、50を超えるキュービットと30を超える層とを有する量子コンピュータ)が、予測したように振る舞うかどうかを検証することが重要である。例えば、量子回路の正確なシミュレーション無しに、雑音のある量子回路の実際の出力と理想的な無雑音の量子回路の出力との違いは分からなく、したがって回路の効率を判断することを不可能にする。具体的には、Nキュービットにわたって動作する量子回路Cに関し、その入力が|00...0〉であると仮定すると、〈i1,i2,...,in|C|00...0〉を知る必要がある、ここで|i1,i2,...,in〉は任意の量子列である。量子系の古典的シミュレーションは、雑音のある中間規模量子(NISQ:noisy intermediate-scale quantum)の領域において価値あるツールであるということが示されている。
【0005】
[0005] 量子優越性又は量子利点は、古典的コンピュータがほとんど解くことができない問題を解く量子計算デバイスの潜在力を指す。2017年に、Google(登録商標)は、ランダムな量子回路の出力分布をサンプリングする問題を解くことにより量子優越性を実証するための計画を発表した。Googleはその後、Google量子プロセッサ上で実行する量子回路からの結果を解析することになるプロジェクトを発表した。理論的研究は、量子優越性が7×7キュービットの2次元格子と約40クロック周期とにより可能であり得るということを示唆した。後の研究は、古典的シミュレーションが扱い得るものの境界を50個のキュービットまで押し上げた。
【0006】
[0006] しかし、依然として欠けているのは、大規模量子回路をシミュレートするための効果的な解決策である。主要な障害は、キュービットの数が50に達すると、状態空間の次元が250まで上昇し得、最大16PBのメモリ空間を必要とすることである。ここで1PB=1024TBである。このようなメモリ要件は最先端スーパーコンピュータをすら越えるものである。状態の一部のみ格納する場合、回路計算は、格納されていない情報を要求し続けることになり、大量の通信オーバヘッドを招く。
【発明の概要】
【課題を解決するための手段】
【0007】
概要
[0007] 本明細書において説明される一実施形態は、複数の量子ゲートを含む量子回路の振る舞いをシミュレートするためのシステム及び方法を提供する。動作中、本システムは、量子回路を表す情報を受信し、量子回路に対応する無向グラフを構築する。無向グラフ内のそれぞれの頂点は、量子回路の振幅を計算するために使用されるFeynman経路積分における個別変数に対応し、それぞれの辺は、1つ又は複数の量子ゲートに対応する。本システムは、少なくとも2つの2キュービット量子ゲートへ結合される無向グラフ内の頂点を識別し;識別された頂点を除去することにより無向グラフを簡略化し、これにより、識別された頂点へ結合される2キュービット量子ゲートを効果的に除去し;簡略化無向グラフを評価し、これにより量子回路の振る舞いのシミュレーションを促進する。
【0008】
[0008] この実施形態の変形では、頂点を識別することは、無向グラフ内のすべての頂点を走査する(traverse)ことを含む。
【0009】
[0009] この実施形態の変形では、頂点を識別することは、簡略化された無向グラフを評価するための実行時間に関連付けられた目的関数に基づきグリーディ(greedy)アルゴリズムを行うことを含む。
【0010】
[0010] 別の変形では、本システムは、木幅計算アルゴリズム(treewidth computing algorithm)を使用して初期テンソル縮約順序付け(tensor-contraction ordering)を計算する。
【0011】
[0011] 別の変形では、グリーディアルゴリズムを行うことは、初期テンソル縮約順序付けに基づき局所範囲を選択することと、最適頂点を除去することが無向グラフを評価することに伴う最小時間費用を生じるようなやり方で、局所範囲内の除去のための最適頂点を選択することとを含む。
【0012】
[0012] この実施形態の変形では、頂点を識別することは、ダイナミックプログラミングアルゴリズムを行うことを含む。
【0013】
[0013] この実施形態の変形では、2キュービット量子ゲートは、2キュービット対角量子ゲートを含む。
【0014】
[0014] 別の変形では、2キュービット対角量子ゲートは、制御型Z(CZ:controlled-Z)ゲートを含む。
【0015】
[0015] この実施形態の変形では、量子回路は、少なくとも50個のキュービットと少なくとも30の深さとを有する。
【図面の簡単な説明】
【0016】
図面の簡単な説明
【
図1】[0016]3キュービットGreenberger, Horne, and Zeilinger(GHZ)状態を生成するための量子回路を示す。
【
図3】[0018]一実施形態による無向グラフ内の単一キュービット対角ゲート、2キュービット対角ゲート及び非対角ゲート、並びにそれらの対応表現を示す。
【
図4】[0019]一実施形態による量子回路200の無向グラフを示す。
【
図5】[0020]一実施形態によりx=010を所与として、量子回路200の無向グラフを示す。
【
図6】[0021]一実施形態による2つのCZゲート及び1つの接続型(connected)Tゲートの除去後の量子回路200の無向グラフを示す。
【
図7】[0022]一実施形態による量子回路をシミュレートするための例示的処理を示すフローチャートを提示する。
【
図8】[0023]一実施形態による中間サイズ量子回路をシミュレートするための例示的処理を示すフローチャートを提示する。
【
図9】[0024]一実施形態による量子回路をシミュレートするための装置を示す。
【
図10】[0025]一実施形態による主題技術を実施する電子システムを概念的に示す。
【発明を実施するための形態】
【0017】
[0026] 添付図面では、同様な参照符号は同じ要素を指す。
【0018】
詳細な説明
[0027] 以下の説明は、当業者が本実施形態をなしそして使用できるようにするために提示され、特定アプリケーション及びその要件の文脈で提供される。本開示実施形態に対する様々な修正は当業者に容易に明らかになり、本明細書で定義された一般的原理は、本開示の精神及び範囲から逸脱することなく他の実施形態及びアプリケーションへ適用され得る。したがって、本発明は、示された実施形態に限定されないが、本明細書に開示された原理及び特徴に整合する最も広い範囲を与えられるものとする。
【0019】
概要
[0028] 本発明のいくつかの実施形態は、量子回路の効率的シミュレーションのための方法及びシステムを提供する。具体的には、シミュレーションシステムは、テンソルネットワーク縮約手法(tensor network contraction approach)を使用し、無向グラフを使用することにより量子回路をモデル化する。動作中、シミュレーションシステムは、2つの制御型Z(CZ)ゲートと結合する頂点を識別するために、無向グラフを調査する。頂点を削除することにより、シミュレーションシステムは、2つのCZゲートを同時に削除し得、したがって無向グラフの時間複雑性及び空間複雑性を著しく低減する。
【0020】
無向グラフィックモデル
[0029] 量子回路をシミュレートするための2つの手法が存在する。1つの手法は行列乗算に基づき、1つの手法はテンソルネットワーク縮約に基づく。行列乗算手法は、スーパーコンピュータ上で並列に処理され得るが、制限された空間複雑性でもって処理され得、テンソルネットワーク縮約手法は、並列処理において困難に遭遇する。シミュレーション効率を強化するために、いくつかの実施形態では、シミュレーションシステムは、並列に処理されるテンソルネットワーク縮約手法を使用する。具体的には、シミュレーションシステムは、無向グラフィックモデルを使用して量子回路をモデル化する。無向グラフ又は無向ネットワークは、一緒に接続される一組のオブジェクト(頂点又はノードと呼ばれる)を指すということに留意されたい。ここで、すべての辺は双方向性である。
【0021】
[0030] 量子回路は、nビットレジスタの量子力学的な類似の仕組み(a quantum mechanical analog)の可逆的変換である量子ゲートを使用して量子計算をモデル化するために使用され得る。この類似構造はnキュービットレジスタ又は量子レジスタとも呼ばれ得る。量子回路では、量子レジスタが初期量子状態を格納する。典型的実施態様では、初期量子状態はすべて零であり得、各計算は対応量子ゲートを使用して実施され得る。計算の組合せは一系列の量子ゲートを使用することにより表され得る。
【0022】
[0031] 具体的には、各キュービットは2次元(2D)ベクトル
【数1】
を使用して表現され得る、ここで|a|
2+|b|
2=1である。量子回路では、各量子ゲートは、状態UU
+=Iを満足するユニタリ行列Uを表し得る、ここで、Iは単位行列である。一般的な量子ゲートは、単一キュービットゲート(例えば、Pauli-X(又はX)ゲート、Pauli-Y(又はY)ゲート、Pauli-Z(又はZ)ゲート、Iゲート、Tゲートなど)及び2キュービットゲート(例えば、制御型NOT(CNOT:controlled NOT)ゲート、CZゲートなど)を含み得る。
【0023】
[0032] 単一キュービット量子ゲートは次のように表現され得る:
【数2】
。2キュービット量子ゲートは次のように表現され得る:
【数3】
。各単一キュービット量子ゲートは単一キュービットの状態を変更し得、変更されたこのような状態は、このゲートに対応する行列とキュービットを表すベクトルとを多重化することにより実現され得る(すなわち
【数4】
)。同様に、2キュービット量子ゲートは2つのキュービットの状態を変更し得る。
【0024】
[0033]
図1は、3キュービットGreenberger, Home, and Zeilinger(GHZ)状態を生成するための例示的量子回路を示す。
図1の例では、量子回路100は、3つの水平線により表される3つの量子レジスタを含み得る。さらに、量子回路100は、ゲート102、104などの多くのHadamardゲート(H)、及びゲート106、108などの多くのCZゲートを含み得る。Hゲートは単一キュービットゲートであり、CZゲートは2キュービットゲートである。初期の全零入力を所与として、量子回路100の出力は
【数5】
のように表現され得る。
【0025】
[0034] 量子回路Cの出力振幅は〈x|C|00・・・0〉のように表現され得る。さらに、各量子回路は各ゲートの動作の時間に従って多くの層へ分解され得る。例えば、量子回路Cはd個の層へ分解され得る:C=C
d・・・C
2C
1、ここで、C
1,C
2,...,C
dは、時刻t
1,t
2,...,t
dそれぞれにおいてnキュービットへ適用されるユニタリ行列である。いくつかの実施形態では、時刻t
1,t
2,...,t
dはクロック周期1,2,...,dをそれぞれ表し得る。したがって、このような量子回路の出力振幅は次のように表現され得る:
【数6】
。
【0026】
[0035]
図2は、別の例示的量子回路を示す。量子回路200は3つのキュービットへ適用され得、5層の深さを有し得る。具体的には、量子回路200は、多くのHゲート(例えばHゲート202、204)、多くのTゲート(例えばTゲート206、208)、多くのCZゲート(例えばCZゲート210、212)、及び平方根(SQRT)ゲート214を含む。
【0027】
[0036] 5層を所与として、量子回路200はC=C
5・・・C
2C
1と表現され得る、ここで
【数7】
である。したがって、量子回路200の出力振幅は次のように表現され得る:
【数8】
。
【0028】
[0037] 上式では、サーメーションは、すべての4つの3ビット(0,1)列(すなわちi
1,i
2,i
3,i
4)にわたって行われる。Tゲート及びCZゲートは対角ゲートであるので、サーメーションを計算する際、
【数9】
は、i
3、i
4が同一列である場合だけ非零であり得、
【数10】
は、i
2、i
3が同一列である場合だけ非零であり得、
【数11】
は、i
1、i
2の最初の2つのビットが同一である場合だけ非零であり得る。一方で、Hゲートは非対角ゲートであるので、追加制約は
【数12】
へ適用され得ない。一般的に、サーメーション内の乗算はi
2=i
3=i
4の場合だけ非零であり得、最初の2つのビットi
1、i
2は同一である。したがって、サーメーションを計算する際、このような条件を満たすビット列(i
1,i
2,i
3,i
3)を考慮するだけでよい。この特別な例では、すべての4つの3ビット列を走査することは2
12の可能性を有し得るが、追加制約は可能性を2
4まで低減した。分かるように、対角ゲート制約を考慮することにより、量子回路のシミュレーション中の項の総数を著しく低減し得る。
【0029】
[0038] 制約を適用するための手順もまた、無向グラフィックモデルという言語で定式化され得る。前述の回路出力の式内のインデックス列(i
0=00・・・0,i
1,i
2,...,i
d-1,i
d=x)を所与として、グラフGを構築し得る。ここで、個別変数
【数13】
は頂点に対応しており、2つの頂点は、それらの両方に作用する演算子(例えばゲート)があれば辺により接続される。
【0030】
[0039] 既に論述されたように、このようなグラフは、いくつかのテンソル演算子(例えばゲート)がたまたま対角性であれば簡略化され得る。例えば、2つのノード(又は頂点)が単一キュービット対角ゲートにより接続されれば、サーメーション内の対応項は、2つのノードに割り当てられたビット列が同一である場合だけ存続し得る(すなわち、非零であり得る)。したがって、これらの2つのノードは融合し得る。
図3は一実施形態による無向グラフ内の単一キュービット対角ゲート、2キュービット対角ゲート及び非対角ゲート、並びにそれらの対応表現を示す。
【0031】
[0040]
図3において、ユニタリゲート302は単一キュービット対角ゲートであり、グラフィック要素304はそのグラフィック表現である。分かるように、2つのノードは単一ノードへ融合されている。同様に、2キュービットユニタリゲート306はグラフィック要素308により表され得る。一方で、ユニタリゲート312は非対角ゲートであり、このことは、融合はそのグラフィック表現314により指示されるように発生しないということを意味する。同様に、2キュービット非対角ユニタリゲート316はグラフィック要素318により無向グラフで表され得る。
【0032】
[0041]
図4は、一実施形態による量子回路200の無向グラフを示す。
図4から分かるように、無向グラフ400は、多くの頂点と頂点同士を接続する多くの辺とを含み得る。各頂点は変数
【数14】
を表し、kは時間インデックス又はクロック周期を表し、jはビット位置を表す。既に論述されたように、ビット列i
1、i
2、i
3及びi
4の最初のビットは同一であり、したがって、単一頂点402により無向グラフ400で表され得る。同様に、ビット列i
1、i
2、i
3及びi
4の第2のビットは、無向グラフ400内の単一頂点404を使用して表され得、ビット列i
2、i
3及びi
4の第3のビットは、単一頂点406を使用して表され得る。一方で、i
1の第3のビットは別個の頂点408により表される。無向グラフ400はまた、入力(i
0)及び出力(i
5)を表す他の頂点を含む。
【0033】
[0042] 既に論述されたように、回路200の振幅は
【数15】
を使用して計算され得る。このようなサーメーションはFeynman経路積分の拡張とも呼ばれ得る。
【0034】
[0043] x=010の場合、Feynman経路積分は次のように計算され得る:
【数16】
。上記表現に対応する無向グラフが
図5に示される。換言すれば、
図5は、一実施形態によりx=010を所与として、量子回路200の無向グラフを示す。
【0035】
[0044]
図5に示す無向グラフ500は、同グラフを簡略化するために一度に1つの変数(例えば頂点)を削除することにより、テンソル縮約アルゴリズム(tensor contraction algorithm)を使用して簡略化され得る。例えば、ある深さの当初複雑なグラフは、低減された深さを有するように簡略化され得る。テンソル縮約に加えて、サーメーションを評価する別の単純明快なやり方はサーメーションをいくつかの部分に分割することである。具体的には、任意の変数を単純に選択し、サーメーションを2回(0へ固定される選択された変数の値により1回、そして1へ固定される選択された変数の値により1回)評価し、次に、これらの結果を組み合わせ得る。変数を削除することと同様に、変数の値を固定することもまた、この変数をサーメーションから除去する。無向グラフモデルでは、変数の値を固定することは、対応する頂点をその辺のすべてと共に除去することである。
【0036】
[0045]
図5に示すグラフ500では、頂点502(変数
【数17】
に対応する)が2つのCZゲート(
図2に示すCZゲート210、212)へ結合される。したがって、頂点502を除去することは、両方のCZゲートの除去を生じ得る。頂点が除去されるたびに、本システムは、結果のグラフを再帰的に2回評価する必要があり、したがって評価の回数は指数関数的に膨らむということに留意されたい。2つのCZゲートが1つずつ除去される場合、本システムはグラフ評価の4つの副タスクを行う必要がある。しかし、2つのCZゲートを同時に除去することにより、本システムは4つではなく2つの副タスクを行うだけでよく、したがって計算効率を著しく増強する。頂点を除去するということは、グラフ評価が、並列に行われ得る副タスクへ分割され得るということを意味することにも注意すべきである。例えば、グラフからM個の頂点を除去するということは、グラフ評価タスクを、並列に行われ得る2
M個の副タスクへ分割することを意味する。
【0037】
[0046]
図5に示す例では、i
1=abc及びi=abdを所与として、次式が得られる:
【数18】
。
【0038】
[0047] 変数
【数19】
を除去することは、Feynman経路積分内のインデックスに対応する頂点であるインデックスaを除去することに対応する。さらに、変数
【数20】
を除去することは
【数21】
の評価を必要とする。
【0039】
[0048] このサーメーションは、結合されたTゲート(例えば
図2に示すTゲート206)を除去することによりさらに簡略化され得、
【数22】
を生じる。
【0040】
[0049] 〈0|CZ
13|0〉=I
3及び〈1|CZ
13|1〉=Z
3に留意すべきであり、したがって
【数23】
である。
【0041】
[0050] また、無向グラフを使用してサーメーション内の
【数24】
などの項を表し得る。
図6は、一実施形態による2つのCZゲート及び1つの接続型Tゲートの除去後の量子回路200の無向グラフを示す。
図5に示す無向グラフと比較して、
図6に示す無向グラフ600は、より少ない頂点及び辺を含み、したがって、このようなグラフを評価することをはるかに単純なタスクにする。換言すれば、
図5に示す元の無向グラフを評価することは今や、
図6に示すより単純なグラフ(副グラフとも呼ばれる)を評価することにより行われ得る。
【0042】
[0051] 比較的単純な量子回路200に加えて、開示されたシステム及び方法はまた、中間サイズ(50以上のキュービット)量子回路の古典的シミュレーションに使用され得る。
図7は、一実施形態による量子回路をシミュレートするための例示的処理を示すフローチャートを提示する。
【0043】
[0052] 動作中、本システムはシミュレートされるべき量子回路設計を受信する(動作702)。いくつかの実施形態では、量子回路は中間サイズを有し得る、すなわち、量子回路は、合理的な深さ(例えば、20を超える深さ)までの50以上のキュービットで動作する。次に、本システムは、この量子回路に基づき無向グラフを構築し得る(動作704)。具体的には、量子回路Cを所与として、本システムは、ビット列xの振幅をFeynman経路積分を使用して計算され得る〈x|C|00・・・0〉として定式化する。インデックス配列(i
0=0・・・0,i
1,i
2,i
d-1,i
d=x)を所与として、各個別変数
【数25】
は、構築された無向グラフ内の頂点に対応し、2つの頂点は、それらの両方に作用する演算子が存在する場合は、辺により接続され得る。同じ値を有する変数は同じ頂点に対応し、異なる値を有する変数は異なる頂点に対応するということに留意されたい。次に、Feynman経路積分内の各項は、{0,1}によりグラフ内のすべての頂点をラベル付けすることに関連する複素数に対応する。いくつかの頂点は少なくとも1つの単一キュービットゲートへ接続され、いくつかの頂点は少なくとも1つの2キュービットゲートへ接続される。さらに、いくつかの頂点は、複数の2キュービットゲートへ、又は単一キュービットゲートと2キュービットゲートとの組合せへ接続され得る。
図5に示す例では、頂点502は、単一キュービットゲート(すなわちTゲート)及び2つの2キュービットゲート(すなわち2つのCZゲート)へ接続される。
【0044】
[0053] その後、本システムは、複数の辺へ結合される頂点を求めて無向グラフを探索する(動作706)。いくつかの実施形態では、本システムは、各辺が少なくとも1つの2キュービットゲートを表す2つの辺へ結合される少なくとも1つの頂点を識別する。例えば、本システムは、2つのCZゲートへ結合される少なくとも1つの頂点を識別し得る。次に、本システムは、複数の辺へ結合される少なくとも1つの頂点を除去することにより、簡略化又は変換された無向グラフ(時に、副グラフと呼ばれる)を構築し得る(動作708)。頂点を除去することはまた、量子ゲートに対応する接続辺の除去を生じ得るということに留意されたい。例えば、頂点が2つのCZゲートへ接続される場合、このような頂点を除去することは、両方のCZゲートの同時除去を生じ得る。いくつかの実施形態では、本システムは識別された頂点を一度に1つ除去し得る。このような頂点が除去されるたびに、本システムは、無向グラフを評価するタスクを、それぞれが副グラフを評価する2つの副タスクへ分割し得る。代替的に、本システムは、複数(例えば2つ)の識別された頂点を同時に除去し得る。このようなシナリオでは、タスクは2m個の副タスクへ分割され得る。ここで、mは除去された頂点の数である。
【0045】
[0054] 無向グラフから頂点を除去することは、シミュレーションの時間及び空間複雑性の低減を保証しないということに留意されたい。既に論述されたように、頂点を除去することは、1つのシミュレーションタスクを2つの副タスクへ分割することをしばしば意味する。これは、簡略化された無向グラフが、2回(除去された頂点の値毎に1回)評価される必要があるためである。本システムが頂点を単に無作為的に除去する場合、副タスクの数は爆発的に増え得る。したがって、頂点除去は戦略的に行われるべきである。例えば、複数のゲートへ結合される頂点を除去することにより、複数のゲート(例えば2つのCZゲート)を同時に除去し得る。これは、2つの副タスクだけが除去の結果として生成されるということを意味し、したがって、簡略化された無向グラフの複雑性及び深さを最小費用で低減する。この結果、全体的な計算効率が改善され得る。
【0046】
[0055] 2m個の並列計算ユニットを有するコンピュータクラスタに関して、シミュレーションタスクは、CZゲート対へ結合されるm個の頂点を除去することにより、2m個の副タスクへ分割され得る。それぞれのこのような副タスクは、ランダムな頂点が除去される状況より効率的であり得る。いくつかの試験は次のことを示している:この戦略を使用して12個の頂点がサイズ8×8×40の量子回路から除去される場合、ゲートが一度に1つ除去される場合と比較して、無向グラフの木幅を5倍効果的に低減し得る。換言すれば、各回2つのゲートを同時に除去することにより、そして12個のこのような頂点を除去することにより、各副タスクの時間及び空間複雑性を、12個のランダムな頂点が除去される副タスクの時間及び空間複雑性の1/32まで低減し得る。12個の頂点は、それぞれが96個のコアを有する40個のノードを有するコンピュータクラスタにより処理され得る4096個の並列処理に対応し得るということに留意されたい。このようなコンピュータクラスタは、現在の技術を使用して実現され得る。より大きなコンピュータクラスタは、より多くの副タスクを促進し得、これにより、提案されたシミュレーションアルゴリズムをより効率的にする。
【0047】
[0056]
図8は、一実施形態による中間サイズ量子回路をシミュレートする例示的処理を示すフローチャートを提示する。動作中、本システムは、シミュレートされるべき量子回路を受信し(動作802)、シミュレートされるべき量子回路に基づき無向グラフを生成する(動作804)。量子回路は任意のサイズ又は次元のものであり得る。例えば、量子回路は2次元(2D)格子回路であり得る。このような構造は、M×N単一キュービット行列の階層を含み得る。ここで、M、Nは正の整数である。他のタイプの回路形式も可能である。古典的にシミュレートされ得る量子回路のサイズは、しばしば計算能力及び資源により制限される。いくつかの実施形態では、量子回路は少なくとも50個のキュービット及び少なくとも30の深さを有し得る。具体的には、最大100個のキュービット及び最大40の深さを有する量子回路が効果的にシミュレートされ得る。いくつかの実施形態では、無向グラフのそれぞれの辺は、シミュレートされるべき量子回路内の1つ又は複数の2キュービットゲートに対応し、無向グラフ内のそれぞれの頂点は、同じ値を有するFeynman経路積分のインデックスに対応する。異なる値を有するFeynman経路積分のインデックスは、無向グループ内の異なる頂点に対応するということに留意されたい。次に、本システムは、無向グラフから1つ又は複数の頂点を除去することにより、副グラフを生成し得る(動作806)。例えば、本システムは、無向グラフを、1つの頂点を除去することにより副グラフに変換し得る。
【0048】
[0057] 無向グラフ内には様々なタイプの頂点が存在する。いくつかの頂点はユニタリゲートへ結合され、いくつかの頂点は2キュービットゲートへ結合され、いくつかはユニタリと2キュービットゲートとの組合せへ結合される。無向グラフ内のいくつかの頂点の除去は量子回路の時間及び空間複雑性を低減し得るが、すべての頂点が、除去される場合に時間及び空間複雑性の低減を生じ得るとは限らない。いくつかの実施形態では、本システムは、除去のために少なくとも2つの2キュービットゲートへ同時に結合される頂点(すなわち少なくとも2つの辺へ接続される頂点)を選択する。このような頂点は、時に交差頂点と呼ばれ得る。無向グラフ内の交差頂点を識別するために、いくつかの実施形態では、本システムは、無向グラフ全体内のすべての頂点を走査し得る。代替的に、本システムは、量子回路内のすべての2キュービットゲートを調査し得る。2キュービットゲート毎に、本システムは、無向グラフ内の2キュービットゲートへ結合される一対の頂点を識別し、そして重複した頂点を発見することにより、本システムは複数のゲートへ同時に結合される頂点を識別し得る。いくつかの実施形態では、2キュービットゲートはCZゲートなどの対角ゲートである。
【0049】
[0058] テンソル縮約を無向グラフに対し行う際、変数削除順序付けは、シミュレーションの時間複雑性に著しい影響を与え得る。テンソル縮約効果を強化するために、いくつかの実施形態では、本システムは、より良い削除順序付けを得るために木幅計算アルゴリズム(例えばQuickBBアルゴリズム)を使用して、無向グラフの木幅を判断し得る。例えば、本システムは、頂点の順序付きリスト(これらの頂点の除去の順序付けを指示する)を含むテンソル縮約戦略を出力し得る。動作中、本システムは、順序付きリストに従って、所定期間内に最適解を得るために無向グラフから一度に1つの頂点を除去し得る。
【0050】
[0059] 加えて、様々なゲートの除去は、様々なテンソル縮約効果を生じ得るので、量子回路の時間及び空間複雑性の低減に様々な影響も与え得る。いくつかの実施形態では、最大テンソル縮約効果を得るために、本システムは、順序付きリスト内のいくつかの頂点を除去しないことを選択し得る。具体的には、頂点の除去が最小又は劣悪テンソル縮約だけを生じる場合、本システムは、このような頂点を除去することをスキップし得る。いくつかの実施形態では、本システムは、除去のために交差頂点(すなわち少なくとも2つの2キュービットゲートへ結合される頂点)を選択する所定戦略を使用し得る。例えば、除去されるとより強いテンソル縮約効果を導入し得る交差頂点を除去することが望ましい。いくつかの実施形態では、交差頂点を除去する際、本システムは、所定アルゴリズム(例えばグリーディアルゴリズム又はダイナミックプログラミングアルゴリズム)を使用して、除去されるべき頂点を選択し得る。
【0051】
[0060] グリーディアルゴリズムを行う際、本システムは、テンソル縮約順序付けに基づきグリーディアルゴリズムの選択範囲(例えば候補集合)を最初に判断し、次に、本システムは、この選択範囲内で、所定目的関数に基づき、除去されるべき頂点を選択し得る。いくつかの実施形態では、目的関数は、除去されるべき頂点の除去に続いて残りの副タスクの実行時間を評価するために使用され得る。残りの副タスクの実行時間が最小限に保たれることを保証することが望ましい。
【0052】
[0061] グリーディアルゴリズムは、大局的最適条件を発見する目的で各段階において局所的最適選択を行う問題解決発見的方法に従う。換言すれば、グリーディアルゴリズムは、別の選択を考慮することなく現時点で最良と思われる選択を行うことを試みる。グリーディアルゴリズムは通常、合理的な時間内に最適解を生成しないが、大局的最適解を近似する局所的に最適な解を提供し得る。余効(aftereffect)がない(すなわち、現在状態の前に発生したものだけが将来状態ではなく現在状態に影響を及ぼす)グリーディ戦略を選択することが重要である。
【0053】
[0062] グリーディアルゴリズムは、いくつかの最適化問題を解くためのより単純且つ速いツールを提供し得る。グリーディアルゴリズムは、最適化を段階的に行い、そして、すべての可能な将来選択を考慮することなく現在状態及びある最適化基準に基づき最適選択を行う。グリーディアルゴリズムは、大局的最適化を発見するために必要な時間を低減し得る。グリーディアルゴリズムは、連続的グリーディ選択を反復的に行うためにトップダウン手法を使用する。各グリーディ選択は、問題をより単純な副問題に変換し得る。各工程では、局所的最適が発見される。しかし、グリーディアルゴリズムは大局的最適条件を保証しなく、そしてグリーディアルゴリズムは後戻りしない。少なくとも2つの2キュービットゲートへ接続される除去されるべき頂点を見つけ出すためにグリーディアルゴリズムを使用することは、大局的最適条件を発見するために必要な時間を低減し得る。
【0054】
[0063] いくつかの実施形態では、除去されるべき頂点を選択する際、本システムは、テンソル縮約の順序付きリスト内に含まれるすべての交差頂点を走査し、そして、頂点毎に、残りの副タスクの予測実行時間を計算し得る。予測実行時間はテンソル縮約順序付けに基づき計算され得る。例えば、本システムは、インデックスを取得するために順序付きリスト上の最初の頂点を除去することに続いて、無向グラフのテンソルランクを使用し得る。無向グラフから順序付きリスト上の第2の頂点を除去することに続いて、本システムは、テンソルランクのインデックスを追加する。本システムは、順序付きリスト上のすべての頂点が除去されるまでの予測実行時間を取得する。次に、本システムは、最小量の予測実行時間に対応する頂点を判断するために、グリーディアルゴリズムを使用し得る(すなわち、このような頂点を除去することは残りの副タスクの最小実行時間を生じ得る)。
【0055】
[0064] 一方で、ダイナミックプログラミング(DP:dynamic programming)は、最適化問題をより単純な副問題へ分解する。前の副問題の解は、次の副問題の解を発見するために役に立つ情報を提供し得る。副問題を解く際、DPアルゴリズムは、可能な局所解を列挙し、そして、他の解を廃棄する一方で、局所的最適を達成し得る局所解を戦略的に維持する。最後の副問題の解は初期問題の解になる。DPにより解かれる多くの問題は再帰的である副問題を有し、したがって、各副問題が一回だけ解かれるように各副問題の解を格納することは、重複計算を削除し、効率を増加し得る。各副問題(例えば様々な段階における状態)の解は、2Dアレイ(例えばハッシュ表)内に格納され得る。
【0056】
[0065] いくつかの実施形態では、無向グラフから交差頂点を除去することは、頂点に対応するFeynman経路積分のインデックスを除去することに関与し得る。このような交差頂点が除去されるたびに、少なくとも2つの2キュービットゲートが除去される。さらに、頂点はFeynman経路積分内のインデックスに対応するので、このような頂点を除去することはまた、このようなインデックスに関係する他の量子ゲートの除去を生じ得る。
【0057】
[0066] 無向グラフを副グラフに変換することに続いて、本システムは、副グラフを評価し(動作808)、評価が成功したかどうかを判断し得る(動作810)。評価が成功した場合、本システムは評価結果を出力する(動作812)。そうでなければ、本システムは、追加の頂点を除去することにより現在の副グラフの副グラフを生成することを続ける(動作806)。いくつかの実施形態では、元の無向グラフは複数の副グラフへ分割され得、各副グラフは別々に評価され得る。副グラフの評価結果は、最終結果を生成するために組み合わせられ得る。次に、このような結果は、量子回路の振る舞いをシミュレートするために使用され得る。
【0058】
[0067]
図9は、一実施形態による量子回路をシミュレートするための装置を示す。装置900は、量子回路モジュール902、グラフ生成モジュール904、頂点選択モジュール906、グラフ変換モジュール908、グラフ評価モジュール910及び出力モジュール912を含む。量子回路モジュール902は、量子ゲート及び量子レジスタを含み得る。量子ゲートはキュービットに作用し、量子レジスタは、量子計算中に量子計算に使用される初期量子状態と一時的量子状態とを格納する。グラフ生成モジュール904は、量子回路に基づき無向グラフを生成する責任を負い得る。頂点選択モジュール906は、除去されるべき頂点を選択する責任を負い得る。いくつかの実施形態では、頂点選択モジュール906は、テンソル縮約順序付けを判断するために木幅計算アルゴリズムを使用し、そして、除去されるべき頂点を選択するためにグリーディアルゴリズムを使用し得る。いくつかの実施形態では、各除去されるべき頂点は少なくとも2つの2キュービット量子ゲートへ結合される。
【0059】
[0068] グラフ変換モジュール908は、無向グラフを1つ又は複数の副グラフに変換する責任を負い得る。例えば、副グラフは、無向グラフから、2つの2キュービットゲートへ結合される1つの頂点を除去することにより、生成され得る。さらに、別の副グラフは、現在の副グラフから、2つの2キュービットゲートへ結合される追加の頂点を除去することにより、生成され得る。グラフ評価モジュール910は、副グラフを評価する責任を負い得、出力モジュール912は、評価結果を出力する責任を負い得る。
【0060】
[0069] 一般的に、本発明の実施形態は、中間サイズの量子回路の古典的シミュレーションを促進するシステム及び方法を提供する。具体的には、量子回路は、無向グラフを使用してモデル化され得る。無向グラフィックモデル内の削除するべき頂点を適切に選択することにより、本発明の実施形態は、頂点を無作為に選択することと比較して、無向グラフの木幅を著しく低減し得る。無向グラフから頂点を削除することは、グラフ評価タスクを多くの副タスクへ分割し、したがって並列処理を可能にする。これは、各副タスクが独立に行われ得るためである。計算効率を強化するために、いくつかの実施形態では、本システムは、それぞれが削除のために多キュービットゲート(例えばCZゲート)に対応する少なくとも2つの辺へ結合される頂点を選択する。別の実施形態では、グリーディアルゴリズムが、除去されるべき頂点を選択するために使用される。グリーディアルゴリズムの効率を増加するために、本システムは最初に、変数削除順序付けを計算するために木幅計算アルゴリズム(例えばQuickBBアルゴリズム)を使用し、そしてこの順序付けに基づきグリーディアルゴリズムを適用する。他の最適化アルゴリズム(例えばDPアルゴリズム)もまた、除去されるべき頂点を無向グラフから識別するために使用され得る。
【0061】
[0070]
図10は、一実施形態による主題技術を実施する電子システムを概念的に示す。電子システム1000は、クライアント、サーバ、コンピュータ、スマートフォン、PDA、ラップトップ、又はその中に埋め込まれる若しくはそれへ結合される1つ又は複数のプロセッサを有するタブレットコンピュータ、又は任意の他の種類の電子デバイスであり得る。このような電子システムは、様々なタイプのコンピュータ可読媒体と、様々な他のタイプのコンピュータ可読媒体のためのインターフェースとを含む。電子システム1000は、バス1008、処理ユニット1012、システムメモリ1004、読み出し専用メモリ(ROM)1010、永久記憶デバイス1002、入力デバイスインターフェース1014、出力デバイスインターフェース1006及びネットワークインターフェース1016を含む。
【0062】
[0071] バス1008は、電子システム1000の非常に多くの内部デバイス同士を通信可能に接続するすべてのシステムバス、周辺バス、及びチップセットバスを集合的に表す。例えば、バス1008は、処理ユニット1012と、ROM 1010、システムメモリ1004及び永久記憶デバイス1002とを通信可能に接続する。
【0063】
[0072] これらの様々なメモリユニットから、処理ユニット1012は、本主題開示の処理を実行するために、実行すべき命令及び処理すべきデータを取り出す。処理ユニットは、様々な実施態様における単一プロセッサ又はマルチコアプロセッサであり得る。
【0064】
[0073] ROM 1010は、電子システム1000の処理ユニット1012及び他のモジュールにより必要とされる静的データ及び指示を格納する。一方で、永久記憶デバイス1002はリード/ライトメモリデバイスである。このデバイスは、電子システム1000がオフである場合ですら命令及びデータを格納する不揮発性メモリユニットである。本主題開示のいくつかの実施態様は、永久記憶デバイス1002として大量記憶デバイス(磁気又は光ディスク、及びその対応するディスクドライブなど)を使用する。
【0065】
[0074] 他の実施態様は、永久記憶デバイス1002として着脱可能記憶デバイス(フロッピーディスク、フラッシュドライブ及びその対応ディスクドライブなど)を使用する。永久記憶デバイス1002のように、システムメモリ1004はリード/ライトメモリデバイスである。しかし、記憶デバイス1002とは異なり、システムメモリ1004はランダムアクセスメモリなどの揮発性リード/ライトメモリである。システムメモリ1004は、実行時にプロセッサが必要とする命令及びデータのうちのいくつかを格納する。いくつかの実施態様では、本主題開示の処理は、システムメモリ1004、永久記憶デバイス1002、及び/又はROM 1010内に格納される。これらの様々なメモリユニットから、処理ユニット1012は、いくつかの実施態様の処理を実行するために、実行すべき命令及び処理すべきデータを取り出す。
【0066】
[0075] バス1008はまた、入出力デバイスインターフェース1014、1006それぞれへ接続する。入力デバイスインターフェース1014は、ユーザが情報を電子システムへ伝達することと、電子システムのための命令を選択することとを可能にする。入力デバイスインターフェース1014と共に使用される入力デバイスは、例えば英数字キーボード及びポインティングデバイス(「カーソル制御デバイス」とも呼ばれる)を含む。出力デバイスインターフェース1006は、例えば電子システム1000により生成される画像の表示を可能にする。出力デバイスインターフェース1006と共に使用される出力デバイスは、例えばプリンタと、陰極線管(CRT)又は液晶ディスプレイ(LCD)などのディスプレイデバイスとを含む。いくつかの実施態様は、入力デバイスと出力デバイスとの両方として働くタッチスクリーンなどのデバイスを含む。
【0067】
[0076] 最後に、
図10に示すように、バス1008はまた、ネットワークインターフェース1016を介し電子システム1000をネットワーク(図示せず)へ結合する。このようにして、コンピュータは、コンピュータのネットワーク(ローカルエリアネットワーク(「LAN」)、広域ネットワーク(「WAN」)、又はイントラネット、又はインターネットなどのネットワーク群のネットワークの一部分であり得る。電子システム1000の任意の又はすべての部品は本主題開示と併せて使用され得る。
【0068】
[0077] 上に説明されたこれらの機能は、デジタル電子回路で、又はコンピュータソフトウェア、ファームウェア、若しくはハードウェアで実現され得る。これらの技術は1つ又は複数のコンピュータプログラム製品を使用して実現され得る。プログラム可能プロセッサ及びコンピュータが、移動式デバイス内に含まれ得る、又は移動式デバイスとしてパッケージ化され得る。処理及び論理フローは、1つ又は複数のプログラム可能プロセッサにより又は1つ又は複数のプログラマブルロジック回路系により行われ得る。汎用及び専用コンピュータデバイスと、記憶デバイスとは、通信ネットワークを介し相互接続され得る。
【0069】
[0078] 様々な実施形態のこれまでの説明は図解及び説明の目的のためだけに提示されている。これらは、網羅的であるように意図されていない、又は開示された形式へ本発明を制限するように意図されていない。したがって、多くの修正及び変形形態が当業者にとって明らかになる。加えて、上記開示は本発明を制限するように意図されていない。