(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-11
(45)【発行日】2023-12-19
(54)【発明の名称】スケジュール作成支援装置及びスケジュール作成支援方法
(51)【国際特許分類】
G06Q 10/04 20230101AFI20231212BHJP
G06Q 10/0631 20230101ALI20231212BHJP
【FI】
G06Q10/04
G06Q10/0631
(21)【出願番号】P 2021013332
(22)【出願日】2021-01-29
【審査請求日】2023-02-03
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000176
【氏名又は名称】弁理士法人一色国際特許事務所
(72)【発明者】
【氏名】寺▲崎▼ 紘平
【審査官】松田 岳士
(56)【参考文献】
【文献】国際公開第2020/203300(WO,A1)
【文献】特開2021-144511(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
所定業務で協働する各人員の所定期間における総勤務長、前記期間における各タイミングでの小数を含みうる必要人数、および前記業務に前記各人員を割り当てる際の制約条件、の各情報を格納した記憶部と、
前記期間における前記総勤務長、前記必要人数、および前記制約条件が満たされる際に最小となる制約条件用関数、を項として含む目的関数に関して、前記各人員の稼働率をスピンとし、前記制約条件用関数における変数間の感応度を前記スピンの間の相互作用の強度として設定したイジングモデルを演算する演算部とを有し、
前記演算部は前記演算の結果に基づき、前記所定期間の前記各タイミングにおける前記各人員の稼働率を規定したスケジュールを所定装置に出力するものである、
ことを特徴とするスケジュール作成支援装置。
【請求項2】
前記記憶部は、
前記期間における各業務の必要スキルごとの、各タイミングでの小数を含みうる必要人数及び、前記各人員が保有するスキルの情報を更に格納し、
前記演算部は、
期間における前記総勤務長、前記必要スキルごとの前記必要人数、および前記制約条件が満たされる際に最小となる制約条件用関数、を項として含む目的関数に関して、前記各人員のスキルごとの稼働率をスピンとし、前記制約条件用関数における変数間の感応度を前記スピンの間の相互作用の強度として設定したイジングモデルを演算し、
前記演算の結果に基づき、前記所定期間の前記各タイミングにおける前記必要スキルごとの前記各人員の稼働率を規定したスケジュールを所定装置に出力するものである、
ことを特徴とする請求項1に記載のスケジュール作成支援装置。
【請求項3】
前記演算部は、
重要スキルを必要とする希少業務に関する前記制約条件である、前記希少業務の対応人員の必要人数、及び当該希少業務への対応時間帯について、前記制約条件用関数を前記目的関数の項に含め、前記イジングモデルを演算するものである、
ことを特徴とする請求項2に記載のスケジュール作成支援装置。
【請求項4】
前記記憶部は、
前記各人員が保有するスキルごとの熟練度の情報を更に保持し、
前記演算部は、
前記目的関数に関して、前記各人員のスキルごとの稼働率をスピンとし、前記制約条件用関数における変数間の感応度に、前記各人員のスキルごとの熟練度を乗じたものを、前記スピンの間の相互作用の強度として設定したイジングモデルを演算し、
前記演算の結果に基づき、前記所定期間の前記各タイミングにおける前記必要スキルごとの前記熟練度を加味して前記各人員の稼働率を規定したスケジュールを所定装置に出力するものである、
ことを特徴とする請求項2に記載のスケジュール作成支援装置。
【請求項5】
前記記憶部は、
前記各人員が保有するスキルごとの熟練度の情報を更に保持し、
前記演算部は、
前記目的関数に関して、前記各人員のスキルごとの稼働率及び熟練度をスピンとし、前記制約条件用関数における変数間の感応度を前記スピンの間の相互作用の強度として設定したイジングモデルを演算し、
前記演算の結果に基づき、前記所定期間の前記各タイミングにおける前記必要スキルごとの前記熟練度を加味して前記各人員の稼働率を規定したスケジュールを所定装置に出力
するものである、
ことを特徴とする請求項2に記載のスケジュール作成支援装置。
【請求項6】
前記イジングモデルに関して組合せ最適化問題を解くCMOSアニーリングマシンであることを特徴とする請求項1に記載のスケジュール作成支援装置。
【請求項7】
所定業務で協働する各人員の所定期間における総勤務長、前記期間における各タイミングでの小数を含みうる必要人数、および前記業務に前記各人員を割り当てる際の制約条件、の各情報を格納した記憶部を備える情報処理装置が、
前記期間における前記総勤務長、前記必要人数、および前記制約条件が満たされる際に最小となる制約条件用関数、を項として含む目的関数に関して、前記各人員の稼働率をスピンとし、前記制約条件用関数における変数間の感応度を前記スピンの間の相互作用の強度として設定したイジングモデルを演算し、
記演算の結果に基づき、前記所定期間の前記各タイミングにおける前記各人員の稼働率を規定したスケジュールを所定装置に出力する、
ことを特徴とするスケジュール作成支援方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、スケジュール作成支援装置及びスケジュール作成支援方法に関するものである。
【背景技術】
【0002】
所定条件下で所望のパラメータを最大または最小とする解を探索する、いわゆる組合せ最適化問題の概念は、作業員や装置といった各種リソースの配置や稼働スケジュールの最適化、交通渋滞解消、グローバルサプライチェーンにおける物流コスト低減、など実社会における複雑な問題にも適用されうる。
【0003】
一方、そうした問題においては解候補が爆発的に多くなるため、スーパーコンピュータや量子コンピュータなど相応の計算能力を有した計算機でなければ、当該問題を実用的な時間内に解くことが難しい。
【0004】
例えば、量子コンピュータに関連する従来技術としては、全数探索を必要とするような逆問題や組み合わせ最適化問題に対して高速演算を可能にする計算機に関し、スピンを演算における変数とし、解こうとする問題をスピン間相互作用とスピンごとに作用する局所場で設定し、また、時刻t=0において外部磁場により全スピンを一方向に向かせ、時刻t=τで外部磁場がゼロになるように外部磁場を徐々に小さくし、また、各スピンは時刻tにおける各サイトの外部磁場及びスピン間相互作用のすべての作用で決まる有効磁場に従い向きが定まるとして時間発展させ、その際、スピンの向きが有効磁場に完全に揃うのではなく、量子力学的に補正された向きとすることにより、系が基底状態をほぼ維持するようにする技術(特許文献1参照)などが提案されている。
【0005】
また、人員の稼働スケジュール生成に関する従来技術として、スケジュール可能なコミュニケータの中から、コミュニケータのスキルに基づいて、予想される問い合わせ内容に見合うスキルを有するコミュニケータのスケジュール作成を目的とした、コミュニケータのスケジュールを作成する方法(特許文献2参照)などが提案されている。
【0006】
この技術は、コンピュータがコンタクトセンターの複数のコミュニケータのスケジュールを作成する方法であって、前記コンピュータは、少なくとも前記複数のコミュニケータのそれぞれのスキルを示すデータを記憶部に記憶しており、前記コンタクトセンターの管理者から、業務の時間帯毎に前記コミュニケータの複数のスキルについてそれぞれ配置すべき前記コミュニケータの人数の指定入力を受け付けるステップと、前記指定入力を受け付けた人数を示すデータを前記業務の時間帯毎に前記記憶部に更に記憶するステップと、前記業務の時間帯毎に、前記記憶した人数を示すデータに基づいて、前記複数のコミュニケータのスケジュールを作成するステップと、を含むものである。
【0007】
また、保育施設等の施設における突発的な勤務シフトの変更を容易に行うことを課題とした、対象期間に対して、当該対象期間に勤務する第一人員を割り当てたシフト情報を記憶するシフト情報記憶部と、前記シフト情報の前記対象期間に対して、前記第一人員の予備の第二人員を所定人数割り当てるシフト作成部と、を有するシフト管理装置(特許文献3参照)なども提案されている。
【先行技術文献】
【特許文献】
【0008】
【文献】WO2016/157333
【文献】特開2008-186203号公報
【文献】特開2015-212881号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
ところが、多くの人員が協働する際の全体スケジュールの作成業務に関して、上述のごとき量子コンピュータ技術を適宜に適用する形態は提案されていない。
【0010】
例えば、コールセンタにおけるスケジュール作成業務では、数百人規模のオペレータに関して週間、月間のシフトスケジュールを作成する必要がある。現状では、経験のある担当者が、予め決まったルール(例:早番、遅番といったシフトパターンを、該当期間に関して固定的な順序、頻度で組合せて配置する)の下、人力でスケジュール作成を行っていた。
【0011】
ただし、こうしたスケジュール作成に先立ち、機械学習などの適宜なアルゴリズムを採用して、時間帯ごとの業務量や必要な人員数を推定することは可能である。
【0012】
機械学習により得られたモデルに基づいて、時間帯ごとの必要な人員数を推定するとすれば、その値は、人間が経験から決める整数値ではなく、業務量を確実に踏まえることで決まる小数となるケースも出てくる。
【0013】
そのようにして、或る時間帯における或る業務の必要人員数が「3.4人」と推定できたとする。その場合、スケジュール作成担当者や現場監督者の判断としては、対応スキルを持つ「4人」のスタッフを配置し対応するのがこれまでの運用方法であった。つまり、機械学習等により高精度に推定され、より実際に近いと思われるニーズを超えて、冗長な人員配置が頻繁に行われていた。
【0014】
また、そうした運用下で稼働する各スタッフは、複数スキルを保有している場合も多いが、当該スタッフをその保有スキルに応じて効率的に稼働させるスケジュールの作成技術は提案されていない。現場監督者が、自らの裁量によって当該スタッフを複数業務に割り当てることがあるとしても、あくまでも勘や経験に基づくものであった。
【0015】
そこで本発明の目的は、各時間帯の各業務に必要な人員を無駄なく配置したスケジュールの作成を効率的に行う技術を提供することにある。
【課題を解決するための手段】
【0016】
上記課題を解決する本発明のスケジュール作成支援装置は、所定業務で協働する各人員の所定期間における総勤務長、前記期間における各タイミングでの小数を含みうる必要人数、および前記業務に前記各人員を割り当てる際の制約条件、の各情報を格納した記憶部と、前記期間における前記総勤務長、前記必要人数、および前記制約条件が満たされる際に最小となる制約条件用関数、を項として含む目的関数に関して、前記各人員の稼働率をスピンとし、前記制約条件用関数における変数間の感応度を前記スピンの間の相互作用の強度として設定したイジングモデルを演算する演算部とを有し、前記演算部は前記演算の結果に基づき、前記所定期間の前記各タイミングにおける前記各人員の稼働率を規定したスケジュールを所定装置に出力するものである、ことを特徴とする。
【0017】
また、本発明のスケジュール作成支援方法は、所定業務で協働する各人員の所定期間における総勤務長、前記期間における各タイミングでの小数を含みうる必要人数、および前記業務に前記各人員を割り当てる際の制約条件、の各情報を格納した記憶部を備える情報処理装置が、前記期間における前記総勤務長、前記必要人数、および前記制約条件が満た
される際に最小となる制約条件用関数、を項として含む目的関数に関して、前記各人員の稼働率をスピンとし、前記制約条件用関数における変数間の感応度を前記スピンの間の相互作用の強度として設定したイジングモデルを演算し、記演算の結果に基づき、前記所定期間の前記各タイミングにおける前記各人員の稼働率を規定したスケジュールを所定装置に出力する、ことを特徴とする。
【発明の効果】
【0018】
本発明によれば、各時間帯の各業務に必要な人員を無駄なく配置したスケジュールの作成を効率的に行うことが可能となる。
【図面の簡単な説明】
【0019】
【
図1】本実施形態のスケジュール作成支援装置を含むネットワーク構成図である。
【
図2】本実施形態におけるスケジュール作成支援装置のハードウェア構成例を示す図である。
【
図3】本実施形態のタイミングチャート例を示す図である。
【
図4】本実施形態におけるフロー例を示す図である。
【
図5】本実施形態の基本情報テーブルのデータ構成例を示す図である。
【
図6】本実施形態の制約条件テーブルのデータ構成例を示す図である。
【
図7】本実施形態の制約条件テーブルのデータ構成例を示す図である。
【
図8】本実施形態におけるスケジュール作成支援方法のフロー例を示す図である。
【
図10】本実施形態における画面例を示す図である。
【
図11】本実施形態における画面例を示す図である。
【
図12A】本実施形態における画面例を示す図である。
【
図12B】本実施形態における画面例を示す図である。
【
図13】本実施形態におけるCTIシステムの例を示す図である。
【
図14】本実施形態における管理テーブルの例を示す図である。
【
図15】本実施形態におけるフロー例を示す図である。
【発明を実施するための形態】
【0020】
<アニーリングマシンについて>
上述の特許文献1にも示すように、本出願人は量子コンピューティング技術を開発し、例えば、ビッグデータに基づく全数探索問題(組合せ最適化問題の概念含む)における諸問題の解決を図ってきた。
【0021】
こうした全数探索問題に対して、一般的には量子コンピュータヘの期待が大きい。量子コンピュータは、量子ビットと呼ばれる基本素子からなり"0"と"1"を同時に実現する。そのためすべての解候補を初期値として同時に計算可能であり、全数探索を実現しうる可能性を持っている。しかし、量子コンピュータは全計算時間に亘って量子コヒーレンスを維持する必要がある。
【0022】
こういった中で注目されるようになってきたのが断熱量子計算と呼ばれる手法である(参考文献:E.Farhi,et al.,"A quantum adiabatic
evolution al gor ithm applied to random
instances of an NP-complete problem," S
cience292,472(2001).)。
【0023】
この方法は、ある物理系の基底状態が解になるように問題を変換し、基底状態を見つけることを通して解を得ようとするものである。
【0024】
問題を設定した物理系のハミルトニアンをH^pとする。但し、演算開始時点ではハミルトニアンをH^pとするのではなく、それとは別に基底状態が明確で準備しやすい別のハミルトニアンH^0とする。次に十分に時間を掛けてハミルトニアンをH^0からH^pに移行させる。十分に時間を掛ければ系は基底状態に居続け、ハミルトニアンH^pの基底状態が得られる。これが断熱量子計算の原理である。計算時間をτとすればハミルトニアンは式(1)となり、
【0025】
【0026】
式(2)のシュレディンガー方程式に基づいて時間発展させて解を得る。
[式2]
【0027】
断熱量子計算は全数探索を必要とする問題に対しても適用可能で、一方向性の過程で解に到達する。しかし、計算過程が式(2)のシュレディンガー方程式に従う必要があるならば、量子コンピュータと同様に量子コヒーレンスの維持が必要になる。
【0028】
但し、量子コンピュータが1量子ビットあるいは2量子ビット間に対するゲート操作を繰り返すものであるのに対して、断熱量子計算は量子ビット系全体に亘って一斉に相互作用させるものであり、コヒーレンスの考え方が異なる。
【0029】
例えば、ある量子ビットヘのゲート動作を考えてみる。この時、もしその量子ビットと他の量子ビットとで相互作用があれば、それはディコヒーレンスの原因になるが、断熱量子計算ではすべての量子ビットを同時に相互作用させるので、この例のような場合にはディコヒーレンスにならない。この違いを反映して断熱量子計算は量子コンピュータに比べてディコヒーレンスに対して頑強であると考えられている。
【0030】
以上述べたように、断熱量子計算は全数探索を必要とするような難問に対して有効である。そして、スピンを演算における変数とし、解こうとする問題をスピン間相互作用とスピンごとに作用する局所場で設定する。
【0031】
時刻t=0において外部磁場により全スピンを一方向に向かせ、時刻t=τで外部磁場がゼロになるように外部磁場を徐々に小さくする。
【0032】
各スピンは、時刻tにおける各サイトの外部磁場及びスピン間相互作用のすべての作用で決まる有効磁場に従い、向きが定まるとして時間発展させる。
【0033】
その際、スピンの向きが有効磁場に完全に揃うのではなく、量子力学的に補正された向きとすることにより、系が基底状態をほぼ維持するようにする。
【0034】
また、時間発展の際に各スピンを元の向きに維持する項(緩和項)を有効磁場に加え、解の収束性を向上させる。
【0035】
本実施形態におけるスケジュール作成支援装置としては、上述の断熱量子計算を行うアニーリングマシンを想定するが、勿論これに限定するものではなく、組合せ最適化問題を本発明のスケジュール作成支援方法に沿って適宜に解くことが可能なものであればいずれも適用可能である。
【0036】
具体的には、アニーリング方式において電子回路(デジタル回路など)で実装するハードウェアだけでなく、超伝導回路などで実装する方式も含む。また、アニーリング方式以外にてイジングモデルを実現するハードウェアでもよい。例えばレーザーネットワーク方式(光パラメトリック発振)・量子ニューラルネットワークなども含む。また、前述した通り一部の考え方が異なるものの、イジングモデルで行う計算をアダマールゲート、回転ゲート、制御NOTゲートといったゲートで置き換えた量子ゲート方式においても、本発明を
実現することができる。
【0037】
<ネットワーク構成>
以下に本発明の実施形態について図面を用いて詳細に説明する。
図1は、本実施形態のスケジュール作成支援装置100を含むネットワーク構成図である。
図1に示すスケジュール作成支援装置100は、各時間帯の各業務に必要な人員を無駄なく配置したスケジュールの作成を効率的に行うコンピュータ装置であり、具体的には、一例としてアニーリングマシンを想定する。
【0038】
ただし、アニーリングマシンの概要は特許文献1に基づき既に述べたとおりであり、その具体的な構成や動作等の詳細については適宜省略する(以下同様)。
【0039】
本実施形態のスケジュール作成支援装置100は、インターネットなどの適宜なネットワーク10を介して、ユーザ端末200とデータ通信可能に接続されている。
【0040】
上述のユーザ端末200は、スケジュール作成支援装置100からスケジュールの提案を受ける端末である。
【0041】
このユーザ端末200のユーザとしては、具体的には、多くのオペレータを抱えてコールセンタ業務を遂行する事業者で、金融機関や保険会社、或いは大手メーカーといった組織を想定できる。或いは、多くの看護士や介護スタッフを抱えて患者等の看護業務や介護業務を遂行する、医療機関や介護事業者も想定できる。
【0042】
いずれにしても、相応規模の人員であってそれぞれ1以上のスキルを有する者を日付や時間帯ごとに必要数だけ割り当てて、全体として過不足無く業務を遂行しようとする事業者であれば、上述のユーザに該当しうる。つまり、そうした事業者の業務に関しては、本発明が適用可能であると言える。
【0043】
具体例として想定できる、例えば銀行のコールセンタにおけるスケジュール作成に際しては、所定の経験を持った担当者が、数百人規模の全オペレータの月間シフトスケジュールを人力で作成しているのが現実であった。つまり当該業務は属人化しがちであり、また人力での作業である。
【0044】
ただし、こうしたスケジュール作成に先立ち、機械学習などの適宜なアルゴリズムを採用して、時間帯ごとの業務量や必要な人員数を推定することは可能である。
【0045】
例えば、各時間帯に発生した過去の業務量に基づき、日時や曜日、天候など種々の要因と業務量との相関関係を特定し、これに基づき将来の各時間帯に生じるであろう業務量やその内容を推定する。また、当該業務量をこなすために必要となる人員数については、例えば、或るスキルを持つスタッフ一人当たりの業務処理量で、当該スキルが必要な業務の業務量を除算することで算定できる。その結果、必要な人員数は整数ではなく小数となるケースも出てくる。
【0046】
或る時間帯における或る業務の必要人員数が「3.4人」と推定できたとすると、スケジュール作成担当者や現場監督者の判断としては、対応スキルを持つ「4人」のスタッフを配置し対応するのがこれまでの運用方法であった。つまり実際のニーズを超えた冗長な人員配置が頻繁に行われていた。
【0047】
また、そうした運用下で稼働する各スタッフは、複数スキルを保有している場合も多いが、当該スタッフをその保有スキルに応じて効率的に稼働させるスケジュールの作成技術は提案されていない。現場監督者が、自らの裁量によって当該スタッフを複数業務に割り当てることがあるとしても、あくまでも勘や経験に基づくものであった。
【0048】
上記の障壁は、数学的な困難さおよびその数学的困難さを解決する技術不在(厳密には未成熟)に起因する。例えば、表計算ソフトウェアは、線形の制約条件であれば数学的に高速に解けるものであるが、非線形の制約条件を解くには膨大な時間がかかるという性質を持つ。
【0049】
このように従来であれば、スケジュール作成に際し、要素すなわち各人員などに関する非線形の制約条件の増加に対して計算量が急激に増加し、計算完了までに長時間を要するが、アニーリングマシンを使用したスケジュール作成支援装置100を採用することで、要素の増加にさほど依存せず計算を行うことが可能となる。
【0050】
<ハードウェア構成>
また、本実施形態のスケジュール作成支援装置100のハードウェア構成は、
図2に以下の如くとなる。
【0051】
すなわちスケジュール作成支援装置100は、記憶部101、メモリ103、演算部104、および通信部105、を備える。
【0052】
このうち記憶部101は、SSD(Solid State Drive)やハードディスクドライブなど適宜な不揮発性記憶素子で構成される。
【0053】
また、メモリ103は、RAMなど揮発性記憶素子で構成される。
【0054】
また、演算部104は、記憶部101に保持されるプログラム102をメモリ103に読み出すなどして実行し装置自体の統括制御を行なうとともに各種判定、演算及び制御処理を行なうCPUである。
【0055】
また、通信部105は、ネットワーク10と接続してユーザ端末200との通信処理を担うネットワークインターフェイスカード等を想定する。
【0056】
なお、スケジュール作成支援装置100がスタンドアロンマシンである場合、ユーザからのキー入力や音声入力を受け付ける入力装置、処理データの表示を行うディスプレイ等の出力装置、を更に備えるとすれば好適である。
【0057】
また、記憶部101内には、本実施形態のスケジュール作成支援装置として必要な機能を実装する為のプログラム102に加えて、基本情報テーブル125および制約条件テーブル126が少なくとも記憶されている。ただし、これらテーブルについての詳細は後述する。
【0058】
また、プログラム102、すなわちアニーリングマシンとしての動作を実装するアルゴリズムは、解くべき課題であるイジングモデル1021の情報を保持する。このイジングモデル1021は、情報提供の対象となる業務や人員、およびそれらに影響を与える他の各種情報に基づき管理者等が予め設定しておくものとなる。
【0059】
なお、アニーリングマシンの概要にて述べた断熱量子計算は、別名で量子アニールとも呼ばれ、古典的な焼きなましの概念を量子力学に発展させたものである。即ち、断熱量子計算は本来古典的動作が可能で、高速性や解の正解率に関しで性能を向上させるために量子力学的効果が付加されたものとも解釈できる。そこで本発明では、演算部そのものは古典的とし、演算過程に量子力学的に定まるパラメータを導入することにより、古典的であるが量子力学的な効果を含んだ演算方法・装置を実現する。ただし、演算部を量子コンピュータで構成する形態についても勿論採用しうる。
【0060】
以上の概念に基づき、以下の例では断熱量子計算との関連性を説明しながら解としての基底状態を得る古典的アルゴリズムと、それを実現するための装置に関して述べる。
【0061】
こうした前提でのスケジュール作成支援装置100は、N個の変数sj z(j=1,2,…,N)が-1≦sj z≦1の値域を取り、局所場gjと変数間相互作用Jij(i,j=1,2,…,N)によって課題の設定がなされる。
【0062】
また演算部104では、時刻をm分割して離散的にt=t0(t0=0)からtm(tm =τ)まで演算するものとし、各時刻tkにおける変数sjZ(tk)を求めるに当たり、前時刻tk-1の変数Sjz(tk-1)(i=1,2,..,N)の値と緩和項の係数9pinaあるいは9pinbを用いてBjz(tk)={ΣiJijsiz(tk-1)+gj+sgn(sjz(tk-1))・9pina}・tk/τあるいはBjz(tk)={ΣiJiJsjz(tk-1)+gj+9pinb .sjZ(tk-1)}・tk/τを求め、上述の変数sjz(tk)の値域が-1≦sjz(tk)≦1になるように関数fを定めてsjz(tk)=f(Bjz(tk),tk)とし、時刻ステップをt=t0からt=tmに進めるにつれて上述の変数sjzを-1あるいは1に近づけ、最終的にsjz<0ならば、sjzd=-1、Sjz>0ならば、sjzd=1として解を定める。ただし、最終的な解sjzdが実数であることが適切である場合は、sjzdを[-1,1]を値域とする実数として解を定めてもよい。
【0063】
係数gpinbは、例えば|Jij|の平均値の50%から200%の値である。また、課題設定の局所場gjに関して、あるサイトj’に対してのみ補正項δgj’をgj’に加え、該サイトj’に対してのみgj’の大きさを大きくすることもできる。また、補正項δgj’は、例えば|Jij|の平均値の10%から100%の値である。
【0064】
続いて、量子力学的な記述から出発して古典的な形式に移行することを通して、アニーリングマシンの基本的原理を述べる。
【0065】
式(3)で与えられるイジングスピン・ハミルトニアンの基底状態探索問題はNP困難と呼ばれる分類の問題を含み、有用な問題であることが知られている(文献:F. Barahona, ”On the computational comp lex ity of Isingspin glass models,” J. Phys.
A: Math. Gen. 15, 3241 (1982).)。
【0066】
【0067】
Jij及びgjが課題設定パラメータであり、σ^Zはパウリのスピン行列のz成分で±1の固有値を取る。i,jはスピンのサイトを表す。イジングスピンとは値として±1だけを取りうる変数のことで、式(3)ではσ^zの固有値が±1であることによりイジングスピン系となっている。
【0068】
式(3)のイジングスピンは文字通りのスピンである必要はなく、ハミルトニアンが式(3)で記述されるのであれば物理的には何でも良い。
【0069】
例えば、各人員のスキルごとの各稼働率及び各熟練度をスピン±1に対応付けることや、ロジック回路のhighとlowを±1に対応付けることも可能であるし、光の縦偏波と横偏波を±1に対応付けることや0,πの位相を±1に対応付けることも可能である。
【0070】
ここで例示する方法では、断熱量子計算と同様に、時刻t=0において式(4)で与えられるハミルトニアンの基底状態に演算系を準備する。
【0071】
【0072】
γは全サイトjに一様に掛かる外場の大きさで決まる比例定数であり、σ^jxは、パウリのスピン行列のx成分である。演算系がスピンそのものであれば、外場とは磁場を意味する。
【0073】
式(4)は、横磁場を印加したことに相当し、すべてのスピンがx方向を向いた場合(γ>0)が基底状態である。問題設定のハミルトニアンはz成分のみのイジングスピン系として定義されたが、式(4)にはスピンのx成分が登場している。従って、演算過程でのスピンはイジングではなくベクトル的(ブロッホベクトル)である。t=0では式(4)のハミルトニアンでスタートしたが、時刻tの進行と共に徐々にハミルトニアンを変化させ、最終的には式(3)で記述されるハミルトニアンにしてその基底状態を解として得る。
【0074】
【0075】
ここでσ^はパウリのスピン行列の3成分をベクトルとして表示している。基底状態は
スピンが磁場方向を向いた場合で、<・>を量子力学的期待値として<σ^>=B/|B|と書ける。断熱過程では常に基底状態を維持しようとするので、スピンの向きは常に磁場の向きに追従する。
【0076】
以上の議論は多スピン系にも拡張できる。t=0ではハミルトニアンが式(4)で与えられる。これは全スピンに対して一様に磁場BjX =γが印加されたことを意味する。t>0では、磁場のx成分が徐々に弱まりBjX =γ(1-t/τ)である。z成分に関してはスピン間相互作用があるために有効磁場としては式(6)になる。
【0077】
【0078】
スピンの向きは<σ^z>/<σ^X>で規定できるので、スピンの向きが有効磁場に追従するならば式(7)によりスピンの向きが定まる。
【0079】
【0080】
式(7)は量子力学的記述であるが期待値を取っているので、式(1)~(6)とは異なり古典量に関する関係式である。
【0081】
古典系では量子力学の非局所相関(量子縫れ)がないので、スピンの向きはサイトごとの局所場により完全に決まるはずであり、式(7)が古典的スピン系の振る舞いを決定する。量子系では非局所相関があるために式(7)は変形されることになるが、それに関しては後述することとし、ここでは発明の基本形態を述べるために式(7)で定まる古典系について記述する。
【0082】
図3にスピン系の基底状態を得るためのタイミングチャート(1)を示す。
図3の記述は古典量に関するものなので、サイトjのスピンをσ^
jではなくsjにより表した。またそれに伴い、
図3の有効磁場Bjは古典量である。t=0において全サイトで右向きの有効磁場Bjが印加され、全スピンsjが右向きに初期化される。
【0083】
時間tの経過に従い、徐々にz軸方向の磁場とスピン間相互作用が加えられ、最終的にスピンは+z方向あるいは-z方向となって、スピンSjのz成分がsjz=+1あるいは-1となる。時間tは連続的であることが理想であるが、実際の演算過程では離散的にして利便性を向上させることもできる。以下では離散的な場合を述べる。
【0084】
ここで例示するスピンはz成分だけでなくx成分が加わっているためにベクトル的なスピンになっている。
図3からもベクトルとしての振る舞いが理解できる。ここまでy成分が登場してこなかったが、それは外場方向をxz面に取ったために外場のy成分が存在せず、従って<σ^
Y>=0となるためである。
【0085】
演算系のスピンとしては大きさ1の3次元ベクトル(これをブロッホベクトルと呼び、球面上の点で状態を記述できる)を想定しているが、図に示す例における軸の取り方では2次元のみを考慮すればよい(円上の点で状態を記述できる)。
【0086】
またγは一定なのでBjx(t)>0(γ>0)あるいはBjx(t)<0(γ<0)が成り立つ。この場合、2次元スピンベクトルは半円のみで記述できることになり、[-1,1]でsjzを指定すればsjzの1変数で2次元スピンベクトルが定まる。従って、ここでの例では、スピンは2次元ベクトルであるが、値域を[-1,1]とする1次元連続変数として表記することもできる。
【0087】
図3のタイミングチャートでは時刻t=tkにおいてサイトごとに有効磁場を求め、その値を用いて式(8)によりt=tkにおけるスピンの向きを求める。
【0088】
【0089】
式(8)は式(7)を古典量に関する表記に書き改めたものなので<・>の記号が付いていない。次に、t=tk+lの有効磁場をt=tkにおけるスピンの値を用いて求める。各時刻の有効磁場を具体的に書けば式(9)及び(10)となる。
【0090】
【0091】
【0092】
以下、
図3のタイミングチャートで模式的に示した手順に従い、スピンと有効磁場を交互に求めていく。
【0093】
古典系ではスピンベクトルの大きさは1である。この場合スピンベクトルの各成分は、tanθ=Bjz(tk)/Bjx(tk)で定義される媒介変数θを用いてsjz(tk)=sinθ、sjx(tk)=COSθと記述される。
【0094】
これを書き直せば、sjz(tk)=sin(arctan(Bjz(tk)/Bjx(tk)))、sjx(tk)=cos(arctan(Bjz(tk)/Bjx(tk)))である。
【0095】
式(9)から明らかなようにBjx(tk)の変数は、tkのみであり、τとγは定数である。 従って、Sjz(tk)=sin(arctan(Bjz(tk)/Bjx(tk)))及びsjx(tk)=cos(arctan(Bjz(tk)/Bjx(tk)))はBjz(tk)とtkを変数とする関数としてsjz(tk)=f1(Bjz(tk),tk)及びsjx(tk)=f2( Bjz(tk),tk)のような一般化した表現もできる。
【0096】
スピンを2次元ベクトルとして記述しているので、sjz(tk)とsjx(tk)の2成分が登場しているが、Bjz(tk)を式(10)に基づき決定するならばsjx(tK)は必要ない。
【0097】
これは、[-1,1]を値域とするsjz(tk)のみでスピン状態を記述できることに対応している。最終的な解sjzdは、sjzd=-1or1で取り出すことが一般的であり、sjz(τ)>0ならばsjzd=1、sjz(τ)<0ならばsjzd=-1とする。ただし、最終的な解sjzdが実数であることが適切である場合は、sjzdを[-1,1]を値域とする実数として取り出してもよい。
【0098】
図4に、上述のアルゴリズムをフローチャートにまとめたものを示す。ここでtm=τである。
図4のフローチャートの各ステップs1~s9は、時間t=0からt=τに到る
図3のタイミングチャートの、ある時刻での処理に対応している。すなわち、フローチャートのステップs2、s4、s6がそれぞれ、t=t1,tk+l,tmにおける上記の式(9)及び(10)に対応している。最終的な解はステップs8において、sj
z<0ならばsj
zd=-1、sj
z>0ならば、sj
zd=1とすることにより定める(s9)。ただし、最終的な解が実数であることが適切である場合は、sj
zdを[-1,1]を値域とする実数として定めてもよい。なお、
図4のフローでは一般的な例について示し、実数として取り出す旨の記載は省略している。
【0099】
ここまでは課題が式(3)で表現された場合に如何に解かれるかを示した。次に具体的課題が如何に局所場gjと変数間相互作用Jij(i,j=1,2,…,N)を含む式(3)で表現されるかに関して具体例を挙げて説明する。
【0100】
ここでの具体的課題すなわちイジングモデル1021は、例えば、コールセンタ業務に携わるオペレータ各々の所定月における総勤務日数、当該月における各日での小数を含みうる必要人数、およびコールセンタ業務に各オペレータを割り当てる際の制約条件、の各情報をベースに、当該月における総勤務日数、当該月における各日の上述の必要人数、および上述の制約条件が満たされる際に最小となる制約条件用関数、を項として含む目的関数に関して、各オペレータの稼働率をスピンとし、制約条件用関数における変数間の感応度をスピンの間の相互作用の強度として設定したイジングモデルを想定する。
【0101】
この場合、局所場gjは、上述の当該月における総勤務日数、当該月における各日の小数を含みうる必要人数、および上述の制約条件が満たされる際に最小となる制約条件用関数、における変数の値が目的関数へ与える影響度として設定されることを想定する。
【0102】
なお、イジングモデルの他の例としては、例えば、コールセンタ業務に携わるオペレータ各々の所定月における総勤務日数、当該月における各日での必要スキルごとの小数を含みうる必要人数、およびコールセンタ業務に各オペレータを割り当てる際の制約条件、の各情報をベースに、当該月における総勤務日数、当該月における各日の上述の必要人数、および上述の制約条件が満たされる際に最小となる制約条件用関数、を項として含む目的関数に関して、各オペレータのスキルごとの稼働率をスピンとし、制約条件用関数におけ
る変数間の感応度をスピンの間の相互作用の強度として設定したイジングモデルを想定することもできる。
【0103】
この場合、局所場gjは、上述の当該月における総勤務日数、当該月における各日での必要スキルごとの小数を含みうる必要人数、および上述の制約条件が満たされる際に最小となる制約条件用関数、における変数の値が目的関数へ与える影響度として設定されることを想定する。
【0104】
また、イジングモデルの他の例としては、例えば、重要スキルを必要とする希少業務に関する制約条件である、当該希少業務の対応人員の必要人数、及び当該希少業務への対応時間帯について、制約条件用関数を項として含む目的関数に関して、各オペレータのスキルごとの稼働率をスピンとし、制約条件用関数における変数間の感応度をスピンの間の相互作用の強度として設定したイジングモデルを想定することもできる。
【0105】
この場合、局所場gjは、上述の当該月における総勤務日数、当該月における各日での必要スキルごとの小数を含みうる必要人数、希少業務の対応人員の必要人数、当該希少業務への対応時間帯、および上述の制約条件が満たされる際に最小となる制約条件用関数、における変数の値が目的関数へ与える影響度として設定されることを想定する。
【0106】
また、イジングモデルの他の例としては、例えば、各人員のスキルごとの稼働率及び熟練度をスピンとし、上述の制約条件用関数における変数間の感応度をスピンの間の相互作用の強度として設定したイジングモデルを想定することもできる。
【0107】
以上のような考察を通して、(上述の目的関数の各項の間に関する)変数間相互作用Jijと局所場gjを具体的に設定し、式(3)で表されるイジングモデル1021の基底状態探索、すなわち上述の当該月における総勤務日数、当該月における各日の小数を含みうる必要人数、および上述の制約条件が満たされる際に最小となる制約条件用関数、からなる目的関数が最小となる基底状態の探索を通して、各オペレータの勤務シフトすなわち、コールセンタ業務における当該月の全体スケジュールを特定する。
【0108】
なお、イジングモデルとアニーリング法で計算するのは、「目的関数を最小化する」ことだけである。そのため、目的関数を最小化する際に満たされる必要がある制約条件がある場合、それらを何らかの形で目的関数に足し込む必要がある。
【0109】
例えば、
[式11]
という制約条件を考えてみる。この制約条件を「制約条件が満たされる時に最小となる関数」に変換するとすれば、以下の式になる。
【0110】
【0111】
二乗となっている部分は必ず正の値となるため、この式が最小値となるのは二乗の中身
が0となる時だけである。中身が0となるのはΣXi-A=0、の時だけであるので、この関数が最小となる最適化問題を解けば、ΣXi=Aが満たされている解が自動的に得られることになる。
【0112】
また、例えば、上述のアニーリング法では、制約条件としたい項目も目的関数に入れ込んでしまう必要があるため、目的関数も制約条件も同じ重要度で扱うことになる。
【0113】
例えば、以下のような最適化問題があったとする。
[式13]
【0114】
これをアニーリング用の定式化に変更すると、以下のようになる。
[式14]
【0115】
ここでPとQは定数であり、どの項を優先的に最小化するかを決めるファクタとなる。例えば、3つの項すべてを平等に最小化する(つまり、制約条件の強さに偏りをつけないで問題を解く)場合、PとQを同等にするなど、項間でバランスをとるよう値の設定を行う。
【0116】
一方、「第2項の制約条件は厳密に守るが、第3項の制約条件はあまり重視しない」という問題設定であれば、重視する項の係数であるPの値を、Qの値より大きくすることで望みの解が得られることになる。
【0117】
このようにアニーリング法によれば、制約条件に優先度を付し、あまり重視しない制約条件については「なるべく満たす」といった設定が可能になる。
【0118】
なお、イジングモデルに関する各種設定は、本実施形態のスケジュール生成の各条件、情報に応じ、既存の一般的概念に沿った形で適宜に行うものとする。
【0119】
<スピン(変数)設定の具体例>
ある人員iが、ある時間帯jに、勤務種類k(実行にスキルkを要する)を稼働率m%で実施する場合に1、実施しない場合に0となる変数x_(i,j,k,m)を考える(
図5参照)。基本
的にはこの変数x_(i,j,k,m)の1つ1つがイジングモデルにおけるスピン1つ1つに割り振ら
れる。さらに、これに各勤務種類に対応するスキルの熟練度nについても考慮する場合、
ある人員iが、ある時間帯jに、勤務種類k(実行にスキルkを要する)を熟練度nで、稼働率m%で実施する場合に1、実施しない場合に0となる変数x_(i,j,k,m,n)を考える。基本的
にはこの変数x_(i,j,k,m,n)の1つ1つがCMOSアニーリングマシンにおけるスピン1つ1つに
割り振られる。なお、各人員が各スキルに対して持つ熟練度が単一である場合、熟練度を考慮しない変数x_(i,j,k,m)を用い、制約条件用関数における変数間の感応度に熟練度を
乗することによって設定することもできる。
【0120】
「勤務種類」を考えない場合、この変数は、「ある人員iが、ある時間帯jに稼働率m%
で業務をするかしないか」を与える変数となる。つまり、下記の表1で1が入ったセルで
は業務をm%の稼働率で実施し、0が入ったセルでは業務を実施しない、ということになる。
【0121】
【0122】
一方、「勤務種類」、「稼働率」についても考える場合、コールセンタの例でいうと、「インバウンド業務」をk=1に対応させ、「アウトバウンド業務」をk=2に対応させる。すると、上記の表1の一番左上のセルに対応する変数が2つ存在する(x_1,1,1,m,nとx_1,1,2,m,n)ことになる。この2つの変数がそれぞれ0か1の値を取るので、考えられる組合せは、下記の表2に示す4つとなる。
【0123】
【0124】
「勤務種類」、「稼働率」を考える場合、上記の表2において、勤務種類「インバウンド」をk=1に対応させ、勤務種類「アウトバウンド」をk=2に対応させ、2つの変数の組合
せによって単位時間あたりの各人員のシフトを表現するテーブル(以下、「タイムテーブル」と呼ぶ)上の1セルを表現する。つまり、あるセルに属する2つの変数(x_(i,j,1,m,n)とx_(i,j,2,m,n))がともに0なら「休憩」、ある1つのx_(i,j,1,m,n)が1ですべてのx_(i,j,2,m,n)が0なら「インバウンド」を稼働率m%×nで実行、すべてのx_(i,j,1,m,n)が0である1つのx_(i,j,2,m,n)が1なら「アウトバウンド」を稼働率m%×nで実行、を表すこと
になる。ここで、x_(i,j,1,m,n)もx_(i,j,2,m,n)も1となった場合は「同一人物が同一時
間帯に2つの異なる業務を、それぞれ稼働率m%×nで実施する」ことになる。
【0125】
<データ構造例>
続いて、本実施形態のスケジュール作成支援装置100が用いる各種情報について説明する。
図5に、本実施形態における基本情報テーブル125の一例を示す。
【0126】
本実施形態の基本情報テーブル125は、コールセンタ業務で協働する各オペレータの所定月における総勤務コマ数、当該月における各日の各時間帯における各業務(に対応するスキルを保有した者)の必要人数、の各情報を格納したテーブルである。
【0127】
このうち、必要人数の値は、機械学習などの適宜なアルゴリズムにより推定したものを想定できる。この場合、スケジュール作成支援装置100は、例えば、各時間帯に発生した過去の各業務の発生量の情報を記憶部101に保持しておき、この情報に基づき、日時や曜日、天候など種々の要因と各業務の発生量との相関関係を機械学習アルゴリズムにより特定しモデルを生成する。この相関関係を学習したモデルに、例えばある時間帯を入力として与えると、該当時間帯において発生が見込まれる各業務の量を推定できる。
【0128】
また、スケジュール作成支援装置100は、過去、実際に生じた各業務の量と当該業務を問題無く処理した人員数の各情報を保持している場合、それらの間の相関関係について同様に機械学習してモデルを生成し、このモデルに対し、上述のように推定した各業務の量の情報を付与することで、必要人数を推定するといった構成も想定できる。
【0129】
或いは、上述のように推定した各業務の量を、或るスキルを持つスタッフ一人当たりの平均的な業務処理量で除算することで、必要人数を算定するとしてもよい。
【0130】
なお、必要人数の算定手法としては、他にも想定しうる。例えば、コールセンタでの必要オペレータ数を推定するアーラン式で算出された必要人数(整数)から、近似曲線を引いて小数の必要人数を算出するといった手法も採用できる。
【0131】
本実施形態の例では、時間間隔を1時間として、横の行で指定している各業務の必要人数を、各時間帯で満たし、オペレータごとの勤務時間数(勤務コマ数)を守る組み合わせ最適化問題となる。区切る時間間隔が細かいほど、計算に必要なセル(本テーブルにおけるセル=要因)の数は増加し、より計算力が必要となる問題である。
【0132】
またセルの数が多いため、各オペレータの稼働率や熟練度の刻みや、各種の禁止パターン等の制約を設定する際、制約条件に応じた制約条件用関数の数が膨大となる。ところがアニーリングマシンを採用すれば、現実的な時間内に好適な結果すなわちスケジュールが特定可能である。
【0133】
なお、
図5の基本情報テーブル125で例示した例は、あくまで説明の都合上で限定的であり、その他の様々な事象の情報が格納されているものとする(以下同様)。
【0134】
また、
図6および
図7に本実施形態における制約条件テーブル126の一例を示す。本実施形態の制約条件テーブル126は、上述のコールセンタ業務に各オペレータを割り当
てる際の制約条件それぞれの情報を格納したテーブルである。
【0135】
そのデータ構造は、各制約条件の識別情報(図中では“#”)をキーとして、当該制約条件の内容、最適化ソルバでの実装例、およびアニーリングマシンでの実装例(制約条件用関数)。といったデータから成るレコードの集合体である。
【0136】
本実施形態では、アニーリングマシンでの実装例すなわち制約条件用関数に加えて、従来技術との比較のため、最適化ソルバで当該制約条件を実装する際の関数例も対照表示している。
【0137】
<フロー例>
以下、本実施形態におけるスケジュール作成支援方法の実際手順について図に基づき説明する。以下で説明するスケジュール作成支援方法に対応する各種動作は、スケジュール作成支援装置100がメモリ等に読み出して実行するプログラムによって実現される。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
【0138】
図8は、本実施形態におけるスケジュール作成支援方法のフロー例を示す図である。この場合、スケジュール作成支援装置100は、処理対象とするイジングモデル1021として、或る月における各オペレータの総勤務コマ数、当該月の各日における各業務の必要人数、および制約条件用関数、を項として含む目的関数に関して、各オペレータのスキルごとの稼働率と熟練度をスピンとし、制約条件用関数における変数間の感応度をスピン間の相互作用の強度として設定したイジングモデル1021を演算するものとする。
【0139】
ここで、稼働率とは、ある単位時間内である業務(すなわち特定のスキルで遂行する業務)に関して稼働する時間の割合である。例えば、単位時間が1時間である場合の稼働率75%とは、1時間のうち75%、つまり45分間、或る業務について働き、15分は休憩する状況を示す。この場合、予めスキルすなわち業務の割合を組合せたもの(以下、「ラベル」と呼ぶ)を用意し、その中から最適なものを選択する運用とする。
【0140】
例えば、下記の表3で示すように、5種類のスキルの組合せ(=「ラベル」)を用意し、人員毎・時間帯毎にどのラベルを割り当てればよいかを最適化の手法を用いて選択する。なお、表3の例ではスキル数が2、稼働率計が100%としているが、これに限るものではない。
【0141】
【0142】
また、熟練度とは、例えば平均的な作業効率の人を「1.0」とした場合、それよりも20%効率よく仕事を実施する人の熟練度を「1.2」とする指標である。もしくは、「新人は2人でベテラン1人分の作業をする」といった運用をしている業務であれば、新人の熟練度を「0.5」とし、その他のベテランの熟練度を「1.0」とする指標である。
【0143】
このように、オペレータの各業務すなわち各スキルの稼働割合と熟練度を用いた割当人数(人日・人時)の計算法において、変数と定数の定義は、例えば以下のとおりである。人員i がj 日(タイムテーブルなら時間帯j)に、「スキル稼働率の組合せ」(=「ラベ
ル」)kを実施する場合は1、しない場合は0となる変数をx_(i,j,k)とし、ラベルkにお
けるスキルsの稼働割合をr_(k,s)とし、人員iがスキルsを実施する際の熟練度(例えば、表4の情報)をe_(i,s)とする。
【0144】
【0145】
また、割当人数の計算には、例えば、j日(タイムテーブルなら時間帯j)におけるスキルsに対する割当人数(人日・人時)をW_(j,s)とした場合のW_(j,s)の式15、及び条件
式「j日(タイムテーブルなら時間帯j)におけるスキルsに対する必要人数(人日・人時
)Njs以上の人数を割当」を示す式16、を利用するものとする。
【0146】
【0147】
【0148】
そこで、スケジュール作成支援装置100は、各オペレータの希望条件をユーザ端末200から取得し、これを制約条件として制約条件テーブル126に格納する(s10)。或いは、この際、各オペレータから制約条件テーブル126中から、所望の制約条件に合致する制約条件の指定を受け付けるとしてもよい。
【0149】
また、スケジュール作成支援装置100は、s10で得た制約条件を、既に述べたように制約条件用関数に変換する(s11)。この制約条件用関数は、当該制約条件が満たされる際に最小となる関数である。なお、上述のs10で制約条件の指定を受けた場合、当該制約条件に対して規定済みの制約条件用関数を制約条件テーブル126から抽出することとなる。
【0150】
また、スケジュール作成支援装置100は、アニーリングマシンとして、上述の3つの項目(総勤務コマ数、各日の各業務の必要人数、および制約条件用関数)に関する設定がなされたイジングモデル1021を課題とし、当該目的関数が最小となる基底状態を算定する(s12)。こうした基底状態の探索自体は、既存技術における処理と同様である。
【0151】
つまり、各オペレータに関する制約条件と、上述の総勤務コマ数および各日の各業務の必要人数といった基本情報の規定を満たしつつ、時間経過とともに(感応度に基づく理論上の)各日の各業務の稼働率(熟練度を加味したもの)の最終状態に向け遷移し、各オペ
レータの割り当て稼働率の結果が落ち着く状態を、基底状態として探索することとなる。
【0152】
また、スケジュール作成支援装置100は、s12で特定した各時間帯における各オペレータの割り当て稼働率の情報(
図9の画面900)を、スケジュールとしてユーザ端末200に送信し(s13)、処理を終了する。
【0153】
一方、こうした情報の提供を受けたユーザ端末200では、
図9に示すようなスケジュール画面900をディスプレイ等の出力部に表示させる。
【0154】
ユーザ端末200の操作者は、このスケジュール画面900を閲覧し、例えば、来月や明日、或いは直近1時間先のタイムテーブルについて認識し、コールセンタ業務の運営について適宜な確認、検討行うこととなる。
【0155】
なお、上述の例よりも単純化したイジングモデルとして、或る月における各オペレータの総勤務コマ数、当該月の各日における各業務の必要人数、および制約条件用関数、を項として含む目的関数に関して、各オペレータの各日の各業務の稼働率をスピンとし、制約条件用関数における変数間の感応度をスピン間の相互作用の強度として設定したイジングモデルを想定してもよい。
【0156】
その場合、既に述べた形態でのスピンから要素が1つ、すなわち熟練度を除外した形のイジングモデルを想定し、基底状態を探索することになる。そのため計算自体は簡略化され処理負荷も軽減される。ただし、得られるスケジュールにおける精度としては熟練度の概念が外れるため精度も低下する。こうした形態で得られるスケジュールの例を、
図10の画面1000に示す。
【0157】
また、上述の例よりも単純化したイジングモデルとして、或る月における各オペレータの総勤務コマ数、当該月の各日における必要人数、および制約条件用関数、を項として含む目的関数に関して、各オペレータの各日の稼働率をスピンとし、制約条件用関数における変数間の感応度をスピン間の相互作用の強度として設定したイジングモデルを想定してもよい。
【0158】
その場合、既に述べた形態でのスピンからさらに要素が1つ、すなわち熟練度に加えてスキルごとの稼働率についても除外した形のイジングモデルを想定し、基底状態を探索することになる。そのため計算自体はさらに簡略化され処理負荷も軽減される。ただし、得られるスケジュールにおける精度としては熟練度に加えてスキルごとの稼働率の概念が外れるため精度も低下する。こうした形態で得られるスケジュールの例を、
図11の画面1100に示す。
【0159】
さらに、スケジュール作成支援装置100は、例えば、コールセンタ業務のうち重要スキルを必要とする希少業務に関して対処することも可能である。希少業務とは、例えば、一日に1回ある可能性がある、程度の希少性がある業務であるが、軽々に扱うことはできないデリケートな取扱いを要する業務などを想定できる。よって、こうした希少業務に対応出来る者を、他業務とは無関係に一日を通じて配置しておく必要がある。
【0160】
この場合、スケジュール作成支援装置100は、制約条件である、上述の希少業務の対応人員の必要人数、及び当該希少業務への対応時間帯(例:業務日における全業務時間)について、制約条件用関数を目的関数の項に含め、イジングモデルを演算することとする。イジングモデルとしては、或る月における各オペレータの総勤務コマ数、当該月の各日における各業務の必要人数、および制約条件用関数、を項として含む目的関数に関して、各オペレータの各日における各業務(当然、希少業務を含む)の稼働率をスピンとし、制
約条件用関数における変数間の感応度をスピン間の相互作用の強度として設定したイジングモデルを想定してもよい。
【0161】
こうした形態で得られるスケジュールの例を、
図12Aの画面1200、
図12Bの画面1250に示す。本実施形態では、
図12A、
図12Bで示すように、重要スキル(希少業務Sに対応したもの)についてのみ勘案したスケジュールを生成している。つまり、通常スキルについて上述の基底状態を探索する処理とは別に、重要スキルに対応した希少業務について、必要人時や各人員の制約条件(休暇や休憩、当月の総コマ数など)を踏まえたイジングモデルを使用して、その基底状態を探索し、スケジュールを生成している。
【0162】
こうしたスケジュールを生成することで、希少業務であっても、通常業務と並行して確実に対応する人員体制を確保することにつながる。
【0163】
以上はスケジュール作成支援装置100を主体とした構成について説明したが、こうした構成と連動する、コールセンタのCTI(Computer Telephony Integration)システム300を加えた全体システムを想定することもできる。
図13に本実施形態におけるCTIシステム300の構成例を示す。
【0164】
CTIシステム300は、コールセンタの管理システムとして一般的に運用されているシステムであり、オペレータと顧客との間の発着信を制御し、コールセンタ側の各種コンピュータリソースと電話リソースとを連携させる基盤である。
【0165】
その一般的な機能としては、例えばインバウンド(着信)に関して、顧客対応中ではないオペレータの端末400に割り振って着信させ、当該顧客からの電話に対応する際、顧客管理用の画面表示を行う機能が備わる。それゆえ、CTIシステム300は、管理対象の各オペレータやその端末400の各識別情報や、顧客情報、発着信履歴といった情報を蓄積、管理しているものとする。
【0166】
本実施形態におけるCTIシステム300は、スケジュール作成支援装置100が生成したスケジュールを取得し、当該スケジュールが示す、或る時間帯における、各業務(すなわち特定のスキルが必要となる業務)に関する、各オペレータの稼働率の情報に応じて、各業務(例:サービス申込、サービス内容変更、サービス解約、等々)に関して、当該時間帯に顧客から受けた電話を、各オペレータの端末400に自動的に着信させる。
【0167】
この場合、CTIシステム300は、各オペレータの端末400で当該時間帯に各業務に関して受けた電話での通話時間長を管理しているものとする。
図14に、この通話時間長を管理するための管理テーブル325を例示する。
【0168】
また、CTIシステム300は、上述のように管理する各時間帯における通話時間長の情報に基づき、各オペレータにおける上記時間帯における通話時間長の割合が、上述のスケジュールで定めた該当業務の稼働率に収まるよう制御する。
【0169】
例えば、スケジュールにおいて、オペレータXは、或る時間帯(長さは1時間)での業務Aに関して稼働率は60%(つまり計36分)、業務Bに関して稼働率は30%(つまり計18分)、休憩10%(つまり計6分)と定められていたとする。
【0170】
この場合、
図15のフローに示すように、CTIシステム300は、当該オペレータXの端末400に対し着信させた、業務Aおよび業務Bの各電話での通話時間を通話機会があるごとに集計し、上述の管理テーブル325における情報を更新する(s20)。
【0171】
また、CTIシステム300は、顧客から架電があるごとに、当該電話の対応業務と架電時刻をキーに、(既にスケジュール生成支援装置100から取得し記憶部301で保持する)スケジュール310に照合し、現在時刻を含む時間帯において、当該業務に対応するオペレータを特定する(s21)。
【0172】
続いて、CTIシステム300は、s21で特定したオペレータに関して、上述の管理テーブル325にて、当該時間帯における当該業務に関する通話時間長を参照し、当該時間帯(例:1時間)における通話時間長の割合を算定する(s22)。ここで算定された値は、当該オペレータが当該時間帯において当該業務に関して稼働した割合、すなわち現時点での稼働率である。
【0173】
また、CTIシステム300は、s22で算定した、現時点での稼働率が、上述のスケジュール310で当該オペレータに関して規定された当該時間帯での当該業務の稼働率を越えていないか判定する(s23)。
【0174】
上述の判定の結果、現時点での稼働率が、スケジュール310で規定の稼働率を超えていない場合(s23:OK)、CTIシステム300は、当該オペレータの端末400に、当該顧客からの架電を着信させる(s24)。
【0175】
一方、上述の判定の結果、現時点での稼働率が、スケジュール310で規定の稼働率に到達している場合(s23:NG)、CTIシステム300は、当該オペレータではない別のオペレータであって、現時点での稼働率が、スケジュール310で規定の稼働率を超えていない者を特定し(s25)、当該オペレータの端末400に、上述の顧客からの架電を着信させる(s26)。
【0176】
例えば、業務Aに関して或る時点での稼働率が、ちょうど60%に達していれば、当該時間帯においては、業務Aに関する顧客からの電話を当該オペレータの端末400に着信させず、業務Aを当該時間帯に担当する他のオペレータであって、スケジュール上の稼働率に到達していない者の端末400に着信させるのである。
【0177】
CTIシステム300は、こうした制御を各時間帯、各業務に関して継続的に実行することで、スケジュール310の規定を遵守したオペレーションを実施し、コールセンタの適正運用を効率的に実行可能となる。
【0178】
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【0179】
こうした本実施形態によれば、各時間帯の各業務に必要な人員を無駄なく配置したスケジュールの作成を効率的に行うことが可能となる。
【0180】
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態のスケジュール作成支援装置において、前記記憶部は、前記期間における各業務の必要スキルごとの、各タイミングでの小数を含みうる必要人数及び、前記各人員が保有するスキルの情報を更に格納し、前記演算部は、期間における前記総勤務長、前記必要スキルごとの前記必要人数、および前記制約条件が満たされる際に最小となる制約条件用関数、を項として含む目的関数に関して、前記各人員のスキルごとの稼働率をスピンとし、前記制約条件用関数における変数間の感応度を前記スピンの間の相互作用の強度として設定したイジングモデルを演算し、前記演算の結果に基づき、前記所定期間の前記各タイミングにおける前記必要スキルごとの前記各人員の稼働率を規定したスケジュールを所定装置に出力するものである、としてもよい。
【0181】
これによれば、従来であれば、配置人員が複数のスキル(作業)をこなせる場合、「各作業を実施する割合」は本人や現場監督者の裁量にゆだねられており、最適な実施比率となっていない、といった課題に対処して、人員毎、時間帯(または日)毎にスキル(に対応した業務)の最適な実施割合を予め計算しておくことが可能となる。このことは、人員配置をより効率的なものとすることにつながり、各人員を本来業務に集中させることになりやすい。また、今いる人員で最高のパフォーマンスを出すことが期待され、業務効率の向上も図られうる。ひいては、各時間帯の各業務に必要な人員を無駄なく配置したスケジュールの作成をより効率的に行うことが可能となる。
【0182】
また、本実施形態のスケジュール作成支援装置において、前記演算部は、重要スキルを必要とする希少業務に関する前記制約条件である、前記希少業務の対応人員の必要人数、及び当該希少業務への対応時間帯について、前記制約条件用関数を前記目的関数の項に含め、前記イジングモデルを演算するものである、としてもよい。
【0183】
これによれば、従来では、「レアな問合せのために、レアスキルに対応できる人が常に1人必要」といった場合、スケジュール作成者が手作業で調整していた事態にも対処し、
スキル実施割合の考え方を応用して、「レアスキルを持つ人を必ず1人割り当てる」とい
った設定が、特別な手順なしで可能となる。ひいては、各時間帯の各業務に必要な人員を無駄なく配置したスケジュールの作成をより効率的に行うことが可能となる。
【0184】
また、本実施形態のスケジュール作成支援装置において、前記記憶部は、前記各人員が保有するスキルごとの熟練度の情報を更に保持し、前記演算部は、前記目的関数に関して、前記各人員のスキルごとの稼働率をスピンとし、前記制約条件用関数における変数間の感応度に、前記各人員のスキルごとの熟練度を乗じたものを、前記スピンの間の相互作用の強度として設定したイジングモデルを演算し、前記演算の結果に基づき、前記所定期間の前記各タイミングにおける前記必要スキルごとの前記熟練度を加味して前記各人員の稼働率を規定したスケジュールを所定装置に出力するものである、としてもよい。
【0185】
これによれば、従来では、必要人数が整数である限り、熟練度を考慮した計算をしても、結局平均すると全人員の熟練度は1付近になるため、効果が薄い(または「新人は休め
」というシフトになっていた)といった事態に対処し、必要人数を小数化し、かつ熟練度とスキル実施割合・稼働率とを組合せることにより、従来よりも、より過不足の少ないシフト作成が可能になる(新人が入ればベテランの休憩時間を増やすことができるため、休みも公平になる)。ひいては、各時間帯の各業務に必要な人員を無駄なく配置したスケジュールの作成をより効率的に行うことが可能となる。
【0186】
また、本実施形態のスケジュール作成支援装置において、前記記憶部は、前記各人員が保有するスキルごとの熟練度の情報を更に保持し、前記演算部は、前記目的関数に関して、前記各人員のスキルごとの稼働率及び熟練度をスピンとし、前記制約条件用関数における変数間の感応度を前記スピンの間の相互作用の強度として設定したイジングモデルを演算し、前記演算の結果に基づき、前記所定期間の前記各タイミングにおける前記必要スキルごとの前記熟練度を加味して前記各人員の稼働率を規定したスケジュールを所定装置に出力するものである、としてもよい。
【0187】
これによれば、従来では、必要人数が整数である限り、熟練度を考慮した計算をしても、結局平均すると全人員の熟練度は1付近になるため、効果が薄い(または「新人は休め
」というシフトになっていた)といった事態に対処し、必要人数を小数化し、かつ熟練度とスキル実施割合・稼働率とを組合せることにより、従来よりも、より過不足の少ないシフト作成が可能になる(新人が入ればベテランの休憩時間を増やすことができるため、休
みも公平になる)。しかも、熟練度もスピンに加えて取り扱うことで、当該熟練度を固定化せず、例えば時間経過に伴う熟練度向上や使用機材更新による熟練度低下、といった変化にも柔軟に対応可能となる。ひいては、各時間帯の各業務に必要な人員を無駄なく配置したスケジュールの作成をより効率的に行うことが可能となる。
【0188】
また、本実施形態のスケジュール作成支援装置において、前記イジングモデルに関して組合せ最適化問題を解くCMOSアニーリングマシンであるとしてもよい。
【0189】
これによれば、イジングモデルの動作を半導体のCMOS(Complementary Metal Oxide Semiconductor)などの素子を用いた回路で擬似的に再現し、互いに影響しあっている制約条件すなわち非線形な制約条件を踏まえた組合せ最適化問題の実用解を、室温下で効率良く求めることが可能となる。ひいては、各時間帯の各業務に必要な人員を無駄なく配置したスケジュールの作成をさらに効率的に行うことが可能となる。
【符号の説明】
【0190】
10 ネットワーク
100 スケジュール作成支援装置(アニーリングマシン)
101 記憶部
102 プログラム
1021 イジングモデル
103 メモリ
104 演算部
105 通信部
125 基本情報テーブル
126 制約条件テーブル
200 ユーザ端末
300 CTIシステム
400 オペレータ端末