(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-05-30
(54)【発明の名称】パルス生成
(51)【国際特許分類】
G06N 10/80 20220101AFI20230523BHJP
【FI】
G06N10/80
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022557199
(86)(22)【出願日】2021-03-24
(85)【翻訳文提出日】2022-10-27
(86)【国際出願番号】 US2021023861
(87)【国際公開番号】W WO2021195197
(87)【国際公開日】2021-09-30
(32)【優先日】2020-03-24
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520132894
【氏名又は名称】イオンキュー インコーポレイテッド
(74)【代理人】
【識別番号】100120891
【氏名又は名称】林 一好
(74)【代理人】
【識別番号】100165157
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100205659
【氏名又は名称】齋藤 拓也
(74)【代理人】
【識別番号】100126000
【氏名又は名称】岩池 満
(74)【代理人】
【識別番号】100185269
【氏名又は名称】小菅 一弘
(72)【発明者】
【氏名】チャップリン ヴァンディヴァー
(72)【発明者】
【氏名】アミニ ジェイソン
(57)【要約】
パルス生成のためのシステム及び技術を提供する。古典計算装置は、量子演算を含むプログラムソースコードを受信してもよい。プログラムソースコードは、1つ以上の量子演算を含むコンパイル済プログラムにコンパイルされてもよい。パルス形状ライブラリが示すパルス形状が量子演算のそれぞれに対応することを決定してもよい。パルス形状ライブラリが示す1つ以上のパルス形状が量子演算のそれぞれに対応することに基づいて、パルス命令を生成してもよい。バイナリ形式命令をパルス命令に基づいて生成してもよい。バイナリ形式命令は、量子計算装置のフィールドプログラマブルゲートアレイ(FPGA)のバイナリコードを用いて、パルス命令をバイナリパケットで符号化してもよい。
【選択図】
図2
【特許請求の範囲】
【請求項1】
データ処理装置によって実行されるコンピュータ実装方法であって、
古典計算装置で、1つ以上の量子演算を含むプログラムソースコードを受信するステップと、
前記プログラムソースコードを、前記1つ以上の量子演算を含むコンパイル済プログラムにコンパイルするステップと、
パルス形状ライブラリが示す1つ以上のパルス形状が前記1つ以上の量子演算のそれぞれに対応することを決定するステップと、
前記パルス形状ライブラリが示す前記1つ以上のパルス形状が前記1つ以上の量子演算のそれぞれに対応することに基づいて、パルス命令を生成するステップと、
を含む、方法。
【請求項2】
パルス形状ライブラリが示す1つ以上のパルス形状が前記1つ以上の量子演算のそれぞれに対応することを決定するステップは、
前記コンパイル済プログラムから前記1つ以上の量子演算のうちの1つを検索するステップと、
前記1つ以上の量子演算のうちの前記1つを前記パルス形状ライブラリでルックアップするステップと、
前記パルス形状ライブラリから、前記量子演算に対応する1つ以上のパルス形状を検索するステップと、
をさらに含む、請求項1に記載の方法。
【請求項3】
前記パルス形状ライブラリが示す前記1つ以上のパルス形状が前記1つ以上の量子演算のそれぞれに対応することに基づいて、パルス命令を生成するステップは、前記1つ以上のパルス形状を量子計算装置の1つ以上のパラメータ及び1つ以上の値と組み合わせるステップをさらに含み、前記1つ以上の値の少なくとも1つは、前記量子計算装置のレーザ変調システムの構成要素の表示からなる、請求項1に記載の方法。
【請求項4】
前記パルス命令に基づいてバイナリ形式命令を生成するステップであって、前記バイナリ形式命令が、量子計算装置のフィールドプログラマブルゲートアレイ(FPGA)のバイナリコードを用いてバイナリパケットで前記パルス命令を符号化する、ステップ
をさらに含む、請求項1に記載の方法。
【請求項5】
前記バイナリ形式命令を前記量子計算装置の前記FPGAに送信するステップであって、前記量子計算装置は、1つ以上のレーザと、前記FPGAによって制御されるレーザ変調システムとを備え、前記レーザからのレーザ光は、前記バイナリ形式命令に基づいて前記レーザ変調システムによってレーザパルスとして1つ以上のトラップイオンへ向けられる、ステップ
をさらに含む、請求項4に記載の方法。
【請求項6】
前記プログラムソースコードは、古典演算及び量子演算を含む、請求項1に記載の方法。
【請求項7】
前記パルス形状ライブラリは、量子演算のリストと、前記量子演算に対応するパルス形状とを備え、前記パルス形状は、レーザによって生成され、トラップイオンに向けられたときに、前記量子演算を実装する完全なパルス形状である、請求項1に記載の方法。
【請求項8】
前記古典計算装置上の通信インターフェースを介して、量子計算装置のパラメータを受信するステップ
をさらに含む、請求項1に記載の方法。
【請求項9】
コンピュータ実装システムであって、
1つ以上の量子演算を含むプログラムソースコードを受信し、前記プログラムソースコードを前記1つ以上の量子演算を含むコンパイル済プログラムにコンパイルし、パルス形状ライブラリが示す1つ以上のパルス形状が前記1つ以上の量子演算のそれぞれに対応することを決定し、前記パルス形状ライブラリが示す前記1つ以上のパルス形状が前記1つ以上の量子演算のそれぞれに対応することに基づいて、パルス命令を生成する古典計算装置と、
レーザ光を発生させる1つ以上のレーザと、前記レーザ光を1つ以上のトラップイオンに向けるレーザ変調システムと、前記古典計算装置から受信したバイナリ形式命令に基づいて前記1つ以上のレーザ及び前記レーザ変調システムを制御するFPGAと、を備える量子計算装置と、
を備える、システム。
【請求項10】
前記古典計算装置は、パルス形状ライブラリが示す1つ以上のパルス形状が前記1つ以上の量子演算のそれぞれに対応することを、
前記コンパイル済プログラムから前記1つ以上の量子演算のうちの1つを検索し、
前記1つ以上の量子演算のうちの前記1つを前記パルス形状ライブラリでルックアップし、
前記パルス形状ライブラリから、前記量子演算に対応する1つ以上のパルス形状を検索することによって決定する、請求項9に記載のシステム。
【請求項11】
前記古典計算装置は、前記パルス形状ライブラリが示す前記1つ以上のパルス形状が前記1つ以上の量子演算のそれぞれに対応することに基づいて、パルス命令を、前記1つ以上のパルス形状を量子計算装置の1つ以上のパラメータ及び1つ以上の値と組み合わせることによって生成し、前記1つ以上の値の少なくとも1つは、前記量子計算装置の前記レーザ変調システムの構成要素の表示からなる、請求項9に記載のシステム。
【請求項12】
前記古典計算装置は、前記パルス命令に基づいて前記バイナリ形式命令をさらに生成し、前記バイナリ形式命令は、前記量子計算装置の前記FPGAのバイナリコードを用いて前記パルス命令をバイナリパケットで符号化する、請求項9に記載のシステム。
【請求項13】
前記古典計算装置は、さらに前記バイナリ形式命令を前記量子計算装置の前記FPGAに送信する、請求項12に記載のシステム。
【請求項14】
前記プログラムソースコードは、古典演算及び量子演算を含む、請求項13に記載のシステム。
【請求項15】
前記パルス形状ライブラリは、量子演算のリストと、前記量子演算に対応するパルス形状とを備え、前記パルス形状は、レーザによって生成されたレーザ光が前記パルス形状に変調されて、トラップイオンに向けられたときに、前記量子演算を実装する完全なパルス形状である、請求項9に記載のシステム。
【請求項16】
前記古典計算装置は、さらに前記古典計算装置上の通信インターフェースを介して前記量子計算装置のパラメータを受信する、請求項9に記載のシステム。
【請求項17】
1つ以上のコンピュータと、操作可能な命令を格納する1つ以上のストレージ装置と、を備えるシステムであって、前記命令は、前記1つ以上のコンピュータによって実行されたとき、前記1つ以上のコンピュータに、
古典計算装置で、1つ以上の量子演算を含むプログラムソースコードを受信するステップと、
前記プログラムソースコードを、前記1つ以上の量子演算を含むコンパイル済プログラムにコンパイルするステップと、
パルス形状ライブラリが示す1つ以上のパルス形状が前記1つ以上の量子演算のそれぞれに対応することを決定するステップと、
前記パルス形状ライブラリが示す前記1つ以上のパルス形状が前記1つ以上の量子演算のそれぞれに対応することに基づいて、パルス命令を生成するステップと、
を含む操作を実行させる、システム。
【請求項18】
前記1つ以上のコンピュータによって実行されたとき、前記1つ以上のコンピュータに、パルス形状ライブラリが示す1つ以上のパルス形状が前記1つ以上の量子演算のそれぞれに対応することを決定するステップを含む操作を実行させるようにする操作可能な前記命令は、前記1つ以上のコンピュータによって実行されたとき、前記1つ以上のコンピュータに、
前記コンパイル済プログラムから前記1つ以上の量子演算のうちの1つを検索するステップと、
前記1つ以上の量子演算のうちの前記1つを前記パルス形状ライブラリでルックアップするステップと、
前記パルス形状ライブラリから、前記量子演算に対応する1つ以上のパルス形状を検索するステップと、
を含む操作を実行させる操作可能な前記命令をさらに含む、請求項17に記載のシステム。
【請求項19】
前記1つ以上のコンピュータによって実行されたとき、前記1つ以上のコンピュータに、前記パルス形状ライブラリが示す前記1つ以上のパルス形状が前記1つ以上の量子演算のそれぞれに対応することに基づいてパルス命令を生成するステップを含む操作を実行させるようにする操作可能な前記命令は、前記1つ以上のコンピュータによって実行されたとき、前記1つ以上のコンピュータに、前記1つ以上のパルス形状を量子計算装置の1つ以上のパラメータ及び1つ以上の値と組み合わせるステップであって、前記1つ以上の値の少なくとも1つは、前記量子計算装置のレーザ変調システムの構成要素の表示からなる、ステップ
を含む操作を実行させる操作可能な前記命令をさらに含む、請求項17に記載のシステム。
【請求項20】
前記1つ以上のコンピュータによって実行されたとき、前記1つ以上のコンピュータに、前記パルス命令に基づいてバイナリ形式命令を生成するステップであって、前記バイナリ形式命令が、量子計算装置のフィールドプログラマブルゲートアレイ(FPGA)のバイナリコードを用いてバイナリパケットで前記パルス命令を符号化する、ステップ、を含む操作を実行させる操作可能な前記命令をさらに含む、請求項17に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パルス生成のシステム及び技術に関する。
【背景技術】
【0002】
トラップイオン量子コンピュータは、レーザ及び/又はマイクロ波を用いて操作することができる。レーザ及び/又はマイクロ波を使用して、トラップイオンの状態を制御及び測定することも、量子計算操作を実行することもできる。トラップイオンに向けられたレーザ光は、異なる量子計算操作を実行するために、特定のパターンでパルス化又は変調される必要がある場合がある。トラップイオン量子コンピュータ上で実行するように書かれたプログラムには、レーザ変調システムの操作に関する命令を含める必要がある場合があり、これにより、プログラム中の量子計算操作を実行するのに適切なパルスが生成される。
【0003】
開示される主題の実施態様によれば、古典計算装置は、量子演算を含むプログラムソースコードを受信してもよい。プログラムソースコードは、1つ以上の量子演算を含むコンパイル済プログラムにコンパイルされてもよい。パルス形状ライブラリが示すパルス形状が量子演算のそれぞれに対応することを決定してもよい。パルス形状ライブラリが示す1つ以上のパルス形状が量子演算のそれぞれに対応することに基づいて、パルス命令を生成してもよい。バイナリ形式命令は、パルス命令に基づいて生成されてもよい。バイナリ形式命令は、量子計算装置のフィールドプログラマブルゲートアレイ(FPGA)のバイナリコードを用いて、パルス命令をバイナリパケットで符号化してもよい。
【0004】
本明細書に開示されるシステム及び技術によって、パルス生成を可能にすることができる。開示される主題の追加の特徴、利点、及び実施形態は、以下の詳細な説明、図面、及び特許請求の範囲を考慮することで、規定又は明確化することができる。さらに、上述の概要と以下の詳細な説明の両方は例であり、特許請求の範囲を限定することなく、さらなる説明を提供することを意図していることが理解されるべきである。
【図面の簡単な説明】
【0005】
添付の図面は、開示される主題のさらなる理解を提供するために含まれ、本明細書に組み込まれ、その一部を構成する。図面は、また開示される主題の実施形態を示し、詳細な説明と共に、開示される主題の実施形態の原理を説明するのに役立つ。開示される主題及びそれが実施され得る様々な方法の基本的な理解に必要とされ得るよりも詳細に、構造的な詳細を示す試みはなされない。
【0006】
【
図1】開示される主題の実施態様によるパルス生成に適した例示的なシステムを示す。
【
図2】開示される主題の実施態様によるパルス生成に適した例示的な配置を示す。
【
図3A】開示される主題の実施態様によるパルス生成に適した例示的な配置を示す。
【
図3B】開示される主題の実施態様によるパルス生成に適した例示的な配置を示す。
【
図4】開示される主題の実施態様によるパルス生成に適した例示的な配置を示す。
【
図5】開示される主題の実施態様によるパルス生成に適した例示的な配置を示す。
【
図6】開示される主題の実施態様によるパルス生成に適した例示的な手順を示す。
【
図7】開示される主題の実施態様によるパルス生成に適した例示的な手順を示す。
【
図8】開示される主題の実施態様によるコンピュータを示す。
【
図9】開示される主題の実施態様によるネットワーク構成を示す。
【発明を実施するための形態】
【0007】
本明細書に開示される実施形態によれば、パルス生成は、レーザ及びレーザ変調システムを制御して量子演算を実行するための命令を生成するために使用されてもよい。レーザ及びレーザ変調システムは、例えば、トラップイオン量子計算装置の構成要素であってもよい。プログラムは、量子計算で用いられる量子演算を含んでもよい。プログラムは、古典演算と量子演算の両方を含むハイブリッドプログラムであってもよいし、量子演算のみを含むプログラムであってもよい。プログラム中の量子演算は、パルス形状のライブラリでルックアップされてもよい。量子計算装置のレーザ及びレーザ変調システムに量子演算を実行させるための適切なパルス形状が、ライブラリから選択されてもよい。パルス形状のライブラリから選択されたパルス形状は、量子計算装置及びその構成要素の較正及び環境パラメータに基づいて設定され得るパラメータを有してもよい。選択されたパルス形状を、そのパラメータと一緒に使用して、命令を生成してもよく、その命令を使用して、量子計算装置のレーザ変調システムを制御して、量子計算装置のレーザによって生成されたレーザ光を使用してトラップイオンにレーザパルスを向けることによって、プログラムから量子演算を実行してもよい。いくつかの実装では、パルスプリミティブの集合を使用して、量子計算装置のレーザを制御するために使用される命令を生成してもよい。
【0008】
トラップイオン量子計算装置などの量子計算装置を実行することを意図したプログラムは、量子演算を含んでもよい。プログラムは、量子演算のみを使用する量子プログラムであってもよいし、古典演算と量子演算の両方を使用するハイブリッドプログラムであってもよい。例えば、プログラムは、ハイブリッドプログラムであってもよく、これは、任意の適切な通信インターフェースを介して量子計算装置と通信可能な古典計算装置上で実行されてもよい。ハイブリッドプログラムが実行される場合、古典演算は古典計算装置上で実行されてもよく、量子演算は量子計算装置に送信されてもよく、量子計算装置は、通信インターフェースを介して古典プログラムへ量子演算の結果を返してもよい。量子プログラムは、古典計算装置との通信インターフェースを介して直接量子計算装置で実行されるように送信されてもよく、量子演算の結果は、古典計算装置上で実行される通信インターフェースの一部に返されてもよい。プログラムは、任意の適切な言語で書いてもよい。
【0009】
プログラムの量子演算は、任意の適切な方法で指定されてもよく、例えば、量子計算言語若しくは量子計算構文、又は古典プログラミング言語の拡張を使用することを含む。プログラムの量子演算は、初期化及び測定演算、並びに量子回路の形成にも用いられ得る量子ゲートを用いて指定される演算を含んでもよい。量子ゲートは、量子ゲートが適用される量子計算装置の量子ビットを指定することができる。トラップイオン量子計算装置において、各トラップイオンは、単一の量子ビットの状態を格納してもよく、量子ゲートは、例えば、複数の量子ビット上で動作する量子ゲートを実装するためにイオンを絡める、レーザ光のパルスをトラップイオンに適用する量子計算装置のレーザを介して量子ビットに適用されてもよい。レーザ光は、レーザ変調システムの構成要素に向けてもよい。レーザ光は、レーザ変調システムを用いてパルス化され、レーザパルスを生成してもよい。レーザパルスは、レーザによって生成されたレーザ光のレーザ変調システムによるパルス化、整形、及び変調から生じてもよく、トラップイオンに影響を与える古典演算及び量子演算の両方で使用されてもよい。レーザ変調システムは、例えば、音響光学変調器、電気光学変調器、物理光学構成要素、電子ゲーティング、及び全ての関連する機械的又は電子的に駆動するサブ構成要素を含む、任意の適切なハードウェア装置及び構成要素を含んでもよいレーザ変調システムは、また、レーザの代わりに、又はレーザと組み合わせて、任意の適切なマイクロ波発生ハードウェアによって生成されるマイクロ波を使用してもよい。トラップイオン量子計算装置のレーザを使用して、量子ビットに量子ゲートを適用する前にトラップイオンの量子ビットの状態を初期化することも、量子ビットに量子ゲートを適用した後にトラップイオンの量子ビットの状態を測定することもできる。
【0010】
量子演算を含むプログラムは、実行前にコンパイルされてもよい。例えば、プログラムのソースコードは、ハイブリッド又は量子プログラム用のコンパイラを実行する古典計算装置上でコンパイルされてもよい。プログラム中の量子演算は、コンパイル済プログラムが任意のタイプの量子計算装置で使用されることを可能にし得る形式にコンパイルされてもよい。コンパイル済プログラム中の量子演算は、トラップイオン量子計算装置上で実行されるように特別にコンパイルされなくてもよい。
【0011】
コンパイル済プログラムの量子演算を使用して、パルス形状ライブラリで量子演算をルックアップすることにより、量子計算装置のレーザ及びレーザ変調システムを制御する命令を生成することができる。これにより、コンパイル済プログラムの量子演算を、トラップイオン量子計算装置で実行することができるようなる。パルス形状ライブラリは、完全なパルス形状を含み得るデータベースであってもよい。パルス形状ライブラリ内の完全なパルス形状は、量子演算に対応してもよく、その量子演算には、初期化及び測定操作、ならびに量子ゲートを量子ビットに適用する操作が含まれる。完全なパルス形状は、演算を実行するトラップイオンに向けられたレーザパルスを指定してもよい。コンパイル済プログラムからの量子演算をパルス形状ライブラリでルックアップして、各量子演算に対応するパルス形状を決定してもよい。量子演算に対応するパルス形状は、トラップイオン量子計算装置のレーザからのレーザ光を変調することによって、トラップイオン量子計算装置のレーザ変調システムにそれらのパルス形状を有するパルスを生成させることができるパルス命令を生成するために使用されてもよい。パルス形状ライブラリからのパルス形状は、量子計算装置のパラメータに基づいて調整され、レーザによって生成される最終的なパルス形状を生成することができる。パラメータは、例えば、レーザ、レーザ変調システム、及びミラーを含む量子計算装置の様々な構成要素の較正パラメータ、並びに量子計算装置の環境パラメータを含んでもよい。パラメータは、例えば、量子計算装置の測定装置による理論的導出又は経験的測定によって決定されてもよく、いくつかのパラメータは一定であってもよく、他のパラメータは頻繁に更新されてもよい。パルス命令は、任意の適切な形態で生成されてもよい。例えば、パルス命令は、人間可読形式で生成されてもよい。人間可読パルス命令は、人間が人間可読パルス命令からパルス形状を再現することができるように、パルス形状のパラメータ及びパルス形状の生成の望ましいタイミングを含む、生成されるべきパルス形状を記述するテキストを含んでもよい。パルス形状は、これらの人間可読パルス命令の形態でパルス形状ライブラリに格納されてもよい。
【0012】
バイナリ形式命令は、パルス命令から生成されてもよい。バイナリ形式命令は、フィールドプログラマブルゲートアレイ(FPGA)を制御するために使用され得る一連のバイナリパケットであってもよく、次いで、FPGAは、量子計算装置のレーザ及びレーザ変調システムを制御してもよい。バイナリパケットは、量子計算装置のFPGAに固有であり得るバイナリコードを使用して生成されてもよい。例えば、バイナリ形式命令を生成するために使用されるコンパイラ又は変換器は、パルス形状ライブラリ内のパルス形状のそれぞれに対応するバイナリコードと、パルス形状に対するパラメータ及びタイミングのバイナリ符号化とを含んでもよい。パルス命令から生成された各バイナリパケットは、パルス命令で指定されたパルス形状の1つについて、パルス形状のためのパラメータ及びタイミングを含むパルス形状を指定してもよい。バイナリパケットは、全てが同じビット数を含む同じ長さであってもよい。
【0013】
いくつかの実装では、パルス形状は、パルスプリミティブを使用して生成されることがある。古典計算装置上で実行されるインターフェースによって、パルスプリミティブに基づくパルス形状の指定が可能になってもよい。パルスプリミティブは、例えば、振幅、幅、パルスの各側の遅延、タイミング、パルスタイプ(例えば、ボックスパルスタイプ又は曲線パルスタイプ)、及び他の適切なパラメータを含むパルス形状の様々な態様を含んでもよい。パルス文法を使用して、様々なパルスプリミティブとパルスプリミティブに割り当てられた値を用いるパルス形状を指定してもよい。これにより、任意のパルス形状を直接指定して、任意の量子演算を実施することができる場合がある。パルス文法を使用して、パルス命令を直接書いてもよい。
【0014】
バイナリ形式命令は、パルスプリミティブとパルス文法を用いて生成したパルス命令から生成してもよい。例えば、バイナリ形式命令を生成するために使用されるコンパイラ又は変換器は、パルス文法で使用されるパルスプリミティブのそれぞれとパルスプリミティブに割り当てられた値に対応するバイナリコードを含んでもよい。パルス命令から生成された各バイナリパケットは、パルスプリミティブ及びパルス文法を用いて指定されたパルス形状の1つについて、パルス形状に対するパラメータ及びタイミングを含むパルス形状を指定してもよい。バイナリパケットは、全てが同じビット数を含む同じ長さであってもよい。
【0015】
バイナリ形式命令を使用して、量子計算装置のレーザ及びレーザ変調システムにパルス形状を生成させてもよい。例えば、バイナリ形式命令は、古典計算装置から量子計算装置のFPGAに通信インターフェースを介して送信されてもよい。FPGAは、量子計算装置のレーザ及びレーザ変調システムに接続されてもよく、レーザと通信し、レーザの動作を制御してもよい。FPGAは、バイナリ形式命令のバイナリパケットを量子計算装置のレーザ及びレーザ変調システムのための命令に変換してもよい。FPGAは、レーザのオン/オフのタイミング、及びレーザのパワーレベルを制御してもよく、例えば、音響光学変調器、電気光学変調器、レンズ及びミラーを含む物理光学機器、電子ゲート、並びに任意の他の適切な機械又は電子部品及びサブ部品を含むレーザ変調システムの装置を制御してもよく、マイクロ波を使って動作し、バイナリ形式命令のバイナリパケットに指定されたパルス形状を有するパルスを発生させてもよい。パルス形状は、レーザ光の振幅、位相、及び/又は周波数の静的又は時間依存的な変調から生じる信号であってもよい。これにより、レーザ及びレーザ変調システムは、プログラムの初期化、測定、及び量子ゲートなどの量子演算を、量子計算装置のトラップイオンに適用することができる。バイナリ形式命令に従ってレーザによって行われたトラップイオンの測定は、FPGAに返され、量子演算の結果がFPGAから古典計算装置上の通信インターフェースに返されることを可能にしてもよい。量子演算の結果は、例えば、古典計算装置上で依然として実行され得るハイブリッドプログラムに返されてもよく、このハイブリッドプログラムは、量子演算の結果に対して古典演算を実行してもよい。量子演算の結果は、量子プログラムの結果であってよく、例えば、古典計算装置上で、古典計算プログラムへのデータ入力として格納、表示、及び/又は使用されてもよい。
【0016】
図1は、開示された主題の実施態様によるパルス生成に適した例示的なシステムを示す。古典計算装置100は、コンパイラ110、パルス形状変換器120、バイナリコードコンパイラ130、通信インターフェース140、及びストレージ150を含んでもよい。古典計算装置100は、古典計算を実行し、コンパイラ110、パルス形状変換器120、バイナリコードコンパイラ130、通信インターフェース140、及びストレージ150を実装するための、例えば、
図8に記載のコンピュータ20など、任意の適切な装置であってもよい。古典計算装置100は、単一の計算装置であってもよく、又は接続された複数の計算装置を含んでもよく、例えば、ラップトップ、デスクトップ、個々のサーバ、サーバファーム、又は分散サーバシステムであってもよく、あるいは仮想計算装置又はシステムであってもよい。古典計算装置100は、コンピューティングシステム及びネットワークインフラストラクチャの一部であってもよく、あるいはコンピューティングシステム及びネットワークインフラストラクチャに接続されてもよい。コンパイラ110は、ハイブリッドプログラム及び量子プログラムのソースコードを含むプログラムソースコードをコンパイルするためのハードウェア及びソフトウェアの任意の好適な組合せであってもよい。パルス形状変換器120は、パルス命令を生成するために、ストレージ150に格納されたパルス形状ライブラリ152を使用して、コンパイル済プログラムに含まれる量子演算をパルス形状に変換するためのハードウェアとソフトウェアの任意の好適な組合せであってもよい。バイナリコードコンパイラ130は、パルス命令を、パルス形状を指定するバイナリパケットを含むバイナリ形式命令にコンパイルするためのハードウェアとソフトウェアの任意の好適な組合せであってもよい。通信インターフェース140は、古典計算装置100と量子計算装置との間の通信を可能にするためのハードウェアとソフトウェアとの任意の好適な組合せであってもよい。ストレージ150は、例えば、パルス形状ライブラリ152を格納することができる、揮発性ストレージと不揮発性ストレージとの任意の好適な組合せを実装するためのハードウェア及びソフトウェアの任意の好適な組合せであってもよい。
【0017】
コンパイラ110は、ハイブリッドプログラム及び量子プログラムを含むプログラムをコンパイルするためのハードウェア及びソフトウェアの任意の好適な組合せであってよい。コンパイラ110は、例えば、コンパイラ又はインタプリタであってもよく、それは、任意の適切なプログラミング言語で書かれたプログラムのソースコード上で動作してもよく、量子演算を含んでもよい。プログラムは、例えば、古典演算及び量子演算の両方を含み得るハイブリッドプログラムであっても、あるいは量子演算のみを含み得る量子プログラムであってもよい。コンパイラ110は、コンパイラ110に入力されたプログラムに対するソースコードから、コンパイル済プログラムを生成してもよい。
【0018】
パルス形状変換器120は、パルス命令を生成するためにパルス形状ライブラリ152を用いてコンパイル済プログラムに含まれる量子演算をパルス形状に変換するためのハードウェアとソフトウェアの任意の好適な組合せであってもよい。パルス形状変換器120は、例えば、パルス形状ライブラリ152内のコンパイル済プログラムに含まれる量子演算をルックアップして、トラップイオン量子計算装置のレーザを使用して量子演算を実装するための適切なパルス形状を決定してもよい。パルス形状変換器120は、量子計算装置について測定された環境パラメータに基づいて設定されたタイミング及び他のパラメータと共に、これらのパルス形状を含むパルス命令を生成してもよい。パルス命令は、人間可読形式であってもよい。パルス形状変換器120は、例えば、コンパイラ110によって利用され得るミドルウェアとして、あるいは古典計算装置100上でのコンパイル済プログラムの実行中に、コンパイル済プログラムの実行が量子演算に達したときに呼び出され得るミドルウェアとして動作してもよい。
【0019】
バイナリコードコンパイラ130は、パルス命令を、パルス形状を指定するバイナリパケットを含むバイナリ形式命令にコンパイルするためのハードウェアとソフトウェアの任意の好適な組合せであってもよい。バイナリコードコンパイラ130は、例えば、パルス命令で指定された各パルス形状に対してバイナリパケットを生成することによって、パルス形状変換器120によって生成されたパルス命令をバイナリ形式命令に翻訳又はコンパイルしてもよい。バイナリパケットは、量子計算装置のレーザを制御するFPGAによって使用されるカスタムバイナリコードに基づいて生成されてもよい。
【0020】
通信インターフェース140は、古典計算装置100と量子計算装置との間の通信を可能にするためのハードウェア及びソフトウェアの任意の好適な組合せであってもよい。通信インターフェース140によって、例えば、古典計算装置100が量子計算装置の様々な構成要素にデータを送信し、そこからデータを受信することが可能になってもよい。量子計算装置に送信されるデータは、例えば、量子計算装置の動作を制御するために量子計算装置のハードウェア構成要素に送信される命令を含んでも、量子計算装置のFPGAに送信されるバイナリ形式命令を含んでもよい。量子計算装置から受信したデータは、例えば、測定装置によって取得された量子計算装置の様々な較正及び環境パラメータの測定値、モータ制御ミラーの現在の位置などの量子計算装置のハードウェア構成要素の状態、量子計算装置のカメラからの画像、及び、例えば、量子計算装置のレーザによって測定され、量子計算装置が実行した量子演算の結果を含んでもよい。通信インターフェース140は、ハイブリッドプログラムで使用されても、量子プログラムで使用されてもよく、ハイブリッドプログラムは、ハイブリッドプログラムの量子演算を実行し、量子計算装置にバイナリ形式命令を送信して、通信インターフェース140を介して結果を受信してもよく、量子プログラムは、通信インターフェース140を介して量子計算装置に直接送信してもよく、その結果を通信インターフェース140によって受信してもよい。
【0021】
ストレージ150は、古典計算装置100に接続された任意の適切なストレージハードウェアであってよい。例えば、ストレージ150は、フラッシュメモリモジュール又はソリッドステートディスクなどの古典計算装置の構成要素であってもよく、あるいは任意の適切な有線又は無線接続を介して古典計算装置100に接続されてもよい。ストレージ150は、ローカルストレージであっても、すなわち、古典計算装置100が動作する環境内であってもよく、あるいはリモートサービスによって部分的又は全体的に動作されてもよい。ストレージ150は、パルス形状ライブラリ152を格納してもよい。パルス形状ライブラリ152は、トラップイオン量子計算装置のレーザを使用して量子演算を実装するために使用され得るパルス形状のデータベースを含んでもよい。パルス形状は、例えば、人間可読テキストベースの記述を含む、任意の適切な形式でパルス形状ライブラリ152に格納されてもよい。パルス形状は、調整なしで使用可能であり得る完成されたパルス形状であってもよいが、パルス形状を調整するためにその値が調整され得るパラメータと関連付けられてもよい。パルス形状は、パルス形状が実装する量子演算(初期化及び測定演算、量子ゲートなど)と関連付けられてもよく、その結果、量子演算が、その量子演算を実装するパルス形状を検索するためにパルス形状ライブラリ152でルックアップされてもよい。
【0022】
図2は、開示された主題の実施態様によるパルス生成に適した例示的な配置を示す。プログラムソースコードは、コンパイラ110に入力されてもよい。プログラムソースコードは、古典演算と量子演算の両方を含むハイブリッドプログラムのソースコードであってもよいし、量子演算のみを含む量子プログラムのソースコードであってもよい。プログラムソースコードは、例えば、古典計算装置100上で実行される統合開発環境を介してなど、任意の適切な方法でコンパイラ110に入力されてもよい。
【0023】
コンパイラ110は、コンパイル済プログラムをパルス形状変換器120に出力してもよい。コンパイラ110は、任意の適切な方法でプログラムソースコードをコンパイルしてもよい。例えば、ハイブリッドプログラムは、コンパイラ110が古典演算のためのコードと共に単一のバイナリ実行ファイルにコンパイルすることができる量子演算のための構文を用いて書かれてもよい。また、コンパイラ110は、例えば、コンパイル済プログラムを、16進ビューアを通して見たときに、量子演算が、例えば、可読テキストとして現れるように、量子演算を変更せずにコンパイル済プログラムに挿入してもよい。
【0024】
パルス形状変換器120は、コンパイル済プログラムに含まれる量子演算をパルス形状ライブラリ152でルックアップしてもよい。パルス形状変換器120は、コンパイル済プログラムに含まれる量子演算のための適切なパルス形状を検索してもよい。また、パルス形状変換器120は、通信インターフェース140からパラメータを受信してもよい。パラメータは、例えば、プログラムソースコードで指定された量子演算を実行するために使用される量子計算装置について測定された環境パラメータであっても、較正パラメータなどの他のパラメータであってもよい。パルス形状変換器120は、パラメータをパルス形状ライブラリ152からのパルス形状と組み合わせて、パルス命令を生成してもよい。パルス命令は、例えば、人間可読形式など、任意の適切な形式であってよい。パルス命令は、プログラムソースコードから量子演算を実行するために量子計算装置のレーザによって生成され得るパルスのそれぞれを指定し得る命令を含んでもよい。パルス命令は、パルスに対するタイミングを含んでもよい。
【0025】
パルス形状変換器120は、パルス命令をバイナリコードコンパイラ130に出力してもよい。バイナリコードコンパイラ130は、パルス命令からバイナリ形式命令を生成してもよい。バイナリコードコンパイラ130は、パルス命令に含まれるパルスの命令のそれぞれについて、バイナリパケットを生成してもよい。各バイナリパケットは、プログラムソースコードから量子演算を実行するために、量子計算装置のFPGAに、量子計算装置のレーザを制御させて、パルス形状変換器120に入力されたパラメータによって修正された、パルス形状ライブラリ152からのパルス形状でパルスを生成するために使用され得るバイナリコードであってもよい。バイナリ形式命令は、生成された後、例えば、コンパイル済プログラムによって使用され得るストレージ150に格納されてもよいし、あるいは実行のために量子計算装置に送信されるように通信インターフェース140に送信されてもよい。
【0026】
図3Aは、開示された主題の実施態様によるパルス生成に適した例示的な配置を示す。コンパイラ110によって生成されたコンパイル済プログラム310は、量子演算を含んでもよい。量子演算は、プログラムソースコードにおいて任意の適切な方法で指定されてもよく、コンパイル済プログラムにおいて任意の適切な方法で表現されてもよい。量子演算は、量子演算が適用される量子計算装置の量子ビットの仕様を含んでもよい。量子演算は、量子計算装置の任意の数の量子ビットに適用されてもよい。
【0027】
パルス形状変換器120は、パルス形状ライブラリ152において、コンパイル済プログラム310から量子演算をルックアップしてもよい。各量子演算は、対応するパルス又はそれに関連するパルスのパルス形状を有してもよい。例えば、初期化演算、測定演算、Hゲート、及びパウリゲートなどの単一の量子ビットに作用する量子演算は、単一の量子ビットに向けられた単一のレーザからの単一のパルスに対するパルス形状に関連付けられてもよい。制御ゲートなどの2つの量子ビットに作用する量子演算は、別々の量子ビットに向けられたレーザパルスのための2つのパルス形状と関連付けられてもよい。パルス形状ライブラリ152は、3つ以上の量子ビットに作用する量子演算も含め、任意の数の量子ビットに作用する量子演算を含んでもよい。パルス形状に基づいて生成されるレーザパルスは、順次であってもよいし、時間的に重なってもよい。
【0028】
コンパイル済プログラム310内の量子演算に対応するパルス形状ライブラリ152からの各別のパルス形状は、パルス形状変換器120によって適切な順序でパルス命令320に追加されてもよい。例えば、コンパイル済プログラム310における第一の量子演算は、量子計算装置の第一の量子ビットのための初期化命令であってよい。パルス形状変換器120は、パルス形状ライブラリ152で初期化演算をルックアップし、対応するパルス形状を検索してもよい。このパルス形状は、適切なパラメータ、例えば、命令のためのパルスが量子計算装置の第一のレーザによって生成されるべきであることを示すパラメータなどと共に、パルス命令320における第一の命令として追加されてもよく、これは、第一の量子ビットにパルスを向けることができる。量子計算装置の第二の量子ビットに初期化動作を実行するためのコンパイル済プログラム310内の後続の命令のためにパルス命令320に追加される命令は、同様に、初期化命令のためのパルス形状と、命令のためのパルスが量子計算装置の第二のレーザによって生成されるべきであることを示すパラメータとを使用してもよく、これは、第二の量子ビットにパルスを向けることができる。
【0029】
パルス形状変換器120は、複数の量子ビットに作用する量子演算など、実装するのに複数のパルスを必要とする量子演算のために、パルス命令320に複数の命令を追加してもよい。例えば、コンパイル済プログラム310は、量子計算装置の第一及び第二の量子ビット上で動作し得るcXゲートのための量子演算を含んでもよい。パルス形状変換器120は、パルス命令320に、第一のレーザを用いて第一の量子ビットに向けられたcX演算の成分に対するパルス形状の第一の命令と、第二のレーザを用いて第二の量子ビットに向けられたcX演算の成分に対するパルス形状の第二の命令の2つの命令を追加してもよい。パルス命令310の命令は、任意の適切なタイミング情報を含んでもよいので、例えば、cX動作のためのパルスの両方が互いに対して適切な時間に生成されて、量子計算装置の第一及び第二の量子ビットにcXゲートを実装することができる。パルス命令は、後のパルス命令に対して永続的な効果を有することがある。
【0030】
図3Bは、開示された主題の実施態様によるパルス生成に適した例示的な配置を示す。パルス命令320は、バイナリコードコンパイラ130に入力されてもよい。バイナリコードコンパイラ130は、パルス命令320の命令のそれぞれに対するバイナリパケットを含み得るバイナリ形式命令330を生成してもよい。バイナリコードコンパイラ130は、バイナリ形式命令330が送信される量子計算装置のFPGAによって使用されるバイナリコードに基づいて、バイナリパケットを生成してもよい。パルス命令から生成されるバイナリパケットは、パルス命令のパルスを生成すべきレーザの仕様を含む、パルス命令のパラメータ及びタイミング情報の全てを含んでもよい。
【0031】
図4は、開示された主題の実施態様によるパルス生成に適した例示的な配置を示す。バイナリコードコンパイラ130によって生成されたバイナリ形式命令、例えば、バイナリ形式命令330は、通信インターフェース140に送信されてもよい。バイナリ形式命令は、バイナリコードコンパイラ130から直接通信インターフェース140に送信されてもよいし、例えば、コンパイル済プログラムが古典計算装置100上で実行されるときに、格納されて、その後、送信されてもよい。通信インターフェース140は、例えば、有線又は無線ネットワーク接続を介する方法で、及び/又は直接接続による方法で、任意の適切な方法で量子計算装置400と通信してよい。
【0032】
通信インターフェース140は、バイナリ形式命令を量子計算装置400のFPGA410に送信してもよい。量子計算装置400は、例えば、トラップイオン量子計算装置400であってもよく、FPGA410と、例えば、レーザ421などの任意の適切な種類の任意の適切な数のレーザと、レーザ変調システム422と、任意の適切な数のトラップイオンを有するイオントラップ430とを含んでもよい。FPGA410は、レーザ421レーザ変調システム422の動作を制御するための任意の好適なFPGAであってもよく、レーザ421及びレーザ変調システム422と通信してもよい。バイナリ形式命令に基づいてレーザ変調システム422を制御できる可能性があるCPU、特定用途向け集積回路(ASIC)、プログラマブル論理装置(PLD)、又は他の電子装置は、FPGA422の代わりに、又はFPGA422と一緒に使用されてもよい。レーザ421は、レーザ光を発生させることができる任意の適切なレーザであってもよい。レーザ変調システム422は、レーザ光をレーザパルスに向け、パルス化し、変調する任意の適切なハードウェアであってよく、例えば、音響光学変調器、電気光学変調器、物理光学構成要素、電子ゲート、及び関連する全ての機械的又は電子的に駆動するサブ構成要素を含むハードウェアであってもよく、マイクロ波を使用して動作してもよい。レーザパルスは、イオントラップ430内のイオンに、直接的に、又はミラー及び他の光学機器を介して、向けられることがある。レーザ421のいずれかを起点とするレーザパルスは、レーザ変調システム422を介してイオントラップ430内の異なるイオンのいずれかに向けられてもよい。
【0033】
FPGA410は、通信インターフェースを介して受信したバイナリ形式の命令に従って、レーザ421を制御してレーザ光を生成し、レーザ変調システム422を制御してレーザ光を向けて、パルス化し、変調することで、レーザパルスを生成してもよい。レーザからのレーザ光は、プログラムソースコードからの量子演算を実装するために、バイナリ形式命令のバイナリパケットに符号化されたパルス形状ライブラリ152からのパルス形状を用いて、レーザ変調システム422によってイオントラップ430内のイオンに向けられることができる。
【0034】
レーザ421のいずれかによって取り込まれたイオンのいずれかに対して実行された任意の測定操作の結果は、FPGA410に返されてもよい。FPGA410は、古典計算装置100上の通信インターフェース140に結果を返してもよく、そこで、任意の適切な方法で使用されてもよい。例えば、結果は、通信インターフェース140から古典計算装置100上で実行されるコンパイル済プログラムに渡され、量子計算装置400上で実行された量子演算の結果を用いて古典演算を実行できるようにしてもよい。
【0035】
図5は、開示された主題の実施態様によるパルス生成に適した例示的な配置を示す。いくつかの実装では、パルス形状は、パルスプリミティブを使用して生成されてもよい。古典計算装置100上で実行されるパルスプリミティブインターフェース510によって、パルスプリミティブに基づく指定パルス形状が可能になり得る。パルスプリミティブインターフェース510は、例えば、統合開発環境の一部であってもよい。パルスプリミティブは、例えば、振幅、幅、パルスの各側の遅延、タイミング、パルスタイプ(例えば、ボックスパルスタイプ又は曲線パルスタイプ)、及び他の適切なパラメータを含むパルス形状の様々な態様を含んでもよい。パルス文法を使用して、様々なパルスプリミティブを指定し、指定されたパルスプリミティブに値を割り当てて、パルス形状を作成することができる。これにより、任意の量子演算を実装するために、任意のパルス形状を直接指定することができる場合がある。パルスプリミティブインターフェース510は、パルス文法を用いて量子演算のためのパルス命令を書くために用いられてもよい。パルス文法を用いて書かれたパルス命令は、通信インターフェース140から受信したパラメータによって変更されてもよい。
【0036】
パルスプリミティブを用いてパルス文法で書かれたパルス命令は、パルスプリミティブインターフェース510からバイナリコードコンパイラ130に入力されてもよい。バイナリコードコンパイラ130は、パルス命令からFPGA410のためのバイナリ形式命令を生成してもよい。
【0037】
いくつかの実装では、パルスプリミティブ及びパルス文法を用いてパルスプリミティブインターフェース510に書かれたパルス形状のパルス命令は、パルス形状ライブラリ152に追加されてもよい。例えば、ユーザは、パルスプリミティブを用いて書かれたパルス形状のパルス命令に対応する量子演算を指定してもよい。そのパルス形状のパルス命令は、対応する量子演算と共に、パルス形状ライブラリ152に追加されてもよい。これにより、パルスプリミティブを用いて書かれたパルス命令が、パルス形状変換器120で使用されるようにしてもよい。
【0038】
図6は、開示された主題の実施態様によるパルス生成に適した例示的な手順を示す。600において、プログラムソースコードを受信してもよい。例えば、プログラムソースコードを、他の計算装置から古典計算装置100上で受信してもよいし、例えば、統合開発環境のユーザインターフェースなど、古典計算装置100のユーザインターフェースを使用して作成してもよい。プログラムソースコードは、古典演算と量子演算の両方を含むハイブリッドプログラムであっても、量子演算のみを含むプログラムであってもよい。プログラムソースコードは、任意の適切な1つの言語で書かれても、複数の言語で書かれてもよい。例えば、ハイブリッドプログラムは、量子演算用に拡張された構文を有する古典プログラミング言語で書かれてもよいし、古典プログラミング言語と量子プログラミング言語の両方を用いて書かれてもよい。
【0039】
602において、プログラムソースコードは、コンパイルされてもよい。例えば、プログラムソースコードは、古典計算装置100上のコンパイラ110に入力されてもよい。コンパイラ110は、プログラムがハイブリッドプログラムである場合、プログラムソースコードを古典計算装置100上で実行可能な形式にコンパイルするために、又は量子プログラムをコンパイルするために、任意のタイプの適切なコンパイラ、インタプリタ、又は変換器であってもよい。コンパイラ110は、プログラムソースコードから任意の量子演算を含み得るコンパイル済プログラム310を生成してもよい。量子演算は、例えば、バイナリ実行ファイルの16進ビューに表示されるテキストとしてなど、任意の適切な方法でコンパイル済プログラム310に指定されてもよい。
【0040】
604において、パルス命令は、コンパイル済プログラムから生成されてもよい。例えば、コンパイラ110によってプログラムソースコードから生成されたコンパイル済プログラム、例えば、コンパイル済プログラム310は、パルス形状変換器120に入力されてもよい。パルス形状変換器120は、コンパイル済プログラム310に含まれる量子演算をパルス形状ライブラリ152でルックアップして、量子演算に対応するパルス形状を決定してもよい。パルス形状変換器は、パルス形状ライブラリでルックアップしたパルス形状を使用して、パルス命令320などのパルス命令を生成してもよい。パルス形状変換器120は、通信インターフェース140から受信したパラメータに基づいて、パルス形状ライブラリ152からのパルス形状を修正してもよい。パラメータは、例えば、量子計算装置400などの量子計算装置の環境パラメータ及び較正パラメータであってもよい。パルス命令320は、人間可読形式を含む任意の適切な形式であってもよく、コンパイル済プログラム310からの量子演算を実装するために、パルス形状と共に任意の適切なパラメータ及びタイミング情報を含んでもよい。
【0041】
606において、バイナリ形式命令をパルス命令から生成してもよい。例えば、パルス形状変換器120によって生成されたパルス命令320などのパルス命令は、バイナリコードコンパイラ130に入力されてもよい。バイナリコードコンパイラ130は、バイナリ形式命令330などのバイナリ形式命令を生成してもよい。バイナリ形式命令330は、パルス命令320の命令のそれぞれに対するバイナリパケットを含んでもよい。バイナリパケットは、量子計算装置400のFPGA410のためのバイナリコードを使用して、パルス形状、パラメータ、及びタイミングを含むパルス命令320からの命令を、FPGA410によって理解され得る形式で符号化してもよい。バイナリ形式命令は、FPGA410によって実装され、量子計算装置400のレーザ421などのレーザ、及びレーザ変調システム422を制御して、コンパイル済プログラム310、パルス命令320、及びバイナリ形式命令330を生成するために用いられるプログラムソースコードで指定される量子演算を実装することができる。
【0042】
図7は、開示された主題の実施態様によるパルス生成に適した例示的な手順を示す。700において、量子演算を、コンパイル済プログラムから検索してもよい。例えば、パルス形状変換器120は、コンパイル済プログラム310に含まれる量子演算を検索してもよい。量子演算は、コンパイル済プログラム310内の古典演算とは別の量子演算として識別され得るように、任意の適切な形式で、コンパイル済プログラム310内で指定されてもよい。
【0043】
702において、量子演算をパルス形状ライブラリでルックアップしてもよい。例えば、パルス形状変換器120は、量子計算装置400の第一及び第二の量子ビットにcXゲートを適用する量子演算を、コンパイル済プログラム310から検索していてもよい。パルス形状変換器120は、パルス形状ライブラリ152内のcX-ゲート量子演算をルックアップして、量子演算に対するパルス形状がパルス形状ライブラリ152内に存在するかどうかを決定してもよい。
【0044】
704において、量子演算のためのパルス形状を検索してもよい。例えば、パルス形状変換器120は、パルス形状ライブラリ152においてcXゲート量子演算を位置付けた可能性があり、cXゲート量子演算に対応するパルス形状を検索してもよい。量子演算は、パルス形状ライブラリ152内で、任意の数の対応するパルス形状を有してもよい。パルス形状変換器152は、ルックアップされた量子演算に対応する全てのパルス形状を検索してもよい。
【0045】
706において、パルス命令をパルス形状及びパラメータから生成してもよい。例えば、パルス形状変換器120は、パルス命令320の命令を生成してもよい。パルス命令は、例えば、パルス形状に使用するレーザ光を生成するために使用される量子計算装置400のレーザを示す値、レーザ光から適切なパルス形状のレーザパルスを生成するために使用するレーザ変調システム422の装置及び構成要素を示す値、構成要素及び装置の動作に関するパラメータを含む値、及び量子計算装置400のパラメータに基づいてパルス形状を調整する値など、パルス形状に関する任意の適切な値を入力することによって生成されてもよい。
【0046】
現在開示されている主題の実施形態は、様々な構成要素及びネットワークアーキテクチャに実装され、それらと共に使用され得る。
図8は、現在開示されている主題の実施形態を実装するのに適した例示的なコンピュータシステム20である。コンピュータ20は、1つ以上のプロセッサ24、RAM、ROM、フラッシュRAMなどのメモリ27、入出力コントローラ28、及びハードドライブ、フラッシュストレージ、SAN装置などの固定ストレージ23など、コンピュータ20の主要構成要素を相互接続するバス21を含む。他の構成要素、例えば、ディスプレイアダプタを介したディスプレイスクリーンなどのユーザディスプレイ、コントローラなどのユーザ入力インターフェース、キーボード、マウス、タッチスクリーンなどの関連するユーザ入力装置、及び汎用コンピューティングシステムで使用する、又はこれと組み合わせて使用する当技術分野で周知の他の構成要素が含まれても、含まれなくてもよいことが理解されよう。
【0047】
バス21によって、中央プロセッサ24とメモリ27との間のデータ通信が可能になる。RAMは、一般に、オペレーティングシステム及びアプリケーションプログラムがロードされるメインメモリである。ROM又はフラッシュメモリは、他のコードの中でも、周辺構成要素との相互作用のような基本的なハードウェア動作を制御する基本入出力システム(BIOS)を含むことができる。コンピュータ20に常駐するアプリケーションは、一般に、固定ストレージ23及び/又はメモリ27、光学ドライブ、外部ストレージ機構などのコンピュータ可読媒体に格納され、これらを介してアクセスされる。
【0048】
示された各構成要素は、コンピュータ20と一体であってもよいし、別体であって他のインターフェースを介してアクセスされてもよい。ネットワークインターフェース29などの他のインターフェースは、電話リンク、有線又は無線のローカル又はワイドエリアネットワーク接続、独自のネットワーク接続などを介して、リモートシステム及び装置への接続を提供してもよい。例えば、ネットワークインターフェース29によって、
図9に示すように、コンピュータが1つ以上のローカル、ワイドエリア、又は他のネットワークを介して他のコンピュータと通信することが可能になる。
【0049】
文書スキャナ、デジタルカメラ、補助、補足、又はバックアップシステムなど、多くの他の装置又は構成要素(図示せず)を同様の方法で接続することができる。逆に、本開示を実施するために、
図8に示される構成要素の全てが存在する必要はない。構成要素は、示された方法とは異なる方法で相互接続されてもよい。
図8に示されるようなコンピュータの動作は、当技術分野において容易に知られているので、本出願では詳細に論じない。本開示を実施するためのコードは、メモリ27、固定ストレージ23、リモートストレージ場所、又は当技術分野で既知の任意の他のストレージ機構のうちの1つ以上のようなコンピュータ可読ストレージ媒体に格納することができる。
【0050】
図9は、開示された主題の一実施形態による例示的な配置を示す。ローカルコンピュータ、スマートフォン、タブレット計算装置、リモートサービスなどの1つ以上のクライアント10、11は、1つ以上のネットワーク7を介して他の装置に接続してもよい。ネットワークは、ローカルネットワーク、ワイドエリアネットワーク、インターネット、又は他の任意の適切な1つの通信ネットワーク又は複数の通信ネットワークであってもよく、有線ネットワーク及び/又は無線ネットワークを含む任意の適切なプラットフォーム上で実装されてもよい。クライアント10、11は、処理ユニット14、データベース15、及びユーザインターフェースシステム13などの1つ以上のコンピュータシステムと通信してもよい。場合によっては、クライアント10、11は、データベース15、処理ユニット14などの1つ以上の他のシステムへのアクセスを提供し得るユーザインターフェースシステム13と通信してもよい。例えば、ユーザインターフェース13は、1つ以上の他のコンピュータシステムからのデータを提供するユーザアクセス可能なウェブページであってもよい。ユーザインターフェース13は、人間可読ウェブページがウェブブラウザクライアント10に提供され、コンピュータ可読API又は他のインターフェースがリモートサービスクライアント11に提供される場合など、異なるクライアントに異なるインターフェースを提供してもよい。ユーザインターフェース13、データベース15、及び処理ユニット14は、一体化したシステムの一部であってもよいし、プライベートネットワーク、インターネット、又は他の任意の適切なネットワークを介して通信する複数のコンピュータシステムを含んでもよい。処理ユニット14は、例えば、クラウドベースのコンピューティングシステム、サーチエンジン、コンテンツ配信システムなどの分散システムの一部であってもよく、これが、データベース15及び/又はユーザインターフェース13も含むか、又はこれと通信することができる。いくつかの配置において、分析システム5は、処理ユニット14、データベース15、及び/又はユーザインターフェース13に配信する前に、格納又は取得されたデータが分析システム5によって前処理されるようなバックエンド処理を提供してもよい。例えば、機械学習システム5は、様々な予測モデル、データ分析などを1つ以上の他のシステム13、14、15に提供してもよい。
【0051】
上述の説明は、説明のために、特定の実施形態を参照して説明されている。しかしながら、上記の例示的な議論は、網羅的であることも、あるいは開示された主題の実施形態を開示された正確な形態に限定することも意図していない。多くの修正及び変形が、上記の教示に鑑みて可能である。実施形態を、開示された主題の実施形態の原理及びそれらの実用的な用途を説明するために選択し、説明してきたが、それによって、当業者がそれらの実施形態、及び企図された特定の使用に適するような様々な変更を伴う種々の実施形態を利用できるようにするためである。
【国際調査報告】