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

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

▶ 株式会社東芝の特許一覧 ▶ 東芝エネルギーシステムズ株式会社の特許一覧

<>
  • 特開-求解装置、求解方法およびプログラム 図1
  • 特開-求解装置、求解方法およびプログラム 図2
  • 特開-求解装置、求解方法およびプログラム 図3
  • 特開-求解装置、求解方法およびプログラム 図4
  • 特開-求解装置、求解方法およびプログラム 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023041506
(43)【公開日】2023-03-24
(54)【発明の名称】求解装置、求解方法およびプログラム
(51)【国際特許分類】
   G06N 10/00 20220101AFI20230316BHJP
   G06N 99/00 20190101ALI20230316BHJP
【FI】
G06N10/00
G06N99/00 180
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2021148914
(22)【出願日】2021-09-13
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(71)【出願人】
【識別番号】317015294
【氏名又は名称】東芝エネルギーシステムズ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】村井 雅彦
(57)【要約】
【課題】混合整数計画問題の解を高速に解くことができる。
【解決手段】求解装置は、連続変数解算出部と、QUBO問題生成部と、離散変数解取得部と、制御部と、を備える。連続変数解算出部は、混合整数計画問題を一般化ベンダーズ分解法で分解することにより得られる主問題を解いて、複数の連続変数のそれぞれの解の候補値および1または複数の最適乗数を算出する。QUBO問題生成部は、混合整数計画問題を一般化ベンダーズ分解法で分解することにより得られる緩和マスター問題をQUBO形式で表される問題に変換したQUBO問題を生成する。離散変数解取得部は、QUBO問題をイジングマシンに与えて、複数の離散変数のそれぞれの解の候補値を取得する。制御部は、連続変数解算出処理、QUBO問題生成処理および離散変数解取得処理を、繰り返して実行させる。
【選択図】図2
【特許請求の範囲】
【請求項1】
複数の連続変数および複数の離散変数を含む目的関数を、1または複数の制約式による制限の下で最小化する混合整数計画問題の解を出力する求解装置であって、
前記混合整数計画問題を一般化ベンダーズ分解法で分解することにより得られる主問題を解いて、前記複数の連続変数のそれぞれの解の候補値、および、前記1または複数の制約式のそれぞれに乗じられる1または複数の最適乗数を算出する連続変数解算出処理を実行する連続変数解算出部と、
直前の前記連続変数解算出処理により算出された前記複数の連続変数のそれぞれの解の候補値、および、直前までの前記連続変数解算出処理により算出された前記1または複数の最適乗数に基づき、前記混合整数計画問題を一般化ベンダーズ分解法で分解することにより得られる緩和マスター問題をQUBO(Quadratic Unconstrained Binary Optimization)形式で表される問題に変換したQUBO問題を生成するQUBO問題生成処理を実行するQUBO問題生成部と、
前記QUBO問題をイジングマシンに与えて、前記複数の離散変数のそれぞれの解の候補値を取得する離散変数解取得処理を実行する離散変数解取得部と、
前記連続変数解算出処理、前記QUBO問題生成処理および前記離散変数解取得処理を、繰り返して実行させる制御部と、
停止条件に達した場合、最後に得られた前記複数の連続変数のそれぞれの解の候補値および前記複数の離散変数の解の候補値を、前記混合整数計画問題の解として出力する出力部と、
を備える求解装置。
【請求項2】
前記QUBO問題生成部は、前記QUBO問題生成処理において、前記緩和マスター問題における制約式を表す無限大ノルム最小化問題を、2-ノルム最小化問題に変換した問題を、前記QUBO問題として生成する
請求項1に記載の求解装置。
【請求項3】
直前の前記連続変数解算出処理により算出された前記複数の連続変数のそれぞれの解の候補値に基づき、前記混合整数計画問題の上界値を更新する上界値更新処理を実行する上界値更新部と、
直前の前記離散変数解取得処理により取得された前記複数の離散変数のそれぞれの解の候補値に基づき、前記緩和マスター問題の下界値を更新する下界値更新処理を実行する下界値更新部と、
前記上界値と前記下界値との差が予め設定された許容誤差以下である場合に、前記停止条件に達したと判定する判定処理を実行する判定部と、
をさらに備える請求項2に記載の求解装置。
【請求項4】
前記QUBO問題生成部は、前記QUBO問題生成処理において、前記1または複数の制約式のうち前記複数の離散変数のうちの何れかを変数として含む制約式を、対応する制約式を満たした場合に0となり、対応する制約式を満たさない場合には、正の実数となるペナルティ関数として、前記緩和マスター問題の目的関数に組み込み、前記ペナルティ関数を組み込んだ前記緩和マスター問題を変換した前記QUBO問題を生成する
請求項3に記載の求解装置。
【請求項5】
前記QUBO問題生成部は、前記QUBO問題生成処理において、前記1または複数の制約式のうち前記複数の離散変数のうちの何れかを変数として含む不等制約式を、0または1を表す新規変数を用いて代替等式制約式に変換して、前記代替等式制約式を満たした場合に0となり、前記代替等式制約式を満たさない場合には、正の実数となる前記ペナルティ関数として前記緩和マスター問題に組み込み、前記ペナルティ関数を組み込んだ前記緩和マスター問題を変換した前記QUBO問題を生成する
請求項4に記載の求解装置。
【請求項6】
前記混合整数計画問題は、前記目的関数の前記複数の連続変数に関する項が下凸関数である
請求項1から5の何れか1項に記載の求解装置。
【請求項7】
前記混合整数計画問題は、前記目的関数の前記複数の離散変数に関する項が一次関数である
請求項6に記載の求解装置。
【請求項8】
前記1または複数の制約式のそれぞれは、一次方程式または一次不等式である
請求項7に記載の求解装置。
【請求項9】
前記イジングマシンをさらに備える
請求項1から8の何れか1項に記載の求解装置。
【請求項10】
前記混合整数計画問題は、式(29)により表され、
【数1】
前記主問題は、式(30)により表され、
【数2】
前記QUBO問題は、式(36)により表される
【数3】
請求項3に記載の求解装置。
【請求項11】
情報処理装置により、複数の連続変数および複数の離散変数を含む目的関数を、1または複数の制約式による制限の下で最小化する混合整数計画問題の解を出力させる求解方法であって、
前記情報処理装置が、前記混合整数計画問題を一般化ベンダーズ分解法で分解することにより得られる主問題を解いて、前記複数の連続変数のそれぞれの解の候補値、および、前記1または複数の制約式のそれぞれに乗じられる1または複数の最適乗数を算出する連続変数解算出処理を実行するステップと、
前記情報処理装置が、直前の前記連続変数解算出処理により算出された前記複数の連続変数のそれぞれの解の候補値、および、直前まで前記連続変数解算出処理により算出された前記1または複数の最適乗数に基づき、前記混合整数計画問題を一般化ベンダーズ分解法で分解することにより得られる緩和マスター問題をQUBO(Quadratic Unconstrained Binary Optimization)形式で表される問題に変換したQUBO問題を生成するQUBO問題生成処理を実行するステップと、
前記情報処理装置が、前記QUBO問題をイジングマシンに与えて、前記複数の離散変数のそれぞれの解の候補値を取得する離散変数解取得処理を実行するステップと、
前記情報処理装置が、前記連続変数解算出処理、前記QUBO問題生成処理および前記離散変数解取得処理を、繰り返して実行させるステップと、
前記情報処理装置が、停止条件に達した場合、最後に得られた前記複数の連続変数のそれぞれの解の候補値および前記複数の離散変数の解の候補値を、前記混合整数計画問題の解として出力するステップと、
を含む求解方法。
【請求項12】
情報処理装置を、複数の連続変数および複数の離散変数を含む目的関数を、1または複数の制約式による制限の下で最小化する混合整数計画問題の解を出力する求解装置として機能させるためのプログラムであって、
前記情報処理装置を、
前記混合整数計画問題を一般化ベンダーズ分解法で分解することにより得られる主問題を解いて、前記複数の連続変数のそれぞれの解の候補値、および、前記1または複数の制約式のそれぞれに乗じられる1または複数の最適乗数を算出する連続変数解算出処理を実行する連続変数解算出部、
直前の前記連続変数解算出処理により算出された前記複数の連続変数のそれぞれの解の候補値、および、直前までの前記連続変数解算出処理により算出された前記1または複数の最適乗数に基づき、前記混合整数計画問題を一般化ベンダーズ分解法で分解することにより得られる緩和マスター問題をQUBO(Quadratic Unconstrained Binary Optimization)形式で表される問題に変換したQUBO問題を生成するQUBO問題生成処理を実行するQUBO問題生成部、
前記QUBO問題をイジングマシンに与えて、前記複数の離散変数のそれぞれの解の候補値を取得する離散変数解取得処理を実行する離散変数解取得部、
前記連続変数解算出処理、前記QUBO問題生成処理および前記離散変数解取得処理を、繰り返して実行させる制御部、および、
停止条件に達した場合、最後に得られた前記複数の連続変数のそれぞれの解の候補値および前記複数の離散変数の解の候補値を、前記混合整数計画問題の解として出力する出力部
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、求解装置、求解方法およびプログラムに関する。
【背景技術】
【0002】
混合整数計画問題の解を求める求解装置が知られている(例えば特許文献1)。この求解装置は、問題を連続変数に関わる部分と、離散変数に関わる部分に分割し、反復的にこれらを解く。そして、この求解装置は、離散変数部分に関する問題については、量子コンピュータなどのイジングマシンを利用して高速に解く。
【0003】
この求解装置は、離散変数についての制約と、連続変数についての制約とを分離するために、一般にビッグMと呼ばれる十分大きな定数と、スラック変数とを導入する。このため、この求解装置は、数値計算が不安定になりやすかった。また、この求解装置は、反復計算が有限の回数で終了することが保証されていないので、短時間で解を求めることができない場合があった。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2020-144529号公報
【非特許文献】
【0005】
【非特許文献1】C. A. Floudas, “Nonlinear and Mixed-integer Optimization: Fundamentals and Applications”, Oxford University Press, 1995, Chapter 6
【非特許文献2】A. Lucas, “Ising Formulations of Many NP Problems”, Frontiers in Physics, Volume 2, Article 5, 2014
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明が解決しようとする課題は、混合整数計画問題の解を高速に解くことができる求解装置、求解方法およびプログラムを提供する。
【課題を解決するための手段】
【0007】
実施形態に係る求解装置は、複数の連続変数および複数の離散変数を含む目的関数を、1または複数の制約式による制限の下で最小化する混合整数計画問題の解を出力する。前記求解装置は、連続変数解算出部と、QUBO問題生成部と、離散変数解取得部と、制御部と、出力部と、を備える。前記連続変数解算出部は、前記混合整数計画問題を一般化ベンダーズ分解法で分解することにより得られる主問題を解いて、前記複数の連続変数のそれぞれの解の候補値、および、前記1または複数の制約式のそれぞれに乗じられる1または複数の最適乗数を算出する連続変数解算出処理を実行する。前記QUBO問題生成部は、直前の前記連続変数解算出処理により算出された前記複数の連続変数のそれぞれの解の候補値、および、直前までの前記連続変数解算出処理により算出された前記1または複数の最適乗数に基づき、前記混合整数計画問題を一般化ベンダーズ分解法で分解することにより得られる緩和マスター問題をQUBO(Quadratic Unconstrained Binary Optimization)形式で表される問題に変換したQUBO問題を生成するQUBO問題生成処理を実行する。前記離散変数解取得部は、前記QUBO問題をイジングマシンに与えて、前記複数の離散変数のそれぞれの解の候補値を取得する離散変数解取得処理を実行する。前記制御部は、前記連続変数解算出処理、前記QUBO問題生成処理および前記離散変数解取得処理を、繰り返して実行させる。前記出力部は、停止条件に達した場合、最後に得られた前記複数の連続変数のそれぞれの解の候補値および前記複数の離散変数の解の候補値を、前記混合整数計画問題の解として出力する。
【図面の簡単な説明】
【0008】
図1図1は、実施形態に係る求解システムの構成を示す図である。
図2図2は、情報処理装置の機能構成をイジングマシンとともに示す図である。
図3図3は、情報処理装置の処理の流れを示す図である。
図4図4は、発電計画問題に含まれる不等式制約を等式制約に変換するための概念を説明するための図である。
図5図5は、情報処理装置のハードウェア構成を示す図である。
【発明を実施するための形態】
【0009】
(第1実施形態の全体構成)
図1は、第1実施形態に係る求解システム10の構成を示す図である。
【0010】
求解システム10は、情報処理装置20と、イジングマシン30とを備える。情報処理装置20は、プロセッサおよびメモリを有し、プログラムを実行することにより演算処理および情報処理を実行する。例えば、情報処理装置20は、コンピュータまたはネットワーク上のサーバ装置等である。情報処理装置20は、混合整数計画問題の解を算出する求解装置として機能する。情報処理装置20は、ユーザ等により入力された混合整数計画問題を取得し、取得した混合整数計画問題の解をイジングマシン30を利用して算出する。
【0011】
イジングマシン30は、0または1のいずれかの値をとる離散変数の2次関数を目的関数とした、制約の無い0-1整数2次計画問題を解く。イジングマシン30は、イジングスピンモデルの基底状態を探索するイジング問題を解く装置であるが、イジングスピンの向き{-1,+1}を離散変数の値{0,1}に対応させることにより、0-1整数2次計画問題を解くことができる。なお、イジングマシン30により解くことが可能な形式に記述された問題を、QUBO(Quadratic Unconstrained Binary Optimization)形式で表される問題と呼ぶ。
【0012】
情報処理装置20とイジングマシン30とは、例えばネットワーク等を介して接続される。情報処理装置20は、QUBO形式で表される問題をイジングマシン30に与える。イジングマシン30は、情報処理装置20からQUBO形式で表される問題を受け取り、解を算出する。そして、イジングマシン30は、QUBO形式で表される問題の解を情報処理装置20へと返す。
【0013】
なお、イジングマシン30は、コンピュータに組み込み可能なボード、または、求解プログラムを実行するコンピュータにより提供される場合もある。このため、イジングマシン30は、情報処理装置20の一部に組み込まれてもよい。
【0014】
(混合整数計画問題)
混合整数計画問題は、複数の連続変数および複数の離散変数を含む目的関数を、1または複数の制約式による制限の下で最小化する問題である。混合整数計画問題の解は、最適解に限らず、近似解であってもよい。
【0015】
第1実施形態に係る求解システム10は、式(1)に表される混合整数計画問題を解く。
【数1】
【0016】
式(1)の1行目は、f(x,y)を最小とするようなxおよびyの解を得る関数を表す。f(x,y)は、混合整数計画問題の目的関数を表す。
【0017】
xは、n次元の連続変数を含むベクトルである。すなわち、xは、互いに独立したn個の連続変数を表す。nは、2以上の整数である。連続変数は、実数値となる。
【0018】
yは、q次元の離散変数を含むベクトルである。すなわち、yは、互いに独立したq個の離散変数を表す。qは、2以上の整数である。離散変数は、0または1の値となる。
【0019】
式(1)の2行目のh(x,y)=0は、混合整数計画問題の等式制約を表し、任意のxおよびyを変数に含むm次元の方程式である。すなわち、h(x,y)=0は、右辺を0としたm個の方程式を表す。式(1)の3行目のg(x,y)≦0は、混合整数計画問題の不等式制約を表し、任意のxおよびyを変数に含むp次元の不等式である。すなわち、g(x,y)≦0は、左辺が0以下であることを表すp個の不等式を表す。なお、mおよびpのそれぞれは、0以上の整数である。また、m+pは、1以上の整数となる。従って、式(1)の混合整数計画問題は、1または複数の制約式を含む。
【0020】
式(1)の4行目は、xがn次元の実数範囲内の値であることを表す。式(1)の5行目は、yがp次元の0または1の値範囲内の値であることを表す。
【0021】
このような式(1)は、h(x,y)=0およびg(x,y)≦0を満たし、且つ、f(x,y)を最小とするようなxおよびyの解を得ることを表す。
【0022】
(QUBO形式で表される問題)
QUBO形式で表される問題は、式(2)のように表される。
【数2】
【0023】
Qは、(q×q)次元の定数を含む行列を表す。cは、q次元の定数を含むベクトルを表す。なお、yおよびcの右肩に付けられているTは、行と列とを転置させたベクトルであることを表す。
【0024】
このような式(2)は、yQy+cyを最小化するようなyの解を得ることを表す。QUBO形式で表される問題の解は、最適解に限らず、近似解であってもよい。
【0025】
(一般化ベンダーズ分解法を用いた求解)
情報処理装置20は、式(1)により表される混合整数計画問題を、一般化ベンダーズ分解法を応用したアルゴリズムにより解く。より詳しくは、情報処理装置20は、式(1)により表される混合整数計画問題を一般化ベンダーズ分解法に従って連続変数に関する主問題(プライマリ問題)と、離散変数に関する緩和マスター問題とに分解する。そして、情報処理装置20は、主問題と緩和マスター問題とを、交互に停止条件を満たすまで繰り返して解くことにより、解を算出する。この場合において、情報処理装置20は、緩和マスター問題をQUBO形式により表した問題に変換したQUBO問題を生成する。そして、情報処理装置20は、生成したQUBO問題をイジングマシン30に解かせる。これにより、情報処理装置20は、混合整数計画問題の解を高速に算出することができる。
【0026】
一般化ベンダーズ分解法における主問題は、式(3)により表される。主問題は、繰り返し毎に異なる問題となる。
【数3】
【0027】
は、k回目の繰返処理において、yに代入されるp次元の離散値(0または1)を含むベクトルである。kは、1からKまでの何れかの整数であり、主問題と緩和マスター問題との繰返回数を表す。Kは、整数であり、繰り返し処理における、最後の繰り返し回数を表す。
【0028】
1回目の繰返処理において、yは、初期値である。2回目以降の繰返処理において、yは、直前の回において算出されたyの解の候補値である。従って、1回目の繰返処理において、主問題は、式(1)の混合整数計画問題のyに、初期値が代入されることにより生成される。また、2回目以降のそれぞれの繰返処理において、主問題は、式(1)の混合整数計画問題のyに、直前の回において算出されたyの解の候補値が代入されることにより生成される。
【0029】
式(3)の1行目は、f(x,y)を最小とするようなxの解を得る関数を表す。f(x,y)は、主問題の目的関数を表す。
【0030】
式(3)の2行目のh(x,y)=0は、主問題の等式制約を表すm次元の方程式である。式(3)の3行目のg(x,y)≦0は、主問題の不等式制約を表すp次元の不等式である。式(3)の4行目は、xがn次元の実数範囲内の値であることを表す。
【0031】
このような式(3)は、h(x,y)=0およびg(x,y)≦0を満たし、且つ、f(x,y)を最小とするようなxの解を得ることを表す。
【0032】
なお、主問題は、情報処理装置20が何らかのアルゴリズムに従ってxの解の候補値を算出することが可能な問題である。例えば、主問題の目的関数であるf(x,y)は、2次関数または4次関数等の下凸関数である。また、例えば、主問題の等式制約を表すh(x,y)=0は、m次元の一次方程式である。また、例えば、主問題の不等式制約を表すg(x,y)≦0は、p次元の一次不等式である。つまり、求解の対象となる混合整数計画問題は、例えば、目的関数の複数の連続変数に関する項が下凸関数である。また、求解の対象となる混合整数計画問題の1または複数の制約式のそれぞれの連続変数に関する項は、例えば、一次方程式または一次不等式である。
【0033】
また、式(3)で表される主問題の制約式を緩和したラグランジュ緩和問題は、次の式(4)により表される。
【数4】
【0034】
式(4)の目的関数L(x,y,λ,μ)は、式(5)により表される。
【数5】
【0035】
ここで、式(4)のλおよびμは、ラグランジュ乗数である。λは等式制約を表すh(x,y)に乗じられるm次元のベクトル、μは不等式制約を表すg(x,y)に乗じられるp次元のベクトルである。λの右肩のTは、λの転置ベクトルを表す。μの右肩のTは、μの転置ベクトルを表す。λは任意のベクトル、μは、非負のベクトルである。そして、このラグランジュ緩和問題の解により、主問題の最適値f(x,y)の下界値が得られる。なお、xは、主問題の最適解を表す。すなわち、主問題である式(3)の実行可能解をxとした場合、式(6)が成り立つ。なお、xの右肩の~は、式中においてxの直上に記載する。
【数6】
【0036】
ここで、任意のxに対して式(6)が成り立つことにより、式(7)が成り立つ。
【数7】
【0037】
次に、このラグランジュ緩和問題の最適値を主問題の最適値にできるだけ近づけることについて考える。すなわち、ラグランジュ緩和問題の最適値を最大化するようなラグランジュ乗数(λ,μ)を求める式(8)のラグランジュ双対問題について考える。
【数8】
【0038】
主問題が凸の場合、強双対性、すなわち、主問題の最適値とラグランジュ双対問題の最適値は一致するという性質がある。このとき、最適ラグランジュ乗数をλ,μとした場合、式(9)に示すKKT条件を満たすことが知られている。
【数9】
【0039】
従って、主問題の最適解であるx得られる場合、KKT条件である式(9)を解くことにより最適ラグランジュ乗数であるλ,μを得ることができる。
【0040】
一般化ベンダーズ分解法における緩和マスター問題は、混合整数計画問題のマスター問題の緩和問題である。
【0041】
まず、混合整数計画問題のマスター問題は、式(10)により表される。混合整数計画問題のマスター問題は、式(1)の双対表現により表される。
【数10】
【0042】
式(10)の1行目は、μを最小とするようなyの解を得る関数を表す。式(10)の2行目は、全てのλおよび全ての非負のμについて、xを変数として最小化したL(x,y,λ,μ)を、μ以下の範囲に制限する制約式を表す。
【0043】
L(x,y,λ,μ)は、式(11)により表される。
【数11】
【0044】
ここで、f(x,y)、h(x,y)およびg(x,y)のそれぞれは、xとyとについて線形分離可能である場合、式(12)のように表される。
【数12】
【0045】
このようなマスター問題に対して、緩和マスター問題は、f(x,y)、h(x,y)およびg(x,y)のそれぞれがxとyとについて線形分離可能である場合、式(13)により表される。
【数13】
【0046】
λは、k回目の繰返処理において等式制約に乗じられるm次元の最適ラグランジュ乗数ベクトルである。μは、k回目の繰返処理において不等式制約に乗じられるp次元の最適ラグランジュ乗数ベクトルである。λの右肩のTは、λの転置ベクトルを表す。μの右肩のTは、μの転置ベクトルを表す。なお、式(13)における制約式は、繰返処理毎に1つずつ追加されていく。すなわち、k回目の繰返処理では、緩和マスター問題は、式(14)のように表される。
【数14】
【0047】
は、k回目の繰返処理における、緩和マスター問題のxに関する項であり、式(15)により表される。
【数15】
【0048】
式(15)は、yとは独立に解くことができるxのみの問題となる。式(15)の解は、強双対性により主問題である式(3)の解に一致することが知られている。
【0049】
また、緩和マスター問題は、f(x,y)、h(x,y)およびg(x,y)のそれぞれがxとyとについて線形分離できない場合、式(16)により表されると考えられる。
【数16】
【0050】
なお、式(16)における制約式は、繰返処理毎に1つずつ追加されていく。
【0051】
一般化ベンダーズ分解法のアルゴリズムは、次のような手順となる。
【0052】
まず、ステップ1において、アルゴリズムは、離散変数をある初期点y∈Yに固定する。すなわち、アルゴリズムは、y=yとする。さらに、アルゴリズムは、繰返回数を表すkを1、混合整数計画問題の下界値を表すLBDを-∞、緩和マスター問題の上界値を表すUBDを∞に設定する。さらに、アルゴリズムは、許容誤差を表すεを0以上の任意値に設定する。
【0053】
続いて、アルゴリズムは、繰返回数を表すkを1ずつインクリメントしながら、ステップ2およびステップ3を繰り返す。
【0054】
k回目の繰り返しにおける、ステップ2において、アルゴリズムは、y=yとして、主問題である式(3)を解き、x、並びに、最適乗数であるλおよびμを取得する。さらに、アルゴリズムは、f(x,y)により、k回目の繰り返しにおける混合整数計画問題の最適値を算出する。f(x,y)は、混合整数計画問題の目的関数に、直前に得られたxの候補値および直前に得られたyの候補値を代入して得られる値を表す。
【0055】
そして、k回目の繰り返しにおいて、アルゴリズムは、k回目までの各繰り返しにおいて算出した最適値のうち最小の最適値を、上界値として登録する。例えば、アルゴリズムは、UBD=min{UBD,f(x,y)}により、上界値を更新する。なお、min{X,Y}は、XおよびYのうちの小さい方の値を取得する関数である。
【0056】
続いて、ステップ3において、アルゴリズムは、緩和マスター問題である式(13)または式(16)を解き、yk+1およびμを取得する。μは、緩和マスター問題の最適値を表す。k回目の繰り返しにおいて、アルゴリズムは、k回目までの各繰り返しにおいて算出した最適値のうち最大の最適値を、下界値として登録する。例えば、アルゴリズムは、LBD=max{LBD,μ}により、下界値を更新する。なお、man{X,Y}は、XおよびYのうちの大きい方の値を取得する関数である。
【0057】
さらに、アルゴリズムは、各繰り返しにおいて、UBD-LBD≦εであるか否かを判断する。UBD-LBD≦εである場合、アルゴリズムは、繰り返しを停止し、最後に得られたxの候補値およびyの候補値を、混合整数計画問題の解として出力する。UBD-LBD≦εではない場合には、アルゴリズムは、k=k+1として、処理をステップ2に戻す。
【0058】
このような一般化ベンダーズ分解法のアルゴリズムは、有限回数の繰り返しにより、停止条件に達する、すなわち、UBD-LBD≦εとなる、とされている。従って、一般化ベンダーズ分解法のアルゴリズムは、ステップ2およびステップ3の処理を繰り返すことにより、混合整数計画問題の解を算出することができる。なお、一般化ベンダーズ分解法のアルゴリズムは、緩和マスター問題である式(13)または式(16)における制約式に対応する項が、繰り返し毎に1つずつ追加されていく。
【0059】
(機能構成)
図2は、情報処理装置20の機能構成をイジングマシン30とともに示す図である。情報処理装置20は、上述した一般化ベンダーズ分解法を応用したアルゴリズムにより、混合整数計画問題を解く。
【0060】
情報処理装置20は、入力部42と、連続変数解算出部44と、上界値更新部46と、QUBO問題生成部48と、離散変数解取得部50と、下界値更新部52と、判定部54と、制御部56と、出力部58とを備える。
【0061】
入力部42は、求解の対象となる混合整数計画問題を取得する。具体的には、入力部42は、式(1)を表す情報を取得する。
【0062】
連続変数解算出部44は、入力部42により取得された混合整数計画問題に対して、連続変数解算出処理を実行する。より具体的には、連続変数解算出部44は、混合整数計画問題を一般化ベンダーズ分解法で分解することにより得られる主問題を解いて、複数の連続変数のそれぞれの解の候補値、および、1または複数の制約式のそれぞれに乗じられる1または複数の最適乗数を算出する。
【0063】
上界値更新部46は、連続変数解算出部44により算出された複数の連続変数のそれぞれの解の候補値に基づき、上界値更新処理を実行する。より具体的には、上界値更新部46は、直前の連続変数解算出処理により算出された複数の連続変数のそれぞれの解の候補値を、直前の連続変数解算出処理で用いた主問題の目的関数に代入して混合整数計画問題の最適値を算出する。そして、上界値更新部46は、算出した混合整数計画問題の最適値に基づき、混合整数計画問題の上界値を更新する。
【0064】
QUBO問題生成部48は、連続変数解算出部44により算出された、複数の連続変数のそれぞれの解の候補値、および、1または複数の最適乗数を用いて、QUBO問題生成処理を実行する。より具体的には、QUBO問題生成部48は、直前の連続変数解算出処理により算出された複数の連続変数のそれぞれの解の候補値、および、直前までの全ての連続変数解算出処理により算出された1または複数の最適乗数に基づき、混合整数計画問題を一般化ベンダーズ分解法で分解することにより得られる緩和マスター問題をQUBO形式で表される問題に変換したQUBO問題を生成する。
【0065】
離散変数解取得部50は、QUBO問題生成部48により生成されたQUBO問題をイジングマシン30に与える。さらに、離散変数解取得部50は、離散変数解取得処理を実行する。より具体的には、離散変数解取得部50は、イジングマシン30からQUBO問題の解を、複数の離散変数のそれぞれの解の候補値として取得する。
【0066】
下界値更新部52は、離散変数解取得部50により取得された複数の連続変数のそれぞれの解の候補値に基づき、下界値更新処理を実行する。より具体的には、下界値更新部52は、直前の離散変数解取得処理により取得された複数の離散変数のそれぞれの解の候補値を、直前のQUBO問題生成部48により生成されたQUBO問題の生成の元となる緩和マスター問題の制約式に代入して、緩和マスター問題の最適値を算出する。そして、下界値更新部52は、算出した緩和マスター問題の最適値に基づき、緩和マスター問題の下界値を更新する。
【0067】
判定部54は、上界値更新部46により更新された上界値、および、下界値更新部52により更新された上界値を用いて、判定処理を実行する。判定部54は、上界値および下界値に基づき、繰返処理の停止条件に達したか否かを判定する判定処理を実行する。より具体的には、判定部54は、上界値と下界値との差が予め設定された許容誤差以下である場合に、停止条件に達したと判定する。
【0068】
制御部56は、連続変数解算出部44、上界値更新部46、QUBO問題生成部48、離散変数解取得部50、下界値更新部52および判定部54を制御する。制御部56は、繰返回数を更新しながら、連続変数解算出処理、上界値更新処理、QUBO問題生成処理、離散変数解取得処理、下界値更新処理、判定処理を、繰り返して実行させる。
【0069】
制御部56は、繰り返しに先だって、繰返回数の初期値、混合整数計画問題の目的関数に含まれる離散変数の初期値、混合整数計画問題の上界値の初期値、緩和マスター問題の下界値の初期値、および、収束誤差を設定する。また、制御部56は、連続変数解算出処理から判定処理まで一連の処理がされた場合、繰返回数を更新して、再度、連続変数解算出処理から処理を繰り返させる。また、制御部56は、判定処理において停止条件に達したと判定された場合には、繰り返しを停止させる。すなわち、制御部56は、停止条件に達するまで、連続変数解算出処理から判定処理までの処理を繰り返して実行させる。
【0070】
出力部58は、停止条件に達した場合、最後に得られた複数の連続変数のそれぞれの解の候補値、および、最後に得られた複数の離散変数の解の候補値を、混合整数計画問題の解として出力する。
【0071】
(処理フロー)
図3は、情報処理装置20の処理の流れを示す図である。情報処理装置20は、図3に示す流れで処理を実行することにより、混合整数計画問題を解く。
【0072】
まず、S101において、入力部42は、求解の対象となる混合整数計画問題を取得する。具体的には、入力部42は、式(1)を表す情報を取得する。
【0073】
続いて、S102において、制御部56は、繰返回数であるk、混合整数計画問題の上界値であるUBD、緩和マスター問題の下界値であるLBDのそれぞれに、初期値を設定する。例えば、制御部56は、k=1、UBD=-∞、および、LBD=∞と設定する。なお、-∞は、情報処理装置20により取り扱うことが可能な最小の値であってもよい。また、∞は、情報処理装置20により取り扱うことが可能な最大の値であってもよい。また、制御部56は、混合整数計画問題の目的関数に含まれる離散変数であるyに初期値を設定する。例えば、制御部56は、y=yと設定する。yは、yの候補値であって、予め設定された値、ユーザ等に設定された値、または、ランダムに設定された値である。さらに、制御部56は、収束誤差であるεを設定する。εは、0以上の実数であり、予め設定された値またはユーザ等に設定された値であってよい。
【0074】
続いて、制御部56は、S103からS110までの繰返処理を停止条件に達するまで繰り返させる。
【0075】
S103において、連続変数解算出部44は、連続変数解算出処理を実行する。すなわち、連続変数解算出部44は、混合整数計画問題を一般化ベンダーズ分解法で分解することにより得られる主問題を解いて、複数の連続変数のそれぞれの解の候補値、および、1または複数の制約式のそれぞれに乗じられる1または複数の最適乗数を算出する。具体的には、連続変数解算出部44は、式(3)の問題を解く。式(3)の問題は、線形計画問題または非線形計画問題であり、内点法等の既知のアルゴリズムにより解くことができる問題である。k回目の繰返処理において、S103の連続変数解算出処理を実行することにより、連続変数解算出部44は、x,λおよびμを取得することができる。
【0076】
続いて、S104において、上界値更新部46は、上界値更新処理を実行する。すなわち、上界値更新部46は、直前の連続変数解算出処理により算出された複数の連続変数のそれぞれの解の候補値を、直前の連続変数解算出処理で用いた主問題の目的関数に代入して混合整数計画問題の最適値(f(x,y))を算出する。そして、上界値更新部46は、算出した混合整数計画問題の最適値(f(x,y))に基づき、混合整数計画問題の上界値であるUBDを更新する。具体的には、k回目の繰返処理において、上界値更新部46は、式(17)の演算を実行する。
【数17】
【0077】
続いて、S105において、QUBO問題生成部48は、QUBO問題生成処理を実行する。すなわち、QUBO問題生成部48は、直前の連続変数解算出処理により算出された複数の連続変数のそれぞれの解の候補値、および、直前までの全ての連続変数解算出処理により算出された1または複数の最適乗数に基づき、混合整数計画問題を一般化ベンダーズ分解法で分解することにより得られる緩和マスター問題をQUBO形式で表される問題に変換したQUBO問題を生成する。
【0078】
式(13)および式(16)の緩和マスター問題は、1つの連続値である変数(μ)と、離散変数(y)とを含む混合整数計画問題である。QUBO問題生成部48は、このような式(13)および式(16)により表される混合整数計画問題をQUBO形式で表される問題に変換したQUBO問題を生成する。
【0079】
まず、式(13)の混合整数計画問題は、式(18)を最小とするyの解を得る問題である。
【数18】
【0080】
式(18)は、μの上端を表す。従って、式(13)の混合整数計画問題は、μの上端を最小とするようなyの解を得る問題である。
【0081】
μの上端を最小とするようなyの解を得る問題は、式(18)に含まれるK個の制約式であるF(y)={F(y),F(y),…,F(y)}の無限大ノルム、すなわち、最大値ノルムを、最小化する無限大ノルム最小化問題である。
【0082】
ここで、無限大ノルムは、p-ノルムのp→∞としたときの極限と考えられる。そこで、QUBO問題生成部48は、式(13)および式(16)の問題を、無限大ノルムに代えて有限のp-ノルムを用いる問題に近似することにより、QUBO問題を生成する。本実施形態においては、QUBO問題生成部48は、緩和マスター問題における制約式を表す無限大ノルム最小化問題を、2-ノルム最小化問題に変換した問題を、QUBO問題として生成する。
【0083】
具体的には、QUBO問題生成部48は、f(x,y)、h(x,y)およびg(x,y)のそれぞれがxとyとについて線形分離できる場合、式(19)に示すQBUO問題を生成する。
【数19】
【0084】
例えば、式(19)のf(y)、h(y)およびg(y)がyの一次式である場合、式(19)は、0-1変数の二次式により表され、且つ、制約式が無くなる。従って、この場合、式(19)は、QUBO形式により表されている。すなわち、混合整数計画問題は、目的関数の複数の離散変数に関する項が一次関数であり、1または複数の制約式のそれぞれの複数の離散変数に関する項が一次方程式または一次不等式である。この場合、式(19)は、QUBO形式により表される。
【0085】
なお、QUBO問題生成部48は、繰り返し毎に、式(19)の目的関数に含まれる制約式の項を、1つずつ追加することにより問題を更新する。
【0086】
また、QUBO問題生成部48は、f(x,y)、h(x,y)およびg(x,y)のそれぞれがxとyとについて線形分離できない場合、式(20)に示すQBUO問題を生成する。
【数20】
【0087】
式(20)のf(x,y)、h(x,y)およびg(x,y)がyの一次式である場合、式(19)は、0-1変数の二次式により表され、且つ、制約式が無くなる。従って、この場合、式(20)は、QUBO形式により表される。
【0088】
なお、QUBO問題生成部48は、繰り返し毎に、式(20)の目的関数に含まれる制約式の項を1つずつ追加することにより問題を更新する。
【0089】
このように、QUBO問題生成部48は、式(19)または式(20)に示す問題を生成することにより、緩和マスター問題をQUBO形式で表される問題に変換したQUBO問題を生成することができる。
【0090】
続いて、S106において、離散変数解取得部50は、QUBO問題生成処理により生成されたQUBO問題をイジングマシン30に与える。例えば、離散変数解取得部50は、式(19)または式(20)の問題をネットワークを介してイジングマシン30に送信する。
【0091】
続いて、S107において、離散変数解取得部50は、離散変数解取得処理を実行する。すなわち、離散変数解取得部50は、イジングマシン30から、QUBO問題の解を、複数の離散変数のそれぞれの解の候補値として取得する。具体的には、離散変数解取得部50は、イジングマシン30から、yk+1を取得する。
【0092】
続いて、S108において、下界値更新部52は、下界値更新処理を実行する。すなわち、下界値更新部52は、直前の離散変数解取得処理により取得された複数の離散変数のそれぞれの解の候補値に基づき、直前のQUBO問題生成処理により生成したQUBO問題の生成の元となる緩和マスター問題の最適値を算出し、算出した最適値に基づき緩和マスター問題の下界値であるLBDを更新する。
【0093】
具体的には、f(x,y)、h(x,y)およびg(x,y)のそれぞれがxとyとについて線形分離可能である場合、下界値更新部52は、式(13)の2行目の緩和マスター問題の制約式の右辺にイジングマシン30から取得したyk+1を代入することにより、緩和マスター問題の最適値であるμを算出する。また、f(x,y)、h(x,y)およびg(x,y)のそれぞれがxとyとについて線形分離可能ではない場合、下界値更新部52は、式(16)の2行目の緩和マスター問題の制約式の右辺にイジングマシン30から取得したyk+1を代入することにより、緩和マスター問題の最適値であるμを算出する。
【0094】
そして、下界値更新部52は、緩和マスター問題の最適値であるμに基づき、式(21)の演算を実行することにより、下界値であるLBDを更新する。
【数21】
【0095】
続いて、S109において、判定部54は、繰返処理の停止条件に達したか否かを判定する判定処理を実行する。具体的には、判定部54は、式(22)示すように、上界値と下界値との差が予め設定された許容誤差以下である場合に、停止条件に達したと判定する。
【数22】
【0096】
制御部56は、停止条件に達しない場合(S109のNo)、処理をS110に進める。停止条件に達した場合(S109のYes)、制御部56は、処理をS111に進める。
【0097】
S110において、制御部56は、繰返回数を更新する。具体的には、制御部56は、kに1を加算する。制御部56は、S110の処理を終えると、処理をS103に戻す。このように、制御部56は、繰返回数を変更しながら、連続変数解算出処理(S103)、上界値更新処理(S104)、QUBO問題生成処理(S105)、問題送信処理(S106)、離散変数解取得処理(S107)、下界値更新処理(S108)および判定処理(S109)を、繰り返して実行させる。
【0098】
S111において、出力部58は、停止条件に達した場合、最後の連続変数算出処理(S103)で得られた複数の連続変数のそれぞれの解の候補値(x)、および、最後の離散変数取得処理(S107)で得られた複数の離散変数の解の候補値(yk+1)を、混合整数計画問題の解として出力する。
【0099】
(効果)
以上のような本実施形態に係る求解システム10は、混合整数計画問題を一般化ベンダーズ分解法における主問題と緩和マスター問題とに分解し、主問題と緩和マスター問題とを、交互に停止条件を満たすまで繰り返して解くことにより、解を算出する。この場合において、求解システム10は、緩和マスター問題をQUBO形式で表される問題に変換したQUBO問題を生成し、生成したQUBO問題をイジングマシン30に解かせる。これにより、求解システム10は、混合整数計画問題の解を高速に算出することができる。
【0100】
(第2実施形態)
つぎに、第2実施形態に係る求解システム10について説明する。第2実施形態に係る求解システム10は、第1実施形態に係る求解システム10と略同一の機能および構成を有する。従って、第2実施形態に係る求解システム10の説明については、第1実施形態と同一の内容については詳細な説明を省略して、相違点を中心に説明をする。
【0101】
第2実施形態に係る求解システム10による求解の対象となる混合整数計画問題は、1または複数の制約式に、連続変数のみを含む制約式および離散変数のみを含む制約式をすくむ問題である。
【0102】
例えば、式(1)に示す混合整数計画問題における1または複数の制約式に、離散変数のみを含む制約式が含まれている場合、情報処理装置20は、主問題を解いて離散変数のみを含む制約式を扱うことができない。このため、主問題を解いても、離散変数のみを含む制約式に対応する最適乗数を得ることができない。従って、このような混合整数計画問題は、緩和マスター問題が式(13)または式(16)のように表されない。
【0103】
連続変数のみを含む制約式と離散変数のみを含む制約式を含む混合整数計画問題は、式(23)のように表される。
【数23】
【0104】
(x,y)は、連続変数および離散変数の両方を含む等式制約を表し、m次元の方程式である。H(x)は、連続変数のみを含む等式制約を表し、m次元の方程式である。H(y)は、離散変数のみを含む等式制約を表し、m次元の方程式である。g(x,y)は、連続変数および離散変数の両方を含む不等式制約を表し、p次元の方程式である。G(x)は、連続変数のみを含む不等式制約を表し、p次元の方程式である。G(y)は、離散変数のみを含む不等式制約を表し、p次元の方程式である。なお、m、m、m、p、pおよびpのそれぞれは、0以上の整数である。また、m+m+p+pは、1以上の整数となる。
【0105】
混合整数計画問題が式(23)のように表される場合、第2実施形態に係る情報処理装置20は、離散変数のみを含む制約式については、主問題に含めない。従って、主問題は、式(24)のように表される。
【数24】
【0106】
また、混合整数計画問題が式(23)のように表される場合、第2実施形態に係る情報処理装置20は、連続変数のみを含む制約式については、緩和マスター問題に含めない。従って、f(x,y)、h(x,y)およびg(x,y)のそれぞれがxとyとについて線形分離可能である場合、緩和マスター問題は、式(25)のように表される。
【数25】
【0107】
λは、等式制約であるh(x,y)=0に対応するm次元の最適乗数を含むベクトルである。μは、不等式制約であるg(x,y)≦0に対応するp次元の最適乗数を含むベクトルである。なお、h(x,y)およびg(x,y)は、線形分離可能である場合、式(26)のように表される。
【数26】
【0108】
また、f(x,y)、h(x,y)およびg(x,y)のそれぞれがxとyとについて線形分離可能ではない場合、緩和マスター問題は、式(27)のように表される。
【数27】
【0109】
ここで、第2実施形態に係るQUBO問題生成部48は、1または複数の制約式のうち離散変数のみを含む制約式を、非特許文献2に示されたペナルティ関数に変換して緩和マスター問題の目的関数に組み込む。
【0110】
等式制約式の場合、ペナルティ関数は、対応する制約式を満たした場合に0となり、対応する制約式を満たさない場合には、正の実数となる関数である。例えば、制約式が、左辺に離散変数の関数、右辺に0が記述された等式制約式である場合、ペナルティ関数は、対応する等式制約式における左辺の関数を二乗した関数であってよい。
【0111】
また、不等式制約式の場合、ペナルティ関数は、対応する不等式制約式が0または1を表す新規変数を用いて代替等式制約式に変換され、代替等式制約式を満たした場合に0となり、代替等式制約式を満たさない場合には、正の実数となる関数である。
【0112】
例えば、第2実施形態に係るQUBO問題生成部48は、f(x,y)、h(x,y)およびg(x,y)が線形分離可能である場合、式(28)に示すような緩和マスター問題を生成する。
【数28】
【0113】
riは、R次元の0または1を表す新規変数ベクトルである。なお、zriは、zに対して、rの下付文字が付加された変数である。G2riは、zri=1に対応するG2i(y)がとる値である。なお、G2riは、Gに対してrの下付文字が付加された変数である。AおよびBは、係数を表す。
【0114】
式(27)のi番目の不等式制約G2i(y)≦0において、y∈Y={0,1}のすべての組み合わせに対してG2i(y)の値は2通り存在し、重複を除くとR≦2通り存在するものとすると、それぞれに対応した0-1変数zri(r=1,2,...,R)と、G2i(y)の値G2riが定まり、G2riri=G2i(y)となるzri=1が一つだけ決まるようにできる。従って、式(27)のi番目の不等式制約G2i(y)≦0は、Σzri=1かつΣG2riri=G2i(y)と等式制約で表現できる。
【0115】
シグマのカッコ内の第2項であるAが乗じられた項は、等式制約に関するペナルティ関数である。この第2項は、等式制約式を満たした場合に0となり、等式制約を満たさない場合に正の実数となる関数である。Aは、係数である。等式制約式を満たし場合には、Aが十分に大きくても、第2項は0となる。従って、QUBO問題生成部48は、Aを十分に大きくすることにより、精度の良い解を得ることができる緩和マスター問題を生成することができる。
【0116】
シグマのカッコ内の第3項であるBが乗じられた項は、不等式制約に関するペナルティ関数である。この第3項は、不等式制約式を満たした場合に0となり、不等式制約を満たさない場合に正の実数となる関数である。Bは、係数である。不等式制約式を満たし場合には、Bが十分に大きくても、第3項は0となる。従って、QUBO問題生成部48は、Bを十分に大きくすることにより、精度の良い解を得ることができる緩和マスター問題を生成することができる。
【0117】
また、シグマのカッコ内の第1項は、式(13)の緩和マスター問題と同様である。式(28)のシグマのカッコ内の第1項は、式(13)の緩和マスター問題と同様に、繰り返し処理毎に制約式に対応する項が1つずつ増加する。
【0118】
そして、QUBO問題生成部48は、このようにペナルティ関数を組み込んだ緩和マスター問題を変換したQUBO問題を生成する。例えば、f(y)、h(y)、g(y)、H(y)およびG(y)がyの一次関数である場合、式(28)の目的関数は、yの2次式により表される。従って、この場合、式(28)は、QUBO形式により表される問題となる。従って、この場合、QUBO問題生成部48は、このようにペナルティ関数を組み込んだ緩和マスター問題を、QUBO問題として生成する。
【0119】
QUBO問題生成部48は、式(27)に示す緩和マスター問題についても同様にペナルティ関数を組み込み、QUBO問題を生成することが可能である。
【0120】
このように、第2実施形態に係るQUBO問題生成部48は、QUBO問題生成処理において、1または複数の制約式のうち複数の離散変数のうちの何れかを変数として含む制約式を、制約式を満たした場合に0となり、制約式を満たさない場合には、正の実数となるペナルティ関数として、緩和マスター問題の目的関数に組み込む。そして、QUBO問題生成部48は、ペナルティ関数を組み込んだ緩和マスター問題を変換したQUBO問題を生成する。
【0121】
さらに、この場合において、QUBO問題生成部48は、QUBO問題生成処理において、1または複数の制約式のうち複数の離散変数のうちの何れかを変数として含む不等制約式を、0または1を表す新規変数を用いて等式制約式に変換して、ペナルティ関数として緩和マスター問題に組み込む。QUBO問題生成部48は、このようなペナルティ関数を組み込んだ緩和マスター問題を変換したQUBO問題を生成する。
【0122】
第2実施形態に係る情報処理装置20は、QUBO問題生成部48によるQUBO問題生成処理の内容が変更されたものであり、他の構成および処理は第1実施形態と同様である。従って、第2実施形態に係る情報処理装置20は、第1実施形態と同様の流れで処理を実行することにより、連続変数のみを含む制約式と離散変数のみを含む制約式を含む混合整数計画問題の解を算出することができる。
【0123】
以上のような本実施形態に係る求解システム10は、連続変数のみを含む制約式と離散変数のみを含む制約式を含む混合整数計画問題を一般化ベンダーズ分解法における主問題と緩和マスター問題とに分解し、主問題と緩和マスター問題とを、交互に停止条件を満たすまで繰り返して解くことにより、解を算出する。この場合において、求解システム10は、緩和マスター問題をQUBO形式で表される問題に変換したQUBO問題を生成し、生成したQUBO問題をイジングマシン30に解かせる。これにより、求解システム10は、混合整数計画問題の解を高速に算出することができる。
【0124】
(第3実施形態)
つぎに、第3実施形態に係る求解システム10について説明する。第3実施形態に係る求解システム10は、第1実施形態に係る求解システム10と略同一の機能および構成を有する。従って、第3実施形態に係る求解システム10の説明については、第1実施形態と同一の内容については詳細な説明を省略して、相違点を中心に説明をする。
【0125】
第3実施形態に係る求解システム10による求解の対象となる混合整数計画問題は、発電計画問題である。発電計画問題は、複数の発電機のそれぞれの運転状態または運転停止状態を、電力需要を満たすように、発電機に対して設定された制約の下で決定する問題である。例えば、発電計画問題は、目的関数として、燃料コストと起動コストとを含む発電コストを表す関数を用いる。また、発電計画問題は、制約条件として、電力の需給バランスと、予備力制約と、発電機の最大出力、発電機の最小出力、および、最小停止時間とを含む。
【0126】
具体的には、発電計画問題は、式(29)のように表される。
【数29】
【0127】
(インデックス)
tは、時刻を表すインデックスである。tは、1以上の整数である。
ttは、時刻を表すインデックスである。ttは、1以上の整数である。
iは、発電機を表すインデックスである。iは、1以上の整数である。
【0128】
(変数)
(t)は、時刻がtのときにおける、i番目の発電機の発電出力を表す変数である。P(t)は、連続変数である。
(t)は、時刻がtのときにおける、i番目の発電機の運転状態か運転停止状態かを表す変数である。U(t)は、0が運転停止状態を表し、1が運転状態を表す。
(t)は、時刻がtのときにおける、i番目の発電機がスタートアップ状態か否かを表す変数である。S(t)は、1がスタートアップ状態を表し、0がスタートアップ以外の状態を表す。
(t)は、時刻がtのときにおける、i番目の発電機がシャットダウン状態か否かを表す変数である。D(t)は、1がシャットダウン状態を表し、0がシャットダウン以外の状態を表す。
【0129】
(パラメータ)
Tは、2以上の整数であり、予め設定された計画期間である。
nは、2以上の整数であり、発電機の個数である。
は、P(t)の2次関数であるi番目の発電機の燃料コストを表す燃料コスト関数における、2次項に乗算される係数である。
は、i番目の発電機の燃料コスト関数における、1次項に乗算される係数である。
は、i番目の発電機が運転状態の場合に定常的に消費される燃料コストであり、i番目の発電機の燃料コスト関数における定数項である。
は、i番目の発電機の起動コストである。
Dem(t)は、時刻がtのときにおける、系統全体の電力需要である。
Pmaxは、i番目の発電機の最大の発電出力である。
Pminは、i番目の発電機の最小の発電出力である。
rは、必要予備率である。
mdtは、i番目の発電機の最小の停止時間である。
【0130】
以上のような発電計画問題の主問題は、式(30)のように表される。
【数30】
【0131】
kは、繰返回数を表すインデックスである。
(t)は、k回目の繰返処理において取得されたU(t)の候補値(0または1)である。
(t)は、k回目の繰返処理において取得されたS(t)の候補値(0または1)である。
【0132】
式(30)により表される主問題は、発電計画問題において、発電機の運転状態または運転停止状態を表す変数を固定した、経済負荷配分問題と呼ばれる問題になっている。従って、連続変数解算出部44は、式(30)に示す主問題を二次計画法のアルゴリズムにより容易に解くことができる。
【0133】
また、以上のような発電計画問題の緩和マスター問題は、式(31)のように表される。
【数31】
【0134】
Kは、最後の繰返回数を表す。
μは、0より大きい連続変数であり、実行可能な主問題のラグランジュ関数の最小の上界値を表す。
μ(t)は、主問題のi番目の発電機の最小の発電出力の制約に対する、k回目の繰返回数におけるラグランジュ乗数(最適乗数)を表す。
(t)は、主問題のi番目の発電機の最大の発電出力の制約に対する、k回目の繰返回数におけるラグランジュ乗数(最適乗数)を表す。
は、式(32)のように表され、主問題の目的関数値と一致する。
【数32】
【0135】
式(31)の緩和マスター問題をQUBO問題に変換することを考える。式(31)の2行目に記述された第1制約式は、この第1制約式の右辺の無限大ノルムを最小化することを意味する。従って、式(31)の2行目に記述された第1制約式は、2-ノルムを最小化する問題に近似可能である。
【0136】
また、式(31)の3行目に記述された第2制約式は、不等式制約であるので、0または1を表す新規変数を導入して代替等式制約式に変換することが可能である。例えば、第2制約式は、0または1を表すR(t)を新規変数として導入することにより、代替等式制約式に変換することが可能である。
【0137】
図4は、発電計画問題に含まれる不等式制約を等式制約に変換するための概念を説明するための図である。
【0138】
例えば、発電出力が10MW、20MW、30MWの3個の発電機の最大出力の合計が、25MW以上となる制約を等式制約で表現することを考える。なお、ここでは、1つの時間断面について考え、tを省略する。
【0139】
3個の発電機における運転状態または運転停止状態の組み合わせは、全部で、2=8通りである。しかし、3個の発電機の最大出力の合計である供給力は、図4の通り、10MW、20MW、30MW、40MW、50MWおよび60MWの6通りである。これは、供給力が30MWとなる場合の運転状態または運転停止状態の組み合わせが、2通り存在するためのである。
【0140】
発電機の運転状態または運転停止状態を表す離散変数であるU、UおよびUとは別に、供給力の取り得る全てに対応する0または1を表す新規変数であるRを定義する。ここでは、Rは、最大の供給力が10MWの状態であることを表す。Rは、最大の供給力が20MWの状態であることを表す。Rは、最大の供給力が30MWの状態であることを表す。Rは、最大の供給力が40MWの状態であることを表す。Rは、最大の供給力が50MWの状態であることを表す。Rは、最大の供給力が60MW最大であることを表す。
【0141】
この場合、供給力が25MW以上である、という制約条件は、R、R、RおよびRのうちの何れか1つが1となり、他は0となる、という式により表すことができる。従って、発電出力が10MW、20MW、30MWの3個の発電機の最大出力の合計が、25MW以上となる等式制約は、式(33)により表される。
【数33】
【0142】
なお、Capは、30MWを表す。Capは、40MWを表す。Capは、50MWを表す。Capは、60MWを表す。
【0143】
このような変換を発電計画問題に適用した場合、式(31)の3行目に記述された第2制約式は、式(34)により表される。
【数34】
【0144】
jは、供給力の状態を表すインデックスである。jは、1以上の整数である。
Jは、供給力の状態の個数を表し、予め定められた2以上の整数である。
(t)は、時刻がtのときにおける、供給力がj番目の状態を取るか否かを表す。R(t)は、1が供給力がj番目の状態をとることを表し、0が供給力がj番目の状態を取らないことを表す。
(t)は、時刻がtのときにおける、不等式制約を満たす最小の供給力の状態を表すインデックスである。
Capは、j番目の状態における供給力を表す。
【0145】
また、式(31)の4行目に記述された第3制約式も、不等式制約である。第3制約式は、左辺および右辺のいずれも0または1を取る制約式である。従って、第3制約式は、0または1を取る新たなスラック変数を導入して代替等式制約式に変換することが可能である。例えば、第3制約式は、0または1を表すY(t)を新規のスラック変数として導入することにより、代替等式制約式に変換することが可能である。
【0146】
具体的には、第3制約式は、式(35)に表されるような代替等式制約式に変換することが可能である。
【数35】
【0147】
(t)は、時刻がtのときにおける、i番目の発電機に関するスラック変数である。Y(t)は、0または1を表す。
【0148】
以上のように、式(29)に示す発電計画問題の緩和マスター問題に含まれる不等式制約は、等式制約に変換可能である。従って、QUBO問題生成部48は、QUBO問題生成処理において、制約式をペナルティ関数として緩和マスター問題に組み込むことができる。そして、QUBO問題生成部48は、このようなペナルティ関数を組み込んだ緩和マスター問題を変換したQUBO問題を生成することができる。
【0149】
具体的には、第3実施形態において、QUBO問題生成部48は、QUBO問題生成処理において、式(36)に示すQUBO問題を生成する。
【数36】
【0150】
ここで、Hobjは、式(37)により表される。HC20は、式(38)により表される。HC2は、式(39)により表される。HC4は、式(40)により表される。HC5は、式(41)により表される。
【数37】
【0151】
【数38】
【0152】
【数39】
【0153】
【数40】
【0154】
【数41】
【0155】
なお、w20、w2、w4およびw5のそれぞれは、制約項に乗じられる係数である。
【0156】
以上のような本実施形態に係る求解システム10は、電力計画問題を一般化ベンダーズ分解法における主問題と緩和マスター問題とに分解し、主問題と緩和マスター問題とを交互に停止条件を満たすまで繰り返して解くことにより、解を算出する。この場合において、求解システム10は、電力計画問題の緩和マスター問題をQUBO形式で表される問題に変換したQUBO問題を生成し、生成したQUBO問題をイジングマシン30に解かせる。これにより、求解システム10は、電力計画問題の解を高速に算出することができる。
【0157】
(ハードウェア構成)
図5は、情報処理装置20のハードウェア構成を示す図である。情報処理装置20は、例えば図5に示すようなハードウェア構成のコンピュータにより実現される。情報処理装置20は、CPU(Central Processing Unit)201と、RAM(Random Access Memory)202と、ROM(Read Only Memory)203と、操作入力装置204と、記憶装置206と、通信装置207とを備える。そして、これらの各部は、バスにより接続される。
【0158】
CPU201は、プログラムに従って演算処理および制御処理等を実行するプロセッサである。CPU201は、RAM202の所定領域を作業領域として、ROM203および記憶装置206等に記憶されたプログラムとの協働により各種処理を実行する。
【0159】
RAM202は、SDRAM(Synchronous Dynamic Random Access Memory)等のメモリである。RAM202は、CPU201の作業領域として機能する。ROM203は、プログラムおよび各種情報を書き換え不可能に記憶するメモリである。
【0160】
操作入力装置204は、マウスおよびキーボード等の入力デバイスである。操作入力装置204は、ユーザから操作入力された情報を指示信号として受け付け、指示信号をCPU201に出力する。
【0161】
記憶装置206は、フラッシュメモリ等の半導体による記憶媒体、または、磁気的若しくは光学的に記録可能な記憶媒体等にデータを書き込みおよび読み出しをする装置である。記憶装置206は、CPU201からの制御に応じて、記憶媒体にデータの書き込みおよび読み出しをする。通信装置207は、CPU201からの制御に応じて外部の機器とネットワークを介して通信する。
【0162】
情報処理装置20で実行されるプログラムは、入力モジュールと、連続変数解算出モジュールと、上界値更新モジュールと、QUBO問題生成モジュールと、離散変数解取得モジュールと、下界値更新モジュールと、判定モジュールと、制御モジュールと、出力モジュールと、を備える。このプログラムは、CPU201(プロセッサ)によりRAM202上に展開して実行されることにより、情報処理装置20を、入力部42、連続変数解算出部44、上界値更新部46、QUBO問題生成部48、離散変数解取得部50、下界値更新部52、判定部54、制御部56および出力部58として機能させる。
【0163】
また、情報処理装置20で実行されるプログラムは、コンピュータにインストール可能な形式または実行可能な形式のファイルで、CD-ROM、フレキシブルディスク、CD-R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【0164】
また、情報処理装置20で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、情報処理装置20で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、情報処理装置20で実行されるプログラムを、ROM203等に予め組み込んで提供するように構成してもよい。
【0165】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0166】
10 求解システム
20 情報処理装置
30 イジングマシン
42 入力部
44 連続変数解算出部
46 上界値更新部
48 QUBO問題生成部
50 離散変数解取得部
52 下界値更新部
54 判定部
56 制御部
58 出力部
図1
図2
図3
図4
図5