IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特開2022-159039大規模な複雑な組合せ問題における問題分解
<>
  • 特開-大規模な複雑な組合せ問題における問題分解 図1
  • 特開-大規模な複雑な組合せ問題における問題分解 図2
  • 特開-大規模な複雑な組合せ問題における問題分解 図3
  • 特開-大規模な複雑な組合せ問題における問題分解 図4
  • 特開-大規模な複雑な組合せ問題における問題分解 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022159039
(43)【公開日】2022-10-17
(54)【発明の名称】大規模な複雑な組合せ問題における問題分解
(51)【国際特許分類】
   G06N 99/00 20190101AFI20221006BHJP
   G06Q 99/00 20060101ALI20221006BHJP
【FI】
G06N99/00 180
G06Q99/00
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2022045361
(22)【出願日】2022-03-22
(31)【優先権主張番号】17/219626
(32)【優先日】2021-03-31
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】チェン・ウェイ-ペン
(72)【発明者】
【氏名】川野 浩康
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049DD06
(57)【要約】
【課題】 大規模な複雑な組合せ問題を解決する方法及びシステムを提供する。
【解決手段】 当該方法及びシステムは、前記大規模な複雑な組合せ問題を入力として受信することと、前記大規模な複雑な組合せ問題の決定変数空間を、前記大規模な複雑な組合せ問題の全決定変数の部分集合に対応する複数の基本属性単位に変換することと、前記大規模な複雑な組合せ問題を、前記複数の基本属性単位の複数の部分問題に分解することと、最適化ソルバを用いて、前記複数の部分問題を並列に解き、前記複数の部分問題の解に対応する複数の解候補を出力することと、前記最適化ソルバ及び前記複数の候補解を用いて、前記大規模な複雑な組合せ問題を解くことと、を含む。
【選択図】 図3
【特許請求の範囲】
【請求項1】
大規模な複雑な組合せ問題を解決する、コンピュータにより実施される方法であって、前記方法は、
前記大規模な複雑な組合せ問題を入力として受信するステップと、
前記大規模な複雑な組合せ問題の決定変数空間を、前記大規模な複雑な組合せ問題の全決定変数の部分集合に対応する複数の基本属性単位に変換するステップと、
前記大規模な複雑な組合せ問題を、前記複数の基本属性単位の複数の部分問題に分解するステップと、
最適化ソルバを用いて、前記複数の部分問題を並列に解き、前記複数の部分問題の解に対応する複数の解候補を出力するステップと、
前記最適化ソルバ及び前記複数の候補解を用いて、前記大規模な複雑な組合せ問題を解くステップと、
を含む、コンピュータにより実施される方法。
【請求項2】
前記大規模な複雑な組合せ問題の前記決定変数空間を、前記複数の基本属性単位に変換するステップは、前記複数の基本属性単位を前記全決定変数に対応するベクトル空間で構成するステップを含む、請求項1に記載のコンピュータにより実施される方法。
【請求項3】
前記複数の基本属性単位を、複数の部分問題に分解するステップは、任意の2つの部分問題の間の干渉を最小化するステップを含む、請求項1に記載のコンピュータにより実施される方法。
【請求項4】
前記複数の基本属性単位を、複数の部分問題に分解するステップは、集合パーティションを用いて、任意の2つの部分問題の間の干渉を最小化するステップを含む、請求項3に記載のコンピュータにより実施される方法。
【請求項5】
前記複数の基本属性単位の中で表される属性に優先度を適用して、前記複数の部分問題を生成するステップ、を更に含む請求項3に記載のコンピュータにより実施される方法。
【請求項6】
前記基本属性単位のうちの異なる属性の中で種々の粒度の部分問題を含み、前記複数の部分問題を生成するステップ、を更に含む請求項3に記載のコンピュータにより実施される方法。
【請求項7】
前記複数の部分問題を並列に解いて、前記複数の候補解を出力するステップは、前記複数の部分問題のうちの各部分問題から生成された複数の最良候補を識別するステップを含む、請求項1に記載のコンピュータにより実施される方法。
【請求項8】
前記複数の部分問題及び前記大規模な複雑な組合せ問題の各々を解くために必要な計算処理能力は、前記最適化ソルバの所定の閾値より低い、請求項1に記載のコンピュータにより実施される方法。
【請求項9】
前記大規模な複雑な組合せ問題は、どのリソース及び設備が特定の時間に所与の製品を製造することに向けられるべきかを指示する製造スケジュールを生成するための製造スケジューリング問題を含む、請求項1に記載のコンピュータにより実施される方法。
【請求項10】
命令を格納するよう構成される1つ以上のコンピュータ可読媒体であって、前記命令は、システムにより実行されると、該システムに動作を実行させる又は実行するよう指示し、前記動作は、
前記大規模な複雑な組合せ問題を入力として受信するステップと、
前記大規模な複雑な組合せ問題の決定変数空間を、前記大規模な複雑な組合せ問題の全決定変数の部分集合に対応する複数の基本属性単位に変換するステップと、
前記大規模な複雑な組合せ問題を、前記複数の基本属性単位の複数の部分問題に分解するステップと、
前記複数の部分問題を並列に解き、前記複数の部分問題の解に対応する複数の解候補を出力するステップと、
前記複数の候補解を用いて、前記大規模な複雑な組合せ問題を解くステップと、
を含む、1つ以上のコンピュータ可読媒体。
【請求項11】
前記大規模な複雑な組合せ問題の前記決定変数空間を、前記複数の基本属性単位に変換するステップは、前記複数の基本属性単位を前記全決定変数に対応するベクトル空間で構成するステップを含む、請求項10に記載の1つ以上のコンピュータ可読媒体。
【請求項12】
前記複数の基本属性単位を、複数の部分問題に分解するステップは、任意の2つの部分問題の間の干渉を最小化するステップを含む、請求項10に記載の1つ以上のコンピュータ可読媒体。
【請求項13】
前記複数の基本属性単位を、複数の部分問題に分解するステップは、集合パーティションを用いて、任意の2つの部分問題の間の干渉を最小化するステップを含む、請求項12に記載の1つ以上のコンピュータ可読媒体。
【請求項14】
前記複数の部分問題を並列に解いて、前記複数の候補解を出力するステップは、前記複数の部分問題のうちの各部分問題から生成された複数の最良候補を識別するステップを含む、請求項10に記載の1つ以上のコンピュータ可読媒体。
【請求項15】
前記複数の部分問題及び前記大規模な複雑な組合せ問題の各々を解くために必要な計算処理能力は、前記システムの所定の閾値より低い、請求項10に記載の1つ以上のコンピュータ可読媒体。
【請求項16】
前記大規模な複雑な組合せ問題は、どのリソース及び設備が特定の時間に所与の製品を製造することに向けられるべきかを指示する製造スケジュールを生成するための製造スケジューリング問題である、請求項10に記載の1つ以上のコンピュータ可読媒体。
【請求項17】
システムであって、
命令を格納するよう構成される1つ以上のコンピュータ可読記憶媒体と、
前記1つ以上のコンピュータ可読記憶媒体に通信可能に結合され、前記命令の実行に応答して、前記システムに動作を実行させるよう構成される1つ以上のプロセッサと、
を含み、前記動作は、
前記大規模な複雑な組合せ問題を入力として受信するステップと、
前記大規模な複雑な組合せ問題の決定変数空間を、前記大規模な複雑な組合せ問題の全決定変数の部分集合に対応する複数の基本属性単位に変換するステップと、
前記大規模な複雑な組合せ問題を、前記複数の基本属性単位の複数の部分問題に分解するステップと、
最適化ソルバを用いて、前記複数の部分問題を並列に解き、前記複数の部分問題の解に対応する複数の解候補を出力するステップと、
前記最適化ソルバ及び前記複数の候補解を用いて、前記大規模な複雑な組合せ問題を解くステップと、
を含む、システム。
【請求項18】
前記大規模な複雑な組合せ問題の前記決定変数空間を、前記複数の基本属性単位に変換するステップは、前記複数の基本属性単位を前記全決定変数に対応するベクトル空間で構成するステップを含む、請求項17に記載のシステム。
【請求項19】
前記複数の基本属性単位を、複数の部分問題に分解するステップは、集合パーティションを用いて、任意の2つの部分問題の間の干渉を最小化するステップを含む、請求項17に記載のシステム。
【請求項20】
前記複数の部分問題及び前記大規模な複雑な組合せ問題の各々を解くために必要な計算処理能力は、前記最適化ソルバの所定の閾値より低い、請求項17に記載のシステム。

