(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-13
(45)【発行日】2024-02-21
(54)【発明の名称】サロゲート二値最適化
(51)【国際特許分類】
G06N 99/00 20190101AFI20240214BHJP
【FI】
G06N99/00 180
(21)【出願番号】P 2022565991
(86)(22)【出願日】2021-04-30
(86)【国際出願番号】 US2021030307
(87)【国際公開番号】W WO2021222837
(87)【国際公開日】2021-11-04
【審査請求日】2022-11-09
(32)【優先日】2020-05-01
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100107515
【氏名又は名称】廣田 浩一
(72)【発明者】
【氏名】マレクモハンマディ・メルダッド
(72)【発明者】
【氏名】ダビリ・ケイヴァン
(72)【発明者】
【氏名】シェイコレスラミ・アリ
(72)【発明者】
【氏名】田村 泰孝
【審査官】武田 広太郎
(56)【参考文献】
【文献】特表2019-512779(JP,A)
【文献】特開2020-004387(JP,A)
【文献】MALEKMOHAMMADI, Mehrdad,Hamiltonian Engin for Radiotherapy Optimization,TSpase [online],2019年06月30日,[検索日2023.10.13], https://hdl.handle.net/1807/106762
(58)【調査した分野】(Int.Cl.,DB名)
G06N 99/00
(57)【特許請求の範囲】
【請求項1】
最適化問題に対応する複数の変数を識別するステップであり、前記複数の変数の各変数は対応する初期値を有する、ステップと、
前記複数の変数の前記初期値に基づいて目的関数値を計算するステップと、
前記目的関数値の複数の関数値変更を計算するステップであり、前記複数の関数値変更の各関数値変更は、複数の変数値変更のうちの異なる1つに基づいて計算され、前記変数値変更の各々は、前記初期値のうちの異なる1つに行われたそれぞれの変更に対応する、ステップと、
前記変数のサブセットを、前記変数のサブセットのうちの前記変数のそれぞれの初期値に行われた対応する変数値変更に対応するそれぞれの関数値変更に基づいて、選択するステップと、
前記選択された変数のサブセットを使用して前記最適化問題のサロゲート二次制約なし二値最適化(QUBO)モデルを生成するステップと、
前記サロゲートQUBOモデルを使用して前記最適化問題に対する1つ以上の候補解を決定するステップであり、前記1つ以上の候補解の各々は解値のセットを含み、前記解値のセットのうちの前記解値の各々は、前記複数の変数のうちの異なる変数に対応する、ステップと、
前記1つ以上の候補解に基づいて前記最適化問題に対する解を決定するステップと、
を含
み、
前記変数値変更に基づいて前記目的関数値の前記複数の関数値変更を計算することは、
各変数に1つ以上のバイナリノードを割り当てることであり、各バイナリノードはバイナリ値を有し、前記バイナリ値は、前記バイナリ値に関連づけられた前記変数の初期値の変更を示す、ことと、
前記変数のうちの1つ以上に関連づけられた前記バイナリノードに対応する1つ以上のバイナリ値を反転することと、
前記変数の前記初期値と前記1つ以上の反転されたバイナリ値とに基づいて前記変数値変更を計算することと、
前記変数値変更に基づいて前記複数の関数値変更のうちの関数値変更を計算することと、
を含む、
方法。
【請求項2】
前記最適化問題に対する前記解と各変数の対応する初期値とに基づいて、各変数に関連づけられた更新された値を決定するステップと、
前記更新された値に基づいて前記変数の第2のサブセットを選択するステップと、
前記変数の前記第2のサブセットに基づいて前記サロゲートQUBOモデルを使用して前記最適化問題に対する1つ以上の第2の候補解を決定するステップと、
前記1つ以上の第2の候補解に基づいて前記最適化問題に対する第2の解を決定するステップと、
をさらに含む請求項1に記載の方法。
【請求項3】
前記複数の変数値変更の各変数値変更は、前記初期値のうちの異なる1つに行われた同じ変更に対応し、前記変数のサブセットを選択することは、
前記初期値のうちの異なる1つに行われた変数値変更に基づいて前記目的関数値の前記複数の関数値変更を計算することと、
前記変数を、前記関数値変更と前記変数のうちの各々の初期値に行われたそれぞれの変更とに基づいてソートすることと、
前記ソートに基づいて前記変数の前記サブセットを選択することと、
を含む、請求項1に記載の方法。
【請求項4】
前記最適化問題は、強度変調放射線治療を使用して腫瘍及び1つ以上の臓器に届けられる規定された放射線量を決定することを含む、請求項1に記載の方法。
【請求項5】
前記最適化問題に対応する前記複数の変数は、前記腫瘍及び前記臓器の指定された組織体積のボクセルで受ける線量である、請求項
4に記載の方法。
【請求項6】
システムに動作を実行させるコンピュータプログラムであって、前記動作は、
最適化問題に対応する複数の変数を識別することであり、前記複数の変数の各変数は対応する初期値を有する、ことと、
前記複数の変数の前記初期値に基づいて目的関数値を計算することと、
前記目的関数値の複数の関数値変更を計算することであり、前記複数の関数値変更の各関数値変更は、複数の変数値変更のうちの異なる1つに基づいて計算され、前記変数値変更の各々は、前記初期値のうちの異なる1つに行われたそれぞれの変更に対応する、ことと、
前記変数のサブセットを、前記変数のサブセットのうちの前記変数のそれぞれの初期値に行われた対応する変数値変更に対応するそれぞれの関数値変更に基づいて、選択することと、
前記選択された変数のサブセットを使用して前記最適化問題のサロゲート二次制約なし二値最適化(QUBO)モデルを生成することと、
前記サロゲートQUBOモデルを使用して前記最適化問題に対する1つ以上の候補解を決定することであり、前記1つ以上の候補解の各々は解値のセットを含み、前記解値のセットのうちの前記解値の各々は、前記複数の変数のうちの異なる変数に対応する、ことと、
前記1つ以上の候補解に基づいて前記最適化問題に対する解を決定することと、
を含
み、
前記変数値変更に基づいて前記目的関数値の前記複数の関数値変更を計算することは、
各変数に1つ以上のバイナリノードを割り当てることであり、各バイナリノードはバイナリ値を有し、前記バイナリ値は、前記バイナリ値に関連づけられた前記変数の初期値の変更を示す、ことと、
前記変数のうちの1つ以上に関連づけられた前記バイナリノードに対応する1つ以上のバイナリ値を反転することと、
前記変数の前記初期値と前記1つ以上の反転されたバイナリ値とに基づいて前記変数値変更を計算することと、
前記変数値変更に基づいて前記複数の関数値変更のうちの関数値変更を計算することと、
を含む、
コンピュータプログラム。
【請求項7】
前記動作は、
前記最適化問題に対する前記解と各変数の対応する初期値とに基づいて、各変数に関連づけられた更新された値を決定することと、
前記更新された値に基づいて前記変数の第2のサブセットを選択することと、
前記変数の前記第2のサブセットに基づいて前記サロゲートQUBOモデルを使用して前記最適化問題に対する1つ以上の第2の候補解を決定することと、
前記1つ以上の第2の候補解に基づいて前記最適化問題に対する第2の解を決定することと、
をさらに含む、請求項
6に記載のコンピュータプログラム。
【請求項8】
前記複数の変数値変更の各変数値変更は、前記初期値のうちの異なる1つに行われた同じ変更に対応し、前記変数のサブセットを選択することは、
前記初期値のうちの異なる1つに行われた変数値変更に基づいて前記目的関数値の前記複数の関数値変更を計算することと、
前記変数を、前記関数値変更と前記変数のうちの各々の初期値に行われたそれぞれの変更とに基づいてソートすることと、
前記ソートに基づいて前記変数の前記サブセットを選択することと、
を含む、請求項
6に記載のコンピュータプログラム。
【請求項9】
前記最適化問題は、強度変調放射線治療を使用して腫瘍及び1つ以上の臓器に届けられる規定された放射線量を決定することを含む、請求項
6に記載のコンピュータプログラム。
【請求項10】
前記最適化問題に対応する前記複数の変数は、前記腫瘍及び前記臓器の指定された組織体積のボクセルで受ける線量である、請求項
9に記載のコンピュータプログラム。
【請求項11】
システムであって、
1つ以上のプロセッサと、
実行されることに応答して当該システムに動作を実行させる命令を記憶するように構成された1つ以上の非一時的コンピュータ読取可能記憶媒体と、を備え、前記動作は、
最適化問題に対応する複数の変数を識別することであり、前記複数の変数の各変数は対応する初期値を有する、ことと、
前記複数の変数の前記初期値に基づいて目的関数値を計算することと、
前記目的関数値の複数の関数値変更を計算することであり、前記複数の関数値変更の各関数値変更は、複数の変数値変更のうちの異なる1つに基づいて計算され、前記変数値変更の各々は、前記初期値のうちの異なる1つに行われたそれぞれの変更に対応する、ことと、
前記変数のサブセットを、前記変数のサブセットのうちの前記変数のそれぞれの初期値に行われた対応する変数値変更に対応するそれぞれの関数値変更に基づいて、選択することと、
前記選択された変数のサブセットを使用して前記最適化問題のサロゲート二次制約なし二値最適化(QUBO)モデルを生成することと、
前記サロゲートQUBOモデルを使用して前記最適化問題に対する1つ以上の候補解を決定することであり、前記1つ以上の候補解の各々は解値のセットを含み、前記解値のセットのうちの前記解値の各々は、前記複数の変数のうちの異なる変数に対応する、ことと、
前記1つ以上の候補解に基づいて前記最適化問題に対する解を決定することと、
を含
み、
前記変数値変更に基づいて前記目的関数値の前記複数の関数値変更を計算することは、
各変数に1つ以上のバイナリノードを割り当てることであり、各バイナリノードはバイナリ値を有し、前記バイナリ値は、前記バイナリ値に関連づけられた前記変数の初期値の変更を示す、ことと、
前記変数のうちの1つ以上に関連づけられた前記バイナリノードに対応する1つ以上のバイナリ値を反転することと、
前記変数の前記初期値と前記1つ以上の反転されたバイナリ値とに基づいて前記変数値変更を計算することと、
前記変数値変更に基づいて前記複数の関数値変更のうちの関数値変更を計算することと、
を含む、
システム。
【請求項12】
前記動作は、
前記最適化問題に対する前記解と各変数の対応する初期値とに基づいて、各変数に関連づけられた更新された値を決定することと、
前記更新された値に基づいて前記変数の第2のサブセットを選択することと、
前記変数の前記第2のサブセットに基づいて前記サロゲートQUBOモデルを使用して前記最適化問題に対する1つ以上の第2の候補解を決定することと、
前記1つ以上の第2の候補解に基づいて前記最適化問題に対する第2の解を決定することと、
をさらに含む、請求項
11に記載のシステム。
【請求項13】
前記複数の変数値変更の各変数値変更は、前記初期値のうちの異なる1つに行われた同じ変更に対応し、前記変数のサブセットを選択することは、
前記初期値のうちの異なる1つに行われた変数値変更に基づいて前記目的関数値の前記複数の関数値変更を計算することと、
前記変数を、前記関数値変更と前記変数のうちの各々の初期値に行われたそれぞれの変更とに基づいてソートすることと、
前記ソートに基づいて前記変数の前記サブセットを選択することと、
を含む、請求項
11に記載のシステム。
【請求項14】
前記最適化問題は、強度変調放射線治療を使用して腫瘍及び1つ以上の臓器に届けられる規定された放射線量を決定することを含む、請求項
11に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概してサロゲート二値最適化に関する。
【0002】
[関連出願の相互参照]
本出願は、2020年5月1日に出願された米国仮出願第63/019,046の優先権を主張しており、該出願はその全体を参照により本明細書に組み込まれている。
【背景技術】
【0003】
最適化問題は、最適化問題を表す関数の最大値又は最小値を返す入力値を見つけることにより解くことができる。問題を解くことは、時間複雑性多項方程式により定義される多項式時間で達成され得る。多項式時間で解くことができない最適化問題は、非決定性多項式許容問題又はNP困難問題に分類されることがある。NP困難問題を解くことは困難な場合があり、なぜならば、NP困難問題に対する有効な解を決定するために必要とされる時間は、最適化問題を解くために最適化されなければならない変数の数に応じて指数関数的に増加する可能性があるためである。
【0004】
本開示で請求される対象事項は、いずれかの欠点を解決し又は上記のような環境でのみ動作する実施形態に限定されない。むしろ、本背景技術は、本開示に記載されるいくつかの実施形態が実施され得る1つの例示的な技術分野を示すためにのみ提供されている。
【発明の概要】
【0005】
一実施形態の態様によれば、動作は、最適化問題に対応する複数の変数を識別することであり、複数の変数の各変数は対応する初期値を有することを含むことができる。動作は、複数の変数の初期値に基づいて目的関数値を計算することを含んでもよい。動作は、目的関数値の複数の関数値変更を計算することを含んでもよく、複数の関数値変更の各々は、複数の変数値変更のうちの異なる1つに基づいて計算され、変数値変更の各々は、初期値のうちの異なる1つに行われたそれぞれの変更に対応する。動作は、変数のサブセットを、変数のサブセットのうちの変数のそれぞれの初期値に行われた対応する変数値変更に対応するそれぞれの関数値変更に基づいて選択することを含んでもよい。動作は、選択された変数のサブセットを使用して最適化問題のサロゲート二次制約なし二値最適化(QUBO)モデルを生成することを含んでもよい。動作は、サロゲートQUBOモデルを使用して最適化問題に対する1つ以上の候補解を決定することであり、1つ以上の候補解の各々は、複数の変数に対応する解値のセットを含み、解値のセットのうちの解値の各々は、複数の変数のうちの異なる変数に対応することを含んでもよい。動作は、1つ以上の候補解に基づいて最適化問題に対する解を決定することを含んでもよい。
【0006】
実施形態の目的及び利点は、少なくとも特許請求の範囲で特に指し示されている要素、特徴、及び組み合わせにより実現され、達成される。前述の一般的な説明及び以下の詳細な説明の双方が説明的なものであり、請求されている発明を制限するものではないことを理解すべきである。
【図面の簡単な説明】
【0007】
例示的な実施形態を、添付の図面を通じてさらなる特定性及び詳細とともに記載し、説明する。
【
図1】二値最適化問題に対する解の決定に関連する一例示的なシステムを表す図である。
【
図2】二値最適化問題に対する解を決定する一例示的な方法のフローチャートである。
【
図3】二値最適化問題に関連づけられた変数及びこの変数に対応するバイナリノードを表す図である。
【
図4】二値最適化問題に対する解を決定するために二値最適化問題に関連づけられた変数の値を反復的に更新する一例示的な方法のフローチャートである。
【
図5】インクリメンタル更新スキームを使用して1つ以上の候補解に基づいて二値最適化問題に対する解を選択する一例示的な方法のフローチャートである。
【
図6】インクリメンタル更新スキームを実施する一例示的な実施形態の図である。
【
図7】二値最適化問題に対する解を決定するために使用され得る一例示的なシステムである。
【発明を実施するための形態】
【0008】
いくつかのNP困難問題は、近似されたNP困難問題がより効率的に解かれ得るように、近似されることがある。NP困難問題を近似する1つのそのような方法は、入力変数を、バイナリノードを有する最適化問題に近似することである。二値最適化によるバイナリノードの最適化は、包括的なNP困難問題に対する解をもたらす可能性がある。広く研究されている二値最適化モデルは、二次制約なし二値最適化(quadratic unconstrained binary optimization、QUBO)問題であり、これは、量子アニーラアプローチなどの現在の方法で解決される可能性がある。しかしながら、QUBO問題や他の二値最適化問題を解く現在の方法は、少数の入力変数のみ受け入れる場合があり、かつ/あるいは変数の数が増えるときに二値最適化問題を解くのに大量の時間及び計算リソースを必要とする場合がある。
【0009】
組み合わせ最適化問題は、数学的最適化問題のサブセットであり、最適化の目的は、1つ以上の入力変数制約を所与として目的関数の1つ以上の最大値又は最小値を決定することである。組み合わせ最適化問題は、問題に対する有用な解を決定するための従来のブルートフォース手法が法外に制限的な可能性があるような、比較的多数の入力変数をしばしば提示する。組み合わせ最適化問題の一般的な例には、巡回セールスマン問題(travelling salesperson problem)やナップサック問題が含まれる。
【0010】
本開示に記載される実施形態は、組み合わせ最適化問題に対する解を決定することに関連し得る。本開示に記載されるいくつかの実施形態は、組み合わせ最適化問題を二値最適化問題として近似することにより、組み合わせ最適化問題に対する解を決定することに関連し得る。例えば、以下でさらに詳細に論じられるように、組み合わせ最適化問題の変数のサブセットを、組み合わせ最適化問題全体のサロゲート(surrogate)QUBOモデルとして動作し得るQUBOモデルとしての使用のために選択することができる。最適化問題に対する1つ以上の候補解をQUBOモデルにより決定することができ、最適化問題に対する解を1つ以上の候補解に基づいて決定することができる。例えば、候補解の品質を検証することは、候補解を組み合わせ最適化問題の1つ以上の所与の入力変数制約と比較することを含んでもよい。
【0011】
以下でさらに詳細に開示される変数のサブセットの選択は、サロゲートQUBOモデルを使用して、さもなければQUBOモデリングを使用して解決されなかった可能性のある組み合わせ最適化問題を解くことを可能にし得る。組み合わせ最適化問題を解くために、本開示で開示されるサロゲートQUBOモデリングを使用すると、組み合わせ最適化問題を正確に解く際のコンピューティングシステムの速度を向上させることができる。対照的に、組み合わせ最適化問題を解くいくつかの現在の手法は、問題を迅速に解く可能性があるが不正確な結果でより収束しやすい可能性があり、なぜならば、そのような最適化方法により決定される解は、局所的な最大値又は最小値で収束する可能性がより高いためである。さらに、より高品質の結果を提供する可能性のある、組み合わせ最適化問題を解く他の手法は、本開示に開示されるサロゲートQUBOモデリングを使用するのと比較して法外な時間がかかる可能性がある。さらに又は代わりに、本開示に開示されるサロゲートQUBOモデリングを使用すると、組み合わせ最適化問題を解き得るコンピューティングシステムにより使用される計算リソース数を減らすことができる。したがって、本開示の実施形態は、組み合わせ最適化問題を解くように構成されたコンピューティングシステムの効率を向上させるのに役立つ。
【0012】
本開示の実施形態は、添付の図面を参照して説明される。
【0013】
図1は、本開示の1つ以上の実施形態による、二値最適化問題に対する解を決定することに関連する例示的なシステム100の図である。システム100は、変数110、ハミルトニアン(Hamiltonian)最適化モジュール120、及び最適化解130を含むことができる。
【0014】
変数110は、組み合わせ最適化問題に対する1つ以上の候補解を決定する際に、ハミルトニアン最適化モジュール120により修正され得る最適化問題に関連する任意の入力変数を含むことができる。ハミルトニアン最適化モジュール120は、サロゲートQUBOモデルとしての使用のために変数110のサブセットを取得することができ、サロゲートQUBOモデルに対する1つ以上の候補解は、変数110の全てを含む組み合わせ最適化問題に対する潜在的な解を表すことができる。
【0015】
各変数110は、対応する値を含むことができる。最適化問題に対する解は、このセット内の変数の各々に対応する値を使用して最適化問題に対する解の品質を評価することができるような、変数110のサブセットを含むことができる。例えば、特定の最適化問題は、ナップサック問題などのリソース割り当て問題であってもよい。この特定の例では、最大重量キャパシティを有するナップサックが1つ以上のオブジェクトを保持することができ、1つ以上のオブジェクトの各々は重さと価値を割り当てられている。1つ以上のオブジェクトは1つ以上の変数110を表すことができ、ナップサック問題に対する解は、各オブジェクトの重さとナップサックの最大重量とに基づいてナップサックに保持され得るオブジェクトのセットにより表すことができる。ナップサック問題に対する解の品質は、セットに含まれる1つ以上のオブジェクトの各々に割り当てられた価値に基づいて計算されてもよい。
【0016】
目的関数値は、1つ以上の変数110の各々に基づいて計算することができる。目的関数は、最適化問題を解くために最大化又は最小化されるパラメータの定量的表現であってよい。いくつかの実施形態において、目的関数は、
図2に関連して以下でさらに詳細に論じられる巡回セールスマン問題における巡回距離などの、最小化されるべきコストでもよい。いくつかの実施形態において、目的関数は、上記で論じたナップサック問題で各オブジェクトに割り当てられた価値の合計などの、最大化されるべき値でもよい。
【0017】
変数110に対応する1つ以上の値を変更することは、目的関数値の変更を容易にし得る。1つ以上の変数110は、サロゲートQUBOモデルとしての使用のために変数110のサブセットとして選択することができる。変数110のサブセットは、組み合わせ最適化問題を解くことに関する各変数の影響に基づいて選択されてもよい。いくつかの場合に、組み合わせ最適化問題を解くことに関する特定の変数の影響は、特定の変数の値に行われた変更が目的関数値を変更する度合いに関連してもよい。例えば、特定の変数の変数値変更が目的関数値をより大きく変更させるほど、この特定の変数は組み合わせ最適化関数を解くことに対してより大きい影響を有し得る。したがって、いくつかの実施形態において、目的関数値に対する、1つ以上の変数110のうちの特定の変数の影響は、特定の変数に対応する変数値変更と、変数値変更に関連づけられた関数値変更とに基づいて決定されてもよい。
【0018】
いくつかの実施形態において、1つ以上の変数110に対応する変数値変更は、1つ以上のバイナリノード(binary nodes)により修正されて(modified)もよく、1つ以上のバイナリノードの各々は、対応するバイナリ値(binary value)を含む。これら及び他の実施形態において、1つ以上の変数110の各々に対応する値は、1つ以上の変数110の各々が2つの値のうちの1つを取り得るように、1つのバイナリノードにより修正されてもよい。例えば、1つのバイナリノードにより修正された特定の変数は、バイナリノードの第1のバイナリ値に対応する第1の値、又はバイナリノードの第2のバイナリ値に対応する第2の値を取ることができる。特定の変数は、バイナリノードのバイナリ値が0であることに応答して第1の値を取ることができ、特定の変数は、バイナリノードのバイナリ値が1であることに応答して第2の値を取ることができる。
【0019】
いくつかの実施形態において、変数110の各々に対応する値は、2つのバイナリノードにより修正されてもよい。これら及び他の実施形態において、変数110の各々は、初期値を有し、第1のバイナリノード112及び第2のバイナリノード114を割り当てられてもよい。第1のバイナリノード112と第2のバイナリノード114は、変数110の各々の初期値に対する変更を示すことができる。例えば、特定の変数に割り当てられた第1のバイナリノードは、所定の間隔による、特定の変数の初期値の増加を示してもよい。特定の変数に割り当てられた第2のバイナリノードは、所定の間隔による、特定の変数の初期値の減少を示してもよい。いくつかの実施形態において、変数110の各々に対応する値は、特定の変数に割り当てられた各バイナリノードが何らかのキャパシティで(in some capacity)特定の変数を修正するように、2つより多くのバイナリノードにより修正されてもよい。例えば、特定の変数が、第1のバイナリノード、第2のバイナリノード、第3のバイナリノード、及び第4のバイナリノードを割り当てられてもよい。第1のバイナリノードは、第1の間隔による、特定の変数の初期値の増加を示してもよく、第2のバイナリノードは、第1の間隔による、特定の変数の初期値の減少を示してもよい。第3のバイナリノードは、第2の間隔による、特定の変数の初期値の増加を示してもよく、第4のバイナリノードは、第2の間隔による、特定の変数の初期値の減少を示してもよい。
【0020】
ハミルトニアン最適化モジュール120は、コンピューティングシステムが1つ以上の動作を実行することを可能にするように構成されたコード及びルーチンを含むことができる。さらに又は代わりに、データオーグメンタ(data augmenter)は、プロセッサ、マイクロプロセッサ(例えば、1つ以上の動作を実行し又はその実行を制御するため)、フィールドプログラマブルゲートアレイ(FPGA)、又は特定用途向け集積回路(ASIC)を含むハードウェアを使用して実装されてもよい。いくつかの他の例において、ハミルトニアン最適化モジュール120は、ハードウェアとソフトウェアの組み合わせを使用して実装されてもよい。本開示において、ハミルトニアン最適化モジュール120により実行されると記載される動作は、ハミルトニアン最適化モジュール120が対応するシステムに実行するよう指示し得る動作を含むことができる。ハミルトニアン最適化モジュール120は、少なくとも
図2、
図3、又は
図5の方法200、300、又は500それぞれに関連して以下にさらに詳細に記載されるように、1つ以上の変数110に関して一連の動作を実行するように構成することができる。
【0021】
いくつかの実施形態において、ハミルトニアン最適化モジュール120は、少なくとも
図2に関連して以下に説明する例示的な方法に従って、サロゲートQUBOモデルを解くように構成することができる。いくつかの実施形態において、ハミルトニアン最適化モジュール120は、サロゲートQUBOモデルへの入力としてハミルトニアン最適化モジュール120により取得される1つ以上の変数110に基づいて、1つ以上の候補最適化解130を出力するように構成されてもよい。サロゲートQUBOモデルを解くことは、候補最適化解130などの1つ以上の候補解を結果としてもたらし得る。1つ以上の候補最適化解130を、最適化問題に関連づけられた制約と比較して、候補最適化解130の品質を評価し、かつ/あるいは候補最適化解130に基づいて組み合わせ最適化問題に対する解を決定することができる。サロゲートQUBOモデルのための変数110のサブセットの選択、1つ以上の候補解の決定、及び組み合わせ最適化問題に対する解の決定については、
図2に関連して以下で詳細に説明する。
【0022】
本開示の範囲から逸脱することなく、システム100に対して修正、追加、又は省略が行われ得る。例えば、記載される方法における異なる要素の指定は、本明細書に記載される概念を説明するのに役立つことを意図しており、制限するものではない。例えば、いくつかの実施形態において、変数110、ハミルトニアン最適化モジュール120、及び候補最適化解130は、本明細書に記載される概念を説明するのに役立つように記載された特定の方法で記述されているが、そのような記述は、制限することを意図していない。さらに、システム100は、任意の数の他の要素を含んでもよく、あるいは記載されたもの以外のシステム又は文脈内で実施されてもよい。
【0023】
図2は、本開示の少なくとも1つの実施形態による、二値最適化問題に対する解を決定する例示的な方法200のフローチャートである。方法200は、任意の適切なシステム、装置、又はデバイスにより実行することができる。例えば、ハミルトニアン最適化モジュール120は、方法200に関連づけられた動作の1つ以上を実行してもよい。個別のブロックで示されているが、方法200のブロックの1つ以上に関連づけられたステップ及び動作は、特定の実装に応じてさらなるブロックに分割されてもよく、より少ないブロックに結合されてもよく、あるいは削除されてもよい。
【0024】
方法200はブロック210で始めることができ、ブロック210において、1つ以上の変数が識別され得る。いくつかの実施形態において、1つ以上の変数の識別は、最適化問題を定義するユーザによって容易にされてもよい。ユーザは、候補解の目的関数に関連づけられた最適化パラメータ及び制約を決定することにより、最適化問題を定義することができる。最適化問題のパラメータ及び制約に基づいて、パラメータ及び制約に関連する入力変数を識別することができる。例えば、巡回セールスマン問題は、セールスマンが巡回しようとしているルートの最適化を含み得る。ユーザは、セールスマンが巡回する都市の数を決定することができる。さらに又は代わりに、ユーザは、最小量の距離を有するルートに基づいて特定の最適化されたルートが決定され得ることを決めてもよい。この特定の例において、ユーザは、最適化パラメータを、巡回距離を最小化することに決定した。ユーザは、巡回セールスマン問題に関連する1つ以上の特定の変数を、都市の各々の間のあらゆる可能なペアリングを含むものとして識別してもよい。識別された変数の各々に対応する値は、各都市ペアリングに含まれる都市間の距離を含むことができる。
【0025】
ブロック220において、目的関数値が計算され得る。目的関数値は、
図1に関連して上記で説明したように、1つ以上の識別された変数に関連づけられた初期値に基づいて計算された目的関数の値でもよい。
【0026】
ブロック230において、変数のうちの1つ以上に関連づけられた初期値が変更され得る。1つ以上の変数値変更の各々は、関数値変更に影響し得る。いくつかの実施形態において、1つ以上の変数値変更の各々は、1つ以上の変数に関連づけられた初期値のうちの異なる1つに行われた同じ変更を含むことができる。さらに又は代わりに、1つ以上の変数値変更は、1つ以上の変数に関連づけられた初期値の各々に行われた異なる変数値変更を含んでもよい。これら及び他の実施形態において、1つ以上の変数に関連づけられた初期値の各々に行われた異なる変数値変更に影響する1つ以上の変数値変更は、1つ以上の変数の各々に行われた同じパーセンテージの変更を含んでもよい。いくつかの実施形態において、1つ以上の変数値変更は、1つ以上のバイナリノードを使用して決定されてもよい。これら及び他の実施形態において、1つ以上の変数の各々に、1つ以上のバイナリノードが割り当てられてもよい。各変数への1つ以上のバイナリノードの割り当て、及び変数値変更の決定は、
図1及び
図3に関連して説明されているように発生し得る。
【0027】
図3は、本開示の1つ以上の実施形態による、特定の変数とこの変数に関連づけられた2つの特定のバイナリノードとの例を、特定の変数・ノードグルーピング300として示す。変数・ノードグルーピング300は、変数310、第1のバイナリノード320、及び第2のバイナリノード330を含むことができる。変数310は、二値最適化問題に対応し、
図3においてx
iで表されるように初期値を有することができる。第1のバイナリノード320は、ステップ340による変数310の値のインクリメントを表し、
図3においてδ
2i-1で表されるように第1のバイナリ値325を有することができる。第1のバイナリ値325は、{0, 1}内の値でもよい。例えば、特定の第1のバイナリ値は、0の値を取ることができる。第2の特定の第1のバイナリ値は、1の値を取ることができる。第2のバイナリノード330は、ステップ340による変数310の値のデクリメントを表し、
図3においてδ
2iで表されるように第2のバイナリ値335を有することができる。第2のバイナリ値335は、{0, 1}内の値でもよい。例えば、特定の第2のバイナリ値は、0の値を取ることができる。第2の特定の第2のバイナリ値は、1の値を取ることができる。
【0028】
第1のバイナリ値325及び第2のバイナリ値335が各々、{0, 1}内の2つの値のうちの1つを取り得るため、第1のバイナリノード320と第2のバイナリノード330とを含む変数310は、バイナリノード値の4つの可能な組み合わせのうちの1つを含むことができる。第1の組み合わせが、1の第1のバイナリ値325を有する第1のバイナリノード320と、0の第2のバイナリ値335を有する第2のバイナリノード330とを含んでもよい。バイナリノード値の第1の組み合わせを有する特定の変数は、特定の変数に対応する初期値がステップ340などの特定のステップだけインクリメントされることを示してもよい。第2の組み合わせが、1の第1のバイナリ値325を有する第1のバイナリノード320と、1の第2のバイナリ値335を有する第2のバイナリノード330とを含んでもよい。バイナリノード値の第2の組み合わせを有する特定の変数は、特定の変数に対応する初期値が変更されないことを示してもよい。第3の組み合わせが、0の第1のバイナリ値325を有する第1のバイナリノード320と、0の第2のバイナリ値335を有する第2のバイナリノード330とを含んでもよい。バイナリノード値の第3の組み合わせを有する特定の変数は、特定の変数に対応する初期値が変更されないことを示してもよい。第4の組み合わせが、1の第1のバイナリ値325を有する第1のバイナリノード320と、1の第2のバイナリ値335を有する第2のバイナリノード330とを含んでもよい。バイナリノード値の第4の組み合わせを有する特定の変数は、特定の変数に対応する初期値がステップ340などの特定のステップだけデクリメントされることを示してもよい。例えば、特定の変数は、xiの初期値と、1の第1のバイナリ値を有する第1のバイナリノードと、0の第2のバイナリ値を有する第2のバイナリノードとを有することができる。この特定の変数に関連づけられた特定のステップは、sでもよい。特定の変数に対応する初期値は、特定の変数の値がxi+sになるようにインクリメントすることができる。
【0029】
いくつかの実施形態において、変数値変更は、1つ以上の変数に対応する1つ以上のバイナリノードに関連づけられたバイナリ値を反転することにより計算されてもよい。各変数に1つのバイナリノードが割り当てられているいくつかの実施形態において、各変数に割り当てられたバイナリノードの各々が反転されてもよい。さらに又は代わりに、1つの変数に割り当てられたバイナリノードのうちの1つのみが反転されてもよい。各変数に第1のバイナリノード及び第2のバイナリノードが割り当てられているいくつかの実施形態において、各変数に割り当てられた第1のバイナリノードの各々が反転されてもよく、一方で、第2のバイナリノードの各々は反転されない。さらに又は代わりに、各変数に割り当てられた第2のバイナリノードの各々が反転されてもよく、一方で、第1のバイナリノードの各々は反転されない。
【0030】
図2に戻り、ブロック240において、変数値変更に基づいて1つ以上の関数値変更が計算され得る。いくつかの実施形態において、目的関数値は、1つ以上の関数値変更を決定するために、変数値変更に基づいて再計算することができる。これら及び他の実施形態において、1つ以上の関数値変更は、再計算された目的関数値と目的関数値とに基づいて計算することができる。
【0031】
例えば、目的関数値は、所与の第1の変数、所与の第2の変数、及び所与の第3の変数に基づいて計算されてもよい。目的関数値に対する、所与の第1の変数の影響は、所与の第1の変数の値を第1の変数値変更により変更することによって決定することができる。目的関数値を、所与の第1の変数の変更値(これは第1の変数値変更に従って変更される)と、所与の第2の変数と、所与の第3の変数とに基づいて再計算して、第1の更新された目的関数値を決定することができる。第1の関数値変更は、第1の更新された目的関数値と目的関数値とに基づいて(例えば、第1の更新された目的関数値と目的関数値との間の差に基づいて)計算することができる。同様に、目的関数値に対する、所与の第2の変数の影響は、所与の第1の変数をその前の値に戻し、所与の第2の変数の値を第2の変数値変更により変更することによって決定されてもよい。目的関数値を、所与の第1の変数と、所与の第2の変数の変更値(これは第2の変数値変更に従って変更される)と、所与の第3の変数とに基づいて再計算して、第2の更新された目的関数値を決定することができる。第2の関数値変更は、第2の更新された目的関数値と目的関数値に基づいて計算することができる。
【0032】
ブロック250において、変数のサブセットが最適化のために選択され得る。変数のサブセットの選択は、目的関数値、関数値変更、及び/又は変数値変更に依存することができる。いくつかの実施形態において、変数は、各変数に関連づけられた変数値変更に対応する関数値変更に従ってソートされてもよい。例えば、第1の変数の初期値のみの変更を示す変数値変更は、第1の関数値変更に影響し得、第2の変数の初期値のみの変更を示す変数値変更は、第2の関数値変更に影響し得る。これら及び他の実施形態において、変数は、最大の関数値変更から最小の関数値変更へソートされてもよい。これら及び他の実施形態において、最小の関数値変更に関連づけられた変数が、最適化のためのサブセットとして選択されてもよい。いくつかの実施形態において、最適化のためのサブセットに含まれる変数の数は、ユーザによって及び/又はランク付けルールに従って決定されてもよい。例えば、ユーザは、選択される特定の数の変数が、ある絶対数の変数、総数のうちあるパーセンテージの変数、又は所定の関数値変更閾値と等しいか、それより大きいか、又はそれより小さい関数値変更を有する任意の変数であると決定することができる。
【0033】
ブロック260において、選択された変数のサブセットに基づいて、二値最適化問題に対する1つ以上の候補解が決定され得る。各候補解は、各解値が二値最適化問題の異なる変数に関連づけられた値に対応する、解値のセットを含むことができる。二値最適化問題に対する候補解は、ブロック250で選択された変数のサブセットに含まれない各変数の値を、値が最適化プロセスの間に変わらないように固定することと、選択された変数のサブセットをサロゲート二次制約なし二値(QUBO)問題としてモデル化することとにより決定することができる。
【0034】
いくつかの実施形態において、QUBO問題を解くことは、二次擬似ブール関数(quadratic pseudo-boolean function)f(δ
1,δ
2,...δ
n)を最小化することを含んでもよく、以下に示すように、サロゲートQUBOモデルに対する1つ以上の候補解を提供することができる。
【数1】
上記の二次擬似ブール関数において、δ
1は、{0, 1}内の値を取る二値変数を表すことができる。W
ijは、変数δ
iとδ
jとの間の接続強度を表すことができ、b
iは、δ
i変数のバイアス項であってよい。さらに又は代わりに、QUBO問題を解くことは、以下に示すように、接続強度W
ij及びバイアス項b
iの符号を反転することにより二次擬似ブール関数を最大化することを含んでもよい。
【数2】
【0035】
サロゲートQUBOモデルは、選択された変数のサブセットと、選択された変数のサブセットのすぐ近隣(immediate neighborhood)における変数とを含むモデルでもよい。選択された変数のサブセットのすぐ近隣は、選択された変数のサブセットから2ビット以下のハミング距離内の変数を含んでもよい。2つの特定の変数間のハミング距離は、2つの特定の変数の各々をビットストリングとして表し、2つのビットストリング間における異なるビット数を決定することにより計算することができる。
【0036】
サロゲートQUBOモデルを解くことは、マルコフ連鎖モンテカルロ(Markov chain Monte Carlo、MCMC)探索を使用することにより容易にされてもよい。MCMC探索は、二次擬似ブール関数をマルコフ連鎖として表すことと、二次擬似ブール関数の確率的サンプリングを、擬似ブール関数に対応する1つ以上の最小値が決定されるまで実行することを含んでもよい。最適化問題を解く現在の方法は、極小又は極大の存在に起因して非最適解で収束しやすい可能性がある一方で、MCMC探索は潜在的な極小又は極大を逃れる可能性があり、なぜならば、MCMC探索の確率的サンプリングは、収束問題が発生するのを防ぐ可能性があるためである。
【0037】
ブロック270において、1つ以上の候補解に基づいて、二値最適化問題に対する解が決定され得る。二値最適化問題に対する解は、1つ以上の候補解の各々が最適化問題に課された制約をどれ程良く満たしているかに基づいて、1つ以上の候補解から選択することができる。いくつかの実施形態において、変数の各々が最適化問題の制約をどれ程良く満たしているかに応じて、特定の候補解に含まれる変数の各々に、ペナルティ値が割り当てられてもよい。さらに又は代わりに、変数の各々に割り当てられたペナルティ値に基づいて、ペナルティスコアが計算されてもよく、ペナルティスコアに基づいて、二値最適化問題に対する解が決定されてもよい。1つ以上の候補解の各々に関連づけられたペナルティ値及び/又はペナルティスコアに基づく、二値最適化問題に対する解の決定は、
図5に関連して以下でさらに詳細に記載されるように達成することができる。
【0038】
本開示の範囲から逸脱することなく、方法200に対して修正、追加、又は省略が行われ得る。例えば、記載される方法における異なる要素の指定は、本明細書に記載される概念を説明するのに役立つことを意図しており、制限するものではない。さらに、方法200は、任意の数の他の要素を含んでもよく、あるいは記載されたもの以外のシステム又は文脈内で実施されてもよい。
【0039】
図4は、本開示の1つ以上の実施形態による、二値最適化問題に対する解を決定するために、二値最適化問題に関連づけられた変数の値を反復的に更新する例示的な方法400のフローチャートである。方法400は、任意の適切なシステム、装置、又はデバイスにより実行することができる。例えば、ハミルトニアン最適化モジュール120を含むシステム100は、方法400に関連づけられた動作の1つ以上を実行してもよい。個別のブロックで示されているが、方法400のブロックの1つ以上に関連づけられたステップ及び動作は、特定の実装に応じてさらなるブロックに分割されてもよく、より少ないブロックに結合されてもよく、あるいは削除されてもよい。
【0040】
方法400は、ブロック410において始まる反復的な方法を含むことができ、ブロック410において、1つ以上の候補解に基づいて、二値最適化問題に対する解が決定され得る。いくつかの実施形態において、方法400は、指定された時間及び/又は反復回数の間、反復することができる。例えば、方法400は10分間反復してもよく、かつ/あるいは、方法400は10回のループにより反復してもよい。さらに又は代わりに、方法400の繰り返しは、変数の初期値及び/又は変数の初期値に関連づけられた目的関数値における変更に基づいてもよい。例えば、方法400の繰り返しは、目的関数値がその初期値の10%だけ変わるまで継続してもよい。
【0041】
ブロック410において、二値最適化問題に対する解を決定することは、
図2の方法200のブロック270で二値最適化問題に対する解を決定することに関連して説明されたのと同じ又は類似のプロセスでもよい。
【0042】
ブロック420において、各変数の更新された初期値を決定するために、ブロック410で決定された解に基づいて、各変数の初期値が更新され得る。いくつかの実施形態において、ブロック410で決定された二値最適化問題に対する解を、向上させてもよい。二値最適化問題に対する解が、二値最適化問題に関連づけられた変数の初期値に部分的に依存するため、決定された解を使用して初期値を更新することは、MCMC探索により出力される解の品質を向上させる可能性がある。いくつかの実施形態において、各変数の初期値は、決定された解における各変数に関連づけられた値を各変数の更新された初期値として取ることにより、更新されてもよい。さらに又は代わりに、各変数の初期値は、決定された解における各変数に関連づけられた値を取得することと、決定された解における各変数の値に関連づけられた所定の重みに基づいて初期値を調整することとにより、更新されてもよい。
【0043】
ブロック430において、更新された目的関数値を決定するために、各変数に対応する更新された初期値に基づいて、目的関数値が再計算され得る。更新された目的関数値の計算は、方法200のブロック220における初期値を、各変数に対応する更新された初期値で置き換えて、ブロック220における目的関数値を計算することに関連して説明されたのと同じ又は類似のプロセスにより容易にすることができる。
【0044】
ブロック440において、更新された目的関数値に基づいて、変数の更新されたサブセットが選択され得る。更新された変数のサブセットの選択は、
図2の方法200のブロック250における変数のサブセットを選択することに関連して説明されたのと同じ又は類似のプロセスにより容易にすることができる。
【0045】
ブロック450において、ブロック440で選択された更新された変数のサブセットに基づいて、1つ以上の候補解が決定され得る。1つ以上の候補解の決定は、
図2の方法200のブロック260における1つ以上の候補解を決定することに関連して説明されたのと同じ又は類似のプロセスでもよい。
【0046】
本開示の範囲から逸脱することなく、方法400に対して修正、追加、又は省略が行われ得る。例えば、記載される方法における異なる要素の指定は、本明細書に記載される概念を説明するのに役立つことを意図しており、制限するものではない。さらに、方法400は、任意の数の他の要素を含んでもよく、あるいは記載されたもの以外のシステム又は文脈内で実施されてもよい。
【0047】
図5は、本開示の1つ以上の実施形態による、二値最適化問題に対する1つ以上の候補解に基づいて二値最適化問題に対する解を決定する例示的な方法500のフローチャートである。いくつかの実施形態において、方法500に含まれるステップは、方法200の間のさらなるステップとして実行することができる。例えば、方法500は、ブロック270における1つ以上の候補解に基づいて解を決定することに関連して、又はその代替として実行されてもよい。方法500は、任意の適切なシステム、装置、又はデバイスにより実行することができる。例えば、ハミルトニアン最適化モジュール120を含むシステム100は、方法500に関連づけられた動作の1つ以上を実行してもよい。個別のブロックで示されているが、方法500のブロックの1つ以上に関連づけられたステップ及び動作は、特定の実装に応じてさらなるブロックに分割されてもよく、より少ないブロックに結合されてもよく、あるいは削除されてもよい。
【0048】
方法500はブロック510で始めることができ、ブロック510において、変数のうちの1つ以上に関連づけられた1つ以上の制約が決定され得る。1つ以上の制約は、最適化問題の特性に関連してもよく、最適化問題の特性は、二値最適化問題の1つ以上の変数により表される。制約は、1つ以上の変数に対する所定の制限でもよい。いくつかの実施形態において、制約のうちの1つ以上は、特定の変数に関連づけられた特定の上限制約より大きい値を有する特定の変数がペナルティを科され得るような上限制約でもよい。さらに又は代わりに、制約のうちの1つ以上は、特定の変数に関連づけられた特定の下限制約より小さい値を有する特定の変数がペナルティを科され得るような下限制約でもよい。さらに又は代わりに、制約のうちの1つ以上は、特定の変数に関連づけられた特定の等式制約(equality constraint)と等しくない値を有する特定の変数がペナルティを科され得るような等式制約でもよい。これら及び他の実施形態において、1つ以上の制約の各々に対応する制限タイプ及び/又は値は、最適化問題の特性に関連する目標値に基づいて決定されてもよい。
【0049】
ブロック520において、1つ以上の候補解の各々に対応する解値のセットが制約と比較され得、この比較に基づいてペナルティ値が計算され得る。特定の解値のセットのうちの解値の各々、及び/又は各制約は、対応する解値及び制約を含む各変数に対してペナルティ値が計算され得るように、異なる変数に関連づけることができる。いくつかの実施形態において、ペナルティ値は、解値とそれぞれの制約との間の差の度合いに基づいて計算されてもよい。例えば、特定の変数に関連する解値は、第1の値を有することができ、一方で、特定の変数に関連する制約は、第2の値が閾値を表すように、特定の変数の値が第2の値以上であるべきであると指定することができる。このような例において、制約は、特定の変数の値が第2の値以下であることに応答してペナルティ値が計算され得るため、下限制約と見なされてもよい。さらに又は代わりに、制約は、上限制約に対応する解値が制約に関連づけられた閾値以上であることに応答してペナルティ値が計算され得る上限制約を含んでもよい。さらに又は代わりに、制約は、解値が等式制約に等しくないことに応答してペナルティ値が計算され得る等式制約を含んでもよい。これら及び他の実施形態において、変数の各々に関連づけられた1つ以上の制約に基づいて、各変数に対してペナルティ値が計算されてもよい。例えば、特定の候補解の特定の変数が、第1の閾値を有する第1の上限制約と、第2の閾値を有する第2の下限制約を含んでもよい。この例では、特定の変数に対応する解値が第1の閾値より大きい、及び/又は第2の閾値より小さいことに応答して、特定の変数に対してペナルティ値を計算することができる。
【0050】
ブロック530において、ペナルティスコアが計算され得る。ペナルティスコアは、特定の候補解が二値最適化問題の制約をどれ程良く満たしているかを表す数値ヒューリスティックであってよい。ペナルティスコアは、ブロック520で決定されたペナルティ値に基づいて計算することができる。いくつかの実施形態において、ペナルティスコアは、1つ以上のペナルティ値の2乗和でもよい。これら及び他の実施形態において、ペナルティスコアに関連づけられた特定のペナルティ値が、ペナルティスコアを計算する際に特定のペナルティ値がより大きい又は小さい影響を有するように、重みづけされてもよい。
【0051】
ブロック540において、1つ以上の候補解の各々に関連づけられたペナルティスコアに基づいて、1つ以上の候補解から、二値最適化問題に対する解が選択され得る。いくつかの実施形態において、二値最適化問題に対する解として選択された候補解は、選択された候補解が他の1つ以上の候補解と比べて二値最適化問題の制約を満たすことに最も近い解値のセットを含むことを示す、最も低いペナルティスコアを有する候補解でもよい。さらに又は代わりに、二値最適化問題に対する解の選択は、複数の候補解を選択することを含んでもよい。複数の候補解を選択することは、ユーザが、選択された候補解のうちいずれが二値最適化問題に対するより適切な解であるかを決めることを可能にし得る。これら及び他の実施形態において、1つ以上の候補解は、ユーザが二値最適化問題に対する1つ以上の解を選択することができるように、候補解の各々に関連づけられたペナルティスコアに基づいて順序付けられたリストで返されてもよい。
【0052】
本開示の範囲から逸脱することなく、方法500に対して修正、追加、又は省略が行われ得る。例えば、記載される方法における異なる要素の指定は、本明細書に記載される概念を説明するのに役立つことを意図しており、制限するものではない。さらに、方法500は、任意の数の他の要素を含んでもよく、あるいは記載されたもの以外のシステム又は文脈内で実施されてもよい。
【0053】
図6は、強度変調放射線治療(Intensity-Modulated Radiation Therapy)のためのリスクのある腫瘍及び臓器の照射に関連する特定の二値最適化問題に対する特定の目的を表す線量体積ヒストグラム(dose-volume histogram、DVH)を示す一例示的なグラフ600を示す。ペナルティスコアは、方法500などの本開示に記載されている方法及びシステムに従って、グラフ600に基づいて計算することができる。
【0054】
グラフ600は、組織体積を放射線量の関数として表すことができる。いくつかの実施形態において、組織体積は、総組織体積のうちのあるパーセンテージとして定量化されてもよい。これら及び他の実施形態において、放射線量は、グレイ(Gy)単位で定量化されてもよい。グラフ600は、ΔDで表される線量の変更620が、ΔVで表される組織体積の対応する変更630に基づいて評価及び/又は調整される、初期DVH610を含むことができる。線量の変更620は、
図2のMCMC探索方法に関連して上述したように、二値探索方法を使用して計算されてもよい。例えば、線量の変更620は、特定の線量についての組織体積の変更630を反復的に計算することと、組織体積の変更630がゼロになるまで特定の線量を調整することとにより計算することができる。いくつかの実施形態において、組織体積の変更630は、線量堆積行列と現在の放射線ビーム強度値を表すベクトルとに基づいて計算されてもよい。線量堆積行列と強度ベクトルを乗算して、線量ベクトルとして表される組織の各ボクセルで受ける総線量を決定することができる。線量ベクトルは、線量目的値を表すベクトルと比較することができ、より大きい線量を含むボクセルの数を決定することができる。線量の変更620と組織体積の変更630に基づいて、最適化されたDVH640を決定することができる。
【0055】
図7は、本開示に記載される少なくとも1つの実施形態による例示的なコンピューティングシステム700を示す。コンピューティングシステム700は、プロセッサ710、メモリ720、データストレージ730、及び/又は通信ユニット740を含むことができ、これらは全て、通信上結合することができる。
図1のシステム100のいずれか又は全てが、変数110、第1のバイナリノード112、第2のバイナリノード114、ハミルトニアン最適化モジュール120、及び/又は最適化解130を含む、コンピューティングシステム700と矛盾しないコンピューティングシステムとして実装されてもよい。
【0056】
一般に、プロセッサ710は、様々なコンピュータハードウェア又はソフトウェアモジュールを含む任意の適切な専用又は汎用コンピュータ、コンピューティングエンティティ、又は処理デバイスを含むことができ、任意の適用可能なコンピュータ読取可能記憶媒体に記憶された命令を実行するように構成することができる。例えば、プロセッサ710は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又は、プログラム命令を解釈及び/又は実行し、及び/又はデータを処理するように構成された任意の他のデジタル又はアナログ回路を含んでもよい。
【0057】
図7では単一のプロセッサとして示されているが、プロセッサ710は、本開示に記載される任意の数の動作を個々に又は集合的に実行するように構成された任意の数のネットワーク又は物理的な場所にわたり分散された任意の数のプロセッサを含んでもよいことが理解される。いくつかの実施形態において、プロセッサ710は、メモリ720、データストレージ730、又はメモリ720及びデータストレージ730に記憶されたプログラム命令を解釈及び/又は実行し、及び/又はデータを処理することができる。いくつかの実施形態において、プロセッサ710は、データストレージ730からプログラム命令を取り出し、メモリ720にプログラム命令をロードすることができる。
【0058】
プログラム命令がメモリ720にロードされた後、プロセッサ710は、
図2、
図4、及び
図5の方法200、400及び/又は500それぞれのいずれかを実行する命令などのプログラム命令を実行することができる。例えば、プロセッサ710は、最適化問題に対応する変数を識別し、各変数に1つ以上のバイナリノードを割り当て、目的関数値を計算し、サロゲートQUBOモデルを使用して最適化問題に対する1つ以上の候補解を決定し、及び/又は1つ以上の候補解に基づいて最適化問題に対する解を決定することができる。
【0059】
メモリ720及びデータストレージ730は、記憶されたコンピュータ実行可能命令又はデータ構造を運び又は有するコンピュータ読取可能記憶媒体又は1つ以上のコンピュータ読取可能記憶媒体を含むことができる。このようなコンピュータ読取可能記憶媒体は、プロセッサ710などの汎用又は専用コンピュータによりアクセスできる任意の利用可能な媒体でもよい。例えば、メモリ720及び/又はデータストレージ730は、得られた変数(
図1の変数110、第1のバイナリノード112、及び/又は第2のバイナリノード114など)を記憶することができる。いくつかの実施形態において、コンピューティングシステム700は、メモリ720及びデータストレージ730のいずれかを含んでもよく、あるいはそうでなくてもよい。
【0060】
限定でなく例として、そのようなコンピュータ読取可能記憶媒体は、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、電気的消去可能プログラマブル読取専用メモリ(EEPROM)、コンパクトディスク読取専用メモリ(CD-ROM)又は他の光ディスク記憶装置、磁気ディスク記憶装置又は他の磁気記憶デバイス、フラッシュメモリデバイス(例えば、ソリッドステートメモリデバイス)、又はコンピュータ実行可能命令又はデータ構造の形で所望のプログラムコードを運び又は記憶するために使用でき、かつ汎用又は専用コンピュータによりアクセスできる任意の他の記憶媒体を含む、非一時的コンピュータ読取可能記憶媒体を含んでもよい。上記の組み合わせもまた、コンピュータ読取可能記憶媒体の範囲に含まれてもよい。コンピュータ実行可能命令は、例えば、プロセッサ710に特定の動作又は動作のグループを実行させるように構成された命令及びデータを含んでもよい。
【0061】
通信ユニット740は、ネットワークを介して情報を送受信するように構成された任意のコンポーネント、デバイス、システム、又はこれらの組み合わせを含むことができる。いくつかの実施形態において、通信ユニット740は、他の場所、同じ場所における他のデバイス、又はさらには同じシステム内の他のコンポーネントと通信することができる。例えば、通信ユニット740は、モデム、ネットワークカード(無線又は有線)、光通信デバイス、赤外線通信デバイス、無線通信デバイス(アンテナなど)、及び/又はチップセット(Bluetooth(登録商標)デバイス、802.6デバイス(例えば、メトロポリタンエリアネットワーク(MAN))、WiFiデバイス、WiMaxデバイス、セルラー通信設備など)などを含んでもよい。通信ユニット740は、ネットワーク及び/又は本開示に記載される任意の他のデバイス又はシステムとの間でデータを交換することを可能にし得る。例えば、通信ユニット740は、システム700がコンピューティングデバイス及び/又は他のネットワークなどの他のシステムと通信することを可能にしてもよい。
【0062】
当業者は、本開示を検討した後、本開示の範囲から逸脱することなくシステム700に対して修正、追加、又は省略が行われ得ることを認識し得る。例えば、システム700は、明示的に例示及び記載されているコンポーネントよりも多くの又は少ないコンポーネントを含んでもよい。
【0063】
本開示に記載された実施形態は、様々なコンピュータハードウェア又はソフトウェアモジュールを含む専用又は汎用コンピュータの使用を含むことができる。さらに、本開示に記載された実施形態は、記憶されたコンピュータ実行可能命令又はデータ構造を運び又は有するコンピュータ読取可能媒体を使用して実施されてもよい。
【0064】
本開示で、特に添付の特許請求の範囲(例えば、添付された請求項の本文)で使用されている用語は、一般的に「開放的な用語」を意図している(例えば、用語「含む」は、「含むがこれに限定されない。」と解釈されるべきである)。
【0065】
さらに、特定の数の導入された請求項の記載が意図されている場合、そのような意図は請求項において明示的に記載され、そのような記載がない場合、そのような意図は存在しない。例えば、理解の助けとして、以下の添付された請求項は、請求項の記載を導入するための導入句「少なくとも1つの」及び「1つ以上の」の使用を含むことがある。しかしながら、そのような句の使用は、同じ請求項が導入句「1つ以上の」又は「少なくとも1つ」と「a」又は「an」などの不定冠詞とを含むときでも、不定冠詞「a」又は「an」による請求項の記載の導入がそのような導入の請求項記載を含む特定の請求項を1つのそのような記載のみを含む実施形態に限定することを示すものと解釈されるべきではない(例えば、「a」及び/又は「an」は、「少なくとも1つの」又は「1つ以上の」を意味すると解釈されるべきである)。請求項の記載を導入するために使用される定冠詞の使用についても同様である。
【0066】
さらに、特定の数の導入の請求項記載が明示的に記載されている場合でも、当業者は、そのような記載が少なくとも記載された数を意味すると解釈されるべきであることを認識するであろう(例えば、他の修飾語のない「2つの記載」というただそれだけの記載は、少なくとも2つの記載、又は2つ以上の記載を意味する)。さらに、「A、B、及びC等のうちの少なくとも1つ」又は「A、B、及びC等のうちの1つ以上」に類似した規定が用いられる例においては、一般に、そのような構成は、A単独で、B単独で、C単独で、AとBを一緒に、AとCを一緒に、BとCを一緒に、又はAとBとCを一緒に、などを含むことを意図している。
【0067】
さらに、2つ以上の代替的な用語の前にある選言的な単語又は句は、明細書か、特許請求の範囲か、又は図面かに関わらず、用語の1つ、用語のいずれか、又は用語の双方を含む可能性を考慮するものと理解されるべきである。例えば、句「A又はB」は、「A」又は「B」又は「AとB」の可能性を含むものと理解されるべきである。
【0068】
本開示に記載されている全ての例及び条件付き言語は、本開示及び本発明者が当該分野を促進するために貢献した概念を理解する際に読者を助けるための教育的目的を意図しており、このような具体的に記載されている例及び条件に限定されないものとして解釈されるべきである。本開示の実施形態が詳細に説明されたが、本開示の主旨及び範囲から逸脱することなく様々な変更、置換、及び改変をこれらに行うことができる。
上記の実施形態につき以下の付記を残しておく。
(付記1)
最適化問題に対応する複数の変数を識別するステップであり、前記複数の変数の各変数は対応する初期値を有する、ステップと、
前記複数の変数の前記初期値に基づいて目的関数値を計算するステップと、
前記目的関数値の複数の関数値変更を計算するステップであり、前記複数の関数値変更の各関数値変更は、複数の変数値変更のうちの異なる1つに基づいて計算され、前記変数値変更の各々は、前記初期値のうちの異なる1つに行われたそれぞれの変更に対応する、ステップと、
前記変数のサブセットを、前記変数のサブセットのうちの前記変数のそれぞれの初期値に行われた対応する変数値変更に対応するそれぞれの関数値変更に基づいて、選択するステップと、
前記選択された変数のサブセットを使用して前記最適化問題のサロゲート二次制約なし二値最適化(QUBO)モデルを生成するステップと、
前記サロゲートQUBOモデルを使用して前記最適化問題に対する1つ以上の候補解を決定するステップであり、前記1つ以上の候補解の各々は解値のセットを含み、前記解値のセットのうちの前記解値の各々は、前記複数の変数のうちの異なる変数に対応する、ステップと、
前記1つ以上の候補解に基づいて前記最適化問題に対する解を決定するステップと、
を含む方法。
(付記2)
前記最適化問題に対する前記解と各変数の対応する初期値とに基づいて、各変数に関連づけられた更新された値を決定するステップと、
前記更新された値に基づいて前記変数の第2のサブセットを選択するステップと、
前記変数の前記第2のサブセットに基づいて前記サロゲートQUBOモデルを使用して前記最適化問題に対する1つ以上の第2の候補解を決定するステップと、
前記1つ以上の第2の候補解に基づいて前記最適化問題に対する第2の解を決定するステップと、
をさらに含む付記1に記載の方法。
(付記3)
前記変数値変更に基づいて前記目的関数値の前記複数の関数値変更を計算することは、
各変数に1つ以上のバイナリノードを割り当てることであり、各バイナリノードはバイナリ値を有し、前記バイナリ値は、前記バイナリ値に関連づけられた前記変数の初期値の変更を示す、ことと、
前記変数のうちの1つ以上に関連づけられた前記バイナリノードに対応する1つ以上のバイナリ値を反転することと、
前記変数の前記初期値と前記1つ以上の反転されたバイナリ値とに基づいて前記変数値変更を計算することと、
前記変数値変更に基づいて前記複数のうちの関数値変更を計算することと、
を含む、付記1に記載の方法。
(付記4)
前記複数の変数値変更の各変数値変更は、前記初期値のうちの異なる1つに行われた同じ変更に対応し、前記変数のサブセットを選択することは、
前記初期値のうちの異なる1つに行われた変数値変更に基づいて前記目的関数値の前記複数の関数値変更を計算することと、
前記変数を、前記関数値変更と前記変数のうちの各々の初期値に行われたそれぞれの変更とに基づいてソートすることと、
前記ソートに基づいて前記変数の前記サブセットを選択することと、
を含む、付記1に記載の方法。
(付記5)
前記サロゲートQUBOモデルを使用して前記最適化問題に対する1つ以上の候補解を決定することは、
少なくとも1つの変数又は前記目的関数値に関連づけられた制約を決定することであり、前記制約は、前記少なくとも1つの変数の値に対応する制限、又は前記目的関数値に対応する制限を示す、ことと、
特定の候補解の前記複数の変数に対応する前記解値のセットを前記制約と比較することと、
前記候補解の前記複数の変数に対応する前記解値のセットを前記制約と比較したことに基づいてペナルティ値を計算することであり、前記ペナルティ値は、前記解値のセットと前記制約との間の差の度合いを示す、ことと、
前記ペナルティ値に基づいて前記候補解に関連づけられたペナルティスコアを計算することと、
特定の候補解に関連づけられた1つ以上のペナルティスコアの各々に基づいて前記最適化問題に対する解を決定することと、
を含む、付記1に記載の方法。
(付記6)
前記最適化問題は、強度変調放射線治療を使用して腫瘍及び1つ以上の臓器に届けられる(delivered)規定された(prescribed)放射線量を決定することを含む、付記1に記載の方法。
(付記7)
前記最適化問題に対応する前記複数の変数は、前記腫瘍及び前記臓器の指定された組織体積のボクセルで受ける線量である、付記6に記載の方法。
(付記8)
実行されることに応答してシステムに動作を実行させる命令を記憶するように構成された1つ以上の非一時的コンピュータ読取可能記憶媒体であって、前記動作は、
最適化問題に対応する複数の変数を識別することであり、前記複数の変数の各変数は対応する初期値を有する、ことと、
前記複数の変数の前記初期値に基づいて目的関数値を計算することと、
前記目的関数値の複数の関数値変更を計算することであり、前記複数の関数値変更の各関数値変更は、複数の変数値変更のうちの異なる1つに基づいて計算され、前記変数値変更の各々は、前記初期値のうちの異なる1つに行われたそれぞれの変更に対応する、ことと、
前記変数のサブセットを、前記変数のサブセットのうちの前記変数のそれぞれの初期値に行われた対応する変数値変更に対応するそれぞれの関数値変更に基づいて、選択することと、
前記選択された変数のサブセットを使用して前記最適化問題のサロゲート二次制約なし二値最適化(QUBO)モデルを生成することと、
前記サロゲートQUBOモデルを使用して前記最適化問題に対する1つ以上の候補解を決定することであり、前記1つ以上の候補解の各々は解値のセットを含み、前記解値のセットのうちの前記解値の各々は、前記複数の変数のうちの異なる変数に対応する、ことと、
前記1つ以上の候補解に基づいて前記最適化問題に対する解を決定することと、
を含む、1つ以上の非一時的コンピュータ読取可能記憶媒体。
(付記9)
前記動作は、
前記最適化問題に対する前記解と各変数の対応する初期値とに基づいて、各変数に関連づけられた更新された値を決定することと、
前記更新された値に基づいて前記変数の第2のサブセットを選択することと、
前記変数の前記第2のサブセットに基づいて前記サロゲートQUBOモデルを使用して前記最適化問題に対する1つ以上の第2の候補解を決定することと、
前記1つ以上の第2の候補解に基づいて前記最適化問題に対する第2の解を決定することと、
をさらに含む、付記8に記載の1つ以上の非一時的コンピュータ読取可能記憶媒体。
(付記10)
前記変数値変更に基づいて前記目的関数値の前記複数の関数値変更を計算することは、
各変数に1つ以上のバイナリノードを割り当てることであり、各バイナリノードはバイナリ値を有し、前記バイナリ値は、前記バイナリ値に関連づけられた前記変数の初期値の変更を示す、ことと、
前記変数のうちの1つ以上に関連づけられた前記バイナリノードに対応する1つ以上のバイナリ値を反転することと、
前記変数の前記初期値と前記1つ以上の反転されたバイナリ値とに基づいて前記変数値変更を計算することと、
前記変数値変更に基づいて前記複数のうちの関数値変更を計算することと、
を含む、付記8に記載の1つ以上の非一時的コンピュータ読取可能記憶媒体。
(付記11)
前記複数の変数値変更の各変数値変更は、前記初期値のうちの異なる1つに行われた同じ変更に対応し、前記変数のサブセットを選択することは、
前記初期値のうちの異なる1つに行われた変数値変更に基づいて前記目的関数値の前記複数の関数値変更を計算することと、
前記変数を、前記関数値変更と前記変数のうちの各々の初期値に行われたそれぞれの変更とに基づいてソートすることと、
前記ソートに基づいて前記変数の前記サブセットを選択することと、
を含む、付記8に記載の1つ以上の非一時的コンピュータ読取可能記憶媒体。
(付記12)
前記サロゲートQUBOモデルを使用して前記最適化問題に対する1つ以上の候補解を決定することは、
少なくとも1つの変数又は前記目的関数値に関連づけられた制約を決定することであり、前記制約は、前記少なくとも1つの変数の値に対応する制限、又は前記目的関数値に対応する制限を示す、ことと、
特定の候補解の前記複数の変数に対応する前記解値のセットを前記制約と比較することと、
前記候補解の前記複数の変数に対応する前記解値のセットを前記制約と比較したことに基づいてペナルティ値を計算することであり、前記ペナルティ値は、前記解値のセットと前記制約との間の差の度合いを示す、ことと、
前記ペナルティ値に基づいて前記候補解に関連づけられたペナルティスコアを計算することと、
特定の候補解に関連づけられた1つ以上のペナルティスコアの各々に基づいて前記最適化問題に対する解を決定することと、
を含む、付記8に記載の1つ以上の非一時的コンピュータ読取可能記憶媒体。
(付記13)
前記最適化問題は、強度変調放射線治療を使用して腫瘍及び1つ以上の臓器に届けられる規定された放射線量を決定することを含む、付記8に記載の1つ以上の非一時的コンピュータ読取可能記憶媒体。
(付記14)
前記最適化問題に対応する前記複数の変数は、前記腫瘍及び前記臓器の指定された組織体積のボクセルで受ける線量である、付記8に記載の1つ以上の非一時的コンピュータ読取可能記憶媒体。
(付記15)
システムであって、
1つ以上のプロセッサと、
実行されることに応答して当該システムに動作を実行させる命令を記憶するように構成された1つ以上の非一時的コンピュータ読取可能記憶媒体と、を備え、前記動作は、
最適化問題に対応する複数の変数を識別することであり、前記複数の変数の各変数は対応する初期値を有する、ことと、
前記複数の変数の前記初期値に基づいて目的関数値を計算することと、
前記目的関数値の複数の関数値変更を計算することであり、前記複数の関数値変更の各関数値変更は、複数の変数値変更のうちの異なる1つに基づいて計算され、前記変数値変更の各々は、前記初期値のうちの異なる1つに行われたそれぞれの変更に対応する、ことと、
前記変数のサブセットを、前記変数のサブセットのうちの前記変数のそれぞれの初期値に行われた対応する変数値変更に対応するそれぞれの関数値変更に基づいて、選択することと、
前記選択された変数のサブセットを使用して前記最適化問題のサロゲート二次制約なし二値最適化(QUBO)モデルを生成することと、
前記サロゲートQUBOモデルを使用して前記最適化問題に対する1つ以上の候補解を決定することであり、前記1つ以上の候補解の各々は解値のセットを含み、前記解値のセットのうちの前記解値の各々は、前記複数の変数のうちの異なる変数に対応する、ことと、
前記1つ以上の候補解に基づいて前記最適化問題に対する解を決定することと、
を含む、システム。
(付記16)
前記動作は、
前記最適化問題に対する前記解と各変数の対応する初期値とに基づいて、各変数に関連づけられた更新された値を決定することと、
前記更新された値に基づいて前記変数の第2のサブセットを選択することと、
前記変数の前記第2のサブセットに基づいて前記サロゲートQUBOモデルを使用して前記最適化問題に対する1つ以上の第2の候補解を決定することと、
前記1つ以上の第2の候補解に基づいて前記最適化問題に対する第2の解を決定することと、
をさらに含む、付記15に記載のシステム。
(付記17)
前記変数値変更に基づいて前記目的関数値の前記複数の関数値変更を計算することは、
各変数に1つ以上のバイナリノードを割り当てることであり、各バイナリノードはバイナリ値を有し、前記バイナリ値は、前記バイナリ値に関連づけられた前記変数の初期値の変更を示す、ことと、
前記変数のうちの1つ以上に関連づけられた前記バイナリノードに対応する1つ以上のバイナリ値を反転することと、
前記変数の前記初期値と前記1つ以上の反転されたバイナリ値とに基づいて前記変数値変更を計算することと、
前記変数値変更に基づいて前記複数のうちの関数値変更を計算することと、
を含む、付記15に記載のシステム。
(付記18)
前記複数の変数値変更の各変数値変更は、前記初期値のうちの異なる1つに行われた同じ変更に対応し、前記変数のサブセットを選択することは、
前記初期値のうちの異なる1つに行われた変数値変更に基づいて前記目的関数値の前記複数の関数値変更を計算することと、
前記変数を、前記関数値変更と前記変数のうちの各々の初期値に行われたそれぞれの変更とに基づいてソートすることと、
前記ソートに基づいて前記変数の前記サブセットを選択することと、
を含む、付記15に記載のシステム。
(付記19)
前記サロゲートQUBOモデルを使用して前記最適化問題に対する1つ以上の候補解を決定することは、
少なくとも1つの変数又は前記目的関数値に関連づけられた制約を決定することであり、前記制約は、前記少なくとも1つの変数の値に対応する制限、又は前記目的関数値に対応する制限を示す、ことと、
特定の候補解の前記複数の変数に対応する前記解値のセットを前記制約と比較することと、
前記候補解の前記複数の変数に対応する前記解値のセットを前記制約と比較したことに基づいてペナルティ値を計算することであり、前記ペナルティ値は、前記解値のセットと前記制約との間の差の度合いを示す、ことと、
前記ペナルティ値に基づいて前記候補解に関連づけられたペナルティスコアを計算することと、
特定の候補解に関連づけられた1つ以上のペナルティスコアの各々に基づいて前記最適化問題に対する解を決定することと、
を含む、付記15に記載のシステム。
(付記20)
前記最適化問題は、強度変調放射線治療を使用して腫瘍及び1つ以上の臓器に届けられる規定された放射線量を決定することを含む、付記15に記載のシステム。