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

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

▶ 日本電気株式会社の特許一覧

特開2024-83659最適化システム、最適化方法、およびプログラム
<>
  • 特開-最適化システム、最適化方法、およびプログラム 図1
  • 特開-最適化システム、最適化方法、およびプログラム 図2
  • 特開-最適化システム、最適化方法、およびプログラム 図3
  • 特開-最適化システム、最適化方法、およびプログラム 図4
  • 特開-最適化システム、最適化方法、およびプログラム 図5
  • 特開-最適化システム、最適化方法、およびプログラム 図6
  • 特開-最適化システム、最適化方法、およびプログラム 図7
  • 特開-最適化システム、最適化方法、およびプログラム 図8
  • 特開-最適化システム、最適化方法、およびプログラム 図9
  • 特開-最適化システム、最適化方法、およびプログラム 図10
  • 特開-最適化システム、最適化方法、およびプログラム 図11
  • 特開-最適化システム、最適化方法、およびプログラム 図12
  • 特開-最適化システム、最適化方法、およびプログラム 図13
  • 特開-最適化システム、最適化方法、およびプログラム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024083659
(43)【公開日】2024-06-24
(54)【発明の名称】最適化システム、最適化方法、およびプログラム
(51)【国際特許分類】
   G06N 99/00 20190101AFI20240617BHJP
   G06N 5/01 20230101ALI20240617BHJP
