(57)【要約】  本明細書において説明される一実施形態は、複数の量子ゲートを含む量子回路の振る舞いをシミュレートするためのシステム及び方法を提供する。動作中、本システムは、量子回路を表すとともに量子回路に対応する無向グラフを構築する情報を受信する。無向グラフ内のそれぞれの頂点が、量子回路の振幅を計算するために使用されるFeynman経路積分における個別変数に対応し、それぞれの辺は１つ又は複数の量子ゲートに対応する。本システムは、少なくとも２つの２キュービット量子ゲートへ結合される無向グラフ内の頂点を識別し；識別された頂点を除去することにより無向グラフを簡略化し、これにより、識別された頂点へ結合される２キュービット量子ゲートを効果的に除去し；簡略化された無向グラフを評価し、これにより量子回路の振る舞いのシミュレーションを促進する。
2021520546.tif 000002
【特許請求の範囲】
【請求項１】
複数の量子ゲートを含む量子回路の振る舞いをシミュレートするコンピュータ実施方法であって、前記方法は、
前記量子回路を表す情報をコンピュータデバイスにより受信すること；
前記量子回路に対応する無向グラフを構築することであって、前記無向グラフ内のそれぞれの頂点が、前記量子回路の振幅を計算するために使用されるFeynman経路積分における個別変数に対応し、それぞれの辺が１つ又は複数の量子ゲートに対応する、構築すること；
少なくとも２つの２キュービット量子ゲートへ結合される前記無向グラフ内の頂点を識別すること；
前記識別された頂点を除去することにより前記無向グラフを簡略化し、これにより、前記識別された頂点へ結合される前記２キュービット量子ゲートを効果的に除去すること；及び
前記簡略化された無向グラフを評価し、これにより前記量子回路の前記振る舞いのシミュレーションを促進すること、を含む、コンピュータ実施方法。
【請求項２】
前記頂点を識別することは、前記無向グラフ内のすべての頂点を走査することを含む、請求項１に記載のコンピュータ実施方法。
【請求項３】
前記頂点を識別することは、前記簡略化された無向グラフを評価するための実行時間に関連付けられた目的関数に基づきグリーディアルゴリズムを行うことを含む、請求項１に記載のコンピュータ実施方法。
【請求項４】
木幅計算アルゴリズムを使用して初期テンソル縮約順序付けを計算することをさらに含む、請求項３に記載のコンピュータ実施方法。
【請求項５】
前記グリーディアルゴリズムを行うことは、
前記初期テンソル縮約順序付けに基づき局所範囲を選択すること；及び
最適頂点を除去することが前記無向グラフを評価することに伴う最小時間費用を生じるようなやり方で、前記局所範囲内の除去のための前記最適頂点を選択することを含む、請求項４に記載のコンピュータ実施方法。
【請求項６】
前記頂点を識別することは、ダイナミックプログラミングアルゴリズムを行うことを含む、請求項１に記載のコンピュータ実施方法。
【請求項７】
前記２キュービット量子ゲートは、２キュービット対角量子ゲートを含む、請求項１に記載のコンピュータ実施方法。
【請求項８】
前記２キュービット対角量子ゲートは、制御型Ｚ（ＣＺ）ゲートを含む、請求項７に記載のコンピュータ実施方法。
【請求項９】
前記量子回路は、少なくとも５０個のキュービット及び少なくとも３０の深さを有する、請求項１に記載のコンピュータ実施方法。
【請求項１０】
複数の量子ゲートを含む量子回路の振る舞いをシミュレートするためのコンピュータシステムであって、前記システムは、
プロセッサと；
前記プロセッサへ結合される記憶デバイスであって、前記プロセッサにより実行されると前記プロセッサに方法を実行させる命令を格納する記憶デバイスと、を含み、前記方法は、
前記量子回路を表す情報を受信すること；
前記量子回路に対応する無向グラフを構築することであって、前記無向グラフ内のそれぞれの頂点が、前記量子回路の振幅を計算するために使用されるFeynman経路積分における個別変数に対応し、それぞれの辺は１つ又は複数の量子ゲートに対応する、構築すること；
少なくとも２つの２キュービット量子ゲートへ結合される前記無向グラフ内の頂点を識別すること；
前記識別された頂点を除去することにより前記無向グラフを簡略化し、これにより、前記識別された頂点へ結合される前記２キュービット量子ゲートを効果的に除去すること；及び
前記簡略化された無向グラフを評価し、これにより前記量子回路の前記振る舞いのシミュレーションを促進することを含む、コンピュータシステム。
【請求項１１】
前記頂点を識別することは、前記無向グラフ内のすべての頂点を走査することを含む、請求項１０に記載のコンピュータシステム。
【請求項１２】
前記頂点を識別することは、前記簡略化された無向グラフを評価するための実行時間に関連付けられた目的関数に基づきグリーディアルゴリズムを行うことを含む、請求項１０に記載のコンピュータシステム。
【請求項１３】
前記方法は、木幅計算アルゴリズムを使用して初期テンソル縮約順序付けを計算することをさらに含む、請求項１２に記載のコンピュータシステム。
【請求項１４】
前記グリーディアルゴリズムを行うことは、
前記初期テンソル縮約順序付けに基づき局所範囲を選択すること；及び
最適頂点を除去することが前記無向グラフを評価することに伴う最小時間費用を生じるようなやり方で、前記局所範囲内の除去のための前記最適頂点を選択すること、を含む、請求項１３に記載のコンピュータシステム。
【請求項１５】
前記頂点を識別することは、ダイナミックプログラミングアルゴリズムを行うことを含む、請求項１０に記載のコンピュータシステム。
【請求項１６】
前記２キュービット量子ゲートは、２キュービット対角量子ゲートを含み、前記２キュービット対角量子ゲートは、制御型Ｚ（ＣＺ）ゲートを含む、請求項１０に記載のコンピュータシステム。
【請求項１７】
前記量子回路は、少なくとも５０個のキュービット及び少なくとも３０の深さを有する、請求項１０に記載のコンピュータシステム。
【請求項１８】
コンピュータにより実行されると前記コンピュータに複数の量子ゲートを含む量子回路の振る舞いをシミュレートする方法を行わせる命令を格納する非一時的コンピュータ可読記憶媒体であって、前記方法は、
前記量子回路を表す情報をコンピュータデバイスにより受信すること；
前記量子回路に対応する無向グラフを構築することであって、前記無向グラフ内のそれぞれの頂点が、前記量子回路の振幅を計算するために使用されるFeynman経路積分における個別変数に対応し、それぞれの辺は１つ又は複数の量子ゲートに対応する、構築すること；
少なくとも２つの２キュービット量子ゲートへ結合される前記無向グラフ内の頂点を識別すること；
前記識別された頂点を除去することにより前記無向グラフを簡略化し、これにより、前記識別された頂点へ結合される前記２キュービット量子ゲートを効果的に除去すること；及び
前記簡略化された無向グラフを評価し、これにより前記量子回路の前記振る舞いのシミュレーションを促進することを含む、非一時的コンピュータ可読記憶媒体。
【請求項１９】
前記頂点を識別することは、前記簡略化された無向グラフを評価するための実行時間に関連付けられた目的関数に基づきグリーディアルゴリズムを行うことを含む、請求項１８に記載の非一時的コンピュータ可読記憶媒体。
【請求項２０】
前記方法は、木幅計算アルゴリズムを使用して初期テンソル縮約順序付けを計算することをさらに含み、前記グリーディアルゴリズムを行うことは、
前記初期テンソル縮約順序付けに基づき局所範囲を選択すること；及び
最適頂点を除去することが前記無向グラフを評価することに伴う最小時間費用を生じるようなやり方で、前記局所範囲内の除去のための前記最適頂点を選択することを含む、請求項１９に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
背景
分野
[0001]  本開示は一般的には量子計算に関する。具体的には、本開示は量子回路の分散シミュレーションを行うためのシステム及び方法に関する。
【背景技術】
【０００２】
関連技術
[0002]  近年、量子計算における研究努力が著しい進歩を成し遂げた。量子計算は重ね合わせ及びもつれなどの量子力学原理に基づく計算を指す。大規模量子コンピュータは、最もよく現在知られたアルゴリズムを使用するいかなる古典的コンピュータよりもさらに迅速にいくつかの問題を理論的に解き得る。これらの問題は、一群のすべての可能な解内に検索可能な構造が存在しない整数因数分解問題及びデータベース検索問題を含み得る。さらに、量子コンピュータは場合によっては、古典的コンピュータにより解かれることがほとんど実現可能でない問題を解くことができるかもしれない。
【０００３】
[0003]  データが２進数（それぞれが２つの定義された状態（０又は１）に常にある）へ符号化されることを要求する一般的なデジタル計算とは異なり、量子計算は、状態の重ね合わせ状態をとり得る量子ビット（又はキュービット）を使用する。キュービットは電子のスピン又は光子の偏光状態などの２状態（又は２レベル）量子力学系であり得る。例えば、スピンアップ状態は「１」を表し得、一方、スピンダウン状態は「０」を表し得る。アップでもダウンでもないスピンは重ね合わせ状態を表し得る。少数のキュービットが比較的大量の情報を保持し得る。例えば、１００個の粒子の重ね合わせ状態は最大２１００の数を表し得る。量子コンピュータは、超高速レーザパルス又は他の同様な技術を使用してそのキュービットで動作し得る。
【０００４】
[0004]  量子コンピュータの継続的ハードウェア開発は、制御されたキュービットの数を９又は１０から５０又は７２まで増加した。このようなシステムは依然として試作品であるが、大規模量子コンピュータ（例えば、５０を超えるキュービットと３０を超える層とを有する量子コンピュータ）が、予測したように振る舞うかどうかを検証することが重要である。例えば、量子回路の正確なシミュレーション無しに、雑音のある量子回路の実際の出力と理想的な無雑音の量子回路の出力との違いは分からなく、したがって回路の効率を判断することを不可能にする。具体的には、Ｎキュービットにわたって動作する量子回路Ｃに関し、その入力が｜００．．．０〉であると仮定すると、〈ｉ１，ｉ２，．．．，ｉｎ｜Ｃ｜００．．．０〉を知る必要がある、ここで｜ｉ１，ｉ２，．．．，ｉｎ〉は任意の量子列である。量子系の古典的シミュレーションは、雑音のある中間規模量子（ＮＩＳＱ：noisy intermediate-scale quantum）の領域において価値あるツールであるということが示されている。
【０００５】
[0005]  量子優越性又は量子利点は、古典的コンピュータがほとんど解くことができない問題を解く量子計算デバイスの潜在力を指す。２０１７年に、Google（登録商標）は、ランダムな量子回路の出力分布をサンプリングする問題を解くことにより量子優越性を実証するための計画を発表した。Googleはその後、Google量子プロセッサ上で実行する量子回路からの結果を解析することになるプロジェクトを発表した。理論的研究は、量子優越性が７×７キュービットの２次元格子と約４０クロック周期とにより可能であり得るということを示唆した。後の研究は、古典的シミュレーションが扱い得るものの境界を５０個のキュービットまで押し上げた。
【０００６】
[0006]  しかし、依然として欠けているのは、大規模量子回路をシミュレートするための効果的な解決策である。主要な障害は、キュービットの数が５０に達すると、状態空間の次元が２５０まで上昇し得、最大１６ＰＢのメモリ空間を必要とすることである。ここで１ＰＢ＝１０２４ＴＢである。このようなメモリ要件は最先端スーパーコンピュータをすら越えるものである。状態の一部のみ格納する場合、回路計算は、格納されていない情報を要求し続けることになり、大量の通信オーバヘッドを招く。
【発明の概要】
【課題を解決するための手段】
【０００７】
概要
[0007]  本明細書において説明される一実施形態は、複数の量子ゲートを含む量子回路の振る舞いをシミュレートするためのシステム及び方法を提供する。動作中、本システムは、量子回路を表す情報を受信し、量子回路に対応する無向グラフを構築する。無向グラフ内のそれぞれの頂点は、量子回路の振幅を計算するために使用されるFeynman経路積分における個別変数に対応し、それぞれの辺は、１つ又は複数の量子ゲートに対応する。本システムは、少なくとも２つの２キュービット量子ゲートへ結合される無向グラフ内の頂点を識別し；識別された頂点を除去することにより無向グラフを簡略化し、これにより、識別された頂点へ結合される２キュービット量子ゲートを効果的に除去し；簡略化無向グラフを評価し、これにより量子回路の振る舞いのシミュレーションを促進する。
【０００８】
[0008]  この実施形態の変形では、頂点を識別することは、無向グラフ内のすべての頂点を走査する（traverse）ことを含む。
【０００９】
[0009]  この実施形態の変形では、頂点を識別することは、簡略化された無向グラフを評価するための実行時間に関連付けられた目的関数に基づきグリーディ（greedy）アルゴリズムを行うことを含む。
【００１０】
[0010]  別の変形では、本システムは、木幅計算アルゴリズム（treewidth computing algorithm）を使用して初期テンソル縮約順序付け（tensor-contraction ordering）を計算する。
【００１１】
[0011]  別の変形では、グリーディアルゴリズムを行うことは、初期テンソル縮約順序付けに基づき局所範囲を選択することと、最適頂点を除去することが無向グラフを評価することに伴う最小時間費用を生じるようなやり方で、局所範囲内の除去のための最適頂点を選択することとを含む。
【００１２】
[0012]  この実施形態の変形では、頂点を識別することは、ダイナミックプログラミングアルゴリズムを行うことを含む。
【００１３】
[0013]  この実施形態の変形では、２キュービット量子ゲートは、２キュービット対角量子ゲートを含む。
【００１４】
[0014]  別の変形では、２キュービット対角量子ゲートは、制御型Ｚ（ＣＺ：controlled-Z）ゲートを含む。
【００１５】
[0015]  この実施形態の変形では、量子回路は、少なくとも５０個のキュービットと少なくとも３０の深さとを有する。
【図面の簡単な説明】
【００１６】
図面の簡単な説明
【図１】[0016]３キュービットGreenberger, Horne, and Zeilinger（ＧＨＺ）状態を生成するための量子回路を示す。
【図２】[0017]別の例示的量子回路を示す。
【図３】[0018]一実施形態による無向グラフ内の単一キュービット対角ゲート、２キュービット対角ゲート及び非対角ゲート、並びにそれらの対応表現を示す。
【図４】[0019]一実施形態による量子回路２００の無向グラフを示す。
【図５】[0020]一実施形態によりｘ＝０１０を所与として、量子回路２００の無向グラフを示す。
【図６】[0021]一実施形態による２つのＣＺゲート及び１つの接続型（connected）Ｔゲートの除去後の量子回路２００の無向グラフを示す。
【図７】[0022]一実施形態による量子回路をシミュレートするための例示的処理を示すフローチャートを提示する。
【図８】[0023]一実施形態による中間サイズ量子回路をシミュレートするための例示的処理を示すフローチャートを提示する。
【図９】[0024]一実施形態による量子回路をシミュレートするための装置を示す。
【図１０】[0025]一実施形態による主題技術を実施する電子システムを概念的に示す。
【発明を実施するための形態】
【００１７】
[0026]  添付図面では、同様な参照符号は同じ要素を指す。
【００１８】
詳細な説明
[0027]  以下の説明は、当業者が本実施形態をなしそして使用できるようにするために提示され、特定アプリケーション及びその要件の文脈で提供される。本開示実施形態に対する様々な修正は当業者に容易に明らかになり、本明細書で定義された一般的原理は、本開示の精神及び範囲から逸脱することなく他の実施形態及びアプリケーションへ適用され得る。したがって、本発明は、示された実施形態に限定されないが、本明細書に開示された原理及び特徴に整合する最も広い範囲を与えられるものとする。
【００１９】
概要
[0028]  本発明のいくつかの実施形態は、量子回路の効率的シミュレーションのための方法及びシステムを提供する。具体的には、シミュレーションシステムは、テンソルネットワーク縮約手法（tensor network contraction approach）を使用し、無向グラフを使用することにより量子回路をモデル化する。動作中、シミュレーションシステムは、２つの制御型Ｚ（ＣＺ）ゲートと結合する頂点を識別するために、無向グラフを調査する。頂点を削除することにより、シミュレーションシステムは、２つのＣＺゲートを同時に削除し得、したがって無向グラフの時間複雑性及び空間複雑性を著しく低減する。
【００２０】
無向グラフィックモデル
[0029]  量子回路をシミュレートするための２つの手法が存在する。１つの手法は行列乗算に基づき、１つの手法はテンソルネットワーク縮約に基づく。行列乗算手法は、スーパーコンピュータ上で並列に処理され得るが、制限された空間複雑性でもって処理され得、テンソルネットワーク縮約手法は、並列処理において困難に遭遇する。シミュレーション効率を強化するために、いくつかの実施形態では、シミュレーションシステムは、並列に処理されるテンソルネットワーク縮約手法を使用する。具体的には、シミュレーションシステムは、無向グラフィックモデルを使用して量子回路をモデル化する。無向グラフ又は無向ネットワークは、一緒に接続される一組のオブジェクト（頂点又はノードと呼ばれる）を指すということに留意されたい。ここで、すべての辺は双方向性である。
【００２１】
[0030]  量子回路は、ｎビットレジスタの量子力学的な類似の仕組み（a quantum mechanical analog）の可逆的変換である量子ゲートを使用して量子計算をモデル化するために使用され得る。この類似構造はｎキュービットレジスタ又は量子レジスタとも呼ばれ得る。量子回路では、量子レジスタが初期量子状態を格納する。典型的実施態様では、初期量子状態はすべて零であり得、各計算は対応量子ゲートを使用して実施され得る。計算の組合せは一系列の量子ゲートを使用することにより表され得る。
【００２２】
[0031]  具体的には、各キュービットは２次元（２Ｄ）ベクトル
【数１】
2021520546.tif 000003
を使用して表現され得る、ここで｜ａ｜２＋｜ｂ｜２＝１である。量子回路では、各量子ゲートは、状態ＵＵ＋＝Ｉを満足するユニタリ行列Ｕを表し得る、ここで、Ｉは単位行列である。一般的な量子ゲートは、単一キュービットゲート（例えば、Ｐａｕｌｉ−Ｘ（又はＸ）ゲート、Ｐａｕｌｉ−Ｙ（又はＹ）ゲート、Ｐａｕｌｉ−Ｚ（又はＺ）ゲート、Ｉゲート、Ｔゲートなど）及び２キュービットゲート（例えば、制御型ＮＯＴ（ＣＮＯＴ：controlled NOT）ゲート、ＣＺゲートなど）を含み得る。
【００２３】
[0032]  単一キュービット量子ゲートは次のように表現され得る：
【数２】
2021520546.tif 000004
。２キュービット量子ゲートは次のように表現され得る：
【数３】
2021520546.tif 000005
。各単一キュービット量子ゲートは単一キュービットの状態を変更し得、変更されたこのような状態は、このゲートに対応する行列とキュービットを表すベクトルとを多重化することにより実現され得る（すなわち
【数４】
2021520546.tif 000006
）。同様に、２キュービット量子ゲートは２つのキュービットの状態を変更し得る。
【００２４】
[0033]  図１は、３キュービットGreenberger, Home, and Zeilinger（ＧＨＺ）状態を生成するための例示的量子回路を示す。図１の例では、量子回路１００は、３つの水平線により表される３つの量子レジスタを含み得る。さらに、量子回路１００は、ゲート１０２、１０４などの多くのHadamardゲート（Ｈ）、及びゲート１０６、１０８などの多くのＣＺゲートを含み得る。Ｈゲートは単一キュービットゲートであり、ＣＺゲートは２キュービットゲートである。初期の全零入力を所与として、量子回路１００の出力は
【数５】
2021520546.tif 000007
のように表現され得る。
【００２５】
[0034]  量子回路Ｃの出力振幅は〈ｘ｜Ｃ｜００・・・０〉のように表現され得る。さらに、各量子回路は各ゲートの動作の時間に従って多くの層へ分解され得る。例えば、量子回路Ｃはｄ個の層へ分解され得る：Ｃ＝Ｃｄ・・・Ｃ２Ｃ１、ここで、Ｃ１，Ｃ２，．．．，Ｃｄは、時刻ｔ１，ｔ２，．．．，ｔｄそれぞれにおいてｎキュービットへ適用されるユニタリ行列である。いくつかの実施形態では、時刻ｔ１，ｔ２，．．．，ｔｄはクロック周期１，２，．．．，ｄをそれぞれ表し得る。したがって、このような量子回路の出力振幅は次のように表現され得る：
【数６】
2021520546.tif 000008
。
【００２６】
[0035]  図２は、別の例示的量子回路を示す。量子回路２００は３つのキュービットへ適用され得、５層の深さを有し得る。具体的には、量子回路２００は、多くのＨゲート（例えばＨゲート２０２、２０４）、多くのＴゲート（例えばＴゲート２０６、２０８）、多くのＣＺゲート（例えばＣＺゲート２１０、２１２）、及び平方根（ＳＱＲＴ）ゲート２１４を含む。
【００２７】
[0036]  ５層を所与として、量子回路２００はＣ＝Ｃ５・・・Ｃ２Ｃ１と表現され得る、ここで
【数７】
2021520546.tif 000009
である。したがって、量子回路２００の出力振幅は次のように表現され得る：
【数８】
2021520546.tif 000010
。
【００２８】
[0037]  上式では、サーメーションは、すべての４つの３ビット（０，１）列（すなわちｉ１，ｉ２，ｉ３，ｉ４）にわたって行われる。Ｔゲート及びＣＺゲートは対角ゲートであるので、サーメーションを計算する際、
【数９】
2021520546.tif 000011
は、ｉ３、ｉ４が同一列である場合だけ非零であり得、
【数１０】
2021520546.tif 000012
は、ｉ２、ｉ３が同一列である場合だけ非零であり得、
【数１１】
2021520546.tif 000013
は、ｉ１、ｉ２の最初の２つのビットが同一である場合だけ非零であり得る。一方で、Ｈゲートは非対角ゲートであるので、追加制約は
【数１２】
2021520546.tif 000014
へ適用され得ない。一般的に、サーメーション内の乗算はｉ２＝ｉ３＝ｉ４の場合だけ非零であり得、最初の２つのビットｉ１、ｉ２は同一である。したがって、サーメーションを計算する際、このような条件を満たすビット列（ｉ１，ｉ２，ｉ３，ｉ３）を考慮するだけでよい。この特別な例では、すべての４つの３ビット列を走査することは２１２の可能性を有し得るが、追加制約は可能性を２４まで低減した。分かるように、対角ゲート制約を考慮することにより、量子回路のシミュレーション中の項の総数を著しく低減し得る。
【００２９】
[0038]  制約を適用するための手順もまた、無向グラフィックモデルという言語で定式化され得る。前述の回路出力の式内のインデックス列（ｉ０＝００・・・０，ｉ１，ｉ２，．．．，ｉｄ−１，ｉｄ＝ｘ）を所与として、グラフＧを構築し得る。ここで、個別変数
【数１３】
2021520546.tif 000015
は頂点に対応しており、２つの頂点は、それらの両方に作用する演算子（例えばゲート）があれば辺により接続される。
【００３０】
[0039]  既に論述されたように、このようなグラフは、いくつかのテンソル演算子（例えばゲート）がたまたま対角性であれば簡略化され得る。例えば、２つのノード（又は頂点）が単一キュービット対角ゲートにより接続されれば、サーメーション内の対応項は、２つのノードに割り当てられたビット列が同一である場合だけ存続し得る（すなわち、非零であり得る）。したがって、これらの２つのノードは融合し得る。図３は一実施形態による無向グラフ内の単一キュービット対角ゲート、２キュービット対角ゲート及び非対角ゲート、並びにそれらの対応表現を示す。
【００３１】
[0040]  図３において、ユニタリゲート３０２は単一キュービット対角ゲートであり、グラフィック要素３０４はそのグラフィック表現である。分かるように、２つのノードは単一ノードへ融合されている。同様に、２キュービットユニタリゲート３０６はグラフィック要素３０８により表され得る。一方で、ユニタリゲート３１２は非対角ゲートであり、このことは、融合はそのグラフィック表現３１４により指示されるように発生しないということを意味する。同様に、２キュービット非対角ユニタリゲート３１６はグラフィック要素３１８により無向グラフで表され得る。
【００３２】
[0041]  図４は、一実施形態による量子回路２００の無向グラフを示す。図４から分かるように、無向グラフ４００は、多くの頂点と頂点同士を接続する多くの辺とを含み得る。各頂点は変数
【数１４】
2021520546.tif 000016
を表し、ｋは時間インデックス又はクロック周期を表し、ｊはビット位置を表す。既に論述されたように、ビット列ｉ１、ｉ２、ｉ３及びｉ４の最初のビットは同一であり、したがって、単一頂点４０２により無向グラフ４００で表され得る。同様に、ビット列ｉ１、ｉ２、ｉ３及びｉ４の第２のビットは、無向グラフ４００内の単一頂点４０４を使用して表され得、ビット列ｉ２、ｉ３及びｉ４の第３のビットは、単一頂点４０６を使用して表され得る。一方で、ｉ１の第３のビットは別個の頂点４０８により表される。無向グラフ４００はまた、入力（ｉ０）及び出力（ｉ５）を表す他の頂点を含む。
【００３３】
[0042]  既に論述されたように、回路２００の振幅は
【数１５】
2021520546.tif 000017
を使用して計算され得る。このようなサーメーションはFeynman経路積分の拡張とも呼ばれ得る。
【００３４】
[0043]  ｘ＝０１０の場合、Feynman経路積分は次のように計算され得る：
【数１６】
2021520546.tif 000018
。上記表現に対応する無向グラフが図５に示される。換言すれば、図５は、一実施形態によりｘ＝０１０を所与として、量子回路２００の無向グラフを示す。
【００３５】
[0044]  図５に示す無向グラフ５００は、同グラフを簡略化するために一度に１つの変数（例えば頂点）を削除することにより、テンソル縮約アルゴリズム（tensor contraction algorithm）を使用して簡略化され得る。例えば、ある深さの当初複雑なグラフは、低減された深さを有するように簡略化され得る。テンソル縮約に加えて、サーメーションを評価する別の単純明快なやり方はサーメーションをいくつかの部分に分割することである。具体的には、任意の変数を単純に選択し、サーメーションを２回（０へ固定される選択された変数の値により１回、そして１へ固定される選択された変数の値により１回）評価し、次に、これらの結果を組み合わせ得る。変数を削除することと同様に、変数の値を固定することもまた、この変数をサーメーションから除去する。無向グラフモデルでは、変数の値を固定することは、対応する頂点をその辺のすべてと共に除去することである。
【００３６】
[0045]  図５に示すグラフ５００では、頂点５０２（変数
【数１７】
2021520546.tif 000019
に対応する）が２つのＣＺゲート（図２に示すＣＺゲート２１０、２１２）へ結合される。したがって、頂点５０２を除去することは、両方のＣＺゲートの除去を生じ得る。頂点が除去されるたびに、本システムは、結果のグラフを再帰的に２回評価する必要があり、したがって評価の回数は指数関数的に膨らむということに留意されたい。２つのＣＺゲートが１つずつ除去される場合、本システムはグラフ評価の４つの副タスクを行う必要がある。しかし、２つのＣＺゲートを同時に除去することにより、本システムは４つではなく２つの副タスクを行うだけでよく、したがって計算効率を著しく増強する。頂点を除去するということは、グラフ評価が、並列に行われ得る副タスクへ分割され得るということを意味することにも注意すべきである。例えば、グラフからＭ個の頂点を除去するということは、グラフ評価タスクを、並列に行われ得る２Ｍ個の副タスクへ分割することを意味する。
【００３７】
[0046]  図５に示す例では、ｉ１＝ａｂｃ及びｉ＝ａｂｄを所与として、次式が得られる：
【数１８】
2021520546.tif 000020
。
【００３８】
[0047]  変数
【数１９】
2021520546.tif 000021
を除去することは、Feynman経路積分内のインデックスに対応する頂点であるインデックスａを除去することに対応する。さらに、変数
【数２０】
2021520546.tif 000022
を除去することは
【数２１】
2021520546.tif 000023
の評価を必要とする。
【００３９】
[0048]  このサーメーションは、結合されたＴゲート（例えば図２に示すＴゲート２０６）を除去することによりさらに簡略化され得、
【数２２】
2021520546.tif 000024
を生じる。
【００４０】
[0049]  〈０｜ＣＺ１３｜０〉＝Ｉ３及び〈１｜ＣＺ１３｜１〉＝Ｚ３に留意すべきであり、したがって
【数２３】
2021520546.tif 000025
である。
【００４１】
[0050]  また、無向グラフを使用してサーメーション内の
【数２４】
2021520546.tif 000026
などの項を表し得る。図６は、一実施形態による２つのＣＺゲート及び１つの接続型Ｔゲートの除去後の量子回路２００の無向グラフを示す。図５に示す無向グラフと比較して、図６に示す無向グラフ６００は、より少ない頂点及び辺を含み、したがって、このようなグラフを評価することをはるかに単純なタスクにする。換言すれば、図５に示す元の無向グラフを評価することは今や、図６に示すより単純なグラフ（副グラフとも呼ばれる）を評価することにより行われ得る。
【００４２】
[0051]  比較的単純な量子回路２００に加えて、開示されたシステム及び方法はまた、中間サイズ（５０以上のキュービット）量子回路の古典的シミュレーションに使用され得る。図７は、一実施形態による量子回路をシミュレートするための例示的処理を示すフローチャートを提示する。
【００４３】
[0052]  動作中、本システムはシミュレートされるべき量子回路設計を受信する（動作７０２）。いくつかの実施形態では、量子回路は中間サイズを有し得る、すなわち、量子回路は、合理的な深さ（例えば、２０を超える深さ）までの５０以上のキュービットで動作する。次に、本システムは、この量子回路に基づき無向グラフを構築し得る（動作７０４）。具体的には、量子回路Ｃを所与として、本システムは、ビット列ｘの振幅をFeynman経路積分を使用して計算され得る〈ｘ｜Ｃ｜００・・・０〉として定式化する。インデックス配列（ｉ０＝０・・・０，ｉ１，ｉ２，ｉｄ−１，ｉｄ＝ｘ）を所与として、各個別変数
【数２５】
2021520546.tif 000027
は、構築された無向グラフ内の頂点に対応し、２つの頂点は、それらの両方に作用する演算子が存在する場合は、辺により接続され得る。同じ値を有する変数は同じ頂点に対応し、異なる値を有する変数は異なる頂点に対応するということに留意されたい。次に、Feynman経路積分内の各項は、｛０，１｝によりグラフ内のすべての頂点をラベル付けすることに関連する複素数に対応する。いくつかの頂点は少なくとも１つの単一キュービットゲートへ接続され、いくつかの頂点は少なくとも１つの２キュービットゲートへ接続される。さらに、いくつかの頂点は、複数の２キュービットゲートへ、又は単一キュービットゲートと２キュービットゲートとの組合せへ接続され得る。図５に示す例では、頂点５０２は、単一キュービットゲート（すなわちＴゲート）及び２つの２キュービットゲート（すなわち２つのＣＺゲート）へ接続される。
【００４４】
[0053]  その後、本システムは、複数の辺へ結合される頂点を求めて無向グラフを探索する（動作７０６）。いくつかの実施形態では、本システムは、各辺が少なくとも１つの２キュービットゲートを表す２つの辺へ結合される少なくとも１つの頂点を識別する。例えば、本システムは、２つのＣＺゲートへ結合される少なくとも１つの頂点を識別し得る。次に、本システムは、複数の辺へ結合される少なくとも１つの頂点を除去することにより、簡略化又は変換された無向グラフ（時に、副グラフと呼ばれる）を構築し得る（動作７０８）。頂点を除去することはまた、量子ゲートに対応する接続辺の除去を生じ得るということに留意されたい。例えば、頂点が２つのＣＺゲートへ接続される場合、このような頂点を除去することは、両方のＣＺゲートの同時除去を生じ得る。いくつかの実施形態では、本システムは識別された頂点を一度に１つ除去し得る。このような頂点が除去されるたびに、本システムは、無向グラフを評価するタスクを、それぞれが副グラフを評価する２つの副タスクへ分割し得る。代替的に、本システムは、複数（例えば２つ）の識別された頂点を同時に除去し得る。このようなシナリオでは、タスクは２ｍ個の副タスクへ分割され得る。ここで、ｍは除去された頂点の数である。
【００４５】
[0054]  無向グラフから頂点を除去することは、シミュレーションの時間及び空間複雑性の低減を保証しないということに留意されたい。既に論述されたように、頂点を除去することは、１つのシミュレーションタスクを２つの副タスクへ分割することをしばしば意味する。これは、簡略化された無向グラフが、２回（除去された頂点の値毎に１回）評価される必要があるためである。本システムが頂点を単に無作為的に除去する場合、副タスクの数は爆発的に増え得る。したがって、頂点除去は戦略的に行われるべきである。例えば、複数のゲートへ結合される頂点を除去することにより、複数のゲート（例えば２つのＣＺゲート）を同時に除去し得る。これは、２つの副タスクだけが除去の結果として生成されるということを意味し、したがって、簡略化された無向グラフの複雑性及び深さを最小費用で低減する。この結果、全体的な計算効率が改善され得る。
【００４６】
[0055]  ２ｍ個の並列計算ユニットを有するコンピュータクラスタに関して、シミュレーションタスクは、ＣＺゲート対へ結合されるｍ個の頂点を除去することにより、２ｍ個の副タスクへ分割され得る。それぞれのこのような副タスクは、ランダムな頂点が除去される状況より効率的であり得る。いくつかの試験は次のことを示している：この戦略を使用して１２個の頂点がサイズ８×８×４０の量子回路から除去される場合、ゲートが一度に１つ除去される場合と比較して、無向グラフの木幅を５倍効果的に低減し得る。換言すれば、各回２つのゲートを同時に除去することにより、そして１２個のこのような頂点を除去することにより、各副タスクの時間及び空間複雑性を、１２個のランダムな頂点が除去される副タスクの時間及び空間複雑性の１／３２まで低減し得る。１２個の頂点は、それぞれが９６個のコアを有する４０個のノードを有するコンピュータクラスタにより処理され得る４０９６個の並列処理に対応し得るということに留意されたい。このようなコンピュータクラスタは、現在の技術を使用して実現され得る。より大きなコンピュータクラスタは、より多くの副タスクを促進し得、これにより、提案されたシミュレーションアルゴリズムをより効率的にする。
【００４７】
[0056]  図８は、一実施形態による中間サイズ量子回路をシミュレートする例示的処理を示すフローチャートを提示する。動作中、本システムは、シミュレートされるべき量子回路を受信し（動作８０２）、シミュレートされるべき量子回路に基づき無向グラフを生成する（動作８０４）。量子回路は任意のサイズ又は次元のものであり得る。例えば、量子回路は２次元（２Ｄ）格子回路であり得る。このような構造は、Ｍ×Ｎ単一キュービット行列の階層を含み得る。ここで、Ｍ、Ｎは正の整数である。他のタイプの回路形式も可能である。古典的にシミュレートされ得る量子回路のサイズは、しばしば計算能力及び資源により制限される。いくつかの実施形態では、量子回路は少なくとも５０個のキュービット及び少なくとも３０の深さを有し得る。具体的には、最大１００個のキュービット及び最大４０の深さを有する量子回路が効果的にシミュレートされ得る。いくつかの実施形態では、無向グラフのそれぞれの辺は、シミュレートされるべき量子回路内の１つ又は複数の２キュービットゲートに対応し、無向グラフ内のそれぞれの頂点は、同じ値を有するFeynman経路積分のインデックスに対応する。異なる値を有するFeynman経路積分のインデックスは、無向グループ内の異なる頂点に対応するということに留意されたい。次に、本システムは、無向グラフから１つ又は複数の頂点を除去することにより、副グラフを生成し得る（動作８０６）。例えば、本システムは、無向グラフを、１つの頂点を除去することにより副グラフに変換し得る。
【００４８】
[0057]  無向グラフ内には様々なタイプの頂点が存在する。いくつかの頂点はユニタリゲートへ結合され、いくつかの頂点は２キュービットゲートへ結合され、いくつかはユニタリと２キュービットゲートとの組合せへ結合される。無向グラフ内のいくつかの頂点の除去は量子回路の時間及び空間複雑性を低減し得るが、すべての頂点が、除去される場合に時間及び空間複雑性の低減を生じ得るとは限らない。いくつかの実施形態では、本システムは、除去のために少なくとも２つの２キュービットゲートへ同時に結合される頂点（すなわち少なくとも２つの辺へ接続される頂点）を選択する。このような頂点は、時に交差頂点と呼ばれ得る。無向グラフ内の交差頂点を識別するために、いくつかの実施形態では、本システムは、無向グラフ全体内のすべての頂点を走査し得る。代替的に、本システムは、量子回路内のすべての２キュービットゲートを調査し得る。２キュービットゲート毎に、本システムは、無向グラフ内の２キュービットゲートへ結合される一対の頂点を識別し、そして重複した頂点を発見することにより、本システムは複数のゲートへ同時に結合される頂点を識別し得る。いくつかの実施形態では、２キュービットゲートはＣＺゲートなどの対角ゲートである。
【００４９】
[0058]  テンソル縮約を無向グラフに対し行う際、変数削除順序付けは、シミュレーションの時間複雑性に著しい影響を与え得る。テンソル縮約効果を強化するために、いくつかの実施形態では、本システムは、より良い削除順序付けを得るために木幅計算アルゴリズム（例えばQuickBBアルゴリズム）を使用して、無向グラフの木幅を判断し得る。例えば、本システムは、頂点の順序付きリスト（これらの頂点の除去の順序付けを指示する）を含むテンソル縮約戦略を出力し得る。動作中、本システムは、順序付きリストに従って、所定期間内に最適解を得るために無向グラフから一度に１つの頂点を除去し得る。
【００５０】
[0059]  加えて、様々なゲートの除去は、様々なテンソル縮約効果を生じ得るので、量子回路の時間及び空間複雑性の低減に様々な影響も与え得る。いくつかの実施形態では、最大テンソル縮約効果を得るために、本システムは、順序付きリスト内のいくつかの頂点を除去しないことを選択し得る。具体的には、頂点の除去が最小又は劣悪テンソル縮約だけを生じる場合、本システムは、このような頂点を除去することをスキップし得る。いくつかの実施形態では、本システムは、除去のために交差頂点（すなわち少なくとも２つの２キュービットゲートへ結合される頂点）を選択する所定戦略を使用し得る。例えば、除去されるとより強いテンソル縮約効果を導入し得る交差頂点を除去することが望ましい。いくつかの実施形態では、交差頂点を除去する際、本システムは、所定アルゴリズム（例えばグリーディアルゴリズム又はダイナミックプログラミングアルゴリズム）を使用して、除去されるべき頂点を選択し得る。
【００５１】
[0060]   グリーディアルゴリズムを行う際、本システムは、テンソル縮約順序付けに基づきグリーディアルゴリズムの選択範囲（例えば候補集合）を最初に判断し、次に、本システムは、この選択範囲内で、所定目的関数に基づき、除去されるべき頂点を選択し得る。いくつかの実施形態では、目的関数は、除去されるべき頂点の除去に続いて残りの副タスクの実行時間を評価するために使用され得る。残りの副タスクの実行時間が最小限に保たれることを保証することが望ましい。
【００５２】
[0061]   グリーディアルゴリズムは、大局的最適条件を発見する目的で各段階において局所的最適選択を行う問題解決発見的方法に従う。換言すれば、グリーディアルゴリズムは、別の選択を考慮することなく現時点で最良と思われる選択を行うことを試みる。グリーディアルゴリズムは通常、合理的な時間内に最適解を生成しないが、大局的最適解を近似する局所的に最適な解を提供し得る。余効（aftereffect）がない（すなわち、現在状態の前に発生したものだけが将来状態ではなく現在状態に影響を及ぼす）グリーディ戦略を選択することが重要である。
【００５３】
[0062]   グリーディアルゴリズムは、いくつかの最適化問題を解くためのより単純且つ速いツールを提供し得る。グリーディアルゴリズムは、最適化を段階的に行い、そして、すべての可能な将来選択を考慮することなく現在状態及びある最適化基準に基づき最適選択を行う。グリーディアルゴリズムは、大局的最適化を発見するために必要な時間を低減し得る。グリーディアルゴリズムは、連続的グリーディ選択を反復的に行うためにトップダウン手法を使用する。各グリーディ選択は、問題をより単純な副問題に変換し得る。各工程では、局所的最適が発見される。しかし、グリーディアルゴリズムは大局的最適条件を保証しなく、そしてグリーディアルゴリズムは後戻りしない。少なくとも２つの２キュービットゲートへ接続される除去されるべき頂点を見つけ出すためにグリーディアルゴリズムを使用することは、大局的最適条件を発見するために必要な時間を低減し得る。
【００５４】
[0063]  いくつかの実施形態では、除去されるべき頂点を選択する際、本システムは、テンソル縮約の順序付きリスト内に含まれるすべての交差頂点を走査し、そして、頂点毎に、残りの副タスクの予測実行時間を計算し得る。予測実行時間はテンソル縮約順序付けに基づき計算され得る。例えば、本システムは、インデックスを取得するために順序付きリスト上の最初の頂点を除去することに続いて、無向グラフのテンソルランクを使用し得る。無向グラフから順序付きリスト上の第２の頂点を除去することに続いて、本システムは、テンソルランクのインデックスを追加する。本システムは、順序付きリスト上のすべての頂点が除去されるまでの予測実行時間を取得する。次に、本システムは、最小量の予測実行時間に対応する頂点を判断するために、グリーディアルゴリズムを使用し得る（すなわち、このような頂点を除去することは残りの副タスクの最小実行時間を生じ得る）。
【００５５】
[0064]  一方で、ダイナミックプログラミング（ＤＰ：dynamic programming）は、最適化問題をより単純な副問題へ分解する。前の副問題の解は、次の副問題の解を発見するために役に立つ情報を提供し得る。副問題を解く際、ＤＰアルゴリズムは、可能な局所解を列挙し、そして、他の解を廃棄する一方で、局所的最適を達成し得る局所解を戦略的に維持する。最後の副問題の解は初期問題の解になる。ＤＰにより解かれる多くの問題は再帰的である副問題を有し、したがって、各副問題が一回だけ解かれるように各副問題の解を格納することは、重複計算を削除し、効率を増加し得る。各副問題（例えば様々な段階における状態）の解は、２Ｄアレイ（例えばハッシュ表）内に格納され得る。
【００５６】
[0065]  いくつかの実施形態では、無向グラフから交差頂点を除去することは、頂点に対応するFeynman経路積分のインデックスを除去することに関与し得る。このような交差頂点が除去されるたびに、少なくとも２つの２キュービットゲートが除去される。さらに、頂点はFeynman経路積分内のインデックスに対応するので、このような頂点を除去することはまた、このようなインデックスに関係する他の量子ゲートの除去を生じ得る。
【００５７】
[0066]  無向グラフを副グラフに変換することに続いて、本システムは、副グラフを評価し（動作８０８）、評価が成功したかどうかを判断し得る（動作８１０）。評価が成功した場合、本システムは評価結果を出力する（動作８１２）。そうでなければ、本システムは、追加の頂点を除去することにより現在の副グラフの副グラフを生成することを続ける（動作８０６）。いくつかの実施形態では、元の無向グラフは複数の副グラフへ分割され得、各副グラフは別々に評価され得る。副グラフの評価結果は、最終結果を生成するために組み合わせられ得る。次に、このような結果は、量子回路の振る舞いをシミュレートするために使用され得る。
【００５８】
[0067]  図９は、一実施形態による量子回路をシミュレートするための装置を示す。装置９００は、量子回路モジュール９０２、グラフ生成モジュール９０４、頂点選択モジュール９０６、グラフ変換モジュール９０８、グラフ評価モジュール９１０及び出力モジュール９１２を含む。量子回路モジュール９０２は、量子ゲート及び量子レジスタを含み得る。量子ゲートはキュービットに作用し、量子レジスタは、量子計算中に量子計算に使用される初期量子状態と一時的量子状態とを格納する。グラフ生成モジュール９０４は、量子回路に基づき無向グラフを生成する責任を負い得る。頂点選択モジュール９０６は、除去されるべき頂点を選択する責任を負い得る。いくつかの実施形態では、頂点選択モジュール９０６は、テンソル縮約順序付けを判断するために木幅計算アルゴリズムを使用し、そして、除去されるべき頂点を選択するためにグリーディアルゴリズムを使用し得る。いくつかの実施形態では、各除去されるべき頂点は少なくとも２つの２キュービット量子ゲートへ結合される。
【００５９】
[0068]  グラフ変換モジュール９０８は、無向グラフを１つ又は複数の副グラフに変換する責任を負い得る。例えば、副グラフは、無向グラフから、２つの２キュービットゲートへ結合される１つの頂点を除去することにより、生成され得る。さらに、別の副グラフは、現在の副グラフから、２つの２キュービットゲートへ結合される追加の頂点を除去することにより、生成され得る。グラフ評価モジュール９１０は、副グラフを評価する責任を負い得、出力モジュール９１２は、評価結果を出力する責任を負い得る。
【００６０】
[0069]  一般的に、本発明の実施形態は、中間サイズの量子回路の古典的シミュレーションを促進するシステム及び方法を提供する。具体的には、量子回路は、無向グラフを使用してモデル化され得る。無向グラフィックモデル内の削除するべき頂点を適切に選択することにより、本発明の実施形態は、頂点を無作為に選択することと比較して、無向グラフの木幅を著しく低減し得る。無向グラフから頂点を削除することは、グラフ評価タスクを多くの副タスクへ分割し、したがって並列処理を可能にする。これは、各副タスクが独立に行われ得るためである。計算効率を強化するために、いくつかの実施形態では、本システムは、それぞれが削除のために多キュービットゲート（例えばＣＺゲート）に対応する少なくとも２つの辺へ結合される頂点を選択する。別の実施形態では、グリーディアルゴリズムが、除去されるべき頂点を選択するために使用される。グリーディアルゴリズムの効率を増加するために、本システムは最初に、変数削除順序付けを計算するために木幅計算アルゴリズム（例えばQuickBBアルゴリズム）を使用し、そしてこの順序付けに基づきグリーディアルゴリズムを適用する。他の最適化アルゴリズム（例えばＤＰアルゴリズム）もまた、除去されるべき頂点を無向グラフから識別するために使用され得る。
【００６１】
[0070]  図１０は、一実施形態による主題技術を実施する電子システムを概念的に示す。電子システム１０００は、クライアント、サーバ、コンピュータ、スマートフォン、ＰＤＡ、ラップトップ、又はその中に埋め込まれる若しくはそれへ結合される１つ又は複数のプロセッサを有するタブレットコンピュータ、又は任意の他の種類の電子デバイスであり得る。このような電子システムは、様々なタイプのコンピュータ可読媒体と、様々な他のタイプのコンピュータ可読媒体のためのインターフェースとを含む。電子システム１０００は、バス１００８、処理ユニット１０１２、システムメモリ１００４、読み出し専用メモリ（ＲＯＭ）１０１０、永久記憶デバイス１００２、入力デバイスインターフェース１０１４、出力デバイスインターフェース１００６及びネットワークインターフェース１０１６を含む。
【００６２】
[0071]  バス１００８は、電子システム１０００の非常に多くの内部デバイス同士を通信可能に接続するすべてのシステムバス、周辺バス、及びチップセットバスを集合的に表す。例えば、バス１００８は、処理ユニット１０１２と、ＲＯＭ  １０１０、システムメモリ１００４及び永久記憶デバイス１００２とを通信可能に接続する。
【００６３】
[0072]  これらの様々なメモリユニットから、処理ユニット１０１２は、本主題開示の処理を実行するために、実行すべき命令及び処理すべきデータを取り出す。処理ユニットは、様々な実施態様における単一プロセッサ又はマルチコアプロセッサであり得る。
【００６４】
[0073]  ＲＯＭ  １０１０は、電子システム１０００の処理ユニット１０１２及び他のモジュールにより必要とされる静的データ及び指示を格納する。一方で、永久記憶デバイス１００２はリード／ライトメモリデバイスである。このデバイスは、電子システム１０００がオフである場合ですら命令及びデータを格納する不揮発性メモリユニットである。本主題開示のいくつかの実施態様は、永久記憶デバイス１００２として大量記憶デバイス（磁気又は光ディスク、及びその対応するディスクドライブなど）を使用する。
【００６５】
[0074]  他の実施態様は、永久記憶デバイス１００２として着脱可能記憶デバイス（フロッピーディスク、フラッシュドライブ及びその対応ディスクドライブなど）を使用する。永久記憶デバイス１００２のように、システムメモリ１００４はリード／ライトメモリデバイスである。しかし、記憶デバイス１００２とは異なり、システムメモリ１００４はランダムアクセスメモリなどの揮発性リード／ライトメモリである。システムメモリ１００４は、実行時にプロセッサが必要とする命令及びデータのうちのいくつかを格納する。いくつかの実施態様では、本主題開示の処理は、システムメモリ１００４、永久記憶デバイス１００２、及び／又はＲＯＭ  １０１０内に格納される。これらの様々なメモリユニットから、処理ユニット１０１２は、いくつかの実施態様の処理を実行するために、実行すべき命令及び処理すべきデータを取り出す。
【００６６】
[0075]  バス１００８はまた、入出力デバイスインターフェース１０１４、１００６それぞれへ接続する。入力デバイスインターフェース１０１４は、ユーザが情報を電子システムへ伝達することと、電子システムのための命令を選択することとを可能にする。入力デバイスインターフェース１０１４と共に使用される入力デバイスは、例えば英数字キーボード及びポインティングデバイス（「カーソル制御デバイス」とも呼ばれる）を含む。出力デバイスインターフェース１００６は、例えば電子システム１０００により生成される画像の表示を可能にする。出力デバイスインターフェース１００６と共に使用される出力デバイスは、例えばプリンタと、陰極線管（ＣＲＴ）又は液晶ディスプレイ（ＬＣＤ）などのディスプレイデバイスとを含む。いくつかの実施態様は、入力デバイスと出力デバイスとの両方として働くタッチスクリーンなどのデバイスを含む。
【００６７】
[0076]  最後に、図１０に示すように、バス１００８はまた、ネットワークインターフェース１０１６を介し電子システム１０００をネットワーク（図示せず）へ結合する。このようにして、コンピュータは、コンピュータのネットワーク（ローカルエリアネットワーク（「ＬＡＮ」）、広域ネットワーク（「ＷＡＮ」）、又はイントラネット、又はインターネットなどのネットワーク群のネットワークの一部分であり得る。電子システム１０００の任意の又はすべての部品は本主題開示と併せて使用され得る。
【００６８】
[0077]  上に説明されたこれらの機能は、デジタル電子回路で、又はコンピュータソフトウェア、ファームウェア、若しくはハードウェアで実現され得る。これらの技術は１つ又は複数のコンピュータプログラム製品を使用して実現され得る。プログラム可能プロセッサ及びコンピュータが、移動式デバイス内に含まれ得る、又は移動式デバイスとしてパッケージ化され得る。処理及び論理フローは、１つ又は複数のプログラム可能プロセッサにより又は１つ又は複数のプログラマブルロジック回路系により行われ得る。汎用及び専用コンピュータデバイスと、記憶デバイスとは、通信ネットワークを介し相互接続され得る。
【００６９】
[0078]  様々な実施形態のこれまでの説明は図解及び説明の目的のためだけに提示されている。これらは、網羅的であるように意図されていない、又は開示された形式へ本発明を制限するように意図されていない。したがって、多くの修正及び変形形態が当業者にとって明らかになる。加えて、上記開示は本発明を制限するように意図されていない。
【図１】
2021520546.tif 000028
【図２】
2021520546.tif 000029
【図３】
2021520546.tif 000030
【図４】
2021520546.tif 000031
【図５】
2021520546.tif 000032
【図６】
2021520546.tif 000033
【図７】
2021520546.tif 000034
【図８】
2021520546.tif 000035
【図９】
2021520546.tif 000036
【図１０】
2021520546.tif 000037
【国際調査報告】
2021520546.tif 000038