JP2024046750A - 最適化問題の逐次的グループ処理 - Google Patents

最適化問題の逐次的グループ処理 Download PDF

Info

Publication number
JP2024046750A
JP2024046750A JP2023152927A JP2023152927A JP2024046750A JP 2024046750 A JP2024046750 A JP 2024046750A JP 2023152927 A JP2023152927 A JP 2023152927A JP 2023152927 A JP2023152927 A JP 2023152927A JP 2024046750 A JP2024046750 A JP 2024046750A
Authority
JP
Japan
Prior art keywords
variables
group
optimization problem
local field
variable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023152927A
Other languages
English (en)
Inventor
ダビリ・ケイヴァン
シェイコレスラミ・アリ
泰孝 田村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2024046750A publication Critical patent/JP2024046750A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Operations Research (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】最適化問題の逐次的グループ処理のための方法等を提供する。【解決手段】方法は、最適化問題に関係がある特性を表す変数と、変数に対応する重みとを取得することを含んでよい。変数は、変数の一部を夫々が含むグループに分けられてよい。方法は、変数の各グループについてグループ局所場行列を取得することを更に含んでもよい。各局所場行列は、各々の変数と他の変数との間の、それらの各々の重みによって影響を及ぼされるインタラクションを示す局所場値を含んでよい。方法は準逐次的試行プロセスを実行することを含んでもよく、それは、変数に対する試行の実行を含む確率過程であってよく、各試行は、変数の状態を変更すべきかどうかを決定する。準逐次的試行プロセスは、確率過程の結果に基づいてグループ局所場行列の全てを更新することを含んでもよく、最適化問題に対する解は、結果に基づいて決定され得る。【選択図】図8

Description

本開示は、概して、最適化問題の逐次的グループ処理に関係がある。
最適化問題は、最適化問題を表す関数について最大値又は最小値を返す入力値を見つけることによって解くことができる。いくつかの最適化問題は、夫々が複数のとり得る入力値を含む複数の入力を含んでもよく、それにより、最適化問題について解く最大値又は最小値の決定は、複数の入力のうちの1つ以上を調整することを含んでもよい。コンピュータシステムは、最適化問題に対する解をより効果的かつ効率的に特定するために使用されることがある。
本開示で請求される対象は、上述された任意の欠点を解消する実施形態又は上述された環境でしか動作しない実施形態に限られない。むしろ、この背景は、本開示で記載されるいくつかの実施形態が実施される可能性がある一つの例示的な技術分野を説明するためにのみ与えられている。
本開示の態様に従って、方法は、最適化問題に関係がある特性を表す変数と、変数に対応する重みとを取得することを含んでよい。変数は、変数の一部を夫々が含むグループに分けられてよい。方法は、変数の各グループについてグループ局所場行列(group local field matrix)を取得することを含んでもよい。各局所場行列は、各々の変数と他の変数との間の、それらの各々の重みによって影響を及ぼされるインタラクションを示す局所場値を含んでよい。方法は準逐次的試行プロセス(semi-sequential trial process)を実行することを含んでもよく、それは、変数に対する試行の実行を含む確率過程(stochastic process)であってよく、各試行は、変数の状態を変更すべきかどうかを決定する。準逐次的試行プロセスは、確率過程の結果に基づいてグループ局所場行列の全てを更新することを含んでもよく、最適化問題に対する解は、結果に基づいて決定され得る。
実施形態の目的及び利点は、特許請求の範囲で特に指し示されている要素、特徴、及び組み合わせによって少なくとも実現及び達成されるであろう。上記の概要及び下記の詳細な説明はいずれも、請求される発明の例示であって、その限定ではないことが理解されるべきである。
例示的な実施形態は、添付の図面を通して、追加の特定性及び詳細を用いて記載及び説明されるであろう。
本開示の少なくとも1つの実施形態に従って、最適化問題を解くことに関係がある1つ以上の動作を実行するよう構成されるマルチコアコンピュータプロセッサアーキテクチャの例示的な環境の図である。 本開示の少なくとも1つの実施形態に従って、最適化問題を解くための試行ステップ及び更新ステップを実行するよう構成されるマルチコアコンピュータプロセッサアーキテクチャの例示的な実施形態の図である。 本開示の少なくとも1つの実施形態に従って、最適化問題に関連したニューロンを1つ以上のコンピューティングコアにマッピングする例示的な実施形態の図である。 本開示の少なくとも1つの実施形態に従って、試行カーネルにおける1つ以上のニューロンの選択及び試行の例示的な実施形態の図である。 本開示の少なくとも1つの実施形態に従って、マルチコアコンピュータプロセッサアーキテクチャの試行カーネルと更新カーネルとの間のやりとりを表す図である。 本開示の少なくとも1つの実施形態に従って、重み行列の例示的な実施形態を表す。 本開示の少なくとも1つの実施形態に従って、重み行列の転置を表す。 本開示の少なくとも1つの実施形態に従って、ハイブリッド重みアクセスプロセスの例示的な実施形態を表す。 本開示の少なくとも1つの実施形態に従って、マルチコアコンピュータプロセッサアーキテクチャを使用して最適化問題に関連した動作を実行する例示的な方法のフローチャートである。 例示的なコンピューティングシステムである。
多種多様な入力変数が最適化問題に対する解を決定するよう調整される可能性があるので、最適化問題を解くことは困難である認められる場合がある。追加的に、又は代替的に、最適化問題に対する決定された解が最良の解又は高度に最適化された解を表すかどうかを結論づけることは難しい場合がある。例えば、特定の最適化問題は、その特定の最適化問題に関連したパラメータを最大化しようとすることがあるが、特定の解がパラメータのとり得る最大値をもたらすかどうか、又はパラメータの値がとり得る最大値のある閾範囲内にあるかどうかを確認することは難しい場合がある。
コンピュータシステムは、最適化問題を解くことを支援するために使用されることがある。しかし、様々な計算手法は、コンピュータシステムによってもたらされる解が最適化問題に対する最適化された解であるかどうかを特定する際に同様の課題に直面する。例えば、特定の計算手法は、特定の最適化問題に対する特定の解を決定することができる。しかし、特定の計算手法が、特定の最適化問題の極値を表す解を決定している可能性があるので、特定の解が最適解であるかどうかの確認は難しい場合がある。追加的に、又は代替的に、最適化問題に対する最適化された解の決定が多数の動作及び計算を伴う反復的なプロセスである可能性があるので、最適化問題に関連した計算の実行には、相当な計算資源利用量が伴う場合がある。
最適化問題の複雑性及び多変量の性質のために、最適化問題に対する解を依然としてもたらしながらコンピュータ資源利用量を減らすように、近似方法が使用されてもよい。例えば、二次制約なし二値最適化(quadratic unconstrained binary optimization)(QUBO)モデルが、バイナリ入力値(例えば、0又は1)を持った一連のノードとして特定の最適化問題を表すために使用されてもよい。しかし、QUBO問題及び他の二値最適化問題を解く現在の方法は、少数の入力変数にした対応することができず、かつ/あるいは、変数の値が増えるにつれて、二値最適化問題を解くために大量の処理時間及び計算資源を必要とする可能性がある。
本開示は、従来のアプローチと比較して、使用される可能性がある計算資源の量を減らしながら最適化問題のスケールアップを可能にする動作に関係がある。いくつかの実施形態において、最適化問題に対応する変数は、複数のグループに分けられてもよく、計算試行は、特定のグループに含まれる変数の夫々に対して並行して実行されてよい。このような及び他の実施形態では、変数の各グループに関連した局所場値(local field values)は、変数の特定のグループに対応する並列な計算試行を実行した後で更新されてもよく、変数の異なるグループを伴う計算試行は、変数の特定のグループに対して実行された並列な計算試行に基づいて変数のあらゆるグループに関連した局所場値を更新した後で順次実行されてよい。いくつかの実施形態において、マルチコアコンピュータプロセッサアーキテクチャは、上で示されかつ下で詳細に説明される逐次的グループ処理を用いて最適化問題を解くことに関連した動作及び計算の1つ以上を実行するよう構成されてよい。本開示で記載されるマルチコアコンピュータプロセッサアーキテクチャの1つ以上の実施形態は、例えば最適化問題(例えば、QUBO問題)を解くことに関して、コンピュータシステムの動作がより効率的に実行されるように計算プロセス、データ記憶、及び/又はデータ検索を配置することによって、コンピュータシステムの機能を改善することができる。
本開示の実施形態は、添付の図を参照して説明される。
図1は、本開示の少なくとも1つの実施形態に従って、最適化問題を解くことに関連した1つ以上の動作を実行するよう構成されるシステム100の例示的な実施形態の図である。いくつかの実施形態において、システム100は、変数調整モジュール120及び/又は計算モジュール130を含んでよい。例えば変数調整モジュール120及び/又は計算モジュール130(一般に「計算モジュール」と呼ばれる。)を含むシステム100の要素は、コンピューティングシステムが1つ以上の動作を実行することを可能にするよう構成されたコード及びルーチンを含んでもよい。追加的に、又は代替的に、計算モジュールは、プロセッサ、マイクロプロセッサ(例えば、1つ以上の動作の実行又は実行の制御のためのもの)、フィールドプログラマブルゲートアレイ(FPGA)、又は特定用途向け集積回路(ASIC)を含むハードウェアを用いて実施されてよい。いくつかの他の事例では、計算モジュールは、ハードウェアとソフトウェアとの組み合わせを用いて実施されてもよい。本開示では、計算モジュールによって実行されるものとして記載される動作は、計算モジュールが1つ以上の対応するシステムに実行することを指示することができる動作を含んでもよい。計算モジュールは、図8の方法800に関して以下で更に詳細に記載されるように、最適化問題変数110、更新された局所場行列125、及び/又は最適化問題解135に関して一連の動作を実行するよう構成されてもよい。
変数調整モジュール120は、最適化問題変数110を取得し、更新された局所場行列125を出力してよく、局所場行列125の各要素は特定の最適化問題変数110に対応する。いくつかの実施形態において、最適化問題変数110は、対応する最適化問題に関係がある側面又は詳細について記述し得る。最適化問題変数110の夫々は、2つの状態を含むバイナリ変数であってよく、特定の最適化問題変数の特定の状態は、最適化問題に関連した特定の出力に寄与する。Nが最適化問題変数の数であるとして、N個のバイナリ変数が与えられるならば、最適化問題変数状態の可能な組み合わせは2通りとなるから、最適化問題変数の状態の再設定は、2個の値の中の1つへと最適化問題の出力を変更することをもたらし得る。例えば、特定の最適化問題変数のバイナリ状態設定は、第1又は第2アクション(例えば、左折と右折)、第1又は第2動作状態(例えば、「on」状態と「off」状態)、あるいは、第1又は第2選択(例えば、第1インクリメントによるパラメータ調整と第2インクリメントによるパラメータ調整)に関係があってよく、特定の最適化問題変数が関連付けられている特定の最適化問題の出力は、いくつかのそのような第1アクション又は第2アクション、第1動作状態又は第2動作状態、あるいは、第1選択又は第2選択のバイナリ状態設定の組み合わせであってよい。
追加的に、又は代替的に、最適化問題変数110の夫々は、最適化問題変数110を2つの状態のうちの一方にセットすること以上のものを含む複数の状態を含んでもよい。例えば、特定の最適化問題変数は、特定の最適化問題変数に関して行われ得る可能なアクション、動作状態、又は選択を表す3つ、4つ、5つ、6つ又はそれよりも多い数の状態を含んでもよい。このような及び他の例で、特定の最適化問題変数は、多数のバイナリ状態として表されてよく、特定の最適化問題変数が関連付けられている最適化問題は、バイナリ状態のグループ分けが特定のバイナリ変数を表す多数のバイナリ状態から成る二次制約なし二値最適化(QUBO)としてモデル化されてもよい。
変数調整モジュール120によって取得される最適化問題変数110の夫々は、デフォルト状態を含んでもよい。いくつかの実施形態において、最適化問題変数110のデフォルト状態は、最適化問題変数110の初期状態を表してもよい。バイナリ状態に関連して、例えば、各最適化問題変数110のデフォルト状態は、第1状態(例えば、「オフ」状態、パラメータ値への調整なし、など)であってよい。追加的に、又は代替的に、最適化問題変数110のデフォルト状態は、ユーザによって提供される最適化問題変数110の状態設定、又は状態に対する以前の反復調整などのような、前に決定された状態を表してもよい。
変数調整モジュール120は、更新された変数状態を生成するよう、最適化問題変数110の夫々に関連した状態を変更してよい。いくつかの実施形態において、最適化問題変数110の状態を変更することは、1つ以上の状態がランダムに調整される確率過程であってよい。最適化問題変数110の状態を変更する確率過程は、試行ステップ及び更新ステップを含んでもよい。
試行ステップ中、最適化問題変数110の1つ以上がランダムに選択されてよく、選択された最適化問題変数110に対応する状態が変更されてよい。最適化問題変数110の状態を変更することは、バイナリ変数について第1状態から第2状態へ切り替えることを含んでよい。追加的に、又は代替的に、非バイナリ変数の状態が、予め定められた規則に従ってランダムに調整又は変更されてもよい。例えば、3つのとり得る状態を含む非バイナリ変数は、第1状態を第2状態に変更すること、第2状態を第3状態に変更すること、第3状態を第1状態に変更することの試行規則を含んでもよい。
更新ステップ中、変数調整モジュール120は、最適化問題変数110の変更された状態に基づいて、最適化問題変数110が関係する最適化問題に関連した出力値を更新してよい。いくつかの実施形態において、最適化問題の出力値は局所場行列によって表すことができ、最適化問題変数110の夫々は、局所場行列内の要素として割り当てられる。局所場行列は、システム100の特定の変数の状態が変更されるときのシステム100のエネルギの変化の量を示すために使用されてよい。試行ステップ中の最適化問題変数110のいずれかの状態に対する変更は、試行された最適化問題変数の局所場だけではなく、試行されていない最適化問題変数の局所場にも変化を引き起こす可能性がある。その結果、局所場行列の要素によって表されるシステムのエネルギは、変数の一部のみに対する変更に基づいて更新ステップ中に再計算され得る。
いくつかの実施形態において、試行ステップ中の確率過程は、最適化問題を表すシステムの温度に基づいて実行されてもよい。高温では、確率過程中に、より多くの数の試行が実行されてよく、それにより、より多くの数の最適化問題変数110が試行され、一方、システムの温度が下がるにつれて、実行される試行の数は減る。最適化問題変数110は初期温度を割り当てられてよく、試行ステップ中に第1温度に対応する試行の数を実行した後、局所場行列は更新ステップ中に更新されてよい。システムの温度は次いで、局所場行列を更新した後に下げられてもよい。このような及び他の実施形態において、試行ステップ及び更新ステップは、セットされた反復回数の間、又は閾温度に達するまで、繰り返し実行されてよい。
最適化問題がより複雑になるにつれ、より多くの数の最適化問題変数110が変数調整モジュール120によって取得されることになり、より重い計算負荷が、試行ステップ及び更新ステップを実行するために必要になる。いくつかの実施形態において、最適化問題変数110は、最適化問題変数110を確率的に試行し局所場行列を更新する計算負荷を軽減するように、変数の複数のグループに分けられてもよい。
このような及び他の実施形態において、最適化問題変数110が分けられ得るグループの数は、変数調整モジュール120の試行ステップ及び更新ステップに関連した動作を実行するよう構成されるコンピュータシステムに含まれるコンピューティングコアの数に基づいて、決定されてもよい。例えば、特定の最適化問題に関連した最適化問題変数は、5つのコンピューティングコアを含む特定のコンピュータシステムを用いて試行及び更新されてよく、最適化問題変数は、それに応じて5つのグループに分けられてよく、最適化問題変数の各グループは、異なるコンピューティングコアで処理される。追加的に、又は代替的に、コンピューティングコアの夫々の処理能力が、最適化問題変数をそれらの各々のグループに分けるために考慮されてもよい。前の例に戻ると、第1コンピューティングコアは、第2、第3、第4、又は第5コンピューティングコアよりも処理能力が高い。そのようなものとして、他のコンピューティングコアと比べて、第1コンピューティングコアに対応するグループには、より多くの数の最適化問題変数が割り当てられ得る。追加的に、又は代替的に、グループの数は、変数の総数と、コンピューティングコアの夫々の計算能力とに基づいて、決定されてもよい。他の例として、特定の最適化問題は、全部で100,000個の変数を含んでもよく、各コンピューティングコアは、並行して8,000個の変数を処理する能力を持ち得る。このような及び他の例で、最低13個のコンピューティングコアが、特定の最適化問題を処理するために必要となる。そのようなものとして、斯様な事例では、グループの数は13以上になる。
いくつかの実施形態において、同じグループに含まれる変数の局所場は、グループ局所場行列としてまとめられてもよい。特定のグループに含まれる特定の変数の状態を再設定することは、他の変数の局所場を変更する場合があるので、試行ステップ中の受け入れられた状態設定は、特定の変数が関連付けられるグループ局所場行列全体、及び/又は変数の他のグループのグループ局所場行列に影響を及ぼす可能性がある。このような及び他の実施形態において、変数調整モジュール120によって実行される更新ステップは、変数の特定のグループに含まれる特定の最適化問題変数の受け入れられた状態設定変更に応答して、全てのグループ局所場行列を更新することを含んでもよい。
更新された局所場行列125は、更新された局所場行列125の値に寄与した対応する変数状態を含んでもよく、計算モジュール130によって取得されてもよい。いくつかの実施形態において、計算モジュール130は、最適化問題変数110が対応する最適化問題の出力を変数状態に基づいて決定してよく、最適化問題の出力は、最適化問題解135を表し得る。変数調整モジュール120の動作が最適化問題変数110の状態を調整すると、最適化問題解135は、最適化問題の目標出力に向かう傾向にあるように調整され得る(例えば、特定の結果を最小化すること、特定の結果を最大化すること、又は最適化問題の特定の値に向かう傾向があること)。
本開示の範囲から外れずに、システム100に対して変更、追加、又は削除が行われてもよい。例えば、記載されている方法における異なる要素の指定は、本明細書に記載された概念の説明を助けることを意味しており、限定するものではない。例えば、いくつかの実施形態において、変数調整モジュール120及び計算モジュール130は、本明細書に記載される概念の説明を助けるよう記載された特定の方法で描写されるが、そのような描写は限定を意図するものではない。更に、システム100は、任意の数の他の要素を含むことができ、あるいは、説明したもの以外の他のシステム又はコンテキスト内で実装することもできる。
本開示の少なくとも1つの実施形態に従って、最適化問題を解くために試行ステップ及び更新ステップを実行するよう構成されるマルチコアコンピュータプロセッサアーキテクチャ200の例示的な実施形態の図である。マルチコアコンピュータプロセッサアーキテクチャ200は、図1のシステムを実装する例示的なコンピュータアーキテクチャであってよい。例えば、マルチコアコンピュータプロセッサアーキテクチャ200は、システム100の変数調整モジュール120の例であってよい。いくつかの実施形態において、マルチコアコンピュータプロセッサアーキテクチャ200は、変数の第1グループ212から変数の第Nグループ214までに関して動作を実行するよう構成されてよい。変数の各グループは、ビット202によって表される多数の変数を含み得る。各グループ内の1つ以上のビットは試行ビット204として選択され、試行ビット204に対応する状態は試行ステップ中に変更され得る。試行ビット204に対応する少なくとも1つの状態設定が受け入れられる場合に、変数のグループに対応するグループ局所場行列230は、各個別的な変数に対応する再設定された状態及び重み225に基づいて、更新され得る。例えば、変数の第1グループ212に含まれている1つ以上のビット202の状態の再設定は、第1グループ局所場行列に対する対応する変更をもたらし得る一方で、変数の第Nグループ214に含まれているビット202の状態の再設定は、第Nグループ局所場行列に対する対応する変更をもたらし得る。追加的に、又は代替的に、変数のグループに関連した温度240が更新されてもよい。
いくつかの実施形態において、マルチコアコンピュータプロセッサアーキテクチャ200に関連した動作は、第1グラフィクス処理ユニット(GPU)のメモリ記憶などのローカルメモリにおいて実行されてもよい。マルチコアコンピュータプロセッサの各コンピューティングコアは、グループの1つ以上に含まれている変数に対する試行ステップ及び/又は更新ステップを実行するよう構成されてよい。例えば、変数の第1グループ212に伴って生じる動作は、特定のマルチコアコンピュータプロセッサの第1コンピューティングコアに割り当てられてよく、変数の第2グループに伴って生じる動作は、同じ特定のマルチコアコンピュータプロセッサの第2コンピューティングコアに割り当てられてよい。このような及び他の例では、変数が分けられるグループの数は、特定のマルチコアコンピュータプロセッサに含まれるコンピューティングコアの数に対応してもよく、それにより、変数の第Nグループ214に伴って生じる動作は第Mコンピューティングコアに割り当てられる。そのようなものとして、特定のコンピューティングコアは、その特定のコンピューティングコアに対応する変数のグループに含まれる試行ビット204の状態を変更し、1つ以上のグループ局所場行列を計算し、全てのグループ局所場行列230が更新された後に温度240を更新するよう構成されてよい。
このような及び他の実施形態において、重み225は、第2GPUのメモリ記憶などの高速グローバルメモリに格納されてよい。特定のコンピューティングコアは、試行ステップ中に特定の変数の状態が変化したとの決定に応答して、特定のコンピューティングコアと関係がある特定の変数に対応する重み225にアクセスしてもよい(例えば、特定の値は、特定のコンピューティングコアに割り当てられているグループに含まれる。)。高速グローバルメモリ220は、1つ以上のコンピューティングコアから対応する重み225に対する要求を受信することに応答して、1つ以上の重みを選択的に読み出し、読み出した重み225を、マルチコアコンピュータプロセッサの動作が行われるローカルメモリへ送るよう構成されてよい。
本開示の範囲から外れずに、マルチコアコンピュータプロセッサアーキテクチャ200に対して変更、追加、又は削除が行われてもよい。例えば、記載されている方法における異なる要素の指定は、本明細書に記載された概念の説明を助けることを意味しており、限定するものではない。更に、マルチコアコンピュータプロセッサアーキテクチャ200は、任意の数の他の要素を含むことができ、あるいは、説明したもの以外の他のシステム又はコンテキスト内で実装することもできる。
図3は、本開示の少なくとも1つの実施形態に従って、最適化問題に関連した変数305を1つ以上のコンピューティングコアに分けることに関連した動作を実行するよう構成されるコンピュータアーキテクチャ300の例示的な実施形態の図である。コンピュータアーキテクチャ300は、図2に関連して説明されたマルチコアコンピュータプロセッサアーキテクチャ200の全部又は一部に追加しても、又はその代わりとしてであってもよい。いくつかの実施形態において、変数305の夫々は、順次、(数字で)ラベル付けされ、編成されてよい。変数305は、順次編成されると互いに近くにある変数305が、隣接する変数305がそれらが関与する最適化問題にどのように影響するかという点で互いにほとんどまたは全く関係を持たなくなるように、ランダムにラベルを割り当てられてもよい。追加的に、又は代替的に、変数305は、隣接する変数が同じ又は類似した方法で最適化問題に影響を及ぼすように、ラベルを割り当てられてもよい。追加的に、又は代替的に、同じ又は類似した方法で最適化問題に影響を及ぼす変数305は、そのような変数が異なるグループに分けられるように、バラバラなラベルを割り当てられてもよい。
図3に表されるように、変数の各グループは、試行ステップ及び/又は更新ステップを実行する特定のコンピューティングコアに割り当てられてよい。例えば、第1コンピューティングコア310は、1からある整数kとラベル付けされた変数を含む変数の第1グループ315に関連した動作を実行するよう構成されてよく、第Mコンピューティングコア320は、k×(M-1)+1とラベル付けされたから最後のN番目の変数までを含む変数の第Nグループ325に関連した動作を実行するよう構成されてよい。第1コンピューティングコア310及び第Mコンピューティングコア320を含むコンピューティングコアの夫々は、図2のマルチコアコンピュータプロセッサアーキテクチャ200に関連して記載されたコンピューティングコアと同じであっても、又は類似していてもよい。そのようなものとして、コンピューティングコアの夫々は、1つ以上の変数305の状態を変更し、変数の各グループに関連したグループ局所場行列を更新する確率論的な試行過程を実行するよう構成されてよい。いくつかの実施形態において、コンピューティングコアの夫々は、オフチップメモリ330に格納され得る各変数305に対応する重みに基づいて、グループ局所場行列を更新するよう構成されてよい。コンピューティングコアの夫々は、オフチップメモリ330にアクセスし、コンピューティングコアの動作に関与する任意の変数305に対応する重みを読み出すよう構成されてよい。
本開示の範囲から外れずに、コンピュータアーキテクチャ300に対して変更、追加、又は削除が行われてもよい。例えば、記載されている方法における異なる要素の指定は、本明細書に記載された概念の説明を助けることを意味しており、限定するものではない。更に、コンピュータアーキテクチャ300は、任意の数の他の要素を含むことができ、あるいは、説明したもの以外の他のシステム又はコンテキスト内で実装することもできる。
いくつかの実施形態において、試行ステップに関連した動作は、第1コンピューティングコア(すなわち、「試行カーネル」)によって順次的に実行されてよく、更新ステップに関連した動作は、別個の第2コンピューティングコア(すなわち、「更新カーネル」)によって実行されてよい。図4は、本開示の少なくとも1つの実施形態に従って、変数の組400に含まれている1つ以上の変数の順次的な選択及び試行に関連した動作の例示的な実施形態の図である。例えば、変数の組400は、図3のコンピュータアーキテクチャ300に関連して記載された変数の第1グループ315及び/又は変数の第Nグループ325、図2のマルチコアコンピュータプロセッサアーキテクチャ200に関連して記載された変数の第1グループ212及び/又は変数の第Nグループ214、かつ/あるいは、図1のシステム100に関連して記載された最適化問題変数110に含まれる変数を含んでもよい。変数の組400は、例として、nからni+1024とラベル付けされた変数によって表される1,024個の変数を含んでもよい。いくつかの実施形態において、変数の組400に含まれる各変数は、2つの状態(バイナリビットの場合)又はより多くの状態(非バイナリビットの場合)を含むビットとして表されてよい。
図4に表されている例を参照すると、1,024個の変数の組の中の一部である変数の第1グループ410は、第1グループ410に含まれる1つ以上の変数415の状態の変更が、変数415が対応する最適化問題の出力解を改善し得るかどうかを決定するよう、並行して試行されてよい。最適化問題の出力解が特定の変数の状態を変更することによって改善されるかどうかは、変数の第1グループ410に対応する局所場行列の変化に関連したエネルギの変化を計算することによって、計算され得る。局所場行列の変化は、提案された状態設定に関連した計算された局所場行列を、提案された状態設定によらない変数の第1グループ410の局所場行列と比較することに基づき得る。このような及び他の例では、変数の第1グループ410は、最初の変数nから32番目の変数ni+31までの範囲の32個の変数を含んでもよい。
いくつかの実施形態において、試行フラグ420が、第1グループ410に含まれる変数415の夫々に割り当てられてもよく、試行フラグ420は、試行フラグ420と同じ変数415に対応する状態設定が受け入れられたかどうかを示す。例えば、試行フラグ420はバイナリビットによって表されてもよく、バイナリビットの第1値(例えば、0)は、提案された状態設定が拒絶されることを示し、バイナリビットの第2値(例えば、1)は、提案された状態設定が受け入れられることを示す。
このような及び他の実施形態において、第1グループ410に含まれる変数415の夫々に対して状態設定を試行することは、変数415の夫々が同時に試行されるように並行して実行され得る。第1グループ410内の変数415を試行した後、変数nからni+1024までの組に対応する局所場行列は、任意の受け入れられた状態設定(すなわち、受け入れられた状態設定を示す値を持った試行フラグ420を含む任意の変数415)に基づいて更新されてよい。追加的に、又は代替的に、試行ステップが変数の第2グループ430に対して連続的に順次実行され得るように、変数の第2グループ430は、第1グループ410に関連した局所場行列が更新された後に選択されてよい。いくつかの実施形態において、変数の第2グループ430は、変数の第1グループ410と同数の又は同様の数の変数を含んでもよく、第2グループ430は、受け入れられた状態設定を含む第1グループ410に含まれる変数415から始まる変数435を含んでよい。
図4に表されるように、第1グループ410に含まれる変数は、ni+kとラベル付けられて、ni+kの変数に関連した状態設定が受け入れられることを示す試行フラグ420を含んでよい。第2グループ430は、ni+kの変数から始まって、ni+k+32とラベル付けされた変数で終わる32個の変数435を含んでよい。このような及び他の実施形態において、試行ステップ及び更新ステップは、第2グループ430に含まれる変数435に対して実行されてよい。試行ステップ及び更新ステップは、変数の組400に含まれる閾数の変数が試行されて、対応する局所場行列が計算されるまで、第3グループ、第4グループ、などに対して連続的に実行されてもよい。
図5は、本開示の少なくとも1つの実施形態に従って、試行ステップ及び更新ステップの動作に関連した試行カーネル510と更新カーネル530との間のやりとりを説明するコンピュータシステム500の例示的な実施形態の図である。いくつかの実施形態において、試行カーネル510は、図1のシステム100、図2のマルチコアコンピュータプロセッサアーキテクチャ200、図3のコンピュータアーキテクチャ300、及び/又は図4の変数の組400に関連して記載された1つ以上の変数に対して状態設定を試行することに関連した動作を実行するよう夫々構成される1つ以上のコンピューティングコアを含んでよい。いくつかの実施形態において、試行カーネル510は、変数の状態設定を試行するよう構成されてよく、変数は、試行カーネル510に含まれるコンピューティングコアの数に対応する数のグループに分けられてもよく、試行カーネル510は、試行された状態設定の1つ以上が受け入れられるべきか、それとも拒絶されるべきかを決定するよう構成されてよい。
いくつかの実施形態において、試行カーネル510は、試行された状態設定に関する情報をグローバルメモリ520へ送ってもよく、グローバルメモリ520から、更新カーネル530は、試行された状態設定に関する情報を取得し、試行カーネル510に含まれる変数の各グループに対応する局所場行列を更新してよい。このような及び他の実施形態において、グローバルメモリ520は、受け入れられた状態設定試行の数522 Naccepted、受け入れられた状態設定試行を含む変数の対応する状態524 Saccepted、及び/又は対応する局所場行列内の受け入れられた状態設定試行を含む変数のインデックス526 LOCacceptedなどの、試行カーネル510からの情報を受信してよい。追加的に、又は代替的に、グローバルメモリ520は、試行カーネル510に含まれる変数の各対の間の重みを含んでもよく、特定の重みは、図6A、図6B及び図7の記載に関連して更に詳細に説明されるように、第1変数及び第2変数の局所場行列に関して、第1変数の状態が第2変数の状態に及ぼす影響の程度を表す。試行カーネル510は、試行カーネル510が変数に関する状態設定の試行を完了した後に、情報をグローバルメモリ520へ送信してよい。そのようなものとして、更新カーネル530は、試行カーネル510の動作が終了したという仮定の下で、グローバルメモリ520から状態情報を受信し得る。
いくつかの実施形態において、更新カーネル530は、第1コンピューティングコア532及び第Mコンピューティングコア534などの様々なコンピューティングコアを含んでよい。更新カーネル530に含まれるコンピューティングコアの数は、試行カーネル510に含まれるコンピューティングコアの数と同じ又は同様であってよく、それにより、試行カーネル510で使用された変数のグループ分けは、更新カーネル530に転用され得る。追加的に、又は代替的に、試行カーネル510で試行された変数は、更新カーネル530に含まれるコンピューティングコアの数及び/又は処理能力に応じて再グループ分けされてもよい。例えば、第1コンピューティングコア532は、1からN/Mの間のインデックスを持った変数を含んでよく、Nは、変数の総数を表し、Mは、コンピューティングコアの総数を表し、一方、第Mコンピューティングコア534は、(N/M)・(M-1)+1からNの間のインデックスを持った変数を含む。
いくつかの実施形態において、更新カーネル530のコンピューティングコアは、グローバルメモリ520に格納されている情報を取得し、受け入れられた状態設定試行を含む変数の各グループについて局所場行列に対する更新を計算するよう構成されてよい。変数の特定のグループXに対応する局所場行列は、次の関係によって表され得る:
Figure 2024046750000002

ここで、LF(X)は、変数の特定のグループの局所場行列を表し、これは、特定のグループに含まれるk番目の変数からi番目の変数の間の接続重みwki、i番目の変数に対応する状態の値x、及びk番目の変数に対応するバイアスbに基づいて計算され得る。
本開示の範囲から外れずに、コンピュータシステム500に対して変更、追加、又は削除が行われてもよい。例えば、記載されている方法における異なる要素の指定は、本明細書に記載された概念の説明を助けることを意味しており、限定するものではない。更に、コンピュータシステム500は、任意の数の他の要素を含むことができ、あるいは、説明したもの以外の他のシステム又はコンテキスト内で実装することもできる。
図6Aは、本開示の少なくとも1つの実施形態に係る半重み行列(half-weight matrix)600の例示的な実施形態を表す。いくつかの実施形態において、重み行列は、変数の各対の間の重みを含んでよく、重みは、変数の対の第1変数の状態が当該対の第2変数に対応する局所場行列要素に与える影響を示す。このような及び他の実施形態において、変数の各対の間の重みは、当該対の第2変数に対応する局所場行列要素に対する第1変数の状態の影響が、第1変数に対応する局所場行列要素に対する第2変数の影響と同等となるように、双方向であってよい。そのようなものとして、変数i及び変数jに伴って生じる第1重みwijは同じ2つの変数の間の第2重みwjiと等しくなる。
半重み行列600は、変数の対の間の関係を示す要素610を含んでよい。半重み行列600の特定の行及び半重み行列600の特定の列は、半重み行列600の特定の行及び特定の列を読み出すことに対応する単一の変数の特定の状態変化に基づいて局所場行列の全ての要素を更新するよう読み出されてよい。図6Aに表されるように、例えば、半重み行列600の2番目の行620及び2番目の列630は、2のインデックスを持った変数に対応する局所場行列の要素を更新するよう読み出されてよい。
変数の対の間の重みは双方向であるから、半重み行列600は、完全にポピュレートされた重み行列に対して半分の重み要素しか含まずに、特定の最適化問題に関する変数の各対の間の関係を十分に表すことができる。そのようなものとして、グローバルメモリに半重み行列600を格納するために利用されるメモリ資源は、半重み行列600と同じ情報を含む完全にポピュレートされた重み行列を格納することよりも少なくなる。図6Bは、本開示の少なくとも1つの実施形態に従って、グローバルメモリへの重み行列640の転置を表す。
重み行列640は、グローバルメモリに既に書き込まれている重み要素652などの重み要素及び列654などの列を含む第1セクション650から成ってよい。言い換えれば、第1セクション650は、グローバルメモリに格納された第1半重み行列を表し得る。重み行列640はまた、グローバルメモリに書き込まれていない重み要素662などの重み要素及び行664などの行を含む第2セクション660を含んでもよい。このような及び他の実施形態において、第2セクション660は、グローバルメモリに格納されている第1セクション650に含まれる重み要素の双方向の対応物である重み要素を含み得る。例えば、重み要素662は、重み要素652の双方向の対応物であることができ、行664は、列654の双方向の対応物を含むことができる。
本開示の範囲から外れずに、半重み行列600及び/又は重み行列640に対して変更、追加、又は削除が行われてもよい。例えば、記載されている方法における異なる要素の指定は、本明細書に記載された概念の説明を助けることを意味しており、限定するものではない。更に、半重み行列600及び/又は重み行列640は、任意の数の他の要素を含むことができ、あるいは、説明したもの以外の他のシステム又はコンテキスト内で実装することもできる。
図7は、本開示の少なくとも1つの実施形態に従って、ハイブリッド重みアクセスを容易にするコンピュータアーキテクチャ700の例示的な実施形態を表す。ハイブリッド重みアクセスは、試行カーネル及び更新カーネルのいずれか一方又は両方の動作中に、試行カーネル及び/又は更新カーネルによるグローバルメモリに格納される重みの格納及び/又は読み出しを容易にすることができる。その結果、ハイブリッド重みアクセスプロセスは、グローバルメモリに格納される重みに伴って生じるいずれかのカーネルの動作に関して、試行カーネル及び更新カーネルのランタイムを削減することができる。
いくつかの実施形態において、コンピュータアーキテクチャ700は、第1ストリーム710及び第2ストリーム720において並行して動作する2つのプロセスを含み得る。第1ストリーム710は、図1のシステム100、図2のマルチコアコンピュータプロセッサアーキテクチャ200、及び/又は図3のコンピュータアーキテクチャ300に関して記載されたような、試行ステップに関連した動作を実行する試行カーネル712と、更新ステップに関連した動作を実行する更新カーネル714とを含んでよい。第2ストリーム720は、第1ストリーム710の試行カーネル712及び更新カーネル714とともにローカルメモリに含まれる第1転置カーネル722及び第2転置カーネル724などの1つ以上の転置カーネルを含んでもよい。
転置カーネルは、グローバルメモリに記憶されている重み行列から1つ以上の特定の重み(例えば、重みの1つ以上の行)を読み出すよう構成されてよく、それにより、更新カーネル714は、グローバルメモリと通信せずに特定の重みにアクセスし得る。いくつかの実施形態において、試行カーネル712及び更新カーネル714は、試行カーネル712及び更新カーネル714によってサンプリングされる変数の数に基づいて、試行ステップ及び更新ステップを複数回(すなわち、試行ステップ及び更新ステップの「実行」(run)の回数)連続的に実行し得る。試行ステップの順番的に先の実行はより高い温度で実行されてよく、これは、より低い温度で実行される実行と比べて、より多数の提案された状態設定が提案され及び/又は受け入れられ得ることを示す。その結果、更新カーネル714は、受け入れられた状態構成に対応する局所場行列に対してより多くの更新を実行する可能性があり、これにより、更新カーネル714は、より低い温度で行われる実行と比べて、より高い頻度でグローバルメモリに格納された重みを参照することになる。更新ステップを容易にし、更新カーネル714のランタイムを削減するために、転置カーネルを含む第2ストリーム720は、更新カーネル714がグローバルメモリの代わりにローカルメモリと通信することによって対応する重みを読み出し得るように、先制的にグローバルメモリから1つ以上の重みを読み出してよい。試行カーネル712及び/又は更新カーネル714の動作と並行して転置カーネルによって先制的に読み出された重みは、受け入れられた状態設定に関係がある変数に対応する重みの1つ以上の行及び/又は列を含んでよい。
このような及び他の実施形態において、更新カーネル714によって実行される連続的な実行の過程で変数の温度が下がるにつれて、受け入れられ得る提案された状態設定は少なくなる可能性がある。受け入れられた状態設定の数が減るために、試行カーネル712及び/又は更新カーネル714によって実行される動作のランタイムは減り、それにより、転置カーネルによって実行される動作のランタイムは、試行カーネル712及び/又は更新カーネル714のランタイムと比べて増える。よって、第2ストリーム720に含まれる転置カーネルの動作は、より低い温度ではオフされてよく、更新カーネル714は、転置カーネルからではなく、グローバルメモリに格納されている重み行列(例えば、半重み行列)から重みを読み出してよい。
本開示の範囲から外れずに、コンピュータアーキテクチャ700に対して変更、追加、又は削除が行われてもよい。例えば、記載されている方法における異なる要素の指定は、本明細書に記載された概念の説明を助けることを意味しており、限定するものではない。更に、コンピュータアーキテクチャ700は、任意の数の他の要素を含むことができ、あるいは、説明したもの以外の他のシステム又はコンテキスト内で実装することもできる。
図8は、本開示の少なくとも1つの実施形態に従って、マルチコアコンピュータプロセッサアーキテクチャを使用して最適化問題に関連した動作を実行する例示的な方法800のフローチャートである。方法800は、任意の適切なシステム、装置、又はデバイスによって実行されてよい。例えば、変数調整モジュール120又は計算モジュール130が、方法800に関連した1つ以上の動作を実行してもよい。別個のブロックとして表されているが、方法800の1つ以上のブロックに関連したステップ及び動作は、具体的な実施に応じて、追加のブロックに分けられてもよく、より少ないブロックへとまとめられてもよく、又は削除されてもよい。
方法800はブロック810から開始してよく、ブロック810で、最適化問題及び最適化問題に対応する複数の変数が取得される。図1のシステム100及び図2のマルチコアコンピュータプロセッサアーキテクチャ200に関して記載されるように、最適化問題は、最適化問題の結果に影響を及ぼす様々な変数を含み得る。最適化問題を解くことは、結果の最大値又は最小値など、特定の結果に影響を与えるよう変数の1つ以上に対応する値を調整することを必要とする場合がある。特定の変数の値は、変数の状態によって表されてもよく、特定の変数の状態を変更することは、特定の変数の値の対応する変化を生じさせ得る。いくつかの実施形態において、変数は、変数の状態が第1状態(例えば、ゼロ又は“off”)又は第2値(例えば、1又は“on”)によって表され得るように、バイナリ状態を含んでもよい。追加的に、又は代替的に、変数は、変数の状態が複数の異なる状態によって表され得るように非バイナリ状態を含んでもよい。
ブロック820で、変数に対応する重みが取得されてよい。特定の変数の重みは、その特定の変数が最適化問題の結果に影響を及ぼす程度を表し得る。いくつかの実施形態において、特定の変数が最適化問題に影響を及ぼす程度は、特定の変数の状態が最適化問題に関連した他の変数の状態にどのように影響するかに依存する場合がある。そのようなものとして、特定の変数は、特定の変数と最適化問題に含まれる他の各変数との間の複数のペアごとの重みに関係し得る。
ブロック830で、変数の夫々はグループに分けられてよい。いくつかの実施形態において、変数は、変数を処理し、最適化問題を解いているコンピュータシステムの仕様に基づいた数のグループに分けられてもよい。例えば、変数が分けられ得るグループの数は、マルチコアコンピュータプロセッサに含まれるコンピューティングコアの数及び/又はコンピューティングコアの夫々の処理能力に基づいて決定され得る。
ブロック840で、変数のグループの夫々に対応するグループ局所場行列が取得されてよい。特定のグループ局所場行列は、変数の対応するグループの値、及び/又は変数の対応するグループが最適化問題の結果に与える影響を示し得る。いくつかの実施形態において、各局所場行列は、特定の変数の特定の状態に対応するエネルギを表すことができ、グループ局所場行列は、変数のグループに対応するエネルギを、グループに含まれる変数の状態に基づいて表すことができる。
ブロック850で、確率論的な試行過程が、変数の各グループに対して実行されてよい。いくつかの実施形態において、変数の特定のグループに対して確率過程を実行することは、特定のグループに含まれる変数の1つ以上に対して試行ステップ中に試行(trials)を実行することを含んでよい。各試行は、変数の特定のグループの対応する重み及び局所場値に基づいて、各々の変数の各々の状態を変更すべきかどうかを決定することができる。
ブロック860で、全てのグループ局所場行列が更新されてよい。いくつかの実施形態において、他の各グループに関連したグループ局所場行列は、変数の特定のグループのグループ局所場行列に対する変更によって影響を及ぼされる場合がある。そのようなものとして、全てのグループ局所場行列は、変数のいずれか1グループに対応する状態設定を受け入れた後に更新されてよい。グループ局所場行列の更新は、更新ステップに関連して記載されたように、各グループに含まれる変数の状態及び他の各変数に対する変数の関連する重みに基づいた計算を含み得る。
いくつかの実施形態において、ブロック850及びブロック860で実行される動作は、変数の全グループがブロック850での動作に従って試行され、全てのグループ局所場行列に対する対応する更新がブロック860での動作に従って完了されるまで、変数の各グループについて、順番に実行され、反復的に繰り返され得る。
ブロック870で、最適化問題に対する解が決定されてよい。いくつかの実施形態において、最適化問題に対する解は、変数の状態を再設定することに基づいて、最適化問題の1つ以上の特性又はパラメータの最小化又は最大化を含んでもよい。追加的に、又は代替的に、最適化問題に対する解は、最適化問題の結果が特定の値又は値の範囲に近づくように変数状態を決定することを含んでもよい。このような及び他の実施形態において、最適化問題に対する解は、図1~7に関連して記載された試行ステップ及び更新ステップによる多数の連続的な実行の後に更新されたグループ局所場行列の1つ以上に基づいて計算されてもよい。
本開示の範囲から外れずに、方法800に対して変更、追加、又は削除が行われてもよい。例えば、記載されている方法における異なる要素の指定は、本明細書に記載された概念の説明を助けることを意味しており、限定するものではない。更に、方法800は、任意の数の他の要素を含むことができ、あるいは、説明したもの以外の他のシステム又はコンテキスト内で実装することもできる。
図9は、本開示で記載される少なくとも1つの実施形態に係る例示的なコンピューティングシステム900である。コンピューティングシステム900は、プロセッサ910、メモリ920、データストレージ930、及び/又は通信ユニット940を含んでよく、これらは全て通信可能に結合されてよい。図1のシステム100のいずれか又は全ては、コンピューティングシステム900と一致するコンピューティングシステムとして実装されてよい。
一般に、プロセッサ910は、様々なコンピュータハードウェア又はソフトウェアモジュールを含む如何なる適切な専用又は汎用のコンピュータ、コンピューティングエンティティ、又は処理デバイスも含んでよく、如何なる適用可能なコンピュータ可読記憶媒体にも記憶されている命令を実行するよう構成されてよい。例えば、プロセッサ910は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、あるいは、プログラム命令を解釈及び/又は実行するよう及び/又はデータを処理するよう構成された任意の他のデジタル又はアナログ回路を含んでよい。
図9には単一のプロセッサとして表されているが、プロセッサ910は、本開示で記載されている動作をいくつでも個別的に又は集合的に実行するよう構成されている、任意の数のネットワーク又は物理的な位置にわたって分散された任意の数のプロセッサを含んでもよい。いくつかの実施形態において、プロセッサ910は、メモリ920、データストレージ930、又はメモリ920とデータストレージ930に記憶されているプログラム命令を解釈及び/又は実行し、及び/又は記憶されているデータを処理してよい。いくつかの実施形態において、プロセッサ910は、データストレージ930からプログラム命令をフェッチし、プログラム命令をメモリ920にロードしてよい。
プログラム命令がメモリ920にロードされた後、プロセッサ910は、コンピューティングシステム900に図8の方法800の動作を実行させるための命令などのプログラム命令を実行してよい。例えば、コンピューティングシステム900は、最適化問題及びその関連する変数を取得し、変数に対応する重みを取得し、変数をグループに分け、変数の各グループについてグループ局所場行列を取得し、変数の各グループに対して確率論的な試行過程を実行し、夫々の確率論的な試行過程に基づいて全てのグループ局所場行列を更新し、最適化問題に対する解を決定するよう、プログラム命令を実行してよい。
メモリ920及びデータストレージ930は、コンピュータ実行可能命令又はデータ構造を記憶しているコンピュータ可読記憶媒体又は1つ以上のコンピュータ可読記憶媒体を含んでもよい。そのようなコンピュータ可読記憶媒体は、プロセッサ910などの汎用又は専用のコンピュータによってアクセスされ得る如何なる利用可能な媒体であってもよい。例えば、メモリ920及び/又はデータストレージ930には、図1の最適化問題変数110、更新された局所場行列125、又は最適化問題解135が含まれ得る。いくつかの実施形態において、コンピューティングシステム900は、メモリ920及びデータストレージ930のいずれか一方を含んでも含まなくてもよい。
例として、限定としてではなく、そのようなコンピュータ可読記憶媒体には、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、電気的消去可能なプログラム可能リードオンリーメモリ(EEPROM)、コンパクトディスク-リードオンリーメモリ(CD-ROM)若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶デバイス、フラッシュメモリデバイス(例えば、ソリッドステートメモリデバイス)、あるいは、コンピュータ実行可能命令又はデータ構造の形で特定のプログラムコードを記憶するために使用されてよく、かつ、汎用又は専用のコンピュータによってアクセスされ得る任意の他の記憶媒体を含む非一時的なコンピュータ可読記憶媒体が含まれ得る。上記のものの組み合わせもコンピュータ可読記憶媒体の範囲内に含まれてよい。コンピュータ実行可能命令は、例えば、プロセッサ910に特定の動作又は動作のグループを実行させるよう構成された命令及びデータを含んでよい。
通信ユニット940は、ネットワーク上で情報を送信又は受信するよう構成される任意のコンポーネント、デバイス、システム、又はそれらの組み合わせを含んでよい。いくつかの実施形態において、通信ユニット940は、他の場所若しくは同じ場所にある他のデバイス、又は同じシステム内の他のコンポーネントと通信し得る。例えば、通信ユニット940は、モデム、ネットワークカード(無線又は有線)、光通信デバイス、赤外線通信デバイス、無線通信デバイス(例えば、アンテナ)、及び/又はチップセット(例えば、Bluetooth(登録商標)、802.6デバイス(例えば、メトロポリタンエリアネットワーク(MAN))、WiFiデバイス、WiMAXデバイス、セルラー通信設備、又は他)、及び/又は同様のものを含んでもよい。通信ユニット940は、本開示で記載されるネットワーク及び/又は任意の他のデバイス若しくはシステムとデータが交換されることを可能にし得る。例えば、通信ユニット940は、コンピューティングデバイス及び/又は他のネットワークなどの他のシステムとシステム900が通信することを可能にし得る。
当業者であれば、本開示を検討した後で、本開示の範囲から外れずに、システム900に対して変更、追加、又は削除が行われてもよいことを認識し得る。例えば、システム900は、明示的に例示又は記載されているよりも少ない又は多いコンポーネントを含んでもよい。
上記の開示は、開示されている厳密な形態又は特定の使用分野に本開示を限定するよう意図するものではない。従って、本開示に照らして、本明細書に明示的に記載されるか暗示されるかにかかわらず、本開示に対する様々な代替実施形態及び/又は変更が可能であることが企図される。以上、本開示の実施形態を説明したが、本開示の範囲から逸脱することなく形態及び詳細に変更を加えることができることが認識されるであろう。従って、本開示は特許請求の範囲によってのみ限定される。
いくつかの実施形態において、本明細書で記載されている種々のコンポーネント、モジュール、エンジン、及びサービスは、コンピューティングシステムで(例えば、別個のスレッドとして)実行されるオブジェクト又はプロセスとして実装されてもよい。本明細書で記載されているシステム及びプロセスのいくつかは、一般に、(汎用ハードウェアによって記憶及び/又は実行される)ソフトウェアで実装されるものとして記載されているが、特定のハードウェア実装又はソフトウェアと特定のハードウェア実装との組み合わせも可能であり、企図される。
本開示で、特に添付の特許請求の範囲(例えば、添付の特許請求の本文)で使用される用語は、一般的に、“非限定的な(open)”用語として意図されている(例えば、語「含んでいる(including)」は、“~を含んでいるが、~に限定されない”との意に解釈されるべきである。)。
更に、導入されたクレーム記載(introduced claim recitation)において特定の数が意図される場合、そのような意図は当該クレーム中に明確に記載され、そのような記載がない場合は、そのような意図も存在しない。例えば、理解を促すために、後続の添付された特許請求の範囲では、「少なくとも1つの(at least one)」及び「1つ以上の(one or more)」といった導入句を使用し、クレーム記載を導入することがある。しかし、このような句を使用するからといって、「a」又は「an」といった不定冠詞によりクレーム記載を導入した場合に、たとえ同一のクレーム内に、「1つ以上の」又は「少なくとも1つの」といった導入句と「a」又は「an」といった不定冠詞との両方が含まれるとしても、当該導入されたクレーム記載を含む特定のクレームが、当該記載事項を1しか含まない例に限定されるということが示唆されると解釈されるべきではない(例えば、「a」及び/又は「an」は、「少なくとも1つの」又は「1つ以上の」を意味すると解釈されるべきである。)。定冠詞を使用してクレーム記載を導入する場合にも同様のことが当てはまる。
更には、導入されたクレーム記載において特定の数が明示されている場合であっても、そのような記載は、通常、少なくとも記載された数を意味するように解釈されるべきであることは、当業者には理解されるであろう(例えば、他に修飾語のない、単なる「2つの記載事項」という記載がある場合、この記載は、少なくとも2つの記載事項、又は2つ以上の記載事項を意味する。)。更に、「A、B及びCなどのうち少なくとも1つ」又は「A、B及びCなどのうちの1つ以上」に類する表記が使用される場合、一般的に、そのような構造は、Aのみ、Bのみ、Cのみ、AとBの両方、AとCの両方、BとCの両方、及び/又はAとBとCの全て、などを含むよう意図される。
更に、2つ以上の選択可能な用語を表す如何なる離接語及び/又は離接句も、明細書、特許請求の範囲、又は図面のいずれであろうと、それら用語のうちの1つ、それらの用語のうちのいずれか、あるいは、それらの用語の両方を含む可能性を意図すると理解されるべきである。例えば、「A又はB」という句は、「A又はB」、あるいは、「A及びB」の可能性を含むことが理解されるべきである。
本開示で挙げられている全ての例及び条件付き言語は、当該技術の促進に本発明者によって寄与される概念及び本発明を読者が理解するのを助ける教育上の目的を意図され、そのような具体的に挙げられている例及び条件に制限されないと解釈されるべきである。本開示の実施形態が詳細に記載されてきたが、様々な変更、置換、及び代替が、本開示の主旨及び適用範囲から逸脱することなしに行われてよい。
上記の実施形態に加えて、以下の付記を開示する。
(付記1)
最適化問題に関係がある特性を夫々が表している複数の変数を取得することと、
前記変数に対応する重みを取得することであり、各々の重みは、各々の変数と前記最適化問題に関係がある1つ以上の他の変数との間の1つ以上の関係に関係がある、ことと、
前記変数を複数のグループに分けることであり、各々のグループは、前記複数の変数のうちの一部の変数を含む、ことと、
変数の各々のグループごとに各々のグループ局所場行列を取得することであり、前記各々の局所場行列は、前記各々の変数の前記各々の重みによって影響を及ぼされる前記複数の変数のうちの各変数と他の変数との間のインタラクションを夫々示している局所場値を含む、ことと、
前記複数のグループに対して準逐次的試行プロセスを実行することと、
前記準逐次的試行プロセスに基づいて前記最適化問題に対する解を決定することと
を有し、前記準逐次的試行プロセスは、
前記複数のグループの第1変数の第1グループに対応する第1重み及び第1局所場値に基づいて、前記第1グループに対して第1確率過程を実行することであり、前記第1確率過程は、前記第1グループの前記第1変数のうちの1つ以上の変数の各々の状態を変更することに関連し、前記第1確率過程は、前記第1変数のうちの1つ以上の変数に対して第1試行を実行することを含み、各々の第1試行は、各々の第1変数の各々の状態を変更すべきかどうかを決定する、ことと、
前記第1確率過程の結果に基づいて前記グループ局所場行列の全てを更新することと、
前記複数のグループの第2変数の第2グループに対応する第2重み及び第2局所場値に基づいて、前記第2グループに対して第2確率過程を実行することであり、前記第2確率過程は、前記第2グループの前記第2変数のうちの1つ以上の変数の各々の状態を変更することに関連し、前記第2確率過程は、前記第2変数のうちの1つ以上の変数に対して第2試行を実行することを含み、各々の第2試行は、各々の第2変数の各々の状態を変更すべきかどうかを決定する、ことと、
前記第2確率過程の結果に基づいて前記グループ局所場行列の全てを更新することと
を含む、
方法。
(付記2)
前記変数に対応する前記重みを取得することは、前記最適化問題に含まれる他の変数の夫々に対する各変数の重みを含む重み行列を参照することを含む、
付記1に記載の方法。
(付記3)
前記重み行列は、前記最適化問題に含まれる他の変数の夫々に対する各変数の重みを含むが、各変数と他の変数の夫々との間の双方向の重みを含まない半重み行列である、
付記2に記載の方法。
(付記4)
前記変数は第1メモリに格納され、
前記重み行列を参照することは、前記重み行列が格納されている第2メモリにアクセスすることを含み、
前記第2メモリは前記第1メモリとは別個である、
付記2に記載の方法。
(付記5)
前記第1確率過程のために実行される前記第1試行の数は、各々の第1変数に関連した各々の温度に基づいて決定され、
前記温度は第1温度から始まり、
前記温度は、前記第1確率過程の結果に基づいて前記グループ局所場行列の全てを更新した後で、前記第1温度よりも低い第2温度に更新する、
付記1に記載の方法。
(付記6)
前記変数を前記複数のグループに分けることは、前記準逐次的試行プロセスを実行するよう構成されるコンピュータシステムのコンピューティングコアの数と、前記コンピューティングコアの夫々のプロセッシング能力とに基づく、
付記1に記載の方法。
(付記7)
前記最適化問題は、二次制約なし二値最適化(QUBO)問題である、
付記1に記載の方法。
(付記8)
複数のコンピューティングコアを夫々が含む1つ以上のプロセッサと、
ローカルメモリと、
オフチップメモリと、
命令を記憶するよう構成される1つ以上の非一時的なコンピュータ可読記憶媒体と
を有するシステムであって、
前記命令は、前記ローカルメモリによって実行されることに応答して、前記システムに、
最適化問題に関係がある特性を夫々が表している複数の変数を取得することと、
前記変数に対応する重みを取得することであり、各々の重みは、各々の変数と前記最適化問題に関係がある1つ以上の他の変数との間の1つ以上の関係に関係がある、ことと、
前記変数を複数のグループに分けることであり、各々のグループは、前記複数の変数のうちの一部の変数を含む、ことと、
変数の各々のグループごとに各々のグループ局所場行列を取得することであり、前記各々の局所場行列は、前記各々の変数の前記各々の重みによって影響を及ぼされる前記複数の変数のうちの各変数と他の変数との間のインタラクションを夫々示している局所場値を含む、ことと、
前記複数のグループに対して準逐次的試行プロセスを実行することと、
前記準逐次的試行プロセスに基づいて前記最適化問題に対する解を決定することと
を有する動作を実行させ、前記準逐次的試行プロセスは、
前記複数のグループの第1変数の第1グループに対応する第1重み及び第1局所場値に基づいて、前記第1グループに対して第1確率過程を実行することであり、前記第1確率過程は、前記第1グループの前記第1変数のうちの1つ以上の変数の各々の状態を変更することに関連し、前記第1確率過程は、前記第1変数のうちの1つ以上の変数に対して第1試行を実行することを含み、各々の第1試行は、各々の第1変数の各々の状態を変更すべきかどうかを決定する、ことと、
前記第1確率過程の結果に基づいて前記グループ局所場行列の全てを更新することと、
前記複数のグループの第2変数の第2グループに対応する第2重み及び第2局所場値に基づいて、前記第2グループに対して第2確率過程を実行することであり、前記第2確率過程は、前記第2グループの前記第2変数のうちの1つ以上の変数の各々の状態を変更することに関連し、前記第2確率過程は、前記第2変数のうちの1つ以上の変数に対して第2試行を実行することを含み、各々の第2試行は、各々の第2変数の各々の状態を変更すべきかどうかを決定する、ことと、
前記第2確率過程の結果に基づいて前記グループ局所場行列の全てを更新することと
を含む、
システム。
(付記9)
前記変数に対応する前記重みを取得することは、前記最適化問題に含まれる他の変数の夫々に対する各変数の重みを含む重み行列を参照することを含む、
付記8に記載のシステム。
(付記10)
前記重み行列は、前記最適化問題に含まれる他の変数の夫々に対する各変数の重みを含むが、各変数と他の変数の夫々との間の双方向の重みを含まない半重み行列である、
付記9に記載のシステム。
(付記11)
前記変数は第1メモリに格納され、
前記重み行列を参照することは、前記重み行列が格納されている第2メモリにアクセスすることを含み、
前記第2メモリは前記第1メモリとは別個である、
付記9に記載のシステム。
(付記12)
前記第1確率過程のために実行される前記第1試行の数は、各々の第1変数に関連した各々の温度に基づいて決定され、
前記温度は第1温度から始まり、
前記温度は、前記第1確率過程の結果に基づいて前記グループ局所場行列の全てを更新した後で、前記第1温度よりも低い第2温度に更新する、
付記8に記載のシステム。
(付記13)
前記変数を前記複数のグループに分けることは、前記準逐次的試行プロセスを実行するよう構成されるコンピュータシステムのコンピューティングコアの数と、前記コンピューティングコアの夫々のプロセッシング能力とに基づく、
付記8に記載のシステム。
(付記14)
前記最適化問題は、二次制約なし二値最適化(QUBO)問題である、
付記8に記載のシステム。
(付記15)
命令を記憶するよう構成される1つ以上の非一時的なコンピュータ可読記憶媒体であって、
前記命令は、実行されることに応答して、コンピュータシステムに、
最適化問題に関係がある特性を夫々が表している複数の変数を取得することと、
前記変数に対応する重みを取得することであり、各々の重みは、各々の変数と前記最適化問題に関係がある1つ以上の他の変数との間の1つ以上の関係に関係がある、ことと、
前記変数を複数のグループに分けることであり、各々のグループは、前記複数の変数のうちの一部の変数を含む、ことと、
変数の各々のグループごとに各々のグループ局所場行列を取得することであり、前記各々の局所場行列は、前記各々の変数の前記各々の重みによって影響を及ぼされる前記複数の変数のうちの各変数と他の変数との間のインタラクションを夫々示している局所場値を含む、ことと、
前記複数のグループに対して準逐次的試行プロセスを実行することと、
前記準逐次的試行プロセスに基づいて前記最適化問題に対する解を決定することと
を有する動作を実行させ、前記準逐次的試行プロセスは、
前記複数のグループの第1変数の第1グループに対応する第1重み及び第1局所場値に基づいて、前記第1グループに対して第1確率過程を実行することであり、前記第1確率過程は、前記第1グループの前記第1変数のうちの1つ以上の変数の各々の状態を変更することに関連し、前記第1確率過程は、前記第1変数のうちの1つ以上の変数に対して第1試行を実行することを含み、各々の第1試行は、各々の第1変数の各々の状態を変更すべきかどうかを決定する、ことと、
前記第1確率過程の結果に基づいて前記グループ局所場行列の全てを更新することと、
前記複数のグループの第2変数の第2グループに対応する第2重み及び第2局所場値に基づいて、前記第2グループに対して第2確率過程を実行することであり、前記第2確率過程は、前記第2グループの前記第2変数のうちの1つ以上の変数の各々の状態を変更することに関連し、前記第2確率過程は、前記第2変数のうちの1つ以上の変数に対して第2試行を実行することを含み、各々の第2試行は、各々の第2変数の各々の状態を変更すべきかどうかを決定する、ことと、
前記第2確率過程の結果に基づいて前記グループ局所場行列の全てを更新することと
を含む、
1つ以上の非一時的なコンピュータ可読記憶媒体。
(付記16)
前記変数に対応する前記重みを取得することは、前記最適化問題に含まれる他の変数の夫々に対する各変数の重みを含む重み行列を参照することを含む、
付記15に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
(付記17)
前記重み行列は、前記最適化問題に含まれる他の変数の夫々に対する各変数の重みを含むが、各変数と他の変数の夫々との間の双方向の重みを含まない半重み行列である、
付記16に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
(付記18)
前記変数は第1メモリに格納され、
前記重み行列を参照することは、前記重み行列が格納されている第2メモリにアクセスすることを含み、
前記第2メモリは前記第1メモリとは別個である、
付記16に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
(付記19)
前記第1確率過程のために実行される前記第1試行の数は、各々の第1変数に関連した各々の温度に基づいて決定され、
前記温度は第1温度から始まり、
前記温度は、前記第1確率過程の結果に基づいて前記グループ局所場行列の全てを更新した後で、前記第1温度よりも低い第2温度に更新する、
付記15に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
(付記20)
前記変数を前記複数のグループに分けることは、前記準逐次的試行プロセスを実行するよう構成されるコンピュータシステムのコンピューティングコアの数と、前記コンピューティングコアの夫々のプロセッシング能力とに基づく、
付記15に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
100 システム
110 最適化問題変数
120 変数調整モジュール
125 更新された局所場行列
130 計算モジュール
135 最適化問題解
200 マルチコアコンピュータプロセッサアーキテクチャ
300 コンピュータアーキテクチャ
400 変数の組
500 コンピュータシステム
510 試行カーネル
530 更新カーネル
600 半重み行列
640 重み行列
700 コンピュータアーキテクチャ
900 コンピューティングシステム
910 プロセッサ
920 メモリ
930 データストレージ
940 通信ユニット

Claims (20)

  1. 最適化問題に関係がある特性を夫々が表している複数の変数を取得することと、
    前記変数に対応する重みを取得することであり、各々の重みは、各々の変数と前記最適化問題に関係がある1つ以上の他の変数との間の1つ以上の関係に関係がある、ことと、
    前記変数を複数のグループに分けることであり、各々のグループは、前記複数の変数のうちの一部の変数を含む、ことと、
    変数の各々のグループごとに各々のグループ局所場行列を取得することであり、前記各々の局所場行列は、前記各々の変数の前記各々の重みによって影響を及ぼされる前記複数の変数のうちの各変数と他の変数との間のインタラクションを夫々示している局所場値を含む、ことと、
    前記複数のグループに対して準逐次的試行プロセスを実行することと、
    前記準逐次的試行プロセスに基づいて前記最適化問題に対する解を決定することと
    を有し、前記準逐次的試行プロセスは、
    前記複数のグループの第1変数の第1グループに対応する第1重み及び第1局所場値に基づいて、前記第1グループに対して第1確率過程を実行することであり、前記第1確率過程は、前記第1グループの前記第1変数のうちの1つ以上の変数の各々の状態を変更することに関連し、前記第1確率過程は、前記第1変数のうちの1つ以上の変数に対して第1試行を実行することを含み、各々の第1試行は、各々の第1変数の各々の状態を変更すべきかどうかを決定する、ことと、
    前記第1確率過程の結果に基づいて前記グループ局所場行列の全てを更新することと、
    前記複数のグループの第2変数の第2グループに対応する第2重み及び第2局所場値に基づいて、前記第2グループに対して第2確率過程を実行することであり、前記第2確率過程は、前記第2グループの前記第2変数のうちの1つ以上の変数の各々の状態を変更することに関連し、前記第2確率過程は、前記第2変数のうちの1つ以上の変数に対して第2試行を実行することを含み、各々の第2試行は、各々の第2変数の各々の状態を変更すべきかどうかを決定する、ことと、
    前記第2確率過程の結果に基づいて前記グループ局所場行列の全てを更新することと
    を含む、
    方法。
  2. 前記変数に対応する前記重みを取得することは、前記最適化問題に含まれる他の変数の夫々に対する各変数の重みを含む重み行列を参照することを含む、
    請求項1に記載の方法。
  3. 前記重み行列は、前記最適化問題に含まれる他の変数の夫々に対する各変数の重みを含むが、各変数と他の変数の夫々との間の双方向の重みを含まない半重み行列である、
    請求項2に記載の方法。
  4. 前記変数は第1メモリに格納され、
    前記重み行列を参照することは、前記重み行列が格納されている第2メモリにアクセスすることを含み、
    前記第2メモリは前記第1メモリとは別個である、
    請求項2に記載の方法。
  5. 前記第1確率過程のために実行される前記第1試行の数は、各々の第1変数に関連した各々の温度に基づいて決定され、
    前記温度は第1温度から始まり、
    前記温度は、前記第1確率過程の結果に基づいて前記グループ局所場行列の全てを更新した後で、前記第1温度よりも低い第2温度に更新する、
    請求項1に記載の方法。
  6. 前記変数を前記複数のグループに分けることは、前記準逐次的試行プロセスを実行するよう構成されるコンピュータシステムのコンピューティングコアの数と、前記コンピューティングコアの夫々のプロセッシング能力とに基づく、
    請求項1に記載の方法。
  7. 前記最適化問題は、二次制約なし二値最適化(QUBO)問題である、
    請求項1に記載の方法。
  8. 複数のコンピューティングコアを夫々が含む1つ以上のプロセッサと、
    ローカルメモリと、
    オフチップメモリと、
    命令を記憶するよう構成される1つ以上の非一時的なコンピュータ可読記憶媒体と
    を有するシステムであって、
    前記命令は、前記ローカルメモリによって実行されることに応答して、前記システムに、
    最適化問題に関係がある特性を夫々が表している複数の変数を取得することと、
    前記変数に対応する重みを取得することであり、各々の重みは、各々の変数と前記最適化問題に関係がある1つ以上の他の変数との間の1つ以上の関係に関係がある、ことと、
    前記変数を複数のグループに分けることであり、各々のグループは、前記複数の変数のうちの一部の変数を含む、ことと、
    変数の各々のグループごとに各々のグループ局所場行列を取得することであり、前記各々の局所場行列は、前記各々の変数の前記各々の重みによって影響を及ぼされる前記複数の変数のうちの各変数と他の変数との間のインタラクションを夫々示している局所場値を含む、ことと、
    前記複数のグループに対して準逐次的試行プロセスを実行することと、
    前記準逐次的試行プロセスに基づいて前記最適化問題に対する解を決定することと
    を有する動作を実行させ、前記準逐次的試行プロセスは、
    前記複数のグループの第1変数の第1グループに対応する第1重み及び第1局所場値に基づいて、前記第1グループに対して第1確率過程を実行することであり、前記第1確率過程は、前記第1グループの前記第1変数のうちの1つ以上の変数の各々の状態を変更することに関連し、前記第1確率過程は、前記第1変数のうちの1つ以上の変数に対して第1試行を実行することを含み、各々の第1試行は、各々の第1変数の各々の状態を変更すべきかどうかを決定する、ことと、
    前記第1確率過程の結果に基づいて前記グループ局所場行列の全てを更新することと、
    前記複数のグループの第2変数の第2グループに対応する第2重み及び第2局所場値に基づいて、前記第2グループに対して第2確率過程を実行することであり、前記第2確率過程は、前記第2グループの前記第2変数のうちの1つ以上の変数の各々の状態を変更することに関連し、前記第2確率過程は、前記第2変数のうちの1つ以上の変数に対して第2試行を実行することを含み、各々の第2試行は、各々の第2変数の各々の状態を変更すべきかどうかを決定する、ことと、
    前記第2確率過程の結果に基づいて前記グループ局所場行列の全てを更新することと
    を含む、
    システム。
  9. 前記変数に対応する前記重みを取得することは、前記最適化問題に含まれる他の変数の夫々に対する各変数の重みを含む重み行列を参照することを含む、
    請求項8に記載のシステム。
  10. 前記重み行列は、前記最適化問題に含まれる他の変数の夫々に対する各変数の重みを含むが、各変数と他の変数の夫々との間の双方向の重みを含まない半重み行列である、
    請求項9に記載のシステム。
  11. 前記変数は第1メモリに格納され、
    前記重み行列を参照することは、前記重み行列が格納されている第2メモリにアクセスすることを含み、
    前記第2メモリは前記第1メモリとは別個である、
    請求項9に記載のシステム。
  12. 前記第1確率過程のために実行される前記第1試行の数は、各々の第1変数に関連した各々の温度に基づいて決定され、
    前記温度は第1温度から始まり、
    前記温度は、前記第1確率過程の結果に基づいて前記グループ局所場行列の全てを更新した後で、前記第1温度よりも低い第2温度に更新する、
    請求項8に記載のシステム。
  13. 前記変数を前記複数のグループに分けることは、前記準逐次的試行プロセスを実行するよう構成されるコンピュータシステムのコンピューティングコアの数と、前記コンピューティングコアの夫々のプロセッシング能力とに基づく、
    請求項8に記載のシステム。
  14. 前記最適化問題は、二次制約なし二値最適化(QUBO)問題である、
    請求項8に記載のシステム。
  15. 命令を記憶するよう構成される1つ以上の非一時的なコンピュータ可読記憶媒体であって、
    前記命令は、実行されることに応答して、コンピュータシステムに、
    最適化問題に関係がある特性を夫々が表している複数の変数を取得することと、
    前記変数に対応する重みを取得することであり、各々の重みは、各々の変数と前記最適化問題に関係がある1つ以上の他の変数との間の1つ以上の関係に関係がある、ことと、
    前記変数を複数のグループに分けることであり、各々のグループは、前記複数の変数のうちの一部の変数を含む、ことと、
    変数の各々のグループごとに各々のグループ局所場行列を取得することであり、前記各々の局所場行列は、前記各々の変数の前記各々の重みによって影響を及ぼされる前記複数の変数のうちの各変数と他の変数との間のインタラクションを夫々示している局所場値を含む、ことと、
    前記複数のグループに対して準逐次的試行プロセスを実行することと、
    前記準逐次的試行プロセスに基づいて前記最適化問題に対する解を決定することと
    を有する動作を実行させ、前記準逐次的試行プロセスは、
    前記複数のグループの第1変数の第1グループに対応する第1重み及び第1局所場値に基づいて、前記第1グループに対して第1確率過程を実行することであり、前記第1確率過程は、前記第1グループの前記第1変数のうちの1つ以上の変数の各々の状態を変更することに関連し、前記第1確率過程は、前記第1変数のうちの1つ以上の変数に対して第1試行を実行することを含み、各々の第1試行は、各々の第1変数の各々の状態を変更すべきかどうかを決定する、ことと、
    前記第1確率過程の結果に基づいて前記グループ局所場行列の全てを更新することと、
    前記複数のグループの第2変数の第2グループに対応する第2重み及び第2局所場値に基づいて、前記第2グループに対して第2確率過程を実行することであり、前記第2確率過程は、前記第2グループの前記第2変数のうちの1つ以上の変数の各々の状態を変更することに関連し、前記第2確率過程は、前記第2変数のうちの1つ以上の変数に対して第2試行を実行することを含み、各々の第2試行は、各々の第2変数の各々の状態を変更すべきかどうかを決定する、ことと、
    前記第2確率過程の結果に基づいて前記グループ局所場行列の全てを更新することと
    を含む、
    1つ以上の非一時的なコンピュータ可読記憶媒体。
  16. 前記変数に対応する前記重みを取得することは、前記最適化問題に含まれる他の変数の夫々に対する各変数の重みを含む重み行列を参照することを含む、
    請求項15に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
  17. 前記重み行列は、前記最適化問題に含まれる他の変数の夫々に対する各変数の重みを含むが、各変数と他の変数の夫々との間の双方向の重みを含まない半重み行列である、
    請求項16に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
  18. 前記変数は第1メモリに格納され、
    前記重み行列を参照することは、前記重み行列が格納されている第2メモリにアクセスすることを含み、
    前記第2メモリは前記第1メモリとは別個である、
    請求項16に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
  19. 前記第1確率過程のために実行される前記第1試行の数は、各々の第1変数に関連した各々の温度に基づいて決定され、
    前記温度は第1温度から始まり、
    前記温度は、前記第1確率過程の結果に基づいて前記グループ局所場行列の全てを更新した後で、前記第1温度よりも低い第2温度に更新する、
    請求項15に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
  20. 前記変数を前記複数のグループに分けることは、前記準逐次的試行プロセスを実行するよう構成されるコンピュータシステムのコンピューティングコアの数と、前記コンピューティングコアの夫々のプロセッシング能力とに基づく、
    請求項15に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
JP2023152927A 2022-09-25 2023-09-20 最適化問題の逐次的グループ処理 Pending JP2024046750A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/952296 2022-09-25
US17/952,296 US20240104160A1 (en) 2022-09-25 2022-09-25 Sequential group processing of optimization problems

Publications (1)

Publication Number Publication Date
JP2024046750A true JP2024046750A (ja) 2024-04-04

Family

ID=88068895

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023152927A Pending JP2024046750A (ja) 2022-09-25 2023-09-20 最適化問題の逐次的グループ処理

Country Status (4)

Country Link
US (1) US20240104160A1 (ja)
EP (1) EP4343638A1 (ja)
JP (1) JP2024046750A (ja)
CN (1) CN117763277A (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7185140B2 (ja) * 2019-04-11 2022-12-07 富士通株式会社 最適化装置及び最適化装置の制御方法
JP7417074B2 (ja) * 2020-02-19 2024-01-18 富士通株式会社 最適化装置、最適化方法及び最適化装置の制御プログラム

Also Published As

Publication number Publication date
EP4343638A1 (en) 2024-03-27
CN117763277A (zh) 2024-03-26
US20240104160A1 (en) 2024-03-28

Similar Documents

Publication Publication Date Title
US11354601B2 (en) Learning classification device and learning classification method
US11775832B2 (en) Device and method for artificial neural network operation
US20200117400A1 (en) Parallel Memory Access and Computation in Memory Devices
CN115860100A (zh) 一种神经网络模型训练方法、装置及计算设备
JP2020077066A (ja) 学習装置および学習方法
CN109902821B (zh) 一种数据处理方法、装置及相关组件
CN109685208B (zh) 一种用于神经网络处理器数据稀梳化加速的方法及装置
US20200117449A1 (en) Accelerated Access to Computations Results Generated from Data Stored in Memory Devices
CN113283575A (zh) 用于重构人工神经网络的处理器及其操作方法、电气设备
JP2024046750A (ja) 最適化問題の逐次的グループ処理
US11921667B2 (en) Reconfigurable computing chip
US20200143285A1 (en) Learning device and learning method
JP7069898B2 (ja) 学習識別装置および学習識別方法
JP7069897B2 (ja) 学習識別装置および学習識別方法
WO2020142251A1 (en) Prediction for time series data using a space partitioning data structure
US20220391744A1 (en) Systems and methods for embedding graphs using systolic algorithms
CN114707655B (zh) 一种量子线路转换方法、系统、存储介质和电子设备
WO2022057459A1 (zh) 一种基于Tensorcore处理int4数据类型的方法、系统、设备及介质
CN114595641A (zh) 组合优化问题的求解方法和系统
CN112513837A (zh) 网络结构搜索方法和装置
JP2020077067A (ja) 学習装置および学習方法
CN116187458B (zh) 量子电路处理方法、装置及电子设备
CN113868242B (zh) 全局索引的分布策略调整方法、计算机设备及存储介质
CN112843726B (zh) 智能体处理方法及装置
CN118195034A (zh) 超参数优化方法及装置、电子设备、计算机可读介质