【実施例】
【0059】
<レイバースケジューリングモデル>
レイバースケジューリングモデルは、例えば、各作業者に、どの日の、どの時間帯に、どの作業を割り当てるかの組み合わせを決定するためのモデルである。本実施例においては、はじめに、ステップS2を実行し、ハミルトニアン生成部16が、レイバースケジューリングモデルを定式化し、第1のハミルトニアンHを生成する。
【0060】
第1のハミルトニアンHの生成に使用する要素の集合およびバイナリ変数を以下に定義する。例えば、作業を行う作業者の集合を、P={1,2,・・・,n}とする。スケジュール対象となる日付の集合を、D={1,2,・・・,q}とする。スケジュール対象となる日付における、一日のうちのある時間帯の集合を、S={1,2,・・・,r}とする。休憩を含む、作業者が実施する作業の集合を、W={1,2,・・・,t}とする。作業者pが、日付dの時間帯sに、作業種別wをする場合に1、そうでない場合に0となるバイナリ変数を、x
pdsw,p∈P,d∈D,s∈S,w∈Wとする。
【0061】
本実施例に係る第1の数理モデルにおいては、総人件費を最低限に抑えつつ、かつ、各作業者の休日の希望、または休憩時間帯の希望を可能な限り実現したスケジュールを、レイバースケジューリングモデルを用いて決定することを目的とする。このため、第1の数理モデルにおける目的関数H
Oは、人件費のコストと、各作業者の休日の希望、または休憩時間帯の希望の、少なくとも何れか一方を満たせなかった場合に増加するコストとの合計値とする。
【0062】
目的関数H
Oを決定するため、以下の集合を定義する。例えば、作業者pが休憩を希望する、日付dおよび時間帯sの組み合わせの集合を、O
p={(d,s),d∈D,s∈S}(p∈P)とする。日付dの時間帯sに作業種別wをするために必要な作業者の人数の集合を、e
dsw∈{0,1,・・・},d∈D,s∈S,w∈Wとする。作業者pに対する、1つの時間帯あたりの人件費の集合を、f
p∈{0,1,・・・},p∈Pとする。
【0063】
上記集合およびバイナリ変数を用いて、本実施例に係る第1の数理モデルの目的関数H
Oは、以下の式(5)によって表される。
【0064】
【数5】
【0065】
次に、本実施例に係る第1の数理モデルにおける制約条件を設定する。例えば、以下の4つの制約条件を設定する。
条件1:作業者1人に2つ以上の作業を同時に割り当てない。
条件2:各作業に必要な作業者の人数を満たす。
条件3:各作業者の一日の労働時間が、上限Lを超えない。
条件4:各作業者に対し、一週間に少なくとも1日は休日を割り当てる。
【0066】
上記条件1は、下記式(6)にて表現できる。
【0067】
【数6】
【0068】
上記条件2は、下記式(7)にて表現できる。
【0069】
【数7】
【0070】
上記条件3は、下記式(8)にて表現できる。
【0071】
【数8】
【0072】
上記条件4を定式化するために、新たなバイナリ変数a
pd,p∈P,d∈Dを定義する。a
pdは、作業者pが、日付dに作業を行う場合に1、そうでない場合に0をとるバイナリ変数である。
【0073】
上記バイナリ変数a
pdに対する制約条件を、下記式(9)および下記式(10)に沿って定義する。
【0074】
【数9】
【0075】
【数10】
【0076】
これより、上記条件4は、下記式(11)にて表現できる。
【0077】
【数11】
【0078】
ここで、上記式(11)におけるwkは週の集合である。集合wkに含まれる、wk
1、wk
2、…は、それぞれ、第1週、第2週、…のそれぞれの日付を含む集合である。
【0079】
これらの制約条件から、制約条件項L
lを決定する。条件1、条件2、条件3、および条件4のそれぞれに対応する制約条件項を、L
1、L
2、L
3、およびL
4とする。この場合、L
1、L
2、L
3、およびL
4は、それぞれ、以下の式(12)から式(15)に定式化される。
【0080】
【数12】
【0081】
【数13】
【0082】
【数14】
【0083】
【数15】
【0084】
なお、本実施形態に係る計算装置2を用いる場合、操作部6を用いて、上述した第1のハミルトニアンHの生成に使用する、要素の集合およびバイナリ変数を表現する各パラメータを入力してもよい。これにより、ハミルトニアン生成部16が、入力されたパラメータに基づいて、第1のハミルトニアンHに関するデータを生成する。
【0085】
<分割を用いない場合の解き方>
従来の手法により、上記第1の数理モデルに対する量子アニーリングを実行する場合、上記式(5)、および上記式(12)から式(15)までに基づいて、第1のハミルトニアンH=H
O+H
L=H
O+C
1L
1+C
2L
2+C
3L
3+C
4L
4を生成する。次いで、第1のハミルトニアンHからQUBO行列を生成し、アニーリングマシン4による量子アニーリングを実行する。
【0086】
この場合、作業者、日付、時間帯、および作業種別の要素の個数が増えた場合、バイナリ変数の数、および、各要素の相互作用の数も増える。これに伴い、数理モデルがより複雑化し、最適解が求まる蓋然性が低下する。さらに、バイナリ変数の数、および、各要素の相互作用の数が増えることにより、アニーリングマシン4が必要な量子ビットの結合状態の個数が増え、アニーリングマシン4による計算が不可能となる場合もある。
【0087】
さらに、上述した条件3、および条件4が守られた場合においても、L
3、L
4については、0とならない場合がある。このように、制約条件が複雑となると、扱うバイナリ変数の個数が増えるほど、制約条件式H
Lの各係数C
lのそれぞれの値の設定がより困難となる課題も存在する。
【0088】
<レイバースケジューリングにおけるハミルトニアンの分割>
本実施例においては、上述した第1のハミルトニアンHのうち、制約条件式H
Lの分割を行い、分割ハミルトニアンH
mを生成する。本実施例においては、はじめに、ステップS4において、固定変数決定部24が、制約条件式H
Lの変数のうち、固定する変数を日付dに決定する。固定変数を日付dとした理由は、制約条件のうち、複数の日付に渡って作用する制約条件が、条件4のみである点、および、日付dを除く変数の組み合わせを決定した場合に、条件4を満たす解が求まりやすい点が挙げられる。固定する変数の決定は、例えば、固定変数決定部24が、第1のハミルトニアンHに関するデータを解析することにより実行されてもよい。
【0089】
次いで、ステップS6を実行し、ハミルトニアン分割部26が、上述した制約条件式H
Lを、を、日付の集合Dの要素ごとに分割し、複数の分割ハミルトニアンH
mを生成する。分割ハミルトニアンH
mは、H
m=C
1L
1m+C
2L
2m+C
3L
3mと表される。例えば、L
11、L
21、およびL
31は、それぞれ、L
1、L
2、およびL
3に、d=1を代入した式となる。以上により、日付dの値ごとに分割ハミルトニアンH
mが生成される。
【0090】
次いで、ステップS8を実行し、生成された分割ハミルトニアンH
mのそれぞれに対する量子アニーリングを実行する。当該量子アニーリングの実行は、QUBO行列生成部20が、分割ハミルトニアンH
mに関するデータからQUBO行列を生成し、当該QUBO行列に関するデータをアニーリングマシン4に入力することにより実行されてもよい。これにより、本実施例においては、第1の数理モデルにいて、各日付における、どの作業者が、どの時間帯に、どの作業を行うかについての組み合わせが決定される。当該組み合わせは、上述した制約条件のうち、条件1、条件2、および条件3を満たす組み合わせとなる。
【0091】
<レイバースケジューリングモデルの補正>
次いで、ステップS10を実行し、補正部22が、ステップS8において得られた解に基づき、上述した第1の数理モデルを補正し、第2の数理モデルを生成する。本実施例においては、第1の数理モデルにおける、時間帯と当該時間帯に実施する作業の種別との組み合わせのみを、ステップS8において得られた組み合わせに固定したものを、第2の数理モデルとする。
【0092】
換言すれば、第2の数理モデルは、どの作業者が、どの日付に、どの時間帯に割り当てられた作業を行うのかについての組み合わせを決定するモデルである。時間帯と作業種別との組み合わせが固定されているため、第2の数理モデルは、第1の数理モデルと比較して、求めるべき組み合わせを構成する変数の個数が少なくなっている。
【0093】
<第2のレイバースケジューリングモデルの定式化>
次いで、ステップS12を実行し、ハミルトニアン生成部16が、第2の数理モデルの定式化により、第2のハミルトニアンH’を生成する。本実施例においては、第2の数理モデルの定式化を実行するために、集合およびバイナリ変数を以下に定義する。例えば、作業者pが日付dに作業を行う場合に1となり、そうでない場合に0となるバイナリ変数を、v
dp∈{0,1},d∈D,p∈Pとする。作業者pの日付dにおける、休憩を除いた作業種別の個数を、y
dp∈{0,1,・・・},d∈D,p∈Pとする。
【0094】
なお、本実施例においては、ステップS8にて算出された、第1の数理モデルにおける変数の組み合わせの一部に基づいて、第2の数理モデルにおける変数および集合を定義してもよい。例えば、ステップS8にて算出した解において、作業者pが日付dに割り当てられていた作業を、作業者p’が代わりに行う場合に1、そうでない場合に0となるバイナリ変数を、x’
p’dp,p’∈P,d∈D,p∈Pとする。また、x’
p’dpが1である場合に、無視することとなる、作業者P’が希望する休みの数を、z
p’dp∈{0,1,・・・},p’∈P,d∈D,p∈Pとする。
【0095】
第2の数理モデルにおいても、第1の数理モデルと同じく、総人件費を最低限に抑えつつ、かつ、各作業者の休日の希望、または休憩時間帯の希望を可能な限り実現したスケジュールを、レイバースケジューリングモデルを用いて決定することを目的とする。このため、第2の数理モデルにおける目的関数H’
Oは、人件費のコストと、各作業者の休日の希望、または休憩時間帯の希望を満たせなかった場合に増加するコストとの合計値とする。
【0096】
上記集合およびバイナリ変数を用いて、本実施例に係る第2の数理モデルの目的関数H’
Oは、以下の式(16)によって表される。
【0097】
【数16】
【0098】
次に、本実施例に係る第2の数理モデルにおける制約条件を設定する。本実施例においては、上述した第1の数理モデルにおける制約条件を変形した、以下の3つの制約条件を設定する。
条件1’:作業者1人に2つ以上の時間帯および作業の組み合わせを同時に割り当てない。
条件2’:時間帯と作業種別の組み合わせのそれぞれに、作業者を1人ずつ割り当てる。
条件3’:各作業者に対し、一週間に少なくとも1日は休日を割り当てる。
【0099】
上記条件1’から、制約条件項L’
1は、下記式(17)にて表現できる。
【0100】
【数17】
【0101】
上記条件2’から、制約条件項L’
2は、下記式(18)にて表現できる。
【0102】
【数18】
【0103】
上記条件3’から、制約条件項L’
3は、下記式(19)にて表現できる。
【0104】
【数19】
【0105】
ここで、上記式(19)における、d
1とは、各週における最初の日付を含む集合である。以上より、第2のハミルトニアンH’=H’
O+H’
L=H’
O+C
1L’
1+C
2L’
2+C
3L’
3が生成される。
【0106】
なお、ステップS12においては、操作部6を用いて、上述した第2のハミルトニアンH’の生成に使用する、要素の集合およびバイナリ変数を表現する各パラメータが入力されてもよい。これにより、ハミルトニアン生成部16が、入力されたパラメータと、補正部22により生成された第2の数理モデルの関するデータとに基づいて、第2のハミルトニアンH’に関するデータを生成する。
【0107】
<第2のレイバースケジューリングモデルの量子アニーリング工程>
次いで、ステップS14を実行し、生成された第2のハミルトニアンH’に対する量子アニーリングを実行する。当該量子アニーリングの実行は、QUBO行列生成部20が、第2のハミルトニアンH’に関するデータからQUBO行列を生成し、当該QUBO行列に関するデータをアニーリングマシン4に入力することにより実行されてもよい。これにより、本実施例においては、第2の数理モデルにおいて、各日付における、どの作業者が、どの時間帯に割り当てられた作業を行うかについての組み合わせが決定される。
【0108】
ステップS14において得られた解は、理想的には、第2の数理モデルにおける、各変数の組み合わせの最適解である。換言すれば、ステップS14において得られた解は、条件1’、条件2’、および条件3’を満たしつつ、目的関数H’
Oを最小化する、第2の数理モデルにおける変数の組み合わせとなる。
【0109】
ここで、第2の数理モデルにおいては、時間帯と作業種別との組み合わせが固定されている。また、第2の数理モデルにおける、時間帯と作業種別との組み合わせは、上述した、第1の数理モデルにおける、各制約条件を満たすように決定されている。このことから、ステップS14において得られた解が、第2の数理モデルにおける制約条件を全て満たす場合、当該解は、第1の数理モデルにおける制約条件を全て満たす解である。
【0110】
また、第2の数理モデルにおける目的関数H’
Oは、第1の数理モデルにおける目的関数H
Oと対応している。このため、ステップS14において得られた解が、目的関数H’
Oを最小化する場合、当該解は、時間帯と作業種別との組み合わせを、ステップS8において算出した解に基づき固定した場合において、目的関数H
Oを最小化する解である。したがって、第2の数理モデルの最適解は、少なくとも、第1の数理モデルの局所的な最適解となる。
<補記>
本実施例においては、数理モデルがレイバースケジューリングモデルである場合について説明した。しかしながら、これに限られず、本実施形態に係る計算方法は、数理モデルが複数の変数の組み合わせを求める問題であり、数理モデルにおける制約条件を表す関係式を、ある変数の値ごとに分割できる場合には、適用することができる。この場合、上述した各式における集合およびバイナリ変数の定義、あるいは、係数の値は、数理モデルに応じて適宜決定することが可能である。
【0111】
〔実施形態2〕
<再分割工程>
本実施形態に係る第1の数理モデルの計算方法について、
図3および
図4を参照してより詳細に説明する。
図3は、本実施形態に係る第1の数理モデルの計算方法を説明するためのフローチャートである。
図4は、
図3のフローチャートに示す計算方法を実行するための計算装置2Aのブロック図である。
【0112】
本実施形態に係る計算方法を実行するために使用する計算装置2Aは、前実施形態に係る計算装置2と比較して、分割部18が、さらに、分割ハミルトニアン評価部28を備えている点を除き、同一の構成を備えていてもよい。
【0113】
本実施形態においても、前実施形態と同じく、第1の数理モデルの系全体のエネルギーを最小化する、当該第1の数理モデルにおける変数の組み合わせを、アニーリングマシンによって計算する方法について説明する。
【0114】
本実施形態に係る第1の数理モデルの計算方法においては、前実施形態に係る、ステップS2からステップS6までを、前実施形態において説明した方法と同一の方法にて、順に実行する。これにより、本実施形態においても、第1の数理モデルから定式化した第1のハミルトニアンHのうち、制約条件式H
Lを分割した、複数の分割ハミルトニアンH
mが生成される。
【0115】
本実施形態においては、ステップS6に次いで、分割ハミルトニアンH
mのそれぞれに対する量子アニーリングが実行可能か否かを判定する(ステップS16)、判定工程を実施する。判定工程においては、例えば、分割ハミルトニアンH
mのそれぞれに含まれる変数がとり得る値の組み合わせの総数が、アニーリングマシン4によって計算可能な規模を超過しているか否かを判定する。判定工程は、例えば、分割ハミルトニアンH
mのそれぞれのデータを、分割ハミルトニアン評価部28がハミルトニアン分割部26から受信し、解析することにより実行される。
【0116】
ステップS16において、分割ハミルトニアンH
mのそれぞれに対する量子アニーリングの実行が困難であると判断した場合には、分割ハミルトニアンH
mのそれぞれをさらに分割する、再分割工程が実行される。
【0117】
はじめに、分割ハミルトニアン評価部28から固定変数決定部24に、分割ハミルトニアンH
mのそれぞれに対する量子アニーリングの実行が困難であるとの情報を送信する。当該情報を受けて、固定変数決定部24は、上述したステップS4と同一の手法により、分割ハミルトニアンH
mに含まれる全ての変数のうち、その値ごとに分割ハミルトニアンH
mを分割する変数の決定を行う。次いで、固定変数決定部24からハミルトニアン分割部26に、分割ハミルトニアンH
mに関するデータと、新たに決定された固定変数の情報とを入力し、分割後の式を出力させる。
【0118】
上記再分割工程により、分割ハミルトニアンH
mのそれぞれをさらに分割したハミルトニアンが生成される。分割ハミルトニアンH
mからさらに分割されたハミルトニアンは、分割ハミルトニアンH
mよりも、さらに変数が少ないため、変数がとり得る値の組み合わせの総数についても減少する。
【0119】
上述した判定工程および再分割工程とは、最終的に得られた分割後のハミルトニアンが、アニーリングマシン4によって計算可能となる規模まで分割されるまで、繰り返し実行されてもよい。最終的に得られた分割後のハミルトニアンが、アニーリングマシン4によって計算可能となった場合には、分割ハミルトニアン評価部28からQUBO行列生成部20にデータが送信され、QUBO行列の生成が実行される。これにより、上述したステップS8が実行される。
【0120】
この後、ステップS10からステップS14が、上述した手法と同一の手法により、順に実行される。これにより、本実施形態においても、第1の数理モデルにおいて、少なくとも局所的に最適性を有し、かつ、第1の数理モデルにおける制約条件を満たす解が得られる。
【0121】
本実施形態においては、分割ハミルトニアンH
mのそれぞれに対する量子アニーリングが実行可能か否かを判定する判定工程が実行される。また、判定工程において、分割ハミルトニアンH
mのそれぞれに対する量子アニーリングが実行可能ではないと判定された場合に、さらに分割ハミルトニアンH
mを分割する再分割工程が実行される。これにより、1回の分割によって量子アニーリングの実行が不可能な程度の規模を有する第1のハミルトニアンHに対しても、少なくとも局所的に最適性を有し、かつ、第1の数理モデルにおける制約条件を満たす解が得られる。
<ソフトウェアおよびプログラムによる実施例>
上述した各実施形態に係る分割部18、QUBO行列生成部20、および、補正部22は、計算装置2および計算装置2Aが備える集積回路、換言すれば、ICチップ等に形成された論理回路、換言すれば、ハードウェアによって実現してもよい。あるいは、分割部18、QUBO行列生成部20、および、補正部22は、ソフトウェアによって実現してもよい。
【0122】
上記各部がソフトウェアである場合、アニーリングマシン4と通信可能な端末において、各部の機能を実現するソフトウェアであるプログラムの命令を実行することにより、分割部18、QUBO行列生成部20、および、補正部22における処理が実行されてもよい。この端末は、例えば1つ以上のプロセッサを備えていると共に、上記プログラムを記憶した端末読み取り可能な記録媒体を備えている。上記端末において、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本開示の目的が達成される。したがって、上記プログラムは、分割部18、QUBO行列生成部20、および、補正部22における処理を実行する、計算プログラムとして機能する。
【0123】
上記プロセッサとしては、例えばCPU(Central Processing Unit)を用いることができる。上記記録媒体としては、「一時的でない有形の媒体」、例えば、ROM(Read Only Memory)等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムを展開するRAM(Random Access Memory)などをさらに備えていてもよい。
【0124】
上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記端末に供給されてもよい。なお、本開示の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【0125】
本開示は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本開示の技術的範囲に含まれる。