【発明の詳細な説明】
【技術分野】
【0001】
本開示において議論される実施形態は、大規模な複雑な組合せ問題を分解する方法及びシステムに関する。
【背景技術】
【0002】
多くの産業は、どれが個別的な選択であるかを決定する必要がある。これらの選択は、組合せ最適化問題の範囲に含まれる。組合せ最適化(Combinatorial Optimization)は、オペレーションズリサーチ、アルゴリズム理論、計算複雑性理論に関連する多数の実際のアプリケーションと実用的なアプリケーションを備えた数理最適化の下位分野である。それは、人工知能、機械学習、オークション理論、ソフトウェア工学、応用数学、及び論理コンピュータ科学を含む幾つかの分野で重要な用途を有する。様々な異なる分野における多数の用途があるので、組合せ最適化ソルバに対する高い要求が存在する。
【0003】
標準的に、これらのソルバは、膨大な数の決定変数を含む大規模な問題を解決するために使用される。しかしながら、問題のサイズ及び変数の数が与えられると、大規模な組合せ最適化問題を解くために、ハードウェアソリューション及び/又はソフトウェア実装により提供される計算能力を提供可能な最適化ソルバを発見するのは困難になり得る。更に、そのようなソルバが利用可能なときでも、それらは、実用的に又は容易に実装するには非常にコストがかかる場合がある。
【0004】
従来の最適化ソルバの例は、Cplex(商標)Optimizer又はGurobi(商標)Solver、SCIPのようなオープンソースソフトウェアソルバ、及びFujitsu Digital Annealer(商標)のようなシミュレートされるアニーリングマシンを含む新たに現れている量子に触発されたコンピューティングマシンを含む。しかしながら、上述のように、これらのシステムが利用可能であるにも拘わらず、そのようなマシンは、依然として、それらのハードウェア及び/又はソフトウェア実装において能力の制限を有する。jこれは、それらが解くことのできる問題の規模を制限し得る。例えば、そのようなシステムは、解かれる2進変数の数において制限を有し得る。理解されるように、これらの制限は、また、組合せ最適化問題が解こうとする実際のアプリケーションを制限する。例えば、D-Wave2000Q(商標)量子コンピュータは、最大で2,048Qbitまでサポートし、Fujitsu Digital Annealer(商標)は、最大で8,192Qbitまでサポートする。
【0005】
大規模な組合せ最適化問題を解くために現在使用されているシステム及び方法の一例は、QbsolveにおいてD-Waveにより開発されている。これは、大規模二次制約無し二値最適化(quadratic unconstrained binary optimization (QUBO))をピースに分割することにより、その最小値を見付ける分解ソルバである。ピースは、タブー(tabu)アルゴリズムを実行する古典的なソルバを用いて解かれる。しかしながら、当業者により理解されるように、タブー(tabu)に基づくアプローチは、大規模な問題に対して一般的な解しか提供せず、新規なソリューションが必要とされる。
【0006】
本開示で請求される主題は、任意の欠点を解決する又は上述のような環境でのみ動作する実施形態に限定されない。むしろ、この背景技術は、本開示に記載の幾つかの実施形態が実施され得る一例である技術領域を説明するためにのみ提供される。
【発明の概要】
【0007】
本願明細書に記載される発明の態様によると、大規模な複雑な組合せ問題を解く、コンピュータにより実施される方法が記載される。前記方法は、前記大規模な複雑な組合せ問題を入力として受信するステップと、前記大規模な複雑な組合せ問題を、前記大規模な複雑な組合せ問題の全決定変数の部分集合に対応する複数の基本属性単位に変換するステップと、最適化ソルバを用いて、前記複数の基本属性単位を複数の部分問題に分解するステップと、最適化ソルバを用いて、前記複数の部分問題を並列に解き、前記複数の部分問題の解に対応する複数の解候補を出力するステップと、前記最適化ソルバ及び前記複数の候補解を用いて、前記大規模な複雑な組合せ問題を解くステップと、を含む。
【0008】
実施形態の目的及び利点は、請求項において特に指摘される要素、特徴、及び組み合わせにより少なくとも実現され達成される。
【0009】
前述の一般的説明及び以下の詳細な説明は両方とも例として与えられ、説明のためであり、請求される本発明の限定ではない。
【図面の簡単な説明】
【0010】
実施形態である例示的な実施形態は、以下の添付の図面の使用を通じて更なる特殊性及び詳細事項により記載され説明される。
【0011】
図1】本発明の幾つかの実施形態による、大規模な複雑な組合せ問題の分解を実行することに関連する例示的な環境を示す図である。
【0012】
図2】本発明の幾つかの実施形態による、大規模な複雑な組合せ問題の例として、製造スケジュールの集合を示す3次元グラフである。
【0013】
図3】本発明の幾つかの実施形態による、大規模な組合せ問題を分解し解く方法を示すブロック図である。
【0014】
図4】本発明の幾つかの実施形態による、大規模な組合せ問題の前処理を実行する方法を示すブロック図である。
【0015】
図5】本発明の幾つかの実施形態による、幾つかの実施形態に従う大規模組合せ問題を分解する方法を示すブロック図である。
【発明を実施するための形態】
【0016】
本開示において議論される実施形態は、コンピューティング装置において大規模な複雑な組合せ問題を分解する方法及びシステムに関する。より具体的には、本願明細書に記載される実施形態は、入力される数式を分解するシステム及び方法を対象とする。式は、より小さな下位問題のシリーズに分解される。次に、下位問題が解かれて、複数の最良候補を生成する。次に、大規模な複雑な組合せ問題を解くために最良候補が使用される。更に以下に完全に説明されるように、種々の下位問題の中の決定変数の数を削減することにより、残りの下位問題を解くために必要な処理能力がソルバの能力限界を下回るので、異なる最適化ソルバが、大規模な複雑な問題の解を見付けるために使用できる。理解されるように、本願明細書に記載される方法及びシステムを用いて、更に大規模な複雑な組合せ問題を効率的に及び効果的に分解することが可能である。大規模な複雑な組合せ問題は、様々な異なる分野で広範な実用的用途を有するので、そのような問題を効率的且つ効果的に解く能力は、現在利用可能ではない利益を提供する。
【0017】
図1は、本会時の少なくとも1つの実施形態による、幾つかの例では製造スケジュール問題を含み得る大規模な複雑な組合せ問題を分解し及び解くよう構成される例示的なコンピューティングシステム110のブロック図を示す。コンピューティングシステム110は、大規模な複雑な組合せ問題を、コンピューティングシステム110の計算能力を超えないで解くことのできる一連の下位問題に分解することに関連する1つ以上の動作を実装し又は指示するよう構成されてよい。
【0018】
コンピューティングシステム110は、Fujitsu(登録商標)により提供されるデジタルアニーラソルバのようなデジタルアニーラソルバであってよく又はそれと関連して使用されてよい。代替又は追加で、コンピューティングシステム110は、特にCplex、Gurobiのような組合せ最適化ソルバを含み又はそれと関連して使用されてよい。代替又は追加で、組合せ最適化は、タブー(Tabu)サーチ又はシミュレートされるアニーリングのようなヒューリスティックを用いて解かれてよい。代替又は追加で、組合せ最適化は、GoogleのORツールで提供されるSATソルバのような制約有り充足可能性(constrained satisfiability (SAT))ソルバを用いて解かれてよい。
【0019】
コンピューティングシステム110は、プロセッサ111、メモリ112、及びデータ記憶装置113を含んでよい。プロセッサ111、メモリ112、データ記憶装置113、及び通信ユニット114は、通信可能に結合されてよく、これは、コンピューティングシステム110が他のコンピューティング装置と通信することを可能にする。
【0020】
通常、プロセッサ111は、種々のコンピュータハードウェア又はソフトウェアモジュールを含む、任意の適切な専用又は汎用コンピュータ、コンピューティングエンティティ、又は処理装置を含んでよく、任意の適切なコンピュータ可読記憶媒体に格納された命令を実行するよう構成されてよい。例えば、プロセッサ111は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラム命令を解釈し及び/又は実行し及び/又はデータを処理するよう構成される任意の他のデジタル若しくはアナログ回路を含んでよい。図1は単一のプロセッサとして示されるが、プロセッサ111は、個々に又は集合的に本開示に記載の任意の数の動作を実行する又は実行を指示するよう構成される任意の数のプロセッサを含んでよい。さらに、プロセッサのうちの1つ以上は、異なるサーバのような1つ以上の異なる電子装置上に存在してよい。
【0021】
幾つかの実施形態では、プロセッサ111は、プログラム命令を解釈し及び/又は実行し、及び/又はメモリ112、データ記憶装置113、又はメモリ112及びデータ記憶装置113に格納されたデータを処理するよう構成されてよい。幾つかの実施形態では、プロセッサ111は、プログラム命令をデータ記憶装置113からフェッチし、プログラム命令をメモリ112にロードしてよい。プログラム命令がメモリ112にロードされた後に、プロセッサ111は、プログラム命令を実行してよい。
【0022】
メモリ112及びデータ記憶装置113は、格納されたコンピュータ実行可能命令又はデータ構造を運ぶ又は有するコンピュータ可読記憶媒体を含んでよい。このようなコンピュータ可読記憶媒体は、プロセッサ111のような汎用又は専用コンピュータによりアクセスされ得る任意の市販の非一時的媒体を含んでよい。例として、限定ではなく、このようなコンピュータ可読記憶媒体は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去可能なプログラマブル読み出し専用メモリ(EEPROM)、コンパクトディスク読み出し専用メモリ(CD-ROM)、又は他の光ディスク記憶装置、磁気ディスク記憶装置、又は他の磁気記憶装置、フラッシュメモリ素子(例えば、個体メモリ装置)、又はコンピュータ実行可能命令若しくはデータ構造の形式で特定のプログラムコードを運ぶ又は格納するために使用され得る且つ汎用又は専用コンピュータによりアクセスされ得る任意の他の非一時的記憶媒体、を含む有形又は非一時的コンピュータ可読媒体を含んでよい。これら及び他の実施形態では、本開示で説明されるような用語「非一時的」は、Federal Circuit decision of In re Nuijten, 500 F.3d 1346 (Fed. Cir. 2007)における特許可能な主題の範囲に含まれない一時的媒体の種類のみを除外するものと考えられるべきである。上記の組み合わせも、コンピュータ可読媒体の範囲に含まれてよい。
【0023】
上記の組み合わせも、コンピュータ可読記憶媒体の範囲に含まれてよい。コンピュータ実行可能命令は、例えば、プロセッサ111に特定動作または一群の動作を実行させるよう構成される命令及びデータを含んでよい。
【0024】
変更、追加、又は省略が、本開示の範囲から逸脱することなくコンピューティングシステム110に対して行われてよい。例えば、幾つかの実施形態では、コンピューティングシステム110は、明示され又は記載されないことのある任意の数の他のコンポーネントを含んでよい。
【0025】
<実際の用途:製造スケジューリング>
本願明細書に記載されるシステム及び方法は、広範な異なる設定及び適用において使用され得るが、生じ得る及び解かれ及び緩和され得る問題は、製造スケジューリングに関して説明される。当業者により理解されるように、製造スケジューリング問題は、サプライチェーン管理における主要な問題のうちの1つであり、更に、製造スケジューリング問題は、標準的に、時に大きすぎて解けない大規模な複雑な組合せ問題を含む。
【0026】
特に、製造スケジューリングの問題では、製造会社が彼らの顧客から、必要数を指定する注文を受けたとき、会社は、在庫管理を考慮して、要求を満たすために、製造スケジューリングを計画する必要がある。そうするために、会社は、指定時間の間にどの工場にあるどの機械が所与の製品の特定の製品モデルを製造するために使用されるべきかのようなスケジューリングの詳細を含む候補製造スケジュールのリストを準備する。所与のスケジューリングは、特定の工場で又は特定の機械で所与の時間に製造され得る各製品モデルの数量も含んでよい。製造スケジューリング問題の問題は、選択された製造スケジュールのコストを最小化しながら、要求を満たすために製造スケジュールのセットを選択することである。そのような例では、そのような問題には、多くの利用可能な工場、機械、及び/又は労働者のうちのどれが、製品を製造する作業に割り当てられるべきか、商品を製造するために費やされる時間、それが実行されるべきタイミング、を識別するような、複数の変数が存在する。理解されるように、特定の用途では、追加の変数も必要な場合がある。
【0027】
一例では、所与の入力は以下を含んでよい:
・選択されるべきK個の製造スケジュール(スケジュール毎に1つのバイナリ変数)、ここでKはソルバの能力限界を超える大きな数値である;
・詳細な製造スケジュール(機械及び期間)及び特定の機械が製造する特定の製品モデルと共に該特定の機械により製造される製品の量を含む1つのスケジュール;
・M個の工場、各工場mは多数の機械を有し、
【数1】
・任意の時間における任意の機械について、1つのスケジュールのみがそれを使用できる;
・N種類の製品がある。各製品種類nは、複数の製品モデルを有してよい。Cnは、製品nに属する製品モデルの集合を表す。
【0028】
本例では、1つのスケジュールは、異なる工場に配置された、ある範囲の複数の機械を含んでよい。例えば、機械の1つの製品モデルは、別の機械で製造される別の製品モデルの部品として使用できる。同じ時間に、所与の時間に任意の1つの機械について、1つのスケジュールのみが、機械の使用を制御してよい。
【0029】
本例では、目的関数は、時間Tの所与の期間について、選択された製造スケジュールのコスト及び以下の検討のペナルティの和を最小化する:
・(P1)長期製造計画への準拠:制約は、最終的な製造が、所与期間Tのd番目のセグメントで予測された製造計画と可能な限り一致することを保証することである。ペナルティは、初期目標rc,dに対して、所与の期間Tのd番目のセグメントで、各製品モデルcの合計供給の偏差に基づき計算される。例えば、会社は、月毎又は四半期毎のようなセグメントを採用してよい。
・(P2)工場製造計画への準拠:各工場でのリソース(機械及び労働)割り当てを考慮するために、制約は、最終的な製造が、各工場mにおける各製品モデルcの予測された製造計画に一致することを保証することである。ペナルティは、初期目標qn,mに対して、全期間Tの間、各工場mで各製品種類nの最終的な量の偏差に基づき計算される。
・(P3)短期在庫管理計画への準拠:特定の日にちtにおける目標在庫レベルに対する各製品種類nの在庫の短期変動を考慮するために、ペナルティは、日にちtの目標在庫レベルに対する各工場mで各製品モデルcの蓄積在庫の偏差に基づき計算される。日にちtにおける各工場mでの各製品モデルcの毎日予測される要求dc,m,t及び日にちtにおける各工場mでの各製品モデルcの目標在庫レベルpc,m,tの両方が、指定される。
【0030】
上述の目的関数は、以下の制約に従う:
・(C1)機械スケジューリングにおける衝突:同じ時間に同じ機械を使用する最適化製造スケジュールの候補が生成され得る。そのような衝突が生じるのを回避するために、同じ機械を占有する1つより多くのスケジュールの制約が、適用される。Qb,tは、日にちtに機械bを使用するスケジュールの集合を表す。
【0031】
説明される問題に基づく最適化式は、以下のように記述されてよい:
【数2】
【0032】
ここで、
Vkは、製造スケジュールkに関連付けられたコストである。
xkは、製造スケジュールkの各候補を表すバイナリ変数である。
P,P,Pは、上述の制約(P1)~(P3)に対応するペナルティを決定するために、所定の目標の偏差に適用する制約である。
hd,c,kは、製造スケジュールkによる、d番目のセグメントの間の製品モデルcの供給量である。
gn,m,kは、製造スケジュールkによる、全期間Tの間の、工場mにおける製品種類nの供給量である。
fc,m,t,kは、製造スケジュールkによる、日にちtの、工場mにおける製品モデルcの供給量である。
【0033】
しかしながら、当業者により理解されるように、上述の問題におけるバイナリ変数Kのサイズは、コンピュータ化されたソルバには大きすぎて解けない問題を生じる。
【0034】
理解されるように、製造スケジューリング問題は、決定変数のベクトル空間として説明できる。より具体的には、1つのバイナリ変数xkが、製造スケジュールkの各候補を表すために使用されてよい。製造スケジュール候補kが選択されると、決定変数xkは、1に設定され、その他の場合、決定変数xkは、0bに設定される。各製造スケジュールは、工場m、製品種類n、製品モデルc、使用すべき機械b、製品完成日t、期間のセグメントd、等を含む複数の属性に関連付けられる。従って、問題は、多次元空間を有する変数のベクトル空間で表すことができ、次元の数は属性の数に対応する。上述の例では、問題は、6次元ベクトル空間で表すことができる。
【0035】
しかしながら、1つの問題は、この問題では、幾つかの属性が互いに相関していることである。多対1マッピングの関係が相関された属性の中に存在するとき、粗い属性値は、相関している精細な粒度の属性により見付けることができるので、粗い粒度の属性は「隠す」ことができる。
【0036】
例えば、製造スケジューリング問題では、複数の製品モデルが1つの製品種類に属してよい、複数の機械が1つの工場に属してよい、及び複数の日にちが全期間のうちの1つのセグメントに属してよい、ことを含む考慮される6個の属性の間に、多対1マッピング関係の3つのペアが存在すると決定できる。従って、ベクトル空間は、図2に示すように、簡略化されて3次元空間200として示すことができる。3次元ベクトル空間200は、[時間(製造日、製造セグメント)、製品(種類及びモデル)、位置(工場及び機械)]に対応する。
【0037】
図2に示される各3Dグラフブロックは、ブロック内のものに対応する属性に関連付けられた製造スケジュールの集合を表す。例えば、所与の期間Tのd番目のセグメントでの製品モデルcの長期製造計画に関連付けられた製造スケジュールは、図2に示されるベクトル空間200のブロック210として示される。工場mにおける製品モデルcの工場製造計画に関連付けられた製造スケジュールはブロック220として示される。並びに、特定の日にちtにおける目標在庫レベルに対する製品種類nの短期在庫管理計画に関連付けられた製造スケジュールはブロック230として示される。
【0038】
例えば、製造スケジュールkが工場mを訪問する場合、製造スケジュールkは、工場属性mを含むブロックに含まれる。製造スケジュールの全部の候補は、全体集合{M,N,T} ブロックに含まれる。
【0039】
前述のように、合計製造スケジュール数Kは大きな数なので、ソルバが処理する能力限界を超える可能性がある。従って、より小さな問題に、大きな問題が解決できるように、問題をより小さな問題に分解する必要がある。
【0040】
<大規模な複雑な組合せ問題の分解及び解決>
図3は、本開示に記載される少なくとも1つの実施形態による、大規模な組合せ最適化問題を分解し解く例示的な方法300のフローチャートである。方法300は、任意の適切なシステム、機器、又は装置により実行されてよい。例えば、以下に更に完全に記載されるように、方法300の1つ以上の動作は、図1のコンピューティングシステム110の1つ以上の要素、又は図1のコンピューティングシステム110の複数により実行されてよい。特に、理解されるべきことに、別個のブロックにより示したが、方法300のブロックのうちの1つ以上に関連するステップ及び動作は、特定の実装に依存して、追加ブロックに分けられ、少ないブロックに結合され、又は削除されてよい。
【0041】
方法300は、ブロック305で開始し、製造スケジューリング問題の入力データが、コンピューティングシステム110により受信される。更に、ブロック305で、基本ブロックのセットを識別するために、入力データに対して前処理が実行される。ブロック310で、問題は、コンピューティングシステム110において、複数の下位問題の間の最小干渉を達成するために、集合パーティション問題として問題を形成することにより(formulating)、複数の下位問題に分解される。ブロック315で、複数の下位問題は、コンピューティングシステム110により並列に解かれる。ブロック320で、複数の下位問題の各々は、1又は複数の答えを出力し、記録される。これらの答えは、次に、ブロック325で、最終的な主要問題における候補として機能する。具体的に、ブロック325で、主要問題は、複数の下位問題の全部により生成された候補を用いて解かれ、製造スケジューリング問題の解が得られる。
【0042】
図4は、本開示に記載される少なくとも1つの実施形態による、図3のブロック305で実行された前処理を示す例示的な方法400のフローチャートである。方法400は、任意の適切なシステム、機器、又は装置により実行されてよい。例えば、以下に更に完全に記載されるように、方法400の1つ以上の動作は、図1のコンピューティングシステム110の1つ以上の要素、又は図1のコンピューティングシステム110の複数により実行されてよい。別個のブロックにより示したが、方法400のブロックのうちの1つ以上に関連するステップ及び動作は、特定の実装に依存して、追加ブロックに分けられ、少ないブロックに結合され、又は削除されてよい。
【0043】
方法400は、ブロック405で開始し、複数の属性セットが、最も基本的な又は最小の属性単位により構成される。例えば、上述の製造スケジューリング問題の場合には、製造スケジューリング問題は、最も基本的な属性単位を有する製造スケジュールの集合へと構成できる。製造スケジューリング問題では、各最小基本単位(例えば、日にち=t、製品モデルc、及び機械b)を有する関連する製造スケジュールの集合が構成でき、結果として以下の2つの最小基本単位になる:
【数3】
ここで、Qb,tは、機械b及び日にちtに関連する製造スケジュールの集合を表し、Rm,n,tは、工場m、製品種類n、及び日にちtに関連する製造スケジュールの集合を表し、Sm,cは、工場m、製品モデルcに関連する製造スケジュールの集合を表す。
【0044】
ブロック410で、多対1マッピングを有する属性が識別される。ブロック415で、ブロック410で多対1マッピングを有する属性が識別されるとき、最小基本単位は、1次基本単位にマージされる。
【0045】
製造スケジューリング問題の場合には、複数の製品モデル{c}は、ブロック410で、1つの製品種類nに属するとして識別され、複数の機械{b}は単一の工場mに属するとして識別される。この多対1マッピングの結果として、(c,b)の単位、(c,b)からのボックスは、対応する(n,m)ボックスにマージされて、(n,m)の単位が単位(c,b)より大きいので、後述する1次基本単位を形成する。
【0046】
従って、上述の製造スケジューリング問題では、2つの1次基本単位が構成される:
【数4】
【0047】
上述のように、前処理が実行された後に、合計製造スケジュール数はKであり、ソルバの処理する能力限界を超え、問題をより小さな問題に分解する必要がある。
【0048】
上述のように、下位問題は、変数の多次元空間におけるブロックの考察として定義される。製造スケジューリング問題の場合には、前処理は、[時間t、製品(種類又はモデル)n、位置(工場又は機械)m]の3D空間にまで削減される。ブロックは(T,N,M)として表すことができる。ここで、Tは時間インスタンスtの集合であり、Nは、製品インスタンスnの集合であり、Mは、位置インスタンスmの集合である。方法400の前処理において定義されるブロックの最も基本的な単位は、特定の日にちt、製品モデルc、及び機械bについて、(t,c,b)である。
【0049】
ブロック405、410、及び415で定義されるコア集合は、下位問題の中で考慮される必要のある必要製造スケジュールを決定する。他方で、ブロック405、410、及び415で定義される影響される集合は、コア集合内の製造スケジュールに関連する任意の製造スケジュールを含む。2つのブロックの2つの影響される集合の共通部分が空であるとき、2つの下位問題は独立であると決定できる。
【0050】
理解されるように、問題を分解する際の主な課題は、全体空間の中の影響される集合が互いに交わることである。結果として、3D又は多次元空間を独立した下位問題へと分解することが困難になる。
【0051】
図5は、本開示に記載される少なくとも1つの実施形態による、図3のブロック310の下位処理として規模の組合せ最適化問題を分解する例示的な方法500のフローチャートである。方法500は、任意の適切なシステム、機器、又は装置により実行されてよい。例えば、以下に更に完全に記載されるように、方法500の1つ以上の動作は、図1のコンピューティングシステム110の1つ以上の要素、又は図1のコンピューティングシステム110の複数により実行されてよい。別個のブロックにより示したが、方法500のブロックのうちの1つ以上に関連するステップ及び動作は、特定の実装に依存して、追加ブロックに分けられ、少ないブロックに結合され、又は削除されてよい。
【0052】
大規模な複雑な組合せ問題を分解する方法500は、ブロック505で開始し、任意の独立した下位問題が存在するかどうかを決定する。スケジューリング問題の例では、他のブロックと交わらないブロック(Ti,Ni,Mi)が識別された場合、ブロック510で、ブロックは独立したブロックとして除去できる。更に、幾つかの例では、小さな下位問題を処理するのを回避するために、ブロックのサイズは、幾つかの属性について何からの値より大きくなるよう制限される。例えば、製造スケジューリング問題では、時間属性のサイズは、全期間の少なくとも半分である必要があってよく、従って、時間属性が全期間の半分より小さい任意のブロックは、ブロック510で除去されべき独立したブロックとして考えられなくてよい。
【0053】
製造スケジューリング問題の例では、属性毎に、最小単位より大きな粒度を有する各ブロックが反復され、以下のアルゴリズムが使用されてよい:
以下の場合:
【数5】
Ti及びTi’は、製品属性に沿う異なる集合であり、Mi及びMi’は、工場の位置属性に沿う異なる集合であり、集合(Ti,Ni,Mi)は、独立した集合として読み出され、後述するようにブロック510で処理される。
【0054】
ブロック510で、独立した下位問題が抽出される。更に、独立した下位問題のサイズが処理するのに十分大きい場合、ブロック(Ti,Ni,Mi)が抽出され、1つの最終下位問題として格納される。これは、ブロック535で最終下位問題として出力される。
【0055】
ブロック515で、下位問題のブロックは、異なる属性に沿う種々のレベルの粒度を有し構成される。幾つかの例では、下位問題のブロックを構成することは、基本ブロックからブロックをマージして、異なる粒度レベルを有する下位問題を達成することを含む。理解されるように、1つの目的は、適切なサイズの下位問題を見付けることである。標準的に、これは、コンピューティングシステム110の計算能力を超えない、可能な限り大きな下位問題を見付けることを含む。そうするために、各属性の最小粒度が、先ず決定される。例えば、製造スケジューリング問題では、時間、製品、及び位置の最小粒度は、それぞれ、全期間の半分、1つの工場、及び1つの製品モデルと等価になるよう割り当てられてよい。
【0056】
次に、解体のために考慮される属性の優先度が決定されてよい。例えば、製造スケジューリング問題の例では、優先度が確立されてよく、その結果、空間全体が、第1に製品種類に従い、第2に工場に従い、及び第3に製品モデルに従い、最後に時間属性に従い、解体される。
【0057】
次に、種々の粒度の異なる属性を有するコア集合が生成されてよい。この処理は以下を含んでよい:
【数6】
【0058】
図5に戻ると、ブロック520で、ブロックは、適切なサイズを有する属性の優先度に沿ってエクスポートされ、下位問題の候補となる。この処理の間、最大下位問題サイズ(つまり、ソルバにより処理できるバイナリ変数の最大数)が決定され、THとして定義される。
【0059】
製造スケジューリング問題に戻ると、製品種類、工場、製品モデル、半分の時間期間、日にちの上述の順序で属性の優先度に沿ってブロックをエクスポートすると、ブロックは、以下に記載されるようにエクスポートできる:
【数7】
【0060】
例として製造スケジューリング問題を用いて上述したステップに従い生成され得る出力の例では、合計124個の集合のうちの最初の24個が評価され、(time,c,m)の形式の出力は以下に示される:
【表1】
【0061】
図5に示される方法500に戻ると、ブロック525で、集合は、「集合パーティション」アルゴリズムの候補を形成するようにマージされる。製造スケジューリング問題では、初期最大製造スケジュール数が、THの値(例えば8000)として設定されてよい。
【0062】
集合をマージするために、この例ではブロック520の出力である、下位問題の生成された候補の全部(集合S=[Si]))が、入力される。製造スケジューリング問題では、これは以下を含む:
【数8】
【0063】
下位問題の全部の候補が入力された後に、上述の1)~4)にリストされた任意の集合について、組合せが生成される。ここで、マージされた集合はTHより小さい。幾つかの例では、これらの集合は再帰的に生成されてよい。Siの組合せがエミュレートされ、集合パーティション問題の候補集合Cが抽出される。Cに含まれる集合は、問題サイズの下限LBと上限UBとの間のマージされたサイズを有する。つまり、
【数9】
【0064】
集合パーティションアルゴリズムのインデックス行列は、I=[Iij]と表され、ここで、
【数10】
【0065】
幾つかの実施形態では、ソルバの能力限界を超えずに、1つ以上の集合を含むことができない候補のみが、検討される。例えば、集合0を追加することから開始する場合、候補0:[0,1,2,3]が許容可能であり、検討され得るが、0:[0,1,2]は含まれない。
【0066】
ブロック525で上述したステップに従い生成され得る出力の例は、ここで、集合パーティション問題における候補を表す全部で7,490個の可能な組合せが存在し、21個の可能な組合せのサンプルが以下に示される:
【表2】
【0067】
図5に戻ると、ブロック530で、ブロック525の出力が受信され、下位問題の最終集合が、集合パーティション問題の最適解から生成される。製造スケジューリング問題では、以下のように出力が受信される。
【数11】
【0068】
例えば、表に列挙した出力を、ブロック525の出力として用いると、第3の集合は以下の通りである:
【数12】
【0069】
次に、ブロック530で、「集合パーティション(set-partition)」問題が形成され、「最良の」分解を選択する。Cjが下位問題の最終集合の中で選択されるかどうかを含むために、xjがバイナリ変数を表すとする。目的関数は、選択された下位問題の数を最小化し、及び「Affected_sets」のサイズ|Aj|を最小化することである。制約は、ブロック520の間に生成された全部の下位問題Sが選択された下位問題により確実にカバーされることである。
【数13】
【0070】
結果として、Y個の下位問題が生成され、ここで、
【数14】
ブロック535で、これらの最終下位問題は、図3のブロック315で並列に解くために出力される。
【0071】
前述の実施形態は、大規模な複雑な組合せ問題を分解するための1つの方法500を説明したが、本願に記載される特許請求の範囲の意図する範囲から逸脱することなく、上述の方法500の他の変形が実行されてよい。例えば、1つの代替の実施形態では、ベクトル空間は、幾つかの属性の同じ粒度で分解されてよい。例えば、下位問題は、Cored,c,mの1つの単位をカバーすると考えられてよい(同じ時間期間d、同じ製品モデルc、及び同じ工場m、に関連するブロック)。
【0072】
別の実施形態では、ブロック530で優先順位付けされた属性の順序は変更されてよい。より具体的には、上述の例では、問題ベクトル空間の分割において優先順位付けされた属性の順序は、製品、位置、及び時間である。理解されるべきことに、分割のために他の順序を検討することができる。例えば、ベクトル空間は、第1優先度として位置属性に基づき分割され得る。
【0073】
他の実施形態では、異なる方針の分割が使用されてよく、その結果、異なる方針の分解の結果が分解のオーバーラップを生じてよい。より具体的には、下位問題の解は、「良好な候補」として機能するだけなので、種々の分解方針からの良好な候補は、主要問題の最終候補として機能するよう一緒に結合されてもよい。この代替の実施形態では、問題分解は、ここでは「問題をカバーする集合(set covering problem)」と呼ばれる。問題をカバーする集合では、「集合カバー」問題が構成され、「最良の」分解を選択する。Cjを下位問題の最終集合に含むために、xjがバイナリ変数を表すとする。目的関数は、選択された下位問題の数を最小化し、及び「Affected_sets」のサイズ|Aj|を最小化することである。制約は、ブロック520のアルゴリズムから生成された全部の下位問題Sが選択された下位問題のうちの少なくとも1つにより確実にカバーされることである。
【数15】
【0074】
図3のブロック320に戻ると、問題分解により生成された複数の下位問題は、次に並列に解かれる。複数の下位問題は、互いに独立しているとして扱うことができ、従って、同時に解くことができる。
【0075】
下位問題のこの並列解決の間に、計算ソルバは、下位問題毎に、上位n個の最良の答えを得るために使用されてよい。以下のパラメータαは、非常に小さな定数として設定されてよい。その結果、一般に、考慮されないベクトル空間の貢献は、現在の下位問題を解く際に考慮されない。代わりに、小さな重みのみが、タイブレーカの目的で貢献を考慮するために使用される。下位問題の形成は、以下のように表すことができる:
【数16】
【0076】
下位問題の代替の形成は、以下に示すように部分的貢献と共に考慮され、以下のように適用されてよい:
【数17】
【0077】
問題分解の結果は、幾つかの制約において考慮されるベクトル空間の部分集合をカバーしてよい。例えば、第1ペナルティ項目P1は、工場の全体集合に渡り、製品モデルcの累積負荷を考慮する。しかしながら、下位問題は、工場の全体集合の部分集合である{m}のみをカバーしてよい。従って、部分的貢献PCT1,d',cの形成が目的関数の計算において適用される。全部の部分的貢献の重みの形成は、以下に示される:
【数18】
【0078】
下位問題の各々はブロック320の間に解かれるので、各下位問題は、最終的な大規模な複雑な組合せ問題の対する解として考えられてよい解を生成する。製造スケジューリング問題の場合には、各下位問題は、ブロック325で最終的な主要問題において考慮されるべき候補として、製造スケジュールのリストを生成する。
【0079】
理解されるべきことに、Digital Annealerのような計算ソルバは、複数の答えを生成してよい。更に、幾つかの下位問題は、最大で128個の異なる答えを有することができ、他のものは1つの答えのみを有する。THより小さくなるよう候補のサイズを制御するために、処理は、候補プールからの最良候補を識別するために、又はその他の場合に可能な候補のサイズを削減するために、使用されてよい。
【0080】
一実施形態では、最終候補を生成するアルゴリズムは、以下であってよい:
Z:Final_candidate_list=[]
For n=1 to 128:
For k in all sub-problems:
・sub-problem[k].ans[n]をFinal_candidate_listに含める、
・Final_candidate_listのサイズ>THならば、break。
【0081】
理解されるように、最終的な主要問題の最終候補を選択するために、異なる方針を検討することも可能であってよい。例えば、候補は、下位問題の異なる分割から選択されてよい。例えば、2つの異なる分割に基づき下位問題の2つの集合があるとき、各方針から生成された最も上位の最良の候補が、最終的な主要問題の候補の中で検討できる。
【0082】
ブロック325で、最終候補集合のサイズZはTHより小さいので、最適化ソルバは、次に、主要問題を解くために使用される:
【数19】
【0083】
理解されるように、本願明細書でシステム及び方法を用いて説明されたような、大規模な複雑な組合せ問題を分解する能力を用いることにより、現在当業界で利用可能な高度な最適化ソルバを用いてさえ従来容易に解くことができなかった問題を、効率的且つ効果的に解くことが可能になる。従って、本願明細書に記載された方法及びシステムは、従来可能でなかった利益を提供し、問題を処理し及び解く既存の最適化ソルバの能力を向上する。解により適する1つのそのような問題の例として、製造スケジューリング問題が、本願明細書に記載したシステム及び方法の単一の実用的な適用として本願明細書で説明された。理解されるべきことに、他の適用も本願明細書に記載した問題分解方法及びシステムから利益を享受できる。
【0084】
更に、理解されるべきことに、本開示で使用されるとき、用語「モジュール」又は「コンポーネント」は、モジュール又はコンポーネントの動作を実行するよう構成される特定ハードウェア実装、及び/又は、コンピューティングシステムの汎用ハードウェア(例えば、コンピュータ可読媒体、処理装置、等)により格納され及び/又は実行され得るソフトウェアオブジェクト又はソフトウェアルーチンを表してよい。幾つかの実施形態では、本開示に記載されたものと異なるコンポーネント、モジュール、エンジン、及びサービスが、コンピューティングシステム上で実行するオブジェクト又はプロセス(例えば、別個のスレッド)として実装されてよい。本開示に記載されたシステム及び方法のうちの一部は、概して(汎用ハードウェアに格納される及び/又はそれにより実行される)ソフトウェアで実装されるとして記載されたが、専用ハードウェア実装又はソフトウェア及び専用ハードウェア実装の組み合わせも、可能であり想定される。この記載において、「コンピューティングエンティティ」は、本開示において前述した任意のコンピューティングシステム、又はコンピューティングシステム上で実行する任意のモジュール若しくはモジュールの組み合わせであってよい。
【0085】
本開示で及び特に添付の特許請求の範囲(例えば、添付の請求項本体)で使用される用語は、通常、「広義」の用語として意図される(例えば、用語「含む」は「含むが、これに限定されない」と解釈されるべきであり、用語「有する」は「有するが、これに限定されない」と解釈されるべきである、等)。
【0086】
さらに、特定数の導入された請求項の列挙が意図される場合、このような意図は、請求項中に明示的に示され、このような列挙のない場合、このような意図は存在しない。例えば、理解の支援として、以下の添付の請求項は、請求項の列挙を導入するために、導入フレーズ「少なくとも1つ」及び「1つ以上」の使用を含み得る。しかしながら、このようなフレーズの使用は、同じ請求項が導入フレーズ「1つ以上」又は「少なくとも1つ」及び不定冠詞「a」又は「an」を含むときでも(例えば、「a」及び/又は「an」は「少なくとも1つ」又は「1つ以上」を意味すると解釈されるべきである)、不定冠詞「a」又は「an」による請求項の列挙の導入が、このような導入された請求項の列挙を含む任意の特定の請求項を、1つのこのような列挙のみを含む実施形態に限定することを意味すると考えられるべきではない。つまり、同じことが、請求項の列挙を導入するために使用される定冠詞の使用にも当てはまる。
【0087】
さらに、特定数の導入された請求項の列挙が明示的に記載される場合、当業者は、このような列挙が、少なくとも列挙された数を意味すると解釈されるべきであることを理解する(例えば、他の修飾のない「2つの列挙」の記載は、少なくとも2つの列挙、又は2以上の列挙を意味する)。さらに、「A、B、及びC等のうちの少なくとも1つ」又は「A、B、及びC等のうちの1つ以上」と同様の記載が使用される例では、通常、このような構成は、A単独で、B単独で、C単独で、A及びBを一緒に、A及びCを一緒に、B及びCを一緒に、又はA、B、及びCを一緒に、等を含むことを意図する。更に、用語「及び/又は」の使用は、この方法で解釈されることが意図される。
【0088】
さらに、2以上の選択的な用語を表す任意の離接的な語又はフレーズは、説明、請求項、又は図面にあるかにかかわらず、用語のうちの1つ、用語のうちのいずれか、又は両方の用語を含む可能性を想定すると理解されるべきである。例えば、フレーズ「A又はB」は、用語「及び/又は」が他の場所で使用される場合でも、「A」又は「B」又は「A及びB」の可能性を含むと理解されるべきである。
【0089】
本開示に記載された全ての例及び条件付き言語は、読者が本開示及び本開示が技術を更に発展させることに貢献する概念を理解するのを支援する教示目的を意図しており、そのような具体的に列挙された例及び条件に限定されないと解釈されるべきである。本開示の実施形態は詳細に記載されたが、本開示の精神及び範囲から逸脱することなく、これらに種々の変更、代替、及び選択が行われ得る。
【0090】
以上に開示した実施形態に加えて、更に以下の実施例を開示する。
(付記1) 大規模な複雑な組合せ問題を解決する、コンピュータにより実施される方法であって、前記方法は、
前記大規模な複雑な組合せ問題を入力として受信するステップと、
前記大規模な複雑な組合せ問題の決定変数空間を、前記大規模な複雑な組合せ問題の全決定変数の部分集合に対応する複数の基本属性単位に変換するステップと、
前記大規模な複雑な組合せ問題を、前記複数の基本属性単位の複数の部分問題に分解するステップと、
最適化ソルバを用いて、前記複数の部分問題を並列に解き、前記複数の部分問題の解に対応する複数の解候補を出力するステップと、
前記最適化ソルバ及び前記複数の候補解を用いて、前記大規模な複雑な組合せ問題を解くステップと、
を含む、コンピュータにより実施される方法。
(付記2) 前記大規模な複雑な組合せ問題の前記決定変数空間を、前記複数の基本属性単位に変換するステップは、前記複数の基本属性単位を前記全決定変数に対応するベクトル空間で構成するステップを含む、付記1に記載のコンピュータにより実施される方法。
(付記3) 前記複数の基本属性単位を、複数の部分問題に分解するステップは、任意の2つの部分問題の間の干渉を最小化するステップを含む、付記1に記載のコンピュータにより実施される方法。
(付記4) 前記複数の基本属性単位を、複数の部分問題に分解するステップは、集合パーティションを用いて、任意の2つの部分問題の間の干渉を最小化するステップを含む、付記3に記載のコンピュータにより実施される方法。
(付記5) 前記複数の基本属性単位の中で表される属性に優先度を適用して、前記複数の部分問題を生成するステップ、を更に含む付記3に記載のコンピュータにより実施される方法。
(付記6) 前記基本属性単位のうちの異なる属性の中で種々の粒度の部分問題を含み、前記複数の部分問題を生成するステップ、を更に含む付記3に記載のコンピュータにより実施される方法。
(付記7) 前記複数の部分問題を並列に解いて、前記複数の候補解を出力するステップは、前記複数の部分問題のうちの各部分問題から生成された複数の最良候補を識別するステップを含む、付記1に記載のコンピュータにより実施される方法。
(付記8) 前記複数の部分問題及び前記大規模な複雑な組合せ問題の各々を解くために必要な計算処理能力は、前記最適化ソルバの所定の閾値より低い、付記1に記載のコンピュータにより実施される方法。
(付記9) 前記大規模な複雑な組合せ問題は、どのリソース及び設備が特定の時間に所与の製品を製造することに向けられるべきかを指示する製造スケジュールを生成するための製造スケジューリング問題を含む、付記1に記載のコンピュータにより実施される方法。
(付記10) 命令を格納するよう構成される1つ以上のコンピュータ可読媒体であって、前記命令は、システムにより実行されると、該システムに動作を実行させる又は実行するよう指示し、前記動作は、
前記大規模な複雑な組合せ問題を入力として受信するステップと、
前記大規模な複雑な組合せ問題の決定変数空間を、前記大規模な複雑な組合せ問題の全決定変数の部分集合に対応する複数の基本属性単位に変換するステップと、
前記大規模な複雑な組合せ問題を、前記複数の基本属性単位の複数の部分問題に分解するステップと、
前記複数の部分問題を並列に解き、前記複数の部分問題の解に対応する複数の解候補を出力するステップと、
前記複数の候補解を用いて、前記大規模な複雑な組合せ問題を解くステップと、
を含む、1つ以上のコンピュータ可読媒体。
(付記11) 前記大規模な複雑な組合せ問題の前記決定変数空間を、前記複数の基本属性単位に変換するステップは、前記複数の基本属性単位を前記全決定変数に対応するベクトル空間で構成するステップを含む、付記10に記載の1つ以上のコンピュータ可読媒体。
(付記12) 前記複数の基本属性単位を、複数の部分問題に分解するステップは、任意の2つの部分問題の間の干渉を最小化するステップを含む、付記10に記載の1つ以上のコンピュータ可読媒体。
(付記13) 前記複数の基本属性単位を、複数の部分問題に分解するステップは、集合パーティションを用いて、任意の2つの部分問題の間の干渉を最小化するステップを含む、付記12に記載の1つ以上のコンピュータ可読媒体。
(付記14) 前記複数の部分問題を並列に解いて、前記複数の候補解を出力するステップは、前記複数の部分問題のうちの各部分問題から生成された複数の最良候補を識別するステップを含む、付記10に記載の1つ以上のコンピュータ可読媒体。
(付記15) 前記複数の部分問題及び前記大規模な複雑な組合せ問題の各々を解くために必要な計算処理能力は、前記システムの所定の閾値より低い、付記10に記載の1つ以上のコンピュータ可読媒体。
(付記16) 前記大規模な複雑な組合せ問題は、どのリソース及び設備が特定の時間に所与の製品を製造することに向けられるべきかを指示する製造スケジュールを生成するための製造スケジューリング問題である、付記10に記載の1つ以上のコンピュータ可読媒体。
(付記17) システムであって、
命令を格納するよう構成される1つ以上のコンピュータ可読記憶媒体と、
前記1つ以上のコンピュータ可読記憶媒体に通信可能に結合され、前記命令の実行に応答して、前記システムに動作を実行させるよう構成される1つ以上のプロセッサと、
を含み、前記動作は、
前記大規模な複雑な組合せ問題を入力として受信するステップと、
前記大規模な複雑な組合せ問題の決定変数空間を、前記大規模な複雑な組合せ問題の全決定変数の部分集合に対応する複数の基本属性単位に変換するステップと、
前記大規模な複雑な組合せ問題を、前記複数の基本属性単位の複数の部分問題に分解するステップと、
最適化ソルバを用いて、前記複数の部分問題を並列に解き、前記複数の部分問題の解に対応する複数の解候補を出力するステップと、
前記最適化ソルバ及び前記複数の候補解を用いて、前記大規模な複雑な組合せ問題を解くステップと、
を含む、システム。
(付記18) 前記大規模な複雑な組合せ問題の前記決定変数空間を、前記複数の基本属性単位に変換するステップは、前記複数の基本属性単位を前記全決定変数に対応するベクトル空間で構成するステップを含む、付記17に記載のシステム。
(付記19) 前記複数の基本属性単位を、複数の部分問題に分解するステップは、集合パーティションを用いて、任意の2つの部分問題の間の干渉を最小化するステップを含む、付記17に記載のシステム。
(付記20) 前記複数の部分問題及び前記大規模な複雑な組合せ問題の各々を解くために必要な計算処理能力は、前記最適化ソルバの所定の閾値より低い、付記17に記載のシステム。
【符号の説明】
【0091】
110 システム
111 プロセッサ
112 メモリ
113 データ記憶装置
114 通信ユニット
図1
図2
図3
図4
図5