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

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

▶ ベイト インク.の特許一覧

特許7452885量子コンピュータをエミュレートするためのシステム及び該システムに使用するための方法
<>
  • 特許-量子コンピュータをエミュレートするためのシステム及び該システムに使用するための方法 図1
  • 特許-量子コンピュータをエミュレートするためのシステム及び該システムに使用するための方法 図2
  • 特許-量子コンピュータをエミュレートするためのシステム及び該システムに使用するための方法 図3
  • 特許-量子コンピュータをエミュレートするためのシステム及び該システムに使用するための方法 図4A
  • 特許-量子コンピュータをエミュレートするためのシステム及び該システムに使用するための方法 図4B
  • 特許-量子コンピュータをエミュレートするためのシステム及び該システムに使用するための方法 図4C
  • 特許-量子コンピュータをエミュレートするためのシステム及び該システムに使用するための方法 図5A
  • 特許-量子コンピュータをエミュレートするためのシステム及び該システムに使用するための方法 図5B
  • 特許-量子コンピュータをエミュレートするためのシステム及び該システムに使用するための方法 図6
  • 特許-量子コンピュータをエミュレートするためのシステム及び該システムに使用するための方法 図7
  • 特許-量子コンピュータをエミュレートするためのシステム及び該システムに使用するための方法 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-11
(45)【発行日】2024-03-19
(54)【発明の名称】量子コンピュータをエミュレートするためのシステム及び該システムに使用するための方法
(51)【国際特許分類】
   G06N 10/80 20220101AFI20240312BHJP
   G06N 99/00 20190101ALI20240312BHJP
