(57)【要約】  本明細書には、量子計算システムのためのｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのソフトウェア開発キット（ＳＤＫ）を生成する方法、システム、及び媒体が記載される。そのような方法は、アプリケーションがデジタルコンピューター上で実行されるアプリケーションインターフェースにてアプリケーションからユーザー入力を承諾する工程、及び、ユーザー入力の要求に依存して発見的又は正確に解かれ得る１つ以上のアルゴリズムをアルゴリズム層にて実施する工程を含み得る。１つ以上のアルゴリズムは、アプリケーションの複雑性を除外し；制約なし多項式二値変数最適化（ＰＵＢＯ）の形態で、アプリケーション空間から１つ以上の命令へと１つ以上のアルゴリズムを変換する。１つ以上の命令は、ソルバー層の共通インターフェースにてＰＵＢＯ形態で実行され得る。【選択図】図１
2019513276.tif 000002
【特許請求の範囲】
【請求項１】
共通インターフェースを含むソルバー層による実行のための１つ以上の命令を生成する方法であって、ここで、１つ以上の命令は、少なくとも１つのコンピュータープロセッサ及びメモリを含むデジタルコンピューターによって生成され、デジタルコンピューターは、ソルバー層を含むｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのコンピューティングシステムに連結され、ソルバー層は出力を生成するために１つ以上の命令を実行し、前記方法は、
ａ．アプリケーションがデジタルコンピューター上で実行される、アプリケーションインターフェースにてアプリケーションからユーザー入力を承諾する工程；
ｂ．ユーザー入力の要求に少なくとも部分的に依存して発見的又は正確に解かれる１つ以上のアルゴリズムをアルゴリズム層で実施する工程であって、１つ以上のアルゴリズムはアプリケーションの複雑性を除外する、工程；
ｃ．制約なし多項式二値変数最適化（ＰＵＢＯ）の形態で、アプリケーション空間から１つ以上の命令へと１つ以上のアルゴリズムを変換する工程；及び
ｄ．ソルバー層の共通インターフェースにてＰＵＢＯの形態で１つ以上の命令を実行する工程であって、ここで共通インターフェースは、量子的又は古典的コンピューターに依存しないインターフェースを提供する１つ以上の制約なし多項式二値変数最適化（ＰＵＢＯ）ソルバーを含む、工程
を含むことを特徴とする方法。
【請求項２】
ｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのコンピューティングシステムは、量子アニーラー、イジングソルバー、光パラメトリック発振器（ＯＰＯ）、量子計算のゲートモデル、又は別のタイプの量子コンピューターを含む、ことを特徴とする請求項１に記載の方法。
【請求項３】
制約なし多項式二値変数最適化（ＰＵＢＯ）形態は、制約なし二次形式二値変数最適化（ＱＵＢＯ）形態である、ことを特徴とする請求項１に記載の方法。
【請求項４】
ソルバー層の共通インターフェースの１つ以上の制約なし多項式二値変数最適化（ＰＵＢＯ）のソルバーは、１つ以上の制約なし二次形式二値変数最適化（ＱＵＢＯ）のソルバーを含む、ことを特徴とする請求項１に記載の方法。
【請求項５】
１つ以上のアルゴリズムはアルゴリズム層にて変換される、ことを特徴とする請求項１に記載の方法。
【請求項６】
１つ以上のアルゴリズムは二元多項式層を使用して変換される、ことを特徴とする請求項１に記載の方法。
【請求項７】
１つ以上のアルゴリズムは制約付き多項式二値変数最適化層にて変換される、ことを特徴とする請求項１に記載の方法。
【請求項８】
１つ以上のアルゴリズムは制約付き二次形式二値変数最適化層にて変換される、ことを特徴とする請求項１に記載の方法。
【請求項９】
１つ以上のアルゴリズムはソルバー層の共通インターフェースによって変換される、ことを特徴とする請求項１に記載の方法。
【請求項１０】
アルゴリズム層は、ｍａｘ（最大）ｋ−準クリーク、彩色数、グラフ類似性、カラーリング実行可能性、最大ｃｏ−κ−プレックス、最小クリーク被覆、κ−クリーク被覆の実行可能性、線形ナップサック、及び平衡化分割のうち１つ以上を含む、ことを特徴とする請求項１に記載の方法。
【請求項１１】
１つ以上のアルゴリズムの変換は、制約なし多項式二値変数最適化（ＰＵＢＯ）形態の制約なし二次形式二値変数最適化（ＱＵＢＯ）形態への変換、二元多項式の操作、及び二元空間における効果的な探索のうち１つ以上の使用を含む、ことを特徴とする請求項１に記載の方法。
【請求項１２】
１つ以上の制約なし多項式二値変数最適化（ＰＵＢＯ）ソルバーは、Ｄ−Ｗａｖｅ、ｍｕｌｔｉ−ａｇｅｎｔ  Ｔａｂｕ  １−Ｏｐｔソルバー、Ｔａｂｕ  １−Ｏｐｔソルバー、ＰＴＩＣＭソルバー、パスに再リンクするソルバー、及びＧＰＵベースのシミュレートされた量子アニーリングソルバーのうち１つ以上を含む、ことを特徴とする請求項１に記載の方法。
【請求項１３】
１つ以上のアルゴリズムは、古典的な最適化システム又は量子オラクルを使用して実施される、ことを特徴とする請求項１に記載の方法。
【請求項１４】
共通インターフェースを含むソルバー層による実行のために１つ以上の命令を生成するためのシステムであって、該システムは、
ａ．ソルバー層を含むｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのコンピューティングシステム；
ｂ．ｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのコンピューティングシステムに連結される、少なくとも１つのコンピュータープロセッサを含むデジタルコンピューター；
ｃ．少なくとも１つのコンピュータープロセッサにより実行された時に方法を実施する、コンピュータープロセッサ実行可能命令を保存するコンピューターメモリ
を含み、前記方法は、
ｉ．アプリケーションがデジタルコンピューター上で実行される、アプリケーションインターフェースにてアプリケーションからユーザー入力を承諾する工程；
ｉｉ．ユーザー入力の要求に少なくとも部分的に依存して発見的又は正確に解かれる１つ以上のアルゴリズムをアルゴリズム層で実施する工程であって、１つ以上のアルゴリズムはアプリケーションの複雑性を除外する、工程；
ｉｉｉ．制約なし多項式二値変数最適化（ＰＵＢＯ）の形態で、アプリケーション空間から１つ以上の命令へと１つ以上のアルゴリズムを変換する工程；及び
ｉｖ．ソルバー層の共通インターフェースにてＰＵＢＯの形態で１つ以上の命令を実行する工程であって、ここで共通インターフェースは、量子的又は古典的コンピューターに依存しないインターフェースを提供する１つ以上の制約なし多項式二値変数最適化（ＰＵＢＯ）ソルバーを含む、工程
を含む、ことを特徴とするシステム。
【請求項１５】
ｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのコンピューティングシステムは、量子アニーラー、イジングソルバー、光パラメトリック発振器（ＯＰＯ）、量子計算のゲートモデル、又は別のタイプの量子コンピューターを含む、ことを特徴とする請求項１４に記載のシステム。
【請求項１６】
制約なし多項式二値変数最適化（ＰＵＢＯ）形態は、制約なし二次形式二値変数最適化（ＱＵＢＯ）形態である、ことを特徴とする請求項１４に記載のシステム。
【請求項１７】
ソルバー層の共通インターフェースの１つ以上の制約なし多項式二値変数最適化（ＰＵＢＯ）のソルバーは、１つ以上の制約なし二次形式二値変数最適化（ＱＵＢＯ）のソルバーを含む、ことを特徴とする請求項１４に記載のシステム。
【請求項１８】
１つ以上のアルゴリズムはアルゴリズム層にて変換される、ことを特徴とする請求項１４に記載のシステム。
【請求項１９】
１つ以上のアルゴリズムは二元多項式層を使用して変換される、ことを特徴とする請求項１４に記載のシステム。
【請求項２０】
１つ以上のアルゴリズムは制約付き多項式二値変数最適化層にて変換される、ことを特徴とする請求項１４に記載のシステム。
【請求項２１】
１つ以上のアルゴリズムは制約付き二次形式二値変数最適化層にて変換される、ことを特徴とする請求項１４に記載のシステム。
【請求項２２】
１つ以上のアルゴリズムはソルバー層の共通インターフェースによって変換される、ことを特徴とする請求項１４に記載のシステム。
【請求項２３】
アルゴリズム層は、ｍａｘ（最大）ｋ−準クリーク、彩色数、グラフ類似性、カラーリング実行可能性、最大ｃｏ−κ−プレックス、最小クリーク被覆、κ−クリーク被覆の実行可能性、線形ナップサック、及び平衡化分割のうち１つ以上を含む、ことを特徴とする請求項１４に記載のシステム。
【請求項２４】
１つ以上のアルゴリズムの変換は、制約なし多項式二値変数最適化（ＰＵＢＯ）形態の制約なし二次形式二値変数最適化（ＱＵＢＯ）形態への変換、二元多項式の操作、及び二元空間における効果的な探索のうち１つ以上の使用を含む、ことを特徴とする請求項１４に記載のシステム。
【請求項２５】
１つ以上の制約なし多項式二値変数最適化（ＰＵＢＯ）ソルバーは、Ｄ−Ｗａｖｅ、ｍｕｌｔｉ−ａｇｅｎｔ  Ｔａｂｕ  １−Ｏｐｔソルバー、Ｔａｂｕ  １−Ｏｐｔソルバー、ＰＴＩＣＭソルバー、パスに再リンクするソルバー、及びＧＰＵベースのシミュレートされた量子アニーリングソルバーのうち１つ以上を含む、ことを特徴とする請求項１４に記載のシステム。
【請求項２６】
１つ以上のアルゴリズムは、古典的な最適化システム又は量子オラクルを使用して実施される、ことを特徴とする請求項１４に記載のシステム。
【請求項２７】
機械実行可能コードを含む非一時的コンピューター可読媒体であって、該機械実行可能コードは、１つ以上のコンピュータープロセッサによる実行時、少なくとも１つのコンピュータープロセッサ及びメモリを含むデジタルコンピューターによって実施可能なアプリケーションを生成し、共通インターフェースを含んでいるｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのコンピューティングシステムのソルバー層による実行のために１つ以上の命令を生成して、出力を生成し、前記アプリケーションは、
ａ．アプリケーションがデジタルコンピューター上で実行される、アプリケーションインターフェースにてアプリケーションからユーザー入力を承諾するようにプログラム又は構成されるソフトウェアモジュール；
ｂ．ユーザー入力の要求に少なくとも部分的に依存して発見的又は正確に解かれる１つ以上のアルゴリズムをアルゴリズム層で実施するようにプログラム又は構成されるソフトウェアモジュールであって、１つ以上のアルゴリズムはアプリケーションの複雑性を除外する、ソフトウェアモジュール；
ｃ．制約なし多項式二値変数最適化（ＰＵＢＯ）の形態で、アプリケーション空間から１つ以上の命令へと１つ以上のアルゴリズムを変換するようにプログラム又は構成されるソフトウェアモジュール；及び
ｄ．ソルバー層の共通インターフェースにてＰＵＢＯの形態で１つ以上の命令を実行するようにプログラム又は構成されるソフトウェアモジュールであって、ここで共通インターフェースは、量子的又は古典的コンピューターに依存しないインターフェースを提供する１つ以上の制約なし多項式二値変数最適化（ＰＵＢＯ）ソルバーを含む、ソフトウェアモジュール
を含む、ことを特徴とする非一時的コンピューター可読媒体。
【請求項２８】
制約なし多項式二値変数最適化（ＰＵＢＯ）形態は、制約なし二次形式二値変数最適化（ＱＵＢＯ）形態である、ことを特徴とする請求項２７に記載の非一時的コンピューター可読媒体。
【請求項２９】
ソルバー層の共通インターフェースの１つ以上の制約なし多項式二値変数最適化（ＰＵＢＯ）のソルバーは、１つ以上の制約なし二次形式二値変数最適化（ＱＵＢＯ）のソルバーを含む、ことを特徴とする請求項２７に記載の非一時的コンピューター可読媒体。
【請求項３０】
１つ以上のアルゴリズムはアルゴリズム層にて変換される、ことを特徴とする請求項２７に記載の非一時的コンピューター可読媒体。
【請求項３１】
１つ以上のアルゴリズムは二元多項式層を使用して変換される、ことを特徴とする請求項２７に記載の非一時的コンピューター可読媒体。
【請求項３２】
１つ以上のアルゴリズムはソルバー層の共通インターフェースによって変換される、ことを特徴とする請求項２７に記載の非一時的コンピューター可読媒体。
【請求項３３】
アルゴリズム層は、ｍａｘ（最大）ｋ−準クリーク、彩色数、グラフ類似性、カラーリング実行可能性、最大ｃｏ−κ−プレックス、最小クリーク被覆、κ−クリーク被覆の実行可能性、線形ナップサック、及び平衡化分割のうち１つ以上を含む、ことを特徴とする請求項２７に記載の非一時的コンピューター可読媒体。
【請求項３４】
１つ以上のアルゴリズムの変換は、制約なし多項式二値変数最適化（ＰＵＢＯ）形態の制約なし二次形式二値変数最適化（ＱＵＢＯ）形態への変換、二元多項式の操作、及び二元空間における効果的な探索のうち１つ以上の使用を含む、ことを特徴とする請求項２７に記載の非一時的コンピューター可読媒体。
【請求項３５】
１つ以上の制約なし多項式二値変数最適化（ＰＵＢＯ）ソルバーは、Ｄ−Ｗａｖｅ、ｍｕｌｔｉ−ａｇｅｎｔ  Ｔａｂｕ  １−Ｏｐｔソルバー、Ｔａｂｕ  １−Ｏｐｔソルバー、ＰＴＩＣＭソルバー、パスに再リンクするソルバー、及びＧＰＵベースのシミュレートされた量子アニーリングソルバーのうち１つ以上を含む、ことを特徴とする請求項２７に記載の非一時的コンピューター可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
＜相互参照＞
本出願は、２０１６年３月１１日出願の米国仮特許出願第６２／３０７，２９６号の優先権を主張するものであり、参照により本明細書に全体が組み込まれるものである。
【背景技術】
【０００２】
量子計算は、データ上で操作を実行するために、重ね合わせ及びエンタングルメントなどの量子力学的な現象を直接利用し得る、理論的な計算システム（量子コンピューター）を熟考するものである。超伝導キュービットのシステムは、例えば、米国特許出願公開ＵＳ２０１２／０３２６７２０及びＵＳ２００６／０２２５１６５に開示されており、その各々が参照により本明細書に全体が組み込まれるものである。そのようなアナログシステムは、量子計算アルゴリズムの実施のために使用されてもよい。
【発明の概要】
【０００３】
本明細書では、量子計算へのアクセスを広げつつ量子「機械コード」からユーザーを保護することができる、ｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのソフトウェア開発キット（ＳＤＫ）の必要性が認識される。大量のデータセットの迅速且つ効果的な分析は、財務分析、ソーシャルメディア、創薬、及びジョブスケジューリングを含む多くの分野で、不可欠な場合がある。これら分野での用途は頻繁に、計算上高価なＮＰ完全な及びＮＰ困難な問題を解決することもある。Ｄ−Ｗａｖｅ  Ｓｙｓｔｅｍｓ、日本電信電話（ＮＴＴ）、ＩＢＭ、及びＧｏｏｇｌｅ  によるものなどの量子コンピューターの急速な開発と共に、プラットフォーム非依存型のソフトウェアは、古典的及び量子的なハードウェアの両方に適合し得るものであり、ユーザーがアルゴリズム及びソルバーの予め構築されたライブラリを活用することを可能にするために必要とされ得る。
【０００４】
本明細書には、ユーザーがｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのソリューションを構築することを可能にし得る、ソフトウェア開発キット（ＳＤＫ）が記載される。そのようなソリューションは、量子計算システム（例えば、量子アニーラー、イジングソルバー（Ｉｓｉｎｇ  ｓｏｌｖｅｒ）、光パラメトリック発振器（ＯＰＯ）、量子計算のゲートモデル、又は別のタイプの量子コンピューター）などの、量子計算操作を実行することができる多くの適切なプラットフォームのうち何れかにおいて実行され得る。問題の埋め込み（ｅｍｂｅｄｄｉｎｇ  ｉｓｓｕｅｓ）、マニュアルエラー、実装労力コスト、ハードウェアとのインターフェーシング、及び、制約なし多項式二値変数最適化（ＰＵＢＯ）、例えば制約なし二次形式二値変数最適化（ＱＵＢＯ）への最適化などの、量子コンピューターの使用によって直面する多くの障害が存在する。本開示のＳＤＫはこれらの問題に対処し得る。これらの障害の対処を支援するために、ｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのソフトウェア開発キット（ＳＤＫ）が、独創的なものとして使用可能となり、又はアドバンスドユーザーによってカスタマイズされるように開発され、そこでは、アルゴリズム層、二元多項式層、及び共通インターフェースを含むソルバー層を含む、少なくとも２又は３つの層が、アプリケーション入力にソリューションを提供するために共に作動するように設けられている。ＳＤＫの設計の障害は、アルゴリズム層、多項式（例えば二元）層、及び／又は共通のソルバー層などの様々な層において実施され得るようなものである。
【０００５】
１つの態様において、本明細書には、共通インターフェースを含むソルバー層による実行のための１つ以上の命令を生成する方法が提供され、ここで、１つ以上の命令は、少なくとも１つのコンピュータープロセッサ及びメモリを含むデジタルコンピューターによって生成され、デジタルコンピューターはソルバー層を含むｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのコンピューティングシステムに連結され、ソルバー層は出力を生成するために１つ以上の命令を実行し、前記方法は、ａ．アプリケーションがデジタルコンピューター上で実行される、アプリケーションインターフェースにてアプリケーションからユーザー入力を承諾する工程；ｂ．ユーザー入力の要求に少なくとも部分的に依存して発見的又は正確に解かれる１つ以上のアルゴリズムをアルゴリズム層で実施する工程であって、１つ以上のアルゴリズムはアプリケーションの複雑性を除外する、工程；ｃ．制約なし多項式二値変数最適化（ＰＵＢＯ）の形態で、アプリケーション空間から１つ以上の命令へと１つ以上のアルゴリズムを変換する工程；及びｄ．ソルバー層の共通インターフェースにてＰＵＢＯの形態で１つ以上の命令を実行する工程であって、ここで共通インターフェースは、量子的又は古典的コンピューターに依存しないインターフェースを提供する１つ以上の制約なし多項式二値変数最適化（ＰＵＢＯ）ソルバーを含む、工程。
【０００６】
幾つかの実施形態において、ｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのコンピューティングシステムは、量子アニーラー、イジングソルバー、光パラメトリック発振器（ＯＰＯ）、量子計算のゲートモデル、又は別のタイプの量子コンピューターを含む。幾つかの実施形態において、制約なし多項式二値変数最適化（ＰＵＢＯ）形態は、制約なし二次形式二値変数最適化（ＱＵＢＯ）形態である。幾つかの実施形態において、ソルバー層の共通インターフェースの１つ以上の制約なし多項式二値変数最適化（ＰＵＢＯ）のソルバーは、１つ以上の制約なし二次形式二値変数最適化（ＱＵＢＯ）のソルバーを含む。幾つかの実施形態において、１つ以上のアルゴリズムはアルゴリズム層にて変換される。幾つかの実施形態において、１つ以上のアルゴリズムは二元多項式層を使用して変換される。幾つかの実施形態において、１つ以上のアルゴリズムは制約付き多項式二値変数最適化層にて変換される。幾つかの実施形態において、１つ以上のアルゴリズムは制約付き二次形式二値変数最適化層にて変換される。幾つかの実施形態において、１つ以上のアルゴリズムはソルバー層の共通インターフェースによって変換される。幾つかの実施形態において、アルゴリズム層は、ｍａｘ（最大）ｋ−準クリーク、彩色数、グラフ類似性、カラーリング実行可能性（ｃｏｌｏｒｉｎｇ  ｆｅａｓｉｂｉｌｉｔｙ）、最大ｃｏ−κ−プレックス、最小クリーク被覆、κ−クリーク被覆の実行可能性、線形ナップサック、及び平衡化分割（ｂａｌａｎｃｅｄ  ｐａｒｔｉｔｉｏｎｉｎｇ）のうち１つ以上を含む。幾つかの実施形態において、１つ以上のアルゴリズムの変換は、制約なし多項式二値変数最適化（ＰＵＢＯ）形態の制約なし二次形式二値変数最適化（ＱＵＢＯ）形態への変換、二元多項式の操作、及び二元空間における効果的な探索のうち１つ以上の使用を含む。幾つかの実施形態において、１つ以上の制約なし多項式二値変数最適化（ＰＵＢＯ）ソルバーは、Ｄ−Ｗａｖｅ、ｍｕｌｔｉ−ａｇｅｎｔ  Ｔａｂｕ  １−Ｏｐｔソルバー、Ｔａｂｕ  １−Ｏｐｔソルバー、ＰＴＩＣＭソルバー、パスに再リンクするソルバー、及びＧＰＵベースのシミュレートされた量子アニーリングソルバーのうち１つ以上を含む。幾つかの実施形態において、１つ以上のアルゴリズムは、古典的な最適化システム又は量子オラクルを使用して実施される。
【０００７】
本明細書にはまた、共通インターフェースを含むソルバー層による実行のために１つ以上の命令を生成するためのシステムが記載され、該システムは、ａ．ソルバー層を含むｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのコンピューティングシステム；ｂ．ｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのコンピューティングシステムに連結される、少なくとも１つのコンピュータープロセッサを含むデジタルコンピューター；ｃ．少なくとも１つのコンピュータープロセッサにより実行された時に方法を実施する、コンピュータープロセッサ実行可能命令を保存するコンピューターメモリを含み、前記方法は、ｉ．アプリケーションがデジタルコンピューター上で実行される、アプリケーションインターフェースにてアプリケーションからユーザー入力を承諾する工程；ｉｉ．ユーザー入力の要求に少なくとも部分的に依存して発見的又は正確に解かれる１つ以上のアルゴリズムをアルゴリズム層で実施する工程であって、１つ以上のアルゴリズムはアプリケーションの複雑性を除外する、工程；ｉｉｉ．制約なし多項式二値変数最適化（ＰＵＢＯ）の形態で、アプリケーション空間から１つ以上の命令へと１つ以上のアルゴリズムを変換する工程；及びｉｖ．ソルバー層の共通インターフェースにてＰＵＢＯの形態で１つ以上の命令を実行する工程であって、ここで共通インターフェースは、量子的又は古典的コンピューターに依存しないインターフェースを提供する１つ以上の制約なし多項式二値変数最適化（ＰＵＢＯ）ソルバーを含む、工程。
【０００８】
幾つかの実施形態において、ｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのコンピューティングシステムは、量子アニーラー、イジングソルバー、光パラメトリック発振器（ＯＰＯ）、量子計算のゲートモデル、又は別のタイプの量子コンピューターを含む。幾つかの実施形態において、制約なし多項式二値変数最適化（ＰＵＢＯ）形態は、制約なし二次形式二値変数最適化（ＱＵＢＯ）形態である。幾つかの実施形態において、ソルバー層の共通インターフェースの１つ以上の制約なし多項式二値変数最適化（ＰＵＢＯ）のソルバーは、１つ以上の制約なし二次形式二値変数最適化（ＱＵＢＯ）のソルバーを含む。幾つかの実施形態において、１つ以上のアルゴリズムはアルゴリズム層にて変換される。幾つかの実施形態において、１つ以上のアルゴリズムは二元多項式層を使用して変換される。幾つかの実施形態において、１つ以上のアルゴリズムは制約付き多項式二値変数最適化層にて変換される。幾つかの実施形態において、１つ以上のアルゴリズムは制約付き二次形式二値変数最適化層にて変換される。幾つかの実施形態において、１つ以上のアルゴリズムはソルバー層の共通インターフェースによって変換される。幾つかの実施形態において、アルゴリズム層は、ｍａｘ（最大）ｋ−準クリーク、彩色数、グラフ類似性、カラーリング実行可能性、最大ｃｏ−κ−プレックス、最小クリーク被覆、κ−クリーク被覆の実行可能性、線形ナップサック、及び平衡化分割のうち１つ以上を含む。幾つかの実施形態において、１つ以上のアルゴリズムの変換は、制約なし多項式二値変数最適化（ＰＵＢＯ）形態の制約なし二次形式二値変数最適化（ＱＵＢＯ）形態への変換、二元多項式の操作、及び二元空間における効果的な探索のうち１つ以上の使用を含む。幾つかの実施形態において、１つ以上の制約なし多項式二値変数最適化（ＰＵＢＯ）ソルバーは、Ｄ−Ｗａｖｅ、ｍｕｌｔｉ−ａｇｅｎｔ  Ｔａｂｕ  １−Ｏｐｔソルバー、Ｔａｂｕ  １−Ｏｐｔソルバー、ＰＴＩＣＭソルバー、パスに再リンクするソルバー、及びＧＰＵベースのシミュレートされた量子アニーリングソルバーのうち１つ以上を含む。幾つかの実施形態において、１つ以上のアルゴリズムは、古典的な最適化システム又は量子オラクルを使用して実施される。
【０００９】
本明細書にはまた、機械実行可能コードを含む非一時的コンピューター可読媒体が記載され、該機械実行可能コードは、１つ以上のコンピュータープロセッサによる実行時、少なくとも１つのコンピュータープロセッサ及びメモリを含むデジタルコンピューターによって実施可能なアプリケーションを生成し、共通インターフェースを含んでいるｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのコンピューティングシステムのソルバー層による実行のために１つ以上の命令を生成して、出力を生成し、前記アプリケーションは、ａ．アプリケーションがデジタルコンピューター上で実行される、アプリケーションインターフェースにてアプリケーションからユーザー入力を承諾するようにプログラム又は構成されるソフトウェアモジュール；ｂ．ユーザー入力の要求に少なくとも部分的に依存して発見的又は正確に解かれる１つ以上のアルゴリズムをアルゴリズム層で実施するようにプログラム又は構成されるソフトウェアモジュールであって、１つ以上のアルゴリズムはアプリケーションの複雑性を除外する、ソフトウェアモジュール；ｃ．制約なし多項式二値変数最適化（ＰＵＢＯ）の形態で、アプリケーション空間から１つ以上の命令へと１つ以上のアルゴリズムを変換するようにプログラム又は構成されるソフトウェアモジュール；及びｄ．ソルバー層の共通インターフェースにてＰＵＢＯの形態で１つ以上の命令を実行するようにプログラム又は構成されるソフトウェアモジュールであって、ここで共通インターフェースは、量子的又は古典的コンピューターに依存しないインターフェースを提供する１つ以上の制約なし多項式二値変数最適化（ＰＵＢＯ）ソルバーを含む、ソフトウェアモジュール。
【００１０】
幾つかの実施形態において、制約なし多項式二値変数最適化（ＰＵＢＯ）形態は、制約なし二次形式二値変数最適化（ＱＵＢＯ）形態である。幾つかの実施形態において、ソルバー層の共通インターフェースの１つ以上の制約なし多項式二値変数最適化（ＰＵＢＯ）のソルバーは、１つ以上の制約なし二次形式二値変数最適化（ＱＵＢＯ）のソルバーを含む。幾つかの実施形態において、１つ以上のアルゴリズムはアルゴリズム層にて変換される。幾つかの実施形態において、１つ以上のアルゴリズムは二元多項式層を使用して変換される。幾つかの実施形態において、１つ以上のアルゴリズムはソルバー層の共通インターフェースによって変換される。幾つかの実施形態において、アルゴリズム層は、ｍａｘ（最大）ｋ−準クリーク、彩色数、グラフ類似性、カラーリング実行可能性、最大ｃｏ−κ−プレックス、最小クリーク被覆、κ−クリーク被覆の実行可能性、線形ナップサック、及び平衡化分割のうち１つ以上を含む。幾つかの実施形態において、１つ以上のアルゴリズムの変換は、制約なし多項式二値変数最適化（ＰＵＢＯ）形態の制約なし二次形式二値変数最適化（ＱＵＢＯ）形態への変換、二元多項式の操作、及び二元空間における効果的な探索のうち１つ以上の使用を含む。幾つかの実施形態において、１つ以上の制約なし多項式二値変数最適化（ＰＵＢＯ）ソルバーは、Ｄ−Ｗａｖｅ、ｍｕｌｔｉ−ａｇｅｎｔ  Ｔａｂｕ  １−Ｏｐｔソルバー、Ｔａｂｕ  １−Ｏｐｔソルバー、ＰＴＩＣＭソルバー、パスに再リンクするソルバー、及びＧＰＵベースのシミュレートされた量子アニーリングソルバーのうち１つ以上を含む。
【００１１】
本開示の付加的な態様及び利点は、以下の詳述から当業者に容易に明白となり、ここでは、本開示の例示的な実施形態のみが示され、且つ記載される。実現されるように、本開示は、他の及び異なる実施形態においても可能であり、その様々な詳細は、全てが本開示から逸脱することなく、様々な明白な点において改変することができる。従って、図面と記載は事実上例示的とみなされ、限定的とは見なされない。
【００１２】
＜引用による組み込み＞
本明細書で挙げられる全ての刊行物、特許、及び特許出願は、あたかも個々の刊行物、特許、又は特許出願がそれぞれ参照により本明細書に具体的且つ個別に組み込まれるのと同じ程度にまで、参照により本明細書に組み込まれている。参照により組み込まれる刊行物、特許、又は特許出願が本明細書に含まれる開示に矛盾するという程度まで、本明細書は、そのような矛盾のある題材に取って代わる及び／又はそれに優先するように意図される。
【図面の簡単な説明】
【００１３】
本発明の新規な特徴は、とりわけ添付の特許請求の範囲において説明される。本発明の特徴及び利点のより良い理解は、本発明の原理が用いられる例示的実施形態を説明する以下の詳細な説明と、以下の添付図面（本明細書では「図（“Ｆｉｇｕｒｅ”  ａｎｄ  “ＦＩＧ．”）」とも称する）とを引用することによって得られるであろう。
【図１】ｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのソフトウェア開発キット（ＳＤＫ）の構造の限定されない例を示す。この場合、量子コンピューターに基づいてアプリケーションに対するソリューションを提供する、アルゴリズム層、二元多項式層、及び共通のソルバー中間眉（例えば、共通インターフェースを含むソルバー層）を含む、三層構造が示される。
【図２】ｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのソフトウェア開発キット（ＳＤＫ）の構造の限定されない例を示す。この場合、量子コンピューターに基づいてアプリケーションに対するソリューションを提供する、アルゴリズム層、二元多項式層（例えば、制約つき整数プログラミング、又は制約つき二元プログラミング）、及び共通ソルバーインターフェース層（例えば、共通インターフェースを含むソルバー層）を含む、三層構造の別の実施形態が示される。
【図３】ｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのソフトウェア開発キット（ＳＤＫ）の構造の限定されない例を示す。この場合、例えば以下のうち１つ以上など、１つ以上のアルゴリズムを含むコンポーネントを含んでいるアルゴリズム層が示される：ｍａｘ（最大）ｋ−準クリーク、彩色数、グラフ類似性、カラーリング実行可能性、最大ｃｏ−κ−プレックス、最小クリーク被覆、κ−クリーク被覆の実行可能性、線形ナップサック、及び平衡化分割のうち１つ以上を含む。
【図４】ｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのソフトウェア開発キット（ＳＤＫ）の構造の限定されない例を示す。この場合、例えば以下のうち１つ以上を含む１つ以上のコンポーネントを含んでいる、二元多項式層が示される：ＰＵＢＯからＱＵＢＯへの変換（Ｐｕｂｏ２Ｑｕｂｏ）、Ｉｓｉｎｇ  Ｓｕｐｐｏｒｔ、多項式の構造及び操作、二元空間における効果的な探索、及びランダム多項式生成装置（ｒａｎｄｏｍ  ｐｏｌｙｎｏｍｉａｌ  ｇｅｎｅｒａｔｏｒ）。
【図５】ｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのソフトウェア開発キット（ＳＤＫ）の構造の限定されない例を示す。この場合、例えば以下のうち１つ以上などの、１つ以上の制約なし多項式二値変数最適化（ＰＵＢＯ）ソルバーを含むソルバー層の共通インターフェースが示される：Ｄ−Ｗａｖｅ、ｇｒａｙ  ｅｘｈａｕｓｔｉｖｅソルバー、ｍｕｌｔｉ−ａｇｅｎｔ  Ｔａｂｕ  １−Ｏｐｔソルバー、Ｔａｂｕ  １−Ｏｐｔソルバー、ＰＴＩＣＭソルバー、パスに再リンクするソルバー。
【図６】ｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのソフトウェア開発キット（ＳＤＫ）の構造の限定されない例を示す。この場合、それぞれのコンポーネントと共に表示される、例えば、アルゴリズム層、二元多項式層、及び共通ソルバーインターフェース層を含む三層構造が示される。
【図７】本明細書で提供される方法を実施するようにプログラム又は構成されるコンピューター制御システムを示す。
【発明を実施するための形態】
【００１４】
本発明の実施形態が本明細書中で示され且つ記載されているが、このような実施形態はほんの一例として提供されるものであることは、当業者に明らかであろう。多数の変形、変更、及び置き換えは、本発明から逸脱することなく、当業者によって想到され得る。本明細書に記載される本発明の実施形態の様々な代案が利用され得ることを理解されたい。
【００１５】
量子計算へのアクセスを広げつつ量子「機械コード」からユーザーを保護することができる、プラットフォーム非依存型のｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのソフトウェア開発キット（ＳＤＫ）を構築するために、克服の必要がある多くの障害が存在する場合もある。量子コンピューターのためのアプリケーションを開発する時、例えば、複雑であり、計算上高価であり、且つ回帰性（ｒｅｃｕｒｒｅｎｔ）であり得る問題の埋め込みの場合がある。ヒューマンエラー、非自明な実装、及び誤差のデバッグを含むマニュアルエラーも存在し得る。別の障害は、大きな労力を要し且つ時間を消費し得る実装労力であり、それによりアイデアの反復的な試験が制限されてしまう。ハードウェアとのインターフェーシングは、欠陥のあるキュービット、急速な進展、及び構造的な変化などの他の障害をもたらしかねない。更に、制約なし多項式二値変数最適化（ＰＵＢＯ）への最適化は、例えば、全てのＰＵＢＯが基礎的な量子計算システムに適合するとは限らない場合、二次最適化の最適以下の専門技術などの（例えばＱＵＢＯの場合）、時間消費及び回帰の問題を潜在的にもたらしかねない。
【００１６】
これらの障害を克服し且つｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのソリューションの構築をユーザーに教示するために、本明細書に記載されるｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄソフトウェア開発キット（ＳＤＫ）は、ユーザーがアルゴリズム及びソルバーの予め構築されたライブラリを活用することを可能にし得る。記載されるＳＤＫは、断熱量子コンピューター（Ｄ−Ｗａｖｅ  Ｓｙｓｔｅｍｓにより製造されたものなど）、光パラメトリック発振器（ＯＰＯ）（日本電信電話（ＮＴＴ）により製造されたものなど）、又は異なる技術と構造に基づくデバイス（ＩＢＭ又はグーグルにより製造されたものなど）とのインターフェーシングの用意ができているアプリケーションの開発を可能にし得る。量子コンピューターが発展し続けるにつれ、ＳＤＫは、現実の問題を解決するために非常に効果的な古典的二次式ソルバーにそれらの進歩を統合する。この種のＳＤＫに関する障害のうち１つは、層をカスタマイズするのに広範囲な方法を提供することであり；従って、記載されたｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄソフトウェア開発キット（ＳＤＫ）は多層構造で設計されており、ここで洗練されたユーザーが、自身の特定のニーズに従い下部層を制御且つ追加することができる。
【００１７】
本明細書には、共通インターフェースを含むソルバー層による実行のための１つ以上の命令をするように作動し得る方法が記載され、ここで、１つ以上の命令は、少なくとも１つのコンピュータープロセッサ及びメモリを含むデジタルコンピューターによって生成され、デジタルコンピューターはソルバー層を含むｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのコンピューティングシステムに連結され、ソルバー層は出力を生成するために１つ以上の命令を実行し、前記方法は、アプリケーションがデジタルコンピューター上で実行される、アプリケーションインターフェースにてアプリケーションからユーザー入力を承諾する工程；ユーザー入力の要求に依存して発見的又は正確に解かれる１つ以上のアルゴリズムをアルゴリズム層で実施する工程であって、１つ以上のアルゴリズムはアプリケーションの複雑性を除外する、工程；制約なし多項式二値変数最適化（ＰＵＢＯ）の形態で、アプリケーション空間から１つ以上の命令へと１つ以上のアルゴリズムを変換する工程；及びソルバー層の共通インターフェースにてＰＵＢＯの形態で１つ以上の命令を実行する工程であって、ここで共通インターフェースは、量子的又は古典的コンピューターに依存しないインターフェースを提供する１つ以上の制約なし多項式二値変数最適化（ＰＵＢＯ）ソルバーを含む、工程を含む。
【００１８】
本明細書にはまた、特定の実施形態において、共通インターフェースを含むソルバー層による実行のために１つ以上の命令を生成するためのシステムが記載され、該システムは、ソルバー層を含むｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのコンピューティングシステム；ｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのコンピューティングシステムに連結される、少なくとも１つのコンピュータープロセッサ及びメモリを含むデジタルコンピューター；少なくとも１つのコンピュータープロセッサにより実行された時に方法を実施する、コンピュータープロセッサ実行可能命令を保存するコンピューターメモリを含み、前記方法は、アプリケーションがデジタルコンピューター上で実行される、アプリケーションインターフェースにてアプリケーションからユーザー入力を承諾する工程；ユーザー入力の要求に依存して発見的又は正確に解かれる１つ以上のアルゴリズムをアルゴリズム層で実施する工程であって、１つ以上のアルゴリズムはアプリケーションの複雑性を除外する、工程；制約なし多項式二値変数最適化（ＰＵＢＯ）の形態で、アプリケーション空間から１つ以上の命令へと１つ以上のアルゴリズムを変換する工程；及びソルバー層の共通インターフェースにてＰＵＢＯの形態で１つ以上の命令を実行する工程であって、ここで共通インターフェースは、量子的又は古典的コンピューターに依存しないインターフェースを提供する１つ以上の制約なし多項式二値変数最適化（ＰＵＢＯ）ソルバーを含む、工程を含む。
【００１９】
本明細書にはまた、特定の実施形態において、機械実行可能コードを含む非一時的コンピューター可読媒体が記載され、該機械実行可能コードは、１つ以上のコンピュータープロセッサによる実行時、少なくとも１つのコンピュータープロセッサ及びメモリを含むデジタルコンピューターによって実施可能なアプリケーションを生成し、共通インターフェースを含んでいるｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのコンピューティングシステムのソルバー層による実行のために１つ以上の命令を生成して、出力を生成し、前記アプリケーションは、アプリケーションがデジタルコンピューター上で実行される、アプリケーションインターフェースにてアプリケーションからユーザー入力を承諾するようにプログラム又は構成されるソフトウェアモジュール；ユーザー入力の要求に依存して発見的又は正確に解かれる１つ以上のアルゴリズムをアルゴリズム層で実施するようにプログラム又は構成されるソフトウェアモジュールであって、１つ以上のアルゴリズムはアプリケーションの複雑性を除外する、ソフトウェアモジュール；制約なし多項式二値変数最適化（ＰＵＢＯ）の形態で、アプリケーション空間から１つ以上の命令へと１つ以上のアルゴリズムを変換するようにプログラム又は構成されるソフトウェアモジュール；及びソルバー層の共通インターフェースにてＰＵＢＯの形態で１つ以上の命令を実行するようにプログラム又は構成されるソフトウェアモジュールであって、ここで共通インターフェースは、量子的又は古典的コンピューターに依存しないインターフェースを提供する１つ以上の制約なし多項式二値変数最適化（ＰＵＢＯ）ソルバーを含む、ソフトウェアモジュールを含む。
【００２０】
本明細書には、特定の実施形態において、データを保存するためのシステムが記載され、該システムは、量子ビットとしてデータを保存する量子計算システム；及び量子計算システムに連結された１つ以上のコンピュータープロセッサを含み、ここで１つ以上のコンピュータープロセッサは、アプリケーションインターフェースにてアプリケーションからユーザー入力を承諾し；ユーザー入力に応じて、量子計算システムを含む複数のタイプの量子計算システムのための命令を含むデータベースからの、量子計算システムのための１つ以上の命令を生成するために１つ以上のアルゴリズムを使用し；及び１つ以上の命令を実行するよう量子計算システムに命令するように、個々に又は総体的にプログラムされる。
【００２１】
他に定義されない限り、本明細書で使用されるテクニカルタームは全て、本発明が属する分野における当業者の１人により共通して理解されるものと同じ意味を有する。本明細書と添付の請求項で使用されるように、単数形「ａ」、「ａｎ」、及び「ｔｈｅ」は、他に内容が明確に指示しない限り、複数の指示を含む。「又は」への任意の言及は、別段の定めがない限り、「及び／又は」を包含するように意図される。
【００２２】
用語「キュービット」及び同様の用語は一般に、ヒルベルト空間上で表され、且つ量子ビットの２つの状態を表示する少なくとも２つの別個且つ識別可能な固有状態を実現する、量子機械システムの物理的な実装を指す。量子ビットはデジタルビットの類似物であり、ここで周囲の記憶デバイスは、２つの状態の量子情報の２つの状態
【００２３】
【数１】
2019513276.tif 000003
を記憶するが、２つの状態を重ね合わさせても記憶する。
【００２４】
【数２】
2019513276.tif 000004
様々な実施形態において、そのようなシステムは、付加的な固有状態が縮退測定（ｄｅｇｅｎｅｒａｔｅ  ｍｅａｓｕｒｅｍｅｎｔｓ）によって２つの論理的な状態を表わすために使用される場合に、２より多くの固有状態を有し得る。キュービットの実装の様々な実施形態が提案されている；例えば、電子工学的に又は核磁気共鳴で測定且つ制御される固体核スピン、捕捉されたイオン、光共振器中の原子（共振器量子電気力学）、液体核スピン、量子ドットにおける電子電荷又はスピン自由度、ジョセフソン接合に基づく超伝導量子回路［Ｂａｒｏｎｅ  ａｎｄ  Ｐａｔｅｒｎｏ，  １９８２，  Ｐｈｙｓｉｃｓ  ａｎｄ  Ａｐｐｌｉｃａｔｉｏｎｓ  ｏｆ  ｔｈｅ  Ｊｏｓｅｐｈｓｏｎ  Ｅｆｆｅｃｔ，  Ｊｏｈｎ  Ｗｉｌｅｙ  ａｎｄ  Ｓｏｎｓ，  Ｎｅｗ  Ｙｏｒｋ；  Ｍａｒｔｉｎｉｓ  ｅｔ  ａｌ．，  ２００２，  Ｐｈｙｓｉｃａｌ  Ｒｅｖｉｅｗ  Ｌｅｔｔｅｒｓ  ８９，  １１７９０１］、及びヘリウム上の電子（ｅｌｅｃｔｒｏｎｓ  ｏｎ  Ｈｅｌｉｕｍ）。
【００２５】
用語「超伝導キュービットのシステム」及び同様の用語は一般に、複数のキュービット、及び複数のキュービットの複数のペア間の複数のカップリングを含み、量子デバイス制御システムを更に含む、量子機械システムを指す。
【００２６】
用語「量子コンピューター」は一般に、量子ビット（キュービット）を使用して計算を実行することができるコンピューターを指し、状態が重ね合わされたものであり得る。量子チューリング機械は、そのような量子コンピューターの理論モデルであり、普遍的な量子コンピューターとして知られている。量子コンピューターは、非決定的且つ確立的コンピューターと理論的な類似性を共有する。
【００２７】
幾つかの実施形態において、量子コンピューターは１つ以上の量子プロセッサを含む。量子コンピューターは１つ以上の量子アルゴリズムを実行するように構成され得る。量子コンピューターは、ショアのアルゴリズム又は量子多体系のシミュレーションを使用する素数因数分解のような、現在知られている最良のアルゴリズムをも使用する任意の古典的コンピューターよりも非常に早く、特定の問題を解くことができる場合がある。起こり得る確率的な古典的アルゴリズムよりも速く実行される、サイモンのアルゴリズムなどの量子アルゴリズムが存在する。量子アルゴリズムの例は、限定されないが、量子最適化アルコリズム、量子フーリエ変換、振幅増幅、量子ウォークアルゴリズム、及び量子進化アルゴリズムが挙げられる。量子コンピューターは、古典的コンピューターが適度な量の時間内に解くことができない場合もある問題を、効率的に解くことができる場合がある。故に、本明細書に開示される量子コンピューターは、複雑な問題を解くための量子計算リソースの長所を利用し得る。
【００２８】
任意のタイプの量子コンピューターが、本明細書に開示される技術に適しているかもしれない。量子コンピューターの例は、限定されないが、断熱量子コンピューター、量子ゲートアレイ、一方向量子コンピューター、トポロジカル量子コンピューター、量子チューリング機械、超伝導体ベースの量子コンピューター、捕捉イオン量子コンピューター、光格子、量子ドットコンピューター、スピンベースの量子コンピューター、空間ベースの量子コンピューター、Ｌｏｓｓ−ＤｉＶｉｎｃｅｎｚｏの量子コンピューター、核磁気共鳴（ＮＭＲ）ベースの量子コンピューター、液体−ＮＭＲ量子コンピューター、固体ＮＭＲ  Ｋａｎｅ量子コンピューター、ヘリウム上の電子の量子コンピューター、空洞量子電気力学ベースの量子コンピューター、分子磁石量子コンピューター、フラーレンベースの量子コンピューター、線形光学量子コンピューター、ダイヤモンドベースの量子コンピューター、ボース＝アインシュタイン凝縮ベースの量子コンピューター、トランジスタベースの量子コンピューター、及び希土類金属イオンにドープした無機結晶ベースの量子コンピューターが挙げられる。
【００２９】
本開示のシステムは、ｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのコンピューティングシステムを含むか、又はそれを利用し得る。ｑｕａｎｔｕｍ−ｒｅａｄｙのコンピューティングシステムは、量子コンピューターに動作可能に連結されたデジタルコンピューターを含み得る。量子コンピューターは１つ以上の量子アルゴリズムを実行するように構成され得る。デジタルコンピューターは、メモリ及び少なくとも１つのコンピュータープロセッサを含み得る。コンピューターメモリは、アプリケーションをレンダリングするために少なくとも１つのコンピュータープロセッサによって実行可能な命令を備えたコンピュータープログラムを含み得る。アプリケーションは、ユーザーによる量子コンピューターの使用を促進し得る。ｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのコンピューティングシステムは、量子コンピューター及び古典的コンピューターを含み、量子コンピューター及び古典的コンピューターはデジタルコンピューターに動作可能に連結される。量子コンピューターは、計算上の問題を解決するために１つ以上の量子アルゴリズムを実行するように構成され得る。古典的コンピューターは、少なくとも１つの古典的プロセッサ及びコンピューターメモリを含み、且つ、計算上の問題を解決するために１つ以上の古典的アルゴリズムを実行するように構成され得る。デジタルコンピューターは少なくとも１つのコンピュータープロセッサ及びコンピューターメモリを含み、ここでデジタルコンピューターは、アプリケーションをレンダリングするために少なくとも１つのコンピュータープロセッサによって実行可能な命令を備えたコンピュータープログラムを含み得る。アプリケーションは、ユーザーによる量子コンピューター及び／又は古典的コンピューターの使用を促進し得る。
【００３０】
用語「量子計算システム」及び同様の用語は一般に、量子計算操作を実行するために重ね合わせ及びエンタングルメントなどの量子力学的な現象を利用することができるシステムを指す。量子計算システムはｑｕａｎｔｕｍ−ｒｅａｄｙの計算システムを含み得る。量子計算システムはｑｕａｎｔｕｍ−ｅｎａｂｌｅｄの計算システムを含み得る。量子計算システムは、例えば、量子アニーラー、イジングソルバー、光パラメトリック発振器（ＯＰＯ）、量子計算のゲートモデル、又は別のタイプの量子コンピューターを含み得る。量子計算システムはトランジスタに基づくデジタル電子コンピューターとは異なることもある。例えば、デジタルコンピューターは、データを二進数字（ビット）にコードすることを必要とし、その各々は常に、２つの有限の状態（０又は１）のうち１つであり、量子計算は、状態が重ね合わさり得る量子ビット（キュービット）を使用する。超伝導キュービットのシステムは様々な実施形態において製造され得ることが認識される。幾つかの実施形態において、超伝導キュービットのシステムは「量子アニーラー」である。
【００３１】
量子コンピューター（又は他のタイプの非古典的コンピューター）は、コプロセッサとして古典的コンピューターを並行して作動させることができる場合もある。ｑｕａｎｔｕｍ−ｅｎａｂｌｅｄの計算のハイブリッド構造は、困難な最適化問題のような、複雑な計算上のタスクに対処するのに非常に効率的であり得る。
【００３２】
用語「量子アニーラー」及び同様の用語は一般に、例えばＦａｒｈｉ，  Ｅ．  ｅｔ  ａｌ．，  “Ｑｕａｎｔｕｍ  Ａｄｉａｂａｔｉｃ  Ｅｖｏｌｕｔｉｏｎ  Ａｌｇｏｒｉｔｈｍｓ  ｖｅｒｓｕｓ  Ｓｉｍｕｌａｔｅｄ  Ａｎｎｅａｌｉｎｇ”  ａｒＸｉｖ．ｏｒｇ：ｑｕａｎｔ  ｐｈ／０２０１０３１  （２００２），  ｐｐ．  １−１６に記載されるような、量子アニーリングを使用するイジングスピンモデルにおけるスピンの構成の最適化を支援する（ｃａｒｒｉｅｓ）、超伝導キュービットのシステムを指す。そのようなアナログプロセッサの実施形態は、ＭｃＧｅｏｃｈ，  Ｃａｔｈｅｒｉｎｅ  Ｃ．  ａｎｄ  Ｃｏｎｇ  Ｗａｎｇ，  （２０１３），  “Ｅｘｐｅｒｉｍｅｎｔａｌ  Ｅｖａｌｕａｔｉｏｎ  ｏｆ  ａｎ  Ａｄｉａｂａｔｉｃ  Ｑｕａｎｔｕｍ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｃｏｍｂｉｎａｔｏｒｉａｌ  Ｏｐｔｉｍｉｚａｔｉｏｎ”  Ｃｏｍｐｕｔｉｎｇ  Ｆｒｏｎｔｉｅｒｓ，”  Ｍａｙ  １４  １６，  ２０１３  （ｈｔｔｐ：／／ｗｗｗ．ｃｓ．ａｍｈｅｒｓｔ．ｅｄｕ／ｃｃｍ／ｃｆ１４−ｍｃｇｅｏｃｈ．ｐｄｆ）に開示され、また米国特許出願公開ＵＳ２００６／０２２５１６５にも開示されている。
【００３３】
多層構造のソフトウェア開発キット（ＳＤＫ）
幾つかの実施形態において、本明細書に記載される方法、システム、及び媒体は、多層構造のソフトウェア開発キット、又はその使用を含む。幾つかの実施形態において、多層構造のソフトウェア開発キット（ＳＤＫ）は二層構造を含む。幾つかの実施形態において、多層構造ソフトウェア開発キット（ＳＤＫ）は三層構造を含む。幾つかの実施形態において、多層構造ソフトウェア開発キット（ＳＤＫ）は、四層以上の構造を含む。
【００３４】
幾つかの実施形態において、多層構造のソフトウェア開発キット（ＳＤＫ）は、ビジネスアナリスト、リスクアナリスト、証券アナリスト、及びソーシャルネットワークアナリストを含むデータアナリスト；ソフトウェアエンジニア及びプログラマーを含むアプリケーション開発者；並びに、技術者、数学者、物理学者、及びグラフ理論家（ｇｒａｐｈ  ｔｈｅｏｒｉｓｔｓ）を含む最適化の専門家などの聴衆に標的とされている。幾つかの実施形態において、これら分野での用途は頻繁に、計算上高価なＮＰ完全な及びＮＰ困難な問題を解決することもある。
【００３５】
幾つかの実施形態において、三層構造のソフトウェア開発キット（ＳＤＫ）は、これらのＮＰ完全且つＮＰ困難な問題を解決するために、高度に有効な古典的二次式ソルバーにそれらの進歩を統合する。幾つかの実施形態において、ｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのＳＤＫの多層構造は、ＮＰ完全且つＮＰ困難な問題を解決する複雑性を除外しつつ、解決メカニズムをカスタマイズするためにより熟練した開発者に十分なアクセスを提供し得る。
【００３６】
三層構造のソフトウェア開発キット（ＳＤＫ）
幾つかの実施形態において、本明細書に記載される方法、システム、及び媒体は、三層構造のソフトウェア開発キット、又はその使用を含む。幾つかの実施形態において、三層構造のソフトウェア開発キット（ＳＤＫ）は、アルゴリズム層、二元多項式層、及び共通ソルバーインターフェース層を含む。幾つかの実施形態において、アルゴリズム層は、ユーザー入力の要求に依存して発見的又は正確に解かれる１つ以上のアルゴリズムを実施するために使用され、１つ以上のアルゴリズムはアプリケーションの複雑性を除外する。幾つかの実施形態において、二元多項式層は、制約なし多項式二値変数最適化（ＰＵＢＯ）の形態で、アプリケーション空間から１つ以上の命令へと１つ以上のアルゴリズムを変換するために使用される。ＰＵＢＯの形態での命令は通常、ｎ｛０、１｝の値の変数における次数の多項式関数の最小化へと導かれる。この次数は１であり得る。この次数は２以上であり得る。ＰＵＢＯ形態の一例は、制約なし二次形式二値変数最適化（ＱＵＢＯ）形態である。ＱＵＢＯの形態での命令は通常、ｎ｛０、１｝の値の変数における二次多項式関数の最小化（例えば、二次の多項式）へと導かれる。他のタイプのＰＵＢＯ形態として、２を超える次数の多項式を備えたＰＵＢＯ形態などが使用され得る。幾つかの実施形態において、共通ソルバーインターフェース層は、ＰＵＢＯの形態で１つ以上の命令を実行するために使用され、ここで共通ソルバーインターフェース層は、量子的又は古典的コンピューターに依存しないインターフェースを提供する１つ以上の制約なし多項式二値変数最適化（ＰＵＢＯ）ソルバーを含む。ゲートモデル量子コンピューターは、例えば、２を超える次数の制約なし多項式二値変数最適化（ＰＵＢＯ）形態を解くことができる。新世代の断熱量子アニーラーは、二次形式へのソフトウェア中での変換を使用することなく、これらの問題を自然に解く場合がある。
【００３７】
図１を参照すると、特定の実施形態において、アルゴリズム層、二元多項式層、及び、量子コンピューターに基づいてアプリケーションに対するソリューションを提供する共通ソルバーインターフェース層を含む三層構造が提供される。特に、アルゴリズム層は、アプリケーションに接続し且つユーザーアプリケーション入力を承諾する、上位層であり；一方で共通ソルバーインターフェース層は、ＳＤＫの上位層に共通インターフェースを晒す、様々なＰＵＢＯ問題ソルバーを含むＳＤＫの下位層である。
【００３８】
図２を参照すると、特定の実施形態において、量子コンピューターに基づいてアプリケーションに対するソリューションを提供する、アルゴリズム層、二元多項式層（例えば、制約つき整数プログラミング、又は制約つき二元プログラミング）、及び共通ソルバーインターフェース層（例えば、共通インターフェースを含むソルバー層）を含む、三層構造の実施形態が提供される。
【００３９】
図６を参照すると、特定の実施形態において、アルゴリズム層、二元多項式層、及び、それぞれのコンポーネントと共に表示される共通ソルバーインターフェース層を含む三層構造が実証される。特に、アルゴリズム層は、以下から成る１以上の適切なアルゴリズムを含む：ｍａｘ  ｋ−準クリーク、彩色数、グラフ類似性、カラーリング実行可能性、最大ｃｏ−κ−プレックス、最小クリーク被覆、κ−クリーク被覆の実行可能性、線形ナップサック、及び平衡化分割。二元多項式層は、以下のうち１つ以上の適切な変換コンポーネントの使用を含む：ＰＵＢＯからＱＵＢＯへの変換（Ｐｕｂｏ２Ｑｕｂｏ）、Ｉｓｉｎｇ  Ｓｕｐｐｏｒｔ、多項式の構造及び操作、二元空間における効果的な探索、及びランダム多項式生成装置。制約なし多項式二値変数最適化（ＰＵＢＯ）ソルバーは、以下のうち１つ以上を含む：Ｄ−Ｗａｖｅ、ｇｒａｙ  ｅｘｈａｕｓｔｉｖｅソルバー、ｍｕｌｔｉ−ａｇｅｎｔ  Ｔａｂｕ  １−Ｏｐｔソルバー、Ｔａｂｕ  １−Ｏｐｔソルバー、ＰＴＩＣＭソルバー、パスに再リンクするソルバー、及びＧＰＵベースのシミュレートされた量子アニーリングソルバー。
【００４０】
幾つかの実施形態において、ｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのＳＤＫは、高度に最適化され、最適化問題を解決するために最先端のヒューリスティックス及び技術から利益を得る場合がある。幾つかの実施形態において、モジュール設計により、開発者が自身のアルゴリズム及びソルバーを加えることによって更にＳＤＫを拡張することが可能となり得る。
【００４１】
二層構造のソフトウェア開発キット（ＳＤＫ）
幾つかの実施形態において、本明細書に記載される方法、システム、及び媒体は、二層構造のソフトウェア開発キット、又はその使用を含む。幾つかの実施形態において、二層構造のソフトウェア開発キット（ＳＤＫ）は、アルゴリズム層及び共通ソルバーインターフェース層を含む。この代替的な二層構造において、三層構造のＳＤＫにおける二元多項式層の関数は、１つ以上のアルゴリズムを変換するためのものであり、二層のうち何れか１つで実施され得る。幾つかの実施形態において、１つ以上のアルゴリズムは二元多項式層を使用して変換される。他の幾つかの実施形態において、１つ以上のアルゴリズムはソルバー層の共通インターフェースによって変換される。
【００４２】
幾つかの実施形態において、二層構造のＳＤＫにおけるアルゴリズム層は、三層構造のＳＤＫにおけるアルゴリズム層及び二元多項式層両方の関数を完了する。更なる実施形態において、アルゴリズム層は、ユーザー入力の要求に依存して発見的又は正確に解かれる１つ以上のアルゴリズムを実施するために使用され、１つ以上のアルゴリズムはアプリケーションの複雑性を除外する。更なる実施形態において、アルゴリズム層はまた、制約なし多項式二値変数最適化（ＰＵＢＯ）の形態で、アプリケーション空間から１つ以上の命令へと１つ以上のアルゴリズムを変換するために使用される。幾つかの実施形態において、共通ソルバーインターフェース層は、ＰＵＢＯの形態で１つ以上の命令を実行するために使用され、ここで共通ソルバーインターフェース層は、量子的又は古典的コンピューターに依存しないインターフェースを提供する１つ以上の制約なし多項式二値変数最適化（ＰＵＢＯ）ソルバーを含む。
【００４３】
幾つかの実施形態において、二構造のＳＤＫにおける共通ソルバーインターフェース層は、三層構造のＳＤＫにおける二元多項式層及び共通ソルバーインターフェース層両方の関数を完了する。更なる実施形態において、共通ソルバーインターフェース層は、制約なし多項式二値変数最適化（ＰＵＢＯ）の形態で、アプリケーション空間から１つ以上の命令へと１つ以上のアルゴリズムを変換するために使用される。更なる実施形態において、共通ソルバーインターフェース層は、ＰＵＢＯの形態で１つ以上の命令を実行するために使用され、ここで共通ソルバーインターフェース層は、量子的又は古典的コンピューターに依存しないインターフェースを提供する１つ以上の制約なし多項式二値変数最適化（ＰＵＢＯ）ソルバーを含む。幾つかの実施形態において、アルゴリズム層は、ユーザー入力の要求に依存して発見的又は正確に解かれる１つ以上のアルゴリズムを実施するために使用され、１つ以上のアルゴリズムはアプリケーションの複雑性を除外する。
【００４４】
アルゴリズム層
幾つかの実施形態において、本明細書に記載される方法、システム、及び媒体は、アルゴリズム層、又はその使用を含む。幾つかの実施形態において、アルゴリズム層は、ユーザー入力の要求に依存して発見的又は正確に解かれる１つ以上のアルゴリズムを実施するために使用されることもあり、１つ以上のアルゴリズムはアプリケーションの複雑性を除外する。
【００４５】
幾つかの実施形態において、このアルゴリズム層は、ＳＤＫにおける最高水準の除外（ａｂｓｔｒａｃｔｉｏｎ）を提供する。アルゴリズムのユーザーは、高レベルのアルゴリズムに注意を払うことのみ必要とする。これらアルゴリズムがどのようにしてＰＵＢＯを翻訳するのか、及びＰＵＢＯが解かれる方法は、アルゴリズム層によって除外され得る。
【００４６】
多くの分野における開発者は、ＮＰ完全且つＮＰ困難な問題に遭遇する。幾つかの実施形態において、ＳＤＫにおけるアルゴリズム層は、アプリケーションの要求に依存して発見的に又は正確に解かれ得る多数のアルゴリズムが実施される場所である。事実上、これは、開発者から問題の複雑性を除外し得る。アルゴリズムがこの層に存在する多くの問題のうち少数が、分割、巡回セールスマン、最小スパニングツリー、及び最大準クリークを含む。
【００４７】
幾つかの実施形態において、各アルゴリズムの入力及び出力は、ユーザーが各コンポーネントをどのように作動させるのかを定義するので、アルゴリズムの記載よりも重要である。幾つかの実施形態において、アルゴリズム層のユーザーは、ＰＵＢＯの基礎である多項式最適化に対処する必要はない。幾つかの実施形態において、アルゴリズム層のユーザーは、Ｄ−Ｗａｖｅシステムなどの量子アニーラーに直接対処しない。
【００４８】
幾つかの実施形態において、アルゴリズム層で使用されるアルゴリズムは、以下のうち１つ以上を含む：ｍａｘ  ｋ−準クリーク、彩色数、グラフ類似性、カラーリング実行可能性、最大ｃｏ−κ−プレックス、最小クリーク被覆、κ−クリーク被覆の実行可能性、線形ナップサック、及び平衡化分割。図３を参照すると、特定の実施形態において、アルゴリズム層に適しているアルゴリズムコンポーネントのタイプの様々な限定されない例が、実証される。幾つかの実施形態において、アルゴリズム層に新たなアルゴリズムを加えることにより、ｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのソフトウェア開発キットは、新たなアプリケーションのために継続的に拡張される。
【００４９】
幾つかの実施形態において、ｍａｘ  ｋ−準クリークは、アルゴリズム層におけるコンポーネントの１つとして使用され得る。幾つかの実施形態において、ｍａｘ  ｋ−準クリークのコンポーネントは、グラフの密部分を見出すために使用されるグラフ理論であり、ここで、ユーザーはグラフを入力し、密なサブグラフのノードのリストを受ける。
【００５０】
幾つかの実施形態において、彩色数は、アルゴリズム層におけるコンポーネントの１つとして使用され得る。幾つかの実施形態において、彩色数コンポーネントは、隣接するノードが同じ色とならないようにグラフのノードに色を付けるために使用されるグラフ理論であり、ここで、入力はグラフであり、出力はグラフの着色であり、着色はグラフのノードへの色のマッピングである。
【００５１】
幾つかの実施形態において、グラフ類似性は、アルゴリズム層におけるコンポーネントの１つとして使用され得る。幾つかの実施形態において、グラフ類似性コンポーネントは、入力が２つのグラフであり且つ出力がグラフの類似する下部構造であるグラフ理論である。幾つかの実施形態において、グラフ類似性は、アルゴリズム層における他のコンポーネントの１つを内部で使用する。
【００５２】
幾つかの実施形態において、線形ナップサックは、アルゴリズム層におけるコンポーネントの１つとして使用され得る。幾つかの実施形態において、線形ナップサックのコンポーネントは、有価証券及び投資の選別に使用される人気の高い組み合せ最適化問題を解決するために使用されるアルゴリズムであり、ここで、入力は１セットの品物及びその重量と価格であり、出力は、品物の最良（例えば、最適）のセットを選ぶことにより得られる極大利得である。
【００５３】
幾つかの実施形態において、アルゴリズム層は、制約なし多項式二値変数最適化（ＰＵＢＯ）の形態で、アプリケーション空間から１つ以上の命令へと１つ以上のアルゴリズムを変換するために使用される。
【００５４】
二元多項式層
幾つかの実施形態において、本明細書に記載される方法、システム、及び媒体は、二元多項式層、又はその使用を含む。幾つかの実施形態において、二元多項式層は、制約なし多項式二値変数最適化（ＰＵＢＯ）の形態で、アプリケーション空間から１つ以上の命令へと１つ以上のアルゴリズムを変換するために使用される。
【００５５】
幾つかの実施形態において、二元多項式層は、ユーザーが自身の問題を、共通ソルバーインターフェースにおけるソルバーが解くことができる問題のフォーマットであるＰＵＢＯ形態へとより容易にモデル化することを支援する。幾つかの実施形態において、二元多項式層は、問題をアプリケーション空間から多項式形態へと変換し、且つ共通ソルバーインターフェース層に送信するためにそれらを調製するために、アルゴリズム開発者に使いやすい機構を提供する。
【００５６】
幾つかの実施形態において、１つ以上のアルゴリズムの変換は、ＰＵＢＯからＱＵＢＯへの変換、Ｉｓｉｎｇ  Ｓｕｐｐｏｒｔ、二元多項式の操作、及び二元空間における効果的な探索のうち１つ以上の使用を含む。図４を参照すると、特定の実施形態において、ＰＵＢＯからＱＵＢＯへの変換（Ｐｕｂｏ２Ｑｕｂｏ）、Ｉｓｉｎｇ  Ｓｕｐｐｏｒｔ、多項式の構造及び操作、二元空間における効果的な探索、及びランダム多項式生成装置などの、二元多項式層に適している変換コンポーネントのタイプの様々な限定されない例が、実証される。
【００５７】
幾つかの実施形態において、ＰＵＢＯからＱＵＢＯへの変換（Ｐｕｂｏ２Ｑｕｂｏ）の技術は、二元多項式層のためのコンポーネントの１つとして使用される。幾つかの実施形態において、ＰＵＢＯからＱＵＢＯへの変換のコンポーネントは、多項式がＤ−Ｗａｖｅによって直接解くことが可能となるように、多くとも二次となる必要がある時に使用される。更なる実施形態において、このモジュールは、より高レベルの最適化問題を多くとも二次の多項式へと変換するプロセスを自動化する。
【００５８】
幾つかの実施形態において、Ｉｓｉｎｇ  ｓｕｐｐｏｒｔは、二元多項式層のためのコンポーネントの１つとして使用される。幾つかの実施形態において、Ｉｓｉｎｇ  ｓｕｐｐｏｒｔのコンポーネントは、ＰＵＢＯからイジングモデルへの、或いはその逆の線形変換がある時に使用される。幾つかの実施形態において、イジングモデルは、量子アニーラー（Ｄ−Ｗａｖｅ）により解決される実際の問題である。更なる実施形態において、ＰＵＢＯとイジングモデルとの間の変換は、このコンポーネントにより提供される。
【００５９】
幾つかの実施形態において、二元多項式の操作は、二元多項式層のためのコンポーネントの１つとして使用される。幾つかの実施形態において、二元多項式の操作のコンポーネントによりユーザーは二元多項式を容易に作動させることが可能となり、ここで、追加、掛け合わせ、累乗などの操作は、二元多項式層において提供される。下位の共通ソルバーインターフェース層に送信されるＰＵＢＯを作成する時に、これらは有用なツールとなる。
【００６０】
共通ソルバーインターフェース層
幾つかの実施形態において、本明細書に記載される方法、システム、及び媒体は、共通ソルバーインターフェース層、又はその使用を含む。幾つかの実施形態において、共通ソルバーインターフェース層は、ＰＵＢＯの形態で１つ以上の命令を実行するために使用され、ここで共通ソルバーインターフェース層は、量子的又は古典的コンピューターに依存しないインターフェースを提供する１つ以上の制約なし多項式二値変数最適化（ＰＵＢＯ）ソルバーを含む。
【００６１】
幾つかの実施形態において、共通ソルバーインターフェース層は、様々な制約なし多項式二値変数最適化（ＰＵＢＯ）問題のソルバーを含むＳＤＫの下位層である。幾つかの実施形態において、これらソルバーはＳＤＫの上位層に共通インターフェースを晒し、それにより、選択されたＰＵＢＯソルバーは、アプリケーションの要求に基づいて別のものと容易に切り換えられる場合があり、コードへの改変はほとんど又は全くない。
【００６２】
幾つかの実施形態において、共通ソルバーインターフェース層は、基盤となるハードウェアに最も接近しており、古典的コンピューター又は量子アニーラーである。幾つかの実施形態において、共通ソルバーインターフェース層は、ユーザーがハードウェアの複雑性を管理する必要がなくなるように、Ｄ−ＷａｖｅをオラクルＰＵＢＯソルバーにする目的を果たす。幾つかの実施形態において、共通ソルバーインターフェース層は、量子ハードウェア及び古典的ＰＵＢＯソルバーに共通インターフェースを提供することによって、ｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのアプリケーションの開発を可能にする目的を果たす。幾つかの実施形態において、共通ソルバーインターフェース層における基礎的なソルバーは、量子から古典的、又はその逆に切り替えられることが可能であり、アプリケーションレベルコードを無傷なままにする。幾つかの実施形態において、同じアプリケーションは、ＳＤＫ上で実行される場合、量子又は古典的コンピューターのいずれかの上で実行することができる。
【００６３】
幾つかの実施形態において、共通ソルバーインターフェース層により使用される制約なし多項式二値変数最適化（ＰＵＢＯ）ソルバーは、次のものの１つ以上を含む：Ｄ−Ｗａｖｅ、ｇｒａｙ  ｅｘｈａｕｓｔｉｖｅソルバー、ｍｕｌｔｉ−ａｇｅｎｔ  Ｔａｂｕ  １−Ｏｐｔソルバー、Ｔａｂｕ  １−Ｏｐｔソルバー、ＰＴＩＣＭソルバー、パスに再リンクするソルバー、及びＧＰＵベースのシミュレートされた量子アニーリングソルバー。図５を参照すると、特定の実施形態において、共通ソルバーインターフェース層に適しているＰＵＢＯソルバーのタイプの様々な限定されない例が、実証される。
【００６４】
幾つかの実施形態において、特定のソルバーコンポーネントは、Ｄ−Ｗａｖｅに接続するソフトウェアラッパーとして共通ソルバーインターフェース層で使用される。幾つかの実施形態において、このＤ−Ｗａｖｅのソルバーコンポーネントは、ハードウェアと直接インターフェーシングする複雑性を除外する。幾つかの実施形態において、このＤ−Ｗａｖｅソルバーコンポーネントは、単純性を達成し且つ使いやすいインターフェースを提供するためにヘルパーモジュールを利用する。幾つかの実施形態において、このＤ−Ｗａｖｅソルバーコンポーネントは完全な埋め込みモジュールを含み、ここで埋め込みは、ＱＵＢＯがＤ−Ｗａｖｅ上で解決される時に常に解決される必要がある、複雑な問題である。更なる実施形態において、このモジュールは、ユーザーが毎回その問題の解決について懸念する必要がないように、ユーザーに予め計算された一般的な埋め込みを提供する。幾つかの実施形態において、このＤ−Ｗａｖｅソルバーコンポーネントは、仮想の埋め込みモジュールを含む。更なる実施形態において、このモジュールは、埋め込みプロセスを加速させるために以前に計算された埋め込みをユーザーが再使用することを可能にするために使用される。幾つかの実施形態において、このＤ−Ｗａｖｅソルバーコンポーネントは、チップ情報モジュールを含む。更なる実施形態において、このモジュールは、ユーザーに優しい統計、及びチップと構造の状況に関する情報を提供するために使用される。
【００６５】
幾つかの実施形態において、ｇｒａｙ  ｅｘｈａｕｓｔｉｖｅコンポーネントは、包括的な正確なＰＵＢＯソルバーとして共通ソルバーインターフェース層で使用される。幾つかの実施形態において、ソルバーは、Ｄ−Ｗａｖｅと同じインターフェースを提供し、且つ、ソルバーは正確なソルバーであるため、問題のモデリングの正確さを確認するために使用される。
【００６６】
幾つかの例において、ヒューリスティックソルバーが使用され得る。例えば、Ｔａｂｕ  １−ｏｐｔコンポーネントが、ヒューリスティックＰＵＢＯソルバーとして共通ソルバーインターフェース層で使用され得る。Ｔａｂｕ  １−ｏｐｔソルバーは、Ｄ−Ｗａｖｅインターフェースと同様のインターフェースを提供し得る。Ｔａｂｕ  １−ｏｐｔソルバーは、Ｄ−Ｗａｖｅよりもさらに多くの変形でＰＵＢＯを解くことができる場合がある。Ｔａｂｕ  １−ｏｐｔソルバーは、ソリューションの最適性を保証しないこともある。Ｔａｂｕ  １−ｏｐｔソルバーは、Ｄ−Ｗａｖｅを使用して解決可能な問題を解決するために、古典的コンピューターと共に現在使用されているものと同様のヒューリスティックアプローチであり得る。
【００６７】
幾つかの実施形態において、ＧＰＵベースのシミュレートされた量子アニーリングソルバーは、包括的な正確なＰＵＢＯソルバーとして共通ソルバーインターフェース層で使用される。幾つかの実施形態において、ＧＰＵベースのシミュレートされた量子アニーリングソルバーは、ヒューリスティックＰＵＢＯソルバーとして共通ソルバーインターフェース層で使用される。
【００６８】
幾つかの実施形態において、共通ソルバーインターフェース層は、制約なし多項式二値変数最適化（ＰＵＢＯ）の形態で、アプリケーション空間から１つ以上の命令へと１つ以上のアルゴリズムを変換するために使用される。
【００６９】
デジタル処理デバイス
幾つかの実施形態において、本明細書に記載されるｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのソフトウェア開発キット（ＳＤＫ）は、デジタル処理デバイス、又はその使用を含む。更なる実施形態において、デジタル処理デバイスは、デバイスの機能を実行する１つ以上のハードウェア中央処理装置（ＣＰＵ）を含む。また更なる実施形態において、デジタル処理デバイスは、実行可能命令を実行するように構成されるオペレーティングシステムを更に含む。幾つかの実施形態において、デジタル処理デバイスはコンピューターネットワークに随意に接続される。更なる実施形態において、デジタル処理デバイスは、デジタル処理デバイスがワールド・ワイド・ウェブにアクセスするようにインターネットに随意に接続される。また更なる実施形態において、デジタル処理デバイスは、クラウド・コンピューティング・インフラストラクチャーに随意に接続される。他の実施形態において、デジタル処理デバイスはイントラネットに随意に接続される。他の実施形態において、デジタル処理デバイスはデータ記憶デバイスに随意に接続される。
【００７０】
本明細書の記載に従い、適切なデジタル処理デバイスは、例えば、サーバーコンピューター、デスクトップコンピューター、ラップトップコンピューター、ノートブックコンピューター、サブノートブックコンピューター、ネットブックコンピューター、ネットパッド（ｎｅｔｐａｄ）コンピューター、セットトップコンピューター、メディアストリーミングデバイス、ハンドヘルドコンピューター、インターネット家電、モバイルスマートフォン、タブレットコンピューター、パーソナルデジタルアシスタント、ビデオゲームコンソール、又は伝達手段（ｖｅｈｉｃｌｅｓ）を含む。当業者は、多くのスマートフォンが、本明細書に記載されるシステムと共に使用するのに適していることを認識する。当業者はまた、随意のコンピューターネットワークの接続性を備えた、選択したテレビ、ビデオプレーヤー、及びデジタル音楽プレーヤーが、本明細書に記載されるシステムと共に使用するのに適していることを認識する。適切なタブレットコンピューターは、ブックレット、スレート、及び転換可能な構成を備えたものを含み得る。
【００７１】
幾つかの実施形態において、デジタル処理デバイスは、実行可能命令を実行するように構成される運用システムを含む。オペレーティングシステムは、例えば、デバイスのハードウェアを管理し、アプリケーションの遂行のためのサービスを提供するプログラム及びデータを含む、ソフトウェアである。当業者は、適切なサーバーオペレーティングシステムが、例えば、ＦｒｅｅＢＳＤ、ＯｐｅｎＢＳＤ、ＮｅｔＢＳＤ（登録商標）、Ｌｉｎｕｘ（登録商標）、Ａｐｐｌｅ（登録商標）、Ｍａｃ  ＯＳ  Ｘ  Ｓｅｒｖｅｒ（登録商標）、Ｏｒａｃｌｅ（登録商標）Ｓｏｌａｒｉｓ（登録商標）、Ｗｉｎｄｏｗｓ  Ｓｅｒｖｅｒ（登録商標）、又はＮｏｖｅｌｌ（登録商標）ＮｅｔＷａｒｅ（登録商標）を含むことを認識する。当業者は、適切なパーソナルコンピュータオペレーティングシステムが、例えば、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）、Ａｐｐｌｅ（登録商標）Ｍａｃ  ＯＳ  Ｘ（登録商標）、ＵＮＩＸ（登録商標）、又は、ＧＮＵ／Ｌｉｎｕｘ（登録商標）などのＵＮＩＸ（登録商標）のようなオペレーティングシステムを含むことを認識する。幾つかの実施形態では、オペレーティングシステムは、クラウドコンピューティングによって提供される。当業者はまた、適切なモバイルスマートフォンのオペレーティングシステムが、例えば、Ｎｏｋｉａ（登録商標）Ｓｙｍｂｉａｎ（登録商標）ＯＳ、Ａｐｐｌｅ（登録商標）ｉＯＳ（登録商標）、Ｒｅｓｅａｒｃｈ  Ｉｎ  Ｍｏｔｉｏｎ（登録商標）ＢｌａｃｋＢｅｒｒｙ  ＯＳ（登録商標）、Ｇｏｏｇｌｅ（登録商標）Ａｎｄｒｏｉｄ（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ  Ｐｈｏｎｅ（登録商標）ＯＳ、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ  Ｍｏｂｉｌｅ（登録商標）ＯＳ、Ｌｉｎｕｘ（登録商標）、又はＰａｌｍ（登録商標）ＷｅｂＯＳ（登録商標）を含むことを認識する。当業者はまた、適切なメディアストリーミングデバイスのオペレーティングシステムが、限定されない例として、Ａｐｐｌｅ  ＴＶ（登録商標）、Ｒｏｋｕ（登録商標）、Ｂｏｘｅｅ（登録商標）、Ｇｏｏｇｌｅ  ＴＶ（登録商標）、Ｇｏｏｇｌｅ  Ｃｈｒｏｍｅｃａｓｔ（登録商標）、Ａｍａｚｏｎ  Ｆｉｒｅ（登録商標）、及びＳａｍｓｕｎｇ（登録商標）ＨｏｍｅＳｙｎｃ（登録商標）を含むことを認識する。当業者はまた、適切なビデオゲームコンソールのオペレーティングシステムが、例えば、Ｓｏｎｙ（登録商標）ＰＳ３（登録商標）、Ｓｏｎｙ（登録商標）ＰＳ４（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｘｂｏｘ  ３６０（登録商標）、Ｍｉｃｒｏｓｏｆｔ  Ｘｂｏｘ  Ｏｎｅ、Ｎｉｎｔｅｎｄｏ（登録商標）Ｗｉｉ（登録商標）、Ｎｉｎｔｅｎｄｏ（登録商標）Ｗｉｉ  Ｕ（登録商標）、又はＯｕｙａ（登録商標）を含み得ることを認識する。
【００７２】
幾つかの実施形態において、デバイスは、記憶デバイス及び／又はメモリデバイスを含む。記憶デバイス及び／又はメモリデバイスは、一時的又は恒久的な基礎に基づいてデータ又はプログラムを記憶するために使用される１以上の物理的な装置であり得る。幾つかの実施形態において、デバイスは揮発性メモリであり、記憶した情報を維持するための電力を必要とする。幾つかの実施形態において、デバイスは不揮発性メモリであり、デジタル処理デバイスに電力が供給されないときに、記憶した情報を保持する。更なる実施形態において、不揮発性メモリはフラッシュメモリを含む。幾つかの実施形態において、不揮発性メモリはダイナミックランダムアクセスメモリ（ＤＲＡＭ）を含む。幾つかの実施形態において、不揮発性メモリは強誘電体ランダムアクセスメモリ（ＦＲＡＭ（登録商標））を含む。幾つかの実施形態において、不揮発性メモリは相変化ランダムアクセスメモリ（ＰＲＡＭ）を含む。他の実施形態において、デバイスは、例えば、ＣＤ−ＲＯＭ、ＤＶＤ、フラッシュメモリデバイス、磁気ディスクドライブ、光ディスクドライブ、又はクラウドコンピューティングベースの記憶装置を含む、記憶デバイスである。更なる実施形態において、記憶デバイス及び／又はメモリデバイスは、本明細書に開示されるものなどのデバイスの組み合わせを含む。
【００７３】
幾つかの実施形態において、デジタル処理デバイスは、ユーザーに視覚情報を送信するためのディスプレイを含む。幾つかの実施形態において、ディスプレイはブラウン管（ＣＲＴ）を含む。幾つかの実施形態において、ディスプレイは液晶ディスプレイ（ＬＣＤ）を含む。更なる実施形態において、ディスプレイは薄膜トランジスタ液晶ディスプレイ（ＴＦＴ−ＬＣＤ）を含む。幾つかの実施形態において、ディスプレイは有機発光ダイオード（ＯＬＥＤ）ディスプレイを含む。様々な更なる実施形態において、ＯＬＥＤディスプレイは、パッシブマトリクスＯＬＥＤ（ＰＭＯＬＥＤ）又はアクティブマトリクスＯＬＥＤ（ＡＭＯＬＥＤ）のディスプレイを含む。幾つかの実施形態において、ディスプレイはプラズマディスプレイを含む。他の実施形態において、ディスプレイはビデオプロジェクターを含む。また更なる実施形態において、ディスプレイは、本明細書に開示されるものなどのデバイスの組み合わせを含む。
【００７４】
幾つかの実施形態において、デジタル処理デバイスは、ユーザーから情報を受信するための入力デバイスを含む。幾つかの実施形態において、入力デバイスはキーボードを含む。幾つかの実施形態において、入力デバイスは、例えば、マウス、トラックボール、トラックパッド、ジョイスティック、ゲームコントローラ、又はスタイラスといったポインティングデバイスを含む。幾つかの実施形態において、入力デバイスはタッチスクリーン又はマルチタッチスクリーンを含む。他の実施形態において、入力デバイスは、声又は他の音声入力を捕捉するマイクロフォンを含む。他の実施形態において、入力デバイスは、動作又は視覚の入力を捕捉するビデオカメラ又は他のセンサーを含む。更なる実施形態において、入力デバイスは、Ｋｉｎｅｃｔ、Ｌｅａｐ  Ｍｏｔｉｏｎなどを含む。また更なる実施形態において、入力デバイスは、本明細書に開示されるものなどのデバイスの組み合わせを含む。
【００７５】
非一時的なコンピューター可読記憶媒体
幾つかの実施形態において、本明細書に開示されるｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのソフトウェア開発キット（ＳＤＫ）は、随意にネットワーク化されたデジタル処理デバイスのオペレーティングシステムによって実行可能な命令を含むプログラムでコードされた、１以上の非一時的なコンピューター可読記憶媒体を含む。更なる実施形態において、コンピューター可読記憶媒体はデジタル処理デバイスの有形成分である。また更なる実施形態において、コンピューター可読記憶媒体は、デジタル処理デバイスから随意に取り外し可能である。幾つかの実施形態において、コンピューター可読記憶媒体は、例えば、ＣＤ−ＲＯＭ、ＤＶＤ、フラッシュメモリデバイス、固体記憶装置、磁気ディスクドライブ、磁気テープドライブ、光ディスクドライブ、クラウドコンピューティングシステム及びサービスなどを含む。幾つかの場合において、プログラム及び命令は、永続的に、ほぼ永続的に、半永続的に、又は非一時的に、媒体上でコードされる。
【００７６】
コンピュータープログラム
幾つかの実施形態において、本明細書に開示されるｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのソフトウェア開発キット（ＳＤＫ）は、少なくとも１つのコンピュータープログラム、又はその使用を含む。コンピュータープログラムは、デジタル処理デバイスのＣＰＵにおいて実行可能であり、特別なタスクを実行するために書かれた、一連の命令を含む。コンピューター可読命令は、特定のタスクを実行するか又は特定の抽象データ型を実装する、機能、オブジェクト（ｏｂｊｅｃｔｓ）、アプリケーションプログラムインターフェース（ＡＰＩ）、データ構造などのプログラムモジュールとして実施されてもよい。本明細書で提供される開示に照らして、当業者は、コンピュータープログラムが様々な言語の様々なバージョンで書かれ得ることを認識する。
【００７７】
コンピューター可読命令の機能性は、様々な環境において望ましいものとして組み合わせられるか、又は分布されてもよい。幾つかの実施形態において、コンピュータープログラムは１つの連続した命令を含む。幾つかの実施形態において、コンピュータープログラムは複数の連続した命令を含む。幾つかの実施形態において、コンピュータープログラムは、１つの場所から提供される。他の実施形態において、コンピュータープログラムは複数の場所から提供される。様々な実施形態において、コンピュータープログラムは、１以上のソフトウェアモジュールを含む。様々な実施形態において、コンピュータープログラムは、部分的又は全体的に、１以上のウェブアプリケーション、１以上のモバイルアプリケーション、１以上の独立型アプリケーション、１以上のウェブブラウザプラグイン、エクステンション、アドイン、又はアドオン、或いはそれらの組み合わせを含む。
【００７８】
ウェブアプリケーション
幾つかの実施形態において、コンピュータープログラムはウェブアプリケーションを含む。本明細書で提供される開示に照らして、当業者は、ウェブアプリケーションが、様々な実施形態において、１以上のソフトウェアフレームワーク及び１以上のデータベースシステムを利用することを認識する。幾つかの実施形態において、ウェブアプリケーションは、Ｍｉｃｒｏｓｏｆｔ（登録商標）．ＮＥＴ又はＲｕｂｙ  ｏｎ  Ｒａｉｌｓ（ＲｏＲ）などのソフトウェアフレームワーク上で作成される。幾つかの実施形態において、ウェブアプリケーションは、例えば、リレーショナル、非リレーショナル、オブジェクト指向、連想型、又はＸＭＬのデータベースシステムを含む、１以上のデータベースシステムを利用する。更なる実施形態において、適切なリレーショナルデータベースシステムは、例えば、Ｍｉｃｒｏｓｏｆｔ（登録商標）ＳＱＬ  Ｓｅｒｖｅｒ、ｍｙＳＱＬ（商標）、又はＯｒａｃｌｅ（登録商標）を含む。当業者は、ウェブアプリケーションが、様々な実施形態において、１以上の言語の１以上のバージョンで書かれることを認識する。ウェブアプリケーションは、１以上のマークアップ言語、プレゼンテーション定義言語、クライアント側スクリプト言語、サーバー側コード化言語、データベース照会言語、又はそれらの組み合わせで書かれてもよい。幾つかの実施形態において、ウェブアプリケーションは、少なくともある程度、Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＨＴＭＬ）、Ｅｘｔｅｎｓｉｂｌｅ  Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＸＨＴＭＬ）、又はｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＸＭＬ）などのマークアップ言語で書かれる。幾つかの実施形態において、ウェブアプリケーションは、少なくともある程度、Ｃａｓｃａｄｉｎｇ  Ｓｔｙｌｅ  Ｓｈｅｅｔｓ（ＣＳＳ）などのプレゼンテーション定義言語で書かれる。幾つかの実施形態において、ウェブアプリケーションは、少なくともある程度、Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｊａｖａｓｃｒｉｐｔ  ａｎｄ  ＸＭＬ（ＡＪＡＸ）、Ｆｌａｓｈ（登録商標）Ａｃｔｉｏｎｓｃｒｉｐｔ、Ｊａｖａｓｃｒｉｐｔ、又はＳｉｌｖｅｒｌｉｇｈｔ（登録商標）などのクライアント側スクリプト言語で書かれる。幾つかの実施形態において、ウェブアプリケーションは、少なくともある程度、Ａｃｔｉｖｅ  Ｓｅｒｖｅｒ  Ｐａｇｅｓ（ＡＳＰ）、ＣｏｌｄＦｕｓｉｏｎ（登録商標）、Ｐｅｒｌ、Ｊａｖａ（登録商標）、ＪａｖａＳｅｒｖｅｒ  Ｐａｇｅｓ（ＪＳＰ）、Ｈｙｐｅｒｔｅｘｔ  Ｐｒｅｐｒｏｃｅｓｓｏｒ（ＰＨＰ）、Ｐｙｔｈｏｎ（商標）、Ｒｕｂｙ、Ｔｃｌ、Ｓｍａｌｌｔａｌｋ、ＷｅｂＤＮＡ（登録商標）、又はＧｒｏｏｖｙなどのサーバー側コード化言語で書かれる。幾つかの実施形態において、ウェブアプリケーションは、少なくともある程度、Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ（ＳＱＬ）などのデータベース照会言語で書かれる。幾つかの実施形態において、ウェブアプリケーションは、ＩＢＭＲ  Ｌｏｔｕｓ  Ｄｏｍｉｎｏ（登録商標）などの企業サーバー製品を統合する。幾つかの実施形態において、ウェブアプリケーションはメディアプレーヤー要��を含む。様々な更なる実施形態において、メディアプレーヤー要素は、例えば、Ａｄｏｂｅ（登録商標）Ｆｌａｓｈ（登録商標）、ＨＴＭＬ  ５、Ａｐｐｌｅ（登録商標）ＱｕｉｃｋＴｉｍｅ（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｓｉｌｖｅｒｌｉｇｈｔ（登録商標）、Ｊａｖａ（登録商標）、又はＵｎｉｔｙ（登録商標）を含む、多くの適切なマルチメディア技術のうち１つ以上を利用する。
【００７９】
モバイルアプリケーション
幾つかの実施形態において、コンピュータープログラムは、モバイルデジタル処理デバイスに設けられるモバイルアプリケーションを含む。幾つかの実施形態において、モバイルアプリケーションは、モバイルアプリケーションが製造される時にモバイルデジタル処理デバイスに設けられる。他の実施形態において、モバイルアプリケーションは、本明細書に記載されるコンピューターネットワークを介してモバイルデジタル処理デバイスに設けられる。
【００８０】
本明細書で提供される開示を考慮して、モバイルアプリケーションは、当該技術分野で既知のハードウェア、言語、及び開発環境を使用する、当業者に既知の技術によって作成される。当業者は、モバイルアプリケーションが様々な言語で書かれてもよいことを認識する。適切なプログラミング言語は、例えば、Ｃ、Ｃ＋＋、Ｃ＃、Ｏｂｊｅｃｔｉｖｅ−Ｃ、Ｊａｖａ（登録商標）、Ｊａｖａｓｃｒｉｐｔ、Ｐａｓｃａｌ、Ｏｂｊｅｃｔ  Ｐａｓｃａｌ、Ｐｙｔｈｏｎ（商標）、Ｒｕｂｙ、ＶＢ．ＮＥＴ、ＷＭＬ、ＣＳＳを含む又は含まないＸＨＴＭＬ／ＨＴＭＬ、又はそれらの組み合わせを含む。
【００８１】
適切なモバイルアプリケーション開発環境は様々なソースから利用可能であり得る。市販で入手可能な開発環境は、例えば、ＡｉｒｐｌａｙＳＤＫ、ａｌｃｈｅＭｏ、Ａｐｐｃｅｌｅｒａｔｏｒ（登録商標）、Ｃｅｌｓｉｕｓ、Ｂｅｄｒｏｃｋ、Ｆｌａｓｈ  Ｌｉｔｅ、．ＮＥＴ  Ｃｏｍｐａｃｔ  Ｆｒａｍｅｗｏｒｋ、Ｒｈｏｍｏｂｉｌｅ、又はＷｏｒｋＬｉｇｈｔ  Ｍｏｂｉｌｅ  Ｐｌａｔｆｏｒｍを含む。他の開発環境はコスト無しで利用可能であってもよく、例えば、Ｌａｚａｒｕｓ、ＭｏｂｉＦｌｅｘ、ＭｏＳｙｎｃ、及びＰｈｏｎｅｇａｐが挙げられる。また、モバイルデバイスの製造業者は、例えば、ｉＰｈｏｎｅ（登録商標）及びｉＰａｄ（登録商標）（ｉＯＳ）ＳＤＫ、Ａｎｄｒｏｉｄ（商標）ＳＤＫ、ＢｌａｃｋＢｅｒｒｙ（登録商標）ＳＤＫ、ＢＲＥＷ  ＳＤＫ、Ｐａｌｍ（登録商標）ＯＳ  ＳＤＫ、Ｓｙｍｂｉａｎ  ＳＤＫ、ｗｅｂＯＳ  ＳＤＫ、又はＷｉｎｄｏｗｓ（登録商標）Ｍｏｂｉｌｅ  ＳＤＫを含む、ソフトウェア開発キットを流通させている。
【００８２】
当業者は、様々な商用のフォーラムが、例えば、Ａｐｐｌｅ（登録商標）Ａｐｐ  Ｓｔｏｒｅ、Ａｎｄｒｏｉｄ（商標）Ｍａｒｋｅｔ、ＢｌａｃｋＢｅｒｒｙ（登録商標）Ａｐｐ  Ｗｏｒｌｄ、ＰａｌｍデバイスのＡｐｐ  Ｓｔｏｒｅ、ｗｅｂＯＳのＡｐｐ  Ｃａｔａｌｏｇ、ＭｏｂｉｌｅのＷｉｎｄｏｗｓ（登録商標）Ｍａｒｋｅｔｐｌａｃｅ、Ｎｏｋｉａ（登録商標）デバイスのＯｖｉ  Ｓｔｏｒｅ、Ｓａｍｓｕｎｇ（登録商標）Ａｐｐｓ、又はＮｉｎｔｅｎｄｏ（登録商標）ＤＳｉ  Ｓｈｏｐを含む、モバイルアプリケーションの流通に利用可能であり得ることを認識する。
【００８３】
独立型アプリケーション
幾つかの実施形態において、コンピュータープログラムは独立型アプリケーションを含む、これは、既存のプロセスへのアドオン（例えばプラグイン）ではなく、独立したコンピュータプロセスとして実行されるプログラムである。当業者は、独立型アプリケーションがコンパイルされ得ることを認識する。コンパイラーは一般に、プログラミング言語で書かれたソースコードを、アセンブリ言語又は機械コードなどのバイナリオブジェクト・コード（ｂｉｎａｒｙ  ｏｂｊｅｃｔ  ｃｏｄｅ）へと変換させるコンピュータープログラムを指す。適切なコンパイルされたプログラミング言語は、例えば、Ｃ、Ｃ＋＋、Ｏｂｊｅｃｔｉｖｅ−Ｃ、ＣＯＢＯＬ、Ｄｅｌｐｈｉ、Ｅｉｆｆｅｌ、Ｊａｖａ（登録商標）、Ｌｉｓｐ、Ｐｙｔｈｏｎ（商標）、Ｖｉｓｕａｌ  Ｂａｓｉｃ、及びＶＢ  ．ＮＥＴ、又はそれらの組み合わせを含む。コンパイルは、実行可能なプログラムを作成するために少なくとも部分的に行なわれ得る。幾つかの実施形態において、コンピュータープログラムは、１以上の実行可能なコンパイルされたアプリケーションを含む。
【００８４】
ウェブブラウザプラグイン
幾つかの実施形態において、コンピュータープログラムは、ウェブブラウザプラグインを含む。コンピューティングにおいて、プラグインは一般に、より大きなソフトウェアアプリケーションに特異的な機能性を加える、１以上のソフトウェアコンポーネントを指す。ソフトウェアアプリケーションのメーカーは、第三者である開発者が、アプリケーションを拡張させる性能を作り出し、新たな機能の容易な追加を支援し、又はアプリケーションのサイズを減らすことを可能にするように、プラグインを支援し得る。支援されたとき、プラグインは、ソフトウェアアプリケーションの機能性のカスタム化を可能にし得る。例えば、プラグインは、ビデオを再生し、対話性を生成し、ウイルスを走査し、及び特定のファイルタイプを表示するために、ウェブブラウザにおいて一般的に使用される。当業者は、例えばＡｄｏｂｅ（登録商標）Ｆｌａｓｈ（登録商標）Ｐｌａｙｅｒ、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｓｉｌｖｅｒｌｉｇｈｔ（登録商標）、又はＡｐｐｌｅ（登録商標）ＱｕｉｃｋＴｉｍｅ（登録商標）を含む、様々なウェブブラウザプラグインに精通している。幾つかの実施形態において、ツールバーは、１以上のウェブブラウザの拡張、アドイン、又はアドオンを含む。幾つかの実施形態において、ツールバーは、１以上のエクスプローラバー、ツールバンド、又はデスクバンドを含む。
【００８５】
本明細書で提供される開示を考慮して、当業者は、様々なプラグイン・フレームワークが、例えばＣ＋＋、Ｄｅｌｐｈｉ、Ｊａｖａ（登録商標）、ＰＨＰ、Ｐｙｔｈｏｎ（商標）、及びＶＢ  ．ＮＥＴを含む様々なプログラミング言語でプラグインの開発を可能にするように利用可能であることを認識する。
【００８６】
ウェブブラウザ（インターネットブラウザとも呼ばれる）は一般に、ワールド・ワイド・ウェブ上で情報資源を検索、提示、及びトラバースする（ｔｒａｖｅｒｓｉｎｇ）ために、ネットワーク接続のデジタル処理デバイスとの使用のために設計される、ソフトウェアアプリケーションを指す。適切なウェブブラウザは、例えば、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（登録商標）、Ｍｏｚｉｌｌａ（登録商標）Ｆｉｒｅｆｏｘ（登録商標）、Ｇｏｏｇｌｅ（登録商標）Ｃｈｒｏｍｅ、Ａｐｐｌｅ（登録商標）Ｓａｆａｒｉ（登録商標）、Ｏｐｅｒａ  Ｓｏｆｔｗａｒｅ（登録商標）Ｏｐｅｒａ（登録商標）、又はＫＤＥ  Ｋｏｎｑｕｅｒｏｒを含む。幾つかの実施形態において、ウェブブラウザはモバイルウェブブラウザを含む。モバイルウェブブラウザ（マイクロブラウザ、ミニブラウザ、又は無線ブラウザとも呼ばれる）は、例えば、ハンドヘルドコンピューター、タブレットコンピューター、ネットブックコンピューター、サブノートブックコンピューター、スマートフォン、音楽プレーヤー、携帯情報端末（ＰＤＡ）、又はハンドヘルドビデオゲームシステムを含むモバイルデジタル処理デバイスでの使用のために設計され得る。適切なモバイルウェブブラウザは、例えば、Ｇｏｏｇｌｅ（登録商標）Ａｎｄｒｏｉｄ（登録商標）ブラウザ、ＲＩＭ  ＢｌａｃｋＢｅｒｒｙ（登録商標）ブラウザ、Ａｐｐｌｅ（登録商標）Ｓａｆａｒｉ（登録商標）、Ｐａｌｍ（登録商標）Ｂｌａｚｅｒ、Ｐａｌｍ（登録商標）ＷｅｂＯＳ（登録商標）Ｂｒｏｗｓｅｒ、モバイル用のＭｏｚｉｌｌａ（登録商標）Ｆｉｒｅｆｏｘ（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（登録商標）Ｍｏｂｉｌｅ、Ａｍａｚｏｎ（登録商標）Ｋｉｎｄｌｅ（登録商標）Ｂａｓｉｃ  Ｗｅｂ、Ｎｏｋｉａ（登録商標）ブラウザ、Ｏｐｅｒａ  Ｓｏｆｔｗａｒｅ（登録商標）Ｏｐｅｒａ（登録商標）Ｍｏｂｉｌｅ、及びＳｏｎｙ（登録商標）ＰＳＰ（商標）ブラウザを含む。
【００８７】
ソフトウェアモジュール
幾つかの実施形態において、本明細書に開示されるｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのソフトウェア開発キット（ＳＤＫ）は、ソフトウェア、サーバー、及び／又はデー夕ベースモジュール、又はそれらの使用を含む。本明細書で提供される開示を考慮して、ソフトウェアモジュールは、当該技術分野で既知のマシン、ソフトウェア、及び／又は言語を使用する、当業者に既知の技術によって作り出されてもよい。本明細書に開示されたソフトウェアモジュールは多数の方法で実装され得る。様々な実施形態において、ソフトウェアモジュールは、ファイル、コードのセクション、プログラミングオブジェクト、プログラミング構造、又はそれらの組み合わせを含む。更に様々な実施形態において、ソフトウェアモジュールは、複数のファイル、コードの複数のセクション、複数のプログラムミングオブジェクト、複数のプログラムミング構造、又はそれらの組み合わせを含む。様々な実施形態において、１以上のソフトウェアモジュールは、例えば、ウェブアプリケーション、モバイルアプリケーション、又は独立型アプリケーションを含む。幾つかの実施形態において、１以上のソフトウェアモジュールは、１つのコンピュータープログラム又はアプリケーションにある。他の実施形態において、１以上のソフトウェアモジュールは、１より多くのコンピュータープログラム又はアプリケーションにある。幾つかの実施形態において、１以上のソフトウェアモジュールは１つのマシン上でホストされる（ｈｏｓｔｅｄ）。他の実施形態において、１以上のソフトウェアモジュールは１より多くのマシン上でホストされる。更なる実施形態において、１以上のソフトウェアモジュールは、１以上のクラウドコンピューティングプラットフォーム上でホストされる。幾つかの実施形態において、１以上のソフトウェアモジュールは１つの場所において１つ以上のマシン上でホストされる。他の実施形態において、１以上のソフトウェアモジュールは、１より多くの場所において１つ以上のマシン上でホストされる。
データベース
【００８８】
幾つかの実施形態において、本明細書に開示されるｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのソフトウェア開発キット（ＳＤＫ）は、１つ以上のデータベース、又はその使用を含む。本明細書で提供される開示に照らして、当業者は、多くのデー夕ベースが、アプリケーション情報の保管及び検索に適切であることを認識する。様々な実施形態において、適切なデータベースは、例えば、リレーショナルデータベース、非リレーショナルデータベース、オブジェクト指向データベース、オブジェクトデータベース、実体関連モデルデータベース、連想データベース、又はＸＭＬデータベースを含む。他の実施形態において、デー夕ベースはインターネットベースである。更なる実施形態において、データベースはウェブベースである。また更なる実施形態において、デー夕ベースは、クラウドコンピューティングベースである。他の実施形態において、データベースは、１以上のローカルコンピューター記憶デバイスをベースとする。
【００８９】
本開示は量子コンピューターへの言及を行ってきたが、本開示の方法とシステムは、非古典的コンピューターであり得る他のタイプのコンピューターとの使用のために利用され得る。そのような非古典的コンピューターは、量子コンピューター、ハイブリッド量子コンピューター、量子型コンピューター、又は、古典的コンピューターではない他のコンピューターであり得る。非古典的コンピューターの例は、限定されないが、日立のイジングソルバー、光学パラメーターに基づくコヒーレントイジングマシン、及び特定の分類の問題を解決する際により多くの効率を得るために異なる物理的現象を利用する他のソルバーを含む。
【００９０】
本開示の方法とシステムは、クラウドネットワーク又は他の分散環境にわたる要求を処理するために使用され得る。クラウドネットワーク又は他の分散環境にわたる要求を処理するために使用され得るシステムと方法の例は、例えば米国特許第９，５３７，９５３号及び米国特許出願第１５／３４９，５１９号で提供され、その各々は参照によって全体的に本明細書に組み込まれるものとする。
【００９１】
本開示の方法とシステムは、例えば、参照によって全体的に本明細書に組み込まれる米国特許出願第１５／１６５，６５５号に記載されるものなどの他の方法及びシステムとの使用のために利用されてもよい。
【００９２】
コンピューター制御システム
【００９３】
本開示は、本開示の方法を実施するようにプログラムされるコンピューター制御システムを提供する。図７は、共通ソルバーによる実行のための１つ以上の命令を生成するようにプログラム又は構成されるコンピューターシステム（７０１）が示され、ここで、１つ以上の命令は、少なくとも１つのコンピュータープロセッサ及びメモリを含むデジタルコンピューターによって生成され、デジタルコンピューターは共通ソルバーを含むｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのコンピューティングシステムに連結され、共通ソルバーは出力を生成するために１つ以上の命令を実行する。コンピューターシステム（７０１）は、例えば共通ソルバーによる実行のための命令を生成するなど、本開示の様々な態様を調節することができる。コンピューターシステム（７０１）はユーザー又はコンピューターシステムの電子デバイスであり、ユーザー又はコンピューターシステムは電子デバイスに対して遠隔に位置付けられる。電子デバイスはモバイル電子デバイスでもよい。コンピューターシステム（７０１）は、デジタルコンピューター、場合によっては古典的コンピューターであり得る。
【００９４】
コンピューターシステム（７０１）は、中央処理装置（ＣＰＵ、本明細書では「プロセッサ」及び「コンピュータープロセッサ」とも称される）（７０５）を含み、これは、シングルコア又はマルチコアのプロセッサ、或いは並行処理のための複数のプロセッサであり得る。コンピューターシステム（７０１）はまた、メモリ又はメモリ位置（７１０）（例えば、ランダムアクセスメモリ、読み取り専用メモリ、フラッシュメモリ）、電子記憶装置（７１５）（例えばハードディスク）、１つ以上の他のシステムと通信するための通信インターフェース（７２０）（例えばネットワークアダプタ）、及び、キャッシュ、他のメモリ、データ記憶装置、及び／又は電子ディスプレイアダプターなどの周辺機器（７２５）を含む。メモリ（７１０）、記憶装置（７１５）、インターフェース（７２０）、及び周辺機器（７２５）は、マザーボードなどの通信バス（実線）を通じてＣＰＵ（７０５）と通信状態にある。記憶装置（７１５）は、データを保存するためのデータ記憶装置（又はデータレポジトリ）であり得る。コンピューターシステム（７０１）は、通信インターフェース（７２０）の助けによってコンピューターネットワーク（「ネットワーク」）（７３０）に動作可能に連結され得る。ネットワーク（７３０）は、インターネット及び／又はエクストラネット、インターネットと通信状態にあるイントラネット及び／又はエクストラネットであり得る。場合によっては、ネットワーク（７３０）は、電気通信及び／又はデータのネットワークである。ネットワーク（７３０）は、１つ以上のコンピューターサーバーを含むことができ、これはクラウドコンピューティングなどの分散コンピューティングを可能にすることができる。ネットワーク（７３０）は、場合によってはコンピューターシステム（７０１）の助けにより、ピアツーピア・ネットワークを実施することができ、これは、コンピューターシステム（７０１）に連結されたデバイスが、クライアント又はサーバーとして動くことを可能にし得る。
【００９５】
ＣＰＵ（７０５）は、プログラム又はソフトウェアで統合され得る一連の機械可読命令を実行することができる。この命令は、メモリ（７１０）などのメモリ位置に保存され得る。この命令は、ＣＰＵ（７０５）に向けることができ、これは後に、本開示の方法を実施するようにＣＰＵ（７０５）をプログラム又は構成することができる。ＣＰＵ（７０５）により実行される動作の例は、フェッチ、デコード、実行、及びライトバックを含み得る。
【００９６】
ＣＰＵ（７０５）は、集積回路などの回路の一部であり得る。システム（７０１）の１つ以上の他のコンポーネントを回路に含めることができる。場合によっては、回路は特定用途向け集積回路（ＡＳＩＣ）である。
【００９７】
記憶装置（７１５）は、ドライバー、ライブラリ、及びセーブされたプログラムなどのファイルを保存することができる。記憶装置（７１５）は、ユーザーデータ、例えばユーザーの嗜好性及びユーザーのプログラムを保存することができる。コンピューターシステム（７０１）は、場合によっては、イントラネット又はインターネットを通じてコンピューターシステム（７０１）と通信状態にあるリモートサーバー上に位置付けられるなど、コンピューターシステム（７０１）の外側にある１つ以上の追加のデータ記憶装置を含み得る。
【００９８】
コンピューターシステム（７０１）は、ネットワーク（７３０）を通じて１つ以上のリモートコンピューターシステムと通信することができる。例えば、コンピューターシステム（７０１）は、（例えばクラウドネットワーク又は他の分散ネットワークを通じて）ユーザーのリモートコンピューターシステムと通信することができる。リモートコンピューターシステムの例は、パーソナルコンピューター（例えば、持ち運び可能なＰＣ）、スレート又はタブレットＰＣ（例えばＡｐｐｌｅ（登録商標）ｉＰａｄ（登録商標）、Ｓａｍｓｕｎｇ（登録商標）Ｇａｌａｘｙ  Ｔａｂ）、電話、スマートフォン（例えばＡｐｐｌｅ（登録商標）ｉＰｈｏｎｅ（登録商標）、Ａｎｄｒｏｉｄ対応デバイス、Ｂｌａｃｋｂｅｒｒｙ（登録商標））、又は携帯情報端末を含む。ユーザーは、ネットワーク（７３０）を介してコンピューターシステム（７０１）にアクセスすることができる。
【００９９】
コンピューターシステム（７０１）は、ネットワーク（７３０）を通じてｑｕａｎｔｕｍ−ｒｅａｄｙ又はｑｕａｎｔｕｍ−ｅｎａｂｌｅｄのコンピューティングシステムと通信することができる。そのような通信は、例えば、米国特許第９，５３７，９５３号及び米国特許出願第１５／３４９，５１９号に記載されるようなものでもよく、各々は参照によって全体的に本明細書に組み込まれる。
【０１００】
本明細書に記載されるような方法は、例えばメモリ（７１０）又は電子記憶装置（７１５）の上など、コンピューターシステム（７０１）の電子記憶装置の場所に保存された機械（例えばコンピュータープロセッサ）実行可能コードによって実施することができる。機械実行可能又は機械可読コードは、ソフトウェアの形で提供することができる。使用中、コードはプロセッサ（７０５）により実行され得る。場合によっては、コードは、記憶装置（７１５）から検索され、且つプロセッサ（７０５）による即時のアクセスのためにメモリ（７１０）に保存することができる。幾つかの状況において、電子記憶装置（７１５）は排除することができ、機械実行可能命令はメモリ（７１０）に保存される。
【０１０１】
コードは、コードを実行するのに適したプロセッサを持つ機械との使用のために予めコンパイルされ且つ構成することができ、或いは、実行時間中にコンパイルされ得る。コードは、予めコンパイルされた又はアズコンパイルされた（ａｓ−ｃｏｍｐｉｌｅｄ）様式でコードが実行することを可能にするために選択することができる、プログラミング言語で供給され得る。
【０１０２】
コンピューターシステム（７０１）などの、本明細書で提供されるシステムと方法の態様は、プログラミングの際に実施することができる。この技術の様々な態様は、典型的に一種の機械可読媒体において実行される又は実施される機械（又はプロセッサ）実行可能コード及び／又は関連データの形で、「製品」又は「製造用品」として考慮され得る。機械実行可能コードは、メモリ（例えば、読み取り専用メモリ、ランダムアクセスメモリ、フラッシュメモリ）又はハードディスクなどの電子記憶装置に保存することができる。「記憶」型の媒体は、様々な半導体メモリ、テープドライブ、ディスクドライブなどの、コンピューターやプロセッサなどの有形メモリ、或いはその関連するモジュールの何れか又は全てを含むことができ、これは、ソフトウェアのプログラミングのためにいかなる時も非一時的な記憶を提供し得る。ソフトウェアの全て又は一部は時に、インターネット又は他の様々な電気通信ネットワークを通じて通信され得る。そのような通信は、例えば、１つのコンピューター又はプロセッサから別のものへの、例えば、管理サーバー又はホストコンピューターからアプリケーションサーバーのコンピュータープラットフォームへのソフトウェアのローディングを可能にし得る。故に、ソフトウェア要素を持ち得る別のタイプの媒体は、有線及び光地上通信線ネットワークを通じた及び様々なエアリンク（ａｉｒ−ｌｉｎｋｓ）にわたる、ローカルデバイス間の物理インターフェースにわたって使用されるものなどの、光波、電波、及び電磁波を含む。有線又は無線リンク、光リンクなどの、そのような波を運ぶ物理要素はまた、ソフトウェアを持つ媒体と考慮され得る。本明細書で使用されるように、非一時的で有形の「記憶」媒体に制限されなければ、コンピューター又は機械「可読媒体」などの用語は、実行のためのプロセッサに命令を提供することに関与する媒体を指す。
【０１０３】
従って、コンピューター実行可能コードなどの機械可読媒体は、有形記憶媒体、キャリア波媒体、又は物理送信媒体を含むがこれらに限定されない、多くの形態をとってもよい。不揮発性記憶媒体は、例えば、図面に示されるデータベースなどを実装するために使用され得るものなど、任意のコンピューターなどにおける記憶デバイスの何れかといった、光ディスク又は磁気ディスクを含む。揮発性記憶媒体は、そのようなコンピュータープラットフォームのメインメモリなどのダイナミックメモリを含む。有形送信媒体は、同軸ケーブル；コンピューターシステム内のバスを含むワイヤーを含む、銅線及び光ファイバーを含んでいる。キャリア波送信媒体は、電気信号又は電磁気信号の形態、或いは、無線周波（ＲＦ）及び赤外線（ＩＲ）データ通信中に生成されるものなどの音波又は光波の形態をとってもよい。それ故、コンピューター可読媒体の共通の形態は、例えば：フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤ、又はＤＶＤ−ＲＯＭ、他の光学媒体、パンチカードペーパーテープ、ホールのパターンを備えた（ｗｉｔｈ  ｐａｔｔｅｒｎｓ  ｏｆ  ｈｏｌｅｓ）他の物理的記憶媒体、ＲＡＭ、ＲＯＭ、ＰＲＯＭ、及びＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、他のメモリチップ又はカートリッジ、データ又は命令を運ぶキャリア波、そのようなキャリア波を運ぶケーブル又はリンク、又は、コンピューターがプログラミングコード及び／又はデータを読む他の媒体を含む。コンピューター可読媒体のこれらの形態の多くは、実行のためのプロセッサへの１つ以上の命令の１つ以上のシーケンスを保持すること（ｃａｒｒｙｉｎｇ）に関係し得る。
【０１０４】
コンピューターシステム（７０１）は、例えば、アプリケーションインターフェースにてアプリケーションからユーザー入力を承諾する手段を提供するために、ユーザーインターフェース（ＵＩ）（７４０）を含む電子ディスプレイ（７３５）を含むか、又はそれと通信状態にあってもよい。ＵＩの例は、限定されないが、グラフィカルユーザーインターフェース（ＧＵＩ）及びウェブベースのユーザーインターフェースを含む。
【０１０５】
本開示の方法とシステムは、１つ以上のアルゴリズムによって実施することができる。アルゴリズムは、中央処理装置（７０５）による実行の後にソフトウェアによって実施することができる。アルゴリズムは、例えば、共通ソルバーによる実行のための命令を生成することができる。
【０１０６】
本発明の好ましい実施形態が本明細書中で記載されてきたが、このような実施形態はほんの一例として提供されるものであることは、当業者に明白である。本発明が明細書内で提供される特異的な例によって制限されることは、意図されていない。本発明は前述の明細書に関して記載されているが、本明細書中の実施形態の記載及び例示は、限定的な意味で解釈されることを目的としていない。多数の変形、変更、及び置き換えは、本発明から逸脱することなく、当業者に明白なものである。更に、本発明の全ての態様は、様々な条件及び変形に依存する、本明細書で説明される特異的な描写、構成、又は相対的な比率に限定されないことを、理解されたい。本明細書に記載される本発明の実施形態の様々な代案が、本発明の実施において利用されるかもしれないことを理解されたい。それ故、本発明はまた、そのような代替、修正、変形、又は同等物を包含するものであることが考慮される。以下の特許請求の範囲は本発明の範囲を定義するものであり、この特許請求の範囲及びその同等物の範囲内の方法及び構造は、それにより包含されることが、意図されている。
【図１】
2019513276.tif 000005
【図２】
2019513276.tif 000006
【図３】
2019513276.tif 000007
【図４】
2019513276.tif 000008
【図５】
2019513276.tif 000009
【図６】
2019513276.tif 000010
【図７】
2019513276.tif 000011
【国際調査報告】
2019513276.tif 000012
2019513276.tif 000013
2019513276.tif 000014