(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022167673
(43)【公開日】2022-11-04
(54)【発明の名称】情報処理装置、情報処理方法および情報処理プログラム
(51)【国際特許分類】
G06Q 10/06 20120101AFI20221027BHJP
G06Q 10/00 20120101ALI20221027BHJP
【FI】
G06Q10/06
G06Q10/00
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021073624
(22)【出願日】2021-04-23
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【弁理士】
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】笹本 勇輝
(72)【発明者】
【氏名】駒場 祐介
(72)【発明者】
【氏名】猪又 明大
(72)【発明者】
【氏名】松岡 直樹
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049AA06
(57)【要約】
【課題】リソース割当に用いる条件を抽出すること。
【解決手段】情報処理装置101は、複数の割当先に対する複数のリソースの割当結果を示す割当データを取得する。情報処理装置101は、取得した割当データから、第1の条件に違反するデータを抽出する。情報処理装置101は、抽出したデータを、所定の基準に従って複数のグループに分類する。情報処理装置101は、分類した複数のグループそれぞれのデータに基づいて、複数のリソースに含まれるリソースの割当パターンの出現頻度に関する指標値を算出する。情報処理装置101は、算出した指標値に基づいて、リソースの割当パターンについての第2の条件を生成する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数の割当先に対する複数のリソースの割当結果を示す割当データを取得し、
取得した前記割当データから、第1の条件に違反するデータを抽出し、
抽出した前記データを、所定の基準に従って複数のグループに分類し、
分類した前記複数のグループそれぞれのデータに基づいて、前記複数のリソースに含まれるリソースの割当パターンの出現頻度に関する指標値を算出し、
算出した前記指標値に基づいて、前記割当パターンについての第2の条件を生成する、
処理を実行する制御部を有することを特徴とする情報処理装置。
【請求項2】
前記制御部は、
算出した前記指標値が閾値以上となるリソースの割当パターンを特定し、
特定した前記割当パターンについて、前記割当データに基づいて、前記第1の条件と相反する関係にある第2の条件を生成する、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記制御部は、
生成した前記第2の条件に対する過去の割当データの充足率を算出し、
最適化対象データと前記過去の割当データとの類似度を算出し、
算出した前記充足率と前記類似度とに基づいて、前記第2の条件を前記最適化対象データに適用するか否かを決定する、
ことを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
既知の条件に基づいて最適化された第1の割当データと、前記第1の割当データに対して修正が実施された第2の割当データとを取得し、
前記第1の割当データに対する前記第1の条件の充足判定の結果と、前記第2の割当データに対する前記第1の条件の充足判定の結果とに基づいて、前記第1の割当データと前記第2の割当データとの差分のうち、前記第1の条件の充足判定の結果が変化した箇所を、前記第1の条件に違反するデータとして抽出する、
ことを特徴とする請求項1~3のいずれか一つに記載の情報処理装置。
【請求項5】
前記第1の条件は、前記複数のリソースに一様に適用される、公平性に係る条件である、ことを特徴とする請求項1~4のいずれか一つに記載の情報処理装置。
【請求項6】
前記制御部は、
前記第2の条件が生成された後、新たな割当データを取得した場合、前記新たな割当データと前記割当データとの間で割当対象のリソースが類似するか否かを判定し、
前記割当対象のリソースが類似する場合、前記第1の条件を用いて、前記新たな割当データから前記第1の条件に違反するデータを抽出する、
ことを特徴とする請求項1~5のいずれか一つに記載の情報処理装置。
【請求項7】
前記制御部は、
複数の条件において共通する相反候補条件を生成し、
生成した前記相反候補条件を前記第1の条件として、取得した前記割当データから前記第1の条件に違反するデータを抽出する、
ことを特徴とする請求項1~6のいずれか一つに記載の情報処理装置。
【請求項8】
前記制御部は、
生成した前記第2の条件を出力する、ことを特徴とする請求項1~7のいずれか一つに記載の情報処理装置。
【請求項9】
複数の割当先に対する複数のリソースの割当結果を示す割当データを取得し、
取得した前記割当データから、第1の条件に違反するデータを抽出し、
抽出した前記データを、所定の基準に従って複数のグループに分類し、
分類した前記複数のグループそれぞれのデータに基づいて、前記複数のリソースに含まれるリソースの割当パターンの出現頻度に関する指標値を算出し、
算出した前記指標値に基づいて、前記割当パターンについての第2の条件を生成する、
処理をコンピュータが実行することを特徴とする情報処理方法。
【請求項10】
複数の割当先に対する複数のリソースの割当結果を示す割当データを取得し、
取得した前記割当データから、第1の条件に違反するデータを抽出し、
抽出した前記データを、所定の基準に従って複数のグループに分類し、
分類した前記複数のグループそれぞれのデータに基づいて、前記複数のリソースに含まれるリソースの割当パターンの出現頻度に関する指標値を算出し、
算出した前記指標値に基づいて、前記割当パターンについての第2の条件を生成する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法および情報処理プログラムに関する。
【背景技術】
【0002】
近年、急速なデジタルテクノロジーの進展に伴い、新しい技術を使って既存のビジネスや業務に変化をもたらす、デジタルトランスフォーメーション(DX)が注目されている。DXの実現に向けて、既存の業務における様々な情報がデータとして収集され、そのデータを利活用した既存業務の改善や効率化に期待がよせられている。例えば、過去のデータを利用して、人やモノなどのリソース割当が行われる場合がある。
【0003】
先行技術としては、所定事象に関して判明済みの制約条件と各利用情報とを所定アルゴリズムに適用して仮計画を複数作成し、各仮計画と該当仮計画に対応する作成済み計画との各組のうち、計画間の類似度が所定基準以下の非類似の組における作成済み計画とその利用情報とを所定アルゴリズムに適用し、計画間の非類似の要因に対応した新規制約条件を生成するものがある。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、人やモノなどのリソース割当を行うにあたり、特定の個人やチームにのみ適用されるような制約条件を抽出することが難しい。
【0006】
一つの側面では、本発明は、リソース割当に用いる条件を抽出することを目的とする。
【課題を解決するための手段】
【0007】
1つの実施態様では、複数の割当先に対する複数のリソースの割当結果を示す割当データを取得し、取得した前記割当データから、第1の条件に違反するデータを抽出し、抽出した前記データを、所定の基準に従って複数のグループに分類し、分類した前記複数のグループそれぞれのデータに基づいて、前記複数のリソースに含まれるリソースの割当パターンの出現頻度に関する指標値を算出し、算出した前記指標値に基づいて、前記割当パターンについての第2の条件を生成する、処理を実行する制御部を有する情報処理装置が提供される。
【発明の効果】
【0008】
本発明の一側面によれば、リソース割当に用いる条件を抽出することができるという効果を奏する。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施の形態1にかかる情報処理方法の一実施例を示す説明図である。
【
図2】
図2は、情報処理システム200のシステム構成例を示す説明図である。
【
図3】
図3は、割当支援サーバ201のハードウェア構成例を示すブロック図である。
【
図4】
図4は、割当データの具体例を示す説明図である。
【
図5】
図5は、制約条件DB220の記憶内容の一例を示す説明図である。
【
図6】
図6は、実施の形態1にかかる割当支援サーバ201の機能的構成例を示すブロック図である。
【
図7】
図7は、相反集合データの具体例を示す説明図である。
【
図8】
図8は、相対頻度テーブル800の記憶内容の一例を示す説明図である。
【
図9】
図9は、制約条件を充足する範囲を示す説明図である。
【
図10】
図10は、実施の形態1にかかる割当支援サーバ201の情報処理手順の一例を示すフローチャートである。
【
図11】
図11は、相反集合抽出処理の具体的処理手順の一例を示すフローチャートである。
【
図12】
図12は、潜在的制約条件生成処理の具体的処理手順の一例を示すフローチャートである。
【
図13】
図13は、制約条件表示画面の画面例を示す説明図である。
【
図14】
図14は、実施の形態2にかかる割当支援サーバ201の機能的構成例を示すブロック図である。
【
図15】
図15は、過去の割当データの具体例を示す説明図である。
【
図16】
図16は、制約条件付きDB1600の記憶内容の一例を示す説明図である。
【
図17】
図17は、過去の割当データとの類似度の算出例を示す説明図である。
【
図18】
図18は、実施の形態2にかかる割当支援サーバ201の最適化処理手順の一例を示すフローチャート(その1)である。
【
図19】
図19は、実施の形態2にかかる割当支援サーバ201の最適化処理手順の一例を示すフローチャート(その2)である。
【
図20】
図20は、判定結果画面の画面例を示す説明図である。
【
図21A】
図21Aは、実施の形態3にかかる割当支援サーバ201の動作例を示す説明図(その1)である。
【
図21B】
図21Bは、実施の形態3にかかる割当支援サーバ201の動作例を示す説明図(その2)である。
【
図22】
図22は、実施の形態3にかかる割当支援サーバ201の情報処理手順の一例を示すフローチャート(その1)である。
【
図23】
図23は、実施の形態3にかかる割当支援サーバ201の情報処理手順の一例を示すフローチャート(その2)である。
【
図24】
図24は、第2の相反集合抽出処理の具体的処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下に図面を参照して、本発明にかかる情報処理装置、情報処理方法および情報処理プログラムの実施の形態を詳細に説明する。
【0011】
(実施の形態1)
図1は、実施の形態1にかかる情報処理方法の一実施例を示す説明図である。
図1において、情報処理装置101は、リソース割当に用いる条件を抽出するコンピュータである。リソースは、例えば、人(要員)やモノ(部屋、機器など)である。リソース割当とは、リソースを割当先に割り当てることである。割当先は、例えば、シフト(勤務時間割)、作業、場所、時間などである。条件は、例えば、リソース割当を最適化するために用いられる制約条件である。
【0012】
ここで、計算機や最適化アルゴリズムの開発により、従来は完全に人手によって行われていたリソース割当を、自動で実施できるようになってきた。しかしながら、リソース割当のために考慮すべき制約条件を事前に最適化問題として定式化することが難しい場合がある。これに対し、機械学習等により過去のデータを活用することで、リソース割当を効率化するための技術がある。
【0013】
例えば、MLCP(Machine Learning Constraint Programming)は、過去のデータから経験ノウハウを抽出するための技術である。この従来技術は、例えば、事前にインタビューした制約条件に関して、境界条件や決定変数の分布をパターンとして過去のデータから抽出する。
【0014】
また、過去のデータから制約条件の重みを抽出するための従来技術がある。この従来技術は、例えば、既知の制約条件のもとに判定した正例(feasible)・負例(infeasible)のデータから、そのデータに適用されている制約条件とその重みを抽出する。
【0015】
また、過去のデータから厳密な制約条件を抽出するための従来技術がある。この従来技術は、例えば、過去の割当データをテンソルとして扱い、変数の組み合わせ(条件)とそのカウント数(境界値)を算出することで、規則や契約に関連するような厳密な制約条件を抽出する。
【0016】
これらの従来技術は、既知あるいは規制や契約などに関連する顕在的な制約条件やその範囲(境界値や決定変数の従う分布など)を、過去のデータをもとに抽出するためのものである。しかしながら、実際のリソース割当においては、リソース割当の対象となるチームや個人の選好に基づいた潜在的な制約条件がある。
【0017】
リソース割当を行うにあたり、潜在的な制約条件が抜けてしまうと、機械による十分な割当が行えず、手作業の確認や修正などの割当担当者の負担につながる。また、潜在的な制約条件は、規制のような明確なルールや指標がなく、割当担当者の経験や意識に基づいて設定されていることが多く、ヒアリングなどから事前に全て把握することは難しい。
【0018】
そこで、本実施の形態では、特定の個人やチームの選好に基づいて設定される潜在的な制約条件のような、リソース割当に用いる条件を自動で抽出する情報処理方法について説明する。ここで、情報処理装置101の処理例について説明する。
【0019】
(1)情報処理装置101は、複数の割当先に対する複数のリソースの割当結果を示す割当データを取得する。ここで、割当データは、過去に作成された割当データであり、どのリソースがどの割当先に割り当てられたのかを示す情報である。例えば、割当データは、機械(コンピュータ)により自動で作成された割当データに対して、人手(割当担当者)により修正が実施された割当データである。また、割当データは、機械により自動で作成された割当データであってもよい。
【0020】
図1の例では、過去の割当データ111~113が取得された場合を想定する。例えば、リソースを「要員(Agent)」とし、割当先を「シフト(Shift)」とすると、各割当データ111~113は、複数の要員を複数のシフトに割り当てた日(Days)ごとの割当結果を示す。
【0021】
(2)情報処理装置101は、取得した割当データから、第1の条件に違反するデータを抽出する。ここで、第1の条件は、任意に設定可能であり、例えば、複数のリソースに一様に適用される、公平性に係る条件である。より詳細に説明すると、例えば、第1の条件は、顕在的な制約条件に相当する。顕在的な制約条件とは、例えば、規制や契約、業種やチーム全体に対する既知のルールや指標に基づいて設定される条件である。
【0022】
顕在的な制約条件の具体例としては、『どの従業員も必ず週合計勤務がX時間以下』、『平日あるいは週末の通常勤務はかならずX人以上』、『どの従業員も少なくとも一人一回は週末勤務を実施』、『どの従業員も少なくとも一人一回は深夜(あるいは早朝)勤務を実施』、『全ての従業員に対して均等にシフトを割り当てる』などが挙げられる。
【0023】
図1の例では、各割当データ111~113から第1の条件に違反している箇所(例えば、データ111-1,111-2)が抽出されて、第1の条件に違反するデータの集合である相反集合121~123がそれぞれ作成される。
【0024】
(3)情報処理装置101は、抽出したデータを、所定の基準に従って複数のグループに分類する。ここで、所定の基準は、任意に設定可能であり、例えば、リソース(要員、部屋、機器など)ごと、1または複数のリソースの組(チームなど)ごとに分類するといった基準である。
【0025】
図1の例では、相反集合121~123がリソース(要員)ごとに分類され、リソースごとの相反集合(例えば、相反集合131~133)が作成された場合を想定する。
【0026】
(4)情報処理装置101は、分類した複数のグループそれぞれのデータに基づいて、複数のリソースに含まれるリソースの割当パターンの出現頻度に関する指標値を算出する。ここで、リソースの割当パターンとは、リソース(1または複数のリソース)を、どの割当先に割り当てたかを示すパターンである。
【0027】
リソースの割当パターンは、例えば、分類した複数のグループそれぞれのデータから特定され、リソースや割当先を示す変数の組み合わせによって表現される。出現頻度に関する指標値は、例えば、各グループについて、そのグループ以外のグループと比較して、リソースの割当パターンがどの程度の頻度で出現するかを示す。
【0028】
具体的には、例えば、情報処理装置101は、複数のグループそれぞれのデータに基づいて、リソースの割当パターンごとの相対頻度値を算出することにしてもよい。相対頻度値としては、例えば、一般的なアソシエーション分析などで用いられるリフト値、支持度、確信度などを用いることができる。
【0029】
図1の例では、リソースごとの相反集合(例えば、相反集合131~133)を用いて、リソースの割当パターンごとの相対頻度値が算出された場合を想定する。相対頻度表140は、リソースの割当パターン(リソースを示す変数と割当先を示す変数の組み合わせ)ごとの指標値(相対頻度値)を示す。
【0030】
(5)情報処理装置101は、算出した指標値に基づいて、リソースの割当パターンについての第2の条件を生成する。ここで、第2の条件は、複数のリソースの一部のリソースに適用される、第1の条件と相反する関係にある条件である。第1の条件と相反する関係にある条件とは、第1の条件を充足しない条件のことである。より詳細に説明すると、例えば、第2の条件は、潜在的な制約条件に相当する。
【0031】
潜在的な制約条件とは、例えば、特定のチームや個人の選好に基づいて設定される条件である。潜在的な制約条件の具体例としては、『ある従業員は(スキル未熟のため)週末の勤務は必ずなし』、『ある従業員は(新人のため)特定のシフトの勤務のみ適用』、『ある従業員に対しては深夜(あるいは早朝)勤務を適用(選好)』、『ある従業員に対しては通常勤務を適用(選好)』、『ある従業員AとBは(教育のため)同じシフトの勤務を適用』、『ある従業員CとDは(必要なスキルセットのため)特定のシフトの勤務を適用』などが挙げられる。
【0032】
ここで、チームや個人の選好(潜在的な制約条件)は、「チーム間/個人間に共通(公平)に課せられる制約条件に相反する」という傾向がある(制約条件間の関係性)。例えば、「ある従業員は(スキル未熟のため)週末の勤務は必ずなし」は、「どの従業員も少なくとも一人一回は週末勤務を実施」に相反する。また、「ある従業員は(新人のため)特定のシフトの勤務のみ適用」は、「全ての従業員に対して均等にシフトを割り当てる」に相反する。
【0033】
また、チームや個人の選好(潜在的な制約条件)は、特定のチーム内/個人内で頻出する」という傾向がある(割当対象間の関係性)。例えば、「ある従業員CとDは(必要なスキルセットのため)特定のシフトの勤務を適用」は、スキルセットを複雑に設定しているチーム(i)のみで適用される。また、「ある従業員は(新人のため)特定のシフトの勤務のみ適用」は、チーム(ii)の中でも新人のAさんのみに適用される。
【0034】
そこで、情報処理装置101は、例えば、個人やチームごとに分類したデータ(第1の条件に違反するデータ)から算出した指標値をもとに、個人やチーム内で頻出している割当パターンを検出し、その割当パターンについての条件(第2の条件)を生成する。
【0035】
具体的には、例えば、情報処理装置101は、算出した指標値が閾値以上となるリソースの割当パターンを特定する。そして、情報処理装置101は、特定したリソースの割当パターンについての第2の条件を生成する。
【0036】
図1の例では、指標値(相対頻度値)が閾値以上となるリソースの割当パターンとして、(Agent1,Shift1)の組み合わせが特定された場合を想定する。この場合、(Agent1,Shift1)の組み合わせについて、例えば、『Agent1はShift1を選好』という第2の条件150が生成される。
【0037】
このように、情報処理装置101によれば、特定の個人やチームの選好に基づいて設定されるような潜在的な制約条件を抽出することができる。これにより、割当担当者による事前の入念なヒアリングなどを行うことなく、リソース割当を最適化するための制約条件を自動で抽出することができる。
【0038】
図1の例では、Agent1のみに適用される『Agent1はShift1を選好』という制約条件を抽出することができる。
【0039】
(情報処理システム200のシステム構成例)
つぎに、
図1に示した情報処理装置101を含む情報処理システム200のシステム構成例について説明する。以下の説明では、
図1に示した情報処理装置101を、情報処理システム200内の割当支援サーバ201に適用した場合を例に挙げて説明する。
【0040】
情報処理システム200は、例えば、コールセンタや病院などの施設内での人やモノの割当支援サービスを提供するシステムに適用される。より具体的には、例えば、情報処理システム200は、要員スケジューリング、ナーススケジューリング、手術室スケジューリング、ベッドスケジューリングなどを支援するサービスに適用することができる。
【0041】
図2は、情報処理システム200のシステム構成例を示す説明図である。
図2において、情報処理システム200は、割当支援サーバ201と、複数のクライアント装置202と、を含む。情報処理システム200において、割当支援サーバ201およびクライアント装置202は、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などである。
【0042】
割当支援サーバ201は、制約条件DB(Database)220および相反集合DB230を有し、リソース割当を支援するコンピュータである。制約条件DB220および相反集合DB230の記憶内容については、
図5および
図6を用いて後述する。
【0043】
クライアント装置202は、情報処理システム200のユーザが使用するコンピュータである。ユーザは、例えば、割当業務を行う担当者(割当担当者)である。クライアント装置202は、過去割当DB240を有する。過去割当DB240は、過去に作成された割当データを記憶する。クライアント装置202は、例えば、PC(Personal Computer)、タブレットPCなどである。過去割当DB240に記憶される割当データの具体例については、
図4を用いて後述する。
【0044】
なお、ここでは、割当支援サーバ201とクライアント装置202とを別体に設けることにしたが、これに限らない。例えば、割当支援サーバ201は、クライアント装置202により実現されることにしてもよい。
【0045】
(割当支援サーバ201のハードウェア構成例)
図3は、割当支援サーバ201のハードウェア構成例を示すブロック図である。
図3において、割当支援サーバ201は、CPU(Central Processing Unit)301と、メモリ302と、ディスクドライブ303と、ディスク304と、通信I/F(Interface)305と、可搬型記録媒体I/F306と、可搬型記録媒体307と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
【0046】
ここで、CPU301は、割当支援サーバ201の全体の制御を司る。CPU301は、複数のコアを有していてもよい。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMがOSのプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
【0047】
ディスクドライブ303は、CPU301の制御に従ってディスク304に対するデータのリード/ライトを制御する。ディスク304は、ディスクドライブ303の制御で書き込まれたデータを記憶する。ディスク304としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
【0048】
通信I/F305は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して外部のコンピュータ(例えば、
図2に示したクライアント装置202)に接続される。そして、通信I/F305は、ネットワーク210と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。通信I/F305には、例えば、モデムやLANアダプタなどを採用することができる。
【0049】
可搬型記録媒体I/F306は、CPU301の制御に従って可搬型記録媒体307に対するデータのリード/ライトを制御する。可搬型記録媒体307は、可搬型記録媒体I/F306の制御で書き込まれたデータを記憶する。可搬型記録媒体307としては、例えば、CD(Compact Disc)-ROM、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリなどが挙げられる。
【0050】
なお、割当支援サーバ201は、上述した構成部のほかに、例えば、入力装置、ディスプレイなどを有することにしてもよい。また、
図2に示したクライアント装置202についても、割当支援サーバ201と同様のハードウェア構成により実現することができる。ただし、クライアント装置202は、上述した構成部のほかに、例えば、入力装置、ディスプレイなどを有する。
【0051】
(割当データの具体例)
つぎに、
図4を用いて、クライアント装置202が有する過去割当DB240に記憶される割当データの具体例について説明する。
【0052】
図4は、割当データの具体例を示す説明図である。
図4において、過去割当データ400は、過去に作成された割当データの一例であり、過去Xヶ月分の割当データ400-1~400-Xを含む。各割当データ400-1~400-Xは、各月のシフトデータに相当し、どの要員(リソース)がどのシフト(割当先)に割り当てられたのかを日ごとに示す情報である。
【0053】
(制約条件DB220の記憶内容)
つぎに、
図5を用いて、割当支援サーバ201が有する制約条件DB220の記憶内容について説明する。なお、制約条件DB220および相反集合DB230は、例えば、
図3に示したメモリ302、ディスク304などの記憶装置により実現される。
【0054】
図5は、制約条件DB220の記憶内容の一例を示す説明図である。
図5において、制約条件DB220は、条件IDおよび制約条件のフィールドを有し、各フィールドに情報を設定することで、制約条件情報(例えば、制約条件情報500-1,500-2)をレコードとして記憶する。
【0055】
ここで、条件IDは、制約条件を一意に識別する識別子である。制約条件は、リソース割当に用いられる条件を示す。制約条件としては、例えば、規制や契約、業種やチーム全体に対する既知のルールや指標に基づいて設定される顕在的な制約条件が記憶される。また、制約条件として、割当支援サーバ201により生成される条件(潜在的な制約条件)が記憶されてもよい。
【0056】
(割当支援サーバ201の機能的構成例)
つぎに、
図6を用いて、実施の形態1にかかる割当支援サーバ201の機能的構成例について説明する。
【0057】
図6は、実施の形態1にかかる割当支援サーバ201の機能的構成例を示すブロック図である。
図6において、割当支援サーバ201は、取得部601と、抽出部602と、分類部603と、算出部604と、生成部605と、出力部606と、を含む。取得部601~出力部606は制御部となる機能であり、具体的には、例えば、
図3に示したメモリ302、ディスク304、可搬型記録媒体307などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、通信I/F305により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、ディスク304などの記憶装置に記憶される。
【0058】
取得部601は、複数の割当先に対する複数のリソースの割当結果を示す割当データを取得する。取得される割当データは、例えば、
図4に示したような過去割当データ400である。過去割当データ400は、過去Xヶ月分の各月の割当データ400-1~400-Xを含む。
【0059】
具体的には、例えば、取得部601は、
図2に示したクライアント装置202から過去割当データ400を受信することにより、受信した過去割当データ400を取得する。また、取得部601は、不図示の入力装置を用いたユーザの操作により、入力された割当データを取得してもよい。
【0060】
抽出部602は、取得された割当データから、第1の条件に違反するデータを抽出する。具体的には、例えば、まず、抽出部602は、
図5に示した制約条件DB220から、既知の制約条件を第1の条件として取得する。この際、抽出部602は、複数のリソースに一様に適用される、公平性に係る制約条件を、第1の条件として取得することにしてもよい。
【0061】
以下の説明では、第1の条件を「顕在的制約条件」と表記する場合がある。
【0062】
つぎに、抽出部602は、取得された過去割当データ400に対する、取得した顕在的制約条件の充足を判定する。顕在的制約条件の充足は、例えば、既存の制約充足ソルバーを用いて判定されることにしてもよい。そして、抽出部602は、過去割当データ400から、顕在的制約条件が満たされていない箇所のデータを抽出することにより、顕在的制約条件に違反するデータを抽出する。
【0063】
なお、抽出部602は、取得された割当データを区切って分割したデータ区間ごとに、顕在的制約条件の充足率を算出し、算出した充足率が一定以下となるデータ区間を、顕在的制約条件に違反するデータとして抽出することにしてもよい。
【0064】
以下の説明では、抽出された顕在的制約条件に違反するデータの集合を「相反集合データ」と表記する場合がある。なお、相反集合データの具体例については、
図7を用いて後述する。
【0065】
分類部603は、抽出された相反集合データを、所定の基準に従って複数のグループに分類する。具体的には、例えば、分類部603は、抽出された相反集合データを、リソース(要員など)ごとにまとめることにより、複数のグループに分類してもよい。また、分類部603は、抽出された相反集合データを、チームごとにまとめることにより、複数のグループに分類してもよい。チームは、1または複数のリソース(割当対象の人)を含む。
【0066】
また、分類部603は、抽出された相反集合データを、割当先(シフトなど)ごとにまとめることにより、複数のグループに分類してもよい。また、分類部603は、テンソルデータや行列データに対する一般的な分類器を用いて、抽出された相反集合データを複数のグループに分類してもよい。
【0067】
算出部604は、分類された複数のグループそれぞれのデータ(相反集合データ)に基づいて、複数のリソースに含まれるリソースの割当パターンの出現頻度に関する指標値を算出する。リソースの割当パターンは、リソースをどの割当先に割り当てたかを示すパターンであり、例えば、リソースや割当先を示す変数の組み合わせによって表現される。
【0068】
具体的には、例えば、算出部604は、複数のグループそれぞれの相反集合データに基づいて、リソースの割当パターンごとの相対頻度値を算出する。相対頻度値としては、例えば、リフト値、支持度、確信度などを用いることができる。なお、リソースの割当パターンごとの相対頻度値の算出例については、
図8を用いて後述する。
【0069】
生成部605は、算出された指標値に基づいて、リソースの割当パターンについての第2の条件を生成する。第2の条件は、複数のリソースの一部のリソースに適用される、第1の条件と相反する関係にある条件である。
【0070】
具体的には、例えば、生成部605は、算出された相対頻度値が閾値α以上となるリソースの割当パターンを特定する。閾値αは、任意に設定可能であり、例えば、「1」に設定される。そして、生成部605は、特定したリソースの割当パターンについて、取得された割当データに基づいて、第2の条件を生成する。
【0071】
より詳細に説明すると、例えば、生成部605は、境界値を含む第2の条件を生成してもよい。境界値は、例えば、割当パターンを示す変数の組み合わせに関する境界値であり、取得された過去の割当データのうちの所定期間(1ヶ月間など)ごとのデータをもとに算出される。具体的には、例えば、境界値は、組み合わせの変数が同時に共起する所定期間ごとの回数をもとに算出されてもよい。
【0072】
なお、生成部605は、算出された相対頻度値が最も高いリソースの割当パターンを特定することにしてもよい。また、生成部605は、算出された相対頻度値が高い上位いくつかのリソースの割当パターンを特定することにしてもよい。また、生成部605は、算出された相対頻度値が、閾値β未満あるいは所定の範囲内となるリソースの割当パターンを特定することにしてもよい。
【0073】
以下の説明では、第2の条件を「潜在的制約条件」と表記する場合がある。なお、潜在的制約条件の生成例については、
図7および
図8を用いて後述する。
【0074】
出力部606は、生成された潜在的制約条件を出力する。出力部606の出力形式としては、例えば、メモリ302、ディスク304などの記憶装置への記憶、通信I/F305による他のコンピュータ(例えば、クライアント装置202)への送信、不図示のディスプレイへの表示などがある。
【0075】
具体的には、例えば、出力部606は、生成された潜在的制約条件に条件IDを付与して、
図5に示したような制約条件DB220に記憶することにしてもよい。この際、出力部606は、既知の制約条件(顕在的制約条件)と区別可能に、生成された潜在的制約条件を記憶することにしてもよい。
【0076】
ここで、時期による影響(例えば、繁忙期の季節、新人の期間が終了など)で、リソース割当を行うにあたり考慮すべき制約条件が経時変化する場合がある。
【0077】
このため、分類部603は、例えば、抽出された相反集合データを、所定の期間ごとに、所定の基準に従って複数のグループに分類することにしてもよい。所定の期間は、任意に設定可能であり、例えば、1年、四半期などに設定される。すなわち、分類部603は、相反集合データの分類を、周期性の基準(年ごと、四半期ごと)に基づいて実施することにしてもよい。
【0078】
また、違反するデータの抽出に使用する顕在的制約条件によっては、潜在的制約条件が生成されない場合がある。一方で、割当対象のリソースが類似していれば、同じような潜在的制約条件が生成される傾向がある。
【0079】
このため、抽出部602は、例えば、ある割当データをもとに潜在的制約条件が生成された後、新たな割当データが取得された場合、ある割当データと新たな割当データとの間で割当対象のリソースが類似するか否かを判定することにしてもよい。割当対象のリソースの類似性は、例えば、割当担当者、割当対象となるリソースの属性や数、割当により実現される業務などに基づいて判定される。
【0080】
例えば、抽出部602は、割当担当者が同じ場合に、割当対象のリソースが類似すると判定してもよい。また、抽出部602は、割当対象となるリソースの属性または数が同じ場合に、割当対象のリソースが類似すると判定してもよい。また、抽出部602は、割当により実現される業務が同じ場合に、割当対象のリソースが類似すると判定してもよい。
【0081】
ここで、割当対象のリソースが類似する場合、抽出部602は、ある割当データと同じ顕在的制約条件を用いて、新たな割当データから当該顕在的制約条件に違反するデータを抽出することにしてもよい。一方、割当対象のリソースが類似しない場合には、抽出部602は、ある割当データとは異なる顕在的制約条件を用いて、新たな割当データから当該顕在的制約条件に違反するデータを抽出することにしてもよい。
【0082】
より詳細に説明すると、例えば、抽出部602は、チームAでの潜在的制約条件の抽出に利用した顕在的制約条件を、類似するチームBでの顕在的制約条件にも利用する。これにより、チームAでの潜在的制約条件が生成された実績がある顕在的制約条件を使って、チームAと類似するチームBでの潜在的制約条件を効率的に生成することができる。
【0083】
なお、上述した割当支援サーバ201の機能部(取得部601~出力部606)は、例えば、複数のコンピュータ(例えば、割当支援サーバ201、クライアント装置202)が連携して動作することにより実現されることにしてもよい。
【0084】
(潜在的制約条件の生成例)
つぎに、
図7および
図8を用いて、潜在的制約条件の生成例について説明する。
【0085】
ここでは、あるチームの要員スケジューリングに適用して、潜在的制約条件の生成例について説明する。また、要員数を「5」とし、シフトパターン数を「4」とし、過去の割当データとして、
図4に示した過去割当データ400を例に挙げて説明する。
【0086】
まず、抽出部602は、制約条件DB220から、既知の制約条件を、顕在的制約条件として取得する。ここでは、下記式(1)に示す制約条件が、顕在的制約条件として取得された場合を想定する。下記式(1)は、全ての従業員に対して均等にシフトを割り当てるための制約条件であり、複数のリソース(要員)に一様に適用される公平性に係る制約条件の一例である。下記式(1)は、制約条件DB220内の条件ID「1」の制約条件に相当する。
【0087】
【0088】
ただし、iは、agent(要員)の添え字を示す。jは、day(日にち)の添え字を示す。kは、shift(シフト)の添え字を示す。xijkは、agent iのday jが、shift kの場合に「1」となり、それ以外の場合は「0」となる。Dkは、shift kの必要数を示す。Mは、人員数を示す。Nは、対象日数を示す。σは、均等性のばらつき許容オフセットを示す。
【0089】
例えば、抽出部602は、過去割当データ400を参照して、agentとshiftとの組み合わせごとに、対象日数N分(例えば、1月分)のデータごとに、上記式(1)を充足するか否かを判定する。そして、抽出部602は、上記式(1)を充足しない場合に、そのデータを、顕在的制約条件に違反するデータとして抽出する。
【0090】
ここで、
図7を用いて、顕在的制約条件(1)に違反するデータの集合である相反集合データの具体例について説明する。顕在的制約条件(1)は、上記式(1)に対応する。
【0091】
図7は、相反集合データの具体例を示す説明図である。
図7において、相反集合データ700-1~700-Xが示されている。各相反集合データ700-1~700-Xは、過去割当データ400内の割当データ400-1~400-Xにそれぞれ対応する。
【0092】
例えば、相反集合データ700-1は、過去割当データ400内の割当データ400-1から抽出された、顕在的制約条件(1)に違反するデータの集合である。また、相反集合データ700-Xは、過去割当データ400内の割当データ400-Xから抽出された、顕在的制約条件(1)に違反するデータの集合である。
【0093】
分類部603は、抽出された相反集合データ700-1~700-Xを、所定の基準に従って複数のグループに分類する。ここでは、要員種別で分類する場合を想定する。この場合、相反集合データ700-1~700-Xに含まれるデータが、agent(要員)ごとのグループに分類される。
【0094】
算出部604は、分類された複数のグループそれぞれの相反集合データに基づいて、リソースの割当パターンごとの相対頻度値を算出する。例えば、agent1のグループに着目すると、そのグループ(agent1)とそれ以外のグループ(agent2,3,4,5)とで、割当パターン(変数の組み合わせ)ごとの相対頻度値を算出する。
【0095】
具体的には、例えば、算出部604は、agentとshiftを変数の組み合わせ(割当パターン)として、下記式(2)を用いて、変数の組み合わせごとのリフト値を相対頻度値として算出する。ただし、l(i,k)は、agent iとshift kとの組み合わせのリフト値を示す。Σj∈Nxijkは、agent iのshift kの相反数を示す。相反数は、シフトを取ったために相反しているとして、各グループの相反集合データで「1」となっている箇所の数である。Σk∈WΣj∈Nxijkは、agent iの総相反数を示す。Σi∈MΣj∈Nxijkは、shift kの総相反数を示す。Σi∈MΣk∈WΣj∈Nxijkは、総相反数を示す。
【0096】
【0097】
算出された変数の組み合わせ(割当パターン)ごとの相対頻度値は、例えば、
図8に示すような相対頻度テーブル800に記憶される。相対頻度テーブル800は、例えば、
図3に示したメモリ302、ディスク304などの記憶装置により実現される。
【0098】
図8は、相対頻度テーブル800の記憶内容の一例を示す説明図である。
図8において、相対頻度テーブル800は、変数の組み合わせおよび相対頻度値のフィールドを有し、各フィールドに情報を設定することで、相対頻度情報(例えば、相対頻度情報800-1~800-3)をレコードとして記憶する。
【0099】
ここで、変数の組み合わせは、リソースの割当パターン(リソースと割当先との組み合わせ)を示す。相対頻度値は、変数の組み合わせの相対頻度値を示す。例えば、相対頻度情報800-1は、(agent1,shiftA)の相対頻度値「10」を示す。
【0100】
生成部605は、算出された変数の組み合わせごとの相対頻度値に基づいて、潜在的制約条件を生成する。具体的には、例えば、生成部605は、相対頻度テーブル800を参照して、相対頻度値が閾値α以上となる変数の組み合わせについての潜在的制約条件を生成する。
【0101】
ここでは、(agent1,shiftA)の相対頻度値「10」が閾値α以上である場合を想定する。この場合、生成部605は、例えば、過去割当データ400を参照して、所定期間(例えば、1ヶ月間)ごとに、agent1とshiftAの組み合わせが同時に共起する数を算出する。なお、共起とは、値が「1」となることである。
【0102】
所定期間にagent1とshiftAの組み合わせが同時に共起する数は、所定期間にagent1にshiftAを割り当てた回数に相当する。つぎに、生成部605は、例えば、所定期間ごとに算出した数のうち最小の数を境界値とする。境界値は、例えば、下記式(3)を用いて求めることができる。ただし、τは、境界値を示す。
【0103】
【0104】
境界値τは、所定期間にagent1にshiftAが少なくとも何回割り当てられているかを示す。そして、生成部605は、境界値τを用いて、下記式(4)のような、agent1とshiftAの組み合わせについての潜在的制約条件を生成する。ただし、τは、agent1がshiftAを選好する度合い(最低必要数)を示す。
【0105】
【0106】
上記式(4)は、agent1はshiftAを選好しており、所定期間N(例えば、1ヶ月)にagent1にshiftAを少なくともτ回割り当てるという潜在的制約条件を示している。
【0107】
なお、上述した説明では、所定期間ごとに算出した数のうち最小の数を境界値としたが、これに限らない。例えば、生成部605は、所定期間ごとに算出した数の平均値を境界値としてもよく、また、所定期間ごとに算出した数のうち最大の数を境界値としてもよい。
【0108】
(潜在的制約条件が顕在的制約条件のサブセットになっている場合への対処方法)
つぎに、
図9を用いて、潜在的制約条件が顕在的制約条件のサブセットになっている場合への対処方法について説明する。
【0109】
図9は、制約条件を充足する範囲を示す説明図である。
図9において、範囲901は、第1の顕在的制約条件を充足する範囲を示す。範囲902は、第2の顕在的制約条件を充足する範囲を示す。範囲903は、潜在的な制約を充足する範囲を示す。点線範囲904は、全体の空間を示す。黒点は、データ(割当結果)を示す。
【0110】
例えば、顕在的制約条件を「どの従業員も一人1回は週末勤務」とし、潜在的制約条件を「ある従業員は(子供ケアのため)週末の深夜勤務は不可」とする。この場合、潜在的制約条件が、顕在的制約条件のサブセットとなっている。このため、単純に顕在的制約条件との相反性からでは、違反とみなされず、潜在的制約条件が生成されない場合がある。
【0111】
例えば、潜在的な制約を充足する範囲903は、第1の顕在的制約条件を充足する範囲901と一部が重なっている。同様に、潜在的な制約を充足する範囲903は、第2の顕在的制約条件を充足する範囲902と一部が重なっている。
【0112】
そこで、抽出部602は、例えば、複数の顕在的制約条件において共通する条件(範囲905に相当)を、潜在的制約条件を生成するための既知の制約条件(第1の条件)としてもよい。具体的には、例えば、抽出部602は、複数の顕在的制約条件の共通性に着目して、潜在的制約条件と相反する相反候補条件として、複数の顕在的制約条件の全てを充足する条件を生成する。
【0113】
例えば、複数の顕在的制約条件を「どの従業員も一人1回は週末勤務」と「どの従業員も一人1回は深夜勤務」とする。この場合、抽出部602は、相反候補条件として、「どの従業員も一人1回は週末深夜勤務」という条件を生成する。また、抽出部602は、例えば、条件によって規定される範囲がより小さいものを相反候補条件として生成してもよい。
【0114】
そして、抽出部602は、生成した相反候補条件を、潜在的制約条件を生成するための既知の制約条件とする。この場合、抽出部602は、取得された割当データから、生成した相反候補条件に違反するデータを抽出する。これにより、潜在的制約条件が顕在的制約条件のサブセットになっている場合であっても、違反するデータを抽出して潜在的制約条件を生成することができる。
【0115】
(割当支援サーバ201の情報処理手順)
つぎに、
図10を用いて、実施の形態1にかかる割当支援サーバ201の情報処理手順について説明する。
【0116】
図10は、実施の形態1にかかる割当支援サーバ201の情報処理手順の一例を示すフローチャートである。
図10のフローチャートにおいて、まず、割当支援サーバ201は、過去の割当データを取得する(ステップS1001)。つぎに、割当支援サーバ201は、制約条件DB220から、既知の制約条件を取得する(ステップS1002)。
【0117】
そして、割当支援サーバ201は、取得した既知の制約条件のうち選択されていない未選択の制約条件を、顕在的制約条件として選択する(ステップS1003)。つぎに、割当支援サーバ201は、選択した当該顕在的制約条件に違反するデータを抽出する相反集合抽出処理を実行する(ステップS1004)。相反集合抽出処理の具体的な処理手順については、
図11を用いて後述する。
【0118】
そして、割当支援サーバ201は、取得した既知の制約条件のうち選択されていない未選択の制約条件があるか否かを判断する(ステップS1005)。ここで、未選択の制約条件がある場合(ステップS1005:Yes)、割当支援サーバ201は、ステップS1003に戻る。
【0119】
一方、未選択の制約条件がない場合(ステップS1005:No)、割当支援サーバ201は、抽出された相反集合データのうち選択されていない未選択の相反集合データを選択する(ステップS1006)。つぎに、割当支援サーバ201は、選択した相反集合データを、所定の基準に従って複数のグループに分類する(ステップS1007)。
【0120】
そして、割当支援サーバ201は、抽出された相反集合データのうち選択されていない未選択の相反集合データがあるか否かを判断する(ステップS1008)。ここで、未選択の相反集合データがある場合(ステップS1008:Yes)、割当支援サーバ201は、ステップS1006に戻る。
【0121】
一方、未選択の相反集合データがない場合(ステップS1008:No)、割当支援サーバ201は、分類した複数のグループそれぞれの相反集合データに基づいて、潜在的制約条件生成処理を実行する(ステップS1009)。潜在的制約条件生成処理の具体的な処理手順については、
図12を用いて後述する。
【0122】
そして、割当支援サーバ201は、生成した潜在的制約条件を出力して(ステップS1010)、本フローチャートによる一連の処理を終了する。
【0123】
これにより、特定の個人やチームの選好をもとに設定されるような、潜在的制約条件を自動で抽出することができる。例えば、割当支援サーバ201が、生成した潜在的制約条件をクライアント装置202に出力すると、後述の
図13に示すような制約条件表示画面1300が表示される。
【0124】
つぎに、
図11を用いて、
図10に示したステップS1004の相反集合抽出処理の具体的な処理手順について説明する。
【0125】
図11は、相反集合抽出処理の具体的処理手順の一例を示すフローチャートである。
図11のフローチャートにおいて、まず、割当支援サーバ201は、取得した過去の割当データのうち選択されていない未選択の割当データを選択する(ステップS1101)。そして、割当支援サーバ201は、選択した割当データに対する、選択した顕在的制約条件の充足判定を行う(ステップS1102)。
【0126】
つぎに、割当支援サーバ201は、充足判定の結果を参照して、選択した割当データから顕在的制約条件に違反するデータを抽出する(ステップS1103)。そして、割当支援サーバ201は、取得した過去の割当データのうち選択されていない未選択の割当データがあるか否かを判断する(ステップS1104)。
【0127】
ここで、未選択の割当データがある場合(ステップS1104:Yes)、割当支援サーバ201は、ステップS1101に戻る。一方、未選択の割当データがない場合(ステップS1104:No)、割当支援サーバ201は、相反集合抽出処理を呼び出したステップに戻る。
【0128】
これにより、各割当データの中から、顕在的制約条件を満たさない違反箇所のデータを抽出して相反集合データを得ることができる。
【0129】
つぎに、
図12を用いて、
図10に示したステップS1009の潜在的制約条件生成処理の具体的な処理手順について説明する。
【0130】
図12は、潜在的制約条件生成処理の具体的処理手順の一例を示すフローチャートである。
図12のフローチャートにおいて、まず、割当支援サーバ201は、分類した複数のグループそれぞれの相反集合データのうち選択されていない未選択の相反集合データを選択する(ステップS1201)。
【0131】
そして、割当支援サーバ201は、選択した相反集合データに基づいて、リソースの割当パターンを表す変数の組み合わせごとの相対頻度値を算出する(ステップS1202)。つぎに、割当支援サーバ201は、算出した相対頻度値が閾値α以上となる変数の組み合わせを抽出する(ステップS1203)。
【0132】
そして、割当支援サーバ201は、取得した過去の割当データを参照して、抽出した変数の組み合わせについての潜在的制約条件を生成する(ステップS1204)。つぎに、割当支援サーバ201は、分類した複数のグループそれぞれの相反集合データのうち選択されていない未選択の相反集合データがあるか否かを判断する(ステップS1205)。
【0133】
ここで、未選択の相反集合データがある場合(ステップS1205:Yes)、割当支援サーバ201は、ステップS1201に戻る。一方、未選択の相反集合データがない場合(ステップS1205:No)、割当支援サーバ201は、潜在的制約条件生成処理を呼び出したステップに戻る。
【0134】
これにより、個人やチームごとに分類した相反集合データから算出した相対頻度値をもとに、個人やチーム内で頻出している割当パターン(変数の組み合わせ)を検出し、その割当パターンについての制約条件(潜在的制約条件)を抽出することができる。
【0135】
(制約条件表示画面1300の画面例)
つぎに、
図13を用いて、クライアント装置202に表示される制約条件表示画面1300について説明する。
【0136】
図13は、制約条件表示画面の画面例を示す説明図である。
図13において、制約条件表示画面1300は、割当支援サーバ201により生成されたチームごとの潜在的制約条件を示す操作画面の一例である。制約条件表示画面1300によれば、割当担当者は、各チームの要員スケジューリングを作成する際に考慮すべき制約条件として、ヒアリングでは事前に聞き出すことが難しいような潜在的な制約条件を把握することができる。また、割当担当者は、チーム間の潜在的制約条件を比較して、各チームの傾向を分析することができる。
【0137】
例えば、割当担当者は、TeamIのAgent1さんはShiftA(22:00-06:00)を選好しており、それについての潜在的制約条件が存在することを把握することができる。なお、制約条件表示画面1300において、例えば、不図示の入力装置を用いたユーザの操作入力により、Team1を選択すると、潜在的制約条件の詳細な内容を確認可能であってもよい。
【0138】
以上説明したように、実施の形態1にかかる割当支援サーバ201によれば、過去の割当データを取得し、取得した過去の割当データから顕在的制約条件に違反するデータを抽出し、抽出したデータを、所定の基準に従って複数のグループに分類し、そして、割当支援サーバ201によれば、分類した複数のグループそれぞれのデータに基づいて、複数のリソースに含まれるリソースの割当パターンの相対頻度値を算出し、算出した相対頻度値に基づいて、割当パターンについての潜在的制約条件を生成することができる。
【0139】
これにより、特定の個人やチームの選好に基づいて設定されるような潜在的な制約条件を自動で抽出することができる。
【0140】
また、割当支援サーバ201によれば、算出した相対頻度値が閾値α以上となるリソースの割当パターン(変数の組み合わせ)を特定し、過去の割当データに基づいて、特定した割当パターンについての潜在的制約条件を生成することができる。
【0141】
これにより、特定の個人やチーム内で頻出している割当パターン(変数の組み合わせ)を検出して、その割当パターンについての制約条件(潜在的制約条件)を抽出することができる。
【0142】
また、割当支援サーバ201によれば、取得した過去の割当データから、複数のリソースに一様に適用される公平性に係る顕在的制約条件に違反するデータを抽出することができる。
【0143】
これにより、特定の個人やチームの選好に基づいて設定されるような潜在的な制約条件を精度よく抽出することができる。
【0144】
また、割当支援サーバ201によれば、抽出したデータ(相反集合データ)を、所定の期間ごとに、所定の基準に従って複数のグループに分類することができる。
【0145】
これにより、時期による影響(例えば、繁忙期の季節、新人の期間が終了など)で、リソース割当を最適化するための制約条件が経時変化する場合に対応することができる。
【0146】
また、割当支援サーバ201によれば、ある割当データをもとに潜在的制約条件が生成された後、新たな割当データが取得した場合、ある割当データと新たな割当データとの間で割当対象のリソースが類似するか否かを判定することができる。そして、割当支援サーバ201によれば、割当対象のリソースが類似する場合、ある割当データと同じ顕在的制約条件を用いて、新たな割当データから当該顕在的制約条件に違反するデータを抽出することができる。
【0147】
これにより、割当対象が類似する別の割当データで潜在的制約条件が生成された実績のある顕在的制約条件を用いることで、潜在的制約条件を効率的に生成することができる。
【0148】
また、割当支援サーバ201によれば、複数の顕在的制約条件において共通する条件を相反候補条件として生成し、生成した相反候補条件を既知の制約条件(第1の条件)として、取得した割当データから相反候補条件に違反するデータを抽出することができる。
【0149】
これにより、潜在的制約条件が顕在的制約条件のサブセットになっている場合であっても、違反するデータを抽出して潜在的制約条件を生成することができる。
【0150】
また、割当支援サーバ201によれば、生成した潜在的制約条件を出力することができる。
【0151】
これにより、特定の個人やチームの選好に基づいて設定されるような潜在的な制約条件を割当担当者等に提示することができる。
【0152】
(潜在的制約条件のその他の生成例)
ここで、潜在的制約条件のその他の生成例として、病院などの手術室スケジューリングに適用する場合について説明する。
【0153】
手術室スケジューリングの場合、制約条件としては、以下のような条件が挙げられる。
【0154】
・顕在的制約条件の例
『どの手術も必ず手術回数(=手術室使用回数)が月合計でX回以下(あるいは手術時間がX時間以下)』
『どの手術にも必ずX人以上の執刀助手及び看護師をつける』
『経営維持/改善(一定の手術室稼働率達成)のため均等に部屋を割り当てる』
『経営維持/改善(一定のリソース稼働率達成)のため執刀助手や看護師は均等に割り当てる』
『経営状況の把握を容易にするため診療科毎に事前に部屋(の枠)を割り当てる』
【0155】
・潜在的制約条件の例
『ある手術は(特殊な機器使用のため)特定の部屋でのみ実施』
『ある手術は(移動や運搬などが必要のため)特定の2つの部屋で実施』
『ある手術は(特殊な技能が必要のため)特定の医師/執刀助手/看護師の組みを割り当てる』
『ある診療科での手術は(急患を扱うため)事前に割り当てられている部屋(の枠)以外の部屋を割り当ててもよい』
【0156】
処理の流れは、要員スケジューリングの場合と同様である。ただし、割当対象とするリソースおよび割当先は、例えば、以下となる。
【0157】
リソース:room(部屋)およびequipment(機器)
割当先:operation(手術)
【0158】
ここで、潜在的制約条件の抽出に利用する顕在的制約条件を下記式(5)とする。下記式(5)は、経営維持/改善のため均等に部屋を割り当てるための制約条件である。
【0159】
【0160】
ただし、iは、operationの添え字を示す。jは、dayの添え字を示す。kは、roomの添え字を示す。lは、equipmentの添え字を示す。xijklは、day jでのroom k,equipment lをoperation iで使用する場合に「1」となり、それ以外の場合は「0」となる。Oiは、operation iの実施回数を示す。Mは、部屋数を示す。Nは、対象日数を示す。Lは、機器数を示す。σは、均等性のばらつき許容オフセットを示す。
【0161】
この場合、割当支援サーバ201により、例えば、下記式(6)および(7)を用いて表されるような潜在的制約条件が生成される。ただし、τは、operation1をroomA,equipmentIで実施する度合い(最低必要数)示す。
【0162】
【0163】
上記式(6)は、手術1では部屋Aおよび機器Iを使用するという潜在的制約条件を示している。
【0164】
(実施の形態2)
つぎに、実施の形態2にかかる割当支援サーバ201について説明する。実施の形態2では、実施の形態1にかかる割当支援サーバ201により生成された潜在的制約条件をリソース割当の最適化に活用する場合について説明する。実施の形態1で説明した箇所と同一の箇所については、同一符号を付して図示および説明を省略する。
【0165】
(割当支援サーバ201の機能的構成例)
まず、
図14を用いて、実施の形態2にかかる割当支援サーバ201の機能的構成例について説明する。
【0166】
図14は、実施の形態2にかかる割当支援サーバ201の機能的構成例を示すブロック図である。
図14において、割当支援サーバ201は、取得部601と、抽出部602と、分類部603と、算出部604と、生成部605と、出力部606と、第2の算出部1401と、記録部1402と、最適化処理部1403と、を含む。取得部601~出力部606、第2の算出部1401~最適化処理部1403は制御部となる機能であり、具体的には、例えば、
図3に示したメモリ302、ディスク304、可搬型記録媒体307などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、通信I/F305により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、ディスク304などの記憶装置に記憶される。ここでは、実施の形態1にかかる割当支援サーバ201と異なる機能部についてのみ説明する。
【0167】
第2の算出部1401は、生成部605によって生成された潜在的制約条件の過去の割当データにおける充足率を算出する。過去の割当データは、取得部601によって取得される割当データであり、例えば、
図4に示した過去割当データ400である。充足率は、過去の割当データが潜在的制約条件をどの程度充足しているかを示す指標値である。
【0168】
具体的には、例えば、第2の算出部1401は、生成された潜在的制約条件について、過去の割当データ上での違反の判定を行う。そして、第2の算出部1401は、潜在的制約条件が対象とする変数の組み合わせの全体箇所における違反していない箇所(全体箇所-違反箇所)の割合を充足率として算出する。
【0169】
例えば、要員スケジューリングに適用する場合を想定し、潜在的制約条件が対象とする人員数を「3」、シフトパターンを「2」、対象日数を「30」とすると、全体箇所は「3×2×30=180」となる。また、全体箇所のうちの違反箇所(ある人のある日のシフトを1として、その違反合計数)を「14」とする。この場合、充足率は、例えば、「(180-14)/180≒0.92」となる。
【0170】
記録部1402は、過去の割当データと潜在的制約条件と対応付けて、算出された充足率を記録する。具体的には、例えば、記録部1402は、過去の割当データと潜在的制約条件と充足率とを対応付けて、後述の
図16に示すような制約条件付きDB1600に記録する。制約条件付きDB1600は、例えば、メモリ302、ディスク304などの記憶装置により実現される。
【0171】
なお、記録部1402は、例えば、算出された充足率が一定値(後述する閾値β)以上の場合にのみ、過去の割当データと潜在的制約条件とを対応付けて記録することにしてもよい。
【0172】
最適化処理部1403は、最適化対象データと過去の割当データとの類似度を算出する。ここで、最適化対象データは、例えば、最適化の対象となる割当データである。最適化対象データは、取得部601によって取得される。類似度は、最適化対象データと過去の割当データとがどの程度類似しているかを示す指標値である。
【0173】
最適化対象データの過去の割当データとの類似度は、例えば、最適化対象データの問題の複雑さ(変数の数など)、割当対象のリソースの共通性から判定される。また、要員スケジューリングの場合は、割当対象とする人員数やシフトパターンの類似性などから、類似度を判定することにしてもよい。
【0174】
具体的には、例えば、最適化処理部1403は、問題の変数の数が同一で、割当対象のリソースが共通する場合に、最適化対象データと過去の割当データとの類似度を「大」としてもよい。また、最適化処理部1403は、問題の変数の数が同一で、割当対象のリソースが共通ではない場合に、最適化対象データと過去の割当データとの類似度を「中」としてもよい。また、最適化処理部1403は、問題の変数の数が異なり、割当対象のリソースが共通ではない場合に、最適化対象データと過去の割当データとの類似度を「小」としてもよい。
【0175】
最適化処理部1403は、算出された過去の割当データにおける潜在的制約条件の充足率と、算出した最適化対象データと当該過去の割当データとの類似度とに基づいて、当該潜在的制約条件を最適化対象データに適用するか否かを決定する。
【0176】
具体的には、例えば、最適化処理部1403は、充足率が閾値β以上で、かつ、類似度が閾値γ以上の場合に、最適化対象データに潜在的制約条件を適用すると決定してもよい。また、最適化処理部1403は、充足率が閾値β未満、または、類似度が閾値γ未満の場合には、最適化対象データに潜在的制約条件を適用しないと決定してもよい。閾値βおよび閾値γは、任意に設定可能である。
【0177】
なお、潜在的制約条件を用いて最適化対象データを最適化する処理は、割当支援サーバ201において行われてもよく、また、割当支援サーバ201とは異なる他のコンピュータ(例えば、クライアント装置202)において行われてもよい。
【0178】
(割当支援サーバ201の動作例)
ここで、
図15~
図17を用いて、実施の形態2にかかる割当支援サーバ201の動作例について説明する。
【0179】
図15は、過去の割当データの具体例を示す説明図である。
図15において、割当データD1-1は、問題D1(割当対象:人員、複雑さ:対象(人員)数「3」、パターン(シフト)数「3」、…)に対する割当結果を示す割当データの一例である。割当データD2-1は、問題D2(割当対象:人員、複雑さ:対象(人員)数「2」、パターン(シフト)数「3」、…)に対する割当結果を示す割当データの一例である。割当データD3-1は、問題D3(割当対象:場所、複雑さ:対象(場所)数「3」、パターン(時間帯)数「2」、…)に対する割当結果を示す割当データの一例である。
【0180】
ここで、割当支援サーバ201により生成された潜在的制約条件を、下記式(8)とする。また、この潜在的制約条件の条件IDを「Cx」とする。
【0181】
【0182】
この場合、第2の算出部1401は、例えば、上記式(8)を用いて、各割当データD1-1,D2-1,D3-1における潜在的制約条件Cxの充足率を算出する。
【0183】
そして、記録部1402は、各割当データD1-1,D2-1,D3-1と潜在的制約条件Cxと対応付けて、算出された充足率を
図16に示すような制約条件付きDB1600に記録する。ここで、制約条件付きDB1600の記憶内容について説明する。
【0184】
図16は、制約条件付きDB1600の記憶内容の一例を示す説明図である。
図16において、制約条件付きDB1600は、条件ID、データIDおよび充足率のフィールドを有し、各フィールドに情報を設定することで、制約条件付きデータ(例えば、制約条件付きデータ1600-1~1600-3)をレコードとして記憶する。
【0185】
ここで、条件IDは、制約条件(潜在的制約条件)を一意に識別する識別子である。データIDは、過去の割当データを一意に識別する識別子である。充足率は、データIDの割当データにおける条件IDの潜在的制約条件の充足率を示す。例えば、制約条件付きデータ1600-1は、過去の割当データD1-1における潜在的制約条件Cxの充足率「1.0」を示す。
【0186】
図17は、過去の割当データとの類似度の算出例を示す説明図である。
図17において、最適化処理部1403は、最適化対象データと過去の割当データD1-1,D2-1,D3-1との類似度を算出する。ここでは、最適化対象データの問題1700を「割当対象:人員、複雑さ:対象(人員)数「3」、パターン(シフト)数「3」、…」とする。
【0187】
この場合、最適化処理部1403は、最適化対象データの問題1700と問題D1とを比較して、割当対象が同一(人員)で、対象(人員)数およびパターン(シフト)数が同一の過去の割当データD1-1との類似度を「大」とする。また、最適化処理部1403は、最適化対象データの問題1700と問題D2とを比較して、割当対象が同一(人員)で、対象(人員)数が異なる過去の割当データD2-1との類似度を「中」とする。また、最適化処理部1403は、最適化対象データの問題1700と問題D3とを比較して、割当対象が異なる過去の割当データD3-1との類似度を「小」とする。
【0188】
そして、最適化処理部1403は、類似度が「大」の過去の割当データを特定する(閾値γ=大)。ここでは、割当データD1-1が特定される。つぎに、最適化処理部1403は、制約条件付きDB1600を参照して、割当データD1-1における潜在的制約条件の充足率を特定する。ここでは、潜在的制約条件Cxの充足率「1.0」が特定される。
【0189】
そして、最適化処理部1403は、特定した潜在的制約条件Cxの充足率「1.0」が閾値β以上の場合、最適化対象データに潜在的制約条件Cxを適用すると判定する。一方、最適化処理部1403は、潜在的制約条件Cxの充足率「1.0」が閾値β未満の場合、最適化対象データに潜在的制約条件Cxを適用しないと判定する。
【0190】
ここで、閾値βを「β=0.8」とすると、潜在的制約条件Cxの充足率「1.0」が閾値β以上のため、最適化対象データに潜在的制約条件Cxを適用すると判定される。
【0191】
(割当支援サーバ201の最適化処理手順)
つぎに、
図18および
図19を用いて、実施の形態2にかかる割当支援サーバ201の最適化処理手順について説明する。この最適化処理は、例えば、
図10に示した割当支援サーバ201の情報処理が少なくとも1回以上実行された後に実行される。
【0192】
図18および
図19は、実施の形態2にかかる割当支援サーバ201の最適化処理手順の一例を示すフローチャートである。
図18のフローチャートにおいて、まず、割当支援サーバ201は、過去の割当データを取得する(ステップS1801)。つぎに、割当支援サーバ201は、制約条件DB220を参照して、生成された潜在的制約条件のうち選択されていない未選択の潜在的制約条件を選択する(ステップS1802)。
【0193】
つぎに、割当支援サーバ201は、取得した過去の割当データのうち選択されていない未選択の割当データを選択する(ステップS1803)。そして、割当支援サーバ201は、選択した割当データに対する、選択した潜在的制約条件の充足判定を行うことにより充足率を算出する(ステップS1804)。
【0194】
つぎに、割当支援サーバ201は、算出した充足率が閾値β以上であるか否かを判断する(ステップS1805)。ここで、充足率が閾値β未満の場合(ステップS1805:No)、割当支援サーバ201は、ステップS1807に移行する。
【0195】
一方、充足率が閾値β以上の場合(ステップS1805:Yes)、割当支援サーバ201は、選択した割当データと、選択した潜在的制約条件と、算出した充足率とを対応付けて表す制約条件付きデータを制約条件付きDB1600に記録する(ステップS1806)。そして、割当支援サーバ201は、取得した過去の割当データのうち選択されていない未選択の割当データがあるか否かを判断する(ステップS1807)。
【0196】
ここで、未選択の割当データがある場合(ステップS1807:Yes)、割当支援サーバ201は、ステップS1803に戻る。一方、未選択の割当データがない場合には(ステップS1807:No)、割当支援サーバ201は、生成された潜在的制約条件のうち選択されていない未選択の潜在的制約条件があるか否かを判断する(ステップS1808)。
【0197】
ここで、未選択の潜在的制約条件がある場合(ステップS1808:Yes)、割当支援サーバ201は、ステップS1802に戻る。一方、未選択の潜在的制約条件がない場合(ステップS1808:No)、割当支援サーバ201は、
図19に示すステップS1901に移行する。
【0198】
図19のフローチャートにおいて、まず、割当支援サーバ201は、最適化対象データを取得する(ステップS1901)。つぎに、割当支援サーバ201は、制約条件付きDB1600から選択されていない未選択の制約条件付きデータを選択する(ステップS1902)。
【0199】
そして、割当支援サーバ201は、選択した制約条件付きデータを参照して、最適化対象データと過去の割当データとの類似度を算出する(ステップS1903)。つぎに、割当支援サーバ201は、算出した類似度が閾値γ以上であるか否かを判断する(ステップS1904)。
【0200】
ここで、類似度が閾値γ未満の場合(ステップS1904:No)、割当支援サーバ201は、ステップS1906に移行する。一方、類似度が閾値γ以上の場合(ステップS1904:Yes)、割当支援サーバ201は、選択した潜在的制約条件を蓄積する(ステップS1905)。
【0201】
そして、割当支援サーバ201は、制約条件付きDB1600から選択されていない未選択の制約条件付きデータがあるか否かを判断する(ステップS1906)。ここで、未選択の制約条件付きデータがある場合(ステップS1906:Yes)、割当支援サーバ201は、ステップS1902に戻る。
【0202】
一方、未選択の制約条件付きデータがない場合(ステップS1906:No)、割当支援サーバ201は、最適化対象データと対応付けて、蓄積した潜在的制約条件を出力して(ステップS1907)、本フローチャートによる一連の処理を終了する。
【0203】
これにより、最適化対象データの最適化に用いる潜在的制約条件を決定することができる。なお、ステップS1907において、割当支援サーバ201は、蓄積した潜在的制約条件を用いて、最適化対象データを最適化する処理を実行することにしてもよい。
【0204】
(判定結果画面2000の画面例)
ここで、
図20を用いて、クライアント装置202に表示される判定結果画面2000について説明する。
【0205】
図20は、判定結果画面の画面例を示す説明図である。
図20において、判定結果画面2000は、最適化対象データに対して潜在的制約条件の充足判定を行った結果を示す操作画面の一例である。判定結果画面2000によれば、割当担当者は、Agent1さんの2020/4/3のシフト(09:00-17:00)が制約に違反していることがわかる。
【0206】
この場合、割当担当者は、例えば、既存の最適化アルゴリズムの条件として潜在的制約条件を与えることで、最適化対象データの最適化を行うことにしてもよい。
【0207】
以上説明したように、実施の形態2にかかる割当支援サーバ201によれば、生成した潜在的制約条件に対する過去の割当データの充足率を算出し、最適化対象データと過去の割当データとの類似度を算出し、算出した充足率と類似度とに基づいて、潜在的制約条件を最適化対象データに適用するか否かを決定することができる。
【0208】
これにより、過去の割当データとの類似性から、最適化対象データに対して適用すべき潜在的制約条件を決定することができる。例えば、最適化対象データと類似する過去の割当データに適用したときの充足率が高い潜在的制約条件を、最適化対象データの最適化に用いる条件に決定することができる。
【0209】
(実施の形態3)
つぎに、実施の形態3にかかる割当支援サーバ201について説明する。実施の形態3では、過去の割当データが少ないために、相反集合データが十分に抽出されないときの対処方法について説明する。実施の形態1,2で説明した箇所と同一の箇所については、同一符号を付して図示および説明を省略する。
【0210】
(割当支援サーバ201の機能的構成例)
まず、実施の形態3にかかる割当支援サーバ201の機能的構成例について説明する。ただし、実施の形態3にかかる割当支援サーバ201の機能的構成例は、実施の形態1にかかる割当支援サーバ201の機能的構成例と同様のため、図示を省略する。ここでは、実施の形態1にかかる割当支援サーバ201と異なる機能について説明する。
【0211】
取得部601は、第1の割当データと、第1の割当データに対して修正が実施された第2の割当データとを取得する。ここで、第1の割当データは、既知の制約条件に基づいて最適化された割当データであり、機械(コンピュータ)により自動で割り当てられた割当結果を示す。既知の制約条件は、例えば、顕在的制約条件である。
【0212】
第2の割当データは、例えば、割当担当者などの人手により第1の割当データに対して修正が行われた割当データである。具体的には、例えば、取得部601は、クライアント装置202から、第1の割当データと第2の割当データとを取得する。また、取得部601は、不図示の入力装置を用いたユーザの操作により、入力された第1の割当データと第2の割当データとを取得してもよい。
【0213】
以下の説明では、第1の割当データを「機械割当データ」と表記し、第2の割当データを「添削割当データ」と表記する場合がある。
【0214】
抽出部602は、機械割当データと添削割当データとを比較して、機械割当データと添削割当データとの差分を特定する。また、抽出部602は、機械割当データに対する顕在的制約条件の充足判定を行う。また、抽出部602は、添削割当データに対する顕在的制約条件の充足判定を行う。
【0215】
そして、抽出部602は、機械割当データに対する顕在的制約条件の充足判定の結果と、添削割当データに対する顕在的制約条件の充足判定の結果とに基づいて、機械割当データと添削割当データとの差分のうち、顕在的制約条件の充足判定の結果が変化した箇所を、顕在的制約条件に違反するデータとして抽出する。
【0216】
具体的には、例えば、抽出部602は、機械割当データと添削割当データとの差分のうち、機械割当データでは充足しており、添削割当データでは充足していない箇所を、顕在的制約条件に違反するデータとして抽出する。すなわち、抽出部602は、修正により条件の充足が変化しているので、条件(の相反)に関係するデータ区間として抽出する。
【0217】
また、抽出部602は、機械割当データと添削割当データとの差分のうち、機械割当データでは充足しておらず、添削割当データでは充足している箇所を、顕在的制約条件に違反するデータとして抽出する。すなわち、抽出部602は、修正により条件の充足が変化しているので、条件(の相反)に関係するデータ区間として抽出する。
【0218】
抽出部602は、取得された過去の割当データの数が所定数未満の場合に、機械割当データと添削割当データとの差分から顕在的制約条件に違反するデータを抽出する処理を実行することにしてもよい。所定数は、任意に設定可能である。すなわち、過去の割当データだけでは十分な相反集合データが得られない場合に、機械割当データと添削割当データとを利用した相反集合データの抽出を行うことにしてもよい。
【0219】
(割当支援サーバ201の動作例)
つぎに、
図21Aおよび
図21Bを用いて、実施の形態3にかかる割当支援サーバ201の動作例について説明する。
【0220】
図21Aおよび
図21Bは、実施の形態3にかかる割当支援サーバ201の動作例を示す説明図である。
図21Aにおいて、機械割当データ2101と添削割当データ2102とが示されている。割当支援サーバ201は、機械割当データ2101に対する顕在的制約条件の充足判定を行う。
【0221】
充足判定結果2103は、機械割当データ2101に対する顕在的制約条件の充足判定の結果を示す。割当支援サーバ201は、添削割当データ2102に対する顕在的制約条件の充足判定を行う。充足判定結果2104は、添削割当データ2102に対する顕在的制約条件の充足判定の結果を示す。
【0222】
図21Bにおいて、割当支援サーバ201は、機械割当データ2101と添削割当データ2102とを比較して、機械割当データ2101と添削割当データ2102との差分データ2105を作成する。また、割当支援サーバ201は、充足判定結果2103と充足判定結果2104とを比較して、充足判定結果2103と充足判定結果2104との差分データ2106を作成する。
【0223】
そして、割当支援サーバ201は、差分データ2106を参照して、機械割当データ2101と添削割当データ2102との差分データ2105のうち、充足判定の結果が変化した箇所を、顕在的制約条件に違反するデータとして抽出する。これにより、相反集合データ2107が抽出される。
【0224】
なお、割当支援サーバ201は、機械割当データ2101における顕在的制約条件の充足率と、添削割当データ2102における顕在的制約条件の充足率との差が一定値以上の場合に、充足判定の結果が変化した箇所を、顕在的制約条件に違反するデータとして抽出することにしてもよい。これにより、相反集合データを効率的に収集することができる。
【0225】
(割当支援サーバ201の情報処理手順)
つぎに、
図22および
図23を用いて、実施の形態3にかかる割当支援サーバ201の情報処理手順について説明する。
【0226】
図22および
図23は、実施の形態3にかかる割当支援サーバ201の情報処理手順の一例を示すフローチャートである。
図22のフローチャートにおいて、まず、割当支援サーバ201は、過去の割当データを取得する(ステップS2201)。つぎに、割当支援サーバ201は、制約条件DB220から、既知の制約条件を取得する(ステップS2202)。
【0227】
そして、割当支援サーバ201は、取得した過去の割当データの数が一定数以上であるか否かを判断する(ステップS2203)。ここで、一定数以上の場合(ステップS2203:Yes)、割当支援サーバ201は、取得した既知の制約条件のうち選択されていない未選択の制約条件を、顕在的制約条件として選択する(ステップS2204)。
【0228】
つぎに、割当支援サーバ201は、選択した当該顕在的制約条件に違反するデータを抽出する第1の相反集合抽出処理を実行する(ステップS2205)。なお、第1の相反集合抽出処理の具体的な処理手順については、
図11に示した相反集合抽出処理の具体的な処理手順と同様のため、図示および説明を省略する。
【0229】
そして、割当支援サーバ201は、取得した既知の制約条件のうち選択されていない未選択の制約条件があるか否かを判断する(ステップS2206)。ここで、未選択の制約条件がある場合(ステップS2206:Yes)、割当支援サーバ201は、ステップS2204に戻る。
【0230】
一方、未選択の制約条件がない場合(ステップS2206:No)、割当支援サーバ201は、抽出された相反集合データのうち選択されていない未選択の相反集合データを選択する(ステップS2207)。つぎに、割当支援サーバ201は、選択した相反集合データを、所定の基準に従って複数のグループに分類する(ステップS2208)。
【0231】
そして、割当支援サーバ201は、抽出された相反集合データのうち選択されていない未選択の相反集合データがあるか否かを判断する(ステップS2209)。ここで、未選択の相反集合データがある場合(ステップS2209:Yes)、割当支援サーバ201は、ステップS2207に戻る。
【0232】
一方、未選択の相反集合データがない場合(ステップS2209:No)、割当支援サーバ201は、分類した複数のグループそれぞれの相反集合データに基づいて、潜在的制約条件生成処理を実行する(ステップS2210)。なお、潜在的制約条件生成処理の具体的な処理手順については、
図12に示した潜在的制約条件生成処理の具体的な処理手順と同様ため、図示および説明を省略する。
【0233】
そして、割当支援サーバ201は、生成した潜在的制約条件を出力して(ステップS2211)、本フローチャートによる一連の処理を終了する。また、ステップS2203において、一定数未満の場合には(ステップS2203:No)、割当支援サーバ201は、
図23に示すステップS2301に移行する。
【0234】
図23のフローチャートにおいて、まず、割当支援サーバ201は、機械割当データと添削割当データとの1以上のペアを取得する(ステップS2301)。そして、割当支援サーバ201は、取得した既知の制約条件のうち選択されていない未選択の制約条件を、顕在的制約条件として選択する(ステップS2302)。
【0235】
つぎに、割当支援サーバ201は、選択した当該顕在的制約条件に違反するデータを抽出する第2の相反集合抽出処理を実行する(ステップS2303)。第2の相反集合抽出処理の具体的な処理手順については、
図24を用いて後述する。そして、割当支援サーバ201は、取得した既知の制約条件のうち選択されていない未選択の制約条件があるか否かを判断する(ステップS2304)。
【0236】
ここで、未選択の制約条件がある場合(ステップS2304:Yes)、割当支援サーバ201は、ステップS2302に戻る。一方、未選択の制約条件がない場合(ステップS2304:No)、割当支援サーバ201は、
図22に示したステップS2207に戻る。
【0237】
これにより、特定の個人やチームの選好をもとに設定されるような、潜在的制約条件を自動で抽出することができる。また、取得した過去の割当データの数が一定数に満たないときは、割当担当者の機械割当(結果)に対するフィードバックを利用して、相反集合データを得ることができる。
【0238】
つぎに、
図24を用いて、
図23に示したステップS2303の第2の相反集合抽出処理の具体的な処理手順について説明する。
【0239】
図24は、第2の相反集合抽出処理の具体的処理手順の一例を示すフローチャートである。
図24のフローチャートにおいて、まず、割当支援サーバ201は、取得した機械割当データと添削割当データとのペアのうち選択されていない未選択のペア(機械割当/添削割当データ)を選択する(ステップS2401)。
【0240】
そして、割当支援サーバ201は、選択した機械割当/添削割当データのうちの機械割当データに対する、選択した顕在的制約条件の充足判定を行う(ステップS2402)。つぎに、割当支援サーバ201は、選択した機械割当/添削割当データのうちの添削割当データに対する、選択した顕在的制約条件の充足判定を行う(ステップS2403)。
【0241】
そして、割当支援サーバ201は、機械割当データにおける顕在的制約条件の充足率と、添削割当データにおける顕在的制約条件の充足率との差が一定値以上であるか否かを判断する(ステップS2404)。ここで、一定値未満の場合(ステップS2404:No)、割当支援サーバ201は、ステップS2406に移行する。
【0242】
一方、一定値以上の場合(ステップS2404:Yes)、機械割当データと添削割当データとの差分のうち、充足判定の結果が変化した箇所を、顕在的制約条件に違反するデータとして抽出する(ステップS2405)。そして、割当支援サーバ201は、取得した機械割当データと添削割当データとのペアのうち選択されていない未選択のペア(機械割当/添削割当データ)があるか否かを判断する(ステップS2406)。
【0243】
ここで、未選択の機械割当/添削割当データがある場合(ステップS2406:Yes)、割当支援サーバ201は、ステップS2401に戻る。一方、未選択の機械割当/添削割当データがない場合(ステップS2406:No)、割当支援サーバ201は、第2の相反集合抽出処理を呼び出したステップに戻る。
【0244】
これにより、既知の制約条件に基づいて最適化した割当データ(機械割当データ)と、それに対して割当担当者が修正したデータ(添削割当データ)との差分のうち、既知の制約条件の充足率が変化した部分を相反集合データとして抽出することができる。
【0245】
以上説明したように、実施の形態3にかかる割当支援サーバ201によれば、既知の条件に基づいて最適化された機械割当データと、機械割当データに対して修正が実施された添削割当データとを取得することができる。そして、割当支援サーバ201によれば、機械割当データに対する顕在的制約条件の充足判定の結果と、添削割当データに対する顕在的制約条件の充足判定の結果とに基づいて、機械割当データと添削割当データとの差分のうち、顕在的制約条件の充足判定の結果が変化した箇所を、顕在的制約条件に違反するデータとして抽出することができる。
【0246】
これにより、割当担当者の機械割当(結果)に対するフィードバックを利用して、既知の制約条件に違反する相反集合データを得ることができる。例えば、割当担当者が機械割当データを修正する場合、暗黙的に把握している様々な条件を考慮して修正を行う可能性がある。したがって、単純に機械割当データと添削割当データとの差分を相反データとしてしまうと、様々な条件に関するデータが混在するおそれがある。これに対して、割当支援サーバ201によれば、機械割当データと添削割当データとの差分のうち、ある既知の制約条件の充足率が変化する部分を抽出できるため、特定の潜在的制約条件に関わる相反データを抽出することができる。
【0247】
また、割当支援サーバ201によれば、取得した過去の割当データの数が所定数未満の場合に、機械割当データと添削割当データとの差分のうち、顕在的制約条件の充足判定の結果が変化した箇所を、顕在的制約条件に違反するデータとして抽出することができる。
【0248】
これにより、過去の割当データだけでは十分な相反集合データが得られない場合に、割当担当者の機械割当(結果)に対するフィードバックを利用して、既知の制約条件に違反する相反集合データを抽出することができる。
【0249】
これらのことから、実施の形態1~3にかかる割当支援サーバ201(情報処理装置101)によれば、割当担当者による事前の入念なヒアリングなどを行うことなく、リソース割当を最適化するための制約条件を自動で抽出することができる。また、割当支援サーバ201(情報処理装置101)によれば、抽出した制約条件(潜在的制約条件)を最適化アルゴリズムの条件として活用することで、精度の高いリソース割当を実現することができる。また、割当支援サーバ201(情報処理装置101)によれば、抽出した制約条件(潜在的制約条件)を用いて、過去のリソース割当の客観的な評価を行うことが可能となり、割当担当者自身も気付いていないような条件を発見してチーム運営等に活用することができる。
【0250】
なお、各実施の形態1~3は、矛盾の無い範囲で組み合わせて実施することができる。例えば、実施の形態3にかかる割当支援サーバ201は、実施の形態2にかかる割当支援サーバ201と同一の機能を有することにしてもよい。
【0251】
なお、本実施の形態で説明した情報処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本情報処理プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、DVD、USBメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本情報処理プログラムは、インターネット等のネットワークを介して配布してもよい。
【0252】
また、本実施の形態で説明した割当支援サーバ201(情報処理装置101)は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けICやFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。
【0253】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0254】
(付記1)複数の割当先に対する複数のリソースの割当結果を示す割当データを取得し、
取得した前記割当データから、第1の条件に違反するデータを抽出し、
抽出した前記データを、所定の基準に従って複数のグループに分類し、
分類した前記複数のグループそれぞれのデータに基づいて、前記複数のリソースに含まれるリソースの割当パターンの出現頻度に関する指標値を算出し、
算出した前記指標値に基づいて、前記割当パターンについての第2の条件を生成する、
処理を実行する制御部を有することを特徴とする情報処理装置。
【0255】
(付記2)前記制御部は、
算出した前記指標値が閾値以上となるリソースの割当パターンを特定し、
特定した前記割当パターンについて、前記割当データに基づいて、前記第1の条件と相反する関係にある第2の条件を生成する、
ことを特徴とする付記1に記載の情報処理装置。
【0256】
(付記3)前記制御部は、
生成した前記第2の条件に対する過去の割当データの充足率を算出し、
最適化対象データと前記過去の割当データとの類似度を算出し、
算出した前記充足率と前記類似度とに基づいて、前記第2の条件を前記最適化対象データに適用するか否かを決定する、
ことを特徴とする付記1または2に記載の情報処理装置。
【0257】
(付記4)既知の条件に基づいて最適化された第1の割当データと、前記第1の割当データに対して修正が実施された第2の割当データとを取得し、
前記第1の割当データに対する前記第1の条件の充足判定の結果と、前記第2の割当データに対する前記第1の条件の充足判定の結果とに基づいて、前記第1の割当データと前記第2の割当データとの差分のうち、前記第1の条件の充足判定の結果が変化した箇所を、前記第1の条件に違反するデータとして抽出する、
ことを特徴とする付記1~3のいずれか一つに記載の情報処理装置。
【0258】
(付記5)前記制御部は、
取得した前記割当データの数が所定数未満の場合に、前記第1の割当データと前記第2の割当データとの差分のうち、前記第1の条件の充足判定の結果が変化した箇所を、前記第1の条件に違反するデータとして抽出する、ことを特徴とする付記4に記載の情報処理装置。
【0259】
(付記6)前記第1の条件は、前記複数のリソースに一様に適用される、公平性に係る条件である、ことを特徴とする付記1~5のいずれか一つに記載の情報処理装置。
【0260】
(付記7)前記制御部は、
抽出した前記データを、所定の期間ごとに、前記所定の基準に従って複数のグループに分類する、ことを特徴とする付記1~6のいずれか一つに記載の情報処理装置。
【0261】
(付記8)前記制御部は、
前記第2の条件が生成された後、新たな割当データを取得した場合、前記新たな割当データと前記割当データとの間で割当対象のリソースが類似するか否かを判定し、
前記割当対象のリソースが類似する場合、前記第1の条件を用いて、前記新たな割当データから前記第1の条件に違反するデータを抽出する、
ことを特徴とする付記1~7のいずれか一つに記載の情報処理装置。
【0262】
(付記9)前記制御部は、
複数の条件において共通する相反候補条件を生成し、
生成した前記相反候補条件を前記第1の条件として、取得した前記割当データから前記第1の条件に違反するデータを抽出する、
ことを特徴とする付記1~8のいずれか一つに記載の情報処理装置。
【0263】
(付記10)前記制御部は、
生成した前記第2の条件を出力する、ことを特徴とする付記1~9のいずれか一つに記載の情報処理装置。
【0264】
(付記11)複数の割当先に対する複数のリソースの割当結果を示す割当データを取得し、
取得した前記割当データから、第1の条件に違反するデータを抽出し、
抽出した前記データを、所定の基準に従って複数のグループに分類し、
分類した前記複数のグループそれぞれのデータに基づいて、前記複数のリソースに含まれるリソースの割当パターンの出現頻度に関する指標値を算出し、
算出した前記指標値に基づいて、前記割当パターンについての第2の条件を生成する、
処理をコンピュータが実行することを特徴とする情報処理方法。
【0265】
(付記12)複数の割当先に対する複数のリソースの割当結果を示す割当データを取得し、
取得した前記割当データから、第1の条件に違反するデータを抽出し、
抽出した前記データを、所定の基準に従って複数のグループに分類し、
分類した前記複数のグループそれぞれのデータに基づいて、前記複数のリソースに含まれるリソースの割当パターンの出現頻度に関する指標値を算出し、
算出した前記指標値に基づいて、前記割当パターンについての第2の条件を生成する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【符号の説明】
【0266】
101 情報処理装置
200 情報処理システム
201 割当支援サーバ
202 クライアント装置
210 ネットワーク
220 制約条件DB
230 相反集合DB
240 過去割当DB
300 バス
301 CPU
302 メモリ
303 ディスクドライブ
304 ディスク
305 通信I/F
306 可搬型記録媒体I/F
307 可搬型記録媒体
400 過去割当データ
601 取得部
602 抽出部
603 分類部
604 算出部
605 生成部
606 出力部
800 相対頻度テーブル
1300 制約条件表示画面
1401 第2の算出部
1402 記録部
1403 最適化処理部
1600 制約条件付きDB
2000 判定結果画面