(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-19
(45)【発行日】2024-02-28
(54)【発明の名称】状態出力システム、状態出力方法および状態出力プログラム
(51)【国際特許分類】
G06N 99/00 20190101AFI20240220BHJP
【FI】
G06N99/00 180
(21)【出願番号】P 2022539926
(86)(22)【出願日】2020-07-30
(86)【国際出願番号】 JP2020029355
(87)【国際公開番号】W WO2022024328
(87)【国際公開日】2022-02-03
【審査請求日】2023-01-19
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103090
【氏名又は名称】岩壁 冬樹
(74)【代理人】
【識別番号】100124501
【氏名又は名称】塩川 誠人
(72)【発明者】
【氏名】鈴木 基己
(72)【発明者】
【氏名】井上 浩明
(72)【発明者】
【氏名】荒木 拓也
(72)【発明者】
【氏名】鷹野 芙美代
(72)【発明者】
【氏名】小林 悠記
(72)【発明者】
【氏名】千嶋 博
(72)【発明者】
【氏名】矢田部 彰宏
(72)【発明者】
【氏名】西村 考弘
【審査官】藤原 敬利
(56)【参考文献】
【文献】特開2018-109906(JP,A)
【文献】「巡回セールスマン問題」を解くアルゴリズムを可視化したムービー,[online],2016年05月12日,[2023年10月23日検索],インターネット<URL: https://gigazine.net/news/20160512-traveling-salesman-problem-visualization/>
【文献】上田祐一郎,シミュレーテッドアニーリングの温度に着目した視覚化システム,[online],2006年06月,[2023年10月23日検索],インターネット<http://mikilab.doshisha.ac.jp/dia/monthly/monthly06/20060624/ueda.pdf>
【文献】高原康彦,他3名,形式手法 モデル理論アプローチ,第1版,株式会社日科技連出版社,2007年11月29日,第183-191頁
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
組合せ最適化問題をシミュレーテッドアニーリング方式で求解する求解処理を実行する求解手段と、
実行中の前記求解処理の状態を示すデータを前記求解手段から取得する取得手段と、
取得されたデータを前記求解処理の実行中に出力する出力手段とを備え
、
前記求解処理の状態を示すデータは、組合せ最適化問題の記述に用いられたイジングモデルが表す複数のスピンの向きの組合せの更新が試行された数に対する前記複数のスピンの向きの組合せの更新が棄却された数の割合である
ことを特徴とする状態出力システム。
【請求項2】
組合せ最適化問題をシミュレーテッドアニーリング方式で求解する求解処理を実行する求解手段と、
実行中の前記求解処理の状態を示すデータを前記求解手段から取得する取得手段と、
取得されたデータを前記求解処理の実行中に出力する出力手段とを備え、
前記取得手段は、組合せ最適化問題の記述に用いられたイジングモデルが表す複数のスピンの向きの組合せの更新が所定の数だけ試行される毎にデータを取得し、
前記出力手段は、前記複数のスピンの向きの組合せの更新が前記所定の数だけ試行される毎にデータを出力する
ことを特徴とする状態出力システム。
【請求項3】
求解処理の状態を示すデータは、求解手段が求解することによって算出した組合せ最適化問題の解が用いられたときの前記組合せ最適化問題における最適化対象の値である
請求項1
または請求項2記載の状態出力システム。
【請求項4】
求解処理の状態を示すデータは、前記求解処理における温度である
請求項
1または請求項
3記載の状態出力システム。
【請求項5】
求解処理に対する指示が入力される入力手段を備え、
求解手段は、前記入力手段に前記求解処理を中断させる指示が入力されると前記求解処理を中断する
請求項1から請求項
4のうちのいずれか1項に記載の状態出力システム。
【請求項6】
求解手段は、入力手段に求解処理を継続して実行させる指示が入力されると前記求解処理を継続して実行する
請求項
5記載の状態出力システム。
【請求項7】
出力手段は、取得されたデータをグラフ形式で表示する
請求項1から請求項
6のうちのいずれか1項に記載の状態出力システム。
【請求項8】
状態出力システムで実行される状態出力方法であって、
前記状態出力システムが、
組合せ最適化問題をシミュレーテッドアニーリング方式で求解する求解処理を実行し、
実行中の前記求解処理の状態を示すデータを取得し、
取得されたデータを前記求解処理の実行中に出力
し、
前記求解処理の状態を示すデータは、組合せ最適化問題の記述に用いられたイジングモデルが表す複数のスピンの向きの組合せの更新が試行された数に対する前記複数のスピンの向きの組合せの更新が棄却された数の割合である
ことを特徴とする状態出力方法。
【請求項9】
状態出力システムで実行される状態出力方法であって、
前記状態出力システムが、
組合せ最適化問題をシミュレーテッドアニーリング方式で求解する求解処理を実行し、
実行中の前記求解処理の状態を示すデータを取得し、
取得されたデータを前記求解処理の実行中に出力し、
実行中の前記求解処理の状態を示すデータを取得するときに、組合せ最適化問題の記述に用いられたイジングモデルが表す複数のスピンの向きの組合せの更新が所定の数だけ試行される毎にデータを取得し、
取得されたデータを前記求解処理の実行中に出力するときに、前記複数のスピンの向きの組合せの更新が前記所定の数だけ試行される毎にデータを出力する
ことを特徴とする状態出力方法。
【請求項10】
コンピュータに、
組合せ最適化問題をシミュレーテッドアニーリング方式で求解する求解処理、
実行中の前記求解処理の状態を示すデータを取得する取得処理、および
取得されたデータを前記求解処理の実行中に出力する出力処理
を実行させるための状態出力プログラム
であって、
前記求解処理の状態を示すデータは、組合せ最適化問題の記述に用いられたイジングモデルが表す複数のスピンの向きの組合せの更新が試行された数に対する前記複数のスピンの向きの組合せの更新が棄却された数の割合である
ことを特徴とする状態出力プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、状態出力システム、状態出力方法および状態出力プログラムに関する。
【背景技術】
【0002】
量子アニーリングマシンの実用化を契機に、組合せ最適化問題に関する研究が再度注目されている。組合せ最適化問題は、最適となる組合せを求める問題である。現実社会における課題を表した組合せ最適化問題として、巡回セールスマン問題、ナップサック問題、シフト最適化問題、および配送計画問題等が挙げられる。
【0003】
シフト最適化問題は、例えば、14日間における6人の従業員のシフトを、課せられている様々な制約が満たされるように組む問題である。課せられている制約は、「1人の従業員が4日連続で勤務すること、または4連休を取得することは禁止」、「1日に勤務する従業員の数を3人以上4人以下にする」、「各従業員の休暇希望を反映させる」、「全員の勤務日数に偏りが無いようにする」等である。
【0004】
図9は、シフト最適化問題の解の例を示す説明図である。
図9は、シフト最適化問題が求解されることによって得られた、14日間における従業員A~Fの6人のシフトを示す。具体的には、
図9に示す「〇」は「出勤」を、「×」は「休暇」をそれぞれ表している。
【0005】
上記の組合せ最適化問題は、例えば、イジングモデル形式で記述される。イジングモデルは、個々のスピンによって磁性体の振る舞いを表す統計力学上のモデルである。イジングモデルでは、個々のスピンの向きは、“1”または“-1”で表される。イジングモデルは、多くの組合せ最適化問題を定式化できる。
【0006】
組合せ最適化問題がイジングモデル形式で記述される場合、最初に組合せ最適化問題におけるエネルギーを表す式が作成される。次いで、組合せ最適化問題におけるエネルギーを表す式が、イジングモデルにおけるエネルギー関数に変換される。なお、イジングモデルにおけるエネルギー関数への変換方法は、公知である。イジングモデルにおけるエネルギー関数は、以下の式(1)のように表される。
【0007】
【0008】
なお、式(1)におけるi,jは、いずれもスピンを表す変数である。また、式(1)におけるsiは、スピンiの向きを表す変数であり、sjは、スピンjの向きを表す変数である。すなわち、si、sjは、“1”または“-1”のいずれかである変数である。
【0009】
また、式(1)におけるhiは、スピンiに対応する定数である。iの取り得る値毎に、hiは定数として定められる。また、式(1)におけるJij は、スピンiおよびスピンjの組合せに対応する定数である。iの取り得る値とjの取り得る値の組合せ毎に、Jij は定数として定められる。
【0010】
全結合の場合におけるイジングモデルは、例えば、完全グラフで表現可能である。
図10は、スピンの数が7個の場合の完全グラフの例を示す説明図である。
【0011】
図10に示す白抜きの矢印は、スピンを表している。上向きの白抜きの矢印は、変数の値が“1”であるスピンを表す。また、下向きの白抜きの矢印は、変数の値が“-1”であるスピンを表す。
【0012】
また、白抜きの矢印同士を結ぶ各エッジは、スピン間の結合を表す。各エッジには、スピンの組合せに対応するJij の値がそれぞれ割り当てられている。
【0013】
また、イジングモデルにおけるエネルギー関数の代わりに、QUBO(Quadratic Unconstrained Binary Optimization )のエネルギー関数が用いられてもよい。QUBOは、個々のスピンの向きを“1”または“0”で表すモデルである。
【0014】
すなわち、組合せ最適化問題におけるエネルギーを表す式は、QUBOにおけるエネルギー関数に変換可能である。この変換方法は、公知である。以下、組合せ最適化問題におけるエネルギーを表す式がQUBOにおけるエネルギー関数で表される場合、組合せ最適化問題がQUBO形式で記述されるという。
【0015】
また、イジングモデルにおけるエネルギー関数と、QUBOにおけるエネルギー関数とは、相互に変換可能である。QUBOにおけるエネルギー関数は、以下の式(2)のように表される。
【0016】
【0017】
なお、式(2)におけるi,jは、いずれもスピンを表す変数である。また、式(2)におけるxiは、スピンiの向きを表す変数であり、xjは、スピンjの向きを表す変数である。また、式(2)におけるQij は、スピンiおよびスピンjの組合せに対応する定数である。iの取り得る値とjの取り得る値の組合せ毎に、Qij は定数として定められる。
【0018】
式(1)に示すエネルギー関数が与えられた場合、組合せ最適化問題が求解されると、最適な個々のスピンの向き(1または-1)が求められる。また、式(2)に示すエネルギー関数が与えられた場合、組合せ最適化問題が求解されると、最適な個々のスピンの向き(1または0)が求められる。求められた最適な個々のスピンの向きは、組合せ最適化問題の解を表している。
【0019】
多くの組合せ最適化問題は、例えば、与えられた制約条件の下で任意の目的関数(最小化対象)を最小にする組合せを求める問題である最小化問題に帰着可能である。組合せ最適化問題が最小化問題である場合、最適な個々のスピンの向きは、エネルギー関数が示すエネルギーができるだけ小さくなるような個々のスピンの向きである。
【0020】
上述したように、イジングモデル形式で記述された組合せ最適化問題を高速に求解可能な量子コンピュータが開発されたことを契機に、組合せ最適化技術を応用した研究が注目されている。なお、量子力学を用いた量子コンピュータを、「実量子」と呼ぶ場合がある。
【0021】
非特許文献1には、クラウドサービスとオンプレミスサービスの両方を提供する、組合せ最適化問題を求解する専用ハードウェアのソルバが記載されている。
【0022】
また、非特許文献2には、クラウドサービスを提供する、量子アニーリングを行う実量子のハードウェアが記載されている。
【0023】
また、特許文献1には、入力パラメータの次元数が多い場合であっても、簡易かつ迅速に最適な入力パラメータを設定できる最適化装置が記載されている。
【0024】
また、特許文献2には、既に検出されている解情報を利用することによって、探索処理時間の短縮と探索処理に必要なメモリ量の削減を可能にする最適解探索方式が記載されている。
【先行技術文献】
【特許文献】
【0025】
【文献】特開2020-027370号公報
【文献】特開平7-319848号公報
【非特許文献】
【0026】
【文献】"Physics-Inspired Optimization for Quadratic Unconstrained Problems Using a Digital Annealer "、[online]、Frontiers 、[ 令和 2年 7月 6日検索] 、インターネット<https://www.frontiersin.org/articles/10.3389/fphy.2019.00048/full>
【文献】D-Wave, "PRACTICAL QUANTUM COMPUTING D-Wave Technology Overview," D-Wave Systems Inc, 2020.
【発明の概要】
【発明が解決しようとする課題】
【0027】
組合せ最適化問題が入力されると、非特許文献1に記載されているソルバは、入力された組合せ最適化問題をシミュレーテッドアニーリング方式で求解し、組合せ最適化問題の解を返す。非特許文献1に記載されているソルバのユーザは、ソルバの制御用のパラメータである制御パラメータを、組合せ最適化問題をソルバに入力する前に決定し、返された解を基に制御パラメータを調整する。
【0028】
最適化の計算に求められる精度の種類は、ユーザに依存する。例えば、精度が低い解でも良いから短時間で解が欲しいユーザも存在するし、計算時間が長くなっても良いからより精度が高い解が欲しいユーザも存在する。
【0029】
上述したような求解後に解を返すソルバを使用する場合、ユーザは、自身が求める精度の種類を基に、返された解を用いて制御パラメータを調整する。すなわち、求解処理が実行されている最中の組合せ最適化問題に関して、ユーザごとに求められる精度を最大化するようにユーザが計算時間等の制御パラメータを決めることは、未だ解が返されていないため困難である。
【0030】
非特許文献1~2、および特許文献1~2には、シミュレーテッドアニーリング方式による求解処理が実行されている最中の組合せ最適化問題の解の精度を向上する方法が記載されていない。
【0031】
そこで、本発明は、組合せ最適化問題のシミュレーテッドアニーリング方式による求解処理の実行中に求解処理の状態を出力できる状態出力システム、状態出力方法および状態出力プログラムを提供することを目的とする。
【課題を解決するための手段】
【0032】
本発明による状態出力システムは、組合せ最適化問題をシミュレーテッドアニーリング方式で求解する求解処理を実行する求解手段と、実行中の求解処理の状態を示すデータを求解手段から取得する取得手段と、取得されたデータを求解処理の実行中に出力する出力手段とを備え、求解処理の状態を示すデータは、組合せ最適化問題の記述に用いられたイジングモデルが表す複数のスピンの向きの組合せの更新が試行された数に対する複数のスピンの向きの組合せの更新が棄却された数の割合であることを特徴とする。
本発明による他の態様の状態出力システムは、組合せ最適化問題をシミュレーテッドアニーリング方式で求解する求解処理を実行する求解手段と、実行中の求解処理の状態を示すデータを求解手段から取得する取得手段と、取得されたデータを求解処理の実行中に出力する出力手段とを備え、取得手段は、組合せ最適化問題の記述に用いられたイジングモデルが表す複数のスピンの向きの組合せの更新が所定の数だけ試行される毎にデータを取得し、出力手段は、複数のスピンの向きの組合せの更新が所定の数だけ試行される毎にデータを出力することを特徴とする。
【0033】
本発明による状態出力方法は、状態出力システムで実行される状態出力方法であって、状態出力システムが、組合せ最適化問題をシミュレーテッドアニーリング方式で求解する求解処理を実行し、実行中の求解処理の状態を示すデータを取得し、取得されたデータを求解処理の実行中に出力し、求解処理の状態を示すデータは、組合せ最適化問題の記述に用いられたイジングモデルが表す複数のスピンの向きの組合せの更新が試行された数に対する複数のスピンの向きの組合せの更新が棄却された数の割合であることを特徴とする。
また、本発明による他の態様の状態出力方法は、状態出力システムで実行される状態出力方法であって、状態出力システムが、組合せ最適化問題をシミュレーテッドアニーリング方式で求解する求解処理を実行し、実行中の求解処理の状態を示すデータを取得し、取得されたデータを求解処理の実行中に出力し、実行中の求解処理の状態を示すデータを取得するときに、組合せ最適化問題の記述に用いられたイジングモデルが表す複数のスピンの向きの組合せの更新が所定の数だけ試行される毎にデータを取得し、取得されたデータを求解処理の実行中に出力するときに、複数のスピンの向きの組合せの更新が所定の数だけ試行される毎にデータを出力することを特徴とする。
【0034】
本発明による状態出力プログラムは、コンピュータに、組合せ最適化問題をシミュレーテッドアニーリング方式で求解する求解処理、実行中の求解処理の状態を示すデータを取得する取得処理、および取得されたデータを求解処理の実行中に出力する出力処理を実行させるための状態出力プログラムであって、求解処理の状態を示すデータは、組合せ最適化問題の記述に用いられたイジングモデルが表す複数のスピンの向きの組合せの更新が試行された数に対する複数のスピンの向きの組合せの更新が棄却された数の割合であることを特徴とする。
【発明の効果】
【0035】
本発明によれば、組合せ最適化問題のシミュレーテッドアニーリング方式による求解処理の実行中に求解処理の状態を出力できる。
【図面の簡単な説明】
【0036】
【
図1】シミュレーテッドアニーリング方式による組合せ最適化問題の求解方法の概念を示す説明図である。
【
図2】シミュレーテッドアニーリング方式により得られた組合せ最適化問題の最小値、温度、および凍結度の表示例を示す説明図である。
【
図3】本発明の実施形態の状態表示システムの構成例を示すブロック図である。
【
図4】本実施形態の状態表示システム1000による組合せ最適化問題求解処理の動作を示すフローチャートである。
【
図5】状態表示システム1000による配送計画最適化問題の最小値、温度、および凍結度の表示例を示す説明図である。
【
図6】本発明によるユーザ端末100のハードウェア構成例を示す説明図である。
【
図7】本発明によるソルバ200のハードウェア構成例を示す説明図である。
【
図8】本発明による状態出力システムの概要を示すブロック図である。
【
図9】シフト最適化問題の解の例を示す説明図である。
【
図10】スピンの数が7個の場合の完全グラフの例を示す説明図である。
【発明を実施するための形態】
【0037】
最初に、上述した課題に関して、イジングモデル形式またはQUBO形式で記述された組合せ最適化問題をシミュレーテッドアニーリング方式(以下、SA方式と呼ぶ。)で求解する場合の課題の内容を具体的に説明する。
【0038】
SA方式は、組合せ最適化問題を近似的に求解する汎用手法である。SA方式は、以下の5つの処理を1つのサイクルとして組合せ最適化問題を求解する。
【0039】
1.スピンを1つ選択する
2.選んだスピンを反転させる
3.スピンの反転によるエネルギーの変化量ΔH を計算する
4.確率min(exp(-ΔH/T),1) で、スピンの反転を受理する
5.温度T を少し下げて1.に戻る
【0040】
上記の処理における温度T のサイクルの経過に伴う変化(徐々に低下させる、等)が規定された計画を、「温度スケジュール」と呼ぶ。温度スケジュールは、ユーザによってどのように決められてもよい。
【0041】
図1は、SA方式による組合せ最適化問題の求解方法の概念を示す説明図である。
図1に示す例は、SA方式により最小化問題を求解する例である。
【0042】
図1に示すグラフの縦軸はエネルギーを、横軸は複数のスピンの向きの組合せをそれぞれ表す。また、
図1に示す曲線は、例えばイジングモデルにおけるエネルギー関数を表す。また、
図1に示す黒色の円は、SA方式により得られた解が用いられたときのエネルギーの値の一例である。
【0043】
最小化問題の解を求める処理は、
図1に示す曲線における谷底を探す処理に相当する。SA方式は、温度が高い間は
図1に示す曲線における所定の程度高い山も越えて広く探索できる。しかし、温度が低くなると、SA方式は、山を越えられなくなり、最も深い谷底に高い確率で遷移する。
【0044】
図2は、SA方式により得られた組合せ最適化問題の最小値、温度、および凍結度の表示例を示す説明図である。
図2に示す二重枠は、任意の画面を表す。
【0045】
図2に示す画面内のグラフは、SA方式による最小化問題の求解処理の開始から終了までの間の最小値、温度、および凍結度を表示している。
図2に示すグラフの横軸は、時間を表す。換言すると、
図2に示すグラフは、SA方式による組合せ最適化問題の求解処理の状態を表している。
【0046】
図2に示すグラフにおける「最小値」は、SA方式により得られた解が用いられたときの最小化対象の値である。また、
図2に示すグラフにおける「温度」は、SA方式による求解処理における上記の温度T である。
【0047】
また、
図2に示すグラフにおける「凍結度」は、SAにおいて凍結がどの程度生じているか、すなわちスピンの反転がどの程度棄却されているかを示す値である。凍結度は、例えば以下のように定義される。
【0048】
(凍結度)=(複数のスピンの向きの組合せの更新が棄却された数)/(複数のスピンの向きの組合せの更新が試行された数)
【0049】
よって、
図2に示すグラフの後半のように凍結度が高止まりしていると、求解処理の継続が無駄であることが分かる。高すぎる凍結度は、温度が低すぎて探索が困難な状態にあることを意味している。
【0050】
また、
図2に示す「第1パラメータ」および「第2パラメータ」は、上述した制御パラメータである。例えば、第1パラメータの値が変更されることによって、温度スケジュールが変化する。
【0051】
また、
図2に示す「中断」と表記された矩形は、ユーザが操作可能なGUI(Graphical User Interface) におけるボタンである。「中断」のボタンが操作されると、SA方式で組合せ最適化問題を求解するソルバに、求解処理を中断させる指示が入力される。
【0052】
また、
図2に示す「継続」と表記された矩形は、ユーザが操作可能なGUI におけるボタンである。「継続」のボタンが操作されると、SA方式で組合せ最適化問題を求解するソルバに、求解処理を継続して実行させる指示が入力される。
【0053】
SA方式で組合せ最適化問題を求解するソルバには、求解対象の組合せ最適化問題が入力される。また、ソルバには、制御パラメータとして、探索時間、温度スケジュール、初期解等が入力される。ソルバは、入力された制御パラメータに基づいて、組合せ最適化問題を求解する。
【0054】
グラフが未だ表示されていない組合せ最適化問題に関して、ユーザごとに求められる精度を最大化するようにユーザが温度スケジュール等を決めることは、グラフが表示されていないため困難である。
【0055】
求解処理が実行されている最中の組合せ最適化問題に関して求められる精度を最大化するためには、求解処理の実行中に最小値や凍結度が表示されればよい。最小値や凍結度の表示は、ユーザに求解処理を中断させるか、または継続させるかの判断を促す。
【0056】
求解処理の実行中に最小値や凍結度が表示されることによって、例えばユーザにより無駄な探索が早めに中断される。また、例えばもう少し探索の余地がある場合には、ユーザにより求解処理が継続して実行される。すなわち、組合せ最適化問題の解の探索の効率が上がることが期待される。また、ユーザは、求解処理の状態が可視化された内容を基に制御パラメータを調整できる。
【0057】
[構成の説明]
以下、本発明の実施形態を図面を参照して説明する。
図3は、本発明の実施形態の状態表示システムの構成例を示すブロック図である。
【0058】
図3に示すように、状態表示システム1000は、ユーザ端末100と、ソルバ200と、システム通信部300とを含む。ユーザ端末100は、システム通信部300を介してソルバ200と通信可能に接続されている。
【0059】
また、
図3に示すように、ユーザ端末100は、問題入力部110と、ソルバ制御部120と、可視化選択部130と、ユーザインタフェース140と、ユーザ状態記憶部150とを含む。
【0060】
問題入力部110は、ソルバ200に求解対象の組合せ最適化問題を入力する機能を有する。問題入力部110は、例えばイジングモデル形式で記述された組合せ最適化問題、またはQUBO形式で記述された組合せ最適化問題を入力する。
【0061】
ソルバ制御部120は、ソルバ200に探索時間、温度スケジュール、初期解等の制御パラメータを入力する機能を有する。
【0062】
可視化選択部130は、ソルバ200による求解処理の状態の中で可視化する状態、すなわちグラフに表示する状態を選択する機能を有する。
図2に示すグラフの例であれば、可視化選択部130は、グラフに表示する状態として「最小値」、「温度」、および「凍結度」を選択する。
【0063】
本実施形態における求解処理の状態には、最小値、温度、および凍結度が含まれる。なお、求解処理の状態には、他の状態が含まれてもよい。可視化選択部130は、選択された状態を示す情報をソルバ200に入力する。
【0064】
ユーザインタフェース140は、入出力機能を有する。例えば、ユーザインタフェース140は、
図2に示す画面を表示することによって、ソルバ200から返された値を出力する。なお、ソルバ200から返された値を出力する構成要素は、ユーザ端末100に含まれていなくてもよい。
【0065】
また、ユーザインタフェース140には、ユーザからの指示が入力される。例えば、ユーザインタフェース140には、ユーザからグラフに表示する状態が入力される。グラフに表示する状態が入力されると、ユーザインタフェース140は、入力された状態を示す情報を可視化選択部130に入力する。
【0066】
また、例えば、
図2に示す「中断」のボタンが操作されると、ユーザインタフェース140には、求解処理を中断させる指示が入力される。指示を受けたユーザインタフェース140は、ユーザから求解処理の中断を要求された旨を示す情報を、ソルバ200に送信する。
【0067】
同様に、
図2に示す「継続」のボタンが操作されると、ユーザインタフェース140には、求解処理を継続して実行させる指示が入力される。指示を受けたユーザインタフェース140は、ユーザから求解処理の継続を要求された旨を示す情報を、ソルバ200に送信する。
【0068】
ユーザ状態記憶部150は、ソルバ200による求解処理の状態を示すデータを記憶する機能を有する。具体的には、ユーザ状態記憶部150には、
図2に示すグラフに表示される状態の時系列データが記憶される。ユーザインタフェース140は、ユーザ状態記憶部150に記憶されている時系列データを用いて、
図2に示すグラフを表示する。
【0069】
また、
図3に示すように、ソルバ200は、最適化部210と、状態読出部220と、ソルバ状態記憶部230とを含む。
【0070】
最適化部210は、ユーザ端末100から入力された求解対象の組合せ最適化問題を、ユーザ端末100から入力された制御パラメータに基づいて求解する機能を有する。
【0071】
最適化部210は、SA方式で組合せ最適化問題を求解する。最適化部210は、例えばSAマシンで実現される。
【0072】
状態読出部220は、最適化部210による組合せ最適化問題の求解処理の状態の中で、可視化選択部130により選択された状態の時系列データを最適化部210から読み出す機能を有する。状態読出部220は、読み出された時系列データをソルバ状態記憶部230に格納する。
【0073】
システム通信部300は、ソルバ状態記憶部230に格納された状態の時系列データを、ユーザ状態記憶部150に転送する。
【0074】
なお、最適化部210は、SA方式で求解した組合せ最適化問題の解を、ユーザ端末100に入力する。ユーザ端末100は、入力された組合せ最適化問題の解が格納される、ユーザ状態記憶部150と異なる記憶部(図示せず)を含んでいる。
【0075】
[動作の説明]
以下、本実施形態の状態表示システム1000の動作を
図4を参照して説明する。
図4は、本実施形態の状態表示システム1000による組合せ最適化問題求解処理の動作を示すフローチャートである。
【0076】
最初に、ユーザ端末100の問題入力部110が、ソルバ200に求解対象の組合せ最適化問題を入力する(ステップS101)。次いで、ソルバ制御部120が、ソルバ200に制御パラメータを入力する(ステップS102)。
【0077】
次いで、可視化選択部130が、求解処理の状態の中で可視化する状態を選択し、選択された状態を示す情報をソルバ200に入力する(ステップS103)。
【0078】
次いで、ソルバ200の最適化部210が、入力された求解対象の組合せ最適化問題を、入力された制御パラメータに基づいて求解する。具体的には、最適化部210は、上記のサイクルを1回実行する(ステップS104)。
【0079】
なお、上記のサイクルを1回実行することは、求解対象の組合せ最適化問題の記述に用いられたイジングモデルが表す複数のスピンの向きの組合せの更新を1回試行することに相当する。
【0080】
次いで、状態読出部220は、サイクルがK回実行されたか否かを確認する(Kは正の整数)(ステップS105)。Kは、求解対象の組合せ最適化問題のサイズに依存する値である。サイクルがK回実行されていない場合(ステップS105におけるNo)、状態読出部220は、ステップS110の処理に進む。
【0081】
サイクルがK回実行された場合(ステップS105におけるYes )、状態読出部220は、最適化部210による求解処理の状態の中で、入力された可視化する状態の時系列データを読み出す。なお、状態読出部220が読み出す状態の時系列データは、実行されたK回のサイクルに対応するデータである。
【0082】
状態読出部220は、読み出された時系列データをソルバ状態記憶部230に格納する(ステップS106)。次いで、システム通信部300は、ソルバ状態記憶部230に格納された時系列データを、ユーザ状態記憶部150に転送する(ステップS107)。
【0083】
次いで、ユーザインタフェース140は、ユーザ状態記憶部150に記憶されている時系列データを用いて、可視化する状態を表示する(ステップS108)。
【0084】
次いで、最適化部210は、求解対象の組合せ最適化問題の求解処理を終了するか否かを判定する(ステップS109)。例えば、所定の数のサイクルが実行された場合、または所定の精度以上の解が得られた場合、最適化部210は、求解処理を終了する。
【0085】
求解処理を終了しないと判定した場合(ステップS109におけるNo)、最適化部210は、ユーザから求解処理の中断を要求されたか否かを確認する(ステップS110)。求解処理の中断を要求されていない場合(ステップS110におけるNo)、最適化部210は、ステップS104の処理に戻る。
【0086】
また、求解処理の中断を要求された場合(ステップS110におけるYes )、状態表示システム1000は、組合せ最適化問題求解処理を終了する。なお、状態表示システム1000は、組合せ最適化問題求解処理を終了せずに中断してもよい。
【0087】
求解処理を終了すると判定した場合(ステップS109におけるYes )、最適化部210は、組合せ最適化問題の解をユーザ端末100に入力する(ステップS111)。
【0088】
次いで、最適化部210は、ユーザから求解処理の継続を要求されたか否かを確認する(ステップS112)。求解処理の継続を要求された場合(ステップS112におけるYes )、最適化部210は、ステップS104の処理に戻る。また、求解処理の継続を要求されていない場合(ステップS112におけるNo)、状態表示システム1000は、組合せ最適化問題求解処理を終了する。
【0089】
以上のように、本実施形態の状態表示システム1000は、組合せ最適化問題をSA方式で求解する求解処理を実行する最適化部210と、実行中の求解処理の状態を示すデータを最適化部210から取得する状態読出部220とを含む。
【0090】
また、状態表示システム1000は、取得されたデータを求解処理の実行中に出力するユーザインタフェース140を含む。ユーザインタフェース140は、例えば取得されたデータをグラフ形式で表示する。
【0091】
求解処理の状態を示すデータは、例えば、最適化部210がSA方式で求解することによって算出した組合せ最適化問題の解が用いられたときの組合せ最適化問題における最適化対象の値(例えば、最小値)である。
【0092】
また、求解処理の状態を示すデータは、例えば、組合せ最適化問題の記述に用いられたイジングモデルが表す複数のスピンの向きの組合せの更新が試行された数に対する複数のスピンの向きの組合せの更新が棄却された数の割合である凍結度、または求解処理における温度である。
【0093】
また、状態読出部220は、組合せ最適化問題の記述に用いられたイジングモデルが表す複数のスピンの向きの組合せの更新が所定の数(例えば、K)だけ試行される毎にデータを取得してもよい。また、ユーザインタフェース140は、複数のスピンの向きの組合せの更新が所定の数だけ試行される毎にデータを出力してもよい。
【0094】
また、ユーザインタフェース140には、求解処理に対するユーザからの指示が入力される。最適化部210は、ユーザインタフェース140に求解処理を中断させる指示が入力されると、求解処理を中断する。また、最適化部210は、ユーザインタフェース140に求解処理を継続して実行させる指示が入力されると、求解処理を継続して実行する。
【0095】
[効果の説明]
本実施形態の状態表示システム1000では、ユーザインタフェース140が、サイクルがK回実行される毎に、最小値、温度、または凍結度等の最適化部210による求解処理の状態を表示する。
【0096】
すなわち、ユーザは、表示内容に基づいて、自身が求める解の精度の種類に応じて求解処理の中断または継続を要求できる。状態が表示されると、ユーザは、特に制御パラメータが最適値から大きく外れているような場合を求解処理の初期段階で検知できる。
図2に示すグラフのように状態が可視化されると、ユーザは、制御パラメータのチューニングの方向性を定めやすい。
【0097】
また、本実施形態の状態表示システム1000は、CUI(Character User Interface) の学習コストを軽減できる。例えば、CUI に基づいたインタフェースを有するソルバを使用する場合、ユーザには、API(Application Programming Interface)リファレンスを参照しながら求解対象の問題をソルバに入力し、返却された値を解釈することが求められる場合がある。
【0098】
すなわち、CUI に基づいたインタフェースを扱うことが求められるユーザは、マニュアル等を十分に理解しない限り、ソルバを使用することが困難である。マニュアル等を理解しなければならないようなユーザ側の負担が、上記のCUI の学習コストに相当する。
【0099】
本実施形態の状態表示システム1000は、最適化部210による求解処理の状態をグラフ形式で表示できる。すなわち、ユーザは表示されたグラフを参照するだけで制御パラメータのチューニングの方向性を容易に把握できるため、CUI の学習コストが軽減される。
【0100】
以下、本実施形態の状態表示システム1000が配送計画最適化問題を求解する具体例を説明する。配送計画最適化問題をユーザインタフェース140に入力する際、ユーザは、配送箇所も併せて入力する。
【0101】
上述したように、状態表示システム1000を利用するユーザは、最適化部210による求解処理の状態を監視しつつ、配送計画最適化問題の求解処理を中断して再計算させるか、または求解処理を継続して実行させるかを判断できる。
【0102】
図5は、状態表示システム1000による配送計画最適化問題の最小値、温度、および凍結度の表示例を示す説明図である。
図5に示す例では、下部に「現在の解」という解の具体的な形が表示されている。
【0103】
図5に示す「現在の解」は、配送計画最適化問題において配送箇所を巡回する経路の形を表している。具体的には、
図5に示す「現在の解」の各頂点が配送箇所を、各辺が経路をそれぞれ表している。
図5に示す「現在の解」の経路に沿って配送する場合、コスト(総距離)が最小値、または最小値に近い値(
図5に示す「41」)になる。なお、組合せ最適化問題の種類によって、解の具体的な形は異なる。
【0104】
また、
図5に示す例では、「継続」のボタンに黒色が付されている。黒色が付されている「継続」のボタンは、最適化部210による求解処理が終了した後、求解処理の続きを実行するとより良い解が得られる可能性が高いことをユーザに示唆している。もし、最適化部210による求解処理が継続して実行されても良い解が得られる可能性が低い場合、「中断」のボタンに黒色が付される。
【0105】
以下、本実施形態のユーザ端末100のハードウェア構成の具体例を説明する。
図6は、本発明によるユーザ端末100のハードウェア構成例を示す説明図である。
【0106】
図6に示すユーザ端末100は、CPU(Central Processing Unit )11と、主記憶部12と、通信部13と、補助記憶部14とを備える。また、ユーザが操作するための入力部15や、ユーザに処理結果または処理内容の経過を提示するための出力部16を備える。
【0107】
ユーザ端末100は、
図6に示すCPU11が各構成要素が有する機能を提供するプログラムを実行することによって、ソフトウェアにより実現される。
【0108】
すなわち、CPU11が補助記憶部14に格納されているプログラムを、主記憶部12にロードして実行し、ユーザ端末100の動作を制御することによって、各機能がソフトウェアにより実現される。
【0109】
なお、
図6に示すユーザ端末100は、CPU11の代わりにDSP(Digital Signal Processor)を備えてもよい。または、
図6に示すユーザ端末100は、CPU11とDSPとを併せて備えてもよい。
【0110】
主記憶部12は、データの作業領域やデータの一時退避領域として用いられる。主記憶部12は、例えばRAM(Random Access Memory)である。本実施形態のユーザ状態記憶部150は、主記憶部12により実現される。
【0111】
通信部13は、有線のネットワークまたは無線のネットワーク(情報通信ネットワーク)を介して、周辺機器との間でデータを入力および出力する機能を有する。
【0112】
補助記憶部14は、一時的でない有形の記憶媒体である。一時的でない有形の記憶媒体として、例えば磁気ディスク、光磁気ディスク、CD-ROM(Compact Disk Read Only Memory )、DVD-ROM(Digital Versatile Disk Read Only Memory )、半導体メモリが挙げられる。
【0113】
入力部15は、データや処理命令を入力する機能を有する。また、出力部16は、データを出力する機能を有する。本実施形態のユーザインタフェース140は、入力部15および出力部16により実現される。
【0114】
また、
図6に示すように、ユーザ端末100において、各構成要素は、システムバス17に接続されている。
【0115】
補助記憶部14は、本実施形態のユーザ端末100において、問題入力部110、ソルバ制御部120、および可視化選択部130を実現するためのプログラムを記憶している。
【0116】
以下、本実施形態のソルバ200のハードウェア構成の具体例を説明する。
図7は、本発明によるソルバ200のハードウェア構成例を示す説明図である。
【0117】
図7に示すソルバ200は、CPU21と、主記憶部22と、通信部23と、補助記憶部24とを備える。また、ユーザが操作するための入力部25や、ユーザに処理結果または処理内容の経過を提示するための出力部26を備える。
【0118】
ソルバ200は、
図7に示すCPU21が各構成要素が有する機能を提供するプログラムを実行することによって、ソフトウェアにより実現される。
【0119】
すなわち、CPU21が補助記憶部24に格納されているプログラムを、主記憶部22にロードして実行し、ソルバ200の動作を制御することによって、各機能がソフトウェアにより実現される。
【0120】
なお、
図7に示すソルバ200は、CPU21の代わりにDSPを備えてもよい。または、
図7に示すソルバ200は、CPU21とDSPとを併せて備えてもよい。
【0121】
主記憶部22は、データの作業領域やデータの一時退避領域として用いられる。主記憶部22は、例えばRAMである。本実施形態のソルバ状態記憶部230は、主記憶部22により実現される。
【0122】
通信部23は、有線のネットワークまたは無線のネットワーク(情報通信ネットワーク)を介して、周辺機器との間でデータを入力および出力する機能を有する。
【0123】
補助記憶部24は、一時的でない有形の記憶媒体である。一時的でない有形の記憶媒体として、例えば磁気ディスク、光磁気ディスク、CD-ROM、DVD-ROM、半導体メモリが挙げられる。
【0124】
入力部25は、データや処理命令を入力する機能を有する。入力部25は、例えばキーボードやマウス等の入力デバイスである。
【0125】
出力部26は、データを出力する機能を有する。出力部26は、例えば液晶ディスプレイ装置等の表示装置、またはプリンタ等の印刷装置である。
【0126】
また、
図7に示すように、ソルバ200において、各構成要素は、システムバス27に接続されている。
【0127】
補助記憶部24は、本実施形態のソルバ200において、最適化部210、および状態読出部220を実現するためのプログラムを記憶している。
【0128】
なお、ユーザ端末100およびソルバ200は、例えば内部に
図3に示すような機能を実現するLSI(Large Scale Integration )等のハードウェア部品が含まれる回路が実装されてもよい。
【0129】
また、ユーザ端末100およびソルバ200は、CPU等の素子を用いるコンピュータ機能を含まないハードウェアにより実現されてもよい。例えば、各構成要素の一部または全部は、汎用の回路(circuitry )または専用の回路、プロセッサ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップ(例えば、上記のLSI)によって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
【0130】
各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【0131】
また、状態表示システム1000は、
図3に示す2つの装置で構成される代わりに、1つの装置であってもよい。すなわち、状態表示システム1000が、ユーザ端末100の各構成要素、ソルバ200の各構成要素、およびシステム通信部300を全て含む1つの装置であってもよい。
【0132】
次に、本発明の概要を説明する。
図8は、本発明による状態出力システムの概要を示すブロック図である。本発明による状態出力システム30は、組合せ最適化問題をシミュレーテッドアニーリング方式で求解する求解処理を実行する求解手段31(例えば、最適化部210)と、実行中の求解処理の状態を示すデータを求解手段31から取得する取得手段32(例えば、状態読出部220)と、取得されたデータを求解処理の実行中に出力する出力手段33(例えば、ユーザインタフェース140)とを備える。
【0133】
そのような構成により、状態出力システムは、組合せ最適化問題のシミュレーテッドアニーリング方式による求解処理の実行中に求解処理の状態を出力できる。
【0134】
また、求解処理の状態を示すデータは、求解手段31が求解することによって算出した組合せ最適化問題の解が用いられたときの組合せ最適化問題における最適化対象の値(例えば、最小値)でもよい。
【0135】
また、求解処理の状態を示すデータは、組合せ最適化問題の記述に用いられたイジングモデルが表す複数のスピンの向きの組合せの更新が試行された数に対する複数のスピンの向きの組合せの更新が棄却された数の割合(例えば、凍結度)でもよい。
【0136】
また、求解処理の状態を示すデータは、求解処理における温度でもよい。
【0137】
そのような構成により、状態出力システムは、組合せ最適化問題の求解処理の中断または継続をユーザに判断させる材料を提示できる。
【0138】
また、取得手段32は、組合せ最適化問題の記述に用いられたイジングモデルが表す複数のスピンの向きの組合せの更新が所定の数だけ試行される毎にデータを取得し、出力手段33は、複数のスピンの向きの組合せの更新が所定の数だけ試行される毎にデータを出力してもよい。
【0139】
そのような構成により、状態出力システムは、組合せ最適化問題のサイズに応じて求解処理の実行中の状態を出力できる。
【0140】
また、状態出力システム30は、求解処理に対する指示が入力される入力手段(例えば、ユーザインタフェース140)を備え、求解手段31は、入力手段に求解処理を中断させる指示が入力されると求解処理を中断してもよい。
【0141】
そのような構成により、状態出力システムは、実行中であっても組合せ最適化問題の求解処理をユーザに中断させることができる。
【0142】
また、求解手段31は、入力手段に求解処理を継続して実行させる指示が入力されると求解処理を継続して実行してもよい。
【0143】
そのような構成により、状態出力システムは、組合せ最適化問題の求解処理をユーザに再開させることができる。
【0144】
また、出力手段33は、取得されたデータをグラフ形式で表示してもよい。
【0145】
そのような構成により、状態出力システムは、組合せ最適化問題の求解処理の実行中の状態を、ユーザにより分かり易い形式で出力できる。
【0146】
なお、
図8に示す状態出力システム30は、複数の装置で実現されてもよいし、1つの装置で実現されてもよい。
【0147】
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【0148】
11、21 CPU
12、22 主記憶部
13、23 通信部
14、24 補助記憶部
15、25 入力部
16、26 出力部
17、27 システムバス
30 状態出力システム
31 求解手段
32 取得手段
33 出力手段
100 ユーザ端末
110 問題入力部
120 ソルバ制御部
130 可視化選択部
140 ユーザインタフェース
150 ユーザ状態記憶部
200 ソルバ
210 最適化部
220 状態読出部
230 ソルバ状態記憶部
300 システム通信部
1000 状態表示システム