【FI】
G06N10/80
G06N99/00 180
【請求項の数】 24
(21)【出願番号】P 2021575025
(86)(22)【出願日】2020-04-03
(65)【公表番号】
(43)【公表日】2022-08-25
(86)【国際出願番号】 US2020026580
(87)【国際公開番号】W WO2020256808
(87)【国際公開日】2020-12-24
【審査請求日】2022-11-10
(31)【優先権主張番号】62/864,765
(32)【優先日】2019-06-21
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/864,778
(32)【優先日】2019-06-21
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/949,764
(32)【優先日】2019-12-18
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/835,914
(32)【優先日】2020-03-31
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521548685
【氏名又は名称】ベイト インク.
(74)【代理人】
【識別番号】110000659
【氏名又は名称】弁理士法人広江アソシエイツ特許事務所
(72)【発明者】
【氏名】ブライアンスキ,マーシン
(72)【発明者】
【氏名】ヤルニッキ,ウィットルド
(72)【発明者】
【氏名】ザウインスキー,ウカシュ
【審査官】山本 俊介
(56)【参考文献】
【文献】特表2016-531343(JP,A)
【文献】特表2018-521382(JP,A)
【文献】特表2019-514135(JP,A)
【文献】米国特許出願公開第2019/0087388(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 10/00-10/80
G06N 99/00
(57)【特許請求の範囲】
【請求項1】
N個の行を備えた格子トポロジー内に配列された複数の量子ビットを有する量子コンピュータのサンプリングをエミュレートするためのシステムであって、
演算命令を記憶するメモリと、
演算を実行するために、前記演算命令により構成される少なくとも1つの古典プロセッサと、を具備し、前記演算は、
前記格子トポロジーにより、N個の反復パスに基づいて、前記N個の行に対する最終重み値及び変数代入値を作成することであって、前記N個の反復パスの各々は、前記N個の行の対応する部分集合に対する仮重み値及び変数代入値を生成させ、前記N個の行の前記対応する部分集合の選択された行に対する前記仮重み値及び変数代入値は、前記N個の行の前記対応する部分集合の前記選択された行に隣接する行に対し生成された仮重み値及び変数代入値に基づいており、
前記複数の量子ビットの前記サンプリングは、前記N個の行の各々に対する前記最終重み値及び変数代入値に基づいて、サンプルによりエミュレートされる、ことを含む、システム。
【請求項2】
前記N個の反復パスの第1の反復パスは、前記N個の行の(N-1)番目の行に対し生成された仮重み値及び変数代入値に基づいて、前記N個の行のN番目の行に対する最終重み値及び変数代入値を生成させる、請求項1に記載のシステム。
【請求項3】
前記N個の反復パスの前記第1の反復パスに関連する前記N個の行の前記対応する部分集合は、前記N個の行の第2の行と前記N個の行の前記(N-1)番目の行との間の範囲に、前記N個の行のすべての行を含む、請求項2に記載のシステム。
【請求項4】
前記N個の反復パスの前記第1の反復パスは、ヌル行に対応するヌルウェイトに基づいて、前記N個の行の第1の行に対する仮重み値及び変数代入値を生成させる、請求項2に記載のシステム。
【請求項5】
前記N個の反復パスの最終反復パスは、前記N個の行の第2の行に対する最終重み値及び変数代入値に基づいて、前記N個の行の第1の行に対する最終重み値及び変数代入値を生成させる、請求項2に記載のシステム。
【請求項6】
前記N個の反復パスの各々は、前記N個の行の対応する1つに対する最終重み値及び変数代入値を生成させる、請求項1に記載のシステム。
【請求項7】
前記N個の反復パスのp番目の反復パスは、前記N個の行の(N-p)番目の行に対し生成された仮重み値及び変数代入値に基づいて、前記N個の行の(N-p+1)番目の行に対する最終重み値及び変数代入値を生成させる、請求項1に記載のシステム。
【請求項8】
前記N個の反復パスのp番目の反復パスに関連する前記N個の行の前記対応する部分集合は、前記N個の行の第2の行と前記N個の行の前記(N-p)番目の行との間の範囲に、前記N個の行のすべての行を含む、請求項7に記載のシステム。
【請求項9】
前記格子トポロジーは、二次制約なし二値最適化(QUBO)モデルに対応する、請求項1に記載のシステム。
【請求項10】
前記サンプルは、ボルツマン分布に対応する、請求項1に記載のシステム。
【請求項11】
N個の行を備えた格子トポロジー内に配列された複数の量子ビットを有する量子コンピュータのサンプリングをエミュレートするためのシステムであって、
演算命令を記憶するメモリと、
演算を実行するために、前記演算命令により構成される少なくとも1つの古典プロセッサと、を具備し、前記演算は、
前記格子トポロジーにより、N個の反復パスに基づいて、前記N個の行に対する最終重み値及び変数代入値を作成することであって、前記N個の反復パスの各々は、複数の行の各々に対する隣接する行に対し生成された仮重み値及び変数代入値に基づいて、前記N個の行の複数の行に対する仮重み値及び変数代入値を生成させ、最終重み値及び変数代入値は、前記N個の行の最終行に隣接するN個の行のある行に対し生成された仮重み値及び変数代入値に基づいて、前記N個の反復パスの各々に対する前記N個の行の最終行に対し生成され、前記N個の反復パスが完了し、前記N個の行の各々に対する最終重み値及び変数代入値が生成されるまで、前記仮重み値及び変数代入値が再生される、前記N個の行の行数を低減するために、前記N個の行の前記最終行に対する前記最終重み値及び変数代入値は、前記N個の反復パスの次の連続パス内で使用される、ことを含み、
前記複数の量子ビットを有する前記量子コンピュータの前記サンプリングは、前記N個の行の各々に対する前記最終重み値及び変数代入値に基づいて、サンプルによりエミュレートされる、システム。
【請求項12】
前記N個の反復パスに基づいて、前記N個の行に対する前記仮重み値及び変数代入値を作成することは、
前記格子トポロジーにより、前記N個の反復パスの第1のパスを実行することであって、前記N個の行のN番目の行は、前記最終行に対応し、仮重み値及び変数代入値が生成される前記N個の行の行数が(N-1)に等しい、ことを含む、請求項11に記載のシステム。
【請求項13】
前記N個の反復パスに基づいて、前記N個の行に対する前記仮重み値及び変数代入値を作成することは、
前記格子トポロジーにより、前記N個の反復パスの(N-1)個の他のパスを実行することであって、
(a)p=2を設定すること、
(b)前記格子トポロジーにより、p番目のパスを実行することであって、前記N個の行の前記(N-p+1)番目の行が前記最終行に対応し、仮重み値及び変数代入値が再生される前記N個の行の行数が(N-p)に等しい、実行すること、
(c)pをインクリメントすること、及び
(d)p=Nまで、ステップ(b)及び(c)を繰り返すこと、により、実行すること、を含む、請求項12に記載のシステム。
【請求項14】
前記格子トポロジーによる、前記N個の反復パスの前記第1のパスは、ヌル行に対応するヌルウェイトに基づいて、前記N個の行の第1の行に対する前記仮重み値及び変数代入値を生成させることを含む、請求項12に記載のシステム。
【請求項15】
前記格子トポロジーは、二次制約なし二値最適化(QUBO)モデルに対応する、請求項11に記載のシステム。
【請求項16】
前記サンプルは、ボルツマン分布に対応する、請求項11に記載のシステム。
【請求項17】
N個の行を備えた格子トポロジー内に配列された複数の量子ビットを有する量子コンピュータのサンプリングをエミュレートするための方法であって、
(N-1)個の行の各々に対する隣接する行に対し生成された仮重み値及び変数代入値に基づいて、前記N個の行の前記(N-1)個の行に対する仮重み値及び変数代入値を生成させることで、前記N個の行のN番目の行に対する最終重み値及び変数代入値を作成するために、前記格子トポロジーにより、第1の反復パスを実行することであって、最終重み値及び変数代入値が、前記N番目の行に隣接する前記N個の行の(N-1)番目の行に対し生成された前記仮重み値及び変数代入値に基づいて、前記N番目の行に対し生成される、こと、及び
前記格子トポロジーにより、前記N個の反復パスの(N-1)個の他のパスを実行することであって、
(a)p=2を設定すること、
(b)(N-p)個の行の各々に対する隣接する行に対し再生された仮重み値及び変数代入値に基づいて、前記N個の行の前記(N-p)個の行に対する前記仮重み値及び変数代入値を再生させることで、前記N個の行の(N-p+1)番目の行に対する最終重み値及び変数代入値を作成するために、前記格子トポロジーにより、p番目のパスを実行することであって、最終重み値及び変数代入値が、前記(N-p+1)番目の行に隣接する前記N個の行の(N-p)番目の行に対し再生された前記仮重み値及び変数代入値と(N-p+2)番目の行に対し生成された最終重み値及び変数代入値に基づいて、前記(N-p+1)番目の行に対し生成される、こと、
(c)pをインクリメントすること、
(d)p=Nまで、ステップ(b)及び(c)を繰り返すこと、及び
(e)前記N個の行の第2の行に対し生成された最終重み値及び変数代入値に基づいて、前記N個の行の第1の行に対する最終重み値及び変数代入値を作成するために、前記格子トポロジーにより、最終パスを実行すること、により、実行すること、を含み、
前記複数の量子ビットを有する前記量子コンピュータの前記サンプリングは、N個の行の各々に対する最終重み値及び変数代入値に基づいて、サンプルによりエミュレートされる、方法。
【請求項18】
前記格子トポロジーによる、前記N個の反復パスの前記第1の反復パスは、前記N個の行の前記第1の行に隣接するヌル行に対応するヌルウェイトに基づいて、前記N個の行の第1の行に対する仮重み値及び変数代入値を生成させることを含む、請求項17に記載の方法。
【請求項19】
前記格子トポロジーは、二次制約なし二値最適化(QUBO)モデルに対応する、請求項17に記載の方法。
【請求項20】
前記サンプルは、ボルツマン分布に対応する、請求項17に記載の方法。
【請求項21】
N個のを備えた格子トポロジー内に配列された複数の量子ビットを有する量子コンピュータのサンプリングをエミュレートするためのシステムであって、
演算命令を記憶するメモリと、
演算を実行するために、前記演算命令により構成される少なくとも1つの古典プロセッサと、を具備し、前記演算は、
前記格子トポロジーにより、N個の反復パスに基づいて、前記N個の行に対する最終重み値及び変数代入値を作成することであって、前記N個の反復パスの各々は、前記複数の行の各々に対する隣接する行に対し生成された仮重み値及び変数代入値に基づいて、前記N個の行の複数の行に対する仮重み値及び変数代入値を生成させ、最終重み値及び変数代入値は、前記N個の行の最終行に隣接する前記N個の行のある行に対し生成された仮重み値及び変数代入値に基づいて、N個の反復パスの各々に対する前記N個の行の該最終行に対し生成され、前記N個の反復パスが完了し、前記N個の行の各々に対する最終重み値及び変数代入値が生成されるまで、前記仮重み値及び変数代入値が再生される、前記N個の行の行数を低減するために、前記N個の行の前記最終行に対する前記最終重み値及び変数代入値は、前記N個の反復パスの次の連続パス内で使用される、ことを含み、
前記複数の量子ビットを有する前記量子コンピュータの前記サンプリングは、前記N個の行の各々に対する前記最終重み値及び変数代入値に基づいて、前記N個の反復パスからの複数のサンプルを生成することにより、エミュレートされる、システム。
【請求項22】
N個の行を備えた格子トポロジー内に配列された複数の量子ビットを有する量子コンピュータのサンプリングをエミュレートするための方法であって、
(N-1)個の行の各々に対する隣接する行に対し生成された仮重み値及び変数代入値に基づいて、前記N個の行の前記(N-1)個の行に対する仮重み値及び変数代入値を生成させることで、前記N個の行の前記N番目の行に対する最終重み値及び変数代入値を作成するために、前記格子トポロジーにより、第1の反復パスを実行することであって、最終重み値及び変数代入値が、前記N番目の行に隣接する前記N個の行の(N-1)番目の行に対し生成された前記仮重み値及び変数代入値に基づいて、前記N番目の行に対し生成される、こと、及び
前記格子トポロジーにより、前記N個の反復パスの(N-1)個の他のパスを実行することであって、
(a)p=2を設定すること、
(b)(N-p)個の行の各々に対する隣接する行に対し再生された仮重み値及び変数代入値に基づいて、前記N個の行の前記(N-p)個の行に対する仮重み値及び変数代入値を再生させることで、前記N個の行の(N-p+1)番目の行に対する最終重み値及び変数代入値を作成するために、前記格子トポロジーにより、p番目のパスを実行することであって、最終重み値及び変数代入値が、前記(N-p+1)番目の行に隣接する前記N個の行の(N-p)番目の行に対し再生された前記仮重み値及び変数代入値と(N-p+2)番目の行に対し生成された最終重み値及び変数代入値に基づいて、前記(N-p+1)番目の行に対し生成される、こと、
(c)pをインクリメントすること、
(d)p=Nまで、ステップ(b)及び(c)を繰り返すこと、及び
(e)前記第2の行に対し生成された最終重み値及び変数代入値に基づいて、前記N個の行の前記第1の行に対する最終重み値及び変数代入値を作成するために、前記格子トポロジーにより、最終パスを実行すること、により、実行すること、を含み、
前記複数の量子ビットを有する前記量子コンピュータの前記サンプリングは、前記N個の行の各々に対する最終重み値及び変数代入値に基づいて、前記N個の反復パスから複数のサンプルを生成することにより、エミュレートされる、方法。
【請求項23】
N個のを備えた格子トポロジー内に配列された複数の量子ビットを有する量子コンピュータのサンプリングをエミュレートするためのシステムであって、
演算命令を記憶するメモリと、
演算を実行するために、前記演算命令により構成される少なくとも1つの古典プロセッサと、を具備し、前記演算は、
前記格子トポロジーにより、第1のパスを実行することであって、前記N個の行内の前記第1の行から前記N個の行の(N-1)番目の行までの第1の順番において、前記(N-1)個の行の各々に対する先行して隣接する行に対し生成された仮重み値に基づいて、前記第1のパスが、前記N個の行の(N-1)個の行に対する仮重み値及び変数代入値を反復して生成させることを含み、最終重み値が、前記N個の行の(N-1)番目の行に対し生成された前記仮重み値に基づいて、前記N番目の行に対し生成される、こと、及び
前記N個の行の残りの(N-1)個の行に対する最終重み値及び変数代入値を作成することで、前記格子トポロジーにより、第2のパスを実行することであって、前記N個の行の前記(N-1)番目の行から前記N個の第1の行までの第2の順番において、前記(N-1)個の行の各々に対する先行して隣接する行に対し生成された最終重み値に基づいて、前記第2のパスが、前記N個の行の(N-1)個の行に対する最終重み値及び変数代入値を反復して生成させることを含む、こと、を含み、
前記複数の量子ビットを有する前記量子コンピュータの前記サンプリングは、前記N個の行の各々に対する最終重み値及び変数代入値に基づいて、サンプルによりエミュレートされる、システム。
【請求項24】
N個の行を備えた格子トポロジー内に配列された複数の量子ビットを有する量子コンピュータのサンプリングをエミュレートするための方法であって、
前記格子トポロジーにより、第1のパスを実行することであって、前記N個の行内の前記第1の行から前記N個の行の(N-1)番目の行までの第1の順番において、前記(N-1)個の行の各々に対する先行して隣接する行に対し生成された仮重み値に基づいて、前記第1のパスが、前記N個の行の(N-1)個の行に対する仮重み値及び変数代入値を反復して生成させることを含み、最終重み値が、前記N個の行の前記(N-1)番目の行に対し生成された前記仮重み値に基づいて、前記N番目の行に対し生成される、こと、及び
前記N個の行の残りの(N-1)個の行に対する最終重み値及び変数代入値を作成することで、前記格子トポロジーにより、第2のパスを実行することであって、前記N個の行の前記(N-1)番目の行から前記N個の前記第1の行までの第2の順番において、前記(N-1)個の行の各々に対する先行して隣接する行に対し生成された最終重み値に基づいて、前記第2のパスが、前記N個の行の(N-1)個の行に対する最終重み値及び変数代入値を反復して生成させることを含む、こと、を含み、
前記複数の量子ビットを有する前記量子コンピュータの前記サンプリングは、前記N個の行の各々に対する最終重み値及び変数代入値に基づいて、サンプルによりエミュレートされる、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的に、コンピュータシステム、さらには、量子計算に関する。
【背景技術】
【0002】
関連技術の記載
計算装置は、データ伝達、データ処理及び/又はデータ保存をするために公知である。このような計算装置の範囲は、無線スマートフォン、ラップトップコンピュータ、タブレット型コンピュータ、パソコン(PC)、ワークステーション、スマートウオッチ、コネクテッドカー、及びビデオゲーム機から、何百万規模のウェブ検索、ウェブアプリケーション、又はオンライン購入を日々支援するウェブサーバやデータセンターに及ぶ。一般的に、計算装置は、プロセッサ、メモリシステム、ユーザ入力/出力インターフェース、周辺機器インターフェース、及び相互接続バス構造を具備する。
【0003】
古典デジタル計算装置は、各々が、2つの確定した二進状態(すなわち、0又は1)の1つを有する、二進数(ビット)に符号化されたデータに基づいて作動する。それと対照的に、量子コンピュータは、従来の二進状態の重ね合わせであり得る、量子ビットとしてデータを符号化する量子力学的現象を利用する。
【図面の簡単な説明】
【0004】
図1図1は、本発明に係る、量子計算エミュレータの実施形態の概略ブロック図である。
図2図2は、本発明に係る、量子計算アーキテクチャの実施形態の概略ブロック図である。
図3図3は、本発明に係る、量子計算アーキテクチャの実施形態の概略ブロック図である。
図4A図4A図4B及び図4Cは、本発明に係る、マルチパスサンプリングのフローの実施形態を示す。
図4B】同上。
図4C】同上。
図5A図5A及び図5Bは、本発明に係る、デュアルパスサンプリングのフローの実施形態を示す。
図5B】同上。
図6図6は、本発明に係る、方法の実施形態のフロー図である。
図7図7は、本発明に係る、方法の実施形態のフロー図である。
図8図8は、本発明に係る、方法の実施形態のフロー図である。
【発明を実施するための形態】
【0005】
図1は、本発明に係る、量子計算エミュレータの実施形態の概略ブロック図である。量子計算エミュレータ102は、古典プロセッサ120と、格子トポロジーモデル124を記憶する古典メモリ122と、を具備する。
【0006】
古典プロセッサ120は、処理モジュール及び/又は、量子計算ではなく、古典計算により作動する1つ以上の他の処理装置を具備する。このような各々の処理装置は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、マイクロコンピュータ、中央処理装置、フィールド・プログラマブル・ゲート・アレイ、プログラマブル論理素子、状態機械、論理回路、アナログ回路、デジタル回路、並びに/又は、回路及び/若しくは演算命令のハードコーディングに基づいて、(アナログ及び/又はデジタル)信号を操作する任意のデバイスであり得る。古典プロセッサ120は、単一のメモリ装置、複数のメモリ装置、並びに/又は別の処理モジュールの埋込み回路、モジュール、処理回路、及び/若しくは処理装置であり得る、古典メモリ122等の装着メモリ及び/若しくは集積メモリ素子又は他のメモリ装置と併せて作動する。このようなメモリ素子は、読み取り専用メモリ、ランダムアクセスメモリ、揮発性メモリ、不揮発性メモリ、スタティックメモリ、ダイナミックメモリ、フラッシュメモリ、キャッシュメモリ、及び/又はデジタル情報を記憶する任意のデバイスであり得る。
【0007】
古典プロセッサ120が、2つ以上の処理装置を具備すれば、該処理装置は、一元的に配置(例:有線及び/又は無線バス構造により、ともに直接結合される)又は分散して配置(例:ローカルエリアネットワーク及び/又は広域ネットワークによる、間接結合でのクラウドコンピューティング)され得ることを留意されたい。古典プロセッサ120が、状態機械、アナログ回路、デジタル回路、及び/又は論理回路により、その機能の1つ以上を実行するならば、対応する演算命令を記憶するメモリ及び/又はメモリ素子は、状態機械、アナログ回路、デジタル回路、及び/又は論理回路を含む回路の内部又は外部に埋込み可能であることをさらに留意されたい。さらにまた、図の1つ以上に示すステップ及び/又は機能の少なくともいくつかに対応する、ハードコードされた命令及び/又は他の演算命令を、古典メモリ122が記憶し、古典プロセッサ120が実行することも留意する。このようなメモリ装置又はメモリ素子は、製品に含まれる又は製品として実装される有形メモリ装置又は他の非一時的な記憶媒体であり得る。
【0008】
二次制約なし二値最適化(QUBO)モデルは、重要な分類の最適化問題に対する統一的な数学的枠組みである。最適化問題は、xが2値変数ベクトル、Qが係数の正方行列である、スカラーy=xQxの最小値を求めることを含む。行列Qは、その上部三角形式において、以下のように定義可能である。
Q[i,i]は、ciiからのcii係数を含む。
Q[i、j]は、i<jの場合、cijからのcij係数を含む。
Q[j、i]は、i>jの場合、0を含む。
特定のQUBO問題が、すべての可能な変数の組み合わせの組xとxの限定された部分集合を含み、xとxとの間の依存性が、格子に基づく配置でモデル化可能であれば、QUBO問題は、本明細書記載の古典計算により、解決可能である。
【0009】
量子コンピュータエミュレータ102によるサンプリングにより、高価で非常に複雑な量子計算ハードウェアを必要とせずに、本明細書に概要記載した基準を満たすQUBO問題及び/又は他の問題用の量子アルゴリズム速度の利点を提供することで、計算技術が改善される。このように、経路探索、天気予報、人工知能、財務モデリング、暗号技術、分子モデリング、パターン認識、素粒子物理学、シミュレーション、多次元最適化、及び他の計算集約的アプリケーション等の非常に複雑な問題は、このような特殊用途の量子計算用計算ハードウェアを必要とすることなく、解決可能である。本明細書記載の方法は、量子計算エミュレーションに関して上述の通り、格子トポロジーを有するQUBOのより一般化されたボルツマンサンプリング及び/又は上記に概要記載した基準を満たす他のQUBO問題に適用可能である。
【0010】
図2は、本発明に係る、量子計算アーキテクチャの実施形態の概略ブロック図200である。記載の実施例において、格子トポロジーは、3行×3列を有する9個のセル(N=3)のN×N格子を含む。様々な実施形態において、格子トポロジーモデル124は、量子計算エミュレータ102によりエミュレートされる、量子コンピュータの相互接続された格子に基づくアーキテクチャに対応可能で、格子内の各セルが、該セル内に相互接続される複数の量子ビットを含み、いくつかの量子ビットが、別の格子素子に相互接続される。用語「行」及び「列」が、一般的に、本明細書で使用する通り、二次元格子のセルの垂直方向及び水平方向の一次元アレイにそれぞれ関する一方、用語「行」は、特に、セルの実際の配向が計算の観点では任意であることを一因として、二次元格子のセルの垂直方向又は水平方向の一次元アレイのいずれかを指すことに留意すべきである。さらに、正方格子トポロジーを示しているものの、他の非正方矩形及び他の格子形状も同様に、使用され得る。
【0011】
様々な実施形態において、格子トポロジーモデル124は、ツリー構造/サブツリー群からなるサブツリー構造として、量子ビットのグラフを表示可能である。以下の特性を満たすグラフの特定のツリー分解(X、T)を考慮する。
|X|=N:=8n、X={X、...、X
Tは、リストで、T={(X、X)、...(XN-1、X)}
|Xj|≦W:=4n+2、j=1、...、N
Alex Selbyにより、「フラストレーションによるイジング型モデルの効率的な部分グラフに基づくサンプリング」における、サンプリングに対する単一パスのダイナミックプログラミング解決法が提案された。しかしながら、この手法は、ボルツマン分布の近似的なサンプルのみを作成し、格子のすべての量子ビットに対する予備結果を保存するのに十分大きいデータ構造を必要とする。
【0012】
対照的に、古典プロセッサ120は、O(N2)時間におけるグラフ上の特定のQUBOの場合の複数の特性を計算するために、サブツリー群によりガイドされる、マルチパスダイナミックプログラミングを実施する演算命令を実行する。古典プロセッサ120は、N個の適切に適合されたダイナミックプログラミングパスを実行することで、(最小状態と単一ボルツマンサンプルの両方に対する)すべての変数の代入値を決定し、サンプルあたりのO(nN2)の全複雑性を与えることができる。より詳しくは、古典プロセッサ120は、以下の項目のいずれか又はすべてを計算可能である。
・最小達成可能なエネルギー及びXの変数の関連する代入値
・すべての状態の全ボルツマン重み
・最小エネルギー状態の全ボルツマン重み
・Xの変数のすべての代入値のボルツマン分布
・単一ボルツマンサンプルのXの変数の代入値
【0013】
特に、量子計算エミュレータ102は、N個の行を備えた格子トポロジー内に配列された複数の量子ビットを有する量子コンピュータのサンプリングをエミュレートするためのシステムを提供する。様々な実施形態において、古典プロセッサ120は、格子トポロジーにより、N個の反復パスに基づいて、N個の行に対する最終重み値及び変数代入値を作成することを含む、演算を実行するために、古典メモリ122内に記憶された演算命令により構成され、N個の反復パスの各々は、N個の行の対応する部分集合に対する仮重み値及び変数代入値を生成させて、N個の行の対応する部分集合の選択された行に対する仮重み値及び変数代入値は、N個の行の対応する部分集合の選択された行に隣接する行に対し生成された仮重み値及び変数代入値に基づき、複数の量子ビットを有する量子コンピュータのサンプリングは、N個の行の各々に対する最終重み値及び変数代入値に基づいて、サンプルによりエミュレートされる。
【0014】
様々な実施形態において、N個の反復パスの第1の反復パスは、N個の行の(N-1)番目の行に対し生成された仮重み値及び変数代入値に基づいて、N個の行のN番目の行に対する最終重み値及び変数代入値を生成させる。例えば、N個の反復パスの第1の反復パスに関連するN個の行の対応する部分集合は、N個の行の第2の行とN個の行の(N-1)番目の行との間の範囲に、N個の行のすべての行を含む。N個の反復パスの第1の反復パスは、ヌル行に対応するヌルウェイトに基づいて、N個の行の第1の行に対する仮重み値及び変数代入値を生成させる。N個の反復パスの最終反復パスは、N個の行の第2の行に対する最終重み値及び変数代入値に基づいて、N個の行の第1の行に対する最終重み値及び変数代入値を生成させ、N個の反復パスの各々は、N個の行の対応する1つに対する最終重み値及び変数代入値を生成させる。
【0015】
様々な実施形態において、N個の反復パスのp番目の反復パスは、N個の行の(N-p)番目の行に対し生成された仮重み値及び変数代入値に基づいて、N個の行の(N-p+1)番目の行に対する最終重み値及び変数代入値を生成させる。N個の反復パスのp番目の反復パスに関連するN個の行の対応する部分集合は、N個の行の第2の行とN個の行の(N-p)番目の行との間の範囲に、N個の行のすべての行を含み得る。格子トポロジーは、二次制約なし二値最適化(QUBO)モデルに対応可能である。該サンプルは、ボルツマン分布に対応可能である。
【0016】
さらなる実施例を考慮する。古典プロセッサ120は、格子トポロジーにより、N個の反復パスに基づいて、N個の行に対する最終重み値及び変数代入値を作成することを含む演算を実行するために、古典メモリ122内に記憶された演算命令により構成される。N個の反復パスの各々は、N個の行の複数の行の各々に対する隣接する行に対し生成された仮重み値及び変数代入値に基づいて、該N個の行の複数の行に対する仮重み値及び変数代入値を生成させる。最終重み値及び変数代入値は、N個の行の最終行に隣接するN個の行のある行に対し生成された仮重み値及び変数代入値に基づいて、N個の反復パスの各々に対するN個の行の最終行に対し生成される。最終行は、パス毎に異なる。最終行が、第1のパス内のN番目の行である上、最終行は、第2のパス内の(N-1)番目の行で、より一般的には、最終行は、p番目のパス内の(N-p+1)番目の行である。N個の反復パスが完了し、N個の行の各々に対する最終重み値及び変数代入値が生成されるまで、仮重み値及び変数代入値が再生される、N個の行の行数を低減するために、N個の行の最終行に対する最終重み値及び変数代入値は、N個の反復パスの次の連続パス内で使用される。複数の量子ビットを有する量子コンピュータのサンプリングは、N個の行の各々に対する最終重み値及び変数代入値に基づいて、サンプルによりエミュレートされる。
【0017】
様々な実施形態において、N個の反復パスに基づいて、N個の行に対する仮重み値及び変数代入値を作成するプロセッサは、
(1)格子トポロジーにより、N個の反復パスの第1のパスを実行することであって、N個の行のN番目の行が、最終行に対応し、仮重み値及び変数代入値が生成されるN個の行の行数が(N-1)に等しい、実行すること、
(2)格子トポロジーにより、N個の反復パスの(N-1)個の他のパスを実行すること、であって、
(a)p=2を設定すること、
(b)格子トポロジーにより、p番目のパスを実行することであって、N個の行の(N-p+1)番目の行が、最終行に対応し、仮重み値及び変数代入値が再生されるN個の行の行数が(N-p)に等しい、実行すること、
(c)nをインクリメントすること、及び
(d)p=Nまで、ステップ(b)及び(c)を繰り返すこと、により、実行すること、を含む。
【0018】
様々な実施形態において、格子トポロジーによるN個の反復パスの第1のパスは、ヌル行、実際には、格子の第1の行に隣接して配置されるダミー又はファントム行に対応するヌルウェイト及び/又は変数代入値に基づいて、N個の行の第1の行に対する仮重み値及び変数代入値を生成させることを含む。
【0019】
図3は、本発明に係る、量子計算アーキテクチャの実施形態の概略ブロック図300である。図2の量子計算アーキテクチャ同様に、格子トポロジーは、3行×3列を有する9個のセル(N=3)のN×N格子を含む。記載の実施例において、格子トポロジーは、対応する変数x0、、...x71を有する、0~72に番号付けされた、各々8個の相互接続された個々の量子ビットを有する、9個の相互接続された単位セルを備えたキメラグラフ(C)に対応する。これらの相互接続に基づいて、いくつかの変数(例:x及びx)の間に依存関係が存在する一方、他の変数(例:x及びx)の間に依存関係はない。この格子トポロジーが、すべての可能な変数の組み合わせの対x及びxの限定された部分集合を含むQUBO問題を提示し、xとxとの間の依存関係が、格子に基づく配置でモデル化可能であるため、QUBO問題は、古典計算により解決可能である。
【0020】
様々な実施形態において、古典プロセッサ120は、下記の疑似コードに基づいて、作動可能である。
def calculate_sampling( grid[ Rows ][ Columns ]):
(last_column_variables_assigments[], weights and variable assignments[])=
calculate_last_column_solution(grid[ Rows ][ Columns ])

(last_column_variable_assignment, weight ) =
select_one_sample_with_boltzman_distribution(
last_column_variables_assigments[],
weights and variable assignments[]
for variable_assignment in last_column_variable_assignment:
if variable_assignment = 0:
ignore
elif variable_assignment = 1:
grid[ Rows ][ Columns - 1 ].xi_coeff +=
grid[ Rows ][ Columns ].xi_xj_coeff
return calculate_sampling( qubo[ Rows ][ Columns - 1 ]
last_column_variable_assignment) +
last_column_variable_assignment
【0021】
各パス内の最終行の周辺分布は、ツリー分解に関するダイナミックプログラミングに基づいて、計算可能である。一般化されたキメラグラフCの特定のツリー分解を考慮する。
・最大で4n+1(Nn)の大きさから各々なる、N個の行X={X、X、…、X}の集合
・基本分解は、パスP={(X、X)、(X、X)、…、(XN-1、X)}である。
上述のダイナミックプログラミング手法を使用して、量子計算エミュレータ102は、以下を目的として作動する。
・エネルギーを最小化する対応する部分グラフとともに、基底エネルギー値を決定する
・ボルツマン(Gibbs)分布に関連する総重みを決定する
・ボルツマン分布にしたがって、単一のサンプルを抽出する
【0022】
様々な実施形態において、古典プロセッサ120は、その左の行からなる部分グラフ内の各行に対して、ビット(量子ビット)の重み(周辺分布)を計算することで、続行する。これは、(第1の行の左のファントム空(ヌル)行に対する)0で開始し、その後、各エッジe=uvに対する以下の式を適用することで、重みを行XからXk+1まで移動することで行われる。
【数1】
1.w及びwを、行の境界上のビットのいくつかの代入値に対応する重みとして、それらがuに代入される値(これは、それぞれ0及び1である)によってのみ異なるようにして、dをエッジuvのエネルギー、bを頂点vのエネルギーとする;
2.ビットの同一の代入値に対応するが、vが境界頂点である重みを計算するために、目標重みw’0及びw’1(同様に、0及び1をそれぞれvに代入することに対応する)を考慮の上、以下を定義する。
w’=w+w
w’=(w+e-βc)e-βb
【0023】
これを3x3の実施例に適用すると、古典プロセッサ120は、N=3パス内で行毎で続行することで、格子を反復してサンプリングするように作動可能である。特に、図4A、4B及び4Cは、本発明に係るマルチパスサンプリングのフロー図400、425及び450の実施形態を示す。第1のパスは、図4Aに示す通り、行1から行3まで続行する。第3の行に対する結果は、図4Bに示す通り、行1から行2までのパスのみを必要とする、第2のパス内で使用される。第3のパスは、図4Cに示す通り、行1を完成させる。3つのパスの後に、サンプルは、全グラフに対して取得される。
【0024】
上述の方法は、単一のサンプルをボルツマン分布から抽出する観点で記載されているが、複数のサンプルをボルツマン分布から効率的に抽出するために改良可能である。kサンプルを抽出することを前提に、上記方法を連続して実行する単純な手法は、O(knN2)の複雑性を与える。以下に概略説明される方法により、O(N(k+N2))内でkサンプルを抽出可能である。Nk項が無視できれば、新規の手法は、取り扱う場合、明らかに、O(n)サンプルよりも大幅に優位である。
【0025】
1とN+1との間の任意のjに対して、Xj+1に関するk個の部分サンプルs、...、sが、O(k+N2)時間後のXに関するk個の部分サンプルt、...、tに「後退」可能であることを示すことが、所望の複雑性への到達には十分である。これは、上述の通り、Xj-1の変数の代入値に関するボルツマン重みを構成し、以下の手続きにより、Xの変数の代入値に関する重みの計算を拡張することで、取得可能である。
1.初めに、各サンプルsに対して、乱数aを、0(を含まない)とXj+1(を含む)内のsの代入値の重みとの間で均一に選び、l=1、...、kとする。
2.代入値の重みと変数代入値の計算中、Xの代入値tの(適切に調整された)重みwにより、Xj+1の代入値sの重みを増加する場合は必ず、sがsに対応するすべてのaを、wによりデクリメントする。これにより、sが正から非正に変わるたびに、t:=tとする。
j+1に関する各代入値が最大で2回更新されると、上記項目2の追加のステップは、各サンプル、したがって、所望の複雑性に対して最大2回生じる。これにより、複数のサンプルが、計算での増加分を固定することでのみ、生成される利点が提供される。別のサンプル数が多くなると、得られる効率は高くなる。
【0026】
上述の方法は、他の方法でも同様に改良可能である。N個の反復パス内で行1~行N、その後、行1~行(N-1)等を続行する代わりに、d≠0の条件で、実行されるすべての演算は可逆的で、このため、第1のパス内で最終行をサンプリング後に、w*は、w’*から回収可能で、第2の行から最終行まで、その他逆の順序でサンプリングするために、(最終行のビットとともに)使用可能である。これにより、サンプルは、2個のパスのみにより抽出可能である。これによって、O(Nn24n)へのサンプリングの複雑性が変更される。
【0027】
古典プロセッサ120は、演算中に、
(a)格子トポロジーにより、第1のパスを実行することであって、N個の行内の第1の行からN個の行の(N-1)番目の行までの第1の順番において、(N-1)個の行の各々に対する先行して隣接する行に対し生成された仮重み値に基づいて、第1のパスが、N個の行の(N-1)番目の行に対する仮重み値及び変数代入値を反復して生成させることを含み、最終重み値が、N個の行の(N-1)番目の行に対し生成された仮重み値に基づいて、N番目の行に対し生成される、実行すること、及び
(b)N個の行の残りの(N-1)個の行に対する最終重み値及び変数代入値を作成することで、格子トポロジーにより、第2のパスを実行することであって、N個の行の(N-1)番目の行からN個の第1の行までの第2の順番において、(N-1)個の行の各々に対する先行して隣接する行に対し生成された最終重み値に基づいて、第2のパスが、N個の行の(N-1)個の行に対する最終重み値及び変数代入値を反復して生成させることを含む、実行すること、を含む、演算を実行可能である。
上述の通り、量子コンピュータのサンプリングは、N個の行の各々に対する最終重み値及び変数代入値に基づいて、サンプルによりエミュレートされる。
【0028】
図5A及び図5Bは、本発明に係る、デュアルパスサンプリングのフロー図500及び525の実施形態を示す。第1のパスは、図5Aに示す通り、行1から行3まで続行する。第3の行に対する結果は、図5Bに示す通り、行2及び行1に戻る反対方向に続行する、第2のパス内で使用される。2つのパスの後に、サンプルは、全グラフに対して取得される。上述のマルチサンプリング方法は、単一のサンプルのみを抽出するものとして記載されるものの、2個のパス内でkサンプルを抽出するためにさらに改良可能である。
【0029】
上述の方法は、他の方法で改良可能である。ある問題が、上述した特定のサブツリー構造を利用するダイナミックプログラミングにより、低確率の解決法を示すグラフにより検出される場合を考慮する。この場合、処理は、サブツリー構造ではなく、ツリーの葉を使用する第2の構造により、ダイナミックプログラミングに切り替わる。該問題が解決される場合、該処理は、上述のサブツリー構造を使用して、ダイナミックプログラミングに戻って切り替え可能である。これにより、1つ以上のサンプルを、それ以外では特定のグラフ構造を備えた問題により阻害され得る、グラフから抽出可能である。
【0030】
図6は、本発明に係る、方法の実施形態のフロー図600である。特に、方法は、図1図5とともに記載される1つ以上の機能及び特徴に使用するために提示される。ステップ602は、(N-1)個の行の各々に対する隣接する行に対し生成された仮重み値及び変数代入値に基づいて、N個の行の(N-1)個の行に対する仮重み値及び変数代入値を生成させることで、N個の行のN番目の行に対する最終重み値及び変数代入値を作成するために、格子トポロジーにより、第1の反復パスを実行することを含み、最終重み値及び変数代入値が、N番目の行に隣接するN個の行の(N-1)番目の行に対し生成された仮重み値及び変数代入値に基づいて、N番目の行に対し生成される。ステップ604は、p=2を設定することを含む。ステップ606は、(N-p)個の行の各々に対する隣接する行に対し再生された仮重み値及び変数代入値に基づいて、N個の行の(N-p)個の行に対する仮重み値及び変数代入値を再生させることで、N個の行の(N-p+1)番目の行に対する最終重み値及び変数代入値を作成するために、格子トポロジーにより、p番目のパスを実行することを含み、最終重み値及び変数代入値が、(N-p+1)番目の行に隣接するN個の行の(N-p)番目の行に対し再生された仮重み値及び変数代入値と(N-p+2)番目の行に対し生成された最終重み値及び変数代入値に基づいて、(N-p+1)番目の行に対し生成される。ステップ608は、pをインクリメントすることを含む。
【0031】
ステップ610において、該方法は、p=N-1かどうかを判断する。該方法がそう判断しなければ、ステップ606に戻る。該方法がそう判断すれば、該方法は、第2の行に対し生成された最終重み値及び変数代入値に基づいて、N個の行の第1の行に対する最終重み値及び変数割当を生成するために、格子トポロジーにより、最終パスを実行するステップ612に続行し、複数の量子ビットを有する量子コンピュータのサンプリングが、N個の行の各々に対する最終重み値及び変数代入値に基づいて、サンプルによりエミュレートされる。
【0032】
図7は、本発明に係る、方法の実施形態のフロー図700である。特に、方法は、図1図6とともに記載される1つ以上の機能及び特徴に使用するために提示される。ステップ702は、(N-1)個の行の各々に対する隣接する行に対し生成された仮重み値及び変数代入値に基づいて、N個の行の(N-1)個の行に対する仮重み値及び変数代入値を生成させることで、N個の行のN番目の行に対する最終重み値及び変数代入値を作成するために、格子トポロジーにより、第1の反復パスを実行することを含み、最終重み値及び変数代入値が、N番目の行に隣接するN個の行の(N-1)番目の行に対し生成された仮重み値及び変数代入値に基づいて、N番目の行に対し生成される。ステップ704は、p=2に設定することを含む。ステップ706は、(N-p)個の行の各々に対する隣接する行に対し再生された仮重み値及び変数代入値に基づいて、N個の行の(N-p)個の行に対する仮重み値及び変数代入値を再生させることで、N個の行の(N-p+1)番目の行に対する最終重み値及び変数代入値を作成するために、格子トポロジーにより、n番目のパスを実行することを含み、最終重み値及び変数代入値が、(N-p+1)番目の行に隣接するN個の行の(N-p)番目の行に対し再生された仮重み値及び変数代入値と(N-p+2)番目の行に対し生成された最終重み値及び変数代入値に基づいて、(N-p+1)番目の行に対し生成される。ステップ708は、pをインクリメントすることを含む。
【0033】
ステップ710において、該方法は、p=N-1かどうかを判断する。該方法がそう判断しなければ、ステップ706に戻る。該方法がそう判断すれば、該方法は、第2の行に対し生成された最終重み値及び変数代入値に基づいて、N個の行の第1の行に対する最終重み値及び変数割当を生成するために、格子トポロジーにより、最終パスを実行するステップ712に続行し、複数の量子ビットを有する量子コンピュータのサンプリングが、N個の行の各々に対する最終重み値及び変数代入値に基づいて、N個の反復パスから複数のサンプルを作成することで、エミュレートされる。
【0034】
様々な実施形態において、格子トポロジーによる、N個の反復パスの第1の反復パスは、N個の行の第1の行に隣接するヌル行に対応するヌルウェイトに基づいて、N個の行の第1の行に対する仮重み値及び変数代入値を生成させることを含む。格子トポロジーは、二次制約なし二値最適化モデルに対応可能である。該サンプルは、ボルツマン分布に対応可能である。
【0035】
図8は、本発明に係る、方法の実施形態のフロー図800である。特に、方法は、図1図7とともに記載される1つ以上の機能及び特徴に使用するために提示される。ステップ802は、格子トポロジーにより、第1のパスを実行することを含み、N個の行内の第1の行からN個の行の(N-1)番目の行までの第1の順番において、(N-1)個の行の各々に対する先行して隣接する行に対し生成された仮重み値に基づいて、第1のパスが、N個の行の(N-1)個の行に対する仮重み値及び変数代入値を反復して生成させることを含み、最終重み値が、N個の行の(N-1)番目の行に対し生成された仮重み値に基づいて、N番目の行に対し生成される。
【0036】
ステップ804は、N個の行の残りの(N-1)個の行に対する最終重み値及び変数代入値を作成することで、格子トポロジーにより、第2のパスを実行することを含み、N個の行の(N-1)番目の行からN個の第1の行までの第2の順番において、(N-1)個の行の各々に対する先行して隣接する行に対し生成された最終重み値に基づいて、第2のパスが、N個の行の(N-1)個の行に対する最終重み値及び変数代入値を反復して生成させることを含み、複数の量子ビットを有する量子コンピュータのサンプリングが、N個の行の各々に対する最終重み値及び変数代入値に基づいて、サンプルによりエミュレートされる。
【0037】
上述した該方法が、二次元格子トポロジーを有する量子コンピュータのサンプリングをエミュレートするために提示された一方、本明細書記載の方法は、上記で概要説明した通り、行毎で続行するマルチパス手法で二次元スライス用に結果を作成し、その後、最終結果が三次元格子用に取得されるまで、スライス毎でマルチパス方法にて続行することで、三次元格子トポロジーに拡張可能であることは留意すべきである。
【0038】
ビットストリーム、ストリーム、シグナル配列等(又はそれらに相当するもの)の本明細書で使用され得る専門用語が、そのコンテンツが複数の任意の所望の種類に対応するデジタル情報(例:データ、映像、発話、テキスト、画像、音声等で、それらのいずれも一般的に、「データ」と称され得る)を記述するために、置き換え可能に使用されたことを留意するものとする。
【0039】
本明細書で使用され得る通り、用語「略~」及び「約~」は、その対応する用語及び/又は項目間の相対性に対し、産業上認められる許容値を提供する。産業上認められる許容値は、ある業界にとっては1%未満で、また他の業界にとっては10%以上となる。産業上認められる許容値の他の例は、1%未満~50%の範囲である。産業上認められる許容値は、成分値、集積回路プロセス変動、温度変化、立ち上がり及び立ち下がり時間、熱雑音、寸法、シグナリング誤差、パケット落ち、温度、圧力、材料組成、及び/又は性能メトリクスに対応するが、これらに限定されない。認められた許容値の許容値変動は、業界内では1%レベル(例:+/-1%未満の寸法公差)程度であり得る。ある程度の項目間の相対性は、1%レベル未満~数%の差異の範囲であり得る。項目間の他の相対性は、数%の差異から相当の差異の範囲であり得る。
【0040】
本明細書で使用され得る通り、用語「~するように構成される」、「~するよう操作可能に結合される」、「~するように結合される」、及び/又は「結合する」は、間接結合の例に対して、介在項目が、信号の情報を変更しないが、その電流レベル、電圧レベル、及び/又は電力レベルを調整し得る、介在項目(例:項目は、コンポーネント、要素、回路、及び/又はモジュールを含むが、これらに限定されない)により、項目間の直接結合及び/又は項目間の間接結合を含む。本明細書でさらに使用される通り、推定結合(すなわち、1つの要素が、推定により別の要素に結合される場合)は、「~するように結合される」のと同じ方法で、2つの項目間の直接及び間接結合を含む。
【0041】
本明細書でさらにまた使用され得る通り、用語「~するように構成される」、「~するために操作可能な」、「~するように結合される」、又は「~するよう操作可能に結合される」は、項目が、作動される場合、その対応する機能の1つ以上を実行するために、電力接続、入力、出力等の1つ以上を含み、1つ以上の他の項目への推定結合をさらに含み得ることを示す。本明細書でさらにまた使用され得る通り、用語「~に関連する」は、別個の項目及び/又は別項目内に埋め込まれた1つの項目の直接及び/又は間接結合を含む。
【0042】
本明細書で使用され得る通り、用語「好ましく比較する」は、2つ以上の項目、信号等間を比較すれば、所望の関係が与えられることを示す。例えば、所望の関係が、信号1が信号2よりも大きい大きさを有する場合、好ましい比較は、信号1の大きさが信号2よりも大きい又は信号2の大きさが信号1より小さい場合に、達成され得る。本明細書で使用され得る通り、用語「好ましくなく比較する」は、2つ以上の項目、信号等間を比較すれば、所望の関係が与えられないことを示す。
【0043】
本明細書で使用され得る通り、1つ以上の請求項は、この一般形式である表現「a、b、及びcの少なくとも1つ」又は、「a」、「b」、及び「c」程度の要素を備えた、この一般形式である「a、b、又はcの少なくとも1つ」の特殊な形式で含み得る。いずれの言い回しにおいても、該表現は、同様に解釈されるものとする。特に、「a、b、及びcの少なくとも1つ」は、「a、b、又はcの少なくとも1つ」と同等で、a、b、及び/又はcを意味することとする。例として、該表現は、「a」のみ、「b」のみ、「c」のみ、「a」及び「b」、「a」及び「c」、「b」及び「c」、並びに/又は「a」、「b」、及び「c」を意味する。
【0044】
1つ以上の実施形態は、指定された機能やその関係の性能を示す方法ステップを一助として、上に記載された。これらの機能的構成要素及び方法ステップの境界及び配列は、説明の便宜上、本明細書で任意に定義された。境界及び配列を交互に定義することは、指定された機能や関係が適切に実行される限り、可能である。このため、このような任意の交互の境界又は配列は、請求項の範囲内であって意図されるものである。さらに、これらの機能的構成要素の境界は、説明の便宜上、任意に定義された。境界を交互に定義することは、特定の重要な機能が適切に実行される限り、あり得る。同様に、フローブロック図はまた、特定の重要な機能を示すため、本明細書で任意に定義され得た。
【0045】
フローブロック図の境界及び配列は、使用される範囲に限って、それ以外での定義もあり得、さらに、特定の重要な機能を実行する。このため、機能的構成要素及びフローブロック図と配列の両方をこのように交互に定義することは、請求項の範囲内であって意図されるものである。平均的な当業者であれば、本明細書記載の機能的構成要素、並びに他の例示的なブロック、モジュール及び構成要素が、図示の通り、又は別個の構成要素、特定用途向け集積回路、適切なソフトウェアを実行するプロセッサ等若しくはそれらの任意の組み合わせにより、実行可能であることを理解するであろう。
【0046】
さらに、フロー図は、「開始」及び/又は「継続」の表示を含み得る。「開始」及び「継続」の表示は、提示されたるステップが、オプションとして組み込み可能である、又はそれ以外では、1つ以上の他のルーチンとともに使用可能であることを反映する。さらに、フロー図は、「終了」及び/又は「継続」の表示を含み得る。「終了」及び/又は「継続」の表示は、提示されたステップが、記載及び表示通りに終了可能であるか、或いは任意選択的に1つ以上の他のルーチンに組み込み可能であるか、又はそれ以外の方法で1つ以上の他のルーチンとともに使用可能であることを反映する。これに関連して、「開始」は、提示された第1のステップの開始を示し、明確に示されない他の活動により先行され得る。さらに、「継続」の表示は、提示されたステップが複数回実行され得、及び/又は明確に示されない他の活動により後続され得ることを反映する。さらに、フロー図がステップの特定の順序を示す一方、因果律が維持される条件下で、他の順序も同様に可能である。
【0047】
該1つ以上の実施形態は、1つ以上の態様、1つ以上の特徴、1つ以上の概念、及び/又は1つ以上の実施例を示すために、本明細書で使用される。機器、製品、機械及び/又はプロセスの物理的実施形態は、本明細書記載の実施形態の1つ以上に準拠して記載される、態様、特徴、概念、実施例等の1つ以上を含み得る。さらに、図から図にかけて、実施形態は、同一又は異なる参照番号を使用し得る同一又は類似の名称の機能、ステップ、モジュール等を組み込み得、したがって、機能、ステップ、モジュール等は、同一若しくは類似の機能、ステップ、モジュール等、又は異なるものであり得る。
【0048】
それと対照的に特段の記載がない限り、本明細書に示す図のいずれかの図の要素まで、要素から及び/又は要素間の信号は、アナログ又はデジタル、連続時間又は離散時間、シングルエンド形又は差動形であり得る。例えば、信号経路がシングルエンド形経路として示されると、差動信号経路も表す。同様に、信号経路が差動経路として示されれば、シングルエンド形信号経路も表す。1つ以上の特定のアーキテクチャが本明細書に記載されているものの、他のアーキテクチャは、同様に、当業者が理解するような、明示的に示されない1つ以上のデータバス、要素間の直接接続、及び/又は他の要素間の間接結合を使用して、実行可能である。
【0049】
用語「モジュール」は、実施形態の1つ以上の説明において使用される。モジュールは、プロセッサ若しくは他の処理装置、又は操作命令を記憶するメモリを含むか、若しくはこれと共同して作動し得る他のハードウェア等のデバイスにより、1つ以上の機能を実行する。モジュールは、独立して並びに/又はソフトウェア及び/若しくはファームウェアとともに、作動し得る。さらに本明細書で使用される通り、モジュールは、各々が1つ以上のモジュールであり得る、1つ以上のサブモジュールを含み得る。
【0050】
本明細書でさらに使用され得る通り、コンピュータ可読メモリは、1つ以上のメモリ素子を含む。メモリ素子は、別個のメモリ装置、複数のメモリ装置、又はメモリ装置内の記憶場所の一式であり得る。このようなメモリ装置は、読み取り専用メモリ、ランダムアクセスメモリ、揮発性メモリ、不揮発性メモリ、スタティックメモリ、ダイナミックメモリ、フラッシュメモリ、キャッシュメモリ、及び/又はデジタル情報を記憶する任意のデバイスであり得る。メモリ装置は、固体メモリ、ハードドライブメモリ、クラウドメモリ、サムドライブ、サーバメモリ、計算装置メモリ、及び/又はデジタル情報を記憶するための他の物理媒体の形態であり得る。
【0051】
1つ以上の実施形態の様々な機能及び特徴の特定の組み合わせが本明細書に明示的に記載されたものの、これらの機能及び特徴の他の組み合わせも同様に可能である。本開示は、本明細書開示の特定の実施例により限定されず、これらの他の組み合わせを明示的に組み込む。
図1
図2
図3
図4A
図4B
図4C
図5A
図5B
図6
図7
図8