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

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

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

特許7420257求解システム、求解方法、および、求解プログラム
<>
  • 特許-求解システム、求解方法、および、求解プログラム 図1
  • 特許-求解システム、求解方法、および、求解プログラム 図2
  • 特許-求解システム、求解方法、および、求解プログラム 図3
  • 特許-求解システム、求解方法、および、求解プログラム 図4
  • 特許-求解システム、求解方法、および、求解プログラム 図5
  • 特許-求解システム、求解方法、および、求解プログラム 図6
  • 特許-求解システム、求解方法、および、求解プログラム 図7
  • 特許-求解システム、求解方法、および、求解プログラム 図8
  • 特許-求解システム、求解方法、および、求解プログラム 図9
  • 特許-求解システム、求解方法、および、求解プログラム 図10
  • 特許-求解システム、求解方法、および、求解プログラム 図11
  • 特許-求解システム、求解方法、および、求解プログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-15
(45)【発行日】2024-01-23
(54)【発明の名称】求解システム、求解方法、および、求解プログラム
(51)【国際特許分類】
   G06N 99/00 20190101AFI20240116BHJP
【FI】
G06N99/00 180
【請求項の数】 5
(21)【出願番号】P 2022536091
(86)(22)【出願日】2020-07-17
(86)【国際出願番号】 JP2020027825
(87)【国際公開番号】W WO2022014036
(87)【国際公開日】2022-01-20
【審査請求日】2022-12-22
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103090
【弁理士】
【氏名又は名称】岩壁 冬樹
(74)【代理人】
【識別番号】100124501
【弁理士】
【氏名又は名称】塩川 誠人
(72)【発明者】
【氏名】鷹野 芙美代
(72)【発明者】
【氏名】井上 浩明
(72)【発明者】
【氏名】荒木 拓也
(72)【発明者】
【氏名】鈴木 基己
(72)【発明者】
【氏名】小林 悠記
(72)【発明者】
【氏名】千嶋 博
(72)【発明者】
【氏名】矢田部 彰宏
(72)【発明者】
【氏名】西村 考弘
【審査官】武田 広太郎
(56)【参考文献】
【文献】田中 宗,量子アニーリングの基礎と応用事例,知能と情報,日本知能情報ファジィ学会,2018年02月15日,第30巻, 第1号 ,42~47頁
【文献】西森 秀稔,量子アニーリングの数理,物性研究・電子版 [online],2014年,第3巻, 第3号,[検索日 2023.11.02], インターネット <URL: https://repository.kulib.kyoto-u.ac.jp/dspace/bitstream/2433/189516/1/bussei_el_033203.pdf>
【文献】石井 信,制約つきニューラルネットによる二次割り当て問題,電子情報通信学会技術研究報告,1997年03月17日,第96巻, 第583号,pp.311-318
【文献】金丸 翔 ほか,イジング計算機によるスロット配置問題の解法,電子情報通信学会技術研究報告,一般社団法人電子情報通信学会,2018年06月07日,第118巻, 第82号,pp.161-166
(58)【調査した分野】(Int.Cl.,DB名)
G06N 99/00
(57)【特許請求の範囲】
【請求項1】
組合せ最適化問題の解と、個々のスピンの状態を第1の値または第2の値で表すモデルのエネルギー関数であって、前記解を得る際に用いられたエネルギー関数とが与えられた場合に、前記エネルギー関数を用いてアニーリングを実行し、前記組合せ最適化問題の新たな解を複数個導出するアニーリング実行手段と、
複数の新たな解の中から解を決定するための解決定ルールと、与えられた前記組合せ最適化問題の解とに基づいて、前記アニーリング実行手段が導出した複数の解の中から解を決定する解決定手段とを備え
前記アニーリング実行手段は、
前記エネルギー関数を用いてシミュレーテッドアニーリングを実行し、
前記シミュレーテッドアニーリングの途中経過として得られる各スピンの状態であって、エネルギー値が、与えられた前記組合せ最適化問題の解のエネルギー値よりも低い各スピンの状態を解候補とし、
前記解決定手段は、
1番目に得られた解候補を暫定解とし、
以後、新たな解候補が得られた場合に、前記新たな解候補と、暫定解とのどちらがより解決定ルールに適合しているかを判定し、前記新たな解候補の方が前記暫定解よりも解決定ルールに適合している場合に、前記暫定解を前記新たな解候補で更新することを繰り返し、
暫定解を更新するための繰り返し処理を中止した時点における暫定解を解として決定する
ことを特徴とする求解システム。
【請求項2】
新たに暫定解が得られる毎に、当該暫定解をユーザに提示する提示手段を備え、
前記解決定手段は、
ユーザによって、暫定解を更新するための繰り返し処理を中止する旨の指示が入力された場合に、前記繰り返し処理を中止し、その時点における暫定解を解として決定する
請求項に記載の求解システム。
【請求項3】
解決定ルールは、解が満たしていなければならない制約を示す情報を含む
請求項1または請求項2に記載の求解システム。
【請求項4】
組合せ最適化問題の解と、個々のスピンの状態を第1の値または第2の値で表すモデルのエネルギー関数であって、前記解を得る際に用いられたエネルギー関数とが与えられた場合に、前記エネルギー関数を用いてアニーリングを実行し、前記組合せ最適化問題の新たな解を複数個導出し、
複数の新たな解の中から解を決定するための解決定ルールと、与えられた前記組合せ最適化問題の解とに基づいて、導出した複数の解の中から解を決定し、
アニーリングを実行するときに、
前記エネルギー関数を用いてシミュレーテッドアニーリングを実行し、
前記シミュレーテッドアニーリングの途中経過として得られる各スピンの状態であって、エネルギー値が、与えられた前記組合せ最適化問題の解のエネルギー値よりも低い各スピンの状態を解候補とし、
解を決定するときに、
1番目に得られた解候補を暫定解とし、
以後、新たな解候補が得られた場合に、前記新たな解候補と、暫定解とのどちらがより解決定ルールに適合しているかを判定し、前記新たな解候補の方が前記暫定解よりも解決定ルールに適合している場合に、前記暫定解を前記新たな解候補で更新することを繰り返し、
暫定解を更新するための繰り返し処理を中止した時点における暫定解を解として決定する
ことを特徴とする求解方法。
【請求項5】
コンピュータに、
組合せ最適化問題の解と、個々のスピンの状態を第1の値または第2の値で表すモデルのエネルギー関数であって、前記解を得る際に用いられたエネルギー関数とが与えられた場合に、前記エネルギー関数を用いてアニーリングを実行し、前記組合せ最適化問題の新たな解を複数個導出するアニーリング処理、および、
複数の新たな解の中から解を決定するための解決定ルールと、与えられた前記組合せ最適化問題の解とに基づいて、前記アニーリング処理で導出した複数の解の中から解を決定する解決定処理を実行させ、
前記コンピュータに、
前記アニーリング処理で、
前記エネルギー関数を用いてシミュレーテッドアニーリングを実行させ、
前記シミュレーテッドアニーリングの途中経過として得られる各スピンの状態であって、エネルギー値が、与えられた前記組合せ最適化問題の解のエネルギー値よりも低い各スピンの状態を解候補とさせ、
前記解決定処理で、
1番目に得られた解候補を暫定解とさせ、
以後、新たな解候補が得られた場合に、前記新たな解候補と、暫定解とのどちらがより解決定ルールに適合しているかを判定し、前記新たな解候補の方が前記暫定解よりも解決定ルールに適合している場合に、前記暫定解を前記新たな解候補で更新することを繰り返させ、
暫定解を更新するための繰り返し処理を中止した時点における暫定解を解として決定させる
めの求解プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、組合せ最適化問題の解を求める求解システム、求解方法、および、求解プログラムに関する。
【背景技術】
【0002】
組合せ最適化問題の解は、イジングモデルのエネルギー関数またはQUBO(Quadratic Unconstrained Binary Optimization )のエネルギー関数を、例えば、シミュレーテッドアニーリングに適用することによって求めることができる。
【0003】
イジングモデルは、個々のスピンによって磁性体の振る舞いを表す統計力学上のモデルであるが、組合せ最適化問題の求解にも適用可能である。イジングモデルでは、個々のスピンの状態は、“1”または“-1”で表される。
【0004】
また、個々のスピンの状態を“1”または“0”で表すモデルとしてQUBOも知られている。
【0005】
なお、イジングモデルにおける“1”やQUBOにおける“1”を第1の値と称することができる。そして、イジングモデルにおける“-1”やQUBOにおける“0”を第2の値と称することができる。
【0006】
イジングモデルのエネルギー関数と、QUBOのエネルギー関数とは、相互に変換可能である。
【0007】
現状では、主に、イジングモデルのエネルギー関数やQUBOのエネルギー関数を入力として、一般的なコンピュータを用いて、シミュレーテッドアニーリングで組合せ最適化問題の解が求められている。この手法の例を説明する。
【0008】
まず、組合せ最適化問題におけるエネルギーを表す式を作成する。組合せ最適化問題におけるエネルギーを表す式の作成を、定式化と称する場合がある。
【0009】
組合せ最適化問題におけるエネルギーを表す式を作成したならば、その式を、イジングモデルのエネルギー関数、または、QUBOのエネルギー関数に変換する。この変換方法は、公知である。
【0010】
イジングモデルのエネルギー関数は、以下の式(1)のように表される。
【0011】
【数1】
【0012】
式(1)におけるx,xは、スピンの状態を表す変数である。この変数における添え字によってスピンが識別される。Jijは、i,jに応じた定数であり、hは、iに応じた定数である。
【0013】
また、QUBOのエネルギー関数は、以下の式(2)のように表される。
【0014】
【数2】
【0015】
式(2)におけるx,xは、スピンの状態を表す変数である。この変数における添え字によってスピンが識別される。Qijは、i,jに応じた定数である。
【0016】
イジングモデルのエネルギー関数またはQUBOのエネルギー関数が得られたならば、そのエネルギー関数をシミュレーテッドアニーリングに適用し、エネルギーが最小になるときの各スピンの状態を特定する。そして、その各スピンの状態が、組合せ最適化問題の解として解釈される。
【0017】
なお、特許文献1には、最適解付近のエネルギーを有する制約条件を満たさない解への遷移を許容して状態遷移を促進するとともに、制約条件を満たさない解が最適解として出力されることを抑止できる最適化装置が記載されている。
【0018】
また、特許文献2には、最適計画候補を求める過程で得られる2つの計画案の目的関数値の差分値を求めることが記載されている。
【先行技術文献】
【特許文献】
【0019】
【文献】特開2019-121137号公報
【文献】特開平07-141318号公報
【発明の概要】
【発明が解決しようとする課題】
【0020】
以下、組合せ最適化問題の解を得ようとする者をユーザと記す。
【0021】
ある組合せ最適化問題の解が得られたとする。しかし、何等かの状況の変化に応じて、その解の少なくとも一部を変更したいとユーザが考える場合がある。以下では、このような状況を説明する。また、以下の説明では、組合せ最適化問題の例として、勤務シフト作成問題を例にする。本例では、「毎日2人以上勤務すること」、「3日以上の連続勤務は禁止」、「2日以上の連休は禁止」という制約が反映された、勤務シフト作成問題におけるエネルギーを表す式が作成され、その式が、QUBOのエネルギー関数に変換されたものとする。そして、そのエネルギー関数がシミュレーテッドアニーリングに適用され、図12に示す解が得られたものとする。
【0022】
図12に示す表では、横方向に曜日を示す。また、図12に示す表において、縦方向に示すA,B,Cは、勤務者を示す。また、図12に示す表では、スピン1~15の15個のスピンの各状態が“1”または“0”で表されている。本例では、“1”は出勤することを意味し、“0”は出勤しないことを意味しているものとする。
【0023】
図12に示す解が得られた後、勤務者Cに火曜日に急用ができたため、勤務者Cが火曜日に休暇となるように変更したいとユーザが考える場合が生じ得る。すなわち、ユーザが、スピン12の値を“1”から“0”に変更したいと考える場合が生じ得る。また、この場合において、ユーザは、他の勤務者の出勤状況はできるだけ変更したくないという希望も持っていると考えられる。
【0024】
上記の例は、何等かの状況の変化に応じて、一旦得られた組合せ最適化問題の解の少なくとも一部を変更したいとユーザが考えるケースの例である。
【0025】
上記のように例示されるケースに対応できるように、一旦得られた組合せ最適化問題の解を変更したい場合に、その解に対して所望の変更を加えた解が得られることが好ましい。
【0026】
そこで、本発明は、一旦得られた組合せ最適化問題の解を変更したい場合に、その解に対して所望の変更を加えた解が得られる求解システム、求解方法、および、求解プログラムを提供することを目的とする。
【課題を解決するための手段】
【0027】
本発明による求解システムは、組合せ最適化問題の解と、個々のスピンの状態を第1の値または第2の値で表すモデルのエネルギー関数であって、その解を得る際に用いられたエネルギー関数とが与えられた場合に、そのエネルギー関数を用いてアニーリングを実行し、組合せ最適化問題の新たな解を複数個導出するアニーリング実行手段と、複数の新たな解の中から解を決定するための解決定ルールと、与えられた組合せ最適化問題の解とに基づいて、アニーリング実行手段が導出した複数の解の中から解を決定する解決定手段とを備え、アニーリング実行手段が、エネルギー関数を用いてシミュレーテッドアニーリングを実行し、シミュレーテッドアニーリングの途中経過として得られる各スピンの状態であって、エネルギー値が、与えられた組合せ最適化問題の解のエネルギー値よりも低い各スピンの状態を解候補とし、解決定手段が、1番目に得られた解候補を暫定解とし、以後、新たな解候補が得られた場合に、新たな解候補と、暫定解とのどちらがより解決定ルールに適合しているかを判定し、新たな解候補の方が暫定解よりも解決定ルールに適合している場合に、暫定解を新たな解候補で更新することを繰り返し、暫定解を更新するための繰り返し処理を中止した時点における暫定解を解として決定することを特徴とする。
【0028】
本発明による求解方法は、組合せ最適化問題の解と、個々のスピンの状態を第1の値または第2の値で表すモデルのエネルギー関数であって、その解を得る際に用いられたエネルギー関数とが与えられた場合に、そのエネルギー関数を用いてアニーリングを実行し、組合せ最適化問題の新たな解を複数個導出し、複数の新たな解の中から解を決定するための解決定ルールと、与えられた組合せ最適化問題の解とに基づいて、導出した複数の解の中から解を決定し、アニーリングを実行するときに、エネルギー関数を用いてシミュレーテッドアニーリングを実行し、シミュレーテッドアニーリングの途中経過として得られる各スピンの状態であって、エネルギー値が、与えられた組合せ最適化問題の解のエネルギー値よりも低い各スピンの状態を解候補とし、解を決定するときに、1番目に得られた解候補を暫定解とし、以後、新たな解候補が得られた場合に、新たな解候補と、暫定解とのどちらがより解決定ルールに適合しているかを判定し、新たな解候補の方が暫定解よりも解決定ルールに適合している場合に、暫定解を新たな解候補で更新することを繰り返し、暫定解を更新するための繰り返し処理を中止した時点における暫定解を解として決定することを特徴とする。
【0029】
本発明による求解プログラムは、コンピュータに、組合せ最適化問題の解と、個々のスピンの状態を第1の値または第2の値で表すモデルのエネルギー関数であって、その解を得る際に用いられたエネルギー関数とが与えられた場合に、そのエネルギー関数を用いてアニーリングを実行し、組合せ最適化問題の新たな解を複数個導出するアニーリング処理、および、複数の新たな解の中から解を決定するための解決定ルールと、与えられた組合せ最適化問題の解とに基づいて、アニーリング処理で導出した複数の解の中から解を決定する解決定処理を実行させ、コンピュータに、アニーリング処理で、エネルギー関数を用いてシミュレーテッドアニーリングを実行させ、シミュレーテッドアニーリングの途中経過として得られる各スピンの状態であって、エネルギー値が、与えられた組合せ最適化問題の解のエネルギー値よりも低い各スピンの状態を解候補とさせ、解決定処理で、1番目に得られた解候補を暫定解とさせ、以後、新たな解候補が得られた場合に、新たな解候補と、暫定解とのどちらがより解決定ルールに適合しているかを判定し、新たな解候補の方が暫定解よりも解決定ルールに適合している場合に、暫定解を新たな解候補で更新することを繰り返させ、暫定解を更新するための繰り返し処理を中止した時点における暫定解を解として決定させる
【発明の効果】
【0030】
本発明によれば、一旦得られた組合せ最適化問題の解を変更したい場合に、その解に対して所望の変更を加えた解を得ることができる。
【図面の簡単な説明】
【0031】
図1】本発明の第1の実施形態の求解システムの構成例を示すブロック図である。
図2】新たに導出された組合せ最適化問題の解の例を示す模式図である。
図3】新たに導出された組合せ最適化問題の解の例を示す模式図である。
図4】新たに導出された組合せ最適化問題の解の例を示す模式図である。
図5】本発明の第1の実施形態の処理経過の例を示すフローチャートである。
図6】本発明の第2の実施形態の求解システムの構成例を示すブロック図である。
図7】本発明の第2の実施形態の処理経過の例を示すフローチャートである。
図8】本発明の第2の実施形態の処理経過の例を示すフローチャートである。
図9】本発明の第2の実施形態の処理経過の例を示すフローチャートである。
図10】本発明の各実施形態の求解システムに係るコンピュータの構成例を示す概略ブロック図である。
図11】本発明の求解システムの概要を示すブロック図である。
図12】既に得られている組合せ最適化問題の解の例を示す模式図である。
【発明を実施するための形態】
【0032】
以下、本発明の実施形態を図面を参照して説明する。
【0033】
以下の説明では、QUBOのエネルギー関数をアニーリングに適用することで組合せ最適化問題の解を求める場合を例にして説明する。ただし、本発明は、イジングモデルのエネルギー関数をアニーリングに適用することで組合せ最適化問題の解を求める場合にも適用可能である。既に述べたように、イジングモデルにおける“1”やQUBOにおける“1”を第1の値と称することができる。そして、イジングモデルにおける“-1”やQUBOにおける“0”を第2の値と称することができる。
【0034】
実施形態1.
図1は、本発明の第1の実施形態の求解システムの構成例を示すブロック図である。第1の実施形態の求解システム1は、入力部2と、アニーリング実行部3と、解決定部4とを備える。
【0035】
入力部2には、既に得られている組合せ最適化問題の解と、その解を得る際に用いられたQUBOのエネルギー関数とが入力される。なお、入力部2には、既に得られている組合せ最適化問題の解と、その解を得る際に用いられたイジングモデルのエネルギー関数とが入力されてもよい。
【0036】
以下の説明では、既に得られている組合せ最適化問題の解として、図12に例示する解が入力される場合を例にして説明する。
【0037】
ここで、入力部2に入力される解は、ユーザが、少なくとも一部を変更したいと考えている解である。
【0038】
入力部2には、さらに、複数の新たな解の中から解を決定するための解決定ルールも入力される。解決定ルールは、既に得られている解を変更したいと考えるユーザによって、ユーザの希望に基づいて作成される。解決定ルールは、既に得られている組合せ最適化問題の解(入力部2に入力される解)を基準として、複数の新たな解の中から解を決定するためのルールである。従って、解決定ルールは、例えば、「既に得られている解から状態が変更されているスピンの数が最小となっている解を、複数の解の中から決定する。」等のルールである。また、解決定ルールは、新たな解が満たしていなければならない制約を示す情報を含んでいてもよい。このような制約の例として、例えば、「スピン12の状態は“0”である。」等が挙げられる。従って、解決定ルールの具体例として、例えば、「スピン12の状態が“0”であり、かつ、既に得られている解から状態が変更されているスピンの数が最小となっている解を、複数の解の中から決定する。」等のルールが挙げられる。ただし、上記の解決定ルールは例示であり、解決定ルールは、上記の例に限定されない。例えば、解決定ルールは、「スピン12の状態が“0”であり、かつ、既に得られている解から状態が変更されている勤務者Aに関するスピンの数が最小となっている解を、複数の解の中から決定する。」等のルールであってもよい。また、制約も、「スピン12の状態は“0”である。」という制約に限定されない。
【0039】
入力部2は、例えば、光学ディスクなどのデータ記録媒体に記録されたデータ(本実施形態では、組合せ最適化問題の解、その解を得る際に用いられたエネルギー関数、および、解決定ルール)を読み込むデータ読み込み装置によって実現されてもよい。ただし、入力部2は、そのようなデータ読み込み装置に限定されず、ユーザがそのようなデータを入力するためのキーボード等の入力デバイスであってもよい。この点は、後述の第2の実施形態でも同様である。
【0040】
アニーリング実行部3は、入力部2に入力されたQUBOのエネルギー関数を取り込む。また、解決定部4は、入力部2に入力された解(既に得られている組合せ最適化問題の解)および解決定ルールを取り込む。
【0041】
アニーリング実行部3は、入力部2を介して取り込んだQUBOのエネルギー関数を用いて、アニーリングを複数回実行することによって、組合せ最適化問題の新たな解を複数個導出する。
【0042】
第1の実施形態において、アニーリング実行部3は、シミュレーテッドアニーリングを実行しても、量子アニーリングを実行してもよい。シミュレーテッドアニーリングおよび量子アニーリングはいずれも、確率的アルゴリズムによる処理であり、用いるエネルギー関数が不変であっても、アニーリングの実行の度に異なる解が得られる。従って、アニーリング実行部3は、取り込んだQUBOのエネルギー関数を用いて、アニーリングを複数回実行することによって、組合せ最適化問題の新たな解を複数個導出することができる。
【0043】
解決定部4は、入力部2を介して取り込んだ解(既に得られている組合せ最適化問題の解)および解決定ルールに基づいて、アニーリング実行部3が導出した複数個の新たな解の中から、解を決定する。
【0044】
換言すれば、解決定部4は、取り込んだ解を基準として、複数個の新たな解の中から、解決定ルールに最も適合する解を決定する。以下の説明では、説明を簡単にするために、解決定ルールが、前述の「スピン12の状態が“0”であり、かつ、既に得られている解から状態が変更されているスピンの数が最小となっている解を、複数の解の中から決定する。」というルールである場合を例にして説明する。以下、この解決定ルールを「解決定ルールR」と記す。
【0045】
解決定部4は、複数個の新たな解のうち、解決定ルールが示す制約を満たしていない解を、除外する。すなわち、解決定部4は、複数個の新たな解のうち、解決定ルールが示す制約を満たしている解を選別し、さらに、その解の中から、解決定ルールに最も適合する解を、最終的な解として決定する。
【0046】
以下に具体例を示す。ここでは、説明を簡単にするために、アニーリング実行部3が、取り込んだエネルギー関数を用いてアニーリングを3回実行し、新たに3つの解を導出した場合を例にして説明する。図2図3および図4は、それぞれ新たに導出された解の例を示す模式図である。すなわち、アニーリング実行部3は、図2図3および図4に例示する3つの解を導出したものとする。以下、図2に示す解を解Aと記す。図3に示す解を解Bと記す。図4に示す解を解Cと記す。また、図3および図4では、入力された解(図12参照)から変更されたスピンの状態に下線を付して図示している。
【0047】
解A、解B、解Cが得られた場合、解決定部4は、解A、解B、解Cのうち、解決定ルールRが示す制約を満たしていない解を除外し、その制約を満たしている解を選別する。本例では、解Aでは、スピン12の状態が“1”であり(図2参照)、解決定ルールRが示す制約を満たしていない。また、解Bおよび解Cでは、スピン12の状態が“0”であり(図3図4参照)、解決定ルールRが示す制約を満たしている。従って、解決定部4は、解Aを除外し、解Bおよび解Cを選別する。
【0048】
さらに、解決定部4は、選別した解Bおよび解Cの中から、解決定ルールRに最も適合する解を、最終的な解として決定する。解Bと、入力された解(図12参照)とを比較すると、解Bにおいて、入力された解から状態が変更されたスピンの数は、6個である。また、解Cと、入力された解(図12参照)とを比較すると、解Cにおいて、入力された解から状態が変更されたスピンの数は、10個である。従って、解決定部4は、解決定ルールRに最も適合する解が解Bであると判定し、解Bを、最終的な解として決定する。
【0049】
上記の例では、説明を簡単にするために、アニーリング実行部3が新たな3つの解を導出し、解決定部4が、その3つの解の中から最終的な解を決定する場合を例にして説明した。アニーリング実行部3が、複数回のアニーリングを実行して導出する解の数は、3つに限定されず、より多くの解を導出してもよい。
【0050】
アニーリング実行部3および解決定部4は、例えば、求解プログラムに従って動作するコンピュータのCPU(Central Processing Unit )によって実現される。この場合、CPUは、コンピュータのプログラム記憶装置等のプログラム記録媒体から求解プログラムを読み込み、その求解プログラムに従って、アニーリング実行部3および解決定部4として動作すればよい。アニーリング実行部3が量子アニーリングを実行する場合、アニーリング実行部3は、求解プログラムに従って動作する量子コンピュータのプロセッサによって実現されていてもよい。
【0051】
次に、処理経過について説明する。図5は、本発明の第1の実施形態の処理経過の例を示すフローチャートである。既に説明した事項については、適宜、説明を省略する。
【0052】
最初に、組合せ最適化問題の解と、その解を得る際に用いられたQUBOのエネルギー関数と、解決定ルールとが、入力部2に入力される(ステップS1)。アニーリング実行部3は、そのQUBOのエネルギー関数を取り込む。また、解決定部4は、入力された組合せ最適化問題の解と、解決定ルールとを取り込む。
【0053】
次に、アニーリング実行部3は、取り込んだQUBOのエネルギー関数を用いて、アニーリングを複数回実行することによって、組合せ最適化問題の新たな解を複数個導出する(ステップS2)。すなわち、アニーリング実行部3は、既に得られている解(入力された解)を導出する際に用いられたエネルギー関数を用いて、複数個の新たな解を導出する。
【0054】
次に、解決定部4は、ステップS2で導出された複数の解の中から、入力された解と、解決定ルールとに基づいて、解決定ルールに最も適合する解を決定する(ステップS3)。
【0055】
本実施形態では、上記のように、アニーリング実行部3は、既に得られている解(入力された解)を導出する際に用いられたエネルギー関数を用いて、複数個の新たな解を導出する。そして、解決定部4は、その複数の解の中から、解決定ルールに最も適合する解を決定する。ここで、解決定ルールには、既に得られている解をどのように変更するのかというユーザの希望を表している。例えば、解決定ルールに「スピン12の状態が“0”である。」という制約が含まれている場合には、その制約は、火曜日に勤務者Cを休暇にしたいという希望を表している。従って、本実施形態では、ユーザの希望に最も適合する解を決定することができる。よって、本実施形態では、一旦得られた組合せ最適化問題の解を変更したい場合に、その解に対して所望の変更を加えた解を得ることができる。
【0056】
実施形態2.
図6は、本発明の第2の実施形態の求解システムの構成例を示すブロック図である。第2の実施形態の求解システム1は、入力部2と、アニーリング実行部3と、解決定部4と、提示部5と、操作部6とを備える。
【0057】
入力部2には、既に得られている組合せ最適化問題の解と、その解を得る際に用いられたQUBOのエネルギー関数と、解決定ルールとが入力される。また、第1の実施形態で説明したように、既に得られている組合せ最適化問題の解と、その解を得る際に用いられたイジングモデルのエネルギー関数とが入力されてもよい。解決定ルールは、第1の実施形態における解決定ルールと同様である。
【0058】
第2の実施形態では、入力部2に、さらに、既に得られている組合せ最適化問題の解(換言すれば、入力される解)のエネルギー値も入力される。このエネルギー値は、既に得られている組合せ最適化問題の解が示す個々のスピンの状態を表す値を、その解を得る際に用いられたQUBOのエネルギー関数に代入することによって算出することができる。
【0059】
アニーリング実行部3は、入力部2に入力されたQUBOのエネルギー関数と、既に得られている組合せ最適化問題の解のエネルギー値と、解決定ルールとを取り込む。また、解決定部4は、入力部2に入力された解(既に得られている組合せ最適化問題の解)および解決定ルールを取り込む。
【0060】
なお、アニーリング実行部3が、既に得られている組合せ最適化問題の解のエネルギー値を算出してもよい。この場合、アニーリング実行部3は、QUBOのエネルギー関数とともに、既に得られている組合せ最適化問題の解を取り込む。そして、アニーリング実行部3は、その解が示す個々のスピンの状態を表す値を、そのエネルギー関数に代入することによってその解のエネルギー値を算出すればよい。
【0061】
ここでは、既に得られている組合せ最適化問題の解のエネルギー値が、入力部2に入力される場合を例にして説明する。以下、既に得られている組合せ最適化問題の解のエネルギー値を、エネルギー値Hと記す。
【0062】
第2の実施形態では、アニーリング実行部3は、取り込んだエネルギー関数を用いてシミュレーテッドアニーリングを実行する。
【0063】
シミュレーテッドアニーリングでは、その途中経過として各スピンの状態が種々得られる。本実施形態では、アニーリング実行部3は、取り込んだエネルギー関数を用いて、1回のシミュレーテッドアニーリングを実行し、その途中経過として得られる各スピンの状態であって、エネルギー値が、エネルギー値H(既に得られている組合せ最適化問題の解のエネルギー値)よりも低い各スピンの状態を解候補と定める。従って、シミュレーテッドアニーリングの実行回数が1回であったとしても、複数の解候補が得られる。
【0064】
解決定部4は、アニーリング実行部3によって1番目に得られた解候補を暫定解と定める。それ以降、解決定部4は、アニーリング実行部3によって新たな解候補が得られた場合に、その新たな解候補と、暫定解とのどちらがより解決定ルールに適合しているかを判定し、その新たな解候補の方がその暫定解よりも解決定ルールに適合している場合に、その暫定解を、その新たな解候補で更新することを繰り返す。
【0065】
なお、新たな解候補と、暫定解とのどちらがより解決定ルールに適合しているかを判定する際には、解決定部4は、入力された解(既に得られている組合せ最適化問題の解)を参照して、新たな解候補と、暫定解とのどちらがより解決定ルールに適合しているかを判定する。
【0066】
そして、解決定部4は、上述の、暫定解を更新するための繰り返し処理を中止した時点における暫定解を、最終的な解として決定する。
【0067】
提示部5は、新たな暫定解が定まる毎に、その暫定解をユーザに提示する。操作部6は、暫定解を更新するための繰り返し処理の中止の指示をユーザが入力するための入力デバイス(例えば、キーボード)である。提示部5は、新たな暫定解が定まる毎に、その暫定解をユーザに提示し、その暫定解を見たユーザは、その暫定解を最終的な解としてよいと判断したならば、操作部6を介して、暫定解を更新するための繰り返し処理の中止の指示を入力すればよい。解決定部4は、この中止の指示が入力されたならば、暫定解を更新するための繰り返し処理を中止し、その時点における暫定解を、最終的な解として決定する。また、この中止の指示が入力されなければ、暫定解を更新するための繰り返し処理は継続される。
【0068】
なお、暫定解を更新するための繰り返し処理を中止させる態様は、上記の態様に限定されない。
【0069】
また、提示部5は、例えば、求解システム1が備えるディスプレイ装置(図示略)に暫定解を表示させることによって、ユーザに暫定解を提示する。
【0070】
アニーリング実行部3、解決定部4および提示部5は、求解プログラムに従って動作するコンピュータのCPUによって実現される。この場合、CPUは、コンピュータのプログラム記憶装置等のプログラム記録媒体から求解プログラムを読み込み、その求解プログラムに従って、アニーリング実行部3、解決定部4および提示部5として動作すればよい。
【0071】
次に、処理経過について説明する。図7図8および図9は、本発明の第2の実施形態の処理経過の例を示すフローチャートである。既に説明した事項については、適宜、説明を省略する。
【0072】
シミュレーテッドアニーリングにおける温度は、初期値に設定されているものとする。
【0073】
最初に、組合せ最適化問題の解と、その解を得る際に用いられたQUBOのエネルギー関数と、解決定ルールと、その解のエネルギー値Hとが、入力部2に入力される(ステップS11)。アニーリング実行部3は、そのQUBOのエネルギー関数と、エネルギー値Hと、解決定ルールとを取り込む。解決定部4は、入力された組合せ最適化問題の解と、解決定ルールとを取り込む。
【0074】
次に、アニーリング実行部3は、各スピンの状態を“1”または“0”にランダムに定める(ステップS12)。
【0075】
次に、アニーリング実行部3は、フリップする候補となるスピンを1つ選択する(ステップS13)。なお、「フリップする」とは、スピンの状態を変化させることである。以下、ステップS13で選択されたスピンを、選択スピンと記す。
【0076】
次に、アニーリング実行部3は、選択スピンをフリップした場合のエネルギー変化を計算する(ステップS14)。
【0077】
次に、アニーリング実行部3は、ステップS14で計算したエネルギー変化と、シミュレーテッドアニーリングにおける温度とに基づいて、遷移確率を計算する(ステップS15)。
【0078】
次に、アニーリング実行部3は、ステップS15で計算した遷移確率に基づいて、状態遷移を受理するか否かを判定する(ステップS16)。
【0079】
状態遷移を受理する場合(ステップS16のYes)、アニーリング実行部3は、選択スピンをフリップする(ステップS17)。また、状態遷移を受理しない場合(ステップS16のNo)、ステップS28(図9参照)に移行し、ステップS28で、アニーリング実行部3は、シミュレーテッドアニーリングにおける温度を減少させる。
【0080】
ステップS17の次に、アニーリング実行部3は、ステップS17の後の各スピンの状態(すなわち、選択スピンをフリップした後の各スピンの状態)が、解決定ルールが示す制約を満たしているか否かを判定する(ステップS40)。ステップS17の後の各スピンの状態が、解決定ルールが示す制約を満たしていないならば(ステップS40のNo)、ステップS28(図9参照)に移行し、ステップS28で、アニーリング実行部3は、シミュレーテッドアニーリングにおける温度を減少させる。
【0081】
ステップS17の後の各スピンの状態が、解決定ルールが示す制約を満たしているならば(ステップS40のYes)、アニーリング実行部3は、ステップS17の後の各スピンの状態におけるエネルギー値を、エネルギー関数を用いて算出する(ステップS18)。ステップS18で算出されたエネルギー値を、エネルギー値Eと記す。エネルギー値Eは、その時点における各スピンの状態におけるエネルギー値であると言える。
【0082】
次に、アニーリング実行部3は、その時点での各スピンの状態におけるエネルギー値Eが、入力されたエネルギー値Hよりも低いか否かを判定する(ステップS19)。なお、ステップS19以降は、図8に示している。
【0083】
エネルギー値Eがエネルギー値H以上であるならば(ステップS19のNo)、ステップS28(図9参照)に移行し、ステップS28で、アニーリング実行部3は、シミュレーテッドアニーリングにおける温度を減少させる。
【0084】
また、エネルギー値Eがエネルギー値H未満であるならば(ステップS19のYes)、その時点における各スピンの状態(ステップS17で選択スピンをフリップした後の各スピンの状態)を、解候補とする(ステップS20)。
【0085】
ステップS20の次に、解決定部4は、直近に得られた解候補(すなわち、直前のステップS20で得られた解候補)が1番目に得られた解候補であるか否かを判定する(ステップS21)。
【0086】
直近に得られた解候補が1番目に得られた解候補である場合(ステップS21のYes)、解決定部4は、その直近に得られた解候補(すなわち、1番目に得られた解候補)を暫定解とする(ステップS22)。ステップS22で、初めて、暫定解が定められる。
【0087】
ステップS22の後、ステップS26(図9参照)に移行する。なお、ステップS26移行は、図9に示している。
【0088】
また、直近に得られた解候補が1番目に得られた解候補でない場合(ステップS21のNo)、既に、暫定解が定められた状態になっている。この場合、解決定部4は、直近に得られた解候補が、その時点における暫定解よりも、解決定ルールに適合しているか否かを判定する(ステップS24)。このとき、解決定部4は、入力された解(既に得られている組合せ最適化問題の解)を参照して、直近に得られた解候補が、その時点における暫定解よりも、解決定ルールに適合しているか否かを判定する。
【0089】
直近に得られた解候補よりも、その時点における暫定解が解決定ルールに適合しているならば(ステップS24のNo)、ステップS28(図9参照)に移行し、ステップS28で、アニーリング実行部3は、シミュレーテッドアニーリングにおける温度を減少させる。
【0090】
また、直近に得られた解候補が、その時点における暫定解よりも、解決定ルールに適合しているならば(ステップS24のYes)、解決定部4は、その時点における暫定解を、直近に得られた解候補で更新する(ステップS25)。すなわち、直近に得られた解候補が、新たな暫定解となる。
【0091】
ステップS25の後、ステップS26(図9参照)に移行する。
【0092】
ステップS22およびステップS25では、いずれも、新たな暫定解が定められることになる。このように、新たな暫定解が定められた後に、ステップS26(図9参照)に移行する。
【0093】
ステップS26(図9参照)では、提示部5が、その時点における暫定解(換言すれば、新たに定められた暫定解)を、ユーザに提示する。
【0094】
その暫定解を見たユーザは、その暫定解を最終的な解としてよいか否かを判断できる。ユーザが、その暫定解を最終的な解としないと判断した場合、ユーザは、処理の中止の指示を入力しない。ユーザが、その暫定解を最終的な解とすると判断した場合、ユーザは、操作部6を介して、処理の中止の指示を入力する。
【0095】
ステップS26の後、ユーザから処理の中止の指示が入力されないならば(ステップS27のNo)、アニーリング実行部3は、シミュレーテッドアニーリングにおける温度を減少させる(ステップS28)。
【0096】
ステップS28の後には、求解システム1は、ステップS13(図7参照)以降の処理を繰り返す。従って、ステップS13から始まる繰り返し処理が繰り返される。
【0097】
また、ステップS26の後、ユーザから処理の中止の指示が入力されたならば(ステップS27のYes)、解決定部4は、その時点における暫定解を、最終的な解として決定し(ステップS29)、処理を終了する。
【0098】
上記のフローチャートの説明から分かるように、第2の実施形態では、ステップS13から始まる繰り返し処理が繰り返される。そして、ステップS24において、解決定部4が、直近に得られた解候補が、その時点における暫定解よりも、解決定ルールに適合しているか否かを判定する。そして、直近に得られた解候補が、その時点における暫定解よりも、解決定ルールに適合しているならば(ステップS24のYes)、解決定部4は、その時点における暫定解を、直近に得られた解候補で更新する(ステップS25)。従って、繰り返し処理が繰り返されるにつれて、暫定解は、解決定ルールにより適合するように、更新されていく。そして、ユーザによって、暫定解を最終的な解とすると判断された場合、ユーザからの指示に応じて、繰り返し処理を中止し、その時点における暫定解が、最終的な解として決定される。また、解決定ルールの制約を満たさない各スピンの状態は、解候補として定められることはない(ステップS40参照)。よって、ユーザの希望に適合する解が得られる。従って、本実施形態においても、一旦得られた組合せ最適化問題の解を変更したい場合に、その解に対して所望の変更を加えた解を得ることができる。
【0099】
図10は、本発明の各実施形態の求解システム1に係るコンピュータの構成例を示す概略ブロック図である。コンピュータ1000は、CPU1001と、主記憶装置1002と、補助記憶装置1003と、インタフェース1004と、データ読み込み装置1005とを備える。また、コンピュータ1000は、キーボード等の入力デバイスや、ディスプレイ装置を備えていてもよい。
【0100】
本発明の各実施形態の求解システム1は、コンピュータ1000によって実現される。求解システム1の動作は、求解プログラムの形式で補助記憶装置1003に記憶されている。CPU1001は、その求解プログラムを補助記憶装置1003から読み出して、その求解プログラムを主記憶装置1002に展開し、その求解プログラムに従って、上記の各実施形態で説明した処理を実行する。
【0101】
補助記憶装置1003は、一時的でない有形の媒体の例である。一時的でない有形の媒体の他の例として、インタフェース1004を介して接続される磁気ディスク、光磁気ディスク、CD-ROM(Compact Disk Read Only Memory )、DVD-ROM(Digital Versatile Disk Read Only Memory )、半導体メモリ等が挙げられる。また、プログラムが通信回線によってコンピュータ1000に配信される場合、配信を受けたコンピュータ1000がそのプログラムを主記憶装置1002に展開し、そのプログラムに従って上記の各実施形態で説明した処理を実行してもよい。
【0102】
また、各構成要素の一部または全部は、汎用または専用の回路(circuitry )、プロセッサ等やこれらの組合せによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組合せによって実現されてもよい。
【0103】
各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【0104】
次に、本発明の概要について説明する。図11は、本発明の求解システムの概要を示すブロック図である。本発明の求解システムは、アニーリング実行手段73と、解決定手段74とを備える。
【0105】
アニーリング実行手段73(例えば、アニーリング実行部3)は、組合せ最適化問題の解と、個々のスピンの状態を第1の値または第2の値で表すモデル(例えば、イジングモデルやQUBO)のエネルギー関数であって、その解を得る際に用いられたエネルギー関数とが与えられた場合に、そのエネルギー関数を用いてアニーリングを実行し、組合せ最適化問題の新たな解を複数個導出する。
【0106】
解決定手段74(例えば、解決定部4)は、複数の新たな解の中から解を決定するための解決定ルールと、与えられた組合せ最適化問題の解とに基づいて、アニーリング実行手段73が導出した複数の解の中から解を決定する。
【0107】
そのような構成により、一旦得られた組合せ最適化問題の解を変更したい場合に、その解に対して所望の変更を加えた解を得ることができる。
【0108】
上記の本発明の実施形態は、以下の付記のようにも記載され得るが、以下に限定されるわけではない。
【0109】
(付記1)
組合せ最適化問題の解と、個々のスピンの状態を第1の値または第2の値で表すモデルのエネルギー関数であって、前記解を得る際に用いられたエネルギー関数とが与えられた場合に、前記エネルギー関数を用いてアニーリングを実行し、前記組合せ最適化問題の新たな解を複数個導出するアニーリング実行手段と、
複数の新たな解の中から解を決定するための解決定ルールと、与えられた前記組合せ最適化問題の解とに基づいて、前記アニーリング実行手段が導出した複数の解の中から解を決定する解決定手段とを備える
ことを特徴とする求解システム。
【0110】
(付記2)
前記アニーリング実行手段は、
前記エネルギー関数を用いてアニーリングを複数回実行することによって、新たな解を複数個導出する
付記1に記載の求解システム。
【0111】
(付記3)
前記アニーリング実行手段は、
前記エネルギー関数を用いてシミュレーテッドアニーリングを実行し、
前記シミュレーテッドアニーリングの途中経過として得られる各スピンの状態であって、エネルギー値が、与えられた前記組合せ最適化問題の解のエネルギー値よりも低い各スピンの状態を解候補とし、
前記解決定手段は、
1番目に得られた解候補を暫定解とし、
以後、新たな解候補が得られた場合に、前記新たな解候補と、暫定解とのどちらがより解決定ルールに適合しているかを判定し、前記新たな解候補の方が前記暫定解よりも解決定ルールに適合している場合に、前記暫定解を前記新たな解候補で更新することを繰り返し、
暫定解を更新するための繰り返し処理を中止した時点における暫定解を解として決定する
付記1に記載の求解システム。
【0112】
(付記4)
新たに暫定解が得られる毎に、当該暫定解をユーザに提示する提示手段を備え、
前記解決定手段は、
ユーザによって、暫定解を更新するための繰り返し処理を中止する旨の指示が入力された場合に、前記繰り返し処理を中止し、その時点における暫定解を解として決定する
付記3に記載の求解システム。
【0113】
(付記5)
解決定ルールは、解が満たしていなければならない制約を示す情報を含む
付記1から付記4のうちのいずれかに記載の求解システム。
【0114】
(付記6)
組合せ最適化問題の解と、個々のスピンの状態を第1の値または第2の値で表すモデルのエネルギー関数であって、前記解を得る際に用いられたエネルギー関数とが与えられた場合に、前記エネルギー関数を用いてアニーリングを実行し、前記組合せ最適化問題の新たな解を複数個導出し、
複数の新たな解の中から解を決定するための解決定ルールと、与えられた前記組合せ最適化問題の解とに基づいて、導出した複数の解の中から解を決定する
ことを特徴とする求解方法。
【0115】
(付記7)
前記エネルギー関数を用いてアニーリングを複数回実行することによって、新たな解を複数個導出する
付記6に記載の求解方法。
【0116】
(付記8)
前記エネルギー関数を用いてシミュレーテッドアニーリングを実行し、
前記シミュレーテッドアニーリングの途中経過として得られる各スピンの状態であって、エネルギー値が、与えられた前記組合せ最適化問題の解のエネルギー値よりも低い各スピンの状態を解候補とし、
1番目に得られた解候補を暫定解とし、
以後、新たな解候補が得られた場合に、前記新たな解候補と、暫定解とのどちらがより解決定ルールに適合しているかを判定し、前記新たな解候補の方が前記暫定解よりも解決定ルールに適合している場合に、前記暫定解を前記新たな解候補で更新することを繰り返し、
暫定解を更新するための繰り返し処理を中止した時点における暫定解を解として決定する
付記6に記載の求解方法。
【0117】
(付記9)
コンピュータに、
組合せ最適化問題の解と、個々のスピンの状態を第1の値または第2の値で表すモデルのエネルギー関数であって、前記解を得る際に用いられたエネルギー関数とが与えられた場合に、前記エネルギー関数を用いてアニーリングを実行し、前記組合せ最適化問題の新たな解を複数個導出するアニーリング処理、および、
複数の新たな解の中から解を決定するための解決定ルールと、与えられた前記組合せ最適化問題の解とに基づいて、前記アニーリング処理で導出した複数の解の中から解を決定する解決定処理
を実行させるための求解プログラムを記録したコンピュータ読取可能な記録媒体。
【0118】
(付記10)
前記コンピュータに、
前記アニーリング処理で、
前記エネルギー関数を用いてアニーリングを複数回実行することによって、新たな解を複数個導出させる
求解プログラムを記録した付記9に記載のコンピュータ読取可能な記録媒体。
【0119】
(付記11)
前記コンピュータに、
前記アニーリング処理で、
前記エネルギー関数を用いてシミュレーテッドアニーリングを実行させ、
前記シミュレーテッドアニーリングの途中経過として得られる各スピンの状態であって、エネルギー値が、与えられた前記組合せ最適化問題の解のエネルギー値よりも低い各スピンの状態を解候補とさせ、
前記解決定処理で、
1番目に得られた解候補を暫定解とさせ、
以後、新たな解候補が得られた場合に、前記新たな解候補と、暫定解とのどちらがより解決定ルールに適合しているかを判定し、前記新たな解候補の方が前記暫定解よりも解決定ルールに適合している場合に、前記暫定解を前記新たな解候補で更新することを繰り返させ、
暫定解を更新するための繰り返し処理を中止した時点における暫定解を解として決定させる
求解プログラムを記録した付記9に記載のコンピュータ読取可能な記録媒体。
【0120】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用の可能性】
【0121】
本発明は、組合せ最適化問題の解を求める求解システムに好適に適用される。
【符号の説明】
【0122】
1 求解システム
2 入力部
3 アニーリング実行部
4 解決定部
5 提示部
6 操作部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12