【FI】
G06N99/00 180
G06N5/01
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022197578
(22)【出願日】2022-12-12
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100109313
【弁理士】
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100149618
【弁理士】
【氏名又は名称】北嶋 啓至
(72)【発明者】
【氏名】土井 龍太郎
(72)【発明者】
【氏名】井手口 裕太
(57)【要約】
【課題】 発見的解法における最適化問題によって求められた解の最適性の確認の容易化を図ること。
【解決手段】
最適化システムは、最適化処理部と、算出部と、出力制御部とを備える。最適化処理部は、発見的解法によって最適化問題を求解する。算出部は、最適化処理部によって得られた解に基づいて、当該解の統計情報を算出する。出力制御部は、統計情報を利用者に提示する。
【選択図】 図2
【特許請求の範囲】
【請求項1】
発見的解法によって最適化問題を求解する最適化処理手段と、
前記最適化処理手段によって得られた解に基づいて、当該解の統計情報を算出する算出手段と、
前記統計情報を利用者に提示する出力制御手段と、
を備える最適化システム。
【請求項2】
前記統計情報は、前記解の分散、信頼区間、標準偏差、平均値、中央値、前記解の頻度と前記解とのヒストグラムの少なくともいずれかである、
請求項1に記載の最適化システム。
【請求項3】
前記統計情報は、前記解の評価値の統計情報である、
請求項1または2に記載の最適化システム。
【請求項4】
前記最適化処理手段、前記求解を繰り返し行い、
前記算出手段は、前記最適化処理手段によって新たな解が算出されるたびに、前記統計情報を算出する、
請求項1または2に記載の最適化システム。
【請求項5】
前記最適化処理手段は、異なる複数の初期状態について並列に前記最適化問題を求解し、
前記算出手段は、前記最適化処理手段による並列の求解の途中結果に基づいて、前記統計情報を算出する、
請求項1または2に記載の最適化システム。
【請求項6】
前記解の前記統計情報に基づいて、前記発見的解法におけるパラメータの値を変更する設定手段、
を備え、
前記最適化処理手段は、変更後の前記パラメータの値に基づく前記発見的解法によって前記最適化問題を求解する、
請求項1または2に記載の最適化システム。
【請求項7】
前記発見的解法は、アニーリング法であり、
前記パラメータは、アニーリング時間、前記最適化問題における確率的な遷移の遷移度合、および前記最適化問題における制約条件の遵守度合の少なくともいずれかである、
請求項6に記載の最適化システム。
【請求項8】
前記発見的解法は、アニーリング法であり、
前記パラメータは、アニーリング時間であり、
前記統計情報が、前記解の評価値の分散であり、
前記設定手段は、前記分散が閾値以下であれば、前記アニーリング時間が短くなるように変更する
請求項6に記載の最適化システム。
【請求項9】
発見的解法によって最適化問題を求解し、
前記求解によって得られた解に基づいて、当該解の統計情報を算出し、
前記統計情報を利用者に提示する、
最適化方法。
【請求項10】
発見的解法によって最適化問題を求解し、
前記求解によって得られた解に基づいて、当該解の統計情報を算出し、
前記統計情報を利用者に提示する、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、最適化システムなどに関する。
【背景技術】
【0002】
幅広い分野の実社会課題が組み合わせ最適化問題に定式化される場合がある。ここで、最適化問題とは、制約条件を満たす解の中で、目的関数を最小または最大にする解を求める問題である。例えば、組み合わせ最適化問題の主要な求解手法の一つとしてアニーリング法が採用される場合がある。
【0003】
例えば、特許文献1には、解を多数求め、一般極値分布に従うと仮定して最適解の評価値を最尤推定し、求めた解の評価値と、推定した最適解の評価値とを比較する技術が記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】国際公開第2018/168383号
【発明の概要】
【発明が解決しようとする課題】
【0005】
例えば、アニーリング法などの発見的解法では、確率的な動作を含むため、最適化問題の求解のたびに、得られる解が異なる。このため、最適化問題によって求められた解の最適性が分かり難いという問題点がある。
【0006】
本開示の目的の一例は、発見的解法における最適化問題によって求められた解の最適性の確認の容易化を図る最適化システムなどを提供することにある。
【課題を解決するための手段】
【0007】
本開示の一態様における最適化システムは、発見的解法によって最適化問題を求解する最適化処理手段と、前記最適化処理手段によって得られた解に基づいて、当該解の統計情報を算出する算出手段と、前記統計情報を利用者に提示する出力制御手段と、を備える。
【0008】
本開示の一態様における最適化方法は、発見的解法によって最適化問題を求解し、前記求解によって得られた解に基づいて、当該解の統計情報を算出し、前記統計情報を利用者に提示する。
【0009】
本開示の一態様におけるプログラムは、コンピュータに、発見的解法によって最適化問題を求解し、前記求解によって得られた解に基づいて、当該解の統計情報を算出し、前記統計情報を利用者に提示する処理を実行させる。
【0010】
各プログラムは、コンピュータが読み取り可能な非一時的な記録媒体に記憶されていてもよい。
【発明の効果】
【0011】
本開示によれば、発見的解法における最適化問題によって求められた解の最適性の確認の容易化を図ることができる。
【図面の簡単な説明】
【0012】
図1】組み合わせ最適化問題の発見的解法の一例を示す説明図である。
図2】実施の形態1にかかる最適化システムの一構成例を示すブロック図である。
図3】実施の形態1にかかる最適化システムの一動作例を示すフローチャートである。
図4】最適化システムと端末装置との接続例を示す説明図である。
図5】実施の形態2にかかる最適化システムの一構成例を示すブロック図である。
図6】統計情報の提示例1を示す説明図である。
図7】統計情報の提示例2を示す説明図である。
図8】次の求解におけるアニーリング時間の設定例を示す説明図である。
図9】実施の形態2にかかる最適化システムの動作例1を示すフローチャートである。
図10】求解の処理が並列化される場合の最適化処理部の詳細なブロック図を示す説明図である。
図11】リアルタイムで統計情報を表示させる例を示す説明図である。
図12】実施の形態2にかかる最適化システムの動作例2を示すフローチャートである。
図13】実施の形態2にかかる最適化システムの動作例3を示すフローチャートである。
図14】コンピュータのハードウェア構成例を示す説明図である。
【発明を実施するための形態】
【0013】
以下に図面を参照して、本開示にかかる最適化システム、最適化方法、プログラム、およびプログラムを記録する非一時的な記録媒体の実施の形態を詳細に説明する。本実施の形態は、開示の技術を限定するものではない。
【0014】
各実施の形態において、発見的解法によって最適化問題を求解する。発見的解法としては、SA(Simulated Annealing)法、進化的アルゴリズム、タブー探索、群知能などが挙げられる。
【0015】
図1は、組み合わせ最適化問題の発見的解法の一例を示す説明図である。ここで、発見的解法の一例として、SA(Simulated Annealing)法について説明する。SA法では、ランダムな初期状態から近傍の解への遷移を繰り返すことで解空間を探索する。図1において、グラフでは、縦軸が解の候補の評価値であり、横軸が解の候補である。ここで、解の候補の評価値は低いほどよい。例えば、SA法では、現在の状態における解の候補の評価値よりも近傍解の評価値が良ければ、状態を遷移し、現在の状態における解の候補の評価値よりも近傍解の評価値が悪ければ、確率的に遷移する。図1において、破線は、確率的な遷移を表し、一点破線は、必要な状態の遷移を表す。
【0016】
ここで、発見的解法では、無限時間の求解を行うことにより最適解に到達することが理論上保証されている。しかし、現実的には、発見的解法では、有限時間の求解を行うことになる。このため、SA法では、アニーリング時間が予め設定され、アニーリング時間において求解が行われる。なお、アニーリング時間と図1のグラフにおける遷移の回数とには、相関がある。なお、以降の説明において、アニーリング時間の単位は、秒である。
【0017】
(実施の形態1)
まず、実施の形態1では、制御システムの基本機能について説明する。図2は、実施の形態1にかかる最適化システムの一構成例を示すブロック図である。最適化システム10は、最適化処理部101と、算出部102と、出力制御部103と、を備える。
【0018】
最適化処理部101は、発見的解法によって最適化問題を求解する。ここで、最適化問題の問題情報の種類は、特に限定されない。発見的解法は、例えば、SA法である。最適化処理部101は、例えば、最適化問題を繰り返して求解する。
【0019】
算出部102は、最適化処理部101による求解によって得られた解に基づいて、当該解の統計情報を算出する。ここで、統計情報は、例えば、解の分散、解の信頼区間、解の標準偏差、解の平均値、解の中央値、解のヒストグラムの少なくともいずれかである。ヒストグラムは、縦軸が解の頻度と横軸が解のグラフである。
【0020】
また、統計情報は、解の評価値の統計情報であってもよい。解の評価値の統計情報は、例えば、解の評価値の分散、解の評価値の信頼区間、解の評価値の標準偏差、解の評価値の平均値、解の評価値の中央値、解の評価値のヒストグラムの少なくともいずれかである。ヒストグラムは、縦軸が解の評価値の頻度と横軸が解の評価値のグラフである。
【0021】
出力制御部103は、算出部102によって算出された統計情報を利用者に提示する。具体的に、例えば、出力制御部103は、利用者の端末装置に、統計情報を表示させる。具体的な表示例については、実施の形態2を用いて詳細に説明する。
【0022】
図3は、実施の形態1にかかる最適化システム10の一動作例を示すフローチャートである。最適化処理部101は、発見的解法によって最適化問題を求解する(ステップS101)。つぎに、算出部102は、求解によって得られた解に基づいて、統計情報を算出する(ステップS102)。そして、出力制御部103は、統計情報を利用者に提示し(ステップS103)、最適化システム10は、処理を終了する。
【0023】
前述のように、発見的解法では、確率的な動作を含むため、最適化問題の求解のたびに、得られる解が異なる。このため、最適化問題によって求められた解の最適性が分かり難いという問題点がある。解の最適性とは、解が真の解にどの程度近いかである。
【0024】
また、最適化問題の求解に関するパラメータの設定の良し悪しが分かり難いという問題点がある。例えば、パラメータは、求解の回数や求解の時間であってもいし、特に限定されない。発見的解法では、無限時間の求解を行うことにより最適解に到達することが理論上保証されている。しかし、現実的には、発見的解法では、有限時間の求解を行うことになる。例えば、最適化問題の求解に関するパラメータは、この時間や回数であってもよい。SA法の場合、この時間をアニーリング時間とも呼ぶ。
【0025】
実施の形態1において、最適化システム10は、求解によって得られた解に基づいて、解の統計情報を算出し、算出された統計情報を利用者に提示する。これにより、解のばらつきに対する示唆を与えることができる。したがって、解の最適性を確認し易くすることができる。さらに、より最適性の高い解を得ることを可能とする。また、解のばらつきに対する示唆は、パラメータの調整に関する示唆となる。これにより、利用者がパラメータの調整の容易化を図ることができる。例えば、発見的解法が、SA法であり、パラメータがアニーリング時間である場合、アニーリング時間を短くしたり、長くしたりすることができる。
【0026】
(実施の形態2)
つぎに、実施の形態2について図面を参照して詳細に説明する。実施の形態2では、具体的な利用者への統計情報の表示例や異なる複数の初期状態について並列に求解を行う例について説明する。以下、本実施の形態2の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
【0027】
図4は、最適化システムと端末装置との接続例を示す説明図である。例えば、最適化システム20は、端末装置21を介して、利用者の操作を受け付けたり、利用者に情報を提示したりする。例えば、最適化システム20は、端末装置21と通信ネットワークNTを介して接続される。
【0028】
例えば、端末装置21は、最適化システム20からの情報を表示可能であったり、最適化システム20へ情報を送信するアプリケーションプログラムが予めインストールされたりしていてもよい。例えば、端末装置21は、通信ネットワークNTを介して、最適化システム20にアクセスしてもよい。
【0029】
端末装置21の種類は、PC(Personal Computer)、スマートフォン、タブレット型の装置など特に限定されない。
【0030】
図5は、実施の形態2にかかる最適化システム20の一構成例を示すブロック図である。最適化システム20は、最適化処理部201と、算出部202と、出力制御部203と、問題情報取得部204と、受付部205と、設定部206とを備える。最適化システム20は、実施の形態1に対して、さらに、問題情報取得部204、受付部205、設定部206が追加される。
【0031】
最適化処理部201は、実施の形態1にかかる最適化処理部101の基本機能を有する。算出部202は、実施の形態1にかかる算出部102の基本機能を有する。出力制御部203は、実施の形態1にかかる出力制御部103の基本機能を有する。
【0032】
問題情報取得部204は、最適化問題を表す問題情報を取得する。例えば、問題情報取得部204は、端末装置21を介した利用者の操作により問題情報を受け付けることにより、問題情報を取得してもよい。または、問題情報取得部204は、データベースなどから問題情報を取得してもよい。
【0033】
つぎに、最適化処理部201は、発見的解法によって、問題情報が表す最適化問題を求解する。ここで、例えば、発見的解法は、前述のようにアニーリング法である。例えば、最適化処理部201は、最適化問題について繰り返して求解を行う。
【0034】
算出部202は、最適化処理部201によって得られた解に基づいて、当該解の統計情報を算出する。統計情報は、前述の通りである。例えば、算出部202は、少なくとも2以上の求解によって得られた複数の解に基づいて、当該解の統計情報を算出する。
【0035】
出力制御部203は、統計情報を利用者に提示する。提示方法は、特に限定されない。例えば、出力制御部203は、端末装置21に統計情報を表示させる。
【0036】
例えば、算出部202は、最適化処理部201によって新たな解が得られるたびに、当該解の統計情報を算出してもよい。または、例えば、算出部202は、最適化処理部201によって新たな解が所定数算出されるたびに、当該解の統計情報を算出してもよい。例えば、所定数は1以上である。例えば、所定数が5である場合、算出部202は、最適化処理部201によって新たな解が5個得られるたびに、解の統計情報を算出してもよい。
【0037】
また、出力制御部203は、統計情報が算出されるたびに、利用者に統計情報を提示してもよい。また、出力制御部203は、統計情報を時系列に提示してもよい。また、出力制御部203は、解および解の評価値の少なくともいずれかと、統計情報と、を時系列に提示してもよい。
【0038】
受付部205は、新たな求解の要求を受け付けてもよい。具体的に、受付部205は、端末装置21を介して、利用者の操作により、求解の要求を受け付けてもよい。そして、受付部205は、新たな求解におけるパラメータの値を受け付けてもよい。具体的に、受付部205は、端末装置21を介して、利用者の操作により、パラメータの値を受け付ける。パラメータは、前述のように、アニーリング時間であってもよい。また、パラメータは、最適化問題における確率的な遷移の遷移度合であってもよい。例えば、図1において、遷移度合は、破線で表す確率的な遷移を動かす程度を表す。パラメータは、最適化問題における制約条件の遵守度合であってもよい。例えば、図1において、この順守度合を変化させることにより、遷移の度合が変わる。
【0039】
そして、設定部206は、パラメータの値を、受付部205で受け付けたパラメータの値に更新する。最適化処理部201は、受け付けたパラメータの値により、最適化問題を新たに求解する。この場合、最適化処理部201は、最適化問題における新たな初期状態を設定し、受け付けたパラメータの値により求解を行う。
【0040】
ここで、図6および図7を用いて統計情報の提示および新たな求解の要求を受け付ける例を説明する。
【0041】
図6は、統計情報の提示例1を示す説明図である。図6において、統計情報は、解の評価値の分散である。端末装置21の画面には、時系列に、解の評価値と、解の評価値の分散と、が表示されている。また、図6において、画面には、現在設定されているアニーリング時間が表示されている。現在のアニーリング時間は、100が設定されている。また、画面は、再度求解ボタンを備える。
【0042】
例えば、1回目の解の評価値は10であり、2回目の解の評価値は1であり、3回目の解の評価値は5であり、4回目の解の評価値は20であり、5回目の解の評価値は15である。1回目の解の評価値の分散は0であり、2回目の解の評価値の分散は20.3であり、3回目の解の評価値の分散は13・6であり、4回目の解の評価値の分散は50.5であり、5回目の解の評価値の分散は46.2である。
【0043】
これにより、例えば、利用者は、5回目までの解の評価値と解の分散とを確認することができる。例えば、図6において、利用者は、画面を参照することで、試行回数を増加させれば、より良い解が得られると推測することができる。例えば、図6おいて利用者は、画面を参照することで、アニーリング時間を長くすれば分散を抑制できると推測することができる。例えば、利用者は、6回目の求解を行う場合に、アニーリングの時間を長くするように設定してもよい。例えば、再度求解ボタンがタップされると、受付部205は、新たな求解の要求を受け付ける。
【0044】
図7は、統計情報の提示例2を示す説明図である。図7において、統計情報は、解の評価値の分散である。端末装置21の画面には、時系列に、解の評価値と、解の評価値の分散と、が表示されている。また、図7において、画面には、現在設定されているアニーリング時間が表示されている。また、画面は、再度求解ボタンを備える。
【0045】
例えば、1回目の解の評価値は1であり、2回目の解の評価値は2であり、3回目の解の評価値は2であり、4回目の解の評価値は1であり、5回目の解の評価値は2である。1回目の解の評価値の分散は0であり、2回目の解の評価値の分散は0.3であり、3回目の解の評価値の分散は0.2であり、4回目の解の評価値の分散は0.3であり、5回目の解の評価値の分散は0.2である。
【0046】
これにより、例えば、利用者は、5回目までの解の評価値と解の分散とを確認することができる。例えば、図7において、利用者は、画面を参照することで、5回目までで解が収束していることを確認するこができる。これにより、利用者は、新たに求解を行う場合におけるパラメータの値の設定を参考にすることができる。すなわち、利用者は、6回目の求解を行う場合に、アニーリングの時間を短くするように設定してもよい。例えば、再度求解ボタンがタップされると、受付部205は、新たな求解の要求を受け付ける。
【0047】
例えば、図6図7において、新たな求解の要求を受け付けると、受付部205は、次の求解における新たなアニーリング時間の設定を受け付けてもよい。
【0048】
図8は、次の求解におけるアニーリング時間の設定例を示す説明図である。図8において、端末装置の画面には、現在のアニーリング時間を表示されている。さらに、画面は、次の求解におけるアニーリング時間を入力可能な入力欄と、設定ボタンと、を備える。例えば、設定ボタンが押されると、受付部205は、入力欄に入力された値を、新たなアニーリング時間として受け付ける。
【0049】
また、算出部202は、最適化処理部201による求解の途中結果に基づいて、統計情報を算出してもよい。ここでの求解の途中結果とは、ある1回の求解における途中結果である。例えば、求解の途中結果とは、SA法において、1回の求解処理の中で1回の遷移で得られる解の候補のうちの最適解である。ここで、この1回の求解における1回の遷移を単位ステップとも呼ぶ。そして、出力制御部は、統計情報が算出されるたびに、統計情報を利用者に提示してもよい。
【0050】
図9は、実施の形態2にかかる最適化システム20の動作例1を示すフローチャートである。まず、問題情報取得部204は、問題情報を取得する(ステップS201)。最適化処理部201は、問題情報が表す最適化問題の初期状態を設定する(ステップS202)。そして、最適化処理部201は、問題情報が表す最適化問題の求解を行う(ステップS203)。最適化処理部201は、求解結果を蓄積する(ステップS204)。算出部202は、統計情報を算出する(ステップS205)。出力制御部203は、統計情報を出力させる(ステップS206)。出力制御部203は、最適化結果を出力させる(ステップS207)。受付部205は、新たな求解の要求を受け付けたかを判定する(ステップS208)。
【0051】
つぎに、新たな求解の要求を受け付けた場合(ステップS208:Yes)、受付部205は、パラメータの更新要求を受け付けたかを判定する(ステップS209)。パラメータの更新要求を受け付けた場合(ステップS209:Yes)、受付部205は、受け付けたパラメータの値を更新し(ステップS210)、最適化処理部201は、ステップS202へ戻る。パラメータの更新要求を受け付けなかった場合(ステップS209:No)、最適化処理部201は、ステップS202へ戻る。また、新たな求解の要求を受け付けなかった場合(ステップS208:No)、最適化システム20は、処理を終了する。
【0052】
<異なる初期状態の求解の並列化例>
ここで、最適化問題については、異なる複数の初期状態について並列化して求解が行われてもよい。
【0053】
最適化処理部201は、異なる複数の初期状態について並列に最適化問題を求解する。
【0054】
図10は、求解の処理が並列化される場合の最適化処理部の詳細なブロック図を示す説明図である。最適化処理部201は、複数の処理部211-1~211-nを備える。処理部211の数は、nであり、nは2以上の整数である。処理部211は、指定された初期状態における最適化問題の求解を行う。処理部211は、例えば、求解の途中結果を出力してもよい。
【0055】
そして、算出部202は、最適化処理部201による並列の求解の途中結果に基づいて、統計情報を算出する。具体的に、例えば、算出部202は、処理部211によって単位ステップにおける結果が得られるたびに、統計情報を算出してもよい。
【0056】
そして、出力制御部203は、統計情報が算出されるたびに、利用者に統計情報を提示してもよい。または、出力制御部203は、時系列に、統計情報を提示してもよい。
【0057】
図11は、リアルタイムで統計情報を表示させる例を示す説明図である。図11において、例えば、出力制御部203は、端末装置21に、グラフを含む画面を表示させる。図11において、グラフは、縦軸が解の評価値の分散であり、横軸がアニーリング時間である。設定時間は、100である。グラフを参照すると、例えば、設定時間100までであり、解の評価値の分散が、時間の経過とともに、0に近づいている。利用者は、求解を継続しても解が改善しないと推測可能である。そこで、利用者は、求解を打ち切ると判断してもよい。
【0058】
例えば、図11において、画面は、終了ボタン、新たなアニーリング時間の入力欄、設定ボタンを備える。終了ボタンが押されると、受付部205は、求解の終了要求を受け付ける。例えば、利用者が求解を打ち切ると判断した場合に、利用者は、終了ボタンを押せばよい。そして、最適化処理部201の処理部211は、求解の終了要求を受け付けると、求解を終了する。
【0059】
例えば、設定ボタンが押されると、受付部205は、入力欄に入力された時間を新たなアニーリング時間として受け付ける。例えば、利用者がアニーリング時間を更新したいと判断した場合に、利用者は、端末装置21を介して、入力欄に新たなアニーリング時間を入力し、設定ボタンを押せばよい。そして、設定部206は、受け付けたアニーリング時間に更新する。そして、最適化処理部201の処理部211は、更新後のアニーリング時間で、求解を行う。
【0060】
例えば、元々の設定時間が100であり、現在50まで終了している場合、新たなアニーリング時間として55が設定された場合、残り5が行われる。例えば、元々の設定時間が100であり、現在50まで終了している場合、新たなアニーリング時間として150が設定された場合、残り100が行われる。
【0061】
以上の例では、最適化処理部201は、異なる複数の初期状態による並列化を行う例を挙げて説明したが、異なる複数の制約条件で並列に求解を行ってもよい。そして、出力制御部203は、異なる複数の制約条件のそれぞれの解の統計情報を利用者に提示してもよい。これにより、利用者は、ハイパーパラメータの探索を効率的に行うことができる。また、最適化処理部201は、異なる複数の制約条件のそれぞれについて、異なる複数の初期状態による求解の並列化を行ってもよい。
【0062】
図12は、実施の形態2にかかる最適化システム20の動作例2を示すフローチャートである。動作例2では、最適化問題を単位ステップごとに実行する例を説明する。
【0063】
まず、問題情報取得部204は、問題情報を取得する(ステップS301)。最適化処理部201は、問題情報が表す最適化問題の初期状態を設定する(ステップS302)。そして、最適化処理部201は、ステップ単位で、問題情報が表す最適化問題の求解を行う(ステップS303)。最適化処理部201は、求解結果を蓄積する(ステップS304)。算出部202は、統計情報を算出する(ステップS305)。出力制御部203は、統計情報を出力させる(ステップS306)。
【0064】
最適化処理部201は、設定時間経過したか、または、受付部205は、終了要求を受け付けたかを判定する(ステップS307)。設定時間経過していない場合、および、終了要求を受け付けていない場合(ステップS307:No)、受付部205は、パラメータの更新要求を受け付けたかを判定する(ステップS308)。パラメータの更新要求を受け付けなかった場合(ステップS308:No)、最適化処理部201は、ステップS303へ戻る。
【0065】
つぎに、パラメータの更新要求を受け付けた場合(ステップS308:Yes)、受付部205は、受け付けたパラメータの値を更新し(ステップS309)、最適化処理部201は、ステップS303へ戻る。
【0066】
また、設定時間経過した場合、または、終了要求を受け付けた場合(ステップS307:Yes)、出力制御部203は、最適化結果を出力させる(ステップS310)。受付部205は、新たな求解の要求を受け付けたかを判定する(ステップS311)。
【0067】
新たな求解の要求を受け付けた場合(ステップS311:Yes)、受付部205は、パラメータの更新要求を受け付けたかを判定する(ステップS312)。パラメータの更新要求を受け付けた場合(ステップS312:Yes)、受付部205は、受け付けたパラメータの値を更新し(ステップS313)、最適化処理部201は、ステップS302へ戻る。パラメータの更新要求を受け付けなかった場合(ステップS312:No)、最適化処理部201は、ステップS302へ戻る。新たな求解の要求を受け付けなかった場合(ステップS311:No)、最適化システム20は、処理を終了する。
【0068】
<パラメータの自動調整>
最適化システム20は、現在の求解において、統計情報に基づいて、パラメータの値を自動で調整してもよい。または、最適化システム20は、統計情報に基づいて、新たな求解を行うかを自動で判定してもよい。そして、例えば、設定部206は、新たな求解を行う場合において、統計情報に基づいて、パラメータの値を自動で調整してもよい。
【0069】
まず、現在の求解において、パラメータの値を調整する例について説明する。設定部206は、例えば、統計情報に基づいて、パラメータの値を調整する。ここでは、パラメータとしてアニーリング時間を例に挙げて説明する。また、統計情報の例として、分散を例に挙げて説明する。
【0070】
例えば、設定部206は、分散が閾値以下であれば、アニーリング時間が短くなるように変更する。ここで、アニーリング時間が短くするとは、即時の求解の終了も含む。例えば、設定部206は、分散が閾値以下であれば、最適化処理部201による最適化問題を終了させてもよい。また、閾値は、複数通りあってもよい。また、例えば、設定部206は、分散が第1閾値以下であれば、最適化処理部201による最適化問題を終了させ、分散が第1閾値以上、第1閾値よりも大きい第2閾値以下である場合に、設定時間よりも所定時間短くなるように新たなアニーリング時間を設定してもよい。
【0071】
また、設定部206は、アニーリング時間が特定の時間になった場合において分散が閾値以下でなければ、アニーリング時間が長くなるように変更してもよい。例えば、特定の時間は、設定時間であってもよいし、設定時間の半分の時間のように、設定時間に基づく時間であってもよい。例えば、設定時間に到達しても分散が閾値以下でなければ、設定部206は、アニーリング時間を長くし、さらに最適化処理部201による最適化問題を継続させてもよい。
【0072】
つぎに、設定部206は、統計情報に基づいて、新たな求解を行うかを判定してもよい。具体的に、設定部206は、例えば、分散が閾値以上である場合、新たな求解を行わないと判定し、解の評価値が閾値よりも低い場合、新たな求解を行うと判定する。また、設定部206は、解の評価値が閾値以上である場合、新たな求解を行わないと判定し、解の評価値が閾値よりも低い場合、新たな求解を行うと判定する。すなわち、設定部206は、良い解が求まっているかを判定し、良い解が求まっていれば、新たな求解を行わないと判定し、良い解が求まっていなければ新たな求解を行うと判定する。
【0073】
そして、例えば、設定部206は、新たな求解を行う場合において、統計情報に基づいて、パラメータの値を調整する。設定部206による具体的な調整については、現在の求解においてパラメータの値を調整する例と同じであってよい。
【0074】
ここでは、新たな求解を行うと判定された場合に自動的に新たな求解を行う例を挙げた。例えば、設定部206によって新たな求解を行うと判定された場合に、出力制御部203が、新たな求解を行うことを推奨し、受付部205が、新たな求解要求を受け付けた場合、最適化処理部201は、新たな求解を行ってもよい。
【0075】
図13は、実施の形態2にかかる最適化システム20の動作例3を示すフローチャートである。まず、問題情報取得部204は、問題情報を取得する(ステップS401)。最適化処理部201は、問題情報が表す最適化問題の初期状態を設定する(ステップS402)。例えば、最適化処理部201は、複数の処理部211について、異なる初期状態を設定する。そして、最適化処理部201は、ステップ単位で、問題情報が表す最適化問題の求解を行う(ステップS403)。ステップS403において、最適化処理部201の処理部211のそれぞれは、ステップ単位で、問題情報が表す最適化問題の求解を行う。これにより、異なる初期状態において並列に求解が行われる。
【0076】
そして、最適化処理部201は、求解結果を蓄積する(ステップS404)。算出部202は、ステップ単位で得られた求解の途中結果に基づいて、統計情報を算出する(ステップS405)。出力制御部203は、統計情報を出力させる(ステップS406)。
【0077】
最適化処理部201は、設定時間経過したか、または、設定部206は、求解を終了させてよいかを判定する(ステップS407)。設定時間経過していない場合、および、求解を終了させないと判定された場合(ステップS407:No)、設定部206は、パラメータを更新させるかを判定する(ステップS408)。パラメータを更新させると判定されなかった場合(ステップS408:No)、最適化処理部201は、ステップS403へ戻る。
【0078】
一方、パラメータを更新させると判定された場合(ステップS408:Yes)、設定部206は、パラメータの値を更新し(ステップS409)、最適化処理部201は、ステップS403へ戻る。
【0079】
設定時間経過した場合、または、求解を終了させてもよいと判定された場合(ステップS407:Yes)、出力制御部203は、最適化結果を出力させる(ステップS410)。設定部206は、再度の求解が必要であるかを判定する(ステップS411)。
【0080】
つぎに、最再度の求解が必要であると判定された場合(ステップS411:Yes)、設定部206は、パラメータを更新させるかを判定する(ステップS412)。パラメータの値を更新させないと判定された場合(ステップS412:No)、最適化処理部201は、ステップS402へ戻る。パラメータを更新させると判定された場合(ステップS412:Yes)、設定部206は、パラメータの値を更新し(ステップS413)、最適化処理部201は、ステップS402へ戻る。再度の求解が必要でないと判定された場合(ステップS411:No)、最適化システム20は、処理を終了する。
【0081】
以上、実施の形態2において、最適化システム20は、新たな解が算出されるたびに、統計情報を算出する。これにより、解のばらつきに対する示唆を与えることができる。さらに、パラメータの設定に対する示唆を与えることができる。例えば、パラメータがアニーリング時間であれば、利用者は、アニーリング時間が長いと考えれば、短くすることができる。これにより、アニーリング時間の短縮化を図ることができる。また、利用者は、アニーリング時間が不足していると考えれば、長くすることができる。これにより、解の最適性の向上を図ることができる。
【0082】
最適化システム20は、異なる複数の初期状態について並列に最適化問題を求解し、並列に計算された複数回の求解によって得られた解に基づいて、統計情報を算出する。
【0083】
最適化システム20は、解の統計情報に基づいて、発見的解法におけるパラメータの値を変更し、変更後のパラメータの値に基づく発見的解法によって最適化問題を求解する。発見的解法がアニーリング法である場合、パラメータは、アニーリング時間、最適化問題における確率的な遷移の遷移度合、および最適化問題における制約条件の遵守度合の少なくともいずれかである。例えば、パラメータは、アニーリング時間であり、解の統計情報が、解の評価値の分散である場合、最適化システム20は、分散が閾値以下であれば、アニーリング時間を短くなるように変更する。一方、最適化システム20は、分散が閾値以下でなければ、アニーリング時間を長くするように変更してもよい。
【0084】
以上、各実施の形態の説明を終了する。各実施の形態は、変形して用いられてもよい。
【0085】
<変形例>
例えば、パラメータの値について、学習されたモデルを用いて利用者に推奨してもよい。例えば、最適化システム20は、さらに、学習部と、特定部と、を備えてもよい。具体的に、例えば、受付部205は、出力制御部203によって出力された出力結果に対して、利用者の操作によるパラメータの値を受け付ける。そして、受付部205は、受け付けたパラメータの値を蓄積しておく。そして、学習部は、蓄積されたパラメータの値に基づいて、最適化問題におけるパラメータの値を学習するモデルを生成してもよい。そして、特定部は、生成されたモデルによって新たな求解におけるパラメータの値の候補を特定する。出力制御部203は、特定したパラメータの値の候補を利用者に推奨してもよい。そして、受付部205は、利用者により新たなパラメータの値を受け付ける。
【0086】
以上で、変形例の説明を終了する。各実施の形態および変形例は、適宜組み合わせて用いられてもよい。
【0087】
また、各実施の形態において、最適化システム20は、各機能部および情報の一部が含まれる構成であってもよい。例えば、実施の形態2において、最適化システム20は、最適化処理部201と、算出部202と、出力制御部203と、問題情報取得部204と、受付部205とを備えてもよい。最適化システム20は、最適化処理部201と、算出部202と、出力制御部203と、問題情報取得部204と、設定部206とを備えてもよい。
【0088】
また、各実施の形態については、上述した例に限られず、種々変更可能である。また、実施の形態における最適化システム10,20の構成は特に限定されない。例えば、最適化システム10,20は、一台のサーバなど、一台の装置によって実現されてもよい。最適化システム10,20の各機能部が一台の装置によって実現される場合、例えば、一台の装置は、最適化装置、情報処理装置などと呼ばれてもよいし、特に限定されない。または、各実施の形態における最適化システム20は、機能またはデータ別に異なる装置によって実現されてもよい。例えば各機能部は、複数のサーバによって構成され、最適化システム10,20として実現されてもよい。例えば、最適化システム10,20は、各DB(DataBase)を含むデータベースサーバと、各機能部を有するサーバと、によって実現されてもよい。例えば、最適化システム20の処理部211のそれぞれが、異なるサーバによって実現されてもよい。
【0089】
また、各実施の形態において、各情報や各DBは、前述の情報の一部を含んでもよい。また、各情報や各DBは、前述の情報以外の情報を含んでもよい。各情報や各DBが、より詳細に、複数のDBや複数の情報に分けられてもよい。このように、各情報や各DBの実現方法は、特に限定されない。
【0090】
また、各画面は、一例であり、特に限定されない。各画面において、図示しないボタン、リスト、チェックボックス、情報表示欄、入力欄などが追加されてもよい。また、画面の背景色などが、変更されてもよい。
【0091】
また、端末装置21に表示させる情報などを生成する処理は、出力制御部103,203によって行われてもよい。また、この処理は、端末装置21によって行われてもよい。
【0092】
(コンピュータのハードウェア構成例)
つぎに、各実施の形態において説明した最適化システムなどの各装置をコンピュータで実現した場合のハードウェア構成例について説明する。図14は、コンピュータのハードウェア構成例を示す説明図である。例えば、各装置の一部または全部は、図14に示すようなコンピュータ80とプログラムとの任意の組み合わせを用いて実現することも可能である。
【0093】
コンピュータ80は、例えば、プロセッサ801と、ROM(Read Only Memory)802と、RAM(Random Access Memory)803と、記憶装置804と、を有する。また、コンピュータ80は、通信インタフェース805と、入出力インタフェース806と、を有する。各構成部は、例えば、バス807を介してそれぞれ接続される。なお、各構成部の数は、特に限定されず、各構成部は1または複数である。
【0094】
プロセッサ801は、コンピュータ80の全体を制御する。プロセッサ801としては、例えば、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)、МPU(Micro Processing Unit)、FPU(Floating point number Processing Unit)、PPU(Physics Processing Unit)、TPU(TensorProcessingUnit)、量子プロセッサ、マイクロコントローラ、または、これらの組み合わせなどを用いることができる。コンピュータ80は、記憶部として、ROM802、RAM803および記憶装置804などを有する。記憶装置804は、例えば、フラッシュメモリなどの半導体メモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)などが挙げられる。例えば、記憶装置804は、OS(Operating System)のプログラム、アプリケーションプログラム、各実施の形態にかかるプログラムなどを記憶する。または、ROM802は、アプリケーションプログラム、各実施の形態にかかるプログラムなどを記憶する。そして、RAM803は、プロセッサ801のワークエリアとして使用される。
【0095】
また、プロセッサ801は、記憶装置804、ROM802などに記憶されたプログラムをロードする。そして、プロセッサ801は、プログラムにコーディングされている各処理を実行する。また、プロセッサ801は、通信ネットワークNTを介して各種プログラムをダウンロードしてもよい。また、プロセッサ801は、コンピュータ80の一部または全部として機能する。そして、プロセッサ801は、プログラムに基づいて図示したフローチャートにおける処理または命令を実行してもよい。
【0096】
通信インタフェース805は、無線または有線の通信回線を通じて、LAN(Local Area Network)、WAN(Wide Area Network)などの通信ネットワークNTに接続される。なお、通信ネットワークNTは複数の通信ネットワークNTによって構成されてもよい。これにより、コンピュータ80は、通信ネットワークNTを介して外部の装置や外部のコンピュータ80に接続される。通信インタフェース805は、通信ネットワークNTとコンピュータ80の内部とのインタフェースを司る。そして、通信インタフェース805は、外部の装置や外部のコンピュータ80からのデータの入出力を制御する。
【0097】
また、入出力インタフェース806は、入力装置、出力装置、および入出力装置の少なくともいずれかに接続される。接続方法は、無線であってもよいし、有線であってもよい。入力装置は、例えば、キーボード、マウス、マイクなどが挙げられる。出力装置は、例えば、表示装置、点灯装置、音声を出力する音声出力装置などが挙げられる。また、入出力装置は、タッチパネルディスプレイなどが挙げられる。なお、入力装置、出力装置、および入出力装置などは、コンピュータ80に内蔵されていてもよいし、外付けであってもよい。
【0098】
コンピュータ80のハードウェア構成は一例である。コンピュータ80は、図14に示す一部の構成要素を有していてもよい。コンピュータ80は、図14に示す以外の構成要素を有していてもよい。例えば、コンピュータ80は、ドライブ装置などを有してもよい。そして、プロセッサ801は、ドライブ装置などに装着された記録媒体に記憶されたプログラムやデータをRAM803に読み出してもよい。非一時的な有形な記録媒体としては、光ディスク、フレキシブルディスク、磁気光ディスク、USB(Universal Serial Bus)メモリなどが挙げられる。また、前述の通り、例えば、コンピュータ80は、キーボードやマウスなどの入力装置を有してもよい。コンピュータ80は、ディスプレイなどの出力装置を有していてもよい。また、コンピュータ80は、入力装置および出力装置と、入出力装置とをそれぞれ有してもよい。
【0099】
また、コンピュータ80は、図示しない各種センサを有してもよい。センサの種類は特に限定されない。また、コンピュータ80は、画像や映像を撮像可能な撮像装置を備えていてもよい。
【0100】
以上で、各装置のハードウェア構成の説明を終了する。また、各装置の実現方法には、様々な変形例がある。例えば、各装置は、構成要素ごとにそれぞれ異なるコンピュータとプログラムとの任意の組み合わせにより実現されてもよい。また、各装置が備える複数の構成要素が、一つのコンピュータとプログラムとの任意の組み合わせにより実現されてもよい。
【0101】
また、各装置の各構成要素の一部または全部は、特定用途向けの回路で実現されてもよい。また、各装置の各構成要素の一部または全部は、FPGA(Field Programmable Gate Array)のようなプロセッサなどを含む汎用の回路によって実現されてもよい。また、各装置の各構成要素の一部または全部は、特定用途向けの回路や汎用の回路などの組み合わせによって実現されてもよい。また、これらの回路は、単一の集積回路であってもよい。または、これらの回路は、複数の集積回路に分割されてもよい。そして、複数の集積回路は、バスなどを介して接続されることにより構成されてもよい。
【0102】
また、各装置の各構成要素の一部または全部が複数のコンピュータや回路などにより実現される場合、複数のコンピュータや回路などは、集中配置されてもよいし、分散配置されてもよい。
【0103】
各実施の形態で説明した最適化方法は、最適化システムが実行することにより実現される。また、例えば、最適化方法は、予め用意されたプログラムをサーバや端末装置21などのコンピュータが実行することにより実現される。
【0104】
各実施の形態で説明したプログラムは、HDD、SSD、フレキシブルディスク、光ディスク、磁気光ディスク、USBメモリなどのコンピュータで読み取り可能な記録媒体に記録される。そして、プログラムは、コンピュータによって記録媒体から読み出されることによって実行される。また、プログラムは、通信ネットワークNTを介して配布されてもよい。
【0105】
以上説明した、各実施の形態における最適化システムの各構成要素は、コンピュータのように、その機能を専用のハードウェアで実現されてもよい。または、各構成要素は、ソフトウェアによって実現されてもよい。または、各構成要素は、ハードウェアおよびソフトウェアの組み合わせによって実現されてもよい。
【0106】
以上、各実施の形態を参照して本開示を説明したが、本開示は上記実施の形態に限定されるものではない。各本開示の構成や詳細には、本開示のスコープ内で当業者が把握し得る様々な変更を適用した実施の形態を含み得る。本開示は、本明細書に記載された事項を必要に応じて適宜に組み合わせ、または置換した実施の形態を含み得る。例えば、特定の実施の形態を用いて説明された事項は、矛盾を生じない範囲において、他の実施の形態に対しても適用され得る。例えば、複数の動作をフローチャートの形式で順番に記載してあるが、その記載の順番は複数の動作を実行する順番を限定するものではない。このため、各実施の形態を実施するときには、その複数の動作の順番を内容的に支障しない範囲で変更することができる。
【0107】
上記の実施の形態の一部または全部は、以下の付記のようにも記載されることができる。ただし、上記の実施の形態の一部または全部は、以下に限られない。
【0108】
(付記1)
発見的解法によって最適化問題を求解する最適化処理手段と、
前記最適化処理手段によって得られた解に基づいて、当該解の統計情報を算出する算出手段と、
前記統計情報を利用者に提示する出力制御手段と、
を備える最適化システム。
(付記2)
前記統計情報は、前記解の分散、信頼区間、標準偏差、平均値、中央値、前記解の頻度と前記解とのヒストグラムの少なくともいずれかである、
付記1に記載の最適化システム。
(付記3)
前記統計情報は、前記解の評価値の統計情報である、
付記1または2に記載の最適化システム。
(付記4)
前記最適化処理手段、前記求解を繰り返し行い、
前記算出手段は、前記最適化処理手段によって新たな解が算出されるたびに、前記統計情報を算出する、
付記1から3のいずれかに記載の最適化システム。
(付記5)
前記最適化処理手段は、異なる複数の初期状態について並列に前記最適化問題を求解し、
前記算出手段は、前記最適化処理手段によって並列の求解の途中結果に基づいて、前記統計情報を算出する、
付記1から4のいずれかに記載の最適化システム。
(付記6)
前記解の前記統計情報に基づいて、前記発見的解法におけるパラメータの値を変更する設定手段、
を備え、
前記最適化処理手段は、変更後の前記パラメータの値に基づく前記発見的解法によって前記最適化問題を求解する、
付記1から5のいずれかに記載の最適化システム。
(付記7)
前記発見的解法は、アニーリング法であり、
前記パラメータは、アニーリング時間、前記最適化問題における確率的な遷移の遷移度合、および前記最適化問題における制約条件の遵守度合の少なくともいずれかである、
付記6に記載の最適化システム。
(付記8)
前記発見的解法は、アニーリング法であり、
前記パラメータは、アニーリング時間であり、
前記統計情報が、前記解の評価値の分散であり、
前記設定手段は、前記分散が閾値以下であれば、前記アニーリング時間が短くなるように変更する
付記6または7に記載の最適化システム。
(付記9)
前記発見的解法は、アニーリング法であり、
前記パラメータは、アニーリング時間であり、
前記統計情報が、前記解の評価値の分散であり、
前記設定手段は、前記分散が閾値より大きければ、前記アニーリング時間が長くなるように変更する
付記6または7に記載の最適化システム。
(付記10)
前記発見的解法は、アニーリング法である、
付記1から6のいずれかに記載の最適化システム。
(付記11)
発見的解法によって最適化問題を求解し、
前記求解によって得られた解に基づいて、当該解の統計情報を算出し、
前記統計情報を利用者に提示する、
最適化方法。
(付記12)
発見的解法によって最適化問題を求解し、
前記求解によって得られた解に基づいて、当該解の統計情報を算出し、
前記統計情報を利用者に提示する、
処理を実行させるプログラム。
(付記13)
コンピュータに、
発見的解法によって最適化問題を求解し、
前記求解によって得られた解に基づいて、当該解の統計情報を算出し、
前記統計情報を利用者に提示する、
処理を実行させるプログラムを記録する、前記コンピュータが読み取り可能な非一時的な記録媒体。
【符号の説明】
【0109】
10,20 最適化システム
21 端末装置
80 コンピュータ
101,201 最適化処理部
102,202 算出部
103,203 出力制御部
204 問題情報取得部
205 受付部
206 設定部
211,211-1~211-n 処理部
801 プロセッサ
802 ROM
803 RAM
804 記憶装置
805 通信インタフェース
806 入出力インタフェース
807 バス
NT 通信ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14