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

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

▶ 株式会社東芝の特許一覧 ▶ 東芝ソリューション株式会社の特許一覧

特開2024-175889計算装置、計算方法、プログラムおよび回路情報
<>
  • 特開-計算装置、計算方法、プログラムおよび回路情報 図1
  • 特開-計算装置、計算方法、プログラムおよび回路情報 図2
  • 特開-計算装置、計算方法、プログラムおよび回路情報 図3
  • 特開-計算装置、計算方法、プログラムおよび回路情報 図4
  • 特開-計算装置、計算方法、プログラムおよび回路情報 図5
  • 特開-計算装置、計算方法、プログラムおよび回路情報 図6
  • 特開-計算装置、計算方法、プログラムおよび回路情報 図7
  • 特開-計算装置、計算方法、プログラムおよび回路情報 図8
  • 特開-計算装置、計算方法、プログラムおよび回路情報 図9
  • 特開-計算装置、計算方法、プログラムおよび回路情報 図10
  • 特開-計算装置、計算方法、プログラムおよび回路情報 図11
  • 特開-計算装置、計算方法、プログラムおよび回路情報 図12
  • 特開-計算装置、計算方法、プログラムおよび回路情報 図13
  • 特開-計算装置、計算方法、プログラムおよび回路情報 図14
  • 特開-計算装置、計算方法、プログラムおよび回路情報 図15
  • 特開-計算装置、計算方法、プログラムおよび回路情報 図16
  • 特開-計算装置、計算方法、プログラムおよび回路情報 図17
  • 特開-計算装置、計算方法、プログラムおよび回路情報 図18
  • 特開-計算装置、計算方法、プログラムおよび回路情報 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024175889
(43)【公開日】2024-12-19
(54)【発明の名称】計算装置、計算方法、プログラムおよび回路情報
(51)【国際特許分類】
   G06Q 10/04 20230101AFI20241212BHJP
