(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-26
(54)【発明の名称】サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定
(51)【国際特許分類】
G06N 10/20 20220101AFI20231219BHJP
G06N 10/80 20220101ALI20231219BHJP
【FI】
G06N10/20
G06N10/80
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023534932
(86)(22)【出願日】2021-12-13
(85)【翻訳文提出日】2023-06-08
(86)【国際出願番号】 EP2021085401
(87)【国際公開番号】W WO2022128868
(87)【国際公開日】2022-06-23
(32)【優先日】2020-12-14
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】ジュウ、グアンユ
(72)【発明者】
【氏名】クロス、アンドリュー
(57)【要約】
サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にするシステム、コンピュータ実施方法およびコンピュータ・プログラム製品が提供される。一実施形態によれば、システムが、メモリに格納されたコンピュータ実行可能コンポーネントを実行するプロセッサを備えることができる。このコンピュータ実行可能コンポーネントは、コード化されたキュービットのサブシステム・コードにゲージ固定演算を適用して、スイッチされたサブシステム・コードを生成するゲージ固定コンポーネントを含むことができる。このコンピュータ実行可能コンポーネントはさらに、スイッチされたサブシステム・コードにトランスバーサル・アダマール演算を適用して、回転したサブシステム・コードを生成するトランスバース・コンポーネントを含むことができる。
【特許請求の範囲】
【請求項1】
システムであって、
メモリに格納されたコンピュータ実行可能コンポーネントを実行するプロセッサ
を備え、前記コンピュータ実行可能コンポーネントが、
コード化されたキュービットのサブシステム・コードにゲージ固定演算を適用して、スイッチされたサブシステム・コードを生成するゲージ固定コンポーネントと、
前記スイッチされたサブシステム・コードにトランスバーサル・アダマール演算を適用して、回転したサブシステム・コードを生成するトランスバース・コンポーネントと
を含む、システム。
【請求項2】
前記コンピュータ実行可能コンポーネントがさらに、
前記回転したサブシステム・コードを回転させて、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するコードを生成する回転コンポーネント
を含む、請求項1に記載のシステム。
【請求項3】
前記ゲージ固定コンポーネントが、前記サブシステム・コードに前記ゲージ固定演算を適用して、前記サブシステム・コードのサブセットの中の2ボディ・ゲージ演算子と4ボディ・ゲージ演算子を交換する、請求項1および2のいずれか一項に記載のシステム。
【請求項4】
前記トランスバース・コンポーネントが、前記スイッチされたサブシステム・コードに前記トランスバーサル・アダマール演算を適用して、データ・キュービット上でアダマール・ゲートを適用し、X型ゲージ演算子とZ型ゲージ演算子、X型スタビライザとZ型スタビライザおよびX型論理演算子とZ型論理演算子を交換する、請求項1ないし3のいずれか一項に記載のシステム。
【請求項5】
前記回転コンポーネントが、前記回転したサブシステム・コードの垂直軸および対角軸に関して互いに対称であるキュービット間で2つのペアワイズ・スワップ・ゲート演算を実行する、請求項2ないし4のいずれか一項に記載のシステム。
【請求項6】
コンピュータ実施方法であって、
プロセッサに動作可能に結合されたシステムによって、コード化されたキュービットのサブシステム・コードにゲージ固定演算を適用して、スイッチされたサブシステム・コードを生成すること、および
前記システムによって、前記スイッチされたサブシステム・コードにトランスバーサル・アダマール演算を適用して、回転したサブシステム・コードを生成すること
を含むコンピュータ実施方法。
【請求項7】
前記システムによって、前記回転したサブシステム・コードを回転させて、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するコードを生成すること
をさらに含む、請求項6に記載のコンピュータ実施方法。
【請求項8】
前記システムによって、前記サブシステム・コードに前記ゲージ固定演算を適用して、前記サブシステム・コードのサブセットの中の2ボディ・ゲージ演算子と4ボディ・ゲージ演算子を交換すること
をさらに含む、請求項6および7のいずれか一項に記載のコンピュータ実施方法。
【請求項9】
前記システムによって、前記スイッチされたサブシステム・コードに前記トランスバーサル・アダマール演算を適用して、データ・キュービット上でアダマール・ゲートを適用し、X型ゲージ演算子とZ型ゲージ演算子、X型スタビライザとZ型スタビライザおよびX型論理演算子とZ型論理演算子を交換すること
をさらに含む、請求項6ないし8のいずれか一項に記載のコンピュータ実施方法。
【請求項10】
前記システムによって、前記回転したサブシステム・コードの垂直軸および対角軸に関して互いに対称であるキュービット間で2つのペアワイズ・スワップ・ゲート演算を実行すること
をさらに含む、請求項6ないし9のいずれか一項に記載のコンピュータ実施方法。
【請求項11】
コンピュータ・プログラム製品であって、
プログラム命令が実装されたコンピュータ可読ストレージ媒体を含み、前記プログラム命令が、
コード化されたキュービットのサブシステム・コードにゲージ固定演算を適用して、スイッチされたサブシステム・コードを生成すること、および
前記スイッチされたサブシステム・コードにトランスバーサル・アダマール演算を適用して、回転したサブシステム・コードを生成すること
をプロセッサに実行させるように前記プロセッサによって実行可能である、コンピュータ・プログラム製品。
【請求項12】
前記プログラム命令がさらに、
前記回転したサブシステム・コードを回転させて、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するコードを生成すること
を前記プロセッサに実行させるように前記プロセッサによって実行可能である、請求項11に記載のコンピュータ・プログラム製品。
【請求項13】
前記プログラム命令がさらに、
前記サブシステム・コードに前記ゲージ固定演算を適用して、前記サブシステム・コードのサブセットの中の2ボディ・ゲージ演算子と4ボディ・ゲージ演算子を交換すること
を前記プロセッサに実行させるように前記プロセッサによって実行可能である、請求項11および12のいずれか一項に記載のコンピュータ・プログラム製品。
【請求項14】
前記プログラム命令がさらに、
前記スイッチされたサブシステム・コードに前記トランスバーサル・アダマール演算を適用して、データ・キュービット上でアダマール・ゲートを適用し、X型ゲージ演算子とZ型ゲージ演算子、X型スタビライザとZ型スタビライザおよびX型論理演算子とZ型論理演算子を交換すること
を前記プロセッサに実行させるように前記プロセッサによって実行可能である、請求項11ないし13のいずれか一項に記載のコンピュータ・プログラム製品。
【請求項15】
前記プログラム命令がさらに、
前記回転したサブシステム・コードの垂直軸および対角軸に関して互いに対称であるキュービット間で2つのペアワイズ・スワップ・ゲート演算を実行すること
を前記プロセッサに実行させるように前記プロセッサによって実行可能である、請求項11ないし14のいずれか一項に記載のコンピュータ・プログラム製品。
【請求項16】
システムであって、
メモリに格納されたコンピュータ実行可能コンポーネントを実行するプロセッサ
を備え、前記コンピュータ実行可能コンポーネントが、
コード化されたキュービットのサブシステム・コードにゲージ固定演算を適用して、スイッチされたサブシステム・コードを生成するゲージ固定コンポーネントと、
前記スイッチされたサブシステム・コードの格子をシフトして、シフトおよびスイッチされたサブシステム・コードを生成する格子シフト・コンポーネントと
を含む、システム。
【請求項17】
前記コンピュータ実行可能コンポーネントがさらに、
前記シフトおよびスイッチされたサブシステム・コードにトランスバーサル・アダマール演算を適用して、回転したサブシステム・コードを生成するトランスバース・コンポーネントと、
前記回転したサブシステム・コードを回転させて、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するコードを生成する回転コンポーネントと
を含む、請求項16に記載のシステム。
【請求項18】
前記ゲージ固定コンポーネントが、前記サブシステム・コードに前記ゲージ固定演算を適用して、前記サブシステム・コードのサブセットの中の2ボディ・ゲージ演算子と4ボディ・ゲージ演算子を交換する、請求項16および17のいずれか一項に記載のシステム。
【請求項19】
前記トランスバース・コンポーネントが、前記シフトおよびスイッチされたサブシステム・コードに前記トランスバーサル・アダマール演算を適用して、データ・キュービット上でアダマール・ゲートを適用し、X型ゲージ演算子とZ型ゲージ演算子、X型スタビライザとZ型スタビライザおよびX型論理演算子とZ型論理演算子を交換する、請求項17および18のいずれか一項に記載のシステム。
【請求項20】
前記回転コンポーネントが、前記回転したサブシステム・コードの垂直軸および対角軸に関して互いに対称であるキュービット間で2つのペアワイズ・スワップ・ゲート演算を実行する、請求項17ないし19のいずれか一項に記載のシステム。
【請求項21】
コンピュータ実施方法であって、
プロセッサに動作可能に結合されたシステムによって、コード化されたキュービットのサブシステム・コードにゲージ固定演算を適用して、スイッチされたサブシステム・コードを生成すること、および
前記システムによって、前記スイッチされたサブシステム・コードの格子をシフトして、シフトおよびスイッチされたサブシステム・コードを生成すること
を含むコンピュータ実施方法。
【請求項22】
前記システムによって、前記シフトおよびスイッチされたサブシステム・コードにトランスバーサル・アダマール演算を適用して、回転したサブシステム・コードを生成すること、および
前記システムによって、前記回転したサブシステム・コードを回転させて、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するコードを生成すること
をさらに含む、請求項21に記載のコンピュータ実施方法。
【請求項23】
前記システムによって、前記サブシステム・コードに前記ゲージ固定演算を適用して、前記サブシステム・コードのサブセットの中の2ボディ・ゲージ演算子と4ボディ・ゲージ演算子を交換すること
をさらに含む、請求項21および22のいずれか一項に記載のコンピュータ実施方法。
【請求項24】
前記システムによって、前記シフトおよびスイッチされたサブシステム・コードに前記トランスバーサル・アダマール演算を適用して、データ・キュービット上でアダマール・ゲートを適用し、X型ゲージ演算子とZ型ゲージ演算子、X型スタビライザとZ型スタビライザおよびX型論理演算子とZ型論理演算子を交換すること
をさらに含む、請求項21ないし23のいずれか一項に記載のコンピュータ実施方法。
【請求項25】
前記システムによって、前記回転したサブシステム・コードの垂直軸および対角軸に関して互いに対称であるキュービット間で2つのペアワイズ・スワップ・ゲート演算を実行すること
をさらに含む、請求項21ないし24のいずれか一項に記載のコンピュータ実施方法。
【発明の詳細な説明】
【技術分野】
【0001】
本主題開示はサブシステム・コード(subsystem code)に関し、より詳細には、サブシステム・コードにおける論理アダマール・ゲート演算(logical Hadamard gate operation)およびゲージ固定(gauge fixing)に関する。
【背景技術】
【0002】
量子コンピューティングは一般に、コンピューティング機能および情報処理機能を実行する目的で量子力学的現象を使用することである。量子コンピューティングは、一般にトランジスタを用いてバイナリ値に対して演算を実行する古典的コンピューティングと対照をなすものと見ることができる。すなわち、古典的コンピュータは、0または1であるビット値に対して演算を実行することができるが、量子コンピュータは、0および1の両方の重ね合わせ(superposition)を含む量子ビット(キュービット)に対して演算を実行し、多数の量子ビットをもつれさせる(entangle)ことができ、干渉を使用する。
【0003】
既存のいくつかの量子技術は、サブシステム・コードを利用して、例えば制御NOT(Controlled NOT)(CNOT)論理ゲートなどのさまざまな量子演算を実行する。このような既存の量子技術に関する問題は、それらの技術が、このようなサブシステム・コードにおいて論理アダマール・ゲートを実行しないことである。このような既存の量子技術に関する別の問題は、それらの技術が、このようなサブシステム・コードにおいてゲージ固定を実行することができないことである。
【発明の概要】
【0004】
以下に、本発明の1つまたは複数の実施形態の基本的理解を提供する概要を示す。この概要が、鍵となる要素もしくは決定的に重要な要素を識別すること、または、この概要が、特定の実施形態の範囲もしくは特許請求の範囲を限定することは意図されていない。その唯一の目的は、後に示すより詳細な説明に対する前置きとして、着想を、簡略化された形で示すことにある。本明細書に記載された1つまたは複数の実施形態には、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にすることができるシステム、デバイス、コンピュータ実施方法もしくはコンピュータ・プログラム製品またはこれらの組合せが記載されている。
【0005】
一実施形態によれば、システムは、メモリに格納されたコンピュータ実行可能コンポーネントを実行するプロセッサを備えることができる。このコンピュータ実行可能コンポーネントは、コード化されたキュービットのサブシステム・コードにゲージ固定演算を適用して、スイッチされたサブシステム・コードを生成するゲージ固定コンポーネントを含むことができる。このコンピュータ実行可能コンポーネントはさらに、スイッチされたサブシステム・コードにトランスバーサル・アダマール演算(transversal Hadamard operation)を適用して、回転したサブシステム・コードを生成するトランスバース・コンポーネント(transverse component)を含むことができる。このようなシステムの利点は、量子デバイスに関連した周波数衝突(frequency collision)またはクロストーク・エラー(crosstalk error)のうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲート(fault tolerant logical Hadamard gate)を実行するように、システムを実施することができることである。
【0006】
いくつかの実施形態では、このコンピュータ実行可能コンポーネントがさらに、回転したサブシステム・コードを回転させて、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するコードを生成する回転コンポーネントを含むことができる。このようなシステムの利点は、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するように、システムを実施することができることである。
【0007】
別の実施形態によれば、コンピュータ実施方法は、プロセッサに動作可能に結合されたシステムによって、コード化されたキュービットのサブシステム・コードにゲージ固定演算を適用して、スイッチされたサブシステム・コードを生成することを含むことができる。このコンピュータ実施方法はさらに、このシステムによって、スイッチされたサブシステム・コードにトランスバーサル・アダマール演算を適用して、回転したサブシステム・コードを生成することを含むことができる。このようなコンピュータ実施方法の利点は、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するように、コンピュータ実施方法を実施することができることである。
【0008】
いくつかの実施形態では、このコンピュータ実施方法がさらに、このシステムによって、回転したサブシステム・コードを回転させて、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するコードを生成することを含むことができる。このようなコンピュータ実施方法の利点は、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するように、コンピュータ実施方法を実施することができることである。
【0009】
別の実施形態によれば、コンピュータ・プログラム製品は、プログラム命令が実装されたコンピュータ可読ストレージ媒体を含み、このプログラム命令は、コード化されたキュービットのサブシステム・コードにゲージ固定演算を適用して、スイッチされたサブシステム・コードを生成することをプロセッサに実行させるようにプロセッサによって実行可能である。このプログラム命令はさらに、スイッチされたサブシステム・コードにトランスバーサル・アダマール演算を適用して、回転したサブシステム・コードを生成することをプロセッサに実行させるようにプロセッサによって実行可能である。このようなコンピュータ・プログラム製品の利点は、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するように、コンピュータ・プログラム製品を実施することができることである。
【0010】
いくつかの実施形態では、このプログラム命令がさらに、回転したサブシステム・コードを回転させて、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するコードを生成することをプロセッサに実行させるようにプロセッサによって実行可能である。このようなコンピュータ・プログラム製品の利点は、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するように、コンピュータ・プログラム製品を実施することができることである。
【0011】
一実施形態によれば、システムは、メモリに格納されたコンピュータ実行可能コンポーネントを実行するプロセッサを備えることができる。このコンピュータ実行可能コンポーネントは、コード化されたキュービットのサブシステム・コードにゲージ固定演算を適用して、スイッチされたサブシステム・コードを生成するゲージ固定コンポーネントを含むことができる。このコンピュータ実行可能コンポーネントはさらに、スイッチされたサブシステム・コードの格子をシフトして、シフトおよびスイッチされたサブシステム・コードを生成する格子シフト・コンポーネントを含むことができる。このようなシステムの利点は、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するように、システムを実施することができることである。
【0012】
いくつかの実施形態では、このコンピュータ実行可能コンポーネントがさらに、シフトおよびスイッチされたサブシステム・コードにトランスバーサル・アダマール演算を適用して、回転したサブシステム・コードを生成するトランスバース・コンポーネントを含むことができる。これらの実施形態では、このコンピュータ実行可能コンポーネントがさらに、回転したサブシステム・コードを回転させて、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するコードを生成する回転コンポーネントを含むことができる。このようなシステムの利点は、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するように、システムを実施することができることである。
【0013】
別の実施形態によれば、コンピュータ実施方法は、プロセッサに動作可能に結合されたシステムによって、コード化されたキュービットのサブシステム・コードにゲージ固定演算を適用して、スイッチされたサブシステム・コードを生成することを含むことができる。このコンピュータ実施方法はさらに、このシステムによって、スイッチされたサブシステム・コードの格子をシフトして、シフトおよびスイッチされたサブシステム・コードを生成することを含むことができる。このようなコンピュータ実施方法の利点は、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するように、コンピュータ実施方法を実施することができることである。
【0014】
いくつかの実施形態では、このコンピュータ実施方法がさらに、このシステムによって、シフトおよびスイッチされたサブシステム・コードにトランスバーサル・アダマール演算を適用して、回転したサブシステム・コードを生成することを含むことができる。これらの実施形態では、このコンピュータ実施方法がさらに、このシステムによって、回転したサブシステム・コードを回転させて、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するコードを生成することを含むことができる。このようなコンピュータ実施方法の利点は、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するように、コンピュータ実施方法を実施することができることである。
【図面の簡単な説明】
【0015】
【
図1】本明細書に記載された1つまたは複数の実施形態による、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にすることができる例示的で非限定的なシステムのブロック図である。
【
図2】本明細書に記載された1つまたは複数の実施形態による、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にすることができる例示的で非限定的なシステムのブロック図である。
【
図3】本明細書に記載された1つまたは複数の実施形態による、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にすることができる例示的で非限定的な図である。
【
図4】本明細書に記載された1つまたは複数の実施形態による、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にすることができる例示的で非限定的な図である。
【
図5】本明細書に記載された1つまたは複数の実施形態による、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にすることができる例示的で非限定的な図である。
【
図6A】本明細書に記載された1つまたは複数の実施形態による、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にすることができる例示的で非限定的な図である。
【
図6B】本明細書に記載された1つまたは複数の実施形態による、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にすることができる例示的で非限定的な図である。
【
図6C】本明細書に記載された1つまたは複数の実施形態による、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にすることができる例示的で非限定的な図である。
【
図6D】本明細書に記載された1つまたは複数の実施形態による、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にすることができる例示的で非限定的な図である。
【
図6E】本明細書に記載された1つまたは複数の実施形態による、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にすることができる例示的で非限定的な図である。
【
図7】(A)および(B)は、本明細書に記載された1つまたは複数の実施形態による、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にすることができる例示的で非限定的な図である。
【
図8】本明細書に記載された1つまたは複数の実施形態による、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にすることができる例示的で非限定的なコンピュータ実施方法の流れ図である。
【
図9】本明細書に記載された1つまたは複数の実施形態による、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にすることができる例示的で非限定的なコンピュータ実施方法の流れ図である。
【
図10】本明細書に記載された1つまたは複数の実施形態を容易にすることができる例示的で非限定的な動作環境のブロック図である。
【
図11】本主題開示の1つまたは複数の実施形態による、例示的で非限定的なクラウド・コンピューティング環境のブロック図である。
【
図12】本主題開示の1つまたは複数の実施形態による、例示的で非限定的な抽象化モデル層のブロック図である。
【発明を実施するための形態】
【0016】
以下の詳細な説明は例示だけが目的であり、以下の詳細な説明が、実施形態を限定すること、または実施形態の用途もしくは使用を限定すること、あるいはその両方を限定することは意図されていない。さらに、上記の「背景技術」もしくは「発明の概要」または「発明を実施するための形態」に示された明示のまたは暗示の情報によって拘束されることも意図されていない。
【0017】
次に、図面を参照して1つまたは複数の実施形態を説明する。全体を通じて、同じ要素を指すために同じ参照符号が使用されている。以下の説明では、説明の目的上、1つまたは複数の実施形態のより完全な理解を提供するために、数多くの特定の詳細が示される。しかしながら、さまざまなケースにおいて、それらの特定の詳細なしで1つまたは複数の実施形態を実施することができることは明白である。
【0018】
既存の量子技術に関する上述の問題を考えると、コード化されたキュービットのサブシステム・コードにゲージ固定演算を適用して、スイッチされたサブシステム・コードを生成すること、もしくはスイッチされたサブシステム・コードにトランスバーサル・アダマール演算を適用して、回転したサブシステム・コードを生成すること、またはその両方によって、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にすることができるシステム、コンピュータ実施方法もしくはコンピュータ・プログラム製品またはこれらの組合せの形態の、これらの問題に対する解決策を生み出すように、本開示を実施することができる。このようなシステム、コンピュータ実施方法もしくはコンピュータ・プログラム製品またはこれらの組合せの利点は、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するように、それらを実施することができることである。
【0019】
いくつかの実施形態では、回転したサブシステム・コードを回転させて、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するコードを生成することによって、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定をさらに容易にすることができるシステム、コンピュータ実施方法もしくはコンピュータ・プログラム製品またはこれらの組合せの形態の、上述の問題に対する解決策を生み出すように、本開示を実施することができる。このようなシステム、コンピュータ実施方法もしくはコンピュータ・プログラム製品またはこれらの組合せの利点は、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するように、それらを実施することができることである。
【0020】
本明細書で参照されているとき、「実体」は、人間、クライアント、ユーザ、コンピューティング・デバイス、ソフトウェア・アプリケーション、エージェント、機械学習(ML)モデル、人工知能(AI)もしくは別の実体またはこれらの組合せを含みうる。本明細書において1つの要素が、別の要素に「結合されている」として参照されているとき、このことは、限定はされないが、化学的結合、通信可能な結合、電気的結合、電磁気的結合、動作可能な結合、光学的結合、物理的結合、熱的結合もしくは別のタイプの結合またはこれらの組合せを含む、1つまたは複数の異なるタイプの結合を記述していることがあることが理解される。
【0021】
図1および2はそれぞれ、本明細書に記載された1つまたは複数の実施形態による、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にすることができる例示的で非限定的なシステム100および200のブロック図を示している。システム100および200はそれぞれ、量子ゲート・オペレーションシステム102を含むことができる。
図1に示されたシステム100の量子ゲート演算システム102は、メモリ104、プロセッサ106、ゲージ固定コンポーネント108、トランスバース・コンポーネント110もしくはバス112またはこれらの組合せを含むことができる。
図2に示されたシステム200の量子ゲート演算システム102はさらに、回転コンポーネント202もしくは格子シフト・コンポーネント204またはその両方を含むことができる。
【0022】
本明細書に開示されたさまざまな図に示された主題開示の実施形態は例示だけが目的であり、そのため、そのような実施形態のアーキテクチャは、それらの図に示されたシステム、デバイスもしくはコンポーネントまたはそれらの組合せに限定されないことを認識すべきである。例えば、いくつかの実施形態では、システム100、システム200もしくは量子ゲート演算システム102またはこれらの組合せがさらに、
図10の動作環境1000に関して本明細書で説明されているさまざまなコンピュータ要素もしくはコンピューティング・ベースの要素またはその両方を含むことができる。いくつかの実施形態では、そのようなコンピュータ要素もしくはコンピューティング・ベースの要素またはその両方を、
図1、
図2もしくは本明細書に開示されたその他の図またはこれらの組合せに関して図示および説明されたシステム、デバイス、コンポーネントもしくはコンピュータ実施演算またはこれらの組合せのうちの1つまたは複数の実施に関して使用することができる。
【0023】
メモリ104は、コンピュータもしくは機械またはその両方が読み取ること、書き込むこともしくは実行することまたはこれらの組合せを行うことができる1つもしくは複数のコンポーネントもしくは命令またはその両方であって、プロセッサ106(例えば古典的プロセッサ、量子プロセッサもしくは別のタイプのプロセッサまたはこれらの組合せ)によって実行されたときに、実行可能なコンポーネントもしくは命令またはその両方によって規定された演算の実行を容易にすることができる、1つもしくは複数のコンポーネントもしくは命令またはその両方を格納することができる。例えば、メモリ104は、コンピュータもしくは機械またはその両方が読み取ること、書き込むこともしくは実行することまたはこれらの組合せを行うことができるコンポーネントもしくは命令またはその両方であって、プロセッサ106によって実行されたときに、量子ゲート演算システム102、ゲージ固定コンポーネント108、トランスバース・コンポーネント110、回転コンポーネント202、格子シフト・コンポーネント204、もしくは主題開示のさまざまな図を参照してもしくは参照せずに本明細書で説明されている量子ゲート演算システム102に関連した別のコンポーネント、またはこれらの組合せに関する本明細書に記載されたさまざまな機能の実行を容易にすることができる、コンポーネントもしくは命令またはその両方を格納することができる。
【0024】
メモリ104は、揮発性メモリ(例えばランダム・アクセス・メモリ(RAM)、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)もしくは別のタイプの揮発性メモリまたはこれらの組合せ)もしくは不揮発性メモリ(例えばリード・オンリー・メモリ(ROM)、プログラマブルROM(PROM)、消去可能なプログラマブルROM(EPROM)、電気的に消去可能なプログラマブルOM(EEPROM)もしくは別のタイプの不揮発性メモリまたはこれらの組合せ)またはその両方を含むことができ、それらの揮発性メモリもしくは不揮発性メモリまたはその両方は、1つもしくは複数のメモリ・アーキテクチャを使用することができる。メモリ104の追加の例が、
図10のシステム・メモリ1016に関して下で説明されている。メモリ104のそのような例を使用して、主題開示の任意の実施形態を実施することができる。
【0025】
プロセッサ106は、コンピュータもしくは機械またはその両方が読み取ること、書き込むこともしくは実行することまたはこれらの組合せを行うことができる1つもしくは複数のコンポーネントもしくは命令またはその両方であって、メモリ104に格納することができる1つもしくは複数のコンポーネントもしくは命令またはその両方を実施することができる1つもしくは複数のタイプのプロセッサもしくは電子回路またはその両方(例えば古典的プロセッサ、量子プロセッサならびに/または別のタイプのプロセッサおよび/もしくは電子回路)を含むことができる。例えば、プロセッサ106は、コンピュータもしくは機械またはその両方が読み取ること、書き込むこともしくは実行することまたはこれらの組合せを行うことができるこのようなコンポーネントもしくは命令またはその両方によって指定することができるさまざまな演算を実行することができ、それらの演算は、限定はされないが、論理、制御、入力/出力(I/O)、算術演算もしくはその他の演算またはこれらの組合せを含む。いくつかの実施形態では、プロセッサ106が、1つまたは複数の中央処理ユニット、マルチコア・プロセッサ、マイクロプロセッサ、デュアル・マイクロプロセッサ、マイクロコントローラ、システム・オン・ア・チップ(SOC)、アレイ・プロセッサ、ベクトル・プロセッサ、量子プロセッサもしくは別のタイプのプロセッサ、またはこれらの組合せを含むことができる。プロセッサ106の追加の例が、
図10の処理ユニット1014に関して下で説明されている。プロセッサ106のそのような例を使用して、主題開示の任意の実施形態を実施することができる。
【0026】
システム100、システム200、量子ゲート演算システム102もしくはこれらに結合されたコンポーネントまたはこれらの組合せの機能を実行するために、量子ゲート演算システム102、メモリ104、プロセッサ106、ゲージ固定コンポーネント108、トランスバース・コンポーネント110、回転コンポーネント202、格子シフト・コンポーネント204、もしくは本明細書に記載された量子ゲート演算システム102の別のコンポーネント、またはこれらの組合せを、バス112を介して互いに、通信可能に、電気的に、動作可能にもしくは光学的にまたはこれらの組合せで結合することができる。バス112は、1つまたは複数のメモリ・バス、メモリ・コントローラ、周辺バス、外部バス、ローカル・バス、量子バスもしくは別のタイプのバス、またはこれらの組合せを含むことができ、これらのバスは、さまざまなバス・アーキテクチャを使用することができる。バス112の追加の例が、
図10のシステム・バス1018に関して下で説明されている。バス112のそのような例を使用して、主題開示の任意の実施形態を実施することができる。
【0027】
量子ゲート演算システム102は、プロセッサを含む任意のタイプのコンポーネント、機械、デバイス、設備、装置および/もしくは機器を含むことができ、ならびに/または有線ネットワークおよび/もしくは無線ネットワークと有効におよび/もしくは動作可能に通信することができる。このような全ての実施形態が想定される。例えば、量子ゲート演算システム102は、サーバ・デバイス、コンピューティング・デバイス、汎用コンピュータ、専用コンピュータ、量子コンピューティング・デバイス(例えば量子コンピュータ)、タブレット・コンピューティング・デバイス、ハンドヘルド・デバイス、サーバ・クラス・コンピューティング・マシンおよび/もしくはデータベース、ラップトップ・コンピュータ、ノートブック・コンピュータ、デスクトップ・コンピュータ、携帯電話、スマート・フォン、コンシューマ機器および/もしくは器具、工業用および/もしくは商用デバイス、デジタル・アシスタント、インターネットが使用可能なマルチメディア電話機、マルチメディア・プレーヤ、ならびに/または他のタイプのデバイスを含むことができる。
【0028】
量子ゲート演算システム102を、ワイヤもしくはケーブルまたはその両方を使用して、1つまたは複数の外部システム、ソースもしくはデバイスまたはこれらの組合せ(例えば古典的および/もしくは量子コンピューティング・デバイス、通信デバイス、ならびに/または別のタイプの外部システム、ソースおよび/もしくはデバイス)に(例えば通信可能に、電気的に、動作可能に、光学的に、もしくは別のタイプの結合によって、またはこれらの組合せで)結合することができる。例えば、量子ゲート演算システム102を、限定はされないが、ハイデフィニション・マルチメディア・インタフェース(High-Definition Multimedia Interface)(HDMI)ケーブル、レコメンデッド・スタンダード(recommended standard)(RS)232ケーブル、Ethernetケーブルもしくは別のデータ・ケーブル、またはこれらの組合せを含むデータ・ケーブルを使用して、1つまたは複数の外部システム、ソースもしくはデバイスまたはこれらの組合せ(例えば古典的および/もしくは量子コンピューティング・デバイス、通信デバイス、ならびに/または別のタイプの外部システム、ソースおよび/もしくはデバイス)に(例えば通信可能に、電気的に、動作可能に、光学的に、もしくは別のタイプの結合によって、またはこれらの組合せで)結合することができる。
【0029】
いくつかの実施形態では、量子ゲート演算システム102を、ネットワークを介して、1つまたは複数の外部システム、ソースもしくはデバイスまたはこれらの組合せ(例えば古典的および/もしくは量子コンピューティング・デバイス、通信デバイス、ならびに/または別のタイプの外部システム、ソースおよび/もしくはデバイス)に(例えば通信可能に、電気的に、動作可能に、光学的に、もしくは別のタイプの結合によって、またはこれらの組合せで)結合することができる。例えば、このようなネットワークは、限定はされないが、セル方式ネットワーク、ワイド・エリア・ネットワーク(WAN)(例えばインターネット)、ローカル・エリア・ネットワーク(LAN)もしくは別のネットワークまたはこれらの組合せを含む有線ネットワークもしくは無線ネットワークまたはその両方を含むことができる。量子ゲート演算システム102は、実質的に任意の所望の有線技術もしくは無線技術またはその両方を使用して、1つもしくは複数の外部システム、ソースもしくはデバイス、例えばコンピューティング・デバイス、またはこれらの組合せと通信することができ、この実質的に任意の所望の有線技術および無線技術は、限定はされないが、ワイヤレス・フィデリティ(wireless fidelity)(Wi-Fi)、グローバル・システム・フォー・モバイル・テレコミュニケーションズ(global system for mobile communications)(GSM)、ユニバーサル・モバイル・テレコミュニケーションズ・システム(universal mobile telecommunications system)(UMTS)、ワールドワイド・インターオペラビリティ・フォー・マイクロウェーブ・アクセス(worldwide interoperability for microwave access)(WiMAX)、エンハンスト・ジェネラル・パケット・ラジオ・サービス(enhanced general packet radio service)(エンハンストGPRS)、サード・ジェネレーション・パートナーシップ・プロジェクト(third generation partnership project)(3GPP)ロング・ターム・エボルーション(long term evolution)(LTE)、サード・ジェネレーション・パートナーシップ・プロジェクト2(3GPP2)ウルトラ・モバイル・ブロードバンド(ultra mobile broadband)(UMB)、ハイ・スピード・パケット・アクセス(high speed packet access)(HSPA)、Zigbeeおよび他の802.XX無線技術および/もしくは従来の電気通信技術、BLUETOOTH(R)、セッション・イニシエーション・プロトコル(Session Initiation Protocol)(SIP)、ZIGBEE(R)、RF4CEプロトコル、WirelessHARTプロトコル、6LoWPAN(IPv6オーバー・ローパワー・ワイヤレス・エリア・ネットワーク(IPv6 over Low power Wireless Area Networks))、Z-Wave、ANT、ウルトラワイドバンド(ultra-wideband)(UWB)標準プロトコル、ならびに/またはその他の専用および非専用通信プロトコルを含む。したがって、いくつかの実施形態では、量子ゲート演算システム102が、量子ゲート演算システム102と外部システム、ソースもしくはデバイスまたはこれらの組合せ(例えばコンピューティング・デバイス、通信デバイスならびに/または別のタイプの外部システム、ソースおよび/もしくはデバイス)との間の情報伝達を容易にすることができる、ハードウェア(例えば中央処理ユニット(CPU)、トランシーバ、デコーダ、量子ハードウェア、量子プロセッサもしくは他のハードウェアまたはこれらの組合せ)、ソフトウェア(例えば一組のスレッド、一組のプロセス、実行中のソフトウェア、量子パルス・スケジュール、量子回路、量子ゲートもしくは他のソフトウェアまたはこれらの組合せ)、またはハードウェアとソフトウェアの組合せを含むことができる。
【0030】
量子ゲート演算システム102は、コンピュータもしくは機械またはその両方が読み取ること、書き込むこともしくは実行することまたはこれらの組合せを行うことができる1つもしくは複数のコンポーネントもしくは命令またはその両方であって、プロセッサ106(例えば古典的プロセッサ、量子プロセッサもしくは別のタイプのプロセッサまたはこれらの組合せ)によって実行されたときに、このようなコンポーネントもしくは命令またはその両方によって規定された演算の実行を容易にすることができる、1つもしくは複数のコンポーネントもしくは命令またはその両方を含むことができる。さらに、多数の実施形態において、量子ゲート演算システム102に関連した、主題開示のさまざまな図を参照してまたは参照せずに本明細書で説明された任意のコンポーネントは、コンピュータもしくは機械またはその両方が読み取ること、書き込むこともしくは実行することまたはこれらの組合せを行うことができる1つもしくは複数のコンポーネントもしくは命令またはその両方であって、プロセッサ106によって実行されたときに、このようなコンポーネントもしくは命令またはその両方によって規定された演算の実行を容易にすることができる、1つもしくは複数のコンポーネントもしくは命令またはその両方を含むことができる。例えば、(例えば量子ゲート演算システム102に通信可能に、電子的に、動作可能におよび/もしくは光学的に結合され、ならびに/または量子ゲート演算システム102によって通信可能に、電子的に、動作可能におよび/もしくは光学的に使用される)ゲージ固定コンポーネント108、トランスバース・コンポーネント110、回転コンポーネント202、格子シフト・コンポーネント204、もしくは量子ゲート演算システム102に関連した本明細書に開示された他のコンポーネント、またはこれらの組合せは、コンピュータもしくは機械またはその両方が読み取ること、書き込むこともしくは実行することまたはこれらの組合せを行うことができるこのような複数のコンポーネントもしくは命令またはその両方を含むことができる。その結果、多数の実施形態によれば、量子ゲート演算システム102もしくは量子ゲート演算システム102に関連した本明細書に開示された任意のコンポーネント、またはその両方は、量子ゲート演算システム102もしくは量子ゲート演算システム102に関連した任意のコンポーネントまたはその両方に関して本明細書で説明された1つまたは複数の演算の実行を容易にするために、プロセッサ106を使用して、コンピュータもしくは機械またはその両方が読み取ること、書き込むこともしくは実行することまたはこれらの組合せを行うことができるこのようなコンポーネントもしくは命令またはその両方を実行することができる。
【0031】
量子ゲート演算システム102は、ゲージ固定コンポーネント108、トランスバース・コンポーネント110、回転コンポーネント202、格子シフト・コンポーネント204、および/もしくは量子ゲート演算システム102に関連した本明細書に開示された別のコンポーネントによって実行され、ならびに/またはゲージ固定コンポーネント108、トランスバース・コンポーネント110、回転コンポーネント202、格子シフト・コンポーネント204、および/もしくは量子ゲート演算システム102に関連した本明細書に開示された別のコンポーネントに関連した演算の(例えばプロセッサ106による)実行を容易にすることができる。例えば、後に詳細に説明するように、量子ゲート演算システム102は、(例えばプロセッサ106によって、)コード化されたキュービットのサブシステム・コードにゲージ固定演算を適用して、スイッチされたサブシステム・コードを生成すること、もしくはスイッチされたサブシステム・コードにトランスバーサル・アダマール演算を適用して、回転したサブシステム・コードを生成すること、またはその両方を容易にすることができる。この例では、後に詳細に説明するように、量子ゲート演算システム102がさらに、(例えばプロセッサ106によって、)回転したサブシステム・コードを回転させて、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するコードを生成すること、サブシステム・コードにゲージ固定演算を適用して、サブシステム・コードのサブセットの中の2ボディ・ゲージ演算子(two-body gauge operator)と4ボディ・ゲージ演算子(four-body gauge operator)を交換すること、スイッチされたサブシステム・コードにトランスバーサル・アダマール演算を適用して、データ・キュービット上でアダマール・ゲートを適用し、X型ゲージ演算子とZ型ゲージ演算子、X型スタビライザ(stabilizer)とZ型スタビライザおよびX型論理演算子とZ型論理演算子を交換すること、もしくは回転したサブシステム・コードの垂直軸および対角軸に関して互いに対称であるキュービット間で2つのペアワイズ・スワップ・ゲート演算を実行すること、またはこれらの組合せを容易にすることができる。
【0032】
別の例では、後に詳細に説明するように、量子ゲート演算システム102が、(例えばプロセッサ106によって、)コード化されたキュービットのサブシステム・コードにゲージ固定演算を適用して、スイッチされたサブシステム・コードを生成すること、もしくはスイッチされたサブシステム・コードの格子をシフトして、シフトおよびスイッチされたサブシステム・コードを生成すること、またはその両方を容易にすることができる。この例では、後に詳細に説明するように、量子ゲート演算システム102がさらに、(例えばプロセッサ106によって、)シフトおよびスイッチされたサブシステム・コードにトランスバーサル・アダマール演算を適用して、回転したサブシステム・コードを生成すること、回転したサブシステム・コードを回転させて、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するコードを生成すること、サブシステム・コードにゲージ固定演算を適用してサブシステム・コードのサブセットの中の2ボディ・ゲージ演算子と4ボディ・ゲージ演算子を交換すること、シフトおよびスイッチされたサブシステム・コードにトランスバーサル・アダマール演算を適用して、データ・キュービット上でアダマール・ゲートを適用し、X型ゲージ演算子とZ型ゲージ演算子、X型スタビライザとZ型スタビライザおよびX型論理演算子とZ型論理演算子を交換すること、もしくは回転したサブシステム・コードの垂直軸および対角軸に関して互いに対称であるキュービット間で2つのペアワイズ・スワップ・ゲート演算を実行すること、またはこれらの組合せを容易にすることができる。
【0033】
ゲージ固定コンポーネント108は、コード化されたキュービットのサブシステム・コードにゲージ固定演算を適用して、スイッチされたサブシステム・コードを生成することができる。例えば、
図3に示された例示的で非限定的な
図300を参照すると、ゲージ固定コンポーネント108は、コード化されたキュービットのサブシステム・コード302(
図3ではCとして示されている)にゲージ固定演算を適用して、スイッチされたサブシステム・コード304(
図3ではC’として示されている)を生成することができる
【0034】
図3は、本明細書に記載された1つまたは複数の実施形態による、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にすることができる例示的で非限定的な
図300を示している。簡潔にするため、対応するそれぞれの実施形態で使用されている同じ要素もしくはプロセスまたはその両方の繰返しの説明は省かれている。
【0035】
上で説明し、
図3に示された例示的で非限定的な
図300に示したとおり、ゲージ固定コンポーネント108は、コード化されたキュービットのサブシステム・コード302にゲージ固定演算を適用して、スイッチされたサブシステム・コード304を生成することができる。例えば、
図4~6Eを参照して後に説明するとおり、ゲージ固定コンポーネント108は、サブシステム・コード302にゲージ固定演算を適用して、サブシステム・コード302のサブセットの中の2ボディ・ゲージ演算子と4ボディ・ゲージ演算子を交換することができる。例えば、ゲージ固定コンポーネント108は、サブシステム・コード302にゲージ固定演算を適用して、サブシステム・コード302のバルク(bulk)の中のX型とZ型の両方の2ボディ・ゲージ演算子と4ボディ・ゲージ演算子を交換することができ、この交換は、サブシステム・コード302を有効にスイッチして、
図3に示されたスイッチされたサブシステム・コード304にする。
【0036】
図3に示された例示的で非限定的な
図300において、トランスバース・コンポーネント110は、スイッチされたサブシステム・コード304にトランスバーサル・アダマール演算を適用して、回転したサブシステム・コード306(
図3ではC”として示されている)を生成することができる。例えば、トランスバース・コンポーネント110は、スイッチされたサブシステム・コード304にトランスバーサル・アダマール演算を適用して、データ・キュービット上でアダマール・ゲートを適用すること、およびX型ゲージ演算子とZ型ゲージ演算子、X型スタビライザとZ型スタビライザおよびX型論理演算子とZ型論理演算子を交換することができる。すなわち、例えば、トランスバース・コンポーネント110は、トランスバーサル・アダマール演算を適用して、全てのデータ・キュービット上でアダマール・ゲートを適用することができ、このゲートは、XおよびZ型ゲージ演算子およびスタビライザを交換し、スイッチされたサブシステム・コード304を有効にスイッチして、回転したサブシステム・コード306にする。
【0037】
図3に示された例示的で非限定的な
図300において、回転コンポーネント202は、回転したサブシステム・コード306を回転させて、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するコード308を生成することができる。この例示的な実施形態では、回転したサブシステム・コード306を回転させてコード308を生成するために、回転コンポーネント202が、回転したサブシステム・コード306の垂直軸310および対角軸312に関して互いに対称なキュービット間で2つのペアワイズ・スワップ・ゲート演算を実行することができる。例えば、
図3に記されているように、回転したサブシステム・コード306を回転させてコード308を生成するために、回転コンポーネント202は、下に定義された式(1)を使用して、垂直軸310および対角軸312に関して互いに対称なキュービット間で2つのペアワイズ・スワップ・ゲート演算を実行することができ、このようなスワップ・ゲート演算は、90度(90°)の回転を有効に実施する。
【0038】
式(1)
SWAP(n⇔d-n)・SWAP(m⇔n)
上式で、mは、サブシステム・コードの中のデータ・キュービット位置の行を示し、nは、サブシステム・コードの中のデータ・キュービット位置の列を示し、dは、サブシステム・コードのサブシステム・コード距離を示し、このサブシステム・コード距離は、サブシステム・コードの中のデータ・キュービットの行および列の総数に等しい。主題開示の多数の実施形態によれば、このようなデータ・キュービットは、本明細書に記載された図に示されたさまざまなサブシステム・コードの中の点314として表現される。
図3に示された例示的で非限定的な
図300において、上に定義された式(1)を使用して、上で説明したこのようなキュービット間の2つのペアワイズ・スワップ・ゲート演算を実行することによって、回転コンポーネント202は、キュービットの置換を実行することができ、この置換は、コードを90°有効に回転させ、それをスイッチしてサブシステム・コード302に戻す。
【0039】
いくつかの実施形態では、例えば
図7(A)および7(B)を参照して後に説明するように、ゲージ固定コンポーネント108が、コード化されたキュービットのサブシステム・コードにゲージ固定演算を適用して、スイッチされたサブシステム・コードを生成することができ、格子シフト・コンポーネント204が、スイッチされたサブシステム・コードの格子をシフトして、シフトおよびスイッチされたサブシステム・コードを生成することができる。これらの実施形態では、トランスバース・コンポーネント110が、シフトおよびスイッチされたサブシステム・コードにトランスバーサル・アダマール演算を適用して、回転したサブシステム・コードを生成することができ、回転コンポーネント202が、回転したサブシステム・コードを回転させて、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するコードを生成することができる。これらの実施形態では、ゲージ固定コンポーネント108が、サブシステム・コードにゲージ固定演算を適用して、サブシステム・コードのサブセットの中の2ボディ・ゲージ演算子と4ボディ・ゲージ演算子を交換することができる。これらの実施形態では、トランスバース・コンポーネント110が、シフトおよびスイッチされたサブシステム・コードにトランスバーサル・アダマール演算を適用して、データ・キュービット上でアダマール・ゲートを適用すること、およびX型ゲージ演算子とZ型ゲージ演算子、X型スタビライザとZ型スタビライザおよびX型論理演算子とZ型論理演算子を交換することができる。これらの実施形態では、回転コンポーネント202が、回転したサブシステム・コードの垂直軸および対角軸に関して互いに対称なキュービット間で2つのペアワイズ・スワップ・ゲート演算を実行することができる。
【0040】
図4は、本明細書に記載された1つまたは複数の実施形態による、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にすることができる例示的で非限定的な
図400を示している。簡潔にするため、対応するそれぞれの実施形態で使用されている同じ要素もしくはプロセスまたはその両方の繰返しの説明は省かれている。
【0041】
図400は、ヘビーヘキス・コード(heavy-hex code)へのゲージ固定後のゲージ演算子を示している。ゲージ群G’は、S(G)≦S(G’)≦G’≦Gかつおよびk(G)=k(G’)である場合のGのゲージ固定であり、ここで、S(G)はGのスタビライザ、k(G)はコード化されたキュービットの数である。
図4に示された例示的な
図400において、サブシステム・コード302およびスイッチされたサブシステム・コード304は、
図4では「C
BS」として示されているBacon-Shorコードのゲージ固定である。
【0042】
図4に示された例示的な
図400において、サブシステム・コード302のバルクは、4ボディXゲージ演算子(サブシステム・コード302の濃灰色の正方形の中に示されている)および垂直2ボディZゲージ演算子(サブシステム・コード302の淡灰色の垂直半円の中に示されている)を含んでいる。主題開示のさまざまな実施形態において、サブシステム・コード302のこのようなバルクは、サブシステム・コード302のサブセットを構成しうる。
図4に示された例示的な
図400に示されているサブシステム・コード302の境界には、水平2ボディXゲージ演算子(サブシステム・コード302の濃灰色の水平半円の中に示されている)がある。主題開示のさまざまな実施形態において、サブシステム・コード302の境界は、サブシステム・コード302のサブセットを構成することができる。
【0043】
図4に示された例示的な
図400において、スイッチされたサブシステム・コード304のバルクは、4ボディZゲージ演算子(スイッチされたサブシステム・コード304の淡灰色の正方形の中に示されている)および水平2ボディXゲージ演算子(スイッチされたサブシステム・コード304の濃灰色の水平半円の中に示されている)を含んでいる。主題開示のさまざまな実施形態において、スイッチされたサブシステム・コード304のこのようなバルクは、スイッチされたサブシステム・コード304のサブセットを構成しうる。
図4に示された例示的な
図400に示されているスイッチされたサブシステム・コード304の境界には、垂直2ボディZゲージ演算子(スイッチされたサブシステム・コード304の淡灰色の垂直半円の中に示されている)がある。主題開示のさまざまな実施形態において、スイッチされたサブシステム・コード304の境界は、スイッチされたサブシステム・コード304のサブセットを構成しうる。
【0044】
図4に示された例示的な
図400において、ゲージ固定演算を適用する前に、ゲージ固定コンポーネント108は、バルクの中の4ボディXゲージ演算子を2つの水平2ボディ・ゲージ演算子の対に分割することができる。
図4に示された例示的な
図400において、ゲージ固定演算を適用する前に、ゲージ固定コンポーネント108は、バルクの中の2つの垂直2ボディZゲージ演算子の対を1つの4ボディ・ゲージ演算子に併合することができる。
【0045】
図5は、本明細書に記載された1つまたは複数の実施形態による、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にすることができる例示的で非限定的な
図500を示している。簡潔にするため、対応するそれぞれの実施形態で使用されている同じ要素もしくはプロセスまたはその両方の繰返しの説明は省かれている。
【0046】
図500は、上で説明したヘビーヘキサゴン(heavy-hexagon)・ゲージ固定のスタビライザを示している。例えば、
図5に示された例示的な
図500において、サブシステム・コード302は、ゲージ固定コンポーネント108によるゲージ固定演算の適用前のスタビライザを示しており、スイッチされたサブシステム・コード304は、ゲージ固定コンポーネント108によるゲージ固定演算の適用後のスタビライザを示している。
【0047】
図5に示された例示的な
図500に示されているサブシステム・コード302のバルクにおいて、4ボディZスタビライザは、垂直2ボディZゲージ演算子(サブシステム・コード302の中の淡灰色の垂直半円によって示されている)の対の積であり、Xスタビライザは、パウリXの2列垂直ストリップである。
図5に示された例示的な
図500に示されているサブシステム・コード302の境界には、垂直2ボディZゲージ演算子(サブシステム・コード302の中の淡灰色の垂直半円によって示されている)がある。
【0048】
図5に示された例示的な
図500に示されているスイッチされたサブシステム・コード304のバルクにおいて、4ボディXスタビライザは、水平2ボディXゲージ演算子(スイッチされたサブシステム・コード304の中の濃灰色の水平半円によって示されている)の対の積であり、Zスタビライザは、パウリZの2行水平ストリップである。
図5に示された例示的な
図500に示されているスイッチされたサブシステム・コード304の境界には、水平2ボディXゲージ演算子(スイッチされたサブシステム・コード304の中の濃灰色の水平半円によって示されている)がある。
【0049】
本明細書に記載された主題開示の1つまたは複数の実施形態によれば、コード化されたキュービットのサブシステム・コード(例えばサブシステム・コード302)にゲージ固定演算を適用して、スイッチされたサブシステム・コード(例えばスイッチされたサブシステム・コード304)を生成することを容易にするために、ゲージ固定コンポーネント108は、下に定義されたゲージ固定プロトコルを使用することができる。
【0050】
ゲージ固定プロトコル
(1)バルクに関して、ゲージ固定コンポーネント108は全ての2ボディXゲージ演算子を測定し、さらに、4ボディXスタビライザ固有値(例えばMとして記録される)を推論することができる。
【0051】
M=+1の場合、ゲージ固定コンポーネント108による訂正は必要ない。
【0052】
M=-1の場合、ゲージ固定コンポーネント108は、パウリZを適用して、スタビライザを訂正することができる。
【0053】
このようにすると、サブシステム・コード302の中の元の4ボディXゲージ演算子は、スイッチされたサブシステム・コード304のスタビライザに固定される。
【0054】
測定ノイズがない場合、ゲージ固定コンポーネント108は、上記の演算を1サイクル実行することができる。
【0055】
測定ノイズがある場合、ゲージ固定コンポーネント108は、Z訂正をデコードおよび適用するためにdサイクルの測定を実行することができる。
【0056】
(2)境界に関して、バルク測定を実行する際に、ゲージ固定コンポーネント108は、全ての2ボディX境界スタビライザ(例えばMとして記録される)を同時に測定することができ、さらに(例えば上で説明したバルクに関して実行したのと同じやり方で)訂正を適用することができる。
【0057】
このようにすると、サブシステム・コード302の中の元の2ボディXゲージ演算子は、スイッチされたサブシステム・コード304の中の境界スタビライザに固定される。
【0058】
(3)測定エラーがある場合、ゲージ固定コンポーネント108はさらに、(例えば測定エラーのない場合の1回のサイクルとは対照的に)4ボディZゲージ演算子のdサイクルの測定を適用する。
【0059】
Z測定のそれぞれのサイクルは、X測定のそれぞれのサイクルの後にゲージ固定コンポーネント108によって適用することができる。
【0060】
したがって、ゲージ固定コンポーネント108は、シンドローム履歴のdサイクルをデコードした後にX訂正を適用することができる。
【0061】
図6Aおよび6Bはそれぞれ、本明細書に記載された1つまたは複数の実施形態による、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にすることができる例示的で非限定的な
図600aおよび600bを示している。簡潔にするため、対応するそれぞれの実施形態で使用されている同じ要素もしくはプロセスまたはその両方の繰返しの説明は省かれている。
【0062】
図6Aおよび6Bにそれぞれ示された例示的な
図600aおよび600bは、上で説明したXゲージ演算子を2つの連続サイクルで測定するために(例えばXシンドローム測定)ゲージ固定コンポーネント108が使用することができる制御NOT(CNOT)ゲート・スケジューリングを示しており、
図600aはサイクル1を、
図600bはサイクル2を示している。上で説明したXゲージ演算子を2つの連続サイクルで測定するために(例えばXシンドローム測定)ゲージ固定コンポーネント108が使用することができるこのようなCNOTゲート・スケジューリングを容易にするため、ゲージ固定コンポーネント108は、
図6Cに示された下で説明する対応する回路を使用することができる。
【0063】
図6Cは、本明細書に記載された1つまたは複数の実施形態による、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にすることができる例示的で非限定的な
図600cを示している。簡潔にするため、対応するそれぞれの実施形態で使用されている同じ要素もしくはプロセスまたはその両方の繰返しの説明は省かれている。
【0064】
上で説明したXゲージ演算子を2つの連続サイクルで測定するために(例えばXシンドローム測定(例えばバルク))ゲージ固定コンポーネント108が使用することができる、
図600aおよび600bに示されている上で説明したCNOTゲート・スケジューリングを容易にするため、ゲージ固定コンポーネント108は、
図6Cに示された
図600cに示されている対応する回路を使用することができる。
図6Cに示された例示的な
図600cは、サブシステム・コードのバルクの中の(例えばサブシステム・コード302もしくはスイッチされたサブシステム・コード304またはその両方のバルクの中の)2ボディXゲージ演算子の測定回路を含むことができる。いくつかの実施形態では、ゲージ固定コンポーネント108が、2つのCNOTゲートを含む標準回路を用いて境界2ボディXゲージ演算子を測定することができる。
【0065】
図6Dは、本明細書に記載された1つまたは複数の実施形態による、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にすることができる例示的で非限定的な
図600dを示している。簡潔にするため、対応するそれぞれの実施形態で使用されている同じ要素もしくはプロセスまたはその両方の繰返しの説明は省かれている。
【0066】
図6Dに示された例示的な
図600dは、Zゲージ演算子を第3のサイクルで測定するために(例えばZシンドローム測定)ゲージ固定コンポーネント108が使用することができるCNOTゲート・スケジューリングを示しており、
図600dはサイクル3を示している。Zゲージ演算子をサイクル3で測定するために(例えばZシンドローム測定)ゲージ固定コンポーネント108が使用することができるこのようなCNOTゲート・スケジューリングを容易にするため、ゲージ固定コンポーネント108は、
図6Eに示された下で説明する対応する回路を使用することができる。
【0067】
図6Eは、本明細書に記載された1つまたは複数の実施形態による、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にすることができる例示的で非限定的な
図600eを示している。簡潔にするため、対応するそれぞれの実施形態で使用されている同じ要素もしくはプロセスまたはその両方の繰返しの説明は省かれている。
【0068】
Zゲージ演算子をサイクル3で測定するために(例えばZシンドローム測定(例えばバルク))ゲージ固定コンポーネント108が使用することができる、
図600dに示された上で説明したCNOTゲート・スケジューリングを容易にするため、ゲージ固定コンポーネント108は、
図6Eに示された
図600eに示されている対応する回路を使用することができる。
図6Eに示された例示的な
図600eは、サブシステム・コードのバルクの中の(例えばサブシステム・コード302もしくはスイッチされたサブシステム・コード304またはその両方のバルクの中の)2ボディZゲージ演算子の測定回路を含むことができる。
【0069】
図7(A)および7(B)はそれぞれ、本明細書に記載された1つまたは複数の実施形態による、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にすることができる例示的で非限定的な
図700aおよび700bを示している。簡潔にするため、対応するそれぞれの実施形態で使用されている同じ要素もしくはプロセスまたはその両方の繰返しの説明は省かれている。
【0070】
いくつかの実施形態では、ゲージ固定コンポーネント108が、ヘビーヘキサゴン格子上でゲージ固定演算を適用することができる。これらの実施形態では、ヘビーヘキサゴン格子上でゲージ固定演算を実施するために、ゲージ固定演算の適用後に1格子定数だけキュービット格子をシフトすることができる。これらの実施形態では、ヘビーヘキサゴン格子上でゲージ固定演算を適用するために、ゲージ固定コンポーネント108が、コード化されたキュービットのサブシステム・コード上でゲージ固定演算を適用して、スイッチされたサブシステム・コードを生成することができ、格子シフト・コンポーネント204が、スイッチされたサブシステム・コードの格子をシフトして、シフトおよびスイッチされたサブシステム・コードを生成することができる。例えば、
図7(A)および7(B)にそれぞれ示された例示的な
図700aおよび700bに示されているとおり、ゲージ固定コンポーネント108は、サブシステム・コード702にゲージ固定演算を適用して、スイッチされたサブシステム・コードを、
図1~6Eに示された例示的な実施形態を参照して上で説明したように生成することができ、格子シフト・コンポーネント204は、スイッチされたサブシステム・コードのキュービット格子をシフトして、シフトおよびスイッチされたサブシステム・コード704を生成することができる。
図7(A)および7(B)にそれぞれ示された例示的な
図700aおよび700bに示されているとおり、このようなキュービット格子は、複数(例えば25個の)のキュービット(
図700aおよび700bでは灰色の円によって表されている)を含むことができる。
【0071】
このようなキュービット格子をシフトするため、格子シフト・コンポーネント204は、以下のスワップ・プロトコルを実施して、キュービット格子を例えば格子定数1だけシフトすることができる。例えば、
図7(A)および7(B)にそれぞれ示された例示的な
図700aおよび700bに示されているように、キュービット格子を格子定数1だけシフトするため、格子シフト・コンポーネント204は、
図700aに示されたキュービット格子の最下部に追加のデータ・キュービット706の行を追加することができ、さらに、対応する追加の補助キュービット708a、708b(
図700aおよび700bではそれぞれ白および黒の丸によって表されている)をキュービット格子に追加することができる。分かりやすくするため、
図700aおよび700bの全ての追加の補助キュービット708a、708bに符号を付けることはしてない。一例では、キュービット格子を格子定数1だけシフトするため、格子シフト・コンポーネント204が、
図700aでは矢印710によって表されているスワップの第1のステップをキュービット格子の全てのデータ・キュービットに適用して、このようなデータ・キュービットの量子情報を追加の補助キュービット708aに移動させることができる。
図700aおよび700bではこのような量子情報が番号1~25によって表されている。この例では、このようなキュービット格子シフト演算を完了するために、格子シフト・コンポーネント204が、スワップの第2のステップを適用して、1行下に位置する追加のデータ・キュービット706に量子情報を移動させることができる。
【0072】
上の例では、上で説明したゲージ固定演算およびスワップ・プロトコルを実施することによって、ゲージ固定コンポーネント108および格子シフト・コンポーネント204が、
図7(B)に示された
図700bに示されているシフトおよびスイッチされたサブシステム・コード704を生成することができ、シフトおよびスイッチされたサブシステム・コード704が、上で説明したスワップの2つのステップおよびゲージ固定演算を実行することによって生成することができるシフトされたキュービット格子およびスイッチされたサブシステム・コードを含む。ゲージ固定コンポーネント108および格子シフト・コンポーネント204はそれぞれ、サブシステム・コード(例えばヘビーヘキサゴン・コード)を実行するために使用することができる量子デバイスの1つまたは複数のハードウェア基準を満たすように、上で説明したゲージ固定演算およびスワップ・プロトコルを実行することができることを認識すべきである。
【0073】
ゲージ固定コンポーネント108および格子シフト・コンポーネント204がそれぞれ上で説明したゲージ固定演算およびスワップ・プロトコルを実行する実施形態では、ゲージ固定コンポーネント108が、上で説明したゲージ固定演算をサブシステム・コード702に(例えば
図1~6Eを参照して上で説明したように)適用して、サブシステム・コード702のサブセット(例えばバルク)の中の2ボディ・ゲージ演算子と4ボディ・ゲージ演算子を交換することができる。これらの実施形態では、トランスバース・コンポーネント110が、シフトおよびスイッチされたサブシステム・コード704にトランスバーサル・アダマール演算を(例えば
図1、2および3を参照して上で説明したように)適用して、回転したサブシステム・コード(
図7(A)または7(B)には示されていない)を生成することができる。これらの実施形態では、トランスバース・コンポーネント110が、シフトおよびスイッチされたサブシステム・コード704にトランスバーサル・アダマール演算を(例えば
図1、2および3を参照して上で説明したように)適用して、データ・キュービット(例えばキュービット格子の中のデータ・キュービット)上でアダマール・ゲートを適用すること、およびX型ゲージ演算子とZ型ゲージ演算子、X型スタビライザとZ型スタビライザおよびX型論理演算子とZ型論理演算子を交換することができる。これらの実施形態では、回転コンポーネント202が、回転したサブシステム・コードの垂直軸および対角軸に関して互いに対称であるキュービット間で2つのペアワイズ・スワップ・ゲート演算を(例えば
図1、2および3を参照して上で説明したように)実行することができる。これらの実施形態では、回転コンポーネント202が、回転したサブシステム・コードを(例えば
図1、2および3を参照して上で説明したように)回転させて、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するコード(
図7(A)または7(B)には示されていない)を生成することができる。
【0074】
図8は、本明細書に記載された1つまたは複数の実施形態による、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にすることができる例示的で非限定的なコンピュータ実施方法800の流れ図を示している。簡潔にするため、対応するそれぞれの実施形態で使用されている同じ要素もしくはプロセスまたはその両方の繰返しの説明は省かれている。
【0075】
802で、コンピュータ実施方法800は、プロセッサ(例えばプロセッサ106)に動作可能に結合されたシステムによって(例えば量子ゲート演算システム102もしくはゲージ固定コンポーネント108またはその両方を介して)、コード化されたキュービットのサブシステム・コード(例えばサブシステム・コード302)にゲージ固定演算を適用して、スイッチされたサブシステム・コード(例えば、スイッチされたサブシステム・コード304)を生成することを含むことができる。例えば、
図1~6Eを参照して上で説明したように、ゲージ固定コンポーネント108は、サブシステム・コード302にゲージ固定演算を適用して、スイッチされたサブシステム・コード304を生成することができる。
【0076】
804で、コンピュータ実施方法800は、このシステムによって(例えば量子ゲート演算システム102もしくはトランスバース・コンポーネント110またはその両方を介して)、スイッチされたサブシステム・コードにトランスバーサル・アダマール演算を適用して、回転したサブシステム・コード(例えば回転したサブシステム・コード306)を生成することを含むことができる。例えば、
図1、2および3を参照して上で説明したように、トランスバース・コンポーネント110は、スイッチされたサブシステム・コード304にトランスバーサル・アダマール演算を適用して、回転したサブシステム・コード306を生成することができる。
【0077】
図8に示された例示的な実施形態には示されていないが、いくつかの実施形態では、コンピュータ実施方法800がさらに、このシステムによって(例えば量子ゲート演算システム102もしくは回転コンポーネント202またはその両方を介して)、回転したサブシステム・コード(例えば回転したサブシステム・コード306)を回転させて、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するコード(例えばコード308)を生成することを含むことができる。例えば、
図1、2および3を参照して上で説明したように、回転コンポーネント202は、回転したサブシステム・コード306を回転させて、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するコード308を生成することができる。
【0078】
図9は、本明細書に記載された1つまたは複数の実施形態による、サブシステム・コードにおける論理アダマール・ゲート演算およびゲージ固定を容易にすることができる例示的で非限定的なコンピュータ実施方法900の流れ図を示している。簡潔にするため、対応するそれぞれの実施形態で使用されている同じ要素もしくはプロセスまたはその両方の繰返しの説明は省かれている。
【0079】
902で、コンピュータ実施方法900は、プロセッサ(例えばプロセッサ106)に動作可能に結合されたシステムによって(例えば量子ゲート演算システム102もしくはゲージ固定コンポーネント108またはその両方を介して)、コード化されたキュービットのサブシステム・コード(例えばサブシステム・コード702)にゲージ固定演算を適用して、スイッチされたサブシステム・コード(図示せず)を生成することを含むことができる。例えば、
図7(A)および7(B)を参照して上で説明したように、ゲージ固定コンポーネント108は、サブシステム・コード702にゲージ固定演算を適用して、スイッチされたサブシステム・コード(図示せず)を生成することができる。
【0080】
904で、コンピュータ実施方法900は、このシステムによって(例えば量子ゲート演算システム102もしくは格子シフト・コンポーネント204またはその両方を介して)、スイッチされたサブシステム・コードの格子(例えばキュービット格子)をシフトして、シフトおよびスイッチされたサブシステム・コード(例えばシフトおよびスイッチされたサブシステム・コード704)を生成することを含むことができる。例えば、
図7(A)および7(B)を参照して上で説明したように、格子シフト・コンポーネント204は、上で説明したスワップ・プロトコルを使用して、ゲージ固定コンポーネント108によって生成されたスイッチされたサブシステム・コードのキュービット格子をシフトし、それによってシフトおよびスイッチされたサブシステム・コード704を生成することができる。
【0081】
図9に示された例示的な実施形態には示されていないが、いくつかの実施形態では、コンピュータ実施方法900がさらに、このシステムによって(例えば量子ゲート演算システム102もしくはトランスバース・コンポーネント110またはその両方を介して)、シフトおよびスイッチされたサブシステム・コードにトランスバーサル・アダマール演算を適用して、回転したサブシステム・コード(図示せず)を生成することを含むことができる。例えば、
図7(A)および7(B)を参照して上で説明したように、トランスバース・コンポーネント110は、(例えば
図1、2および3を参照して上で説明したようにして)シフトおよびスイッチされたサブシステム・コード704にトランスバーサル・アダマール演算を適用して、回転したサブシステム・コード(図示せず)を生成することができる。
【0082】
図9に示された例示的な実施形態には示されていないが、いくつかの実施形態では、コンピュータ実施方法900がさらに、このシステムによって(例えば量子ゲート演算システム102もしくは回転コンポーネント202またはその両方を介して)、回転したサブシステム・コードを回転させて、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するコードを生成することを含むことができる。例えば、
図7(A)および7(B)を参照して上で説明したように、回転コンポーネント202は、(例えば
図1、2および3を参照して上で説明したようにして)回転したサブシステム・コードを回転させて、量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するコード(図示せず)を生成することができる。
【0083】
量子ゲート演算システム102をさまざまな技術に関連付けることができる。例えば、量子ゲート演算システム102を、量子コンピューティング技術、量子ハードウェアおよび/もしくはソフトウェア技術、量子ゲート・スケジューリング技術、量子アルゴリズム技術、機械学習技術、人工知能技術、クラウド・コンピューティング技術、ならびに/または他の技術に関連付けることができる。
【0084】
量子ゲート演算システム102は、上で識別したさまざまな技術に関連したシステム、デバイス、コンポーネント、演算ステップもしくは処理ステップまたはこれらの組合せに対する技術的改良を提供することができる。例えば、量子ゲート演算システム102は、コード化されたキュービットのサブシステム・コードにゲージ固定演算を適用して、スイッチされたサブシステム・コードを生成すること、スイッチされたサブシステム・コードにトランスバーサル・アダマール演算を適用して、回転したサブシステム・コードを生成すること、もしくは回転したサブシステム・コードを回転させて、量子デバイス(例えばコードもしくは量子コードまたはその両方を実行する量子プロセッサもしくは量子コンピュータまたはその両方)に関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するコードを生成すること、またはこれらの組合せを実行することができる。
【0085】
量子ゲート演算システム102は、量子ゲート演算システム102に関連付けられた処理ユニット(例えばプロセッサ106、量子プロセッサもしくは別のプロセッサまたはこれらの組合せ)に対する技術的改良を提供することができる。例えば、上で説明したように、量子ゲート演算システム102は、コード化されたキュービットのサブシステム・コードにゲージ固定演算を適用して、スイッチされたサブシステム・コードを生成すること、スイッチされたサブシステム・コードにトランスバーサル・アダマール演算を適用して、回転したサブシステム・コードを生成すること、もしくは回転したサブシステム・コードを回転させて、量子デバイス(例えばコードもしくは量子コードまたはその両方を実行する量子プロセッサもしくは量子コンピュータまたはその両方)に関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させる性質を有する量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するコードを生成すること、またはこれらの組合せを実行することができる。この例では、それによって量子ゲート演算システム102が、例えばそのようなコードもしくはそのような量子コードまたはその両方を実行する量子プロセッサなどの量子デバイスに関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させることができる。この例では、周波数衝突またはクロストーク・エラーのうちの少なくとも一方、例えばそのようなコードもしくはそのような量子コードまたはその両方を実行する量子プロセッサ関連した周波数衝突またはクロストーク・エラーのうちの少なくとも一方を低減させることによって、量子ゲート演算システム102が、量子プロセッサに関連した性能、正確さもしくは忠実度またはこれらの組合せのうちの少なくとも1つを向上させること、および量子プロセッサに関連した計算コストを低減させることができる。
【0086】
量子ゲート演算システム102の実用的用途は、さまざまな分野(例えば金融、化学、医学もしくは別の分野またはこれらの組合せ)における異なる複雑さのさまざまな問題(例えば推定問題、最適化問題もしくは別の問題またはこれらの組合せ)に対する1つまたは複数の解決策(例えば発見的解決策)を算定するために、量子コンピューティング・デバイス(例えば量子プロセッサもしくは量子コンピュータまたはその両方)を使用して、量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するコードを生成するように、量子ゲート演算システム102を実施することができることである。例えば、量子ゲート演算システム102の実用的用途は、化学、医学もしくは金融分野またはこれらの組合せにおける推定問題もしくは最適化問題またはその両方に対する1つまたは複数の解決策(例えば発見的解決策)であって、例えば新たな化合物、新たな薬物療法もしくは新たなオプション・プレミアムまたはこれらの組合せを設計する目的に使用することができる解決策(例えば発見的解決策)を算定するために、量子コンピューティング・デバイス(例えば量子プロセッサもしくは量子コンピュータまたはその両方)を使用して、量子コード上のフォールト・トレラント論理アダマール・ゲートを実行するコードを生成するように、量子ゲート演算システム102を実施することができることである。
【0087】
量子ゲート演算システム102は、比較的に新しい量子コンピューティング技術によって駆動される新たな手法を提供することを認識すべきである。例えば、量子ゲート演算システム102は、量子コード(例えば、例えばヘビーヘキサゴン・コードなどのサブシステム・コード)上のフォールト・トレラント論理アダマール・ゲートを実行するコードを生成する新たな手法を提供する。
【0088】
量子ゲート演算システム102は、ハードウェアまたはソフトウェアを使用して、その性質において高度に技術的であり、抽象的ではなく、人間による一組の精神的行為として実行することができない問題を解決することができる。いくつかの実施形態では、上で識別したさまざま技術に関する定められたタスクを実行するために、1つまたは複数の専用コンピュータ(例えば専用処理ユニット、専用古典的コンピュータ、専用量子コンピュータもしくは別のタイプの専用コンピュータまたはこれらの組合せ)によって、本明細書に説明されたプロセスのうちの1つまたは複数のプロセスを実行することができる。量子ゲート演算システム102もしくはそのコンポーネントまたはその両方を使用して、上述の技術の進歩、量子コンピューティング・システム、クラウド・コンピューティング・システム、コンピュータ・アーキテクチャもしくは別の技術またはこれらの組合せの使用によって生じる新たな問題を解決することができる。
【0089】
本明細書に記載された量子ゲート演算システム102もしくはそのコンポーネントまたはその両方によって実行することができるさまざまな演算は人間の知力を超える演算であるため、量子ゲート演算システム102は、人間の知性で複製することができないまたは人間が実行することができない電気コンポーネント、機械コンポーネントおよび回路のさまざまな組合せを利用することができることを認識すべきである。例えば、ある期間に量子ゲート演算システム102によって処理されるデータの量、そのようなデータを処理する速度、またはデータのタイプは、同じ期間に人間の知性が処理することができる量よりも大きな量、処理することができる速度よりも速い速度、または処理することができるデータ・タイプとは異なるデータ・タイプとなりうる。
【0090】
いくつかの実施形態によれば、量子ゲート演算システム102はさらに、本明細書に記載されたさまざまな演算を実行している間に、1つまたは複数の他の機能(例えば完全にパワーオンする機能、完全に実行する機能もしくは他の機能またはこれらの組合せ)も実行するように完全に動作可能でありうる。このような同時多演算実行は人間の知力を超えることを認識すべきである。量子ゲート演算システム102は、人間ユーザなどの実体が手動で取得することが不可能な情報を含むことができることも認識すべきである。量子ゲート演算システム102、ゲージ固定コンポーネント108、トランスバース・コンポーネント110、回転コンポーネント202もしくは格子シフト・コンポーネント204またはこれらの組合せに含まれる情報のタイプ、量もしくは多様性またはこれらの組合せは、人間ユーザによって手動で取得された情報よりも複雑なものでありうる。
【0091】
いくつかの実施形態では、量子ゲート演算システム102を、クラウド・コンピューティング環境に関連付けることができる。例えば、量子ゲート演算システム102を、
図11を参照して後に説明するクラウド・コンピューティング環境1150、または
図12を参照して後に説明する1つもしくは複数の機能抽象化層(例えばハードウェアおよびソフトウェア層1260、仮想化層1270、管理層1280もしくはワークロード層1290またはこれらの組合せ)、あるいはその両方に関連付けることができる。
【0092】
量子ゲート演算システム102もしくはそのコンポーネント(例えばゲージ固定コンポーネント108、トランスバース・コンポーネント110、回転コンポーネント202、格子シフト・コンポーネント204もしくは別のコンポーネントまたはこれらの組合せ)、またはその両方は、本明細書に記載された主題開示の1つまたは複数の実施形態に基づく1つまたは複数の演算を実行するために、
図11を参照して後に説明するクラウド・コンピューティング環境1150の1つもしくは複数のコンピューティング・リソース、または
図12を参照して後に説明する1つもしくは複数の機能抽象化層(例えば量子ソフトウェア)、あるいはその両方を使用することができる。例えば、例えば、クラウド・コンピューティング環境1150、またはこのような1つもしくは複数の機能抽象化層、あるいはこれらの組合せは、本明細書に記載された主題開示の1つまたは複数の実施形態に基づく1つまたは複数の演算を実行するために量子ゲート演算システム102もしくはそのコンポーネントまたはその両方が使用することができる、1つもしくは複数の古典的コンピューティング・デバイス(例えば古典的コンピュータ、古典的プロセッサ、仮想機械、サーバもしくは別の古典的コンピューティング・デバイスまたはこれらの組合せ)、量子ハードウェア、または量子ソフトウェア(例えば、量子コンピューティング・デバイス、量子コンピュータ、量子プロセッサ、量子回路シミュレーション・ソフトウェア、超伝導回路、ならびに/または他の量子ハードウェアおよび/もしくは量子ソフトウェア)、あるいはこれらの組合せを含むことができる。例えば、量子ゲート演算システム102もしくはそのコンポーネントまたはその両方は、1つまたは複数の古典的および/もしくは量子:数学関数、計算および/もしくは式;コンピューティングおよび/もしくは処理スクリプト;アルゴリズム;モデル(例えば人工知能(AI)モデル、機械学習(ML)モデルもしくは別のタイプのモデルまたはこれらの組合せ);ならびに/または本明細書に記載された主題開示の1つまたは複数の実施形態に基づく別の演算を実行するために、このような1つもしくは複数の古典的もしくはコンピューティング・リソースまたはその両方を使用することができる。
【0093】
本開示はクラウド・コンピューティングに関する詳細な説明を含んではいるが、本明細書に記載された教示の実施態様はクラウド・コンピューティング環境だけに限定されないことを理解すべきである。むしろ、本発明の実施形態は、現在知られているまたは後に開発される他の任意のタイプのコンピューティング環境に関連して実施することができる。
【0094】
クラウド・コンピューティングは、最小限の管理労力またはサービスのプロバイダとの最小限のインタラクションで迅速に供給およびリリースすることができる構成可能なコンピューティング・リソース(例えばネットワーク、ネットワーク・バンド幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械およびサービス)の共用プールへの便利なオンデマンド・ネットワーク・アクセスを可能にするサービス配信モデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つのデプロイメント・モデルを含むことができる。
【0095】
特徴は以下のとおりである。
【0096】
オンデマンド・セルフサービス:クラウド・コンシューマは、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能を、このサービスのプロバイダとのヒューマン・インタラクションを必要とすることなく必要に応じて自動的に一方向的に供給することができる。
【0097】
ブロード・ネットワーク・アクセス:機能は、ネットワーク上で利用可能であり、機能には、異種のシンまたはシック・クライアント・プラットホーム(例えば移動電話、ラップトップおよびPDA)による使用を促進する標準的機構を通してアクセスされる。
【0098】
リソース・プーリング(resource pooling):マルチテナント・モデルを使用して多数のコンシューマにサービスを提供するために、プロバイダのコンピューティング・リソースがプールされており、要求に応じて、異なる物理および仮想リソースが動的に割当ておよび再割当てされる。コンシューマは一般に、提供されたリソースの正確な位置を制御できずまたは正確な位置を知らないが、より高次の抽象化レベル(例えば国、州またはデータセンター)で位置を指定することができるという意味で、位置独立の感覚がある。
【0099】
ラピッド・エラスティシティ(rapid elasticity):機能は、素早くスケールアウトするために迅速かつ弾力的に、場合によっては自動的に供給することができ、素早くスケールインするために迅速にリリースすることができる。コンシューマにとって、供給に利用可能な機能はしばしば無限であるように見え、いつでも好きな量だけ購入することができる。
【0100】
メジャード・サービス(measured service):クラウド・システムは、サービスのタイプ(例えばストレージ、処理、バンド幅および使用中ユーザ・アカウント)に対して適切なある抽象化レベルで計測機能に介入することによって、リソースの使用状況を自動的に制御および最適化する。リソースの使用状況を監視、制御および報告して、利用されているサービスのプロバイダとコンシューマの両方に透明性を提供することができる。
【0101】
サービス・モデルは以下のとおりである。
【0102】
ソフトウェア・アズ・ア・サービス(SaaS):コンシューマに提供されるこの機能は、クラウド・インフラストラクチャ上で実行されるプロバイダのアプリケーションを使用する機能である。ウェブ・ブラウザなどのシン・クライアント・インタフェース(例えばウェブ・ベースの電子メール)を通してさまざまなクライアント・デバイスからそれらのアプリケーションにアクセス可能である。場合によっては可能な限られたユーザ固有のアプリケーション構成の設定を除けば、コンシューマは、ネットワーク、サーバ、オペレーティング・システム、ストレージまたは個々のアプリケーション機能を含む基礎をなすクラウド・インフラストラクチャを管理もまたは制御もしない。
【0103】
プラットホーム・アズ・ア・サービス(PaaS):コンシューマに提供されるこの機能は、クラウド・インフラストラクチャ上で、プロバイダがサポートするプログラム言語およびツールを使用して作成されたコンシューマ作成または取得のアプリケーションをデプロイする機能である。コンシューマは、ネットワーク、サーバ、オペレーティング・システムまたはストレージを含む基礎をなすクラウド・インフラストラクチャを管理もまたは制御もしないが、デプロイされたアプリケーションおよび場合によってはアプリケーション・ホスティング環境構成は制御することができる。
【0104】
インフラストラクチャ・アズ・ア・サービス(IaaS):コンシューマに提供されるこの機能は、処理、ストレージ、ネットワークおよび他の基本的なコンピューティング・リソースを供給する機能であり、コンシューマは任意のソフトウェアをデプロイおよび実行することができ、これらのソフトウェアは、オペレーティング・システムおよびアプリケーションを含むことができる。コンシューマは、基礎をなすクラウド・インフラストラクチャを管理もまたは制御もしないが、オペレーティング・システム、ストレージおよびデプロイされたアプリケーションは制御することができ、場合によっては、選択されたネットワーク・コンポーネント(例えばホスト・ファイアウォール)を限定的に制御することができる。
【0105】
デプロイメント・モデルは以下のとおりである。
【0106】
プライベート・クラウド:このクラウド・インフラストラクチャは、組織体のためだけに運営される。インフラストラクチャは、その組織体または第三者が管理することができ、オンプレミス(on-premises)またはオフプレミス(off-premises)で存在することができる。
【0107】
コミュニティ・クラウド:このクラウド・インフラストラクチャは、いくつかの組織体によって共有され、利害(例えばミッション、セキュリティ要件、ポリシーおよびコンプライアンス上の問題)を共有する特定のコミュニティをサポートする。インフラストラクチャは、その組織体または第三者が管理することができ、オンプレミスまたはオフプレミスで存在することができる。
【0108】
パブリック・クラウド:このクラウド・インフラストラクチャは、一般大衆または大きな産業グループが利用可能であり、クラウド・サービスを販売している組織体によって所有される。
【0109】
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、固有の実体を維持しているが、データおよびアプリケーション・ポータビリティを可能にする標準化された技術または独占技術(例えばクラウド間のロード・バランシングのためのクラウド・バースティング(cloud bursting))によって1つに結合された2つ以上のクラウド(プライベート、コミュニティまたはパブリック)の合成体である。
【0110】
クラウド・コンピューティング環境は、ステートレス、疎結合、モジュール性および意味論的相互運用性(semantic interoperability)に重きを置くサービス指向の環境である。クラウド・コンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
【0111】
説明を単純にするため、これらのコンピュータ実施方法論は、一連の動作として示され、説明される。主題の革新は、示された動作によって、もしくは動作の順序によって、またはその両方によって限定されるものではなく、例えば、動作は、さまざまな順序でもしくは同時に、またはその両方で実施することができ、本明細書に示されていない他の動作および本明細書に記載されてない他の動作とともに実施することができることを理解および認識すべきである。さらに、開示された主題に従ってコンピュータ実施方法論を実施するのに、示された全ての動作が必要であるというわけではない。さらに、代替として、コンピュータ実施方法論を、状態図または事象によって、相互に関係付けられた一連の状態として表すことができることを当業者は理解および認識するであろう。さらに、以下に開示されるコンピュータ実施方法論および本明細書の全体を通して開示されるコンピュータ実施方法論は、そのようなコンピュータ実施方法論をコンピュータに移送および転送することを容易にするために、製品上に記憶することができることも認識すべきである。本明細書で使用されるとき、製品という用語は、コンピュータ可読デバイスまたはストレージ媒体からアクセス可能なコンピュータ・プログラムを包含することが意図されている。
【0112】
開示された主題のさまざまな態様に対する背景を提供するため、
図10および以下の議論は、開示された主題のさまざまな態様を実施することができる適当な環境の一般的な説明を提供することが意図されている。
図10は、本明細書に記載された1つまたは複数の実施形態を容易にすることができる例示的で非限定的な動作環境のブロック図を示している。簡潔にするため、本明細書に記載された他の実施形態で使用されている同じ要素の繰返しの説明は省かれている。
【0113】
図10を参照すると、本開示のさまざまな態様を実施するための適当な動作環境1000はさらに、コンピュータ1012を含むことができる。コンピュータ1012はさらに、処理ユニット1014、システム・メモリ1016およびシステム・バス1018を含むことができる。システム・バス1018は、限定はされないがシステム・メモリ1016を含むシステム・コンポーネントを処理ユニット1014に結合する。処理ユニット1014は、使用可能なさまざまなプロセッサのうちの任意のプロセッサとすることができる。デュアル・マイクロプロセッサおよびその他のマルチプロセッサ・アーキテクチャを処理ユニット1014として使用することもできる。システム・バス1018は、限定はされないがインダストリアル・スタンダード・アーキテクチャ(ISA)、マイクロチャネル・アーキテクチャ(MCA)、エンハンストISA(EISA)、インテリジェント・ドライブ・エレクトロニクス(IDE)、VESAローカル・バス(VLB)、ペリフェラル・コンポーネント・インターコネクト(PCI)、カード・バス、ユニバーサル・シリアル・バス(USB)、アドバンスト・グラフィクス・ポート(AGP)、Firewire(IEEE 1394)、およびスモール・コンピュータ・システムズ・インタフェース(SCSI)を含む使用可能なさまざまなバス・アーキテクチャのうちの任意のバス・アーキテクチャを使用した、メモリ・バスもしくはメモリ・コントローラ、周辺バスもしくは外部バス、またはローカル・バス、あるいはこれらの組合せを含む、いくつかのタイプのバス構造体のうちの任意のバス構造体とすることができる。
【0114】
システム・メモリ1016はさらに、揮発性メモリ1020および不揮発性メモリ1022を含むことができる。不揮発性メモリ1022には基本入出力システム(BIOS)が記憶されており、BIOSは、起動中などにコンピュータ1012内の要素間で情報を転送するための基本ルーチンを含む。コンピュータ1012はさらに、取外し可能/非取外し可能な揮発性/不揮発性コンピュータ・ストレージ媒体を含むことができる。
図10は例えばディスク・ストレージ1024を示している。ディスク・ストレージ1024はさらに、限定はされないが、磁気ディスク・ドライブ、フロッピー・ディスク・ドライブ、テープ・ドライブ、Jazドライブ、Zipドライブ、LS-100ドライブ、フラッシュ・メモリ・カードまたはメモリ・スティックのようなデバイスを含むことができる。ディスク・ストレージ1024はさらに、他のストレージ媒体とは別個の、または他のストレージ媒体と組み合わされた、ストレージ媒体を含むことができる。システム・バス1018へのディスク・ストレージ1024の接続を容易にするため、通常は、インタフェース1026などの取外し可能なまたは非取外し可能なインタフェースが使用される。
図10はさらに、適当な動作環境1000の中で説明した基本コンピュータ・リソースとユーザとの間の媒介物として機能するソフトウェアを示している。このようなソフトウェアはさらに、例えばオペレーティング・システム1028を含むことができる。ディスク・ストレージ1024に記憶することができるオペレーティング・システム1028は、コンピュータ1012のリソースの制御および割振りを実行するように機能する。
【0115】
システム・アプリケーション1030は、例えばシステム・メモリ1016またはディスク・ストレージ1024に記憶されたプログラム・モジュール1032およびプログラム・データ1034を介したオペレーティング・システム1028によるリソースの管理を利用する。本開示は、さまざまなオペレーティング・システムまたはオペレーティング・システムの組合せを用いて実施することができることを認識すべきである。ユーザは、入力デバイス1036を介してコンピュータ1012にコマンドまたは情報を入力する。入力デバイス1036は、限定はされないが、マウスなどのポインティング・デバイス、トラックボール、スタイラス、タッチ・パッド、キーボード、マイクロホン、ジョイスティック、ゲーム・パッド、衛星アンテナ、スキャナ、TVチューナ・カード、デジタル・カメラ、デジタル・ビデオ・カメラ、ウェブ・カメラなどを含む。これらの入力デバイスおよびその他の入力デバイスは、インタフェース・ポート1038を介し、システム・バス1018を通して処理ユニット1014に接続する。インタフェース・ポート1038は、例えばシリアル・ポート、パラレル・ポート、ゲーム・ポートおよびユニバーサル・シリアル・バス(USB)を含む。出力デバイス1040は、入力デバイス1036と同じタイプのポートのうちのいくつかのポートを使用する。したがって、例えば、USBポートを使用して、コンピュータ1012に入力を提供すること、およびコンピュータ1012から出力デバイス1040に情報を出力することができる。とりわけモニタ、スピーカおよびプリンタのように、専用アダプタを必要とするいくつかの出力デバイス1040があることを示すために、出力アダプタ1042が提供されている。例として、出力アダプタ1042は、限定はされないが、出力デバイス1040とシステム・バス1018の間の接続手段を提供するビデオ・カードおよびサウンド・カードを含む。リモート・コンピュータ1044などの他のデバイスもしくはデバイス・システムまたはその両方は、入力機能と出力機能の両方を提供することに留意すべきである。
【0116】
コンピュータ1012は、ネットワーク化された環境内で、リモート・コンピュータ1044などの1つまたは複数のリモート・コンピュータへの論理接続を使用して動作することができる。リモート・コンピュータ1044は、コンピュータ、サーバ、ルータ、ネットワークPC、ワークステーション、マイクロプロセッサ・ベースの機器、ピア・デバイスまたは他の一般的なネットワーク・ノードなどであることができ、通常はさらに、コンピュータ1012に関して説明した要素のうちの多くの要素または全ての要素を含むことができる。簡潔にするため、リモート・コンピュータ1044にはメモリ・ストレージ・デバイス1046だけが示されている。リモート・コンピュータ1044は、ネットワーク・インタフェース1048を介してコンピュータ1012に論理的に接続されており、次いで通信接続1050を介して物理的に接続されている。ネットワーク・インタフェース1048は、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、セル方式ネットワークなどの有線および/もしくは無線通信ネットワーク、ならびに/または別の有線および/もしくは無線通信ネットワークを包含する。LAN技術は、光ファイバ分散データ・インタフェース(FDDI)、銅線分散データ・インタフェース(CDDI)、Ethernet、トークン・リングなどを含む。WAN技術は、限定はされないが、ポイント・ツー・ポイント・リンク、回線交換ネットワーク、例えば統合サービス・デジタル・ネットワーク(ISDN)およびその変形物、パケット交換ネットワーク、ならびにデジタル加入者線(DSL)を含む。通信接続1050は、ネットワーク・インタフェース1048をシステム・バス1018に接続するのに使用されるハードウェア/ソフトウェアを指す。図を分かりやすくするために、通信接続1050はコンピュータ1012の内側に示されているが、通信接続1050をコンピュータ1012の外側に置くこともできる。例示だけが目的だが、ネットワーク・インタフェース1048に接続するためのハードウェア/ソフトウェアはさらに、通常の電話機グレードのモデム、ケーブル・モデムおよびDSLモデムを含むモデム、ISDNアダプタならびにEthernetカードなどの内部および外部技術を含むことができる。
【0117】
次に
図11を参照すると、例示的なクラウド・コンピューティング環境1150が示されている。示されているとおり、クラウド・コンピューティング環境1150は1つまたは複数のクラウド・コンピューティング・ノード1110を含み、クラウド・コンシューマによって使用されるローカル・コンピューティング・デバイス、例えばパーソナル・デジタル・アシスタント(PDA)もしくは移動電話1154A、デスクトップ・コンピュータ1154B、ラップトップ・コンピュータ1154Cまたは自動車コンピュータ・システム1154Nあるいはこれらの組合せは、これらのノードと通信することができる。
図11には示されていないが、クラウド・コンピューティング・ノード1110はさらに、クラウド・コンシューマによって使用されるローカル・コンピューティング・デバイスが通信することができる量子プラットホーム(例えば量子コンピュータ、量子ハードウェア、量子ソフトウェアなど)を含むことができる。ノード1110は互いに通信することができる。それらのノードは、上で説明したプライベート、コミュニティ、パブリックまたはハイブリッド・クラウドまたはこれらの組合せなどの1つまたは複数のネットワークに、物理的にまたは仮想的にグループ分けされていることがある(図示せず)。これによって、クラウド・コンピューティング環境1150は、インフラストラクチャ、プラットホームもしくはソフトウェアまたはこれらの組合せをサービスとして提供することができ、そのため、クラウド・コンシューマは、ローカル・コンピューティング・デバイス上にリソースを維持する必要がない。
図11に示されたタイプのコンピューティング・デバイス1154A~Nは単なる例であることが意図されていること、ならびにコンピューティング・ノード1110およびクラウド・コンピューティング環境1150は、任意のタイプのネットワーク上もしくはアドレス指定可能なネットワーク接続上またはその両方で(例えばウェブ・ブラウザを使用して)、コンピュータ化された任意のタイプのデバイスと通信することができることが理解される。
【0118】
次に
図12を参照すると、クラウド・コンピューティング環境1150(
図11)によって提供される一組の機能抽象化層が示されている。
図12に示されているコンポーネント、層および機能は単なる例であることが意図されており、本発明の実施形態はそれらに限定されないことを予め理解しておくべきである。図示のとおり、以下の層および対応する機能が提供される。
【0119】
ハードウェアおよびソフトウェア層1260は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例は、メインフレーム1261、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ1262、サーバ1263、ブレード・サーバ1264、ストレージ・デバイス1265ならびにネットワークおよびネットワーキング・コンポーネント1226を含む。いくつかの実施形態では、ソフトウェア・コンポーネントが、ネットワーク・アプリケーション・サーバ・ソフトウェア1267、データベース・ソフトウェア1268、量子プラットホーム・ルーティング・ソフトウェア(
図12には示されていない)、もしくは量子ソフトウェア(
図12には示されていない)、またはこれらの組合せを含む。
【0120】
仮想化層1270は、仮想実体の以下の例を提供することができる抽象化層を提供する:仮想サーバ1271、仮想ストレージ1272、仮想専用ネットワークを含む仮想ネットワーク1273、仮想アプリケーションおよびオペレーティング・システム1274、ならびに仮想クライアント1275。
【0121】
一例では、管理層1280が以下の機能を提供することができる。リソース供給1281は、クラウド・コンピューティング環境内でタスクを実行する目的に利用されるコンピューティング・リソースおよびその他のリソースの動的調達を提供する。計量および価格決定1282は、クラウド・コンピューティング環境内でリソースが利用されたときの費用追跡、およびこれらのリソースの消費に対する課金または請求を提供する。一例では、これらのリソースがアプリケーション・ソフトウェア・ライセンスを含むことがある。セキュリティは、クラウド・コンシューマおよびタスクの識別確認ならびにデータおよび他のリソースの保護を提供する。ユーザ・ポータル1283は、コンシューマおよびシステム管理者に、クラウド・コンピューティング環境へのアクセスを提供する。サービス水準管理1284は、必要なサービス水準が達成されるようなクラウド・コンピューティング・リソースの割振りおよび管理を提供する。サービス水準合意(Service Level Agreement)(SLA)計画および履行1285は、SLAに従って将来必要になると予想されるクラウド・コンピューティング・リソースの事前調整および調達を提供する。
【0122】
ワークロード層1290は、クラウド・コンピューティング環境を利用することができる機能の例を提供する。この層から提供することができるワークロードおよび機能の非限定的な例は、マッピングおよびナビゲーション1291、ソフトウェア開発およびライフサイクル管理1292、仮想教室教育配信1293、データ解析処理1294、トランザクション処理1295、ならびに量子ゲート演算ソフトウェア1296を含む。
【0123】
本発明は、インテグレーションの可能な任意の技術的詳細レベルにおいて、システム、方法、装置もしくはコンピュータ・プログラム製品、またはこれらの組合せであることができる。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体を含むことができる。このコンピュータ可読ストレージ媒体は、命令実行デバイスが使用するための命令を保持および記憶することができる有形のデバイスとすることができる。このコンピュータ可読ストレージ媒体は例えば、限定はされないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイスまたはこれらの適当な組合せとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストはさらに、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能なプログラマブル・リードオンリー・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリー・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、機械的にコード化されたデバイス、例えばパンチカードまたはその上に命令が記録された溝の中の一段高くなった構造体、およびこれらの適当な組合せを含みうる。本明細書で使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が一過性の信号、例えば電波もしくは他の自由に伝搬する電磁波、ウェーブガイドもしくは他の伝送体内を伝搬する電磁波(例えば光ファイバ・ケーブル内を通る光パルス)、または電線を通して伝送される電気信号であると解釈されるべきではない。
【0124】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から対応するそれぞれのコンピューティング/処理デバイスにダウンロードすることができ、またはネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはこれらの組合せを介して外部コンピュータもしくは外部ストレージ・デバイスにダウンロードすることができる。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくはエッジ・サーバ、またはこれらの組合せを含むことができる。それぞれのコンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を、対応するそれぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に記憶するために転送する。本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、もしくは集積回路用のコンフィギュレーション・データであってもよく、またはSmalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同種のプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれた、ソース・コードもしくはオブジェクト・コードであることができる。このコンピュータ可読プログラム命令は、全体がユーザのコンピュータ上で実行されてもよく、一部がユーザのコンピュータ上で実行されてもよく、独立型ソフトウェア・パッケージとして実行されてもよく、一部がユーザのコンピュータ上で、一部がリモート・コンピュータ上で実行されてもよく、または全体がリモート・コンピュータもしくはリモート・サーバ上で実行することができる。上記の最後のシナリオでは、リモート・コンピュータを、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されたものとすることができ、またはこの接続を、外部コンピュータに対して(例えばインターネット・サービス・プロバイダを使用してインターネットを介して)実施することができる。いくつかの実施形態では、本発明の態様を実行するために、例えばプログラム可能論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA)またはプログラム可能論理アレイ(PLA)を含む電子回路が、このコンピュータ可読プログラム命令の状態情報を利用してその電子回路をパーソナライズすることにより、このコンピュータ可読プログラム命令を実行することができる。
【0125】
本明細書では、本発明の態様が、本発明の実施形態による方法、装置(システム)およびコンピュータ・プログラム製品の流れ図もしくはブロック図またはその両方の図を参照して説明される。それらの流れ図もしくはブロック図またはその両方の図のそれぞれのブロック、およびそれらの流れ図もしくはブロック図またはその両方の図のブロックの組合せは、コンピュータ可読プログラム命令によって実施することができることが理解される。これらのコンピュータ可読プログラム命令は、機械を形成する汎用コンピュータ、専用コンピュータまたは他のプログラム可能データ処理装置のプロセッサに、それらのコンピュータまたは他のプログラム可能データ処理装置のプロセッサによって実行されるこれらの命令が、これらの流れ図もしくはブロック図またはその両方の図のブロックに指定された機能/動作を実施する手段を生成するような態様で提供することができる。これらのコンピュータ可読プログラム命令はさらに、特定の方式で機能するようにコンピュータ、プログラム可能データ処理装置もしくは他のデバイスまたはこれらの組合せに指図することができるコンピュータ可読ストレージ媒体に、その中に命令が記憶されたコンピュータ可読ストレージ媒体が、これらの流れ図もしくはブロック図またはその両方の図のブロックに指定された機能/動作の態様を実施する命令を含む製品を含むような態様で、記憶することができる。これらのコンピュータ可読プログラム命令はさらに、コンピュータ、他のプログラム可能装置または他のデバイス上で一連の動作ステップを実行させて、コンピュータによって実施されるプロセスを生成するために、このコンピュータ、他のプログラム可能装置または他のデバイス上に、このコンピュータ、他のプログラム可能装置または他のデバイス上で実施されるこれらの命令が、これらの流れ図もしくはブロック図またはその両方の図のブロックに指定された機能/動作を実施するような態様で、ロードすることができる。
【0126】
添付図中の流れ図およびブロック図は、本発明のさまざまな実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実施態様のアーキテクチャ、機能および動作を示している。この点に関して、それらの流れ図またはブロック図のそれぞれのブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメントまたは部分を表しうる。いくつかの代替実施態様では、これらのブロックに示された機能を、図に示された順序とは異なる順序で実施することができる。例えば、連続して示された2つのブロックを、実際、実質的に同時に実行することができ、または、含まれる機能によってはそれらのブロックを逆の順序で実行することもできる。それらのブロック図もしくは流れ図またはその両方の図のそれぞれのブロック、ならびにそれらのブロック図もしくは流れ図またはその両方の図のブロックの組合せを、指定された機能もしくは動作を実行しまたは専用ハードウェアとコンピュータ命令の組合せを実施するハードウェアベースの専用システムによって実施することができることにも留意すべきである。
【0127】
以上に、1台のコンピュータ上もしくは複数のコンピュータ上またはその両方で実行されるコンピュータ・プログラム製品のコンピュータ実行命令の一般的な文脈で主題を説明したが、他のプログラム・モジュールと組み合わせて本開示を実施することもできることを当業者は認識するであろう。一般に、プログラム・モジュールは、特定のタスクを実行し、もしくは特定の抽象データ型を実装し、またはその両方を実行する、ルーチン、プログラム、コンポーネント、データ構造もしくは他のプログラム・モジュール、またはその組合せを含む。さらに、本発明のコンピュータ実施方法は、シングルプロセッサまたはマルチプロセッサ・コンピュータ・システム、ミニコンピューティング・デバイス、メインフレーム・コンピュータ、コンピュータ、ハンドヘルド・コンピューティング・デバイス(例えばPDA、電話機)、マイクロプロセッサ・ベースのまたはプログラム可能な家庭用または産業用電子機器などを含む、他のコンピュータ・システム構成を用いて実施することもできることを当業者は認識するであろう。示された態様は、通信ネットワークを通してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境で実施することもできる。しかしながら、全部ではないにせよ、本開示の一部の態様を、独立型コンピュータ上で実施することもできる。分散コンピューティング環境では、ローカル・メモリ・ストレージ・デバイスとリモート・メモリ・ストレージ・デバイスの両方にプログラム・モジュールを置くことができる。例えば、1つまたは複数の実施形態では、1つもしくは複数の分散メモリ・ユニットを含むことができるメモリから、または1つもしくは複数の分散メモリ・ユニットからなることができるメモリから、コンピュータ実行可能コンポーネントを実行することができる。本明細書で使用されるとき、用語「メモリ」と「メモリ・ユニット」は相互に交換可能である。さらに、本明細書に記載された1つまたは複数の実施形態は、コンピュータ実行可能コンポーネントのコードを分散方式で、例えば1つまたは複数の分散メモリ・ユニットからのコードを実行するために結合した、または協力して機能する、多数のプロセッサで実行することができる。本明細書で使用されるとき、用語「メモリ」は、1つの位置にある単一のメモリもしくはメモリ・ユニット、または1つもしくは複数の位置にある多数のメモリもしくはメモリ・ユニットを包含しうる。
【0128】
本出願で使用されるとき、用語「コンポーネント」、「システム」、「プラットホーム」、「インタフェース」などは、1つもしくは複数の特定の機能を有する実体であって、コンピュータに関係した実体もしくはオペレーショナル・マシン(operational machine)に関係した実体を指すことができ、またはそのようは実体を含むことができ、またはその両方であることができる。本明細書に開示された実体は、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアであることができる。例えば、コンポーネントは、限定はされないが、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラムもしくはコンピュータ、またはこれらの組合せであることができる。例として、サーバ上で実行されるアプリケーションとサーバの両方がコンポーネントであることがある。プロセスもしくは実行スレッドまたはその両方の中に、1つまたは複数のコンポーネントが存在することができ、コンポーネントは、1つのコンピュータ上に限局されていること、もしくは2つ以上のコンピュータ間に分散化されていること、またはその両方であることができる。他の例では、さまざまなデータ構造がその上に記憶されたさまざまなコンピュータ可読媒体から、対応するそれぞれのコンポーネントを実行することができる。コンポーネントは、ローカル・プロセスもしくはリモート・プロセスまたはその両方を介して、例えば1つまたは複数のデータ・パケット(例えば、ローカル・システム内で、分散システム内で、もしくはインターネットなどのネットワークを横切って、またはこれらの組合せで、他のシステムとともに、信号を介して別のコンポーネントと対話している1つのコンポーネントからのデータ)を有する信号に従って通信することができる。別の例として、コンポーネントは、電気または電子回路によって操作される機械部品によって提供される特定の機能を有する装置であることができ、この電気または電子回路は、プロセッサによって実行されるソフトウェアまたはファームウェア・アプリケーションによって操作される。このような場合、プロセッサは、装置内または装置外に置くことができ、ソフトウェア・アプリケーションまたはファームウェア・アプリケーションの少なくとも一部を実行することができる。別の例として、コンポーネントは、機械部品を含まない電子コンポーネントを介して特定の機能を提供する装置であることができ、それらの電子コンポーネントは、電子コンポーネントの機能を少なくとも部分的に与えるソフトウェアまたはファームウェアを実行するためのプロセッサまたは他の手段を含むことができる。一態様では、コンポーネントが、例えばクラウド・コンピューティング・システム内で、仮想機械を介して電子コンポーネントをエミュレートすることができる。
【0129】
さらに、用語「または」は、排他的な「または」ではなく包括的な「または」を意味することが意図されている。すなわち、特段の記載がある場合、または文脈から明白である場合を除き、「XがAまたはBを使用する」は、自然な包括的置換(natural inclusive permutation)のうちのいずれかを意味することが意図されている。すなわち、XがAを使用する場合、XがBを使用する場合、またはXがAとBの両方を使用する場合、「Xが、AまたはBを使用する」は、上記のいずれの事例の下でも満たされる。さらに、特段の記載がある場合、または単数形を指示していることが文脈から明白である場合を除き、本明細書および添付図面で使用される冠詞「a」および「an」は、一般に、「1つまたは複数」を意味すると解釈すべきである。本明細書で使用されるとき、用語「例」もしくは「例示的な」またはその両方は、例、事例または例示として役に立つものであることを意味するために利用される。誤解を避けるために言うと、本明細書に開示された主題はこのような例によって限定されない。さらに、「例」もしくは「例示的な」またはその両方として本明細書に記載された任意の態様または設計を、他の態様または設計よりも好ましいまたは有利であると解釈する必要は必ずしもなく、あるいは、そのような態様または設計が、当業者に知られている等価の例示的な構造体および技術を排除することも意味しない。
【0130】
本明細書で使用されるとき、「プロセッサ」という用語は、限定はされないが、シングルコア・プロセッサ、ソフトウェア・マルチスレッド実行機能を有するシングルコア・プロセッサ、マルチコア・プロセッサ、ソフトウェア・マルチスレッド実行機能を有するマルチコア・プロセッサ、ハードウェア・マルチスレッド技術を有するマルチコア・プロセッサ、パラレル・プラットホーム、および分散共用メモリを有するパラレル・プラットホームを含む、実質的に任意のコンピューティング処理ユニットまたはデバイスを指しうる。さらに、プロセッサは、本明細書に記載された機能を実行するように設計された集積回路、特定用途向け集積回路(ASIC)、デジタル信号処理プロセッサ(DSP)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、プログラマブル・ロジック・コントローラ(PLC)、コンプレックス・プログラマブル・ロジック・デバイス(CPLD)、ディスクリート・ゲートまたはトランジスタ・ロジック、ディスクリート・ハードウェア・コンポーネント、またはこれらの任意の組合せを指しうる。さらに、プロセッサは、空間使用を最適化し、またはユーザ機器の性能を強化するために、限定はされないが、分子ベースおよび量子ドット・ベースのトランジスタ、スイッチおよびゲートなどのナノスケール・アーキテクチャを利用することができる。プロセッサを、コンピューティング処理ユニットの組合せとして実施することもできる。本開示では、「ストア」、「ストレージ」、「データ・ストア」、「データ・ストレージ」、「データベース」などの用語、ならびにコンポーネントの動作および機能に関連する実質的に任意の他の情報ストレージ・コンポーネントが、「メモリ」またはメモリを含むコンポーネントとして実施された実体である「メモリ・コンポーネント」を指すために利用される。本明細書に記載されたメモリもしくはメモリ・コンポーネントまたはその両方は、揮発性メモリもしくは不揮発性メモリであることができ、または揮発性メモリと不揮発性メモリの両方を含むことができることを認識すべきである。例として、不揮発性メモリは、限定はされないが、リード・オンリー・メモリ(ROM)、プログラマブルなROM(PROM)、消去可能なプログラマブルROM(EPROM)、電気的に消去可能なプログラマブルROM(EEPROM)、フラッシュ・メモリまたは不揮発性のランダム・アクセス・メモリ(RAM)(例えば強誘電体RAM(FeRAM))を含むことができる。揮発性メモリはRAMを含むことができ、RAMは、例えば外部キャッシュ・メモリとして機能することができる。例として、限定はされないが、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、ダブル・データ・レートSDRAM(DDR SDRAM)、エンハンストSDRAM(ESDRAM)、Synchlink DRAM(SLDRAM)、ダイレクトRambus RAM(DRRAM)、ダイレクトRambusダイナミックRAM(DRDRAM)およびRambusダイナミックRAM(RDRAM)など、多くの形態のRAMが使用可能である。さらに、本明細書のシステムまたはコンピュータ実施方法の開示されたメモリ・コンポーネントは、限定はされないが、これらのタイプのメモリおよび他の適当なタイプのメモリを含むことが意図されている。
【0131】
以上に説明したことは、システムおよびコンピュータ実施方法の単なる例を含む。当然ながら、本開示を説明するために、コンポーネントまたはコンピュータ実施方法の考えうるあらゆる組合せを記載することは不可能だが、本開示の他の多くの組合せおよび置換が可能であることを当業者は理解することができる。さらに、詳細な説明、特許請求の範囲、付録および図面において用語「含む(includes)」、「有する(has)」、「所有する(possesses)」などが使用される範囲で、このような用語は、用語「備える/含む(comprising)」が、請求項中で転換語(transitional word)として使用されているときに解釈されるのと同様に、包括的であることが意図されている。
【0132】
さまざまな実施形態の以上の説明は例示のために示したものであり、以上の説明が網羅的であること、または、以上の説明が、開示された実施形態だけに限定されることは意図されていない。当業者には、記載された実施形態の範囲および思想を逸脱しない多くの変更および変形が明らかとなろう。本明細書で使用した用語は、実施形態の原理、実用的用途、もしくは市販されている技術にはない技術的改善点を最もよく説明するように、または本明細書に開示された実施形態を当業者が理解できるように選択した。
【国際調査報告】