(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-23
(45)【発行日】2024-05-31
(54)【発明の名称】キュービットの感覚的表現
(51)【国際特許分類】
G06N 10/00 20220101AFI20240524BHJP
【FI】
G06N10/00
(21)【出願番号】P 2022507553
(86)(22)【出願日】2020-07-02
(86)【国際出願番号】 IB2020056258
(87)【国際公開番号】W WO2021028738
(87)【国際公開日】2021-02-18
【審査請求日】2022-12-23
(32)【優先日】2019-08-12
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】トッド、マドレーヌ
(72)【発明者】
【氏名】スタンフォード-クラーク、アンドリュー、ジェームズ
【審査官】渡辺 順哉
(56)【参考文献】
【文献】特開平06-089177(JP,A)
【文献】米国特許第05170464(US,A)
【文献】米国特許出願公開第2019/0392339(US,A1)
【文献】漆谷 正義,PICマイコンによる1量子ビット演算電卓の製作,Interface,日本,CQ出版株式会社,2019年03月01日,Vol.45, No.3 ,pp.29-36,ISSN:0387-9569
(58)【調査した分野】(Int.Cl.,DB名)
B82Y10/00
G06F17/11
G06N10/00
(57)【特許請求の範囲】
【請求項1】
キュービットの感覚的表現を生成するコンピュータ実装方法であって、
1つまたは複数のプロセッサによって、前記キュービットに基づいてブロッホ球における点を決定することであって、前記点は、前記ブロッホ球のz軸に対する余緯度(シータ)の値と、前記ブロッホ球のx軸に対する経度(ファイ)の値とによって定義される、前記決定することと、
1つまたは複数のプロセッサによって、前記余緯度(シータ)の値を
2以上の変数を有する感覚出力空間の第1の変数の値に変換することと、
1つまたは複数のプロセッサによって、前記経度(ファイ)の値を前記感覚出力空間の第2の変数の値に変換することと、を含む、コンピュータ実装方法。
【請求項2】
1つまたは複数のプロセッサによって、前記感覚出力空間が第3の変数を含むと判定することと、
1つまたは複数のプロセッサによって、
前記第3の変数は前記ブロッホ球のベクトル長に対応し、前記第3の変数の値は所定の定数値に等しいと決定することと、をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記感覚出力空間は色空間を含む、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記感覚出力空間は、色相・彩度・明度(HSV)空間を含み、
1つまたは複数のプロセッサによって、前記余緯度(シータ)の値を前記感覚出力空間の第1の変数の値に変換することは、前記余緯度(シータ)の値を前記HSV空間の明度の値に変換することを含み、
1つまたは複数のプロセッサによって、前記経度(ファイ)の値を前記感覚出力空間の第2の変数の値に変換することは、前記経度(ファイ)の値を前記HSV空間の色相の値に変換することを含む、請求項
1に記載のコンピュータ実装方法。
【請求項5】
1つまたは複数のプロセッサによって、前記余緯度(シータ)の値を前記HSV空間の明度の値に変換することは、前記余緯度(シータ)の値をπで除算することを含み、
1つまたは複数のプロセッサによって、前記経度(ファイ)の値を前記HSV空間の色相の値に変換することは、前記経度(ファイ)の値を2πで除算することを含む、請求項4に記載のコンピュータ実装方法。
【請求項6】
1つまたは複数のプロセッサによって、
前記ブロッホ球のベクトル長に対応する前記HSV空間の彩度の値は所定の定数値に等しいと決定することをさらに含む、請求項
5に記載のコンピュータ実装方法。
【請求項7】
前記所定の定数値は1に等しい、請求項6に記載のコンピュータ実装方法。
【請求項8】
1つまたは複数のプロセッサによって、前記第1および第2の変数の前記値のうちの少なくとも一方にスケーリング係数を適用することをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項9】
1つまたは複数のプロセッサによって、前記余緯度(シータ)の値を前記感覚出力空間の第1の変数の値に変換することは、前記余緯度(シータ)の値を音の第1のパラメータの値に変換することを含み、
1つまたは複数のプロセッサによって、前記経度(ファイ)の値を前記感覚出力空間の第2の変数の値に変換することは、前記経度(ファイ)の値を音の第2の異なるパラメータの値に変換することを含む、請求項1に記載のコンピュータ実装方法。
【請求項10】
1つまたは複数のプロセッサによって、前記余緯度(シータ)の値を前記感覚出力空間の第1の変数の値に変換することは、前記余緯度(シータ)の値を触覚出力の第1のパラメータの値に変換することを含み、
1つまたは複数のプロセッサによって、前記経度(ファイ)の値を前記感覚出力空間の第2の変数の値に変換することは、前記経度(ファイ)の値を前記触覚出力の第2の異なるパラメータの値に変換することを含む、請求項1に記載のコンピュータ実装方法。
【請求項11】
キュービットの感覚的表現を生成するコンピュータ・プログラムであって、前記コンピュータ・プログラムはコンピュータに、請求項1ないし10いずれか一項に記載の方法を実行させる、コンピュータ・プログラム。
【請求項12】
キュービットの感覚的表現を生成するためのコンピュータ・システムであって、
1つまたは複数のコンピュータ・プロセッサと、
1つまたは複数のコンピュータ可読記憶媒体と、
コンピュータ・プログラム命令と、を含み、
前記コンピュータ・プログラム命令は、前記1つまたは複数のコンピュータ・プロセッサによって実行するために前記1つまたは複数のコンピュータ可読記憶媒体に記憶され、
前記コンピュータ・プログラム命令は、
前記キュービットに基づいてブロッホ球における点を決定する命令であって、前記点は、前記ブロッホ球のz軸に対する余緯度(シータ)の値と、前記ブロッホ球のx軸に対する経度(ファイ)の値とによって定義される、前記決定する命令と、
前記余緯度(シータ)の値を
2以上の変数を有する感覚出力空間の第1の変数の値に変換する命令と、
前記経度(ファイ)の値を前記感覚出力空間の第2の変数の値に変換する命令と、を含む、コンピュータ・システム。
【請求項13】
前記感覚出力空間が第3の変数を含むと判定するプログラム命令と、
前記第3の変数は前記ブロッホ球のベクトル長に対応し、前記第3の変数の値は所定の定数値に等しいと決定するプログラム命令と、をさらに含む、請求項12に記載のコンピュータ・システム。
【請求項14】
前記感覚出力空間は、色相・彩度・明度(HSV)空間を含み、
前記余緯度(シータ)の値を前記感覚出力空間の第1の変数の値に変換する前記プログラム命令は、前記余緯度(シータ)の値を前記HSV空間の明度の値に変換する命令を含み、
前記経度(ファイ)の値を前記感覚出力空間の第2の変数の値に変換する前記プログラム命令は、前記経度(ファイ)の値を前記HSV空間の色相の値に変換する命令を含む、
請求項12に記載のコンピュータ・システム。
【請求項15】
前記余緯度(シータ)の値を前記HSV空間の明度の値に変換する前記プログラム命令は、前記余緯度(シータ)の値をπで除算する命令を含み、
前記経度(ファイ)の値を前記HSV空間の色相の値に変換する前記プログラム命令は、前記経度(ファイ)の値を2πで除算する命令を含む、請求項14に記載のコンピュータ・システム。
【請求項16】
前記ブロッホ球のベクトル長に対応する前記HSV空間の彩度の値は所定の定数値1に等しいと決定するプログラム命令をさらに含む、請求項
15に記載のコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は一般にキュービットの分野に関し、より詳細には、キュービットの感覚的表現(sensory representation)を生成することに関する。
【0002】
古典(バイナリ)ビットを使用する代わりに、量子コンピュータは、状態の重ね合わせとすることができるキュービットを使用する。古典ビットが1または0の2つの値のうちの一方を有することができるのに対し、キュービットは無限個の値のうちのいずれか1つをとることができる。したがって、量子コンピューティングでは、キュービット(または量子ビット)は量子情報の基本単位、すなわち、2状態のデバイスで物理的に実現される古典バイナリビットの量子バージョンである。キュービットは、2状態(または2準位)の量子力学系であり、量子力学の特徴的な性質(peculiarity)を示す最も単純な量子系の1つである。
【発明の概要】
【0003】
本発明の一実施形態によれば、キュービットの感覚的表現を生成するコンピュータ実装方法が開示される。このコンピュータ実装方法は、キュービットに基づいてブロッホ球における点を決定することであって、点は、ブロッホ球のz軸に対する余緯度(シータ)の値と、ブロッホ球のx軸に対する経度(ファイ)の値とによって定義される、上記決定することを含む。このコンピュータ実装方法は、余緯度(シータ)の値を感覚出力空間の第1の変数の値に変換することをさらに含む。このコンピュータ実装方法は、経度(ファイ)の値を感覚出力空間の第2の変数の値に変換することをさらに含む。
【0004】
本発明の他の実施形態によれば、キュービットの感覚的表現を生成するためのコンピュータ・プログラム製品が開示される。このコンピュータ・プログラム製品は、1つまたは複数のコンピュータ可読記憶媒体と、1つまたは複数のコンピュータ可読記憶媒体に記憶されたプログラム命令とを含む。プログラム命令は、キュービットに基づいてブロッホ球における点を決定する命令であって、点は、ブロッホ球のz軸に対する余緯度(シータ)の値と、ブロッホ球のx軸に対する経度(ファイ)の値とによって定義される、上記決定する命令を含む。プログラム命令は、余緯度(シータ)の値を感覚出力空間の第1の変数の値に変換する命令をさらに含む。プログラム命令は、経度(ファイ)の値を感覚出力空間の第2の変数の値に変換する命令をさらに含む。
【0005】
本発明の他の実施形態によれば、キュービットの感覚的表現を生成するためのコンピュータ・システムが開示される。このコンピュータ・システムは、1つまたは複数のコンピュータ・システムを含み、1つまたは複数のコンピュータ・システムは、1つまたは複数のコンピュータ・プロセッサと、1つまたは複数のコンピュータ可読記憶媒体と、プログラム命令と、を含み、プログラム命令は、1つまたは複数のプロセッサのうちの少なくとも1つによって実行するためにコンピュータ可読記憶媒体に記憶される。プログラム命令は、キュービットに基づいてブロッホ球における点を決定する命令であって、点は、ブロッホ球のz軸に対する余緯度(シータ)の値と、ブロッホ球のx軸に対する経度(ファイ)の値とによって定義される、上記決定する命令を含む。プログラム命令は、余緯度(シータ)の値を感覚出力空間の第1の変数の値に変換する命令をさらに含む。プログラム命令は、経度(ファイ)の値を感覚出力空間の第2の変数の値に変換する命令をさらに含む。
【0006】
以下の図面を参照して、本発明の実施形態を単なる例として以下に説明する。
【図面の簡単な説明】
【0007】
【
図1】本発明の少なくとも1つの実施形態による、全体を100で示したキュービットのブロッホ球表現である。
【
図2】本発明の少なくとも1つの実施形態による、キュービット表現プログラム101の動作に適した、全体を200で示した分散データ処理環境のブロック図である。
【
図3】本発明の少なくとも1つの実施形態による、全体を300で示した、キュービット表現プログラム101によりキュービットの感覚的表現を生成するための動作ステップを示すフローチャート図である。
【
図4】本発明の少なくとも1つの実施形態による、全体を400で示した例示的な量子回路の図である。
【
図5】本発明の少なくとも1つの実施形態による、キュービット表現プログラム101を実行するのに適した、全体を500で示したコンピューティング・デバイスの構成要素を示すブロック図である。
【
図6】本発明の少なくとも1つの実施形態によるクラウド・コンピューティング環境を示すブロック図である。
【
図7】本発明の少なくとも1つの実施形態による抽象化モデル・レイヤを示すブロック図である。
【発明を実施するための形態】
【0008】
単一のキュービットの可能な量子状態は、ブロッホ球を使用して視覚化することができる。例として、
図1は、本発明の少なくとも1つの実施形態による、全体を100で示したキュービットのブロッホ球表現を示している。
図1は1つの実装形態の例示を提供しているにすぎず、様々な実施形態が実装され得る環境に関していかなる限定も含意していない。特許請求の範囲に記載した本発明の範囲から逸脱することなく、図示した環境への多くの修正が当業者によって行われ得る。
【0009】
図1に示すように、ブロッホ球の表面は2次元空間であり、これは純粋なキュービット状態の状態空間を表す。そのような2次元球面で表現された場合、古典ビットは、|0>および|1>の場所にそれぞれ位置する「北極」または「南極」にしか存在することができない。しかしながら、この特定の極軸の選択は任意である。ブロッホ球の表面の残りの部分は、古典ビットには到達不可能であるが、純粋なキュービット状態は、この表面上の任意の点によって表現することができる。したがって、キュービットの値はブロッホ球内のベクトルであり、原点から始まり、長さが1である限り、この球内の任意のベクトルをとることができる。
図1にさらに示すように、キュービットの値の一例を示している。キュービットの値は、
図1に示す2つの角度、すなわち、θ(シータ)で表すz軸に対する余緯度およびφ(ファイ)で表すx軸に対する経度を使用して一意に記述することができる。
【0010】
量子演算子(またはゲート)は、ブロッホ球の周りでベクトルを移動させる。しかしながら、本発明の実施形態は、ブロッホ球の周りでのベクトルの移動が、観察者が把握または想像することが困難な可能性があるということに気付いている。したがって、本発明の実施形態は、(たとえば、量子プログラムの実行中に)量子演算子またはゲートがキュービットの状態にどのように作用するかについての理解または認識を得ることが困難な可能性があるということに気付いている。
【0011】
本発明の実施形態は、キュービット状態の感覚的表現(たとえば、量子コンピューティング・システムの出力)の生成を提供することによって、量子演算がキュービットの状態にどのように作用するかについての理解または認識あるいはその両方をユーザが得ることを可能にする。
【0012】
様々な実施形態において、キュービットの表現は、ブロッホ球から代替の出力空間にマッピングされる(たとえば、変換される)。具体的には、様々な実施形態は、ブロッホ球においてキュービットを表現するために使用される値、すなわち、θ(シータ)およびφ(ファイ)を、異なる出力空間の第1および第2の変数のそれぞれの値にマッピングする。そうすることによって、本発明の実施形態は、量子演算子(たとえば、ゲート)がキュービットの状態にどのように作用するかを観察者にとってより明確にする、キュービットの代替のまたは異なる表現を提供する。したがって、本発明の実施形態により、ユーザは、量子プログラム全体の実行にわたるキュービットの状態の変化の理解または認識を深めることが可能になる。
【0013】
いくつかの実施形態では、キュービットを表す角度、すなわち、ブロッホ球のz軸に対する余緯度(シータ)およびブロッホ球のx軸に対する経度(ファイ)は、より有意義な感覚出力空間にマッピングされる。たとえば、感覚出力空間には、色出力空間、触覚出力空間、聴覚出力空間などが含まれ得る。様々な実施形態において、キュービットの表現は、キュービットの値が変化したときにユーザが理解または認識あるいはその両方を行うことがより容易な感覚出力として提供される。これにより、1つまたは複数の量子演算がキュービットに適用された結果としてキュービットの状態がどのように変化するかについての理解を深めることが可能になる。
【0014】
様々な実施形態において、ブロッホ球におけるキュービットの表現の、代替の感覚空間(たとえば、色空間または聴覚出力空間)への変換は、ブロッホ球上で互いに近接するベクトルが、代替の感覚出力空間において類似の出力(たとえば、色相・彩度・明度(HSV:Hue Saturation Value)色空間の類似の色)を有するように構成される。これは、量子演算がキュービットの状態にどのように作用するかについて、ユーザが(たとえば、視覚的または可聴的に)理解するのを支援することができる。
【0015】
様々な実施形態において、キュービットのブロッホ球表現は、有意義に関連付けることができる2つ以上のパラメータを有する他の任意の適切な感覚出力空間にマッピングする(たとえば、変換する)ことができる。たとえば、ブロッホ球には、シータおよびファイの2つの自由パラメータがあり、第3のパラメータであるベクトルの長さは固定されている。このように、一実施形態の感覚出力空間は、様々な値を有することができる2つ以上のパラメータを含み得る。この一例は音であり得、2つの自由/可変パラメータはピッチおよび音量であり、固定値は音の発生位置であり得る。例として、シータの値はピッチの値にマッピングされ、ファイの値は音量の値にマッピングされる。それに応じて、一実施形態では、感覚出力空間は第3の変数を含み得る。ここで、キュービットの感覚的表現を生成することは、第3の変数の値を所定の定数値に等しくなるように決定すること(defining)をさらに含む。
【0016】
本発明の実施形態は、量子演算子がキュービットの状態にどのように作用するかを初級者が理解するのに役立つ。さらに、本発明の実施形態による、ブロッホ球におけるキュービットの表現の代替の感覚空間への変換に使用されるスケーリング係数を調整することは、さらなる上級ユーザがブロッホ球において互いに近接するキュービット状態を見分けるのを支援することができる。例として、一実施形態の感覚出力空間は、色空間を含み得る。ここで、ブロッホ球表現とは異なるキュービットの視覚的表現が生成され、この視覚的表現は、色の値を利用してキュービットの状態を表現または区別あるいはその両方を行う。
【0017】
たとえば、一実施形態では、感覚出力空間は、色相・彩度・明度(HSV)空間を含む。この実施形態では、余緯度(シータ)の値を感覚出力空間の第1の変数の値に変換することは、余緯度(シータ)の値をHSV空間の「明度」の値に変換することを含む。同様に、経度(ファイ)の値を感覚出力空間の第2の変数の値に変換することは、経度(ファイ)の値をHSV空間の「色相」の値に変換することを含む。言い換えれば、キュービットのブロッホ球表現はHSV色空間にマッピングされ、このマッピングは、シータおよびファイの値を色空間の「明度」および「色相」の値にそれぞれ変換することによって実現される。
【0018】
例として、余緯度(シータ)の値をHSV空間の「明度」の値に変換することは、余緯度(シータ)の値をπで除算することを含み得る。同様に、経度(ファイ)の値をHSV空間の「色相」の値に変換することは、経度(ファイ)の値を2πで除算することを含み得る。したがって、本発明の実施形態は、安価で容易な方法で使用することができる比較的単純な数学演算を利用するので、キュービットの感覚的表現を生成するためのコストまたは複雑性あるいはその両方の要件が最小限に抑えられる。
【0019】
様々な実施形態において、HSV空間の「彩度」の値は、所定の定数値に等しくなるように決定される。例として、所定の定数値は1に等しくてもよい。したがって、説明している例(複数可)では、キュービットの表現がHSV円柱で提供される。これは、キュービットのブロッホ球表現の角度シータをHSV空間の「明度」に変換し、キュービットのブロッホ球表現の角度ファイをHSV空間の「色相」に変換することによって実現することができる。「彩度」は定数値、たとえば1に維持され得、その理由は、ブロッホ球では全てのベクトルが長さ1でなければならないためである。
【0020】
いくつかの実施形態では、第1および第2の変数の値のうちの少なくとも1つにスケーリング係数がさらに適用される。たとえば、必要であれば、または好適であれば、変換中に調整を行うことができる。例として、多くの量子回路では、ベクトルがブロッホ球でx軸に平行であり、HSV色空間で1/2の「明度」にマッピングされ得る場合に、多くの時間が費やされる。これにより、一部の出力デバイスで色が薄暗くなり得るので、「明度」をスケーリングして(たとえば、1.2を乗算して)色をより明るく表示すると、出力をさらに有意義にすることができる(ただし上限は1であり、その理由は、これがHSVマッピングで許可される最大値であるためである)。
【0021】
いくつかの実施形態では、感覚出力空間は、音(たとえば、可聴)出力である。そのような実施形態では、余緯度(シータ)の値を感覚出力空間の第1の変数の値に変換することは、余緯度(シータ)の値を音の第1のパラメータの値に変換することを含む。同様に、経度(ファイ)の値を感覚出力空間の第2の変数の値に変換することは、経度(ファイ)の値を音の第2の異なるパラメータの値に変換することを含む。このように、いくつかの実施形態では、キュービットの視覚的表現を生成するのではなく、他の実施形態は、キュービットの音声表現を生成する。そのような実施形態は、色覚異常、視覚障害、または別の理由でキュービットの状態の視覚的表現間の違いを認識することが困難であるユーザにとって特に有利であり得る。
【0022】
いくつかの実施形態では、感覚出力空間は触覚出力である。そのような実施形態では、余緯度(シータ)の値を感覚出力空間の第1の変数の値に変換することは、余緯度(シータ)の値を触覚出力の第1のパラメータの値に変換することを含む。同様に、経度(ファイ)の値を感覚出力空間の第2の変数の値に変換することは、経度(ファイ)の値を触覚出力の第2の異なるパラメータの値に変換することを含む。このようにして、キュービットの触覚表現が生成される。そのような実施形態は、聴覚障害、視覚障害、または別の理由でキュービットの状態の視覚的表現または可聴表現あるいはその両方の間の違いを認識することが困難であるユーザにとって特に有利であり得る。
【0023】
したがって、本発明の実施形態は、様々な異なる感覚出力空間におけるキュービットの代替表現を生成する。様々な実施形態において、キュービットのブロッホ球表現は、ユーザがキュービットの状態の変化を理解または知覚あるいはその両方を行うのがより容易であり得る、視覚、音声、触覚などの表現に変換される。これらの実施形態では、キュービットに基づいてブロッホ球における点が決定され、その点は、ブロッホ球のz軸に対する余緯度(シータ)の値およびブロッホ球のx軸に対する経度(ファイ)の値によって定義される。キュービットのブロッホ球表現は、異なる感覚出力空間内の代替表現に変換される。具体的には、様々な実施形態は、余緯度(シータ)の値を感覚出力空間の第1の変数の値に変換し、経度(ファイ)の値を感覚出力空間の第2の変数の値に変換する。
【0024】
そのため、本発明の実施形態は、キュービットの代替表現が得られるツールを提供する。代替表現は、ユーザがキュービットの状態の変化をより容易に知覚できるようになる様々なタイプの感覚出力として提供することができるので、そのような代替表現により、ユーザは量子演算がキュービットにどのように作用するかについての理解を深めることが可能になる。様々な実施形態において、キュービットのブロッホ球表現の値は、他の視覚的、聴覚的、または触覚的に、あるいはそれらの組み合わせで知覚可能な出力空間のそれぞれのパラメータの値に変換される。したがって、これらの様々な実施形態によって提供される出力空間は、人間の感覚によって知覚することができるキュービットの表現(複数可)を含む。例として、感覚出力空間は、量子回路またはシステムの理解の向上を促進するのに役立つ色空間(たとえば、HSVまたはHSL色空間)、聴覚空間(たとえば、音声/音)、および触覚空間のうちの1つまたは複数を含むことができる。したがって、本発明の実施形態は、ユーザがキュービット状態の変化を知覚するのが容易な、感覚出力空間におけるキュービットの表現を生成することによって、量子回路または量子システムあるいはその両方の理解の向上の促進を実現する。
【0025】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはそれらの組み合わせであり得る。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
【0026】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のために命令を保持および記憶可能な有形のデバイスとすることができる。コンピュータ可読記憶媒体は、たとえば、限定はしないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであり得る。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラム可能読み取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:portable compact disc read-only memory)、デジタル・バーサタイル・ディスク(DVD:digital versatile disk)、メモリー・スティック(R)、フレキシブル・ディスク、命令が記録されたパンチ・カードまたは溝の隆起構造などの機械的にコード化されたデバイス、およびこれらの任意の適切な組み合わせが含まれる。コンピュータ可読記憶媒体は、本明細書で使用する場合、たとえば、電波または他の自由に伝搬する電磁波、導波管もしくは他の伝送媒体を伝搬する電磁波(たとえば、光ファイバ・ケーブルを通過する光パルス)、または有線で伝送される電気信号などの一過性の信号自体であると解釈されるべきではない。
【0027】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいは、たとえば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくは無線ネットワーク、またはそれらの組み合わせなどのネットワークを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組み合わせを含み得る。各コンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶する。
【0028】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または類似のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組み合わせで書かれたソース・コードまたはオブジェクト・コードであり得る。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上かつ部分的にリモート・コンピュータ上で、あるいは完全にリモート・コンピュータまたはサーバ上で実行され得る。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN:local area network)またはワイド・エリア・ネットワーク(WAN:wide area network)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され得、または(たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータへの接続がなされ得る。一部の実施形態では、たとえば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用してコンピュータ可読プログラム命令を実行することによって、電子回路を個人向けにし得る。
【0029】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して本明細書で説明している。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装できることは理解されよう。
【0030】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供して、それらの命令がコンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行された場合に、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/行為を実装するための手段が生成されるようなマシンを生成し得る。また、これらのコンピュータ可読プログラム命令を、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはそれらの組み合わせに特定の方法で機能するように指示することが可能なコンピュータ可読記憶媒体に記憶して、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/行為の態様を実装する命令を含む製造品を構成するようにし得る。
【0031】
また、コンピュータ可読プログラム命令をコンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードして、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行させることによって、それらの命令がコンピュータ、他のプログラム可能装置、または他のデバイス上で実行された場合に、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/行為を実装されるようなコンピュータ実装処理を生成し得る。
【0032】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示している。これに関して、フローチャートまたはブロック図の各ブロックは、指定された論理的機能(複数可)を実装するための1つまたは複数の実行可能命令を含むモジュール、セグメント、または命令の一部を表し得る。一部の代替の実装形態では、ブロックに記載した機能は、図示した順序以外で行われ得る。たとえば、関与する機能に応じて、連続して示した2つのブロックは、実際には実質的に同時に実行され得、またはそれらのブロックは、場合により逆の順序で実行され得る。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせは、指定された機能もしくは行為を実行するか、または専用ハードウェアおよびコンピュータ命令の組み合わせを実行する専用のハードウェア・ベースのシステムによって実装できることにも気付くであろう。
【0033】
本発明の様々な実施形態の説明は例示の目的で提示しているが、網羅的であることも、開示した実施形態に限定されることも意図したものではない。記載した実施形態の範囲および思想から逸脱することなく、多くの修正例および変形例が当業者には明らかであろう。図は概略的なものにすぎず、原寸に比例して描いていないことを理解されたい。また、同一または類似の部分を示すために、図全体で同じ参照番号を使用していることも理解されたい。さらに、本明細書で使用する用語は、実施形態の原理、実際の適用または市場で見られる技術に対する技術的改善を最もよく説明するために、または当業者が本明細書に開示した実施形態を理解できるようにするために選択している。
【0034】
以下、図を参照して本発明を詳細に説明する。
図2は、本発明の少なくとも1つの実施形態による、キュービット表現プログラム101の動作に適した、全体を200で示した分散データ処理環境のブロック図である。
図2は1つの実装形態の例示を提供しているにすぎず、様々な実施形態が実装され得る環境に関していかなる限定も含意していない。特許請求の範囲に記載した本発明の範囲から逸脱することなく、図示した環境への多くの修正が当業者によって行われ得る。
【0035】
図2に示すように、分散データ処理環境200は、ネットワーク202を介して相互接続されたキュービット表現プログラム101、第1のサーバ204、第2のサーバ206、ストレージ・ユニット208、クライアント・デバイス210、クライアント・デバイス212、およびクライアント・デバイス214を含む。本発明の実施形態では、ネットワーク202は、電気通信ネットワーク、ローカル・エリア・ネットワーク(LAN)、インターネットなどのワイド・エリア・ネットワーク(WAN)、またはこれら3つの組み合わせとすることができ、有線接続、無線接続、または光ファイバ接続を含むことができる。ネットワーク202は、音声、データ、およびビデオ情報を含むマルチメディア信号を含む、データ、音声、またはビデオ信号、あるいはそれらの組み合わせを送受信することが可能な1つまたは複数の有線ネットワークまたは無線ネットワークあるいはその両方を含むことができる。一般に、ネットワーク202は、分散データ処理環境200内の様々なプログラム、デバイス、またはコンピュータ、あるいはそれらの組み合わせの間の通信をサポートする接続およびプロトコルの任意の組み合わせとすることができる。
【0036】
様々な実施形態では、第1のサーバ204および第2のサーバ206は、スタンドアロン・デバイス、管理サーバ、ウェブ・サーバ、モバイル・デバイス、またはデータを受信、送信、および処理することが可能な他の任意の電子デバイスもしくはコンピューティング・システムとすることができるコンピューティング・デバイスである。他の実施形態では、第1のサーバ204および第2のサーバ206は、クラウド・コンピューティング環境などにおいて、複数のコンピュータをサーバ・システムとして利用するサーバ・コンピューティング・システムである。一実施形態では、第1のサーバ204および第2のサーバ206は、分散データ処理環境200内でアクセスされた場合にシームレスリソースの単一のプールとして機能するクラスタ化されたコンピュータおよびコンポーネント(たとえば、データベース・サーバ・コンピュータ、アプリケーション・サーバ・コンピュータ、ウェブ・サーバ・コンピュータなど)を利用したコンピューティング・システムを表す。一般に、第1のサーバ204および第2のサーバ206は、機械可読プログラム命令を実行し、ネットワーク202などのネットワークを介して分散データ処理環境200内の図示した様々なコンピューティング・デバイス(および図示していない他のコンピューティング・デバイス)と通信することが可能な任意のプログラム可能電子デバイスまたはプログラム可能電子デバイスの組み合わせを表す。たとえば、第1のサーバ204または第2のサーバ206あるいはその両方は、ブートファイル、オペレーティングシステムイメージ、およびアプリケーションなどのデータを、クライアント・デバイス210、クライアント・デバイス212、およびクライアント・デバイス214に提供する。キュービット表現プログラム101は、
図2では第1のサーバ204と統合されたものとして示しているが、代替の実施形態では、キュービット表現プログラム101は、第1のサーバ204から離れて配置される。
【0037】
様々な実施形態では、クライアント・デバイス210、クライアント・デバイス212、およびクライアント・デバイス214は、ラップトップ・コンピュータ、タブレット・コンピュータ、ネットブック・コンピュータ、パーソナル・コンピュータ(PC:personal computer)、デスクトップ・コンピュータ、パーソナル・デジタル・アシスタント(PDA:personal digital assistant)、スマートフォン、スマートウォッチ、またはデータを受信、送信、および処理することが可能な任意のプログラム可能電子デバイスとすることができるコンピューティング・デバイスである。一般に、クライアント・デバイス210、クライアント・デバイス212、およびクライアント・デバイス214は、機械可読プログラム命令を実行し、ネットワーク202などのネットワークを介して分散データ処理環境200内の図示した様々なコンピューティング・デバイス(および図示していない他のコンピューティング・デバイス)と通信することが可能な任意のプログラム可能電子デバイスまたはプログラム可能電子デバイスの組み合わせを表す。
【0038】
様々な実施形態では、クライアント・デバイス210、クライアント・デバイス212、およびクライアント・デバイス214は、ユーザが、第1のサーバ204または第2のサーバ206あるいはその両方を介して、ストレージ・ユニット208にデータを送信する、ストレージ・ユニット208からデータを受信する、または別の方法でストレージ・ユニット208のデータにアクセスすることを可能にする。クライアント・デバイスは、分散データ処理環境200内の図示した様々なコンピューティング・デバイス(および図示していない追加のコンピューティング・デバイス)との間のインターフェースを提供するユーザ・インターフェースをさらに含む。いくつかの実施形態では、ユーザ・インターフェースは、グラフィカル・ユーザ・インターフェース(GUI)またはウェブ・ユーザ・インターフェース(WUI)とすることができ、テキスト、文書、ウェブ・ブラウザ・ウィンドウ、ユーザ・オプション、アプリケーション・インターフェースおよび動作指示を表示することができ、プログラムがユーザに提示する情報(たとえば、グラフィック、テキスト、およびサウンド)と、ユーザがそのプログラムを制御するために使用する制御シーケンスとを含む。他の実施形態では、ユーザ・インターフェースは、分散データ処理環境200内の図示した様々なコンピューティング・デバイス(および図示していない追加のコンピューティング・デバイス)との間のインターフェースを提供するモバイル・アプリケーション・ソフトウェアとすることができる。
【0039】
図3は、本発明の少なくとも1つの実施形態による、全体を300で示した、キュービット表現プログラム101によりキュービットの感覚的表現を生成するための動作ステップを示すフローチャート図である。より具体的には、
図3は、キュービットのHSV色出力空間表現を生成するための動作ステップを示すフローチャート図である。
図3は1つの実装形態の例示を提供しているにすぎず、様々な実施形態が実装され得る環境に関していかなる限定も含意していない。特許請求の範囲に記載した本発明の範囲から逸脱することなく、図示した環境への多くの修正が当業者によって行われ得る。
【0040】
ステップS302において、キュービット表現プログラム101は、キュービットに基づいてブロッホ球における点を決定する。様々な実施形態において、ブロッホ球における点は、ブロッホ球のz軸に対する余緯度(シータ)の値と、ブロッホ球のx軸に対する経度(ファイ)の値とによって定義される。したがって、キュービットに基づいてブロッホ球における点を決定することは、ブロッホ球における点を定義する余緯度(シータ)および経度(ファイ)の値をそれぞれ決定することを含む。当業者は、キュービット状態のブロッホ球表現を決定することが、任意の一般的に知られている従来のアプローチ/技術を使用して実現できることを理解するであろう。
【0041】
ステップS304において、キュービット表現プログラム101は、余緯度(シータ)の値を感覚出力空間の第1の変数の値に変換する。一実施形態では、第1の変数は、余緯度(シータ)の許容値の範囲とは異なる第1の許容値の範囲を有する。より具体的には、感覚出力空間はHSV色空間であるので、余緯度(シータ)の値を感覚出力空間の第1の変数の値に変換することは、余緯度(シータ)の値をHSV空間の「明度」の値に変換することを含む。キュービット表現プログラム101による、余緯度(シータ)の値の、HSV空間の「明度」の値へのそのような変換は、余緯度(シータ)の値をπで除算することを含む(その理由は、シータがゼロからπまでの範囲をとり得るのに対し、HSV色空間では「明度」がゼロ(0)から1までの範囲のみをとり得るためである)。
【0042】
ステップS306において、キュービット表現プログラム101は、経度(ファイ)の値を感覚出力空間の第2の変数の値に変換する。一実施形態では、第2の変数は、経度(ファイ)の許容値の範囲とは異なる第2の許容値の範囲を有する。より具体的には、感覚出力空間はHSV色空間であるので、経度(ファイ)の値を感覚出力空間の第2の変数の値に変換することは、経度(ファイ)の値をHSV空間の「色相」の値に変換することを含む。キュービット表現プログラム101による、経度(ファイ)の値の、HSV空間の「色相」の値へのそのような変換は、経度(ファイ)の値を2πで除算することを含む(その理由は、ファイがゼロから2πまでの範囲をとり得るのに対し、HSV色空間では「色相」がゼロ(0)から1までの範囲のみをとり得るためである)。
【0043】
ステップS308において、キュービット表現プログラム101は、第3の変数の値を所定の定数値に等しくなるように決定する。当業者は、HSV色空間が3つの変数、すなわち、(i)色相、(ii)彩度、および(iii)明度を含むことを理解するであろう。したがって、キュービット表現プログラム101が定数値を決定する第3の変数は「彩度」である。ここで、キュービット表現プログラム101は、第3の変数「彩度」の定数値を1に等しくなるように決定する。換言すれば、「彩度」の値は定数値1に設定される。
【0044】
ステップS310において、キュービット表現プログラム101は、「色相」、「彩度」、および「明度」の値を表す出力信号を生成する。一実施形態では、出力信号はユーザに表示される色(複数可)を制御し、表示色(複数可)はキュービットの状態(複数可)を表す。
【0045】
当業者は、本発明の実施形態が、ブロッホ球におけるキュービットを表す角度を有意義な感覚出力空間にマッピングする(たとえば、変換する)という概念に基づくことを理解するであろう。
図3の前述のステップでは、感覚出力空間はHSV円柱を含み、変換は、(i)ブロッホ球表現の角度シータをHSV空間の「明度」の値にマッピングすることと、(ii)ブロッホ球表現の角度ファイをHSV空間の「色相」の値にマッピングすることと、を含む。さらに、ブロッホ球では全てのベクトルが長さ1でなければならないので、「彩度」は定数値1に維持される。
【0046】
ブロッホ角度はπを単位とし、HSV値は0から1までの間で変化するので、マッピングは、ブロッホ角度からHSV値に変換するために調整を行うことを含む。このため、ブロッホ角度からHSV値に変換するために、キュービット表現プログラム101は、ファイを2πで除算し、シータをπで除算する(シータはブロッホ球表現ではπの間でしか変化しないため)。代替の出力空間は同様の形態の調整を必要とし得、そのような調整は簡単または単純あるいはその両方である数学演算を含み得ることを理解されたい。
【0047】
いくつかの実施形態では、必要に応じて、変換中に調整を行うこともできる。たとえば、多くの量子回路では、ブロッホ球のベクトルがx軸に平行であり、そのため1/2の「明度」を有する場合に、多くの時間が費やされ得る。これにより、一部の出力デバイスで色が薄暗くなり得るので、「明度」がスケーリングされると、出力はさらに有意義である。例として、出力値に1.2を乗算して、色をより明るく表示する(ただし上限は1であり、その理由は、これがHSVマッピングで許可される最大値であるためである)。
【0048】
いくつかの実施形態では、回路の実行を通じてキュービットの状態がどのように変化するかを表現するために変換が使用される場合、キュービット表現プログラム101は、回路の実行中にキュービットが取る値の範囲に基づいてマッピングを更新する。たとえば、回路の量子演算が事前に分かっている場合、この情報を使用して、シータおよびファイが取る値の範囲を特定することができる。したがって、特定されたシータおよびファイが取る値の範囲に基づいて、キュービット表現プログラム101は、感覚出力空間において変換された値をスケーリングして、出力空間の利用可能な範囲の使用を最大化する。
【0049】
たとえば、キュービット表現プログラム101は、使用される演算/ゲートを表す行列を乗算し、その結果得られる行列から抽出されるシータおよびファイによって、値の範囲を取得する。マッピングにより、シータおよびファイの値を変化させることができる。回路で使用されるシータの最大値がπ/2であることが分かっている場合、キュービット表現プログラム101は、この情報を使用して、シータの全ての値に2を乗算するように変換演算を調整することができ、それによって利用可能な色の全範囲が使用される。これにより、最終的には、色覚異常などが理由でユーザが判別できない色を避けるように使用される値を変更することによって、アクセシビリティが改善されるという利益が提供される。
【0050】
場合によっては、ブロッホ球上で互いに近接するベクトルが類似の出力を有するときに、色空間への変換は観察者にとってより有意義であり得る。たとえば、HSV空間では、互いに近接するベクトルは類似した色として表現される。これは、演算がキュービットの状態にどのように作用するかについてユーザが視覚的に理解するのを支援することができる。
【0051】
様々な実施形態において、キュービット表現プログラム101は、有意義に関連付けることができる2つ以上の可変要素を有する他の感覚出力空間を生成する。ブロッホ球には、2つの可変パラメータであるシータおよびファイと、第3の固定パラメータであるベクトルの長さとがある。したがって、一実施形態では、感覚出力空間は、聴覚出力空間(すなわち、音出力)を含むことができ、その場合、2つの可変要素は、ピッチおよび音量である(また、固定値は音の発生位置であり得る)。たとえば、キュービット表現プログラム101は、ファイの値をピッチの値に変換し、シータの値を音量値に変換する。
【0052】
図4は、本発明の少なくとも1つの実施形態による、全体を400で示した例示的な量子回路の図である。
図4は1つの実装形態の例示を提供しているにすぎず、様々な実施形態が実装され得る環境に関していかなる限定も含意していない。特許請求の範囲に記載した本発明の範囲から逸脱することなく、図示した環境への多くの修正が当業者によって行われ得る。
【0053】
例として、シータの最大値がπ/2であると決定され、ファイの最大値がπである場合、キュービット表現プログラム101は、シータに2倍、ファイに2倍のスケーリング係数を使用することを決定する。このスケーリングにより、たとえば、シータおよびファイの範囲がこのときそれぞれの全範囲に広がるようにすることで、HSV色空間の全ての色を使用できるようになる。ここで、全てのキュービットが|0>の状態になるようにシステムが初期化される。換言すれば、シータおよびファイの値は両方ともゼロ(0)である。これらの値がHSV空間にマッピングされると、描画される色は白になる。
【0054】
様々な実施形態において、キュービット表現プログラムは、「H」ゲートをキュービットの第1の状態に適用する。これにより、第1のキュービットのaおよびbの値が1/√2に等しくなり、ベクトルとしては、第1のキュービットはこのとき、シータ=π/2、ファイ=0のそれぞれの角度で正のx軸と重なる。これにより、第1のキュービットの状態の表現に半分の強度の赤色を与えることができ、その理由は、HSV空間において「色相」がゼロ(0)で、ファイが0である場所に赤があるためである。次いで、所望であれば、上記で決定されたスケーリング係数を適用して、シータ=πおよびファイ=0を与えることができる。これにより、同じ赤色であるが、今度は完全な強度を有するものが与えられる。
【0055】
様々な実施形態において、キュービット表現プログラム101は、「Z」ゲートを第1のキュービットに適用する。これは、ブロッホ球のZ軸を中心としたπラジアンだけのπラジアン回転である。そのため、ここでは、第1のキュービットの角度はシータ=π/2およびファイ=πになる。これにより、第1のキュービットの第2の状態の表現にシアン色が与えられる(シアンはHSV空間で赤の反対であるため)。次いで、上記で決定したスケーリング係数を同様に適用して、シータ=πおよびファイ=2πを与えることができ、これにより、色は完全な強度で赤に戻る(2πの回転は0の回転と同じであるため)。この例示的な回路(赤対シアン)では、スケーリングによりはっきりとしたコントラストが提供されないが、シータおよびファイがより大きい変化を有するより複雑な回路では、より大きいコントラストを示すことができる。
【0056】
様々な実施形態では、キュービット表現プログラム101は第1のキュービットを測定し、これにより、ベクトルは一方の極と一致する(キュービットはπまたはゼロ(0)のシータを有する)。これにより、それぞれ黒または白の第1のキュービットの第3の状態の表現が与えられる。
【0057】
当業者は、キュービットのブロッホ球表現を代替の感覚出力空間(たとえば、色空間、音声出力空間、または触覚出力空間)に変換することによって、量子演算(ゲートなど)がキュービットの状態にどのように作用するかについて初級者が理解するのを支援できることを理解するであろう。さらに、スケーリング係数を使用して変換された値を調整することによって、上級ユーザがブロッホ球において互いに近接する状態を見分けるのを支援することができる。
【0058】
図5は、キュービット表現プログラム101を実行するのに適した、全体を500で示したコンピューティング・デバイス、第1のサーバ204、第2のサーバ206、ストレージ・ユニット208、クライアント・デバイス210、クライアント・デバイス212、クライアント・デバイス214、および本発明の少なくとも1つの実施形態による
図2の分散データ処理環境200に示していない任意の追加のコンピューティング・デバイスのコンポーネントを示すブロック図である。コンピューティング・デバイス500は、1つまたは複数のプロセッサ(複数可)504(1つまたは複数のコンピュータ・プロセッサを含む)、通信ファブリック502、RAM516およびキャッシュ518を含むメモリ506、永続ストレージ508、通信ユニット512、I/Oインターフェース(複数可)514、ディスプレイ522、ならびに外部デバイス(複数可)520を含む。
図5は1つの実施形態の例示を提供しているにすぎず、様々な実施形態が実装され得る環境に関していかなる限定も含意していないことを理解されたい。図示した環境への多くの修正が行われ得る。
【0059】
図示のように、コンピューティング・デバイス500は、コンピュータ・プロセッサ(複数可)504、メモリ506、永続ストレージ508、通信ユニット512、および入力/出力(I/O:input/output)インターフェース(複数可)514の間の通信を提供する通信ファブリック502を介して動作する。通信ファブリック502は、プロセッサ(複数可)504(たとえば、マイクロプロセッサ、通信プロセッサ、およびネットワーク・プロセッサ)、メモリ506、外部デバイス(複数可)520、およびシステム内の他の任意のハードウェア・コンポーネントの間でデータまたは制御情報を受け渡しするのに適した任意のアーキテクチャによって実装することができる。たとえば、通信ファブリック502は、1つまたは複数のバスによって実装することができる。
【0060】
メモリ506および永続ストレージ508は、コンピュータ可読記憶媒体である。図示の実施形態では、メモリ506は、ランダム・アクセス・メモリ(RAM)516およびキャッシュ518を含む。一般に、メモリ506は、任意の適切な揮発性または不揮発性の1つまたは複数のコンピュータ可読記憶媒体を含むことができる。
【0061】
キュービット表現プログラム101のプログラム命令は、それぞれのコンピュータ・プロセッサ(複数可)504のうちの1つまたは複数がメモリ506の1つまたは複数のメモリを介して実行するために、永続ストレージ508、またはより一般的には任意のコンピュータ可読記憶媒体に記憶することができる。永続ストレージ508は、磁気ハード・ディスク・ドライブ、ソリッドステート・ディスク・ドライブ、半導体ストレージ・デバイス、読み取り専用メモリ(ROM)、電子的消去可能プログラム可能読み取り専用メモリ(EEPROM:electronically erasable programmable read-only memory)、フラッシュ・メモリ、またはプログラム命令もしくはデジタル情報を記憶することが可能な他の任意のコンピュータ可読記憶媒体とすることができる。
【0062】
永続ストレージ508によって使用される媒体もまた、取り外し可能であり得る。たとえば、取り外し可能なハード・ドライブが、永続ストレージ508に使用され得る。他の例には、光ディスクおよび磁気ディスク、サム・ドライブ、ならびにスマート・カードが含まれ、これらはドライブに挿入されて他のコンピュータ可読記憶媒体上に転送され、これもまた、永続ストレージ508の一部である。
【0063】
通信ユニット512は、これらの例では、他のデータ処理システムまたはデバイスとの通信を提供する。これらの例では、通信ユニット512は、1つまたは複数のネットワーク・インターフェース・カードを含むことができる。通信ユニット512は、物理および無線通信リンクの一方または両方を使用して通信を提供し得る。本発明のいくつかの実施形態の状況では、様々な入力データのソースはコンピューティング・デバイス500に対して物理的に離れていてもよく、通信ユニット512を介して入力データが受信され得、出力が同様に送信され得る。
【0064】
I/Oインターフェース(複数可)514は、コンピューティング・デバイス500と連携して動作し得る他のデバイスとの間でデータの入力および出力を可能にする。たとえば、I/Oインターフェース(複数可)514は、キーボード、キーパッド、タッチ画面、または他の適切な入力デバイスなどであり得る外部デバイス(複数可)520への接続を提供し得る。外部デバイス(複数可)520はまた、ポータブルのコンピュータ可読記憶媒体、たとえば、サム・ドライブ、ポータブルの光または磁気ディスク、およびメモリ・カードを含むことができる。本発明の実施形態を実施するために使用されるソフトウェアおよびデータは、そのようなポータブルのコンピュータ可読記憶媒体に記憶することができ、I/Oインターフェース(複数可)514を介して永続ストレージ508にロードされ得る。I/Oインターフェース(複数可)514は同様に、ディスプレイ522にも接続することができる。ディスプレイ522は、データをユーザに表示するためのメカニズムを提供し、たとえば、コンピュータ・モニタであり得る。
【0065】
本開示はクラウド・コンピューティングに関する詳細な説明を含むが、本明細書に記載した教示の実装形態はクラウド・コンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在知られているまたは今後開発される他の任意のタイプのコンピューティング環境と共に実装することが可能である。
【0066】
クラウド・コンピューティングは、最小限の管理労力またはサービスのプロバイダとのやり取りによって迅速にプロビジョニングおよび解放することができる、設定可能なコンピューティング・リソース(たとえば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特徴と、少なくとも3つのサービス・モデルと、少なくとも4つのデプロイメント・モデルとを含み得る。
【0067】
特徴は以下の通りである。
【0068】
オンデマンド・セルフ・サービス:クラウド・コンシューマは、サービスのプロバイダとの人的な対話を必要とせずに、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング能力を一方的にプロビジョニングすることができる。
【0069】
ブロード・ネットワーク・アクセス:能力はネットワークを介して利用することができ、異種のシンまたはシック・クライアント・プラットフォーム(たとえば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準的なメカニズムを介してアクセスされる。
【0070】
リソース・プーリング:プロバイダのコンピューティング・リソースをプールして、様々な物理リソースおよび仮想リソースが需要に応じて動的に割り当ておよび再割り当てされるマルチ・テナント・モデルを使用して複数のコンシューマにサービス提供する。一般にコンシューマは、提供されるリソースの正確な位置に対して何もできず、知っているわけでもないが、より高い抽象化レベル(たとえば、国、州、またはデータセンターなど)では位置を特定可能であり得るという点で位置非依存の感覚がある。
【0071】
迅速な弾力性:能力を迅速かつ弾力的に、場合によっては自動的にプロビジョニングして素早くスケール・アウトし、迅速に解放して素早くスケール・インすることができる。コンシューマにとって、プロビジョニング可能な能力は無制限であるように見えることが多く、任意の時間に任意の数量で購入することができる。
【0072】
測定されるサービス:クラウド・システムは、サービスのタイプ(たとえば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に適したある抽象化レベルでの計量機能を活用して、リソースの使用を自動的に制御し、最適化する。リソース使用量を監視、管理、および報告して、利用されるサービスのプロバイダおよびコンシューマの両方に透明性を提供することができる。
【0073】
サービス・モデルは以下の通りである。
【0074】
ソフトウェア・アズ・ア・サービス(SaaS:Software as a Service):コンシューマに提供される能力は、クラウド・インフラストラクチャ上で動作するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ(たとえば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを介して様々なクライアント・デバイスからアクセス可能である。コンシューマは、限定されたユーザ固有のアプリケーション構成設定を可能性のある例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、さらには個々のアプリケーション機能を含む、基盤となるクラウド・インフラストラクチャを管理も制御もしない。
【0075】
プラットフォーム・アズ・ア・サービス(PaaS:Platform as a Service):コンシューマに提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、コンシューマが作成または取得したアプリケーションをクラウド・インフラストラクチャ上にデプロイすることである。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基盤となるクラウド・インフラストラクチャを管理も制御もしないが、デプロイされたアプリケーションおよび場合によってはアプリケーション・ホスティング環境構成を制御する。
【0076】
インフラストラクチャ・アズ・ア・サービス(IaaS:Infrastructure as a Service):コンシューマに提供される能力は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをコンシューマがデプロイして動作させることが可能な、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングすることである。コンシューマは、基盤となるクラウド・インフラストラクチャを管理も制御もしないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションを制御し、場合によっては選択したネットワーキング・コンポーネント(たとえば、ホスト・ファイアウォール)を限定的に制御する。
【0077】
デプロイメント・モデルは以下の通りである。
【0078】
プライベート・クラウド:クラウド・インフラストラクチャは組織専用に運用される。これは組織または第三者によって管理され得、構内または構外に存在し得る。
【0079】
コミュニティ・クラウド:クラウド・インフラストラクチャはいくつかの組織によって共有され、共通の懸念(たとえば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項)を有する特定のコミュニティをサポートする。これは組織または第三者によって管理され得、構内または構外に存在し得る。
【0080】
パブリック・クラウド:クラウド・インフラストラクチャは、一般大衆または大規模な業界団体に対して利用可能にされ、クラウド・サービスを販売する組織によって所有される。
【0081】
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データおよびアプリケーションの移植性を可能にする標準化技術または独自技術(たとえば、クラウド間の負荷分散のためのクラウド・バースティング)によって結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)を合成したものである。
【0082】
クラウド・コンピューティング環境は、ステートレス性、低結合性、モジュール性、および意味論的相互運用性に重点を置いたサービス指向型である。クラウド・コンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0083】
図6は、本発明の少なくとも1つの実施形態によるクラウド・コンピューティング環境50を示すブロック図である。クラウド・コンピューティング環境50は1つまたは複数のクラウド・コンピューティング・ノード10を含み、これらを使用して、たとえば、パーソナル・デジタル・アシスタント(PDA)もしくは携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはそれらの組み合わせなどの、クラウド・コンシューマによって使用されるローカル・コンピューティング・デバイスが通信し得る。ノード10は相互に通信し得る。これらは、たとえば、上述のプライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウド、またはこれらの組み合わせなどの1つまたは複数のネットワークにおいて、物理的または仮想的にグループ化され得る(図示せず)。これにより、クラウド・コンピューティング環境50は、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを維持管理する必要がない、インフラストラクチャ・アズ・ア・サービス、プラットフォーム・アズ・ア・サービス、またはソフトウェア・アズ・ア・サービス、あるいはそれらの組み合わせを提供することが可能になる。
図6に示したコンピューティング・デバイス54A~Nのタイプは例示的なものにすぎないことが意図されており、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意のタイプのネットワークまたはネットワーク・アドレス指定可能接続(たとえば、Webブラウザを使用)あるいはその両方を介して任意のタイプのコンピュータ化デバイスと通信できることを理解されたい。
【0084】
図7は、本発明の少なくとも1つの実施形態による、
図6に示すクラウド・コンピューティング環境50によって提供される機能的抽象化モデル・レイヤのセットを示すブロック図である。
図7に示したコンポーネント、レイヤ、および機能は例示的なものにすぎないことを意図しており、本発明の実施形態はこれらに限定されないことを事前に理解されたい。図示のように、以下のレイヤおよび対応する機能が提供される。
【0085】
ハードウェアおよびソフトウェア・レイヤ60は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例には、メインフレーム61、RISC(縮小命令セット・コンピュータ:Reduced Instruction Set Computer)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーキング・コンポーネント66が含まれる。いくつかの実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
【0086】
仮想化レイヤ70は抽象化レイヤを提供し、抽象化レイヤから、仮想エンティティの以下の例、すなわち、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75が提供され得る。
【0087】
一例では、管理レイヤ80は、下記の機能を提供し得る。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよび他のリソースの動的調達を提供する。計量および価格決定82は、クラウド・コンピューティング環境内でリソースが利用されたときの費用追跡と、これらのリソースの消費に対する会計または請求とを提供する。一例では、これらのリソースはアプリケーション・ソフトウェア・ライセンスを含み得る。セキュリティは、クラウド・コンシューマおよびタスクに対する同一性検証だけでなく、データおよび他のリソースに対する保護も提供する。ユーザ・ポータル83は、コンシューマおよびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84は、要求されたサービス・レベルが満たされるような、クラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス・レベル合意(SLA:Service Level Agreement)の計画および履行85は、SLAによれば将来要求されると予想されるクラウド・コンピューティング・リソースの事前手配および調達を提供する。
【0088】
ワークロード・レイヤ90は、クラウド・コンピューティング環境が利用され得る機能性の例を提供する。このレイヤから提供され得るワークロードおよび機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育配信93、データ分析処理94、取引処理95、およびキュービット表現プログラム101が含まれる。