(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-17
(45)【発行日】2024-06-25
(54)【発明の名称】アニーラシステムにおけるNP問題の解決の自動化
(51)【国際特許分類】
G06N 99/00 20190101AFI20240618BHJP
G06N 10/60 20220101ALI20240618BHJP
【FI】
G06N99/00 180
G06N10/60
(21)【出願番号】P 2020078410
(22)【出願日】2020-04-27
【審査請求日】2023-01-12
(32)【優先日】2019-06-20
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】チェン・ウェイ-ペン
(72)【発明者】
【氏名】小柳 洋一
【審査官】山本 俊介
(56)【参考文献】
【文献】米国特許第08055598(US,B1)
【文献】特開2005-056024(JP,A)
【文献】特開2016-051350(JP,A)
【文献】特開2004-110833(JP,A)
【文献】米国特許出願公開第2011/0202251(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
複数の最適化問題についてのタクソノミ情報に対応する複数のユーザ選択可能な選択肢を含む電子ユーザインターフェースを表示するステップと、
前記複数の最適化問題のうち特定の最適化問題のために第1のテンプレートを選択する第1のユーザ入力を受信するステップであり、
前記第1のユーザ入力は、前記複数のユーザ選択可能な選択肢のうち少なくとも1つのユーザ選択可能な選択肢の選択を含む、ステップと、
前記特定の最適化問題のための前記選択された第1のテンプレートを介して第2のユーザ入力を受信するステップであり、
前記第2のユーザ入力は、前記選択された第1のテンプレート内に指定される、前記特定の最適化問題の複数のパラメータに対する入力データを含む、ステップと、
前記受信した第2のユーザ入力に基づいて前記特定の最適化問題に対する解を生成するために最適化ソルバマシンへの呼び出しを提供するステップと
を含む方法であって、
当該方法はさらに、
前記受信した第2のユーザ入力に基づいて、前記特定の最適化問題に対応するNP問題のための少なくとも1つの非決定性多項式時間(NP)定式化を構築するステップであり、
前記少なくとも1つのNP定式化の構築は、前記特定の最適化問題の前記複数のパラメータの、前記NP問題の複数の属性へのマッピングに対応する、ステップを含む、
方法。
【請求項2】
最適化問題に関連づけられた複数のアプリケーション固有ドメインに関連づけられた第1の情報を取り出すステップと、
前記取り出された第1の情報に基づいて前記複数のアプリケーション固有ドメインをカテゴリのセットに分類するステップと、
前記カテゴリのセットのうち各カテゴリについて、ドメイン固有アプリケーションのセットを決定するステップと、
前記決定されたドメイン固有アプリケーションのセットのうち各ドメイン固有アプリケーションについて、サブ問題のセットを決定するステップと、
前記決定されたドメイン固有アプリケーションのセットのうち各ドメイン固有アプリケーションについて、前記決定されたサブ問題のセットにNP問題タイプのセットをマッピングするステップと、
前記マッピングされたNP問題タイプのセットに関連づけられた複数のNP問題についての知識グラフを生成するステップであり、前記知識グラフは、前記複数のNP問題のうち異なるNP問題間の関係を定義するデータ構造に対応する、ステップと、
をさらに含む請求項1に記載の方法。
【請求項3】
対応する複数の最適化問題のための複数のテンプレートを、前記マッピングされたNP問題タイプのセットに関連づけられた前記複数のNP問題についての前記生成された知識グラフに基づいて生成するステップであり、
前記複数のテンプレートのうち各テンプレートは、対応する最適化問題の前記複数のパラメータのための複数の入力フィールドを含み、
前記複数の入力フィールドのための前記複数のパラメータは、アプリケーション固有制約のセット、前記対応する最適化問題のための変数のセット、及び前記対応する最適化問題のための目的関数に少なくとも関連づけられた情報を含む、ステップ
をさらに含む請求項2に記載の方法。
【請求項4】
前記受信した第2のユーザ入力に基づいて前記特定の最適化問題に対する解を生成することは、構築された前記少なくとも1つのNP定式化に基づいて前記特定の最適化問題に対する解を生成することを含む、請求項1に記載の方法。
【請求項5】
前記構築するステップは、
複数のNP問題についての知識グラフと前記受信した第2のユーザ入力とに基づいて、前記特定の最適化問題について複数のNP定式化を評価するステップと、
前記評価された複数のNP定式化のうち各NP定式化において指定される制約の数に基づいて、前記特定の最適化問題についての前記評価された複数のNP定式化から少なくとも1つのNP定式化を選択するステップであり、
前記選択された少なくとも1つのNP定式化は、前記特定の最適化問題のための前記構築された少なくとも1つのNP定式化に対応する、ステップと、
を含む、請求項
1に記載の方法。
【請求項6】
前記構築された少なくとも1つのNP定式化に基づいて、前記特定の最適化問題のための第1の目的関数を定式化するステップであり、
前記第1の目的関数は、前記NP問題の前記複数の属性間の関係を含む、ステップ
をさらに含む請求項
1に記載の方法。
【請求項7】
前記定式化された第1の目的関数に基づいて、前記最適化ソルバマシンによる実行に対し互換性のある第2の目的関数を定式化するステップであり、
前記定式化された第2の目的関数は、バイナリ決定変数のベクトルと前記定式化された第1の目的関数に対応するQ行列との間の関係を含む、ステップ
をさらに含む請求項6に記載の方法。
【請求項8】
前記定式化された第1の目的関数で使用される制約タイプを識別するステップであり、前記制約タイプは、前記定式化された第1の目的関数における不等式制約タイプ又は等式制約タイプのうち1つである、ステップと、
前記定式化された第1の目的関数で使用される決定された制約タイプが前記等式制約タイプ又は前記不等式制約タイプのうち1つであるという決定に基づいて、前記定式化された第1の目的関数にペナルティ項を付加するステップであり、
前記ペナルティ項は、前記定式化された第1の目的関数に適用可能な対応する制約タイプのリストにマッピングされたペナルティ項のリストを含む第2のマッピングテーブルにおいて指定される、ステップと、
をさらに含む請求項7に記載の方法。
【請求項9】
プロセッサに、
複数の最適化問題についてのタクソノミ情報に対応する複数のユーザ選択可能な選択肢を含む電子ユーザインターフェースを表示することと、
前記複数の最適化問題のうち特定の最適化問題のために第1のテンプレートを選択する第1のユーザ入力を受信することであり、
前記第1のユーザ入力は、前記複数のユーザ選択可能な選択肢のうち少なくとも1つのユーザ選択可能な選択肢の選択を含む、ことと、
前記特定の最適化問題のための前記選択された第1のテンプレートを介して第2のユーザ入力を受信することであり、
前記第2のユーザ入力は、前記選択された第1のテンプレート内に指定される、前記特定の最適化問題の複数のパラメータに対する入力データを含む、ことと、
前記受信した第2のユーザ入力に基づいて前記特定の最適化問題に対する解を生成するために最適化ソルバマシンへの呼び出しを提供することと、
を含む動作を実行させるコンピュータプログラム
であって、
当該コンピュータプログラムは前記プロセッサにさらに、
前記受信した第2のユーザ入力に基づいて、前記特定の最適化問題に対応するNP問題のための少なくとも1つの非決定性多項式時間(NP)定式化を構築するステップを実行させ、
前記少なくとも1つのNP定式化の構築は、前記特定の最適化問題の前記複数のパラメータの、前記NP問題の複数の属性へのマッピングに対応する、
コンピュータプログラム。
【請求項10】
システムであって、
プロセッサであり、
複数の最適化問題についてのタクソノミ情報に対応する複数のユーザ選択可能な選択肢を含む電子ユーザインターフェースを表示し、
前記複数の最適化問題のうち特定の最適化問題のために第1のテンプレートを選択する第1のユーザ入力を受信し、
前記第1のユーザ入力は、前記複数のユーザ選択可能な選択肢のうち少なくとも1つのユーザ選択可能な選択肢の選択を含み、
前記特定の最適化問題のための前記選択された第1のテンプレートを介して第2のユーザ入力を受信し、
前記第2のユーザ入力は、前記選択された第1のテンプレート内に指定される、前記特定の最適化問題の複数のパラメータに対する入力データを含む
ように構成されたプロセッサと、
前記プロセッサに通信上結合された最適化ソルバマシンであり、前記受信した第2のユーザ入力に基づいて前記特定の最適化問題に対する解を生成するように構成される、最適化ソルバマシンと
を含み、
前記プロセッサはさらに、
前記受信した第2のユーザ入力に基づいて、前記特定の最適化問題に対応するNP問題のための少なくとも1つの非決定性多項式時間(NP)定式化を構築するように構成されており、
前記少なくとも1つのNP定式化の構築は、前記特定の最適化問題の前記複数のパラメータの、前記NP問題の複数の属性へのマッピングに対応する、
システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示で論じられる実施形態は、アニーラシステムにおける非決定性多項式時間(NP)問題の解決の自動化に関する。
【背景技術】
【0002】
現実の世界における多くの問題は、数学的モデル、特に組み合わせ問題として定式化することができる。組み合わせ問題の大半は、非決定性多項式時間(NP)問題のカテゴリ下にある。典型的には、これらのNP問題は、従来のコンピュータでは計算的に扱いにくい。典型的には、専門のエキスパートは、最適化問題をNP問題として定式化し、これらは、さらに組み合わせ最適化問題として表されることがある。そして、これらの専門のエキスパートは、量子アニーリングコンピュータなどの最適化ソルバを使用して、定式化されたNP問題に対する解をユーザエンド問題に対する解として得る。それにもかかわらず、エキスパートが問題を手動で定式化するための時間は長く、ゆえに、エンドユーザ(非エキスパート)が彼らの組み合わせ問題の答えを知るのにはさらに長い時間を要する。さらに、定式化の品質は、専門家の経験に依存する可能性がある。不適切な定式化は、劣った解を結果としてもたらす可能性がある。
【0003】
本開示において請求される対象事項は、何らかの欠点を解決し又は上述されたような環境においてのみ動作する実施形態に限定されない。むしろ、この背景技術は、本開示に記載されるいくつかの実施形態が実施され得る1つの例示的な技術分野を示すためにのみ提供される。
【発明の概要】
【0004】
一実施形態の態様によれば、動作が、複数の最適化問題についてのタクソノミ情報に対応する複数のユーザ選択可能な選択肢を含む電子ユーザインターフェースを表示することを含み得る。該動作は、複数の最適化問題のうち特定の最適化問題のために第1のテンプレートを選択する第1のユーザ入力を受信することをさらに含んでもよい。第1のユーザ入力は、複数のユーザ選択可能な選択肢のうち少なくとも1つのユーザ選択可能な選択肢の選択を含んでもよい。該動作は、特定の最適化問題のための選択された第1のテンプレートを介して第2のユーザ入力を受信することをさらに含んでもよい。第2のユーザ入力は、選択された第1のテンプレート内に指定される、特定の最適化問題の複数のパラメータに対する入力データを含んでもよい。該動作は、受信した第2のユーザ入力に基づいて特定の最適化問題に対する解を生成するために最適化ソルバマシンへの呼び出しを提供することをさらに含んでもよい。
【0005】
実施形態の目的及び利点は、少なくとも特許請求の範囲において特に指し示された要素、特徴、及び組み合わせにより実現され、達成される。
【0006】
前述の一般的な説明及び以下の詳細な説明の双方が例として与えられ、例示的であり、請求される発明の限定ではない。
【図面の簡単な説明】
【0007】
例示的な実施形態が、添付図面の使用を通してさらなる特定性及び詳細と共に記載され、説明される。
【
図1】特定の最適化問題に対する解を生成することに関連する一例示的な環境を表す図である。
【
図2】特定の最適化問題に対する解を生成する一例示的なシステムのブロック図である。
【
図3】ユーザが最適化ソルバマシンにより解かれるべき特定の最適化問題を構成するための電子ユーザインターフェースを提供する一例示的な方法のフローチャートである。
【
図4A】ユーザが例示的な最適化問題のためのテンプレートを調査及び選択するための一例示的な電子ユーザインターフェースを示す。
【
図4B】ユーザが例示的な最適化問題のためのテンプレートを介して入力を提供するための別の例示的な電子ユーザインターフェースを示す。
【
図5】非決定性多項式時間(NP)問題についての知識グラフを使用して最適化問題のためのテンプレートを生成する一例示的な方法のフローチャートである。
【
図6A】一例示的な知識グラフのブロック図を示す。
【
図6B】別の例示的な知識グラフのブロック図を示す。
【
図6C】別の例示的な知識グラフのブロック図を示す。
【
図7】特定の最適化問題のために少なくとも1つのNP定式化を構築する一例示的な方法のフローチャートである。
【
図8】特定の最適化問題のための少なくとも1つのNP定式化から第1の目的関数及び第2の目的関数を定式化する一例示的な方法のフローチャートである。
【
図9】特定の最適化問題のために第1の目的関数に基づいて第2の目的関数を定式化する一例示的な方法のフローチャートである。
【
図10】複数の最適化ソルバマシンの性能を測定する一例示的な方法のフローチャートである。
【
図11】特定の最適化問題を解くために接続されたデータベースを使用する最適化ソルバマシンのトリガを自動化する一例示的な方法のフローチャートである。
【発明を実施するための形態】
【0008】
本開示に記載されるいくつかの実施形態は、組み合わせ最適化問題の解決を自動化する方法及びシステムに関する。現実世界の問題の多くは、組み合わせ最適化問題として扱うことができる。例えば、注文のデリバリのための最良の経路を見つけるための現実世界の問題は組み合わせ最適化問題として考えられてもよく、これにおいて、注文についての全てのドロップオフ/ピックアップポイント間の最短の経路を識別することが必要とされ得る。任意の特定の組み合わせ最適化問題は、通常、離散解空間から探索されるべき特定の最適解の集合を有する。最適解の推定のための時間及び計算複雑性は、組み合わせ最適化問題のサイズが増大するとき増大する。組み合わせ最適化問題の大部分は、非決定性多項式時間(non-deterministic polynomial-time)(NP)最適化問題として分類でき、これは、従来のコンピュータでは計算的に扱いにくい。従来、NP最適化問題に対する最適又はほぼ最適な解は、量子アニーリング(quantum annealing)などの高度な探索方法又はメタヒューリスティックスを用いて得られる。いくつかの場合、解空間に対する探索を実行するように最適化された高度な最適化ソルバマシンが使用されて、NP最適化問題に対する最適又はほぼ最適な解を得る。典型的には、これらの最適化ソルバマシンは、ユーザにとって関心のあるNP最適化問題の入力定式化(formulation)のために、特定の入力フォーマットを必要とする。例えば、量子アニーリングデバイスは、入力定式化、すなわち、二次制約なしバイナリ最適化(Quadratic Unconstrained Binary Optimization、QUBO)定式化を必要とし得る。
【0009】
典型的には、エンドユーザは、現実世界の問題の詳細(例えば、物流におけるコンテナ積載)をエキスパートユーザに対して指定する必要があり、エキスパートユーザは、指定された詳細を解析して、現実世界の問題が組み合わせ最適化問題であるかどうかを最初識別し、識別された組み合わせ最適化問題のためのNP定式化を決定することができる。エキスパートユーザは、ソフトウェアソルバ、量子アニーラ(annealers)、又はデジタルアニーラを使用して、組み合わせ最適化問題に対する最適又はほぼ最適な解を得る。それにもかかわらず、エキスパートが問題を手動で定式化するための時間は長く、ゆえに、エンドユーザ(非エキスパート)が組み合わせ最適化問題としてモデル化された彼らの現実世界の問題の答えを知るのには長い時間を要する。これらの非エキスパートのエンドユーザは、彼らの現実世界の問題を解析してその解を提供するエキスパートユーザに頼るという選択肢のみを残される。さらに、NP定式化の品質は、エキスパートユーザの経験に依存する可能性がある。不適切なNP定式化は、劣った解が最適化ソルバマシンにより提供される結果をもたらす可能性がある。
【0010】
本開示の1つ以上の実施形態によれば、離散最適化の技術分野は、現実世界の問題に対してモデル化された組み合わせ最適化問題に関連するパラメータをエンドユーザが構成することを可能にする電子ユーザインターフェースをシステムが提供することができるようにシステムを構成することにより改善され得る。システムは、エンドユーザにとって関心のある問題と密接にマッチする問題のためのテンプレートの選択のために、電子ユーザインターフェースを介してユーザ入力を受信するように構成されてもよい。システムは、選択されたテンプレート上で指定されるように、関心のある問題の異なるパラメータに対する入力データを含むユーザ入力を受信するようにさらに構成されてもよい。システムは、ユーザにより提供されたユーザ入力に基づいて、エンドユーザにとって関心のある組み合わせ最適化問題に対する解を生成するようにさらに構成されてもよい。
【0011】
これら又は他の実施形態において、システムは、組み合わせ最適化問題のためにNP定式化を構築するように構成され得るオラクル(すなわち、チューリングマシンの一種)を含んでもよい。各個々のNP定式化は、NP最適化問題にマッピングされたユーザエンドの問題のために指定されたパラメータを有することができる。NP定式化の構築は、NP最適化問題の集合のために予め構築された知識グラフにわたる探索を含んでもよい。ユーザ入力からのNP定式化の自動化された構築は、エキスパートユーザがユーザ入力を手動で解析し、ユーザにとって関心のある問題のためのNP定式化を構築する必要を排除する。さらに、知識グラフが、異なるNP問題の間のグラフベースの関係を網羅的にカバーするとき、システムは、エキスパートユーザの手動解析と比較して、所与の組み合わせ最適化問題のための最良の最適なNP定式化を識別することは大分容易である。例えば、エキスパートユーザは、所与の制約からカッティングストック問題のナップサック問題への簡略化を考慮し損なう可能性がある。
【0012】
これら又は他の実施形態において、システムは、構築されたNP定式化のための目的関数及び制約を定式化するようにさらに構成されてもよい(すなわち、数学的定式化)。定式化された目的関数及び制約は、ユーザ入力に基づいて構築されたNP最適化問題のための数学的定式化と呼ばれることもある。システムは、定式化された目的関数及び制約条件を解くことにより、エンドユーザにとって関心のある組み合わせ最適化問題に対する解を生成するようにさらに構成されてもよい。
【0013】
本開示の実施形態は、添付の図面を参照して説明される。
【0014】
図1は、本開示に記載される少なくとも1つの実施形態に従って配置された、特定の最適化問題に対する解を生成することに関連する一例示的な環境を表す図である。
図1を参照し、環境100が示される。環境100は、電子デバイス102、電子デバイス102に表示された電子ユーザインターフェース104、最適化ソルバマシン108を含み得るアニーラシステム106を含んでもよい。環境100は、アプリケーション固有(application-specific)データベース110及び通信ネットワーク112をさらに含んでもよい。電子デバイス102、アニーラシステム106、及びアプリケーション固有データベース110は、通信ネットワーク112を介して互いに通信上結合されてもよい。
【0015】
さらに、電子デバイス102に関連づけられたユーザ114が示される。電子デバイス102の例は、これらに限られないがモバイルデバイス、デスクトップコンピュータ、ラップトップ、コンピュータワークステーション、クラウドサーバなどのサーバ、及びサーバのグループを含んでもよい。1つ以上の実施形態において、電子デバイス102は、ユーザエンド端末デバイスと、ユーザエンド端末デバイスに通信上結合されたサーバとを含んでもよい。ユーザエンド端末デバイスの例は、これらに限られないがモバイルデバイス、デスクトップコンピュータ、ラップトップ、及びコンピュータワークステーションを含んでもよい。
【0016】
電子デバイス102は、電子ユーザインターフェース104を表示するように構成可能な適切な論理、回路、及びインターフェースを含んでもよく、電子ユーザインターフェース104は、複数の最適化問題のタクソノミ情報に対応する複数のユーザ選択可能な選択肢を含んでもよい。複数の最適化問題のうち各最適化問題は、組み合わせ最適化問題に対応し得る。組み合わせ最適化問題は、組み合わせ最適化問題に対するいずれの実行可能解(feasible solutions)が離散解空間から探索され得るかに基づいて目的関数として定式化され得る既知の組み合わせ/数学問題であり得る。
【0017】
電子ユーザインターフェース104は、ユーザ114が関心のある最適化問題を調査及び識別することを可能にするように表示されてもよい。タクソノミ情報は、これらに限られないがアプリケーション固有ドメイン(application-specific domains)、ドメイン固有アプリケーション(domain-specific applications)、ドメイン固有アプリケーションについてのサブ問題、及び非決定性多項式時間(NP)問題のうち1つ以上を含んでもよい。タクソノミ情報は、複数のユーザ選択可能な選択肢、例えば、ドロップダウンリスト、入力テキストボックス、ボタン、ラベル付きチェックボックス等として提示されてもよい。
【0018】
複数のユーザ選択可能な選択肢のうち各ユーザ選択可能な選択肢は、アプリケーション固有ドメイン、ドメイン固有アプリケーション、サブ問題、及びNP問題のうち1つ以上にマッピングされてもよい。電子デバイス102は、複数の最適化問題のうち特定の最適化問題のために第1のテンプレートを選択する第1のユーザ入力を受信するように構成されてもよい。特定の最適化問題は、ユーザ114にとって関心のあり得る現実世界の最適化問題でもよい。一例として、ユーザ114のための現実世界の最適化問題は、一組のピックアップ/ドロップポイント間における一組の商品のピックアップ/デリバリのための最短ルートを決定することでもよい。別の例として、ユーザ114のための現実世界の最適化問題は、全ての出荷コンテナについて最大の容量利用率であると共に出荷コンテナ当たりの利益が最大であるように、異なる出荷コンテナに異なる種類の商品を積載することでもよい。別の例として、現実世界の最適化問題は、各空港が少なくとも「10」の搭乗/ターミナルゲートを有する状態で、「10」以上の空港から異なる時間に出発する「100」のフライトを、フライトが非利用のまま残されないようにスケジュールすることでもよい。この問題については、乗務員/スタッフの可用性、他の航空会社によるゲート/ターミナルの占有、及び天候条件などの異なる制約が存在し得る。
【0019】
さらに、特定の最適化問題は、複数のNP問題のうちのNP問題に対応し得る。例えば、NP問題は、グラフ彩色(graph coloring)問題、クリーク(clique)問題、独立集合(independent set)問題、クリーク被覆(clique cover)問題、ミニマックスマッチング(minimax matching)問題、ナップサック(Knapsack)問題、部分集合和(sub-set sum)問題、ビンパッキング(bin packing)問題、カッティングストック(cutting stock)問題、数分割(number partition)問題、ハミルトン閉路(Hamiltonian cycle)問題、巡回セールスマン(travelling salesman)問題、直接フィードバック集合(direct feedback set)問題、車両経路(vehicle routing)問題、ジョブショップスケジューリング(job shop scheduling)問題、一般化割当(generalized assignment)問題、二次割当(quadratic assignment)問題、集合パッキング(set packing)問題、集合分割(set partition)問題、集合被覆(set covering)問題、又はK‐Plex問題のうち1つでもよい。
【0020】
受信した第1のユーザ入力は、複数のユーザ選択可能な選択肢のうち少なくとも1つのユーザ選択可能な選択肢の選択を含んでもよい。以降、「少なくとも1つのユーザ選択可能な選択肢」は、「1つ以上のユーザ選択可能な選択肢」と互換的に参照されることがある。電子ユーザインターフェース104は、ユーザ114などのユーザが複数のユーザ選択可能な選択肢のうち異なるユーザ選択可能な選択肢を調査し、ユーザ114にとって関心のあり得る特定の最適化問題のための第1のテンプレートを識別することを可能にしてもよい。一例として、ユーザ114は、例えば、アプリケーション固有ドメインとしての「物流」、ドメイン固有アプリケーションとしての「戦略的計画」、サブ問題としての「コンテナ積載」、及びNP問題としての「ビンパッキング」などのユーザ選択可能な選択肢の特定の組み合わせを選択してもよい。ユーザ選択可能な選択肢の特定の組み合わせを選択することにより、ユーザ114は、表示された電子ユーザインターフェース104上で特定の最適化問題のための第1のテンプレートを選択することができる。選択された第1のテンプレートは、特定の最適化問題の複数のパラメータを指定することができる。複数のパラメータは、これらに限られないが予め定義された変数、変数のラベル、値、制約、目的関数、及びユーザ宣言可能な変数を含んでもよい。
【0021】
電子デバイス102は、特定の最適化問題のために選択された第1のテンプレートを介して第2のユーザ入力を受信するようにさらに構成されてもよい。第2のユーザ入力は、選択された第1のテンプレート内に指定される、特定の最適化問題の複数のパラメータに対する入力データを含んでもよい。入力データは、これらに限られないが異なるパラメータの値、制約(例えば、少なくとも2台のトラック)、条件(例えば、if‐else条件)、及び目的関数を含んでもよい。一例として、製品注文を出荷するための戦略的計画に関連する物流業界における特定の最適化問題について、複数のパラメータは、これらに限られないがコンテナ/トラックの数、出荷される製品の数、出荷される製品の各タイプのサイズ/重量、及び製品タイプごとの出荷コストを含んでもよい。さらに、特定の最適化問題について、複数のパラメータは、時間制約、コスト制約、又は重量制約などの制約のセットを含んでもよい。第2のユーザ入力は、特定の最適化問題の複数のパラメータについて、異なるパラメータ間の値、制約、条件、及び/又は関係(例えば、目的関数)を指定するために使用されてもよい。
【0022】
1つ以上の実施形態において、電子デバイス102は、第2のユーザ入力に基づいて特定の最適化問題に対する解を生成するためにアニーラシステム106の最適化ソルバマシン108への呼び出し(call)を提供するように構成されてもよい。解を生成するために、特定の最適化問題は、適切なフォーマットでアニーラシステム106にサブミットされる必要があってもよい。適切なフォーマットは、特定の最適化問題に対する解を生成するために最小化又は最適化される必要がある目的関数を含んでもよい。目的関数を取得するために、電子デバイス102は、受信した第2のユーザ入力に基づいて特定の最適化問題のための少なくとも1つのNP定式化を構築するように構成されてもよい。以降、「少なくとも1つのNP定式化」は、「1つ以上のNP定式化」と互換的に参照されることがある。さらに、電子デバイス102は、特定の最適化問題のために構築された対応するNP定式化の複数の属性のために目的関数を定式化するように構成されてもよい(数学的定式化/制約なしの数学的定式化とも呼ばれる)。1つ以上のNP定式化の構築及び目的関数の詳細が、例えば、
図3、5、7、及び8で提供される。
【0023】
1つ以上の実施形態において、アニーラシステム106は、呼び出しを受信して、第2のユーザ入力に基づいて特定の最適化問題に対する解を生成するように構成されてもよい。特定の最適化問題に対する解は、特定の最適化問題が解かれるべき変数の値データを含んでもよい。例えば、値データは整数値、浮動小数点値、又はバイナリ値などでもよい。解は、特定の最適化問題のための離散解空間に対する1つ以上の探索方法及び/又はメタヒューリスティック方法の適用により生成され得る最適(又はほぼ最適な解)であり得る。一例示的な例として、アニーラシステム106は、量子アニーリング(すなわち、メタヒューリスティック方法)を適用して、特定の最適化問題のための離散解空間にわたり目的関数の大域的最小値を見つけるように構成されてもよい。電子デバイス102及びアニーラシステム106の動作は、例えば、
図2、3、5、7、8、9、10、及び11でさらに詳細に説明される。
【0024】
アニーラシステム106は、量子アニーリングなどの1つ以上の探索方法及び/又はメタヒューリスティック方法に関連づけられたソフトウェア命令を実行するように構成され得るコンピューティングシステムでもよい。本開示の一実施形態において、アニーラシステム106はクラウドサーバとして実現されてもよく、クラウドサーバへの入力は、電子デバイス102からのアプリケーションプログラミングインターフェース(API)要求を介して受信されてもよい。例えば、入力は、特定の最適化問題に対する解を生成するための呼び出しと、特定の最適化問題に対応するNP問題のための目的関数を含んでもよい。
【0025】
アニーラシステム106は、最適化ソルバマシン108を含んでもよい。最適化ソルバマシン108は、特定の最適化問題にマッピングされたNP問題のための目的関数、例えば、制約なし/制約あり数学的定式化(例えば、二次制約なしバイナリ最適化(QUBO)関数)を解くことにより、特定の最適化問題に対する解を生成するように構成されてもよい。これらの制約なし/制約あり数学的定式化は、計算複雑性の観点からNP困難問題である可能性がある。ゆえに、換言すると、最適化ソルバマシン108は、離散解空間から、従来のコンピュータでは計算的に扱いにくい可能性がある(特定の最適化問題にマッピングされた)NP困難問題に対する実行可能解を探索するように構成されてもよい。
【0026】
本開示の1つ以上の実施形態において、最適化ソルバマシン108は、一般化された量子コンピューティングデバイスでもよい。この実施形態において、一般化された量子コンピューティングデバイスは、アプリケーション層において専用の最適化解決ソフトウェアアプリケーションを使用して、ユーザ114により指定される組み合わせ最適化問題に対してシミュレーテッドアニーリング又は量子アニーリングなどの探索方法又はメタヒューリスティック方法を実現してもよい。
【0027】
一般化された量子コンピューティングデバイスは、トランジスタベースのデジタル回路に基づくデジタルデバイスなどのデジタルビットベースのコンピューティングデバイスとは異なり得る。一般化された量子コンピューティングデバイスは、組み合わせ最適化問題を解くための量子アニーリング計算などの異なる情報処理アプリケーションについて計算を実行するために量子ビット(以降、「キュービット」と呼ばれる)を使用する1つ以上の量子ゲートを含んでもよい。一般に、キュービットは、「0」、「1」、又は「0」及び「1」の双方の重ね合わせを表すことができる。大抵の場合、一般化された量子コンピューティングデバイスは、適切に機能するために注意深く制御された低温環境を必要とし得る。一般化された量子コンピューティングデバイスは、量子ゆらぎ、その固有状態の量子重ね合わせ、量子トンネリング、量子もつれなどの、量子力学系に見られる特定の特性を使用してもよい。これらの特性は、一般化された量子コンピューティングデバイスが、従来のコンピューティングデバイスでは計算的に扱いにくい特定の数学的問題(例えば、QUBO関数)を解くための計算を実行するのを助ける可能性がある。一般化された量子コンピューティングデバイスの例は、これらに限られないがシリコンベースの核スピン量子コンピュータ、トラップイオン量子コンピュータ、キャビティ量子電気力学(quantum-electrodynamics、QED)コンピュータ、核スピンに基づく量子コンピュータ、量子ドット内の電子スピンに基づく量子コンピュータ、超伝導ループ及びジョセフソン接合を使用する超伝導量子コンピュータ、及び核磁気共鳴量子コンピュータを含んでもよい。
【0028】
いくつかの他の実施形態において、最適化ソルバマシン108は、シミュレーテッドアニーリング又は量子アニーリングなどの探索方法又はメタヒューリスティック方法を実現するように具体的に設計され、ハードウェア/ソフトウェア最適化され得る量子アニーリングコンピュータでもよい。一般化された量子コンピューティングデバイスと同様に、量子アニーリングコンピュータもまたキュービットを使用してもよく、適切に機能するために注意深く制御された低温環境を必要とし得る。
【0029】
いくつかの他の実施形態において、最適化ソルバマシン108は、特定の最適化問題を解くためのデジタル量子コンピューティングプロセッサに対応してもよい。より具体的には、最適化ソルバマシン108は、半導体ベースのアーキテクチャに基づき得るデジタルアニーラでもよい。デジタルアニーラは、デジタル回路上に量子アニーリングコンピュータの機能性をモデル化するように設計されてもよい。デジタルアニーラは、室温で動作してもよく、機能するために低温環境を必要としなくてもよい。さらに、デジタルアニーラは、データセンタなどのコンピューティングデバイス又はコンピューティングシステムのラックにスライドさせるのに十分小さい回路ボード上にそれが適合することを可能にし得る特定のフォームファクタを有してもよい。
【0030】
いくつかの他の実施形態において、最適化ソルバマシン108は、シミュレーテッドアニーリング又は量子アニーリングなどの1つ以上の探索方法及び/又はメタヒューリスティック方法に関連づけられたソフトウェア命令を実行するように構成され得るプロセッサをさらに含んでもよい。プロセッサは、縮小命令セットコンピューティング(Reduced Instruction Set Computing、RISC)プロセッサ、特定用途向け集積回路(Application-Specific Integrated Circuit、ASIC)プロセッサ、複合命令セットコンピューティング(Complex Instruction Set Computing、CISC)プロセッサ、グラフィカル処理ユニット(Graphical Processing Unit、GPU)、中央処理ユニット(Central Processing Unit、CPU)、コプロセッサ、及び/又はこれらの組み合わせでもよい。
【0031】
1つ以上の実施形態において、電子デバイス102は、最適化問題がユーザ114により電子ユーザインターフェース104を介して指定されると、アプリケーション固有データベース110を最適化ソルバマシン108に接続するユーザ要求を受信するように構成されてもよい。アプリケーション固有データベースは、特定の最適化問題の複数のパラメータに対する入力データを含み得る関係データベース又は非関係データベースでもよい。さらに、いくつかの場合、アプリケーション固有データベース110は、クラウドサーバなどのサーバに記憶されてもよく、あるいは電子デバイス102上にキャッシュされ、記憶されてもよい。
【0032】
電子デバイス102は、ユーザ要求を最適化ソルバマシン108にサブミットするようにさらに構成されてもよい。ユーザ要求は、アプリケーション固有データベース110に関連づけられた情報を含んでもよい。最適化ソルバマシン108は、ユーザ要求に基づいてアプリケーション固有データベース110に接続するように構成されてもよい。さらに、ユーザ114は、最適化ソルバマシン108をトリガするために満たされるべきユーザ指定条件のセットを指定することができる。ユーザ指定条件のセットは、特定の最適化問題に対する解を再度生成するように最適化ソルバマシン108をトリガするために使用されてもよい。ユーザ指定条件のセットは、これらに限られないがユーザ114からの手動トリガ入力、特定の最適化問題の1つ以上のパラメータの値の周期的/非周期的変化、及び特定の最適化問題のパラメータ間の論理的条件を含んでもよい。決定されたユーザ指定条件のセットのうち少なくとも1つが満たされる場合、電子デバイス102は、特定の最適化問題を解くために接続されたアプリケーション固有データベース110から入力データを取り出すように最適化ソルバマシン108をトリガしてもよい。
【0033】
ここで、電子デバイス102と、アニーラシステム106と、アプリケーション固有データベース110を記憶するサーバとの間の通信は、通信ネットワーク112を介して行われてもよいことに留意されたい。通信ネットワーク112は、電子デバイス102がアニーラシステム106、異なるサーバ、及び外部の最適化ソルバ(図示せず)と通信し得るための通信媒体を含んでもよい。通信ネットワーク112の例は、これらに限られないがインターネット、クラウドネットワーク、ワイヤレスフィデリティ(Wi‐Fi(登録商標))ネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、及び/又はメトロポリタンエリアネットワーク(MAN)を含んでもよい。環境100内の種々のデバイスが、種々の有線及び無線通信プロトコルに従って通信ネットワーク112に接続するように構成されてもよい。そのような有線及び無線通信プロトコルの例は、これらに限られないがトランスミッションコントロールプロトコル及びインターネットプロトコル(TCP/IP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキストトランスファープロトコル(HTTP)、ファイルトランスファープロトコル(FTP)、ZigBee(登録商標)、EDGE、IEEE802.11、ライトフィデリティ(Li‐Fi)、802.16、IEEE802.11s、IEEE802.11g、マルチホップ通信、無線アクセスポイント(AP)、デバイスツーデバイス通信、セルラ通信プロトコル、及び/又はBluetooth(登録商標)(BT)通信プロトコル、又はこれらの組み合わせのうち少なくとも1つを含んでもよい。
【0034】
図1において、電子デバイス102及びアプリケーション固有データベース110は、アニーラシステム106とは別個に示されている。しかしながら、特定の例示的な実施形態において、電子デバイス102及びアプリケーション固有データベース110の機能全体が、開示の範囲から逸脱することなくアニーラシステム106に組み込まれてもよい。このような場合、通信ネットワークは、アニーラシステム106内のインターフェース(例えば、ペリフェラルコンポーネントインターコネクト(PCI)インターフェース)でもよい。
【0035】
図2は、本開示に記載される少なくとも1つの実施形態に従って配置された、特定の最適化問題に対する解を生成する一例示的なシステムのブロック図である。
図2は、
図1の要素と関連して説明される。
図2を参照し、例示的なシステム202のブロック
図200が示される。例示的なシステム202は、電子デバイス102及びアニーラシステム106を含み得る。電子デバイス102は、プロセッサ204、メモリ206、及び永続データ記憶装置208を含んでもよい。例示的なシステム202は、表示デバイス212を含み得る入力/出力(I/O)デバイス210をさらに含んでもよい。電子デバイス102は、ネットワークインターフェース214をさらに含んでもよい。
【0036】
プロセッサ204は、電子デバイス102により実行されるべき異なる動作に関連づけられたプログラム命令を実行するように構成され得る適切な論理、回路、及び/又はインターフェースを含んでもよい。例えば、動作のいくつかは、表示デバイス212への電子ユーザインターフェース104の表示、電子ユーザインターフェース104上に表示された異なるユーザ選択可能な選択肢を通しての複数のユーザ入力の受信等を含んでもよい。プロセッサ204は、種々のコンピュータハードウェア又はソフトウェアモジュールを含む任意の適切な専用又は汎用コンピュータ、コンピューティングエンティティ、又は処理デバイスを含んでもよく、任意の適用可能なコンピュータ読取可能記憶媒体に記憶された命令を実行するように構成されてもよい。例えば、プロセッサ204は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラム命令を解釈及び/又は実行し、及び/又はデータを処理するように構成された任意の他のデジタル又はアナログ回路を含んでもよい。
図2では単一プロセッサとして示されているが、プロセッサ204は、本開示に記載されるように電子デバイス102の任意数の動作を個々に又は集合的に実行し又はその実行を指示するように構成された任意数のプロセッサを含んでもよい。さらに、プロセッサの1つ以上が、異なるサーバなどの1つ以上の異なる電子デバイスに存在してもよい。
【0037】
いくつかの実施形態において、プロセッサ204は、メモリ206及び/又は永続データ記憶装置208に記憶されたプログラム命令を解釈及び/又は実行し、及び/又はデータを処理するように構成されてもよい。いくつかの実施形態において、プロセッサ204は、永続データ記憶装置208からプログラム命令を取り出し、プログラム命令をメモリ206にロードすることができる。プログラム命令がメモリ206にロードされた後、プロセッサ204はプログラム命令を実行することができる。プロセッサ204の例のいくつかは、GPU、CPU、RISCプロセッサ、ASICプロセッサ、CISCプロセッサ、コプロセッサ、及び/又はこれらの組み合わせでもよい。
【0038】
メモリ206は、プロセッサ204により実行可能なプログラム命令を記憶するように構成され得る適切な論理、回路、及び/又はインターフェースを含んでもよい。特定の実施形態において、メモリ206は、オペレーティングシステム及び関連するアプリケーション固有情報を記憶するように構成されてもよい。メモリ206は、記憶されたコンピュータ実行可能命令又はデータ構造を搬送し又は有するコンピュータ読取可能記憶媒体を含んでもよい。そのようなコンピュータ読取可能記憶媒体は、プロセッサ204などの汎用又は専用コンピュータによりアクセスされ得る任意の利用可能な媒体を含んでもよい。
【0039】
限定でなく例として、このようなコンピュータ読取可能記憶媒体は、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、電気的消去可能プログラマブル読取専用メモリ(EEPROM)、コンパクトディスク読取専用メモリ(CD‐ROM)若しくは他の光ディスク記憶デバイス、磁気ディスク記憶装置若しくは他の磁気記憶デバイス、フラッシュメモリデバイス(例えば、ソリッドステートメモリデバイス)、又はコンピュータ実行可能命令又はデータ構造の形式で特定のプログラムコードを搬送又は記憶するために使用でき、かつ汎用又は専用コンピュータによりアクセスできる任意の他の記憶媒体を含む、有形又は非一時的コンピュータ読取可能記憶媒体を含んでもよい。上記の組み合わせもまた、コンピュータ読取可能記憶媒体の範囲内に含まれ得る。コンピュータ実行可能命令は、例えば、プロセッサ204に電子デバイス102に関連づけられた特定の動作又は動作のグループを実行させるように構成された命令及びデータを含んでもよい。
【0040】
永続データ記憶装置208は、プロセッサ204により実行可能なプログラム命令、オペレーティングシステム、及び/又はログ及びアプリケーション固有データベースなどのアプリケーション固有情報を記憶するように構成され得る適切なロジック、回路、及び/又はインターフェースを含んでもよい。永続データ記憶装置208は、記憶されたコンピュータ実行可能命令又はデータ構造を搬送し又は有するコンピュータ読取可能記憶媒体を含んでもよい。そのようなコンピュータ読取可能記憶媒体は、プロセッサ204などの汎用又は専用コンピュータによりアクセスされ得る任意の利用可能な媒体を含んでもよい。
【0041】
限定でなく例として、このようなコンピュータ読取可能記憶媒体は、コンパクトディスク読取専用メモリ(CD‐ROM)若しくは他の光ディスク記憶デバイス、磁気ディスク記憶装置若しくは他の磁気記憶デバイス(例えば、ハードディスクドライブ(HDD))、フラッシュメモリデバイス(例えば、ソリッドステートドライブ(SSD)、セキュアデジタル(SD)カード、他のソリッドステートメモリデバイス)、又はコンピュータ実行可能命令又はデータ構造の形式で特定のプログラムコードを搬送又は記憶するために使用でき、かつ汎用又は専用コンピュータによりアクセスできる任意の他の記憶媒体を含む、有形又は非一時的コンピュータ読取可能記憶媒体を含んでもよい。上記の組み合わせもまた、コンピュータ読取可能記憶媒体の範囲内に含まれ得る。コンピュータ実行可能命令は、例えば、プロセッサ204に電子デバイス102に関連づけられた特定の動作又は動作のグループを実行させるように構成された命令及びデータを含んでもよい。
【0042】
I/Oデバイス210は、ユーザ入力を受け取るように構成され得る適切な論理、回路、インターフェース、及び/又は、コードを含んでもよい。I/Oデバイス210は、ユーザ入力に応答して出力を提供するようにさらに構成されてもよい。I/Oデバイス210は、プロセッサ204及び他のコンポーネント、例えばネットワークインターフェース214などと通信するように構成され得る種々の入力及び出力デバイスを含んでもよい。入力デバイスの例は、これらに限られないがタッチスクリーン、キーボード、マウス、ジョイスティック、及び/又はマイクロホンを含んでもよい。出力デバイスの例は、これらに限られないがディスプレイ(表示デバイス212など)及びスピーカを含んでもよい。
【0043】
表示デバイス212は、電子ユーザインターフェース104を表示デバイス212の表示画面にレンダリングするように構成され得る適切な論理、回路、インターフェース、及び/又はコードを含んでもよい。1つ以上の実施形態において、ユーザ(ユーザ114など)からの複数のユーザ入力が、表示デバイス212を介して直接受信されてもよい。このような場合、表示デバイス212の表示画面は、複数のユーザ入力を受け取るためのタッチスクリーンでもよい。表示デバイス212は、これらに限られないが液晶(LCD)ディスプレイ、発光ダイオード(LED)ディスプレイ、プラズマディスプレイ、及び/又は有機LED(OLED)ディスプレイ技術、及び/又は他のディスプレイ技術などのいくつかの既知の技術により実現されてもよい。さらに、いくつかの実施形態において、表示デバイス212は、スマートグラスデバイスの表示画面、3Dディスプレイ、シースルーディスプレイ、投影ベースのディスプレイ、エレクトロクロミックディスプレイ、及び/又は透明ディスプレイを参照してもよい。
【0044】
ネットワークインターフェース214は、通信ネットワーク112を介して電子デバイス102、アニーラシステム106、及びアプリケーション固有データベース110の間の通信を確立するように構成され得る適切な論理、回路、インターフェース、及び/又はコードを含んでもよい。ネットワークインターフェース214は、通信ネットワーク112を介した電子デバイス102の有線又は無線通信をサポートするために種々の既知の技術の使用により実現されてもよい。ネットワークインターフェース214は、これらに限られないがアンテナ、無線周波数(RF)トランシーバ、1つ以上の増幅器、チューナ、1つ以上の発振器、デジタル信号プロセッサ、コーダ・デコーダ(コーデック)チップセット、加入者識別モジュール(SIM)カード、及び/又はローカルバッファを含んでもよいが、。
【0045】
ネットワークインターフェース214は、インターネット、イントラネット、及び/又は無線ネットワーク、例えばセルラ電話ネットワーク、無線ローカルエリアネットワーク(LAN)及び/又はメトロポリタンエリアネットワーク(MAN)などのネットワークと、無線通信を介して通信してもよい。無線通信は、グローバルシステムフォーモバイルコミュニケーションズ(Global System for Mobile Communications、GSM(登録商標))、拡張データGSM環境(Enhanced Data GSM Environment、EDGE)、広帯域符号分割多元接続(wideband code division multiple access、W‐CDMA)、ロングタームエボリューション(Long Term Evolution、LTE(登録商標))、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、Bluetooth(登録商標)、ワイヤレスフィデリティ(Wi‐Fi)(IEEE802.11a、IEEEE802.11b、IEEEE802.11g、及び/又はIEEE802.11nなど)、ボイスオーバーインターネットプロトコル(VoIP)、ライトフィデリティ(Li‐Fi)、又はWi‐MAXなどの複数の通信標準、プロトコル、及び技術のいずれかを使用してもよい。
【0046】
本開示の範囲から逸脱することなく、例示的なシステム202に対して修正、追加、又は省略がなされてもよい。例えば、いくつかの実施形態において、例示的なシステム202は、明示的に図示又は説明されない可能性のある任意数の他のコンポーネントを含んでもよい。
【0047】
図3は、本開示に記載される少なくとも1つの実施形態による、ユーザが最適化ソルバマシンにより解かれるべき特定の最適化問題を構成するための電子ユーザインターフェースを提供する一例示的な方法のフローチャートである。
図3は、
図1及び
図2の要素と関連して説明される。
図3を参照し、フローチャート300が示される。フローチャート300に示される方法は302で開始でき、
図2の例示的なシステム202などの任意の適切なシステム、装置、又はデバイスにより実行されてもよい。
【0048】
302において、電子ユーザインターフェース104が表示され得る。電子ユーザインターフェース104は、複数の最適化問題についてのタクソノミ情報に対応する複数のユーザ選択可能な選択肢を含んでもよい。1つ以上の実施形態において、プロセッサ204は、複数の最適化問題についてのタクソノミ情報に対応する複数のユーザ選択可能な選択肢を含み得る電子ユーザインターフェース104を表示するように構成されてもよい。
図4A及び
図4Bに、電子ユーザインターフェース104の一例が提供される。タクソノミ情報は、アプリケーション固有ドメイン、ドメイン固有アプリケーション、ドメイン固有アプリケーションのサブ問題、及びNP問題のうち1つ以上を含んでもよい。
【0049】
表1に、タクソノミ情報の一例が以下のとおり提示される。
【表1】
【0050】
電子ユーザインターフェース104は、ユーザ114(エキスパート又は非エキスパートユーザ)が特定の最適化問題に密接にマッチするアプリケーション固有ドメインを調査及び識別するように提供されてもよい。電子ユーザインターフェース104は、さらに、ユーザ114が特定の最適化問題に関連づけられたドメイン固有アプリケーション/問題、サブ問題、又はNP問題を調査及び識別するように提供されてもよい。複数のユーザ選択可能な選択肢は、複数の最適化問題についてのタクソノミ情報に対応し得る。特定の実施形態において、タクソノミ情報は、グラフ構造として提示されてもよく、ユーザは、グラフ構造を操作して、ユーザ114にとって関心のある特定の最適化問題に最も近くマッチする第1のテンプレートを識別してもよい。
【0051】
1つ以上の実施形態において、複数のユーザ選択可能な選択肢は、ドロップダウンメニュー項目のセットを含んでもよい。ドロップダウンメニュー項目のセットのうち各ドロップダウンメニュー項目は、アプリケーション固有ドメイン、ドメイン固有アプリケーション/問題、サブ問題、又はNP問題のうち1つを得てもよい。ユーザ114は、アプリケーション固有ドメイン、ドメイン固有アプリケーション/問題、サブ問題、又はNP問題のうち1つ以上を選択して特定の最適化問題のための第1のテンプレートを選択することを可能にされてもよい。
【0052】
いくつかの他の実施形態において、複数のユーザ選択可能な選択肢は、電子ユーザインターフェース104上に表示されるクエリインターフェースをさらに含んでもよい。クエリインターフェースは、ユーザ114が使用自然言語文、キーワード、又は短文を介して検索クエリを提供して、タクソノミ情報のどの部分が自然言語文、キーワード、又は短文と密接にマッチし、特定の最適化問題にマッピングするかを識別するように表示されてもよい。特定の場合には、プロセッサ204は、タクソノミ情報の部分と検索クエリとの間の類似度スコアを決定するように構成されてもよい。類似度スコアは、提供された検索クエリについて対応する最適化問題が存在するかどうかを判断するために使用されてもよい。さらに、1つ以上の実施形態において、問題の記述、アプリケーションの例などのエンティティの要約が、電子ユーザインターフェース104を介してユーザ114に表示されてもよい。一例として、エンティティ及びサマリは、アプリケーション固有ドメイン、ドメイン固有アプリケーション、ドメイン固有アプリケーションのサブ問題、及びNP問題のうち1つ以上のために表示されてもよい。
【0053】
304において、複数の最適化問題のうち特定の最適化問題のために第1のテンプレートを選択する第1のユーザ入力が受信され得る。1つ以上の実施形態において、プロセッサ204は、複数の最適化問題のうち特定の最適化問題のために第1のテンプレートを選択する第1のユーザ入力を受信するように構成されてもよい。第1のユーザ入力は、複数のユーザ選択可能な選択肢のうち1つ以上のユーザ選択可能な選択肢の選択を含んでもよい。1つ以上の実施形態において、受信した第1のユーザ入力は、対応する複数の最適化問題のための複数のテンプレートからの第1のテンプレートの選択に対応し得る。対応する複数の最適化問題のための複数のテンプレートを取得するために実行される演算は、例えば、
図5で説明される。
【0054】
ユーザ114は、アプリケーション固有ドメインの選択から始まってユーザ114にとって関心のある問題/サブ問題/NP問題の選択で終わるトップダウンのステップバイステップ選択処理を介して最適化問題を指定することを可能にされてもよい。ここで、ユーザ114は、電子ユーザインターフェース104上の特定のユーザ選択可能な選択肢にジャンプすることを可能にされてもよいことに留意されたい。例えば、ユーザ114が特定のNP問題に関心がある場合、電子ユーザインターフェース104は、ユーザ114がNP問題のための対応するユーザ選択可能な選択肢に直接アクセスすることを可能にしてもよい。
【0055】
306において、特定の最適化問題のための選択された第1のテンプレートを介して、ユーザ114から第2のユーザ入力が受信され得る。第2のユーザ入力は、選択された第1のテンプレート内に指定される、特定の最適化問題の複数のパラメータに対する入力データを含んでもよい。複数のパラメータは、アプリケーション固有制約のセット、対応する最適化問題のための変数のセット、特定の最適化問題のための目的関数などに少なくとも関連づけられた情報を含んでもよい。第1のテンプレートは、ユーザ114が特定の最適化問題のためにパラメータ値などの詳細をさらに構成するためのアプリケーションインターフェースに対応してもよい。複数のパラメータに対する入力データは、これらに限られないが特定の最適化問題についてのアプリケーション固有制約、変数名、パラメータ値、条件、及び目的関数を含んでもよい。入力データは、ユーザ好みに基づいて第1のテンプレート上の1つ以上のパラメータのためのリネームされた/新しいラベルをさらに含んでもよい。例えば、ナップサック問題における「トラック」は、「コンテナ」としてリネームされてもよい。ナップサック問題のためのテンプレート上の入力データの一例が
図4Bで図示され、説明される。
【0056】
選択された第1のテンプレートにおいて、電子ユーザインターフェース104は、特定の最適化問題の複数のパラメータに対応する複数の入力フィールドを提供してもよい。複数のパラメータは、特定の最適化問題に依存して変わってもよい。第1のテンプレートは、ユーザ114が特定の最適化問題に関連づけられた第2のユーザ入力をサブミットすることを可能にし得る。ひとたびサブミットされると、第2のユーザ入力に基づいて、特定の最適化問題のための適切な目的関数が定式化され、最適化ソルバマシン108にサブミットされてもよい。あるいは、特定の最適化問題のための適切な目的関数は、定式化され、最適化ソルバマシン108及び/又は他の外部最適化ソルバマシンを含み得る複数の最適化ソルバマシンにサブミットされてもよい。選択された第1のテンプレートを介した第2のユーザ入力のサブミットは、特定の最適化問題に対する1つ以上の解を生成するために、最適化ソルバマシン108及び/又は他の外部最適化ソルバマシンへの呼び出しをトリガすることができる。他の外部最適化解決マシンの各々は、ソフトウェアソルバを使用する最適化ソルバマシンの一種、例えばGurobiソルバ又はオープンソースソフトウェアソルバ、例えば制約整数計画解決(Solving Constraint Integer Programs、SCIP)、Google(登録商標) OR‐tool、GNU線形計画キット(GNU Linear Programming Kit、GLPK)ソルバなどに対応してもよい。さらに、これらの他の外部最適化ソルバマシンは、ハードウェア(例えば、一般化された量子コンピューティングデバイス又は量子アニーリングコンピュータ)及び/又は最適化ソルバマシン108のものとは異なり得るソフトウェアコードを含んでもよい。この差は、最適化ソルバマシン108の性能をベンチマークし、改善するのにさらに役立ち得る。
【0057】
第1のテンプレート内の対応するパラメータのための各入力フィールドは、特定の最適化問題についての対応するNP問題の属性にマッピングされてもよい。いくつかの場合、対応するNP問題は、複数のアプリケーション固有ドメインにおける複数の最適化問題にさらに対応し得る。ユーザ114により指定されたアプリケーション固有ドメインのコンテキストに基づいて、適切な用語が第1のテンプレートに示されてもよい。例えば、ナップサック問題では「ナップサック」は、輸送ドメインにおける「トラック」又は公共部門ドメインにおける「資本予算」を参照することがある。しかしながら、ユーザ114は、特定の最適化問題のために第1のテンプレートを選択することを可能にされ得るが、いくつかの場合、ユーザ114は、第1のテンプレートにおいて目的関数又は制約を修正又は追加してもよい。1つ以上の実施形態において、プロセッサ204は、目的関数又は制約を修正又は追加するユーザ入力に基づいて、特定の最適化問題についての対応するNP問題を修正するように構成されてもよい。例えば、0‐1ナップサックは、ユーザ入力が2つ以上のナップサックを指定するかどうかに基づいて、複数のナップサックの問題として一般化されてもよい。あるいは、同じ0‐1ナップサック問題が、ナップサック問題の値パラメータが2つのアイテム/オブジェクトの包含に依存することを指定するユーザ入力に基づいて、二次ナップサック問題として一般化されてもよい。
【0058】
選択された第1のテンプレートにおいて、複数の入力フィールドは、ユーザ114が特定の最適化問題のために複数のパラメータ間の制約関係を構成するように提供され得る共通論理関係をさらに含んでもよい。制約関係は、論理演算子又は選択条件に基づいて指定されてもよい。論理演算子の例は、これらに限られないが「OR」、「AND」、「Exclusive‐OR」、「Not」、「Either...OR」、「if...then」、「if and only if」、「only if」、及び「neither nor...」を含んでもよい。選択条件の例は、これらに限られないが「少なくともk個の項目を選択する」、「ちょうどk個の項目を選択する」、及び「最大でk個の項目を選択する」を含んでもよい。
【0059】
1つ以上の実施形態において、ユーザ要求に対して、プロセッサ204は、接続インターフェースを介してアプリケーション固有データベース110を最適化ソルバマシン108に接続するように構成されてもよい。アプリケーション固有データベース110は、特定の最適化問題のために複数のパラメータにマッピングされた入力データを含んでもよい。いくつかの場合、ユーザ要求は、アプリケーション固有データベース110に接続するために他の外部最適化ソルバマシンに提供されてもよい。さらに、ユーザ要求は、満たされたときにアプリケーション固有データベース110から特定の最適化問題についての入力データを自動的に取り出すように最適化ソルバマシン108又は他の外部最適化ソルバマシンをトリガする条件のセットを含んでもよい。最適化ソルバマシン108又は他の外部最適化ソルバマシンは、アプリケーション固有データベース110から特定の最適化問題について取り出された入力データに基づいて、特定の最適化問題に対する1つ以上の解を生成するように構成されてもよい。
【0060】
308において、特定の最適化問題に対する解を提供するために、ユーザ要求が受信され得る。1つ以上の実施形態において、プロセッサ204は、特定の最適化問題に対する1つ以上の解を提供するユーザ要求を受信するように構成されてもよい。ユーザ要求は、第2のユーザ入力のユーザサブミットに応答して受信されてもよい。ユーザ要求は、特定の最適化問題の複数のパラメータに対する入力データを少なくとも含んでもよい。
【0061】
1つ以上の実施形態において、ユーザ要求が受信されると、特定の最適化問題のための1つ以上のNP定式化の構築に関連づけられた1つ以上の動作が、受信した第2のユーザ入力に基づいて実行されてもよい。さらに、1つ以上の目的関数(数学的定式化とも呼ばれる)の定式化に関連づけられた1つ以上の動作が、特定の最適化問題のための1つ以上のNP定式化に基づいて実行されてもよい。
【0062】
特定の実施形態において、プロセッサ204は、受信した第2のユーザ入力に基づいて、特定の最適化問題のための1つ以上のNP定式化の構築に関連づけられた1つ以上の動作を実行するように構成されてもよい。さらに、プロセッサ204は、特定の最適化問題のための1つ以上のNP定式化に基づいて、1つ以上の目的関数の定式化に関連づけられた1つ以上の動作を実行するようにさらに構成されてもよい。1つ以上のNP定式化の構築及び/又は1つ以上の目的関数の定式化に関連づけられた1つ以上の動作は、例えば、
図7、8、9、10、及び11で詳細に説明される。
【0063】
310において、特定の最適化問題に対する解を生成するために、呼び出しが最適化ソルバマシン108に提供され得る。呼び出しは、選択された第1のテンプレートを介して受信したユーザ要求に応答して、すなわち、第2のユーザ入力のサブミットに基づいて提供されてもよい。あるいは、呼び出しは、最適化ソルバマシン108及び他の外部最適化ソルバマシンを含む複数の最適化ソルバマシンに提供されてもよい。複数の最適化ソルバマシンへの呼び出しを提供する態様は、例えば、
図10で説明される。1つ以上の実施形態において、プロセッサ204は、受信したユーザ要求をアニーラシステム106にサブミットするように構成されてもよい。1つ以上の実施形態において、プロセッサ204は、特定の最適化問題に対する解を生成するために最適化ソルバマシン108への呼び出しを提供するように構成されてもよい。このような場合、プロセッサ204は、通信ネットワーク112を介して、最適化ソルバマシン108及び/又は他の外部最適化ソルバマシンに、指定されたフォーマット(例えば、代数モデリング言語(AML)フォーマット)で1つ以上の目的関数を提供するように構成されてもよい。
【0064】
312において、最適化ソルバマシン108から特定の最適化問題に対して解が受信され得る。1つ以上の実施形態において、プロセッサ204は、最適化ソルバマシン108から特定の最適化問題に対する解を受信するように構成されてもよい。解は、整数値、浮動小数点値、又は1つ以上の目的関数の属性に対するバイナリ値などの値を含んでもよい。そのような値は、実行可能な(又は最適な)解の存在を示し、あるいは特定の最適化問題に対する1つ以上の解を表し得る。
【0065】
314において、特定の最適化問題に対して受信した解が、表示デバイス212の表示画面に出力され得る。あるいは、特定の最適化問題に対して受信した解は、接続インターフェースを介して直接、アプリケーション固有データベース110内で更新されてもよい。1つ以上の実施形態において、プロセッサ204は、表示デバイス212の表示画面上に特定の最適化問題に対して受信した解を出力するように構成されてもよい。あるいは、プロセッサ204は、接続インターフェースを介して直接、アプリケーション固有データベース110において特定の最適化問題に対して受信した1つ以上の解を更新するように構成されてもよい。制御は終了に進み得る。フローチャート300は、302、304、306、308、310、312、及び314などの別個の動作として示されているが、しかしながら、特定の実施形態において、このような別個の動作は、開示された実施形態の本質を損なうことなく、特定の実装に依存してさらなる動作にさらに分割されてもよく、より少ない動作に組み合わせられてもよく、あるいは削除されてもよい。
【0066】
図4Aは、本開示に記載される少なくとも1つの実施形態による、ユーザが例示的な最適化問題のためのテンプレートを調査及び選択するための一例示的な電子ユーザインターフェースを示す。
図4Aは、
図1、
図2、及び
図3の要素と関連して説明される。
図4Aを参照し、
図1の電子ユーザインターフェース104に対応し得る一例示的な電子ユーザインターフェース400Aが示される。例示的な電子ユーザインターフェース400Aには、ユーザインターフェース要素のセット(以降、「UI要素のセット」と呼ばれる)が示される。UI要素のセットは、第1のUI要素402、第2のUI要素404、及び第3のUI要素406を含んでもよい。
【0067】
図4Aにおいて、第1のUI要素402は、例えば、「問題の調査(Explore Problems)」としてラベル付けされている。第1のUI要素402は、これらに限られないがアプリケーション固有ドメイン選択選択肢402A、問題選択選択肢402B、サブ問題選択選択肢402C、及びNP問題選択選択肢402Dを含む複数のユーザ選択可能な選択肢を含んでもよい。複数のユーザ選択可能な選択肢は、複数の最適化問題についてのタクソノミ情報に対応してもよい。ここで、タクソノミ情報は、これらに限られないがアプリケーション固有ドメイン、ドメイン固有アプリケーション、ドメイン固有アプリケーションのサブ問題、及びNP問題のうち1つ以上を含んでもよい。タクソノミ情報の一部が、一例として
図3の表として提供される。
【0068】
1つ以上の実施形態において、プロセッサ204は、複数の最適化問題についてのタクソノミ情報に対応する複数のユーザ選択可能な選択肢を含み得る例示的な電子ユーザインターフェース400Aを表示するように構成されてもよい。例示的な電子ユーザインターフェース400Aは、表示デバイス212の表示画面に表示されるアプリケーションインターフェースを介して受信され得るユーザ要求に基づいて表示されてもよい。アプリケーションインターフェースは、アプリケーションソフトウェアの一部でもよい。アプリケーションソフトウェアは、例えば、クラウドサーバベースのアプリケーション、ウェブベースのアプリケーション、OSベースのアプリケーション/アプリケーションスイート、エンタープライズアプリケーション、モバイルアプリケーションなどのうちの1つ以上でもよい。アプリケーション固有ドメイン選択選択肢402A、問題選択選択肢402B、サブ問題選択選択肢402C、及びNP問題選択選択肢402Dの各々は、ユーザ114がユーザにとって関心のある特定の最適化問題のためのテンプレート(第1のテンプレートとも呼ばれる)を調査し、識別することを可能にし得る。
【0069】
プロセッサ204は、複数の最適化問題のうち特定の最適化問題のために第1のテンプレートを選択する第1のユーザ入力を受信するように構成されてもよい。第1のユーザ入力は、複数のユーザ選択可能な選択肢のうち1つ以上のユーザ選択可能な選択肢の選択を含んでもよい。1つ以上の実施形態において、受信した第1のユーザ入力は、対応する複数の最適化問題のための複数のテンプレートのうち第1のテンプレートの選択にさらに対応し得る。
【0070】
図示のように、アプリケーション固有ドメイン選択選択肢402Aは、これらに限られないが公共部門、物流、製造、及び製薬を含む予め指定されたアプリケーション固有ドメインのセットに対応する入力フィールドのセットを提供することができる。ユーザ114が、入力フィールドのセットから物流などの入力フィールドを選択する場合、問題選択選択肢402Bなどの他のユーザ選択可能な選択肢が、選択されたアプリケーション固有ドメインに対応する別の入力フィールドのセットを提供するように構成されてもよい。選択されたアプリケーション固有ドメインとしての物流については、これらに限られないが空コンテナ管理、システム設計、及び戦略的計画を含む、予め指定された問題のセットが示されてもよい。
【0071】
ユーザ114が、予め指定された問題のセットから戦略的計画などの問題を選択する場合、サブ問題選択選択肢402Cは、選択された問題のための別の入力フィールドのセットを提供してもよい。サブ問題選択選択肢402Cは、予め指定されたサブ問題のセットに対応する別の入力フィールドのセットを提供することができる。予め指定されたサブ問題のセットは、これらに限られないが各ルート及び各製品の出荷量、車両スケジューリング、及びコンテナ積載を判断するためのサブ問題を含んでもよい。ユーザ114が、予め指定されたサブ問題のセットからコンテナ積載などのサブ問題を選択する場合、テンプレート(第1のテンプレートとも呼ばれる)が識別され、例示的な電子ユーザインターフェース400に表示され得る。あるいは、1つ以上の実施形態において、NP問題選択選択肢402Dは、選択されたサブ問題のための別の入力フィールドのセットを表示するように更新されてもよい。NP問題選択選択肢402Dは、予め指定されたNP問題のセットに対応する別の入力フィールドのセットを提供することができる。サブ問題としてのコンテナ積載については、予め指定されたNP問題のセットは、これらに限られないが混合線形整数計画(Mixed Linear Integer Programming、MILP)、ナップサック、及びビンパッキングを含んでもよい。
【0072】
ここで、ユーザ114は、複数のユーザ選択可能な選択肢のうち任意のユーザ選択可能な選択肢又はユーザ選択可能な選択肢の任意の組み合わせを通じて第1のユーザ入力を提供してもよいことに留意されたい。一例として、ユーザ114の経験/スキルセットに依存して、ユーザ114は、複数のユーザ選択可能な選択肢の各々を通じてか又はNP問題選択選択肢402Dを通じて直接かのいずれかで第1のユーザ入力を提供することができる。一例として示されるように、ユーザ114が組み合わせ最適化又はNP最適化を理解するエキスパート又は専門家である場合、ユーザ114は、予め指定されたNP問題のセットからナップサックを選択することができる。
【0073】
さらに示されるように、第2のUI要素404は、例えば「クエリによる検索(Search by Query)」としてラベル付けされている。第2のUI要素404は、ユーザ114が自然言語でクエリを指定することを可能にする検索インターフェースに対応し得る。一例として示されるように、ユーザ114は、第2のUI要素404を介して第1のユーザ入力として「物流業界におけるコンテナの積載」を指定することができる。別の例として、ユーザ114は、第2のUI要素404を介して第1のユーザ入力として「物流業界におけるコンテナ積載についての戦略的計画」を指定してもよい。1つ以上の実施形態において、プロセッサ204は、(第1のユーザ入力として)クエリにおいて指定されたタームを、タクソノミ情報に関連づけられた情報/詳細にマッピングするように構成されてもよい。したがって、そのような場合、プロセッサ204は、クエリにおいて指定されたタームの、タクソノミ情報に関連づけられた情報/詳細へのマッピングに基づいて、特定の最適化問題のためのテンプレート(第1のテンプレートとも呼ばれる)を識別するように構成されてもよい。
【0074】
さらに示されるように、第3のUI要素406は、例えば「サブミット(submit)」としてラベル付けされている。第3のUI要素406は、選択されたとき、第1のUI要素402を介して提供された選択及び/又は第2のUI要素404への入力を、電子デバイス102への第1のユーザ入力としてサブミットする選択肢に対応し得る。
【0075】
ここで、電子ユーザインターフェース400Aは単に一例として説明され図示されており、本開示を限定するものとみなされるべきでないことに留意されたい。本開示の範囲から逸脱することなく、電子ユーザインターフェース400Aに対して他の修正、追加、又は省略がなされてもよい。さらに、電子ユーザインターフェース400Aは、簡潔さのために本開示から省略された他のUI要素をさらに含んでもよいことに留意されたい。
【0076】
図4Bは、本開示に記載される少なくとも1つの実施形態による、ユーザが例示的な最適化問題のためのテンプレートを介して入力を提供するための別の例示的な電子ユーザインターフェースを示す。
図4Bは、
図1、
図2、
図3、及び
図4Aの要素に関連して説明される。
図4Bを参照し、
図1の電子ユーザインターフェース104に対応し得る一例示的な電子ユーザインターフェース400Bが示される。例示的な電子ユーザインターフェース400Bには、別のUI要素のセットが示されている。UI要素のセットは、UI要素408、UI要素410、UI要素412、及びUI要素414を含んでもよい。
【0077】
UI要素408、UI要素410、及びUI要素412は、ユーザ114にとって関心があり得る特定の最適化問題のためのテンプレート(選択された第1のテンプレートなど)に対応し得る。1つ以上の実施形態において、プロセッサ204は、特定の最適化問題のために第1のテンプレートを介して第2のユーザ入力を受信するように構成されてもよい。第2のユーザ入力は、テンプレート内に指定される、特定の最適化問題の複数のパラメータに対する入力データを含んでもよい。一例として、プロセッサ204は、UI要素408、UI要素410、及びUI要素412を介して第2のユーザ入力を受信するように構成されてもよい。
【0078】
UI要素408は、例えば、「テンプレート:コンテナ積載/ナップサック」としてラベル付けされてもよい。UI要素408は、テンプレート記述フィールド416と、特定の最適化問題の複数のパラメータのための複数の入力フィールド418を含んでもよい。テンプレート記述フィールド416は、特定の最適化問題のために選択されたテンプレートの記述を提供することができる。特定の最適化問題が指定された場合、特定の最適化問題の要件にマッチする対応するNP問題テンプレートが選択され得る。
【0079】
例えば、プロセッサ204は、(
図4Aの第1のユーザ入力から指定されたように)物流業界におけるコンテナ積載サブ問題に対する実行可能/最適解を決定するためにナップサック問題を選択するように構成されてもよい。したがって、テンプレート記述フィールド416は、例えば以下のように、ナップサック問題の詳細を提供することができる:
我々は、各オブジェクトの重みがWで与えられ、オブジェクトi及びjの双方が選択された場合には価値V
ijの、N個のオブジェクトのリストを有する。我々は、重み容量Cだけ運べるM個のナップサックを有する。問題は、選択されたオブジェクトの総重量が重み容量未満であるという制約の下で、選択されたオブジェクトの価値を最大化することである。
【0080】
コンテナ積載問題について、複数の入力フィールド418は、オブジェクト名フィールド、ナップサック数フィールド、容量フィールド、重みパラメータフィールド、価値パラメータフィールド、及びナップサックフィールドを含んでもよい。ユーザ114は、ナップサック問題についてのオブジェクト、容量、重みパラメータ、価値パラメータ、及びナップサックなどの、NP問題の属性のための適切なラベルを選択又は定義することを可能にされてもよい。オブジェクト名フィールドは、オブジェクト、ボックス、及びストックなどの選択肢のセットを含んでもよい。さらに、オブジェクト名フィールドは、ユーザ114が特定の最適化問題に合うようにオブジェクトの名前をカスタマイズすることを可能にするための選択肢、例えば「あなた独自のものを定義する」を含んでもよい。同様に、ナップサック数フィールドは、「1」、「2」、又は「3」などの別の選択肢のセットを含んでもよい。ナップサックが「コンテナ」であるよう選択された場合、ナップサックの数は、コンテナ積載問題のためのコンテナの数に対応し得る。さらに、容量フィールドは、容量、サイズ、積載、又はポートフォリオ資本キャップなどの、別の選択肢のセットを含んでもよい。
【0081】
重みパラメータフィールドは、重み、長さ、及びコストなどの別のセットの選択肢を含んでもよい。さらに、重みパラメータフィールドは、ユーザ114が特定の最適化問題に合うように重みパラメータの名前をカスタマイズすることを可能にする選択肢、例えば「あなた独自のものを定義する」を含んでもよく、同様に、価値パラメータフィールドは、価値、コスト、及び利益などの別のセットの選択肢を含んでもよい。さらに、価値パラメータフィールドは、ユーザ114が特定の最適化問題に合うように価値パラメータの名前をカスタマイズすることを可能にする選択肢、例えば、「あなた独自のものを定義する」を含んでもよい。ナップサックフィールドは、ナップサック、コンテナ、トラック、及びポートフォリオプロファイルなど、別の選択肢のセットを含んでもよい。
【0082】
UI要素410は、UI要素408を介して選択されたパラメータに対する値及び/又は特定の最適化問題に関連づけられた制約を指定するための入力フィールドに対応し得る。例えば、コンテナ積載問題について、ユーザ114は、オブジェクト名フィールドを介して「ストック」を、ナップサック数フィールドを介して「3」を、容量フィールドを介して「容量」を、重みパラメータフィールドを介して「コスト」を、価値パラメータフィールドを介して「利益」を、ナップサックフィールドを介して「コンテナ」を選択することができる。ユーザ114は、UI要素410を介して、ストック、利益、コスト、容量、及びコンテナについてのパラメータ値を指定してもよい。さらに、ユーザ114は、制約、例えば、コンテナ積載問題に対する制約として「少なくとも20,000USDの利益」を指定してもよい。
図4Bにおいて、例示的な電子UI400Bは、UI要素408を介して選択された全てのパラメータに対する値を入力するためのUI要素410を提供する。しかしながら、特定の実施形態において、例示的な電子UI400B上に指定された個々のパラメータの値を入力するために、複数のUI要素が例示的な電子UI400B上に設けられてもよい。
【0083】
UI要素412は、特定の最適化問題のためにUI要素408を介して選択されたパラメータの目的関数を指定するための入力フィールドに対応し得る。例えば、コンテナ積載問題について、ユーザ114は、目的関数を例えばΣnVijとして指定してもよく、ここで、nはストック数であり、Vijはストックi及びjの双方が選択された場合の価値である。
【0084】
さらに示されるように、UI要素414は、例えば「サブミット」としてラベル付けされる。UI要素414は、選択されたとき、電子デバイス102への第2のユーザ入力としてUI要素408、UI要素410、及び/又はUI要素412を介して提供される入力をサブミットする選択肢に対応し得る。第2のユーザ入力は、特定の最適化問題に対する解を生成するために、最適化ソルバマシン108への呼び出しを提供するために使用されてもよい。特定の最適化問題に対する1つ以上の解の決定のための後続の動作は、例えば、
図5、
図7、
図8、
図9、
図10、及び
図11で説明される。
【0085】
ここで、電子ユーザインターフェース400Bは単に一例として説明され図示されているに過ぎず、本開示を限定するものとみなされるべきでないことに留意されたい。本開示の範囲から逸脱することなく、電子ユーザインターフェース400Bに対して他の修正、追加、又は省略がなされてもよい。さらに、電子ユーザインターフェース400Bは、簡潔さのために本開示から省略された他のUI要素をさらに含んでもよいことに留意されたい。
【0086】
従来のユーザインターフェースは、現実世界の最適化問題のための組み合わせ最適化/NP定式化の定式化において特定の専門知識を有するエキスパートユーザに焦点を当てたまま開発された。したがって、これらの従来のユーザインターフェースは、最適化問題を指定し、指定された最適化問題に対する解を得るために、通常のユーザ(NP定式化の構築において非エキスパートであり得る)を助ける可能性がある適切な情報及び適切なユーザ選択可能な選択肢を提供していなかった。例えば、自分の配達ターゲットに対する最適な経路を決定したい通常のマネージャが、巡回セールスマン定式化などの適切なNP定式化を決定できない可能性がある。
【0087】
対照的に、本開示は、特定の最適化問題に関連づけられたパラメータを調査及び構成するユーザの能力を改善し得る適切な情報及び適切なユーザ選択可能な選択肢を提供する電子ユーザインターフェース104を提供する。それは、特定の最適化問題、すなわちそれらをNP問題として定式化することによる実世界問題に対する解を生成するために、量子アニーリングコンピュータ又はデジタルアニーラなどの最適化ソルバマシンへの呼び出しを提供するユーザの能力を改善し得る。ゆえに、電子ユーザインターフェース104は、表示されるべき情報のタイプと情報がどのように表示されるかとの範囲を定める改善されたユーザインターフェースであり得る。これは、エキスパートユーザが通常のユーザに専門的な支援を提供する必要をなくす可能性があり、通常のユーザには時間の節約になる。
【0088】
図5は、本開示に記載される少なくとも1つの実施形態に従って配置された、非決定性多項式時間(NP)問題についての知識グラフを使用して最適化問題のためのテンプレートを生成する一例示的な方法のフローチャートである。
図5は、
図1、
図2、
図3、
図4A、及び
図4Bの要素と関連して説明される。
図5を参照し、フローチャート500が示される。フローチャート500に示される例示的な方法は502で開始でき、
図2の例示的なシステム202などの任意の適切なシステム、装置、又はデバイスにより実行されてもよい。
【0089】
502において、最適化問題に関連づけられた複数のアプリケーション固有ドメインに関連づけられた第1の情報が取り出され得る。第1の情報は、メモリ206、永続データ記憶装置208、又は他の外部記憶デバイスのうち1つから取り出されてもよい。第1の情報は、複数のアプリケーション固有ドメインのラベル及び説明を含んでもよい。アプリケーション固有ドメインのいくつかの例は、
図3の表1で与えられる。1つ以上の実施形態において、プロセッサ204は、複数のアプリケーション固有ドメインに関連づけられた第1の情報を取り出すように構成されてもよい。
【0090】
504において、複数のアプリケーション固有ドメインが、取り出された第1の情報に基づいてカテゴリのセットに分類され得る。各カテゴリは、製造、物流、及び製薬などの業種を示してもよい。1つ以上の実施形態において、プロセッサ204は、取り出された第1の情報に基づいて複数のアプリケーション固有ドメインをカテゴリのセットに分類するように構成されてもよい。
【0091】
506において、カテゴリのセットのうち各カテゴリについて、ドメイン固有アプリケーションのセットが決定され得る。ドメイン固有アプリケーションのセットは、カテゴリのセットのうち対応するカテゴリについての問題のセットと呼ばれてもよい。特定の実施形態において、機械学習(ML)モデルが適用されて、各問題の自然言語記述と各問題に関連づけられたタグ付き情報を利用することにより、問題のセット(又はドメイン固有アプリケーションのセット)をいくつかのクラスにグループ化してもよい。MLモデルは、教師なし学習モデル又は教師付き学習モデルのいずれかでもよい。MLモデルの例は、これらに限られないがk平均クラスタリング、サポートベクタ(SVM)、ランダムフォレスト、重心ベース(Centroid-based)学習モデル、接続性ベース(connectivity-based)モデル、密度ベースモデル、確率モデル、次元削減、ニューラルネットワーク/ディープニューラルネットワーク(DNN)モデル、主成分分析(PCA)モデル、又は特異値分解(SVD)モデルを含んでもよい。
【0092】
1つ以上の実施形態において、プロセッサ204は、カテゴリのセットのうち各カテゴリについてドメイン固有アプリケーションのセット(又は問題のセット)を決定するように構成されてもよい。さらに、プロセッサ204は、MLモデルを適用して、各問題の自然言語記述及び各問題に関連づけられたタグ付き情報を利用することにより、問題のセット(又はドメイン固有アプリケーションのセット)をいくつかのクラスにグループ化するように構成されてもよい。
【0093】
508において、決定されたドメイン固有アプリケーションのセットのうち各ドメイン固有アプリケーションについて、サブ問題のセットが決定され得る。1つ以上の実施形態において、プロセッサ204は、決定されたドメイン固有アプリケーションのセットのうち各ドメイン固有アプリケーションについて、サブ問題のセットを決定するように構成されてもよい。
【0094】
510において、決定されたドメイン固有アプリケーションのセットのうち各ドメイン固有アプリケーションについて、NP問題タイプのセットが、決定されたサブ問題のセットにマッピングされ得る。1つ以上の実施形態において、プロセッサ204は、決定されたドメイン固有アプリケーションのうち各ドメイン固有アプリケーションについて、NP問題タイプのセットを決定されたサブ問題のセットにマッピングするように構成されてもよい。マッピングは、アプリケーション固有ドメイン、問題、サブ問題、及びNP問題にわたる関係を構築するために実行され得る。
【0095】
512において、マッピングされたNP問題タイプのセットに関連づけられた複数のNP問題について、知識グラフが生成され得る。知識グラフは、複数のNP問題のうち異なるNP問題間の関係を定義するデータ構造に対応し得る。異なるNP問題の例は、これらに限られないがグラフ彩色問題、クリーク問題、独立集合問題、クリーク被覆問題、ミニマックスマッチング問題、ナップサック問題、部分集合和問題、ビンパッキング問題、カッティングストック問題、数分割問題、ハミルトン閉路問題、巡回セールスマン問題、直接フィードバック集合問題、車両経路問題、ジョブショップスケジューリング問題、一般化割当問題、二次割当問題、集合パッキング問題、集合分割問題、集合被覆問題、及びK‐Plex問題を含んでもよい。1つ以上の実施形態において、プロセッサ204は、マッピングされたNP問題タイプのセットに関連づけられた複数のNP問題についての知識グラフを生成するように構成されてもよい。異なる例示的な知識グラフが、
図6A、
図6B、及び
図6Cで示される。
【0096】
514において、対応する複数の最適化問題のための複数のテンプレートが、複数のNP問題について生成された知識グラフに基づいて生成され得る。複数のテンプレートのうち各テンプレートは、対応する最適化問題の複数のパラメータのための複数の入力フィールドを含んでもよい。複数の入力フィールドのための複数のパラメータは、これらに限られないが少なくともアプリケーション固有制約のセット、対応する最適化問題のための変数のセット、及び対応する最適化問題のための目的関数に関連づけられた情報を含んでもよい。1つ以上の実施形態において、プロセッサ204は、マッピングされたNP問題タイプのセットに関連づけられた複数のNP問題について生成された知識グラフに基づいて、対応する複数の最適化問題のための複数のテンプレートを生成するように構成されてもよい。
【0097】
制御は終了に進み得る。フローチャート500は、502、504、506、508、510、512、及び514などの別個の動作として示されているが、しかしながら、特定の実施形態において、このような別個の動作は、開示された実施形態の本質を損なうことなく、特定の実装に依存してさらなる動作にさらに分割されてもよく、より少ない動作に組み合わせられてもよく、あるいは削除されてもよい。
【0098】
図6Aは、本開示に記載される少なくとも1つの実施形態に従って配置された、一例示的な知識グラフのブロック図を示す。
図6Aは、
図1、
図2、
図3、
図4A、
図4B、
図5の要素と関連して説明される。
図6Aを参照し、一例示的な知識グラフ600Aのブロック図が示される。例示的な知識グラフ600Aは、カッティングストック問題602、ビンパッキング問題604、複数ナップサック問題606、二次ナップサック問題608、0‐1ナップサック問題610、部分集合和問題612、及び数分割問題614などの複数のNP問題の間に存在し得る。例示的な知識グラフ600Aは、例示的なシステム202により記憶されてもよい。
【0099】
カッティングストック問題602は、複数の属性
【数1】
を含んでもよい。カッティングストック問題602は、「長さcの無限個数のロールと、m個の異なるタイプのアイテムを与えられる。長さw
i、i=1...w
iの少なくともB
i個のロールが、ベースロールからカットされる必要がある。目的は、使用されるロールの数を最小化することである」として記述され得る。B
i=1の場合、i∈1...mについて、カッティングストック問題602は、ビンパッキング問題604として縮小/簡略化されてもよく、異なるボリュームのオブジェクトは、使用されるビンの数を最小化にする方法で、各々がボリュームVの有限個数のビン又はコンテナにパッキングされなければならない。
【0100】
例示的な知識グラフ600Aでは、ビンパッキング問題604は、複数ナップサック問題606に関連し得る。複数ナップサック問題606は、複数の属性
【数2】
を含んでもよい。複数ナップサック問題606は、「我々は、各オブジェクトの重みが
【数3】
で与えられ、価値が
【数4】
のn個のオブジェクトのリストを有する。我々は、重み容量
【数5】
だけ運べるm個のナップサックを有する。問題は、選択されたオブジェクトの総重量が重み容量未満であるという制約の下で、選択されたオブジェクトの価値を最大化することである」として記述され得る。複数ナップサック問題606は、二次ナップサック問題608に一般化されるか、あるいは0‐1ナップサック問題610に縮小されてもよい。V
ij=0の場合、i≠jについて、V
ijが、オブジェクトi及びjの双方が選択された場合の価値の場合、二次ナップサック問題608は、0‐1ナップサック問題610に縮小されてもよい。i≠jについて、重み
【数6】
が、価値
【数7】
に等しい場合、0‐1ナップサック問題610は、部分集合和問題612に縮小されてもよい。部分集合和問題612は、「非負の整数の集合Sと値の和V
Sを与えられ、与えられた和に等しい和V
Nを有する与えられた集合の部分集合S
Nが存在するかを判定する」として記述され得る。2つの部分集合が存在する場合、部分集合和問題612は、数分割問題614に縮小されてもよい。ここで、知識グラフ600Aは単なる一例であり、本開示の範囲を限定するものとみなされるべきでないことに留意されたい。
【0101】
図6Bは、本開示に記載される少なくとも1つの実施形態に従って配置された、別の例示的な知識グラフのブロック図を示す。
図6Bは、
図1、
図2、
図3、
図4A、
図4B、
図5、
図6Aの要素と関連して説明されている。
図6Bを参照し、一例示的な知識グラフ600Bのブロック図が示される。例示的な知識グラフ600Bは、s‐clique問題616、s‐plex問題618、s‐club問題620、最大重みクリーク問題622、最大重み独立集合問題624、集合パッキング問題626、最小頂点被覆(vertex cover)問題628、最小クリーク被覆問題630、グラフ彩色問題632、及び最大クリーク問題634、及び最大独立集合問題636などの複数のNP問題の間に存在し得る。例示的な知識グラフ600Bは、例示的なシステム202により記憶されてもよい。
【0102】
s‐clique問題616、s‐plex問題618、及びs‐club問題620の各々は、特定の最適化問題のための複数のパラメータ(例えば、制約、値、変数)に基づいて、最大重みクリーク問題622及び最大クリーク問題634に縮小可能でもよい。最大重みクリーク問題622は最大クリーク問題634に縮小可能でもよく、最大クリーク問題634は最大独立集合問題636に縮小可能でもよい。同様に、最大重み独立集合問題624は最大独立集合問題636に縮小可能でもよい。知識グラフ600Bは単なる一例に過ぎず、本開示の範囲を限定するものとみなされるべきでないことに留意されたい。
【0103】
図6Cは、本開示に記載される少なくとも1つの実施形態に従って配置された、別の例示的な知識グラフのブロック図を示す。
図6Cは、
図1、
図2、
図3、
図4A、
図4B、
図5、
図6A、及び
図6Bの要素と関連して説明される。
図6Cを参照し、一例示的な知識グラフ600Cのブロック図が示される。例示的な知識グラフ600Cは、二次割当問題638、巡回セールスマン問題640、ハミルトン経路/閉路問題642、及び最小重み帰還辺集合(minimum weight feedback arc set)問題644などの複数のNP問題の間に存在し得る。例示的な知識グラフ600Cは、例示的なシステム202により記憶されてもよい。
【0104】
二次割当問題638は、特定の最適化問題のための複数のパラメータ(例えば、制約、値、変数)に基づいて、巡回セールスマン問題640又は最小重み帰還辺集合問題644に縮小可能でもよい。同様に、巡回セールスマン問題640はハミルトン経路/閉路問題642に縮小可能でもよい。知識グラフ600Cは単なる一例であり、本開示の範囲を限定するものとみなされるべきでないことに留意されたい。
【0105】
図7は、本開示に記載される少なくとも1つの実施形態に従って配置された、特定の最適化問題のための少なくとも1つのNP定式化を構築する一例示的な方法のフローチャートである。
図7は、
図1、
図2、
図3、
図4A、
図4B、
図5、
図6A、
図6B、及び
図6Cの要素と関連して説明される。
図7を参照し、フローチャート700が示される。フローチャート700に示される例示的な方法は702で開始でき、
図2の例示的なシステム202などの任意の適切なシステム、装置、又はデバイスにより実行されてもよい。
【0106】
702において、特定の最適化問題に対応するNP問題について、1つ以上のNP定式化が構築され得る。1つ以上の実施形態において、プロセッサ204は、受信した第2のユーザ入力に基づいて、特定の最適化問題に対応するNP問題のための1つ以上のNP定式化を構築するように構成されてもよい。1つ以上のNP定式化の構築は、特定の最適化問題の複数のパラメータの、NP問題の複数の属性へのマッピングに対応し得る。
【0107】
例えば、コンテナ積載問題のための複数のパラメータは、ストックの数、コンテナの数、各コンテナの容量、ストック当たりの価値、制約、他の条件などを含んでもよい。プロセッサ204は、複数のパラメータを、対応するNP問題、例えば複数ナップサック問題の複数の属性にマッピングするように構成されてもよい。複数ナップサック問題は、複数の属性
【数8】
を含んでもよく、ここで、nはオブジェクトの数を表し、m(m<n)はナップサックの数を表し、
【数9】
は、それぞれ、各オブジェクトの重み及び価値のベクトルであり、
【数10】
は、m個のナップサックにより運べる総重み容量のベクトルである。
【0108】
1つ以上の実施形態において、プロセッサ204は、複数のNP問題についてのタクソノミ情報及び(
図6A、
図6B、及び
図6Cに示されるような)知識グラフに基づいて、特定の最適化問題に適し得るNP問題を決定するように構成されてもよい。より具体的には、第2のユーザ入力を介して提供される入力データが、知識グラフから特定の最適化問題に適した(又は最適な)NP問題を探索するために使用されてもよい。1つ以上のNP定式化の構築は、704~706でさらに説明される。
【0109】
704において、複数のNP問題についての知識グラフ及び受信した第2のユーザ入力に基づいて、複数のNP定式化が特定の最適化問題について評価され得る。1つ以上の実施形態において、プロセッサ204は、複数のNP問題について知識グラフ及び受信した第2のユーザ入力に基づいて、特定の最適化問題のための複数のNP定式化を評価するように構成されてもよい。評価において、複数のNP定式化は、特定の最適化問題のための複数のパラメータにマッピングする属性/制約を有する複数のNP問題についての知識グラフ及び/又はタクソノミ情報を探索することにより識別されてもよい。
【0110】
例えば、
図4A及び
図4Bでも論じられたように、コンテナ積載問題については複数のNP問題が識別され得る。このような複数のNP問題は、ビンパッキング問題、複数ナップサック問題、0‐1ナップサック、二次ナップサック問題、及び部分集合和問題を含み得る。第2のユーザ入力を介して提供される入力データに基づいて、ビンパッキング問題が複数ナップサック問題に縮小及び簡略化できるかどうかが決定されてもよい。さらに、値V
ij=0の場合、i≠jについて、V
ijが、オブジェクトi及びjの双方が選択された値の場合、二次ナップサック問題が0‐1ナップサック問題に縮小できるかどうかが決定されてもよい(
図6A参照)。さもなければ、複数ナップサック問題が二次ナップサック問題に一般化できるかどうかが決定されてもよい。さらに、i≠jについて、重み
【数11】
が、価値
【数12】
に等しい場合、0‐1ナップサック問題が部分集合和問題に縮小できるかどうかがさらに決定されてもよい(
図6A参照)。
【0111】
706において、1つ以上のNP定式化が、特定の最適化問題のために評価された複数のNP定式化から選択され得る。一例として、1つ以上のNP定式化は、評価された複数のNP定式化のうち各NP定式化において指定された制約又は属性の数に基づいて選択されてもよい。1つ以上のNP定式化の選択は、特定の最適化問題のための最良の/最適なNP定式化を判断するのに重要である。1つ以上の実施形態において、プロセッサ204は、特定の最適化問題について評価された複数のNP定式化から1つ以上のNP定式化を選択するように構成されてもよい。選択された1つ以上のNP定式化は、特定の最適化問題について構築された1つ以上のNP定式化に対応し得る。
【0112】
ここで、1つ以上のNP定式化の正確な選択が1つ以上の解の品質/精度を決定し得るため、1つ以上のNP定式化の選択/構築は、特定の最適化問題に対する1つ以上の解の決定に対して重要であり得ることに留意されたい。従来のシナリオでは、NP定式化はエキスパートユーザにより作成され、ゆえに、最良の/最適なNP定式化の選択の精度はエキスパートユーザの経験に依存する。不適切な定式化は、劣った解の決定につながる可能性がある。
【0113】
特定の実施形態において、1つ以上のNP定式化の選択は、整数計画(Integer Programming、IP)モデルにおける変数の数に基づいてもよい。例えば、最大重みクリーク問題及び最大重み独立集合問題のNP定式化は、かなり類似している。唯一の差は、最大重みクリーク問題のグラフが最大重み独立集合問題の補グラフと考えられ得ることであり、その逆も同様である。NP定式化の1つを選択するために、グラフの辺の数がチェックされてもよい。より少数の制約(例えば、辺)は、低減された計算複雑性をもたらし得る。
【0114】
フローチャート700は、702、704、及び706などの別個の動作として示されているが、しかしながら、特定の実施形態において、このような別個の動作は、開示された実施形態の本質を損なうことなく、特定の実施形態に依存してさらなる動作にさらに分割されてもよく、より少ない動作に組み合わせられてもよく、あるいは削除されてもよい。
【0115】
図8は、本開示に記載される少なくとも1つの実施形態に従って配置された、特定の最適化問題のための少なくとも1つのNP定式化から第1の目的関数及び第2の目的関数を定式化する一例示的な方法のフローチャートである。
図8は、
図1、
図2、
図3、
図4A、
図4B、
図5、
図6A、
図6B、
図6C、
図7の要素と関連して説明される。
図8を参照し、フローチャート800が示される。フローチャート800に示される例示的な方法は802で開始でき、
図2の例示的なシステム202などの任意の適切なシステム、装置、又はデバイスにより実行されてもよい。
【0116】
802において、構築された1つ以上のNP定式化に基づいて、特定の最適化問題のための第1の目的関数が定式化され得る。1つ以上の実施形態において、プロセッサ204は、構築された1つ以上のNP定式化に基づいて、特定の最適化問題のための第1の目的関数を定式化するように構成されてもよい。2つ以上のNP定式化が存在する場合、特定の最適化問題のために複数の第1の目的関数が定式化され得る。第1の目的関数は、特定の最適化問題のための対応するNP定式化により指定されるように、NP問題の複数の属性間の関係(すなわち、数学的関係)を含んでもよい。第1の目的関数は、対応するNP定式化の数学的定式化とも呼ばれ得る。特定の最適化問題に対する最適解を生成するために、離散解空間から最適解を探索することにより第1の目的関数の大域的最小値が決定される必要があり得る。
【0117】
1つ以上の実施形態において、第1の目的関数は、
二次制約なしバイナリ最適化(QUBO)関数、
等式制約のセットを有する第1の二次バイナリ最適化関数、
不等式制約のセットを有する第2の二次バイナリ最適化関数、
小さい(0又は1)不等式制約のセットを有する第3の二次バイナリ最適化関数、又は
混合線形整数計画(MILP)関数
のうち1つでもよい。
【0118】
QUBO関数は、式(1)により以下のように与えられてもよく、
【数13】
ここで、xはバイナリ決定変数のベクトルであり、Qは定数の正方行列である。
【0119】
等式制約を有する第1の二次バイナリ最適化関数は、式(2)により以下のように与えられてもよい。
【数14】
【0120】
同様に、不等式制約のセットを有する第2の二次バイナリ最適化関数は、式(3)により以下のように与えられてもよい。
【数15】
第2の二次バイナリ最適化関数は式(4)と同じであるが、不等式制約の右辺(RHS)を0又は1であるように制限しない。
【0121】
同様に、不等式制約ベクトル(b
2又はb
3)のRHSの要素が0又は1のいずれかであるとき、小さい(0又は1)不等式制約のセットを有する第3の二次バイナリ最適化関数は、式(4)により以下のように与えられてもよい。
【数16】
【0122】
MILP関数は、式(5)により以下のように与えられてもよい。
【数17】
第1の目的関数の定式化は、804~808でさらに説明される。
【0123】
804において、メモリ206又は永続データ記憶装置208から第1のマッピングテーブルが取り出され得る。第1のマッピングテーブルは、対応する目的関数のリストにマッピングされたNP問題のリストを含んでもよい。1つ以上の実施形態において、プロセッサ204は、メモリ206又は永続データ記憶装置208から第1のマッピングテーブルを取り出すように構成されてもよい。第1のマッピングテーブルの一例が表2に以下のように提供される。
【表2】
【0124】
806において、取り出された第1のマッピングテーブルに基づいて、特定の最適化問題に対応するNP問題について、複数の第1の目的関数が評価され得る。1つ以上の実施形態において、プロセッサ204は、取り出された第1のマッピングテーブルに基づいて、特定の最適化問題に対応するNP問題のための複数の第1の目的関数を評価するように構成されてもよい。
【0125】
表2から、単一のNP問題について複数の可能な数学的定式化(すなわち、第1の目的関数)が存在することが観察され得る。一例として、ナップサック問題は、不等式制約を有する二次バイナリ最適化関数としてか又はMILP関数としてかのいずれかで定式化可能である。別の例として、車両経路問題については、車両フロー定式化、商品フロー定式化、及び集合分割定式化を含む3つの異なる数学的定式化が存在し得る。
【0126】
808において、評価された複数の第1の目的関数のうち各目的関数について指定された属性/制約の数に基づいて、評価された複数の第1の目的関数から最適な目的関数として第1の目的関数が選択され得る。1つ以上の実施形態において、プロセッサ204は、評価された複数の第1の目的関数のうち各目的関数について指定された属性/制約の数に基づいて、評価された複数の第1の目的関数から最適な目的関数として第1の目的関数を選択するように構成されてもよい。
【0127】
一例として、数学的定式化のためのより多数の属性(目的関数及び制約)は、より大きい解のばらつき、すなわち、より大きい解空間及びより大きい計算複雑性につながる可能性がある。同様に、より多数の制約は、より大きい解空間をより小さい解空間に縮小するのに役立ち、特定の最適化問題に対する解の決定のための計算複雑性の減少につながる可能性がある。
【0128】
別の例として、カッティングストック問題では、式(6)及び式(7)により以下のように与えられる2つの数学的定式化がある。
【数18】
ここで、x
ij∈Z
+は、アイテムタイプ(i)がロール(j)で何回カットされるかを表し、y
i∈(0,1)は、ロール(j)がカットに使用されるか否かを表す。
【数19】
定式化(7)は、定式化(6)と比較して、より良い解を得るために解空間をフィルタリングするためのさらなる制約を有するため、定式化(7)が、最適な定式化(すなわち、第1の目的関数及び制約)として選択されてもよい。
【0129】
810において、定式化された第1の目的関数が、代数モデリング言語(AML)フォーマットで、特定の最適化問題のために予め指定された最適化ソルバマシン108にサブミットされ得る。AMLフォーマットは、定式化された第1の目的関数を高水準のコンピュータプログラミング言語のコードとして記述するフォーマットに対応し得る。1つ以上の実施形態において、プロセッサ204は、定式化された第1の目的関数をAMLフォーマットで、特定の最適化問題のために予め指定された最適化ソルバマシン108にサブミットするように構成されてもよい。
【0130】
コードは、特定の最適化問題に対応するNP問題に対する解を生成するために最適化ソルバマシン108により使用され得る。一例として、AMLフォーマットは、Pythonベースオープンソース最適化モデリング言語(Python-based open-source Optimization Modeling Language、PYOMO)フォーマット、数理計画言語(A-Mathematical Programming Language、AMPL)等でもよい。定式化された第1の目的関数のAMLフォーマットは直接実行されなくてもよく、その代わりに、特定の最適化問題に対応するNP問題に対する1つ以上の解を生成するために最適化ソルバマシン108又は他の外部最適化ソルバマシンにより使用されてもよい。
【0131】
812において、最適化ソルバマシン108による実行に対し互換性のあり得る第2の目的関数が、定式化された第1の目的関数に基づいて定式化され得る。1つ以上の実施形態において、プロセッサ204は、定式化された第1の目的関数に基づいて、最適化ソルバマシン108による実行に対して互換性があり得る第2の目的関数を定式化するように構成されてもよい。第2の目的関数は、二次曲面上の制約なしの数学的定式化でもよい。定式化された第2の目的関数は、定式化された第1の目的関数に対応するバイナリ決定変数(x)のベクトルとQ行列との間の関係を含んでもよい。
【0132】
一例として、第2の目的関数はQUBOモデルとして定式化されてもよく、これは(最適化問題として)式(8)により以下のように表されてもよい。
【数20】
ここで、xはバイナリ決定変数のベクトルであり、Qは定数の正方Q行列である。Q行列は対称行列又は上三角行列でもよい。式(8)のQ行列は、特定の最適化問題に対応するNP問題に対する解を生成するために、デジタルアニーラ又は量子アニーラデバイスなどの最適化ソルバマシン108により必要とされ得る。第2の目的関数の定式化のさらなる詳細は、例えば、
図9で提供される。
【0133】
814において、サブミットされた第2の目的関数を解くことにより特定の最適化問題に対する解を生成するために、最適化ソルバマシン108への呼び出しが提供され得る。1つ以上の実施形態において、プロセッサ204は、サブミットされた第2の目的関数を解くことにより特定の最適化問題に対する解を生成するために、最適化ソルバマシン108への呼び出しを提供するように構成されてもよい。一例として、呼び出しは、AMLフォーマットでサブミットされた第2の目的関数に対する1つ以上の解が最適化ソルバマシン108から要求され得るAPI要求でもよい。
【0134】
1つ以上の実施形態において、最適化ソルバマシン108は、量子アニーリングなどの探索方法及び/又はメタヒューリスティック方法を適用して、第2の目的関数の大域的最小値を探索し、特定の最適化問題に対応するNP問題に対する離散解空間から解をさらに識別するように構成されてもよい。
【0135】
一例示的な実施形態において、最適化ソルバマシン108は、デジタルアニーラ、量子アニーリングデバイス、又は一般化された量子コンピューティングデバイス(
図1参照)でもよい。このような場合、最適化ソルバマシン108は、第2の目的関数をイジング(Ising)関数に変換するように構成されてもよく、これにおいて、第2の目的関数の属性及び属性間の関係はイジングモデルに基づく。最適化ソルバマシン108は、量子アニーリング方法を適用して、イジング関数の大域的最小値を探索し、特定の最適化問題に対応するNP問題に対する離散解空間から解をさらに識別するようにさらに構成されてもよい。
【0136】
一例として、式(8)から、最適化ソルバマシン108は、Q行列(すなわち、NP問題を表す行列)を取り出し、式(8)が満たされるバイナリ決定変数のベクトル(x)の値を探索するように構成されてもよい。2値決定変数のベクトル(x)の値は、特定の最適化問題に対応するNP問題の解に対応し得る。
【0137】
フローチャート800は、例えば、802、804、806、808、810、812、及び814などの別個の動作として示されているが、しかしながら、特定の実施形態において、開示された実施形態の本質を損なうことなく、このような別個の動作は、特定の実施形態に依存してさらなる動作にさらに分割されてもよく、より少ない動作に組み合わせられてもよく、あるいは削除されてもよい。
【0138】
図9は、本開示に記載される少なくとも1つの実施形態に従って配置された、特定の最適化問題のための第1の目的関数に基づいて第2の目的関数を定式化する一例示的な方法のフローチャートである。
図9は、
図1、
図2、
図3、
図4A、
図4B、
図5、
図6A、
図6B、
図6C、
図7、
図8の要素と関連して説明される。
図9を参照し、フローチャート900が示される。フローチャート900に示される例示的な方法は902で開始でき、
図2の例示的なシステム202などの任意の適切なシステム、装置、又はデバイスにより実行されてもよい。
【0139】
902において、定式化された第1の目的関数がメモリ206から取り出され得る。1つ以上の実施形態において、プロセッサ204は、定式化された第1の目的関数をメモリ206から取り出すように構成されてもよい。
【0140】
904において、第1の目的関数の第2の目的関数への変換が必要とされるかどうかが決定され得る。1つ以上の実施形態において、プロセッサ204は、第1の目的関数の第2の目的関数への変換が必要とされるかどうかを決定するように構成されてもよい。変換が必要とされる場合、制御は906に進み得る。さもなければ、制御は908に進み得る。変換が必要とされるかどうかは、特定の最適化問題に対する解を生成するために予め指定された最適化ソルバマシンのタイプに基づいて決定されてもよい。
【0141】
例えば、最適化ソルバマシンのタイプがデジタルアニーラ又は量子アニーリングコンピュータに対応する場合、変換が必要とされ得る。デジタルアニーラは、特定の最適化問題に対応するNP問題のための第2の目的関数の形式でのQUBO定式化を必要とし得る。第1の目的関数は、第2の目的関数を得るために修正される必要があり得る。そうでなければ、変換は必要とされなくてもよく、第1の目的関数は、ソフトウェアソルバ、例えばGurobiソルバ又はオープンソースソフトウェアソルバ、例えば制約整数計画解決(SCIP)ソルバ、Google OR‐tool、GNU線形計画キット(GLPK)ソルバなどを使用するタイプの最適化ソルバに、互換性のあるAMLフォーマットでサブミットされてもよい。
【0142】
906において、定式化された第1の目的関数で使用される制約タイプが識別され得る。制約タイプは、定式化された第1の目的関数における不等式制約タイプ又は等式制約タイプのうち1つでもよい。1つ以上の実施形態において、プロセッサ204は、定式化された第1の目的関数において使用される制約タイプを識別するように構成されてもよい。
【0143】
908において、第1の目的関数を解くことにより特定の最適化問題に対する1つ以上の解を生成するために、呼び出しが他の外部最適化ソルバマシンに提供され得る。最適化ソルバマシンのタイプが、非バイナリ変数を有する多項式関数と互換性があり、かつ第1の目的関数のQUBO関数への、すなわち第2の目的関数への変換を必要としないソフトウェアソルバを使用する場合、呼び出しは、他の外部最適化ソルバマシンに提供されてもよい。1つ以上の実施形態において、プロセッサ204は、第1の目的関数を解くことにより特定の最適化問題に対する解を生成するために、他の外部最適化ソルバマシンへの呼び出しを提供するように構成されてもよい。
【0144】
910において、識別された制約タイプが等式制約タイプであるかどうかが決定され得る。識別された制約タイプが等式制約タイプの場合、制御は912に進み得る。そうでない場合、制御は914に進み得る。1つ以上の実施形態において、プロセッサ204は、識別された制約タイプが等式制約タイプであるかどうかを決定するように構成されてもよい。
【0145】
912において、定式化された第1の目的関数にペナルティ項が付加され得る。ペナルティ項は、第1の目的関数を第2の目的関数に変換するために付加されてもよい。1つ以上の実施形態において、プロセッサ204は、定式化された第1の目的関数にペナルティ項を付加するように構成されてもよい。ペナルティ項は、最適化ソルバマシン108が第2の目的関数に対する解を生成し、ペナルティの負担を回避すると同時に、第1の目的関数について予め指定された制約の効果が代替的に達成され得るように、付加されてもよい。より具体的には、ペナルティ項は、ペナルティが実行可能解に対してゼロに、離散解空間の実行不可能解に対して正の値に等しくなるように、付加されてもよい。最適化ソルバマシン108は、第2の目的関数を解くことにより解を生成するように構成されてもよい。ペナルティ項がゼロの場合、第2の目的関数は第1の目的関数と等しくなり得る。
【0146】
一例として、第1の目的関数は、式(9)により以下のように与えられてもよい。
【数21】
式(9)から、第1の目的関数は等式制約タイプを有し得る。ゆえに、第1の目的関数(式(9)で与えられる)に二次ペナルティ項(P・(Ax-b)
T・(Ax-b))が付加されて、第2の目的関数を得てもよく、これは、式(10)により以下のように与えられてもよい。
【数22】
【0147】
914において、識別された制約タイプが一般的な不等式制約タイプであるかどうかが決定され得る。1つ以上の実施形態において、プロセッサ204は、識別された制約タイプが一般的な不等式制約タイプであるかどうかを決定するように構成されてもよい。識別された制約タイプが一般的な不等式制約タイプの場合、制御は916に進み得る。そうでない場合、制御は918に進み得る。
【0148】
916において、一般的な不等式制約タイプが等式制約タイプに変換され得る。1つ以上の実施形態において、プロセッサ204は、一般的な不等式制約タイプを等式制約タイプに変換するように構成されてもよい。変換は、第1の目的関数に基づいて第2の目的関数を定式化するために実行されてもよい。識別された制約タイプが一般的な不等式制約タイプである場合に、第1の目的関数に基づいて第2の目的関数を定式化するために、2つの例示的な方法が本明細書で説明される。
【0149】
例示的な方法1:一般的な不等式制約タイプを等式制約タイプに変換するために、定式化された第1の目的関数にバイナリ又は整数符号化によるスラック又は剰余(surplus)変数が付加され得る。1つ以上の実施形態において、プロセッサ204は、一般的な不等式制約タイプを等式制約タイプに変換するために、定式化された第1の目的関数にバイナリ又は整数符号化でスラック又は剰余変数を付加するように構成されてもよい。
【0150】
一例として、各制約Σ
n
i=1A
3i・x
i≦b
3j、∀j=1..mについて、b
3j≧0の場合、第1の目的関数にスラック変数s
jが付加されて、一般的な不等式制約タイプを等式制約タイプに変換してもよく、それにより、Σ
n
i=1A
3i・x
i+s
j=b
3j ⇒ s
j=b
3j-Σ
n
i=1A
3i・x
iである。s
jに対する可能な上限U
jを得るには、
【数23】
である。s
jは、0≦s
j≦U
jであるようにバイナリ変数のセットにより符号化されてもよく、すなわち、
【数24】
である。スラック変数は、バイナリ変数(e
i)のリストによりさらに置き換えられてもよい。その後、ペナルティ項は、第1の目的関数(912と同じ)にさらに付加されてもよい。
【0151】
別の例として、各制約Σ
n
i=1A
3i・x
i≧b
3j、∀j=1..kについて、b
3j≧0の場合、第1の目的関数に剰余変数s
jが付加されて、一般的な不等式制約タイプを等式制約タイプに変換してもよく、それにより、Σ
n
i=1A
3i・x
i-s
j=b
3j ⇒ s
j=Σ
n
i=1A
3i・x
i-b
3jである。s
jに対する可能な上限U
jを得るには、
【数25】
である。その後、s
jは、0≦s
j≦U
jであるようにバイナリ変数のセットにより符号化されてもよく、すなわち、
【数26】
である。剰余変数は、バイナリ変数(e
i)のリストにより置き換えられてもよく、ペナルティ項は、第1の目的関数(912と同じ)に付加されてもよい。
【0152】
例示的な方法2:プロセッサ204は、第1の目的関数、すなわち制約あり最適化関数を解くことにより特定の最適化問題に対する解を直接生成するために、ラグランジュの双対性を使用する分枝限定法(branch-and-bound method)を適用することを最適化ソルバマシン108に対して指定するように構成されてもよい。分枝限定法は当該分野で知られており、したがって、詳細は簡潔さのため省略されている。さらに、第1の目的関数がMILP関数である、すなわち式(5)に基づく場合、バイナリ変数を有する各整数変数は、符号化された値が全ての可能な値をカバーするように、符号化され得る。
【0153】
918において、第2のマッピングテーブルに基づいて、定式化された第1の目的関数にペナルティ項が追加され得る。ペナルティ項は、第1の目的関数を第2の目的関数に変換するために付加されてもよい。さらに、ペナルティ項は、定式化された第1の目的関数で使用される決定された制約タイプが等式制約タイプ又は不等式制約タイプのうち1つであるという決定に基づいて、定式化された第1の目的関数に追加されてもよい。1つ以上の実施形態において、プロセッサ204は、定式化された第1の目的関数で使用される決定された制約タイプが等式制約タイプ又は不等式制約タイプのうち1つであるという決定に基づいて、定式化された第1の目的関数にペナルティ項を付加するように構成されてもよい。ペナルティ項は、定式化された第1の目的関数に適用可能な対応する制約タイプのリストにマッピングされたペナルティ項のリストを含む第2のマッピングテーブルにおいて指定されてもよい。第2のマッピングテーブルの一例が表3に以下のように提供される。
【表3】
ここで、P(.)は多項式関数を表す。
【0154】
特定の場合、第1の目的関数に関連づけられたサマリ不等式項が解析されて、第1の目的関数に付加されるべきペナルティ項を決定してもよい。サマリ不等式項のいくつかの例示的な条件が、以下のように提供される。
【0155】
例示的な条件「1」:第1の目的関数に対するサマリ不等式項(すなわち、Σm
i=1xi≦1)が複数の変数(すなわち、x1、x2、x3...及びxm)を含むかどうかが決定され得る。サマリ不等式項が複数の変数を含む場合、変数のうち任意の2つ(すなわち、xi、xj)が選択されてもよく、ペナルティ項(すなわち、P・xi・xj)が第1の目的関数に付加されてもよい。ここで、Pは大きい数の定数である。
【0156】
例示的な条件「2」:第1の目的関数に対するサマリ不等式項(すなわち、Σ
m
i=1x
i≧1)が複数の変数(すなわち、x
1、x
2、x
3...及びx
m)を含むかどうかが決定され得る。サマリ不等式項が複数の変数を含む場合、第1の目的関数のより高次の多項式形式をバイナリ多項式形式、すなわち第2の目的関数に変換するために、ペナルティ項(すなわち、
【数27】
)が付加されてもよい。あるいは不等式制約を等式制約に変換するために、[0,m-1]の範囲を有する剰余整数変数sが追加されてもよい。すなわち、ペナルティ項(すなわち、P・(Σ
m
i=1x
i-1-s)
2)が第1の目的関数に付加されてもよい。ここで、Pは大きい数の定数である。整数変数sは、対数又はワンホットエンコーディングを使用してバイナリ変数のセットにより符号化されてもよい。
【0157】
例示的な条件「3」:第1の目的関数に対するサマリ不等式項(すなわち、Σ
m
i=1x
i=1)が複数の変数(すなわち、x
1、x
2、x
3...及びx
m)を含むかどうかが決定され得る。サマリ不等式項が複数の変数を含む場合、第1の目的関数のより高次の多項式形式をバイナリ多項式形式、すなわち第2の目的関数に変換するために、ペナルティ項(すなわち、
【数28】
)が第1の目的関数に付加されてもよい。
【0158】
例示的な条件「4」:第1の目的関数に対するサマリ不等式項が正確に2つの変数を含むかどうかが決定され得、第2のマッピングテーブル(例えば、表3)に基づいて第1の目的関数にペナルティ項が付加され得る。
【0159】
920において、第2の目的関数を解くことにより特定の最適化問題に対する解を生成するために、最適化ソルバマシン108に対して呼び出しが提供され得る。1つ以上の実施形態において、プロセッサ204は、第2の目的関数を解くことにより特定の最適化問題に対する解を生成するために、最適化ソルバマシン108への呼び出しを提供するように構成されてもよい。一例として、呼び出しは、AMLフォーマットでサブミットされた第2の目的関数に対する1つ以上の解が最適化ソルバマシン108から要求され得るAPI要求でもよい。
【0160】
フローチャート900は、902、904、906、908、910、912、914、916、918、及び920などの別個の動作として示されているが、しかしながら、特定の実施形態において、このような別個の動作は、開示された実施形態の本質を損なうことなく、特定の実施形態に依存してさらなる動作にさらに分割されてもよく、より少ない動作に組み合わせられてもよく、あるいは削除されてもよい。
【0161】
図10は、本開示に記載される少なくとも1つの実施形態に従って配置された、複数の最適化ソルバマシンの性能を測定する一例示的な方法のフローチャートである。
図10は、
図1、
図2、
図3、
図4A、
図4B、
図5、
図6A、
図6B、
図6C、
図7、
図8、
図9の要素と関連して説明される。
図10を参照し、フローチャート1000が示される。フローチャート1000に示された例示的な方法は1002で開始でき、
図2の例示的なシステム202などの任意の適切なシステム、装置、又はデバイスにより実行されてもよい。
【0162】
1002において、定式化された第2の目的関数が、アニーラシステム106の最適化ソルバマシン108を含む複数の最適化ソルバマシンにAMLフォーマットでサブミットされ得る。複数の最適化ソルバマシンへのこのようなサブミットは、アニーラシステム106の最適化ソルバマシン108により生成される解の品質を評価するために実行されてもよい。さらに、これは、アニーラシステム106の最適化ソルバマシン108の動作パラメータを微調整するために実行されてもよい。1つ以上の実施形態において、プロセッサ204は、定式化された第2の目的関数をAMLフォーマットで、アニーラシステム106の最適化ソルバマシン108を含む複数の最適化ソルバマシンにサブミットするように構成されてもよい。AMLフォーマットは、サブミットの前に修正されてもよく、それにより、修正されたAMLフォーマットは、複数の最適化ソルバマシンのうちターゲットの最適化ソルバマシンに対して互換性を維持する。
【0163】
最適化ソルバマシン108以外に、複数の最適化ソルバマシンは、ハードウェア(例えば、一般化された量子コンピューティングデバイス又は量子アニーリングコンピュータ)及び/又は最適化ソルバマシン108のものとは異なり得るソフトウェアコードを含み得る他の外部最適化解決マシンをさらに含んでもよい。この差は、最適化ソルバマシン108の性能をベンチマークし、改善するのにさらに役立ち得る。さらに、他の外部最適化解決マシンの各々は、ソフトウェアソルバ、例えばGurobiソルバ又はオープンソースソフトウェアソルバ、例えば制約整数計画解決(SCIP)ソルバ、Google OR‐tool、GNU線形計画キット(GLPK)ソルバなどを使用するタイプの最適化ソルバマシンに対応し得る。
【0164】
1004において、サブミットされた第2の目的関数に対する複数の解を生成するために、複数の最適化ソルバマシンに呼び出しが提供され得る。各最適化ソルバマシンは、サブミットされた第2の目的関数の大域的最小値に向かって再帰的に移動することにより離散解空間から対応する解(すなわち、最適解)を生成するように構成されてもよい。各最適化ソルバマシンは、対応する解を生成するために適切な最適化方法を適用するように構成されてもよい。例えば、アニーラシステム106の最適化ソルバマシン108は、量子アニーリング方法を適用して、サブミットされた第2の目的関数に対する対応する解を生成するように構成されてもよい。
【0165】
1006において、生成された複数の解に対するヒューリスティック関数の適用により、複数の最適化ソルバマシンのうち各最適化ソルバマシンについて性能尺度が決定され得る。1つ以上の実施形態において、プロセッサ204は、生成された複数の解に対するヒューリスティック関数の適用により、複数の最適化ソルバマシンのうち各最適化ソルバマシンの性能尺度を決定するように構成されてもよい。各最適化ソルバマシンについて、性能尺度は、参照のために予め推定され得るグランドトゥルース解からの、対応する解の偏差を示してもよい。
【0166】
ヒューリスティック関数は、最適化ソルバマシン108の性能を他の外部最適化ソルバマシンと比較するために適用されてもよい。ヒューリスティック関数の例は、これらに限られないがグリーディ(greedy)関数及び線形計画(LP)緩和(すなわち、整数線形計画(ILP)問題を解き、シンプレックス法により整数制約を無視するため)を含んでもよい。
【0167】
いくつかの実施形態において、品質保証チェックがさらに実現されてもよい。品質保証チェックでは、特定の最適化問題に対するグランドトゥルース解又は正確な解が予めに推定され、例示的なシステム202のメモリ206及び/又は永続データ記憶装置208に記憶され得る。複数の最適化ソルバマシンのうち対応する最適化ソルバマシンからの各解がグランドトゥルース解と比較されて、グランドトゥルース解からのそれぞれの解の偏差及び対応する性能尺度を決定してもよい。グランドトゥルース解を予め推定するために適用され得る方法のいくつかの例は、これらに限られないが分枝限定法、動的計画(Dynamic Programming、DP)法、及び列生成法を含んでもよい。
【0168】
1008において、表示デバイス212の表示画面を介して解が出力され得る。解は、決定された性能尺度が最大である対応する最適化ソルバマシンにより生成され得る。1つ以上の実施形態において、プロセッサ204は、決定された性能尺度が最大である対応する最適化ソルバマシンにより生成された1つ以上の解を、表示画面を介して出力するように構成されてもよい。いくつかの他の実施形態において、最適化ソルバマシン108の動作パラメータ(例えば、温度パラメータ、反復数、又は実行数)が、決定された性能尺度が最適化ソルバマシン108について最大となるように微調整されてもよい。
【0169】
フローチャート1000は、1002、1004、1006、及び1008などの別個の動作として示されているが、しかしながら、特定の実施形態において、このような別個の動作は、開示された実施形態の本質を損なうことなく、特定の実施形態に依存してさらなる動作にさらに分割されてもよく、より少ない動作に組み合わせられてもよく、あるいは削除されてもよい。
【0170】
図11は、本開示に記載される少なくとも1つの実施形態に従って配置された、特定の最適化問題を解決するために接続されたデータベースを使用する最適化ソルバマシン108のトリガを自動化する一例示的な方法のフローチャートである。
図11は、
図1、
図2、
図3、
図4A、
図4B、
図5、
図6A、
図6B、
図6C、
図7、
図8、
図9、及び
図10の要素と関連して説明される。
図11を参照し、フローチャート1100が示される。フローチャート1100に示される例示的な方法は1102で開始でき、
図2の例示的なシステム202などの任意の適切なシステム、装置、又はデバイスにより実行されてもよい。
【0171】
1102において、アプリケーション固有データベース110が接続インターフェースを介して最適化ソルバマシン108に接続され得る。アプリケーション固有データベース110は、特定の最適化問題についての複数のパラメータにマッピングされた入力データを含んでもよい。1つ以上の実施形態において、プロセッサ204は、最適化問題がユーザ114により電子ユーザインターフェース104を介して指定されると、アプリケーション固有データベース110を最適化ソルバマシン108に接続するユーザ要求を受信するように構成されてもよい。プロセッサ204は、ユーザ要求を最適化ソルバマシン108にサブミットするように構成されてもよい。ユーザ要求は、アプリケーション固有データベース110に関連づけられた情報を含んでもよい。最適化ソルバマシン108は、ユーザ要求に基づいてアプリケーション固有データベース110に接続するように構成されてもよい。
【0172】
1104において、最適化ソルバマシン108をトリガするために、満たされるべきユーザ指定条件のセットが決定され得る。ユーザ指定条件のセットは、特定の最適化問題に対する1つ以上の解を再度生成するように最適化ソルバマシン108をトリガするために使用されてもよい。ユーザ指定条件のセットは、これらに限られないがユーザ114からの手動トリガ入力、特定の最適化問題の1つ以上のパラメータの値の周期的/非周期的変化、及び特定の最適化問題の特定のパラメータの値間の論理的条件を含んでもよい。1つ以上の実施形態において、プロセッサ204は、最適化ソルバマシン108をトリガするために満たされるべきユーザ指定条件のセットを決定するように構成されてもよい。
【0173】
1106において、決定されたユーザ指定条件のセットのうち少なくとも1つが満たされるかどうかが決定され得る。1つ以上の実施形態において、プロセッサ204は、決定されたユーザ指定条件のセットのうち少なくとも1つが満たされるかどうかを決定するように構成されてもよい。決定されたユーザ指定条件のセットのうち少なくとも1つが満たされる場合、制御は1108に進み得る。そうでない場合、制御は1110に進み得る。
【0174】
1108において、ユーザ指定条件のセットが満たされているという決定に基づいて、特定の最適化問題を解くために接続されたアプリケーション固有データベース110から入力データを取り出すように、最適化ソルバマシン108がトリガされ得る。1つ以上の実施形態において、プロセッサ204は、ユーザ指定条件のセットが満たされているという決定に基づいて、特定の最適化問題を解決するために接続されたアプリケーション固有データベース110から入力データを取り出すように最適化ソルバマシン108をトリガするよう構成されてもよい。例えば、コンテナ積載問題についてコンテナ数が変わる場合、新しい問題インスタンスが生成されてもよく、最適化ソルバマシン108が(
図4A及び
図4Bでも論じられた)コンテナ積載問題に対する解を再度生成するようにトリガされてもよい。
【0175】
一例として、多くの場合、特定の最適化問題についての複数のパラメータのうち異なるパラメータに対する値は変化し得る。値が変化するとき、特定の最適化問題に対する解もまた再度生成される必要があり得る。値の変化がアプリケーション固有データベース110にコミットされる場合、プロセッサ204は、特定の最適化問題に対する別の解を生成するように最適化ソルバマシン108をトリガするよう構成されてもよい。
【0176】
1110において、決定されたユーザ指定条件のセットのうち少なくとも1つが満たされるかどうかを決定するために、再チェックが実行され得る。再チェックは、決定されたユーザ指定条件のセットのうち少なくとも1つが満たされるまで、反復的に実行されてもよい。1つ以上の実施形態において、プロセッサ204は、再チェックを実行して、決定されたユーザ指定条件のセットのうち少なくとも1つが満たされるかどうかを決定するように構成されてもよい。
【0177】
フローチャート1100は、1102、1104、1106、1108、及び1110などの別個の動作として示されているが、しかしながら、特定の実施形態において、このような別個の動作は、開示された実施形態の本質を損なうことなく、特定の実施形態に依存してさらなる動作にさらに分割されてもよく、より少ない動作に組み合わせられてもよく、あるいは削除されてもよい。
【0178】
本開示の様々な実施形態は、実行されることに応答してシステム(例示的なシステム202など)に動作を実行させる命令を記憶するように構成された1つ以上の非一時的コンピュータ読取可能記憶媒体を提供することができる。動作は、複数の最適化問題についてのタクソノミ情報に対応する複数のユーザ選択可能な選択肢を含む電子ユーザインターフェース(電子ユーザインターフェース104など)を表示することを含んでもよい。動作は、複数の最適化問題のうち特定の最適化問題のために第1のテンプレートを選択する第1のユーザ入力を受信することをさらに含んでもよい。第1のユーザ入力は、複数のユーザ選択可能な選択肢のうち少なくとも1つのユーザ選択可能な選択肢の選択を含んでもよい。動作は、特定の最適化問題のために選択された第1のテンプレートを介して第2のユーザ入力を受信することをさらに含んでもよい。第2のユーザ入力は、選択された第1のテンプレート内に指定されるように、特定の最適化問題の複数のパラメータに対する入力データを含んでもよい。動作は、受信した第2のユーザ入力に基づいて特定の最適化問題に対する解を生成するために最適化ソルバマシン(最適化ソルバマシン108など)への呼び出しを提供することをさらに含んでもよい。
【0179】
本開示で用いられるとき、用語「モジュール」又は「コンポーネント」は、モジュール又はコンポーネントのアクションを実行するように構成された特定のハードウェア実装、及び/又はコンピューティングシステムの汎用ハードウェア(例えば、コンピュータ読取可能媒体、処理デバイス等)に記憶及び/又は実行され得るソフトウェアオブジェクト又はソフトウェアルーチンを参照し得る。いくつかの実施形態において、本開示に記載される異なるコンポーネント、モジュール、エンジン、及びサービスが、コンピューティングシステム上で実行するオブジェクト又はプロセスとして(例えば、別個のスレッドとして)実現されてもよい。本開示に記載されるシステム及び方法のいくつかは、(汎用ハードウェアに記憶及び/又は実行される)ソフトウェアで実現されるものとして一般に記載されるが、特定のハードウェア実装、又はソフトウェアと特定のハードウェア実装との組み合わせもまた可能であり、企図される。本説明において、「コンピューティングエンティティ」は、本開示において前に定義された任意のコンピューティングシステム、又はコンピューティングシステム上で動作する任意のモジュール又はモジュレートの組み合わせでもよい。
【0180】
本開示において、特に別記の特許請求の範囲(例えば、別記の特許請求の範囲の本文)において用いられる用語は、一般に「開放的」な用語として意図されている(例えば、用語「含んでいる」は、「含んでいるがこれに限定されない」と解釈されるべきであり、用語「有する」は、「少なくとも有する」と解釈されるべきであり、用語「含む」は、「含むがこれに限定されない」と解釈されるべきである、等)。
【0181】
さらに、特定数の導入された請求項記載が意図されている場合、そのような意図は請求項に明示的に記載され、そのような記載がない場合、そのような意図は存在しない。例えば、理解の助けとして、以下の別記の特許請求の範囲は、請求項記載を導入するために、導入フレーズ「少なくとも1つの」及び「1つ以上の」の使用を含むことがある。しかしながら、そのようなフレーズの使用は、不定冠詞「一の」(“a”又は“an”)による請求項記載の導入が、同じ請求項が導入フレーズ「1つ以上の」又は「少なくとも1つの」と「一の」などの不定冠詞とを含むときでも、そのような導入された請求項記載を含む任意の特定の請求項を1つのそのような記載のみ含む実施形態に限定することを暗に示すように見なされるべきではない(例えば、「一の」(“a”及び/又は“an”)は「少なくとも1つの」又は「1つ以上の」を意味するよう解釈されるべきである)。請求項記載を導入するために用いられる定冠詞の使用についても同様である。
【0182】
さらに、特定数の導入された請求項記載が明示的に記載されている場合であっても、当業者は、そのような記載は少なくとも記載された数を意味するよう解釈されるべきであることを認識するであろう(例えば、他の修飾語を伴わない「2つの記載」というただそれだけの記載は、少なくとも2つの記載、又は2つ以上の記載を意味する)。さらに、「A、B、及びC等のうち少なくとも1つ」又は「A、B、及びC等のうち1つ以上」と類似の規定が用いられている例において、一般に、そのような構造は、A単独、B単独、C単独、A及びB共に、A及びC共に、B及びC共に、又はA、B、及びC共に等を含むことが意図される。
【0183】
さらに、明細書においてか、特許請求の範囲においてか、又は図面においてかにかかわらず、2つ以上の代替的な用語を提示するいかなる分離的なワード又はフレーズも、用語のうち1つ、用語のうちいずれか、又は双方の用語を含む可能性を考慮するよう理解されるべきである。例えば、フレーズ「A又はB」は、「A」又は「B」又は「A及びB」の可能性を含むよう理解されるべきである。
【0184】
本開示に記載される全ての例及び条件付き言語は、本開示及び発明者が当該技術分野を促進するために寄与した概念を理解する際に読者を助けるための教育的目的が意図され、このように具体的に記載された例及び条件に限定されないものとみなされるべきである。本開示の実施形態が詳細に説明されたが、本開示の主旨及び範囲から逸脱することなく種々の変更、置換、及び改変をこれに行える。
【0185】
上記の実施形態につき以下の付記を残しておく。
(付記1)
複数の最適化問題についてのタクソノミ情報に対応する複数のユーザ選択可能な選択肢を含む電子ユーザインターフェースを表示するステップと、
前記複数の最適化問題のうち特定の最適化問題のために第1のテンプレートを選択する第1のユーザ入力を受信するステップであり、
前記第1のユーザ入力は、前記複数のユーザ選択可能な選択肢のうち少なくとも1つのユーザ選択可能な選択肢の選択を含む、ステップと、
前記特定の最適化問題のための前記選択された第1のテンプレートを介して第2のユーザ入力を受信するステップであり、
前記第2のユーザ入力は、前記選択された第1のテンプレート内に指定される、前記特定の最適化問題の複数のパラメータに対する入力データを含む、ステップと、
前記受信した第2のユーザ入力に基づいて前記特定の最適化問題に対する解を生成するために最適化ソルバマシンへの呼び出しを提供するステップと、
を含む方法。
(付記2)
前記複数の最適化問題のうち各最適化問題は、組み合わせ最適化問題に対応し、
前記特定の最適化問題は、複数のNP問題のうち非決定性多項式時間(NP)問題に対応する、付記1に記載の方法。
(付記3)
前記NP問題は、グラフ彩色問題、クリーク問題、独立集合問題、クリーク被覆問題、ミニマックスマッチング問題、ナップサック問題、部分集合和問題、ビンパッキング問題、カッティングストック問題、数分割問題、ハミルトン閉路問題、巡回セールスマン問題、直接フィードバック集合問題、車両経路問題、ジョブショップスケジューリング問題、一般化割当問題、二次割当問題、集合パッキング問題、集合分割問題、集合被覆問題、又はK‐Plex問題のうち1つである、付記2に記載の方法。
(付記4)
前記タクソノミ情報は、アプリケーション固有ドメインと、ドメイン固有アプリケーションと、前記ドメイン固有アプリケーションについてのサブ問題と、非決定性多項式時間(NP)問題とのうち1つ以上を含む、付記1に記載の方法。
(付記5)
最適化問題に関連づけられた複数のアプリケーション固有ドメインに関連づけられた第1の情報を取り出すステップと、
前記取り出された第1の情報に基づいて前記複数のアプリケーション固有ドメインをカテゴリのセットに分類するステップと、
前記カテゴリのセットのうち各カテゴリについて、ドメイン固有アプリケーションのセットを決定するステップと、
前記決定されたドメイン固有アプリケーションのセットのうち各ドメイン固有アプリケーションについて、サブ問題のセットを決定するステップと、
前記決定されたドメイン固有アプリケーションのセットのうち各ドメイン固有アプリケーションについて、前記決定されたサブ問題のセットにNP問題タイプのセットをマッピングするステップと、
前記マッピングされたNP問題タイプのセットに関連づけられた複数のNP問題についての知識グラフを生成するステップであり、前記知識グラフは、前記複数のNP問題のうち異なるNP問題間の関係を定義するデータ構造に対応する、ステップと、
をさらに含む付記1に記載の方法。
(付記6)
対応する複数の最適化問題のための複数のテンプレートを、前記マッピングされたNP問題タイプのセットに関連づけられた前記複数のNP問題についての前記生成された知識グラフに基づいて生成するステップであり、
前記複数のテンプレートのうち各テンプレートは、対応する最適化問題の前記複数のパラメータのための複数の入力フィールドを含み、
前記複数の入力フィールドのための前記複数のパラメータは、アプリケーション固有制約のセット、前記対応する最適化問題のための変数のセット、及び前記対応する最適化問題のための目的関数に少なくとも関連づけられた情報を含む、ステップ
をさらに含む付記5に記載の方法。
(付記7)
前記受信した第1のユーザ入力は、前記生成された複数のテンプレートからの前記第1のテンプレートの選択に対応する、付記6に記載の方法。
(付記8)
前記受信した第2のユーザ入力に基づいて、前記特定の最適化問題に対応するNP問題のための少なくとも1つの非決定性多項式時間(NP)定式化を構築するステップであり、
前記少なくとも1つのNP定式化の構築は、前記特定の最適化問題の前記複数のパラメータの、前記NP問題の複数の属性へのマッピングに対応する、ステップ
をさらに含む付記1に記載の方法。
(付記9)
前記構築するステップは、
複数のNP問題についての知識グラフと前記受信した第2のユーザ入力とに基づいて、前記特定の最適化問題について複数のNP定式化を評価するステップと、
前記評価された複数のNP定式化のうち各NP定式化において指定される制約の数に基づいて、前記特定の最適化問題についての前記評価された複数のNP定式化から少なくとも1つのNP定式化を選択するステップであり、
前記選択された少なくとも1つのNP定式化は、前記特定の最適化問題のための前記構築された少なくとも1つのNP定式化に対応する、ステップと、
を含む、付記8に記載の方法。
(付記10)
前記構築された少なくとも1つのNP定式化に基づいて、前記特定の最適化問題のための第1の目的関数を定式化するステップであり、
前記第1の目的関数は、前記NP問題の前記複数の属性間の関係を含む、ステップ
をさらに含む付記8に記載の方法。
(付記11)
前記第1の目的関数は、二次制約なしバイナリ最適化(QUBO)関数、等式制約のセットを有する第1の二次バイナリ最適化関数、不等式制約のセットを有する第2の二次バイナリ最適化関数、又は混合線形整数計画(MILP)関数のうち1つである、付記10に記載の方法。
(付記12)
前記定式化するステップは、
対応する目的関数のリストにマッピングされたNP問題のリストを含む第1のマッピングテーブルを取り出すステップと、
前記取り出された第1のマッピングテーブルに基づいて、前記特定の最適化問題に対応する前記NP問題について複数の第1の目的関数を評価するステップと、
前記評価された複数の第1の目的関数のうち各目的関数について指定された属性の数に基づいて、前記評価された複数の第1の目的関数から前記第1の目的関数を最適な目的関数として選択するステップと、
をさらに含む、付記10に記載の方法。
(付記13)
前記定式化された第1の目的関数に基づいて、前記最適化ソルバマシンによる実行に対し互換性のある第2の目的関数を定式化するステップであり、
前記定式化された第2の目的関数は、バイナリ決定変数のベクトルと前記定式化された第1の目的関数に対応するQ行列との間の関係を含む、ステップ
をさらに含む付記10に記載の方法。
(付記14)
前記定式化された第1の目的関数で使用される制約タイプを識別するステップであり、前記制約タイプは、前記定式化された第1の目的関数における不等式制約タイプ又は等式制約タイプのうち1つである、ステップと、
前記定式化された第1の目的関数で使用される決定された制約タイプが前記等式制約タイプ又は前記不等式制約タイプのうち1つであるという決定に基づいて、前記定式化された第1の目的関数にペナルティ項を付加するステップであり、
前記ペナルティ項は、前記定式化された第1の目的関数に適用可能な対応する制約タイプのリストにマッピングされたペナルティ項のリストを含む第2のマッピングテーブルにおいて指定される、ステップと、
をさらに含む付記13に記載の方法。
(付記15)
前記定式化された第2の目的関数を代数モデリング言語(AML)フォーマットで前記特定の最適化問題のために予め指定された前記最適化ソルバマシンにサブミットするステップと、
前記サブミットされた第2の目的関数を解くことにより前記特定の最適化問題に対する前記解を生成するために前記最適化ソルバマシンへの前記呼び出しを提供するステップと、
をさらに含む付記13に記載の方法。
(付記16)
前記定式化された第2の目的関数をAMLフォーマットで、前記最適化ソルバマシンを含む複数の最適化ソルバマシンにサブミットするステップと、
前記サブミットされた第2の目的関数に対する複数の解を生成するために前記複数の最適化ソルバマシンへの前記呼び出しを提供するステップと、
前記生成された複数の解に対するヒューリスティック関数の適用により、前記複数の最適化ソルバマシンのうち各最適化ソルバマシンについて性能尺度を決定するステップと、
前記決定された性能尺度が最大である対応する最適化ソルバマシンにより生成された解を、表示画面を介して出力するステップと、
をさらに含む付記13に記載の方法。
(付記17)
接続インターフェースを介して前記最適化ソルバマシンにアプリケーション固有データベースを接続するステップであり、前記アプリケーション固有データベースは、前記特定の最適化問題のための前記複数のパラメータにマッピングされた前記入力データを含む、ステップと、
前記最適化ソルバマシンをトリガするために満たされるべきユーザ指定条件のセットを決定するステップと、
前記ユーザ指定条件のセットが満たされるという決定に基づいて、前記特定の最適化問題を解くための前記接続されたアプリケーション固有データベースからの前記入力データを取り出すように前記最適化ソルバマシンをトリガするステップと、
をさらに含む、付記1に記載の方法。
(付記18)
前記最適化ソルバマシンは、前記特定の最適化問題を解くためのデジタル量子コンピューティングプロセッサに対応する、付記1に記載の方法。
(付記19)
命令を記憶するように構成された1つ以上の非一時的コンピュータ読取可能記憶媒体であって、前記命令は実行されたことに応答してシステムに動作を実行させ、前記動作は、
複数の最適化問題についてのタクソノミ情報に対応する複数のユーザ選択可能な選択肢を含む電子ユーザインターフェースを表示することと、
前記複数の最適化問題のうち特定の最適化問題のために第1のテンプレートを選択する第1のユーザ入力を受信することであり、
前記第1のユーザ入力は、前記複数のユーザ選択可能な選択肢のうち少なくとも1つのユーザ選択可能な選択肢の選択を含む、ことと、
前記特定の最適化問題のための前記選択された第1のテンプレートを介して第2のユーザ入力を受信することであり、
前記第2のユーザ入力は、前記選択された第1のテンプレート内に指定される、前記特定の最適化問題の複数のパラメータに対する入力データを含む、ことと、
前記受信した第2のユーザ入力に基づいて前記特定の最適化問題に対する解を生成するために最適化ソルバマシンへの呼び出しを提供することと、
を含む、媒体。
(付記20)
システムであって、
プロセッサであり、
複数の最適化問題についてのタクソノミ情報に対応する複数のユーザ選択可能な選択肢を含む電子ユーザインターフェースを表示し、
前記複数の最適化問題のうち特定の最適化問題のために第1のテンプレートを選択する第1のユーザ入力を受信し、
前記第1のユーザ入力は、前記複数のユーザ選択可能な選択肢のうち少なくとも1つのユーザ選択可能な選択肢の選択を含み、
前記特定の最適化問題のための前記選択された第1のテンプレートを介して第2のユーザ入力を受信し、
前記第2のユーザ入力は、前記選択された第1のテンプレート内に指定される、前記特定の最適化問題の複数のパラメータに対する入力データを含む
ように構成されたプロセッサと、
前記プロセッサに通信上結合された最適化ソルバマシンであり、前記受信した第2のユーザ入力に基づいて前記特定の最適化問題に対する解を生成するように構成される、最適化ソルバマシンと、
を含むシステム。