【FI】
G06Q10/04
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2023093971
(22)【出願日】2023-06-07
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(71)【出願人】
【識別番号】301063496
【氏名又は名称】東芝デジタルソリューションズ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】鈴木 賢
【テーマコード(参考)】
5L010
5L049
【Fターム(参考)】
5L010AA04
5L049AA04
(57)【要約】
【課題】多目的最小化問題における近似パレート解集合を少ない計算量で精度良く算出する。
【解決手段】計算装置は、予測部と、選択部と、更新部と、繰返制御部と、出力部とを備える。予測部は、複数のウェイトパターンのそれぞれについて、対応するウェイトパターンを用いてパレート超体積の増加量を予測する予測処理を実行する。選択部は、増加量が最大となる最大ウェイトパターンを選択する選択処理を実行する。更新部は、複数の目的関数と最大ウェイトパターンにより表される複数のウェイト係数との線形加重和である合成目的関数を最小化する問題における複数の解をソルバ装置から取得して候補解集合に加えることにより、候補解集合を更新する更新処理を実行する。繰返制御部は、予測処理と、選択処理と、更新処理とを繰り返す繰返制御をする。出力部は、候補解集合のうちの非劣解を含む集合を近似パレート解集合として出力する。
【選択図】図6
【特許請求の範囲】
【請求項1】
複数の目的関数を最小化する多目的最小化問題におけるパレート解に近似した近似パレート解を含む近似パレート解集合を算出する計算装置であって、
前記複数の目的関数を取得する関数取得部と、
前記複数の目的関数に一対一で対応する複数のウェイト係数を表す複数のウェイトパターンのそれぞれについて、対応するウェイトパターンを用いて、前記近似パレート解の候補である候補解を含む候補解集合を更新する場合における、劣解領域の超体積であるパレート超体積の増加量を予測する予測処理を実行する予測部と、
前記複数のウェイトパターンのうちの前記増加量が最大となるウェイトパターンを、最大ウェイトパターンとして選択する選択処理を実行する選択部と、
前記複数の目的関数と前記最大ウェイトパターンにより表される前記複数のウェイト係数との線形加重和である合成目的関数を最小化する問題における複数の解をソルバ装置から取得し、取得した前記複数の解のうちの少なくとも一部の解を前記候補解として前記候補解集合に加えることにより、前記候補解集合を更新する更新処理を実行する更新部と、
前記予測処理と、前記選択処理と、前記更新処理とを繰り返す繰返制御をする繰返制御部と、
前記繰返制御が終了した後、前記候補解集合に含まれる前記候補解のうちの非劣解を選択し、選択した前記非劣解を含む集合を前記近似パレート解集合として出力する出力部と、
を備える計算装置。
【請求項2】
前記劣解領域は、前記複数の目的関数の全てを満たす実行可能解の領域のうちの、前記候補解集合に含まれる前記候補解が前記非劣解として選択されない領域である
請求項1に記載の計算装置。
【請求項3】
前記更新部は、取得した前記複数の解のうちの前記合成目的関数の値が予め定められた基準値以下または前記合成目的関数の値が小さい方から所定個の解を前記候補解として前記候補解集合に加える
請求項1に記載の計算装置。
【請求項4】
前記合成目的関数は、それぞれに前記複数のウェイト係数のうちの対応するウェイト係数が乗算された前記複数の目的関数を加算した関数である
請求項1に記載の計算装置。
【請求項5】
前記予測部は、それぞれに前記対応するウェイトパターンにより表される前記複数のウェイト係数が乗算された前記複数の目的関数を加算した関数を最小化する解を、前記候補解として前記候補解集合に加える場合における、前記パレート超体積の前記増加量を予測する
請求項1に記載の計算装置。
【請求項6】
前記関数取得部は、さらに、制約条件を取得し、
前記更新部は、前記複数の解のうちの、前記制約条件を満たす解を、前記候補解として前記候補解集合に加える
請求項1に記載の計算装置。
【請求項7】
前記多目的最小化問題におけるパレート解集合の凸閉包に近似した集合に含まれる複数の凸閉包解を取得する凸閉包取得部と、
前記複数の目的関数のそれぞれについて、前記複数の凸閉包解のそれぞれを対応する目的関数に代入して得られる各値のうちの最大値を取得する最大値取得部と、
前記複数の目的関数のそれぞれについて、前記複数の凸閉包解のそれぞれを対応する目的関数に代入して得られる各値のうちの最小値を取得する最小値取得部と、
前記複数の目的関数のそれぞれを前記最小値が得られる解を代入した場合に0となり、前記最大値が得られる解を代入した場合に1となるように係数を乗じるとともに平行移動し、さらに1より大きい予め設定された第1乗数でべき乗することにより、前記複数の目的関数のそれぞれを修正する関数修正部と、
をさらに備え、
前記繰返制御部は、修正した前記複数の目的関数を用いて、前記予測処理と、前記選択処理と、前記更新処理とを繰り返す前記繰返制御をする
請求項1に記載の計算装置。
【請求項8】
前記繰返制御部は、前記繰返制御に先立って、前記複数の凸閉包解を、前記候補解集合に含める
請求項7に記載の計算装置。
【請求項9】
前記関数取得部は、さらに、制約条件を取得し、
前記更新部は、前記複数の解のうちの、前記制約条件を満たす解を前記候補解として前記候補解集合に加える
請求項7に記載の計算装置。
【請求項10】
複数の目的関数を最小化する多目的最小化問題におけるパレート解に近似した近似パレート解を含む近似パレート解集合を、情報処理装置により算出する計算方法であって、
前記情報処理装置が、前記複数の目的関数を取得し、
前記情報処理装置が、前記複数の目的関数に一対一で対応する複数のウェイト係数を表す複数のウェイトパターンのそれぞれについて、対応するウェイトパターンを用いて、前記近似パレート解の候補である候補解を含む候補解集合を更新する場合における、劣解領域の超体積であるパレート超体積の増加量を予測する予測処理を実行し、
前記情報処理装置が、前記複数のウェイトパターンのうちの前記増加量が最大となるウェイトパターンを、最大ウェイトパターンとして選択する選択処理を実行し、
前記情報処理装置が、前記複数の目的関数と前記最大ウェイトパターンにより表される前記複数のウェイト係数との線形加重和である合成目的関数を最小化する問題における複数の解をソルバ装置から取得し、取得した前記複数の解のうちの少なくとも一部の解を前記候補解として前記候補解集合に加えることにより、前記候補解集合を更新する更新処理を実行し、
前記予測処理と、前記選択処理と、前記更新処理とを繰り返す繰返制御をする繰返制御部と、
前記情報処理装置が、前記繰返制御が終了した後、前記候補解集合に含まれる前記候補解のうちの非劣解を選択し、選択した前記非劣解を含む集合を前記近似パレート解集合として出力する
計算方法。
【請求項11】
情報処理装置を、複数の目的関数を最小化する多目的最小化問題におけるパレート解に近似した近似パレート解を含む近似パレート解集合を算出する計算装置として機能させるためのプログラムであって、
前記情報処理装置を、
前記複数の目的関数を取得する関数取得部と、
前記複数の目的関数に一対一で対応する複数のウェイト係数を表す複数のウェイトパターンのそれぞれについて、対応するウェイトパターンを用いて、前記近似パレート解の候補である候補解を含む候補解集合を更新する場合における、劣解領域の超体積であるパレート超体積の増加量を予測する予測処理を実行する予測部と、
前記複数のウェイトパターンのうちの前記増加量が最大となるウェイトパターンを、最大ウェイトパターンとして選択する選択処理を実行する選択部と、
前記複数の目的関数と前記最大ウェイトパターンにより表される前記複数のウェイト係数との線形加重和である合成目的関数を最小化する問題における複数の解をソルバ装置から取得し、取得した前記複数の解のうちの少なくとも一部の解を前記候補解として前記候補解集合に加えることにより、前記候補解集合を更新する更新処理を実行する更新部と、
前記予測処理と、前記選択処理と、前記更新処理とを繰り返す繰返制御をする繰返制御部と、
前記繰返制御が終了した後、前記候補解集合に含まれる前記候補解のうちの非劣解を選択し、選択した前記非劣解を含む集合を前記近似パレート解集合として出力する出力部と、
して機能させるプログラム。
【請求項12】
ハードウェア記述言語により記載された、回路の構成を表す回路情報であって、
前記回路を、複数の目的関数を最小化する多目的最小化問題におけるパレート解に近似した近似パレート解を含む近似パレート解集合を算出する計算装置として機能させ、
前記計算装置は、
前記複数の目的関数を取得する関数取得部と、
前記複数の目的関数に一対一で対応する複数のウェイト係数を表す複数のウェイトパターンのそれぞれについて、対応するウェイトパターンを用いて、前記近似パレート解の候補である候補解を含む候補解集合を更新する場合における、劣解領域の超体積であるパレート超体積の増加量を予測する予測処理を実行する予測部と、
前記複数のウェイトパターンのうちの前記増加量が最大となるウェイトパターンを、最大ウェイトパターンとして選択する選択処理を実行する選択部と、
前記複数の目的関数と前記最大ウェイトパターンにより表される前記複数のウェイト係数との線形加重和である合成目的関数を最小化する問題における複数の解をソルバ装置から取得し、取得した前記複数の解のうちの少なくとも一部の解を前記候補解として前記候補解集合に加えることにより、前記候補解集合を更新する更新処理を実行する更新部と、
前記予測処理と、前記選択処理と、前記更新処理とを繰り返す繰返制御をする繰返制御部と、
前記繰返制御が終了した後、前記候補解集合に含まれる前記候補解のうちの非劣解を選択し、選択した前記非劣解を含む集合を前記近似パレート解集合として出力する出力部と、
を備える回路情報。
【請求項13】
再構成可能な半導体装置を動作させるために、前記再構成可能な半導体装置に書き込まれる回路情報であって、
前記再構成可能な半導体装置を、複数の目的関数を最小化する多目的最小化問題におけるパレート解に近似した近似パレート解を含む近似パレート解集合を算出する計算装置として機能させ、
前記計算装置は、
前記複数の目的関数を取得する関数取得部と、
前記複数の目的関数に一対一で対応する複数のウェイト係数を表す複数のウェイトパターンのそれぞれについて、対応するウェイトパターンを用いて、前記近似パレート解の候補である候補解を含む候補解集合を更新する場合における、劣解領域の超体積であるパレート超体積の増加量を予測する予測処理を実行する予測部と、
前記複数のウェイトパターンのうちの前記増加量が最大となるウェイトパターンを、最大ウェイトパターンとして選択する選択処理を実行する選択部と、
前記複数の目的関数と前記最大ウェイトパターンにより表される前記複数のウェイト係数との線形加重和である合成目的関数を最小化する問題における複数の解をソルバ装置から取得し、取得した前記複数の解のうちの少なくとも一部の解を前記候補解として前記候補解集合に加えることにより、前記候補解集合を更新する更新処理を実行する更新部と、
前記予測処理と、前記選択処理と、前記更新処理とを繰り返す繰返制御をする繰返制御部と、
前記繰返制御が終了した後、前記候補解集合に含まれる前記候補解のうちの非劣解を選択し、選択した前記非劣解を含む集合を前記近似パレート解集合として出力する出力部と、
を備える回路情報。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、計算装置、計算方法、プログラムおよび回路情報に関する。
【背景技術】
【0002】
実社会における最適化問題の多くは、単一の評価値によって最適解が定まるのではなく、複数の評価値を考慮して最適解が定まる。このような複数の評価値を用いる最適化問題を、多目的最適化問題と呼ぶ。多目的最適化問題では、理想解をパレート解と呼ぶ。多目的最適化問題は、評価値のバランスが異なる複数のパレート解が存在する。実社会における最適化問題の多くは、このような複数のパレート解に基づき、複数の評価値のトレードオフを考慮して最適解が定められる。
【0003】
多目的最適化問題を解いて複数のパレート解を算出する方法として、制約法、線形加重和法および多目的最適化法が知られている。
【0004】
制約法は、複数の評価値のうちの1個の評価値を目的関数により表し、他の評価値を制約条件として表す。そして、制約法は、制約条件による制約の下で、目的関数を最適化する解を、最適化ソルバを用いて解く。しかし、制約法は、制約条件を合理的に決定することが難しい。また、制約法は、目的関数を最適化する解を制約条件を変更して複数回解かなければ、バランスが異なる複数のパレート解を得ることができない。
【0005】
線形加重和法は、複数の評価値のそれぞれを個別の目的関数により表す。そして、線形加重和法は、複数の目的関数と複数のウェイト係数との線形加重和を算出して合成目的関数を生成する。しかし、線形加重和法は、複数のウェイト係数を合理的に決定することが難しい。また、線形加重和法は、複数のウェイト係数を変更して合成目的関数を最適化する解を複数回解かなければ、バランスが異なる複数のパレート解を得ることができない。また、線形加重和法は、実行可能解を含む集合が非凸の場合、凹み部分のパレート解を得ることができない。
【0006】
多目的最適化法は、多目的最適化ソルバにより多目的最適化問題を解く。しかし、多目的最適化ソルバは、アルゴリズムが複雑であり、計算量も膨大となってしまう。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2022-118555号公報
【特許文献2】特開2021-043667号公報
【特許文献3】特開2021-043589号公報
【非特許文献】
【0008】
【非特許文献1】Yoshihiko Ozaki, Yuki Tanigaki, Shuhei Watanabe and Masaki Onishi, “Multiobjective Tree-structured Parzen Estimator for Computationally Expensive Optimization Problems”, Association for Computing Machinery, The Genetic and Evolutionary Computation Conference, 2020 June, pp. 533-541
【非特許文献2】Preferred Networks, Optuna(登録商標), [2023年5月12日検索], インターネット<URL, https://optuna.org/>, <URL, https://optuna.readthedocs.io/en/stable/reference/samplers/generated/optuna.samplers.MOTPESampler.html>
【非特許文献3】Hayato Goto, Kosuke Tatsumura and Alexander R. Dixon, “Combinatorial optimization by simulating adiabatic bifurcations in nonlinear Hamiltonian systems,” Science Advances 5, eaav2372, 2019
【非特許文献4】Hayato Goto, Kotaro Endo, Masaru Suzuki, Yoshisato Sakai, Taro Kanao, Yohei Hamakawa, Ryo Hidaka, Masaya Yamasaki and Kosuke Tatsumura, “High-performance combinatorial optimization based on classical mechanics”, Science Advances 7, eabe7953, 2021
【発明の概要】
【発明が解決しようとする課題】
【0009】
本発明が解決しようとする課題は、多目的最小化問題における複数の近似パレート解を、少ない計算量で精度良く算出することができる計算装置、計算方法、プログラムおよび回路情報を提供することにある。
【課題を解決するための手段】
【0010】
実施形態に係る計算装置は、複数の目的関数を最小化する多目的最小化問題におけるパレート解に近似する近似パレート解を含む近似パレート解集合を算出する。前記計算装置は、関数取得部と、予測部と、選択部と、更新部と、繰返制御部と、出力部と、を備える。前記関数取得部は、前記複数の目的関数を取得する。前記予測部は、前記複数の目的関数に一対一で対応する複数のウェイト係数を表す複数のウェイトパターンのそれぞれについて、対応するウェイトパターンを用いて、前記近似パレート解の候補である候補解を含む候補解集合を更新する場合における、劣解領域の超体積であるパレート超体積の増加量を予測する予測処理を実行する。前記選択部は、前記複数のウェイトパターンのうちの前記増加量が最大となるウェイトパターンを、最大ウェイトパターンとして選択する選択処理を実行する。前記更新部は、前記複数の目的関数と前記最大ウェイトパターンにより表される前記複数のウェイト係数との線形加重和である合成目的関数を最小化する問題における複数の解をソルバ装置から取得し、取得した前記複数の解のうちの少なくとも一部の解を前記候補解として前記候補解集合に加えることにより、前記候補解集合を更新する更新処理を実行する。前記繰返制御部は、前記予測処理と、前記選択処理と、前記更新処理とを繰り返す繰返制御をする。前記出力部は、前記繰返制御が終了した後、前記候補解集合に含まれる前記候補解のうちの非劣解を選択し、選択した前記非劣解を含む集合を前記近似パレート解集合として出力する。
【図面の簡単な説明】
【0011】
図1図1は、第1実施形態に係る計算システムを示す図である。
図2図2は、パレート解を説明するための図である。
図3図3は、候補解が1個の場合のパレート超体積を説明するための図である。
図4図4は、候補解が3個の場合のパレート超体積を説明するための図である。
図5図5は、パレート超体積の増加量を説明するための図である。
図6図6は、第1実施形態に係る計算装置の構成を示す図である。
図7図7は、第1実施形態に係る計算装置の処理の流れを示すフローチャートである。
図8図8は、S16の処理の流れを示すフローチャートである。
図9図9は、特許文献1の技術により多目的最適化問題を解いた場合のパレート解を示す図である。
図10図10は、非特許文献1の技術により多目的最適化問題を解いた場合の近似パレート解を示す図である。
図11図11は、第1実施形態に係る計算装置により多目的最適化問題を解いた場合の近似パレート解を示す図である。
図12図12は、実行可能解の集合が非凸である場合における、第1実施形態に係る計算装置により算出される近似パレート解を説明するための図である。
図13図13は、第2実施形態に係る計算装置の構成を示す図である。
図14図14は、第3実施形態に係る計算装置の構成を示す図である。
図15図15は、第3実施形態に係る計算装置の処理の流れを示すフローチャートである。
図16図16は、S41の処理の流れを示すフローチャートである。
図17図17は、実行可能解の集合が非凸である場合における、第3実施形態に係る計算装置により算出される近似パレート解集合を示す図である。
図18図18は、第4実施形態に係る計算装置の構成を示す図である。
図19図19は、計算装置のハードウェアブロック図である。
【発明を実施するための形態】
【0012】
(第1実施形態)
図1は、計算システム10の機能構成を示す図である。
【0013】
計算システム10は、計算装置20と、ソルバ装置22とを備える。
【0014】
計算装置20は、複数の目的関数を最小化する多目的最小化問題におけるパレート解に近似した近似パレート解を含む近似パレート解集合を算出する。計算装置20は、1または複数のハードウェアプロセッサ、コンピュータまたはサーバ等がプログラムを実行することにより実現される。
【0015】
計算装置20は、近似パレート解集合を算出する過程において、ウェイトパターンを変えることにより異なる合成目的関数を繰り返して生成する。合成目的関数は、複数の目的関数と、ウェイトパターンにより表される複数のウェイト係数との線形加重和である。計算装置20は、合成目的関数を生成する毎に、生成した合成目的関数をソルバ装置22に与えて、ソルバ装置22から合成目的関数を最小化する複数の解を取得する。
【0016】
ソルバ装置22は、与えられた関数を最小化する解を求解する求解処理を実行する。そして、ソルバ装置22は、与えられた合成目的関数について、複数の解を出力する。
【0017】
ソルバ装置22は、ヒューリスティクスな解法アルゴリズムにより、合成目的関数を最小化する問題を解くことにより、厳密解のみならず、近似解を求解する。これにより、ソルバ装置22は、与えられた合成目的関数を最小化する複数の解を出力することができる。なお、ソルバ装置22は、ヒューリスティクスな解法アルゴリズムにより問題を解くことにより得られる大量の解のうちの、例えば解を合成目的関数に代入して得られる値が所定値より小さい複数の解、または、例えば解を合成目的関数に代入して得られる値が小さい方から所定個の複数の解を出力する。
【0018】
ソルバ装置22は、関数を最小化する複数の解を得ることができる装置であれば、どのような装置であってもよい。例えば、ソルバ装置22は、量子アニーリング技術を用いた装置であっても、疑似量子アニーリング技術を用いた装置であってもよい。
【0019】
本実施形態においては、ソルバ装置22は、シミュレーテッド分岐アルゴリズムを用いて問題を解く。シミュレーテッド分岐アルゴリズムは、例えば、非特許文献3、非特許文献4、特許文献2および特許文献3に示されている。シミュレーテッド分岐アルゴリズムは、量子断熱定理に基づく量子力学的最適化手法から着想を得て発見されたため、量子インスパイアドアルゴリズムとも呼ばれる。シミュレーテッド分岐アルゴリズムは、コスト関数が複数の2値決定変数の2次関数である組合せ最適化問題、すなわち、QUBO(Quadratic Unconstrained Binary Optimization)問題を解くことができる。シミュレーテッド分岐アルゴリズムは、コスト関数が複数の2値決定変数の3次以上の関数である組合せ最適化問題、すなわち、HUBO(Higher Order Binary Optimization)問題も解くことができる。HUBO問題を解くシミュレーテッド分岐アルゴリズムは、例えば、特許文献2に示されている。また、シミュレーテッド分岐アルゴリズムは、複数の決定変数の一部または全部に連続値の変数を含む組合せ最適化問題を解くこともできる。複数の決定変数の一部または全部に連続値の変数を含む組合せ最適化問題を解くシミュレーテッド分岐アルゴリズムは、例えば、特許文献3に示されている。
【0020】
また、本実施形態において、ソルバ装置22は、それぞれが独立にシミュレーテッド分岐アルゴリズムを実行する複数のエンジンを含む。ソルバ装置22は、複数のエンジンを並列に実行することにより、与えられた1個の合成目的関数に対して複数の解を出力する。ソルバ装置22は、1個のエンジンがシミュレーテッド分岐アルゴリズムを複数回繰り返して実行することにより、複数の解を出力してもよい。
【0021】
シミュレーテッド分岐アルゴリズムは、与えられる合成目的関数に含まれる複数の決定変数に対して一対一に対応する複数の位置変数および複数の運動量変数を用いる。シミュレーテッド分岐アルゴリズムは、実行開始時において、複数の位置変数または複数の運動量変数に対して、初期値群を設定する。シミュレーテッド分岐アルゴリズムは、複数の位置変数および複数の運動量変数に対して設定される初期値群が異なる場合、異なる近似解を出力する可能性が高くなる。本実施形態においては、ソルバ装置22は、複数のエンジンのそれぞれが用いる複数の位置変数または複数の運動量変数に対して、互いに異なる複数の初期値群を設定することにより、複数の解を出力する。
【0022】
つぎに、多目的最小化問題、合成目的関数および評価値について説明する。
【0023】
式(1)は、多目的最小化問題に含まれる複数の目的関数を表す。
【数1】
【0024】
(x),f(x),…,f(x),…,f(x)のそれぞれは、目的関数を表す。Mは、複数の目的関数の個数を表し、2以上の整数である。mは、複数の目的関数のうちの何れか1つを特定するインデックスを表し、1以上、M以下の整数である。f(x)は、M個の目的関数のうちのm番目の目的関数を表す。
【0025】
,x,…,x,…,xのそれぞれは、決定変数を表す。Nは、複数の目的関数に含まれる複数の決定変数の個数を表し、2以上の整数である。nは、複数の決定変数のうちの何れか1つを特定するインデックスを表し、1以上、N以下の整数である。xは、複数の決定変数のうちのn番目の決定変数を表す。
【0026】
なお、複数の目的関数のそれぞれは、複数の決定変数のうちの何れかの決定変数を含まなくてもよい。すなわち、複数の目的関数のそれぞれは、複数の決定変数のうちの何れかの決定変数を含む項の係数が、0であってもよい。
【0027】
複数の決定変数のそれぞれ、および、複数の目的関数のそれぞれは、ソルバ装置22により解を求解可能な変数および関数である。例えば、ソルバ装置22がQUBO問題を解く場合、複数の決定変数のそれぞれは2値変数であり、複数の目的関数のそれぞれは2次関数である。また、ソルバ装置22がHUBO問題を解くことができる場合、複数の決定変数のそれぞれは2値変数であり、複数の目的関数のそれぞれはソルバ装置22が求解可能な3次以上の関数である。また、ソルバ装置22が連続値を表す決定変数を含む最適化問題を解くことが可能である場合、複数の決定変数は、連続値である決定変数を含んでもよい。
【0028】
なお、計算装置20は、複数の目的関数のうちの一部または全部の目的関数を最大化する多目的最適化問題を受け取ってもよい。この場合、計算装置20は、複数の目的関数のうちの最大化する目的関数に、マイナス値を乗算することにより最小化する目的関数に変換する。これにより、計算装置20は、複数の目的関数のうちの一部または全部の目的関数を最大化する多目的最適化問題を、多目的最小化問題に変換して近似パレート解集合を算出することができる。
【0029】
式(2)は、ウェイトパターン(W)を表す。式(3)は、合成目的関数(F(x))を表す。
【数2】
【数3】
【0030】
ウェイトパターン(W)は、複数の目的関数に一対一に対応する複数のウェイト係数を表す。複数のウェイト係数のそれぞれは、0より大きい実数である。
【0031】
,w、…,w,…wのそれぞれは、ウェイト係数を表す。wは、複数のウェイト係数のうちのm番目のウェイト係数を表す。m番目のウェイト係数は、m番目の目的関数であるf(x)に対応する。
【0032】
合成目的関数(F(x))は、複数の目的関数(f(x),f(x),…,f(x),…,f(x))と、ウェイトパターン(W)により表される複数のウェイト係数(w,w,…,w,…,w)との線形加重和である。すなわち、合成目的関数(F(x))は、複数の目的関数のそれぞれに複数のウェイト係数のうちの対応するウェイト係数が乗算された複数の目的関数を加算した関数である。
【0033】
式(4)は、m番目の目的関数(f(x))の評価値を表す。
【数4】
【0034】
目的関数の評価値は、ソルバ装置22により得られた合成目的関数を最小化する解を、対応する目的関数に含まれる複数の決定変数に代入することにより得られる。目的関数の評価値は、得られた解を評価する値であり、実数により表され、小さいほど良い。
【0035】
図2は、2個の目的関数を最小化する多目的最小化問題のパレート解を説明するための図である。図2は、横軸が1番目の目的関数(f(x))の評価値を表し、縦軸が2番目の目的関数(f(x))の評価値を表す。
【0036】
多目的最小化問題において、実行可能解は、複数の目的関数の全てを満たす解である。多目的最小化問題においてパレート解は、複数の実行可能解のうちの、優越する解が他に存在しない非劣解である。例えば、多目的最小化問題においてパレート解は、複数の目的関数の何れかについて、他の目的関数の評価値を最小値にした状態において、評価値が最も小さくなる解である。
【0037】
図2の例において、AおよびBのそれぞれは、パレート解のうちの1つである。Aは、1番目の目的関数(f(x))の評価値をaに固定した場合に、2番目の目的関数(f(x))の評価値が最も小さくなり、2番目の目的関数(f(x))の評価値をbに固定した場合に、1番目の目的関数(f(x))の評価値が最も小さくなる。また、図2の例において、Bは、1番目の目的関数(f(x))の評価値をaに固定した場合に、2番目の目的関数(f(x))評価値が最も小さくなり、2番目の目的関数(f(x))の評価値をbに固定した場合に、1番目の目的関数(f(x))の評価値が最も小さくなる。
【0038】
また、パレートフロントは、複数のパレート解を結んだ曲面を表す。なお、多目的最小化問題が2個の目的関数を含む場合、パレートフロントは、曲線となる。
【0039】
計算装置20は、このようなパレート解を近似した近似パレート解を含む近似パレート解集合を算出する。近似パレート解は、パレートフロントに近接する非劣解である。ただし、近似パレート解は、パレートフロントに厳密に接するパレート解であってもよい。従って、近似パレート解集合は、厳密にパレートフロントに接するパレート解のみならず、パレートフロントに近接する近似パレート解を含む。なお、近似パレート解集合は、含まれる全ての解がパレート解であってもよい。
【0040】
図3は、候補解が1個の場合のパレート超体積を説明するための図である。図4は、候補解が3個の場合のパレート超体積を説明するための図である。図3および図4は、横軸が1番目の目的関数(f(x))の評価値を表し、縦軸が2番目の目的関数(f(x))の評価値を表す。
【0041】
計算装置20は、ウェイトパターンを変更しながら近似パレート解の候補となる候補解を算出する処理を繰り返し、候補解の数を増加させる。そして、計算装置20は、候補解を算出する処理を、所定回数または十分に良い候補解が得られるまでの回数分実行した後に、算出された複数の候補解の中から複数の近似パレート解を選択する。
【0042】
ここで、計算装置20は、候補解を算出する処理において用いるウェイトパターンを選択するための指標として、パレート超体積の増加量を予測する。
【0043】
パレート超体積は、既に算出された1または複数の候補解を含む候補解集合における、劣解領域の大きさを表す。
【0044】
劣解領域は、複数の目的関数の全てを満たす実行可能解の領域のうちの、候補解集合に含まれる候補解が非劣解として選択されない領域である。非劣解は、候補解集合に、他に優越する解が存在しない解である。すなわち、劣解領域は、その領域内に新たな候補解が追加されたとしても、その追加された新たな候補解が近似パレート解として選択されない領域である。
【0045】
パレート超体積は、多目的最小化問題が2個の目的関数を含む場合には、面積を表し、多目的最小化問題が3個の目的関数を含む場合には、体積を表す。
【0046】
図3に示すように、候補解集合に含まれる候補解が、Cのみであるとする。Cは、1番目の目的関数(f(x))の評価値がaであり、2番目の目的関数(f(x))の評価値がbである。この場合のパレート超体積は、実行可能解の領域における、1番目の目的関数の評価値がa以上であり、且つ、2番目の目的関数の評価値がb以上である範囲の大きさを表す。すなわち、この場合のパレート超体積は、実行可能解の領域における、1番目の目的関数の評価値がaより小さい範囲、および、2番目の目的関数の評価値がbより小さい範囲を除いた範囲の大きさを表す。
【0047】
図4に示すように、候補解集合に含まれる候補解が、C、DおよびEであるとする。Dは、1番目の目的関数(f(x))の評価値がaであり、2番目の目的関数(f(x))の評価値がbである。Eは、1番目の目的関数(f(x))の評価値がaであり、2番目の目的関数(f(x))の評価値がbである。この場合のパレート超体積は、実行可能解の領域における、1番目の目的関数の評価値がa以上であり且つ2番目の目的関数の評価値がb以上である範囲、1番目の目的関数の評価値がa以上であり且つ2番目の目的関数の評価値がb以上である範囲、および、1番目の目的関数の評価値がa以上であり且つ2番目の目的関数の評価値がb以上である範囲を合成した範囲の大きさを表す。
【0048】
図5は、パレート超体積の増加量を説明するための図である。図5は、横軸が1番目の目的関数(f(x))の評価値を表し、縦軸が2番目の目的関数(f(x))の評価値を表す。
【0049】
既に算出された候補解集合に含まれる1または複数の候補解における、劣解領域の外に、新たに候補解が追加される場合、パレート超体積は、増加する。パレート超体積の増加量は、このような場合における増加分を表す。Fは、C、DおよびEを含む候補解集合に追加される新たな候補解である。Fは、1番目の目的関数(f(x))の評価値がaであり、2番目の目的関数(f(x))の評価値がbである。Fが追加される場合におけるパレート超体積の増加量は、(a-a)×(b-b)となる。
【0050】
本実施形態に係る計算装置20は、ウェイトパターンを生成する毎に、生成したウェイトパターンを用いて生成した合成目的関数により算出される候補解におけるパレート超体積の増加量を予測する処理を実行する。
【0051】
パレート超体積の増加量の予測処理は、既存の技術により実現可能である。例えば、非特許文献1には、1または複数の解およびウェイトパターンに基づき、合成目的関数のパレート超体積の増加量を予測するためのアルゴリズムが記載されている。また、非特許文献2に記載されたインターネットサイトでは、1または複数の解およびウェイトパターンに基づき、合成目的関数のパレート超体積の増加量を予測するためのプログラムが提供されている。計算装置20は、これらの技術を利用してパレート超体積の増加量を予測してもよい。
【0052】
図6は、第1実施形態に係る計算装置20の構成を示す図である。
【0053】
第1実施形態に係る計算装置20は、候補解記憶部32と、関数取得部34と、予測部36と、選択部38と、更新部40と、繰返制御部42と、出力部44とを備える。
【0054】
候補解記憶部32は、近似パレート解の候補である候補解を含む候補解集合を記憶する。なお、候補解集合は、処理開始時において、空集合であってもよいし、何らかの方法により算出された実行可能解が含まれていてもよい。
【0055】
関数取得部34は、多目的最小化問題に含まれる複数の目的関数を取得する。
【0056】
予測部36は、予測処理を実行する。予測部36は、予測処理において、互いに異なる複数のウェイトパターンを生成する。予測部36は、予め登録された情報に基づき複数のウェイトパターンを生成してもよい。また、予測部36は、乱数等に基づき複数のウェイトパターンを生成してもよい。さらに、予測部36は、予測処理において、生成した複数のウェイトパターンのそれぞれについて、対応するウェイトパターンを用いて候補解集合を更新する場合における、パレート超体積の増加量を予測する。すなわち、予測部36は、予測処理において、生成した複数のウェイトパターンのそれぞれについて、対応するウェイトパターンを用いて生成した合成目的関数を最小化する解を新たな解候補として候補解集合に追加する場合における、パレート超体積の増加量を予測する。
【0057】
選択部38は、予測部36により生成された複数のウェイトパターンと、複数のウェイトパターンのそれぞれについて予測したパレート超体積の増加量とを取得する。選択部38は、生成された複数のウェイトパターンのうちの増加量が最大となるウェイトパターンを、最大ウェイトパターンとして選択する選択処理を実行する。
【0058】
更新部40は、関数取得部34から複数の目的関数を取得し、選択部38から最大ウェイトパターンを取得する。更新部40は、候補解記憶部32に記憶された候補解集合を更新する更新処理を実行する。更新部40は、更新処理において、複数の目的関数と最大ウェイトパターンにより表される複数のウェイト係数との線形加重和である合成目的関数を生成する。更新部40は、更新処理において、さらに、合成目的関数をソルバ装置22に与え、合成目的関数を最小化する問題における複数の解をソルバ装置22から取得する。
【0059】
そして、更新部40は、更新処理において、ソルバ装置22から取得した複数の解のうちの少なくとも一部の解を候補解として、候補解記憶部32に記憶された候補解集合に加える。例えば、計算装置20は、ソルバ装置22から取得した複数の解の全てを候補解集合に加えてもよい。また、例えば、更新部40は、取得した複数の解のうちの合成目的関数の値が予め定められた基準値以下となる解を候補解集合に加えてもよい。また、例えば、更新部40は、取得した複数の解のうちの合成目的関数の値が小さい方から所定個の解を候補解集合に加えてもよい。
【0060】
繰返制御部42は、予測部36による予測処理と、選択部38による予測部36による選択処理と、予測部36による更新処理とを繰り返す繰返制御をする。繰返制御部42は、予め定められた回数または予め定められた時間、予測処理、選択処理および更新処理を繰り返す。また、繰返制御部42は、候補解集合に十分に適切な量または質の複数の候補解が含まれるまで、予測処理、選択処理および更新処理を繰り返してもよい。
【0061】
出力部44は、繰返制御が終了した後、候補解記憶部32に記憶された候補解集合に含まれる候補解のうちの非劣解を選択する。出力部44は、選択した非劣解を含む集合を、近似パレート解集合として出力する。出力部44は、近似パレート解集合を表示装置に表示させてもよい。例えば、出力部44は、複数の目的関数の全てまたは一部の評価値を軸とする所定次元のグラフを表示装置に表示させてもよい。これにより、出力部44は、複数の評価値におけるトレードオフの関係をユーザに提示することができる。
【0062】
図7は、第1実施形態に係る計算装置20の処理の流れを示すフローチャートである。第1実施形態において、計算装置20は、図7に示す流れで処理を実行する。
【0063】
まず、S11において、計算装置20は、多目的最小化問題に含まれる複数の目的関数を取得する。
【0064】
続いて、S12において、計算装置20は、外部から与えられた第1外部入力値を第1ハイパーパラメータ(LoopLimit)として取得し、第2外部入力値を第2ハイパーパラメータ(WeightLimit)として取得する。より詳細には、計算装置20は、第1ハイパーパラメータ(LoopLimit)として繰り返し回数の上限値を取得し、第2ハイパーパラメータ(WeightLimit)として複数のウェイトパターンの個数を取得する。
【0065】
続いて、S13において、計算装置20は、候補解記憶部32に記憶される候補解集合(Solutions)を初期化する。より詳細には、計算装置20は、候補解集合(Solutions)を空集合に設定する。
【0066】
続いて、S14において、計算装置20は、第1変数(LoopCounter)を初期化する。例えば、計算装置20は、第1変数(LoopCounter)に0を代入する。
【0067】
続いて、S15において、計算装置20は、第1変数(LoopCounter)が第1ハイパーパラメータ(LoopLimit)より小さいか否かを判断する。計算装置20は、第1変数(LoopCounter)が第1ハイパーパラメータ(LoopLimit)以上である場合(S15のNo)、処理を、S24に進める。計算装置20は、第1変数(LoopCounter)が第1ハイパーパラメータ(LoopLimit)より小さい場合(S15のYes)、処理をS16に進める。
【0068】
S16において、計算装置20は、複数のウェイトパターンを生成し、生成した複数のウェイトパターンのそれぞれについて、対応するウェイトパターンによって現時点の候補解集合を更新する場合におけるパレート超体積の増加量を予測する予測処理を実行する。なお、S16の処理の詳細については、図8を参照して後述する。
【0069】
続いて、S17において、計算装置20は、S16で生成された複数のウェイトパターンのうちのパレート超体積の増加量が最大となるウェイトパターンを、最大ウェイトパターンとして選択する選択処理を実行する。
【0070】
続いて、S18において、計算装置20は、最大ウェイトパターンに基づき合成目的関数を生成する。より詳しくは、計算装置20は、複数の目的関数と最大ウェイトパターンにより表される複数のウェイト係数との線形加重和である合成目的関数を生成する。
【0071】
続いて、S19において、計算装置20は、生成した合成目的関数をソルバ装置22に与える。ソルバ装置22は、合成目的関数が与えられた場合、合成目的関数を最小化する問題に対する複数の解を算出する。続いて、S20において、計算装置20は、ソルバ装置22により算出された合成目的関数を最小化する問題に対する複数の解を取得する。
【0072】
S21において、計算装置20は、S20でソルバ装置22から取得した合成目的関数を最小化する問題に対する複数の解のうちの少なくとも一部を候補解として候補解集合(Solutions)に追加する。続いて、S22において、計算装置20は、第1変数(LoopCounter)に1を加算する。
【0073】
続いて、S23において、計算装置20は、候補解集合(Solutions)に含まれる複数の候補解が十分に良いか否かを判断する。候補解集合(Solutions)に含まれる複数の候補解が十分に良いと判断する場合(S23のYes)、計算装置20は、処理をS24に進める。候補解集合(Solutions)に含まれる複数の候補解が十分に良いと判断しない場合(S23のNo)、計算装置20は、処理をS15に戻し、S15から処理を繰り返す。
【0074】
S24において、計算装置20は、候補解集合(Solutions)に含まれる複数の候補解のうち非劣解を選択する。そして、計算装置20は、選択した非劣解を含む集合を、近似パレート解集合として、外部装置に出力する。
【0075】
計算装置20は、S24の処理を終えると、本フローを終了する。
【0076】
図8は、第1実施形態に係る計算装置20のS16の処理の流れを示すフローチャートである。S16の予測処理において、計算装置20は、図8に示す流れで処理を実行する。
【0077】
まず、S31において、計算装置20は、第2変数(WeightCounter)を初期化する。例えば、計算装置20は、第2変数(WeightCounter)に0を代入する。
【0078】
続いて、S32において、計算装置20は、第2変数(WeightCounter)が第2ハイパーパラメータ(WeightLimit)より小さいか否かを判断する。第2変数(WeightCounter)が第2ハイパーパラメータ(WeightLimit)以下である場合(S32のNo)、計算装置20は、本フローを終了し、処理を図7のS17に進める。第2変数(WeightCounter)が第2ハイパーパラメータ(WeightLimit)より小さい場合(S32のYes)、計算装置20は、処理をS33に進める。
【0079】
S33において、計算装置20は、ウェイトパターンを生成する。計算装置20は、予め準備された互いに異なる複数のウェイトパターンから1個のウェイトパターンを選択してもよい。また、計算装置20は、乱数等に基づき1個のウェイトパターンを生成してもよい。
【0080】
続いて、S34において、計算装置20は、複数の目的関数と、S33で生成したウェイトパターンより表される複数のウェイト係数との線形加重和を算出して関数を生成する。すなわち、計算装置20は、生成したウェイトパターンにより表される複数のウェイト係数のうちの対応するウェイト係数が乗算された複数の目的関数を加算した関数を生成する。
【0081】
続いて、S35において、計算装置20は、生成したウェイトパターンを用いて候補解集合(Solutions)を更新する場合における、パレート超体積の増加量を予測する。すなわち、計算装置20は、S33で生成した関数を最小化する解を、新たな候補解として候補解集合(Solutions)に加える場合における、パレート超体積の増加量を予測する。例えば、計算装置20は、非特許文献1に記載されたアルゴリズムまたは非特許文献2に記載されたインターネットサイトにより提供されるプログラムに基づき、パレート超体積の増加量を予測する。
【0082】
続いて、S36において、計算装置20は、第2変数(WeightCounter)に1を加算する。
【0083】
続いて、S37において、計算装置20は、生成したウェイトパターンが十分に良いか否かを判断する。例えば、計算装置20は、パレート超体積の増加量が所定値以上、または、既存のパレート超体積に対して所定割合以上である場合、生成したウェイトパターンが十分に良いと判断してもよい。
【0084】
生成したウェイトパターンが十分に良いと判断する場合(S37のYes)、計算装置20は、本フローを終了し、処理を図7のS17に進める。生成したウェイトパターンが十分に良いと判断しない場合(S37のNo)、計算装置20は、処理をS32に戻し、S32から処理を繰り返す。
【0085】
図9は、特許文献1の技術により多目的最適化問題を解いた場合の近似パレート解を示す図である。図10は、非特許文献1の技術により多目的最適化問題を解いた場合の近似パレート解を示す図である。図11は、第1実施形態に係る計算装置20により多目的最適化問題を解いた場合の近似パレート解を示す図である。
【0086】
なお、図9図10および図11の例では、2個の目的関数(f(x),f(x))を最小化する同一の多目的最適化問題が解かれている。また、図9図10および図11の例では、計算装置20は、同一のウェイトパターンおよび最適化ソルバを用いており、同一の演算装置により同一の求解時間で処理が実行されている。
【0087】
第1実施形態に係る計算装置20は、特許文献1の技術および非特許文献1の技術と比較して、パレートフロントに近い近似パレート解を十分に多く含み、さらに、パレートフロントを隙間なく埋めるように十分に多くの近似パレート解を含む近似パレート解集合を生成することができる。
【0088】
以上のように、第1実施形態に係る計算システム10によれば、多目的最小化問題における複数の近似パレート解を、少ない計算量で精度良く算出することができる。
【0089】
図12は、実行可能解の集合が非凸である場合における、第1実施形態に係る計算装置20により算出される近似パレート解を説明するための図である。図12は、横軸が1番目の目的関数(f(x))の評価値を表し、縦軸が2番目の目的関数(f(x))の評価値を表す。
【0090】
第1実施形態に係る計算装置20は、パレート解集合の凸閉包に近似した集合に含まれる複数の凸閉包解を算出する。
【0091】
従って、第1実施形態に係る計算装置20は、実行可能解の集合が凸である場合、パレートフロントにおける滑らかな領域の全てにおける近似パレート解を含む近似パレート解集合を算出することができる。しかし、第1実施形態に係る計算装置20は、実行可能解の集合が非凸である場合、図12に示すように、パレートフロントにおける凹み部分に接触または近接する解を含まない近似パレート解集合を算出する。
【0092】
例えば、パレート解集合が、[x +x =1,x≧0,x≧0]で表されるとする。この場合、第1実施形態に係る計算装置20は、x=(1,0)およびx=0,1を近似パレート解として算出することができる。しかし、第1実施形態に係る計算装置20は、x=(1/√2,1/√2)を近似パレート解として算出することができない。
【0093】
(第2実施形態)
つぎに、第2実施形態に係る計算システム10について説明する。第2実施形態に係る計算システム10は、第1実施形態に係る計算システム10と略同一の機能および構成を有するので、略同一の機能および構成を有する構成要素については同一の符号を付けて、相違点を除き詳細な説明を省略する。
【0094】
図13は、第2実施形態に係る計算装置20の構成を示す図である。
【0095】
第2実施形態に係る計算装置20において、関数取得部34は、複数の目的関数とともに、制約条件を取得する。制約条件は、複数の目的関数に含まれる複数の決定変数を含む等式または不等式等の制約式により表される。そして、関数取得部34は、取得した制約条件を更新部40に与える。
【0096】
更新部40は、ソルバ装置22から取得した複数の解のうちの、制約条件を満たす解を、候補解として候補解記憶部32に記憶された候補解集合に加える。例えば、更新部40は、ソルバ装置22から取得した複数の解のそれぞれについて、制約条件を満たすか否かを判断し、制約条件を満たす解を選択してもよい。また、更新部40は、制約条件を満たす場合に値が小さくなるペナルティ関数を生成し、ペナルティ関数を加えた合成目的関数をソルバ装置22に与えてもよい。これにより、ソルバ装置22は、高い確率で制約条件を満たす複数の解を出力することができる。
【0097】
なお、ソルバ装置22は、制約条件および関数を受け取り、制約条件を満たす複数の解を出力してもよい。この場合、更新部40は、合成目的関数とともに制約条件をソルバ装置22に与え、制約条件を満たす複数の解をソルバ装置22から取得し、取得した複数の解のうちの少なくとも一部を候補解として候補解集合に加える。
【0098】
以上のような、第2実施形態に係る計算システム10によれば、制約条件を含む多目的最小化問題における複数の近似パレート解を、少ない計算量で精度良く算出することができる。
【0099】
(第3実施形態)
つぎに、第3実施形態に係る計算システム10について説明する。第3実施形態に係る計算システム10は、第1実施形態に係る計算システム10と略同一の機能および構成を有するので、略同一の機能および構成を有する構成要素については同一の符号を付けて、相違点を除き詳細な説明を省略する。
【0100】
図14は、第3実施形態に係る計算装置20の構成を示す図である。
【0101】
第3実施形態に係る計算装置20は、図6に示す第1実施形態に係る計算装置20と比較して、凸閉包取得部54と、最大値取得部56と、最小値取得部58と、関数修正部60とをさらに備える。
【0102】
凸閉包取得部54は、多目的最小化問題におけるパレート解集合の凸閉包に近似した集合に含まれる複数の凸閉包解を取得する。例えば、凸閉包取得部54は、第1実施形態に係る計算装置20より算出された、多目的最小化問題における近似パレート解集合を、複数の凸閉包解として取得する。
【0103】
最大値取得部56は、関数取得部34により取得された複数の目的関数と、凸閉包取得部54により取得された複数の凸閉包解とを取得する。最大値取得部56は、複数の目的関数のそれぞれについて、複数の凸閉包解のそれぞれを対応する目的関数に代入して得られる各値のうちの最大値を取得する。
【0104】
最小値取得部58は、関数取得部34により取得された複数の目的関数と、凸閉包取得部54により取得された複数の凸閉包解とを取得する。最小値取得部58は、複数の目的関数のそれぞれについて、複数の凸閉包解のそれぞれを対応する目的関数に代入して得られる各値のうちの最小値を取得する。
【0105】
関数修正部60は、関数取得部34により取得された複数の目的関数と、最大値取得部56により取得された複数の目的関数のそれぞれについての最大値と、最小値取得部58により取得された複数の目的関数のそれぞれについての最小値とを取得する。
【0106】
関数修正部60は、1より大きい実数である第1乗数が予め設定される。そして、関数修正部60は、複数の目的関数のそれぞれを修正する。より詳しくは、関数修正部60は、複数の目的関数のそれぞれについて、最小値が得られる解を代入した場合に0となり、最大値が得られる解を代入した場合に1となるように、対応する目的関数に係数を乗じるとともに平行移動する。さらに、関数修正部60は、複数の目的関数のそれぞれについて、係数を乗じるとともに平行移動した関数を第1乗数でべき乗することにより、対応する目的関数を修正する。これにより、関数修正部60は、複数の目的関数のそれぞれを、パレートフロントにおける凹み部分を凸とする方向に修正することができる。
【0107】
なお、第1乗数は、1より大きい実数であれば、どのような値であってもよい。ただし、第1乗数は、更新部40において生成される合成目的関数がソルバ装置22において求解可能な値でなければならない。
【0108】
関数修正部60は、修正した複数の目的関数のそれぞれを、予測部36に与える。そして、第3実施形態において、繰返制御部42は、修正した複数の目的関数を用いて、予測部36における予測処理と、選択部38における選択処理と、更新部40における更新処理とを繰り返す繰返制御をする。なお、凸閉包取得部54は、繰返制御に先立って、取得したパレート解集合の凸閉包に近似した集合に含まれる複数の凸閉包解を、候補解記憶部32に記憶された候補解集合に含めてもよい。
【0109】
図15は、第3実施形態に係る計算装置20の処理の流れを示すフローチャートである。第3実施形態において、計算装置20は、図15に示す流れで処理を実行する。
【0110】
第3実施形態において、計算装置20は、図7に示すフローチャートと比較して、S11とS12との間に、S41の目的関数の修正処理を実行する点において異なる。すなわち、第3実施形態において、計算装置20は、まず、S11において複数の目的関数を取得し、続いて、S41において複数の目的関数のそれぞれを修正する。なお、S41の処理の詳細については図16を参照して後述する。そして、第3実施形態において、計算装置20は、S41に続いて、第1実施形態と同様に、S13からS24の処理を実行する。
【0111】
図16は、第3実施形態に係る計算装置20における、S41の処理の流れを示すフローチャートである。第3実施形態において、計算装置20は、図15のS41において、図16に示す流れで処理を実行する。
【0112】
まず、S51において、計算装置20は、外部から与えられた第3外部入力値を複数の目的関数の個数(FunctionsNumber)として取得する。なお、計算装置20は、S11で取得された複数の目的関数をカウントして、複数の目的関数の個数(FunctionsNumber)を算出してもよい。
【0113】
続いて、S52において、計算装置20は、求解対象となる多目的最小化問題におけるパレート解集合の凸閉包に近似した集合(Closures)を取得する。
【0114】
続いて、S53において、計算装置20は、外部から与えられた第4外部入力値を第1乗数(Power)として取得する。なお、第1乗数(Power)は、1より大きい実数である。
【0115】
続いて、S54において、計算装置20は、第3変数(FunctionsCounter)を初期化する。例えば、計算装置20は、第3変数(FunctionsCounter)に0を代入する。
【0116】
続いて、S55において、計算装置20は、第3変数(FunctionsCounter)が複数の目的関数の個数(FunctionsNumber)より小さいか否かを判断する。第3変数(FunctionsCounter)が複数の目的関数の個数(FunctionsNumber)以上である場合(S55のNo)、計算装置20は、本フローを終了し、処理を図15のS12に進める。第3変数(FunctionsCounter)が複数の目的関数の個数(FunctionsNumber)より小さい(S55のYes)、計算装置20は、処理をS56に進める。
【0117】
S56において、計算装置20は、複数の目的関数のうちの第3変数(FunctionsCounter)により特定される対象の目的関数について、最大値(Emax)を算出する。例えば、計算装置20は、式(5)に基づき、最大値を算出する。
【0118】
Emax=max[ObjectiveFunctions(FunctionsCounter) in Closures]…(5)
【0119】
ObjectiveFunctions(FunctionsCounter)は、複数の目的関数のうちの第3変数(FunctionsCounter)により特定される1つの目的関数を表す。なお、式(5)において、max[]は、凸閉包に近似した集合(Closures)に含まれる複数の解を目的関数に代入して得られる各値の中から最大値を選択する関数を表す。
【0120】
続いて、S57において、計算装置20は、複数の目的関数のうちの第3変数(FunctionsCounter)に特定される対象の目的関数について、最小値(Emin)を算出する。例えば、計算装置20は、式(6)に基づき、最小値を算出する。
【0121】
Emin=min[ObjectiveFunctions(FunctionsCounter) in Closures]…(6)
【0122】
なお、式(6)において、min[]は、凸閉包に近似した集合(Closures)に含まれる複数の解を目的関数に代入して得られる各値の中から最小値を選択する関数を表す。
【0123】
続いて、S58において、計算装置20は、複数の目的関数のうちの第3変数(FunctionsCounter)に特定される対象の目的関数を修正する。より詳細には、計算装置20は、最小値(Emin)が得られる解を代入した場合に0となり、最大値(Emax)が得られる解を代入した場合に1となるように、対象の目的関数に係数を乗じるとともに平行移動し、さらに、第1乗数(Power)でべき乗することにより対象の目的関数を修正する。
【0124】
例えば、計算装置20は、式(7)に基づき、対象の目的関数を修正する。
【0125】
ObjectiveFunctions(FunctionsCounter)=
[{ObjectiveFunctions(FunctionsCounter) - Emin}/(Emax - Emin)]^Power …(7)
【0126】
なお、式(7)において、A^Bは、AのB乗を表す。
【0127】
続いて、S59において、計算装置20は、第3変数(FunctionsCounter)に1を加算する。計算装置20は、S58の処理を終えると、処理をS55に戻し、S55から処理を繰り返す。
【0128】
図17は、実行可能解の集合が非凸である場合における、第3実施形態に係る計算装置20により算出される近似パレート解集合を示す図である。図17は、横軸が1番目の目的関数(f(x))の評価値を表し、縦軸が2番目の目的関数(f(x))の評価値を表す。
【0129】
第3実施形態に係る計算装置20は、複数の目的関数を修正することにより、多目的最小化問題におけるパレートフロントにおける凹み部分が、図17に示すように、凸方向に修正される。修正された複数の目的関数のそれぞれは、最小値を0、最大値を1とするように修正した後に、1より大きい値でべき乗がされているので、大小関係も反転せず、実行可能解にも変更がない。そして、修正された複数の目的関数のそれぞれは、1より大きい値でのべき乗によって、パレートフロントが凸方向に変化する。
【0130】
従って、第3実施形態に係る計算システム10は、修正後の複数の目的関数を最小化する解を第1実施形態に係る計算装置20と同様の処理で算出することにより、多目的最小化問題の実行可能解の集合が非凸である場合であっても、パレートフロントにおける凹み部分における近似パレート解を含む近似パレート解集合を算出することができる。
【0131】
(第4実施形態)
つぎに、第4実施形態に係る計算システム10について説明する。第4実施形態に係る計算システム10は、第3実施形態に係る計算システム10と略同一の機能および構成を有するので、略同一の機能および構成を有する構成要素については同一の符号を付けて、相違点を除き詳細な説明を省略する。
【0132】
図18は、第4実施形態に係る計算装置20の構成を示す図である。
【0133】
第4実施形態に係る計算装置20において、関数取得部34は、複数の目的関数とともに、制約条件を取得する。関数取得部34は、取得した制約条件を、最大値取得部56、最小値取得部58および更新部40に与える。
【0134】
最大値取得部56は、複数の目的関数のそれぞれについて、制約条件を満たすことを条件に、第3実施形態と同様に最大値を取得する。すなわち、最大値取得部56は、複数の凸閉包解のうち制約条件を満たさない解を対応する目的関数に代入して得られる値については、最大値として取得しない。
【0135】
最小値取得部58は、複数の目的関数のそれぞれについて、制約条件を満たすことを条件に、第3実施形態と同様に最小値を取得する。すなわち、最大値取得部56は、複数の凸閉包解のうち制約条件を満たさない解を対応する目的関数に代入して得られる値については、最小値として取得しない。
【0136】
更新部40は、第2実施形態と同様に、ソルバ装置22から取得した複数の解のうちの、制約条件を満たす解を、候補解として、候補解記憶部32に記憶された候補解集合に加える。
【0137】
以上のような、第3実施形態に係る計算システム10は、多目的最小化問題の実行可能解の集合が非凸である場合であっても、制約条件を含む多目的最小化問題について、パレートフロントにおける凹み部分における近似パレート解を含む近似パレート解集合を算出することができる。
【0138】
(ハードウェア構成)
図19は、計算装置20のハードウェアブロック図である。計算装置20は、一例として、図19に示すような一般のコンピュータ(情報処理装置)と同様のハードウェア構成により実現される。計算装置20は、図19に示すような1つのコンピュータまたはサーバにより実現されてもよいし、協働して動作する複数のコンピュータまたはサーバにより実現されてもよい。また、計算装置20は、一部に専用のハードウェア回路を備える構成であってもよい。
【0139】
計算装置20は、メモリ204と、1または複数のハードウェアプロセッサ206と、記憶装置208と、操作装置210と、表示装置212と、通信装置214とを備える。各部は、バスにより接続される。
【0140】
メモリ204は、例えば、ROM222と、RAM224とを含む。ROM222は、計算装置20の制御に用いられるプログラムおよび各種設定情報等を書き換え不可能に記憶する。RAM224は、SDRAM(Synchronous Dynamic Random Access Memory)等の揮発性の記憶媒体である。RAM224は、1または複数のハードウェアプロセッサ206の作業領域として機能する。
【0141】
1または複数のハードウェアプロセッサ206は、メモリ204(ROM222およびRAM224)にバスを介して接続される。1または複数のハードウェアプロセッサ206のそれぞれは、例えば、CPU(Central Processing Unit)であってもよいし、演算用のハードウェア回路であってもよい。
【0142】
1または複数のハードウェアプロセッサ206は、RAM224の所定領域を作業領域としてROM222または記憶装置208に予め記憶された各種プログラムとの協働により各種処理を実行し、計算装置20を構成する各部の動作を統括的に制御する。また、1または複数のハードウェアプロセッサ206は、ROM222または記憶装置208に予め記憶されたプログラムとの協働により、操作装置210、表示装置212および通信装置214等を制御する。
【0143】
記憶装置208は、フラッシュメモリ等の半導体による記憶媒体、磁気的または光学的に記録可能な記憶媒体等の書き換え可能な記録装置である。記憶装置208は、計算装置20の制御に用いられるプログラムおよび各種設定情報等を記憶する。
【0144】
操作装置210は、マウスおよびキーボード等の入力デバイスである。操作装置210は、ユーザから操作入力された情報を受け付け、受け付けた情報を1または複数のハードウェアプロセッサ206に出力する。
【0145】
表示装置212は、情報をユーザに表示する。表示装置212は、1または複数のハードウェアプロセッサ206から情報等を受け取り、受け取った情報を表示する。なお、通信装置214または記憶装置208等に情報を出力する場合、計算装置20は、表示装置212を備えなくてもよい。通信装置214は、外部の機器と通信して、ネットワーク等を介して情報を送受信する。
【0146】
本実施形態の計算装置20で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD-ROM、フレキシブルディスク(FD)、CD-R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【0147】
また、本実施形態の計算装置20で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態の計算装置20で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、本実施形態の計算装置20で実行されるプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
【0148】
情報処理装置を計算装置20として機能させるためのプログラムは、例えば、予測モジュールと、選択モジュールと、更新モジュールと、繰返制御モジュールと、出力モジュールとを含むモジュール構成となっている。プログラムは、凸閉包取得モジュールと、最大値取得モジュールと、最小値取得モジュールと、関数修正モジュールとをさらに含む構成であってもよい。このプログラムは、1または複数のハードウェアプロセッサ206により実行されることにより各モジュールがメモリ204のRAM224にロードされ、1または複数のハードウェアプロセッサ206を、関数取得部34、予測部36、選択部38、更新部40、繰返制御部42、出力部44として機能させる。このプログラムは、1または複数のハードウェアプロセッサ206を、凸閉包取得部54、最大値取得部56、最小値取得部58、関数修正部60として、さらに機能させてもよい。また、このプログラムは、メモリ204および記憶装置208を候補解記憶部32として機能させる。なお、これらの構成は、一部または全部がハードウェアにより構成されていてもよい。
【0149】
また、計算装置20は、例えばFPGA(Field-Programmable Gate Array)等の再構成可能な半導体装置により実現されてもよい。また、計算装置20は、CPU、マイクロプロセッサ、GPU(Graphics Processing Unit)、ASIC(Application Specific Integrated Circuit)、または、これらの回路等を含む電子回路によって実現されてもよい。また、計算装置20は、コンピュータ等の情報処理装置、ネットワークを介して複数のコンピュータまたはサーバが相互に通信をして構成されるコンピュータシステム、または、複数台のコンピュータが連携して情報処理を実行するPCクラスタ等により実現されてもよい。
【0150】
また、計算装置20がFPGA等の再構成可能な半導体装置により実現される場合、再構成可能な半導体装置を計算装置20として動作させるために再構成可能な半導体装置に書き込まれる回路情報(コンフィグレーションデータ)を、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、再構成可能な半導体装置を計算装置20として動作させるために再構成可能な半導体装置に書き込まれる回路情報(コンフィグレーションデータ)を、コンピュータで読み取り可能な記録媒体に記録されて提供するように構成してもよい。
【0151】
また、計算装置20がASIC等の半導体装置により実現される場合、ASIC等の半導体装置を計算装置20として動作させるために、ハードウェア記述言語により記述された回路の構成を表す回路情報を、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、ASIC等の半導体装置を計算装置20として動作させるために、ハードウェア記述言語により記述された回路の構成を表す回路情報を、コンピュータで読み取り可能な記録媒体に記録されて提供するように構成してもよい。
【0152】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0153】
10 計算システム
20 計算装置
22 ソルバ装置
32 候補解記憶部
34 関数取得部
36 予測部
38 選択部
40 更新部
42 繰返制御部
44 出力部
54 凸閉包取得部
56 最大値取得部
58 最小値取得部
60 関数修正部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19