(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024171069
(43)【公開日】2024-12-11
(54)【発明の名称】情報処理システム
(51)【国際特許分類】
G06Q 10/04 20230101AFI20241204BHJP
G06Q 10/0631 20230101ALI20241204BHJP
G06N 99/00 20190101ALI20241204BHJP
【FI】
G06Q10/04
G06Q10/0631
G06N99/00 180
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023087943
(22)【出願日】2023-05-29
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000350
【氏名又は名称】ポレール弁理士法人
(72)【発明者】
【氏名】山本 佳生
(72)【発明者】
【氏名】加藤 晶子
【テーマコード(参考)】
5L010
5L049
【Fターム(参考)】
5L010AA04
5L010AA10
5L049AA04
5L049AA10
(57)【要約】
【課題】問題規模の削減及び計算時間削減を可能とする情報処理装置を提供することを目的とする。
【解決手段】割当先データと割当データ、制約条件、共有条件を得る手段と、割当先の要素の集合である割当先データに対して、制約条件に従って、割当対象の集合である割当データの中から割当を行うとともに、共有条件に従って割当の一部をグルーピングし、割当関係を示すグラフを作成するグラフ生成部と、割当関係を示すグラフの探索により割当候補を複数生成するグラフ探索部と、最適化モデルを生成し、割当候補に対する最適化処理を実施して最適化割当を得る最適化計算部と、最適化割当に含まれるグルーピングを解除して最終割当とする展開部を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
割当先データと割当データ、制約条件、共有条件を得る手段と、
割当先の要素の集合である前記割当先データに対して、前記制約条件に従って、割当対象の集合である前記割当データの中から割当を行うとともに、前記共有条件に従って割当の一部をグルーピングし、割当関係を示すグラフを作成するグラフ生成部と、
割当関係を示す前記グラフの探索により割当候補を複数生成するグラフ探索部と、
最適化モデルを生成し、前記割当候補に対する最適化処理を実施して最適化割当を得る最適化計算部と、
前記最適化割当に含まれる前記グルーピングを解除して最終割当とする展開部を備えることを特徴とする情報処理システム。
【請求項2】
請求項1に記載の情報処理システムであって、
前記グラフ探索部は、グルーピングされない割り当てに対してKPI計算を実施することを特徴とする情報処理システム。
【請求項3】
請求項1に記載の情報処理システムであって、
前記展開部は、グルーピングされた割り当てに対してKPI計算を実施することを特徴とする情報処理システム。
【請求項4】
請求項1に記載の情報処理システムであって、
前記最適化計算部は、前記グラフ探索部で生成した複数の割当の一部の割当を対象とする最適化計算を実施することを特徴とする情報処理システム。
【請求項5】
請求項2に記載の情報処理システムであって、
前記KPI計算に基づくコストを付与することを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システムに係り、特に組合せ最適化問題の問題規模削減のための情報処理システムに関する。
【背景技術】
【0002】
社会システムの生産性向上のためアニーリング法が組合せ最適化問題の高速解法として注目を浴びている。交通系や配送・巡回経路決定などの実問題では多数の複雑な制約条件を加味する必要があり、特に勤務シフト作成や人員配置といったような割当問題は、所謂NP困難な問題に分類され、従来のコンピュータに基づくアルゴリズムでは、実用に耐えうる速度での計画の立案が困難であることが知られている。このため、割当計画立案の自動化へのシーズないしニーズが高まっていると考えられる。
【0003】
上記に関連する従来技術として、例えば下記特許文献1に記載の技術が挙げられる。
入力された情報に基づき、事前に計画された割当に対して、その一部分を再計画の対象とし候補グラフを作成し、割当問題の候補生成を行う前処理部及び、前機能部において生成された候補から候補選択を行う最適化部により、計画立案範囲を再計画部分に限定することで解候補を抑制しつつ割当を行う割当問題処理システム。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1は、一般的な集合分割問題/集合被覆問題を相互作用モデルによって記述し、最適化問題を、事前に計画された元の計画に対して、元の計画を保持する部分と再計画を行う部分とにわけ、計画の一部分を再計画対象として限定することで、問題規模の削減を行い、指定するKPIによってなるべく元の計画を保持するように割当を行う。
【0006】
この技術では、一から計画を作成する際には、解の候補数が膨大となり最適化部において現実的な時間での解の探索が困難になる可能性が高いことが懸念される。
【0007】
本発明者らは、鋭意研究を行い、このような再計画の立案は「最適化問題」として計算機で解くことができるとの知見ないしコンセプトのもと、以下のように思案するに至った。
【0008】
すなわち、実社会の大規模な最適化問題を高速で解くには、例えばイジングモデルなどの「相互作用モデル」で問題を記述し、CMOSアニーリングのような「最適化問題専用計算技術」を用いて計算を実行する方法が考えられる。相互作用モデルを用いて再計画立案を行うにあたり、複雑な制約条件を効率的に扱う方法として、列生成法等を用いて部分問題の候補生成を行った後に、集合分割問題や集合被覆問題を解く手段を用いることが有力である。
【0009】
以上のことから本発明は、問題規模の削減及び計算時間削減を可能とする情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
以上のことから本発明においては、「割当先データと割当データ、制約条件、共有条件を得る手段と、割当先の要素の集合である割当先データに対して、制約条件に従って、割当対象の集合である割当データの中から割当を行うとともに、共有条件に従って割当の一部をグルーピングし、割当関係を示すグラフを作成するグラフ生成部と、割当関係を示すグラフの探索により割当候補を複数生成するグラフ探索部と、最適化モデルを生成し、割当候補に対する最適化処理を実施して最適化割当を得る最適化計算部と、最適化割当に含まれるグルーピングを解除して最終割当とする展開部を備えることを特徴とする情報処理システム。」としたものである。
【発明の効果】
【0011】
本発明によれば、共有条件によって共有されたノードにより、縮約グラフを得ることが出来、結果として問題規模の及び計算時間削減が見込まれる。
【図面の簡単な説明】
【0012】
【
図1】本発明の実施例に係る情報処理システムの全体構成例を示す図。
【
図2】本発明を適用可能な計算機システムのハードウェア構成例を示す図。
【
図3】本発明の実施例に係る情報処理システムの処理フロー例を示す図。
【
図4A】勤務シフト作成事例における割当先データの例を示す図。
【
図4B】勤務シフト作成事例における割当データの例を示す図。
【
図5】勤務シフト作成事例における共有条件の例を示す図。
【
図6】勤務シフト作成事例における制約条件の例を示す図。
【
図7】処理ステップS12の共有ノード作成の詳細処理内容を示す図。
【
図8】処理ステップS122の具体的処理内容を示す図。
【
図9】処理ステップS20における割り当て候補グラフ作成処理例を示す図。
【
図10A】処理ステップS120を行ったときの処理概念図。
【
図10B】処理ステップS122における共有判定処理の中間段階における処理概念図。
【
図10C】処理ステップS122bにおいてタスクY3まで処理が進んだ状態を示す図。
【
図10D】共有判定を最後のタスクY9まで実行した結果を示す図。
【
図10E】割当先ノードの保有スキルを参照してノード間の接続を行った状態を示す図。
【
図11】個々の作業者が取りうる3日間の全てのスケジュールを候補として求めた図。
【
図13A】ループ処理を全て終了して割当確定部分のKPI計算を行った状態を示す図。
【発明を実施するための形態】
【0013】
本発明の実施の形態について、図面を参照して詳細に説明する。ただし、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【0014】
以下に説明する発明の構成において、同一部分又は同様な機能を有する部分には同一の符号を異なる図面間で共通して用い、重複する説明は省略することがある。
【0015】
同一あるいは同様な機能を有する要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。ただし、複数の要素を区別する必要がない場合には、添字を省略して説明する場合がある。
【0016】
以下の説明では、「記憶装置」は、メモリと永続記憶装置の少なくともメモリでよい。「メモリ」は、一つ以上の記憶デバイスの一例である一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。
【0017】
また、以下の説明では、「プロセッサ」は、一つ以上のプロセッサデバイスでよい。少なくとも一つのプロセッサデバイスは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサデバイスを使用することができる。
【0018】
さらに、以下の説明では、説明の便宜のため、ソフトウエアブロックが主体となって処理を実行する旨を記述する場合があるが、実際の処理の主体はプロセッサであることに注意されたい。
【実施例0019】
図1は、本発明の実施例に係る情報処理システムの全体構成例を示している。情報処理システム10は、入力データベースDBI内の割当先データD1、共有条件データD2、制約条件データD3を入力とする情報処理により、最終的に割り当てデータを出力データベースDBOに格納する。この情報処理システムは、割当計画案出力装置というべきものである。
【0020】
図1は、計算機で実現される情報処理システム10の演算部における処理内容を機能的に表現したものであり、前処理部11、最適化計算部12,共有ノード展開部13を備えるものということができる。なお図示していないが、さらに演算部はデータ処理を管理する入出力支援部としての機能を備えている。
【0021】
以下
図1を用いて本発明を詳細に説明するが、その前に本発明の前提となる事項について纏めて説明をしておく。これらは、情報処理システムを構成する計算機システムに関する事項であり、また本発明の実現に転用可能な最適化計算部12に関する事項である。計算機システムは
図2に例示するような周知構成のものが適用可能であり、また本発明は前処理部11の構成に特徴を有し、最適化計算部12はすでに知られた手法を適用すればよいので、これらの部分の説明を纏めてしておくものである。
【0022】
最初に情報処理システムを構成する計算機システムに関する事項について、纏めて説明しておく。
【0023】
まず、
図1に示す情報処理システムは、一つの物理的な計算機によって構成されることができる。あるいは、情報処理システムは、各構成要素が別々の物理的な計算機によって実現されていてもよい。さらにまた、情報処理システムは、一つ以上の物理的な計算機を備えた計算機システムに代えて、他種のシステム、例えば、物理的な計算リソース群(例えば、クラウド基盤)上に実現されたシステム(例えば、クラウドコンピューティングシステム)であってもよい。
【0024】
計算機システムは、よく知られた
図2の構成のものを利用可能である。
図2は、計算機システムのハードウェア構成例を示す図である。なお計算機システムのハード構成の一部は通信などを介してクラウド上に形成されるものであってもよい。
【0025】
図2の情報処理システム10は、演算部21,記憶機能であるROM22,RAM23,HDD24,入出力装置26,通信装置25などがバス27を介して相互に接続されて構成されたものである。
【0026】
図2によれば、図示せぬ入力支援部は、例えばPCなどの外部装置の入力インタフェース(キーボードやマウスなどの操作入力部、モデムなどの通信部、など)と接続され、かかる入力インタフェースを通じて介してユーザが入力する情報を受け取り、該受け取った情報を、後述する入力データ記憶部に格納するととともに、処理支援部に供給する。
【0027】
また、入出力支援部は、例えばPCなどの外部装置の出力インタフェース(LCDなどの表示部、プリンタなどの印刷部、HDDなどの外部メモリ、モデムなどの通信部、など)と接続され、かかる出力インタフェースを介して、情報処理システムによって自動立案された再計画案のデータを受け取る、あるいは目視することができる。
【0028】
入出力支援部は、上述したPCなどの外部装置と通信しながら上述した処理を遂行するためのハードウェアプロセッサを含んでいてもよい。
【0029】
さらに、入出力支援部は、当初に策定された計画(以下は「元の計画」という)および発生した事故についての情報を入力データとして記憶する入力データ記憶部と、当該元の計画を基盤とした再計画案に関する情報を出力データとして記憶する出力データ記憶部と、を管理しており、かかる構成および格納される情報等についての詳細は後述する。
【0030】
次に、本発明に適用可能な周知の最適化技術について纏めて説明をしておく。
【0031】
図1に戻り、情報処理システム10内の最適化計算部12は、再計画立案の最適化問題を高速に処理するために、CMOSアニーリングのような「最適化問題専用計算技術」を用いて実現する。ここで、最適化問題とは、要請された制約の下、評価値となるコストを最小化あるいは最大化する変数の値を求める問題を指す。
【0032】
最適化問題専用計算技術は、例えばイジングモデルやボルツマンマシンのような、以下の(1)式から(4)式の形で記述される相互作用モデルの超高速な専用シミュレータとなっている。
【0033】
【0034】
【0035】
【0036】
【0037】
(1)式から(4)式において、xおよびhは縦ベクトルであり、Jは対称行列である。(1)式のxは変数である。変数xの型は、ハードウェアの性質に依存するため、適宜、ハードウェアの性質に合わせてモデル化すればよい。なお、添え字Tは、転置行列を示す符号である。
【0038】
さらに、(1)式から(4)式において、Jおよびhは、各々、定数であり、これら定数の幅(大きさ)、Jおよびhが整数か実数か等についてもハードウェアの性質に依存するが、特に限定されるものではなく、加えて、本実施形態の特徴との関連性は低い。
【0039】
また(1)式から(4)式においてA(ij)は集合被覆のパラメータ、Cjは平準化コスト、Diは共有ノード内に含まれる割当データの数、xjは、候補jを採用するかどうかの決定変数である。Sは未確定ノード、tはs内に含まれるノードのどれを選択するかの決定変数である。
【0040】
一般に、専ら最適化問題のみを計算するコンピュータ関連技術(以下、「最適化問題専用計算技術」と称する場合がある)においては、(1)式で記述したような相互作用モデルの最低エネルギー状態((1)式の左辺Hが最小となるxの値)を計算機上で探索あるいは再現することによって、最適な変数xの値を求める。
【0041】
言い換えると、最適化問題専用計算技術では、相互作用モデルの相互作用係数((1)式ではJに対応する値)や外場係数((1)式ではhに対応する値)などを入力値として演算を行い、Hが最小となる変数xを算出して出力する。
【0042】
図1に戻り、最適化計算部12は、並列処理デバイス(並列処理が可能なデバイス)の一例であり、(1)式で上述したような相互作用モデル(例えばイジングモデル)を演算することで割当問題を解くためのアクセラレータとしての役割を担う。
【0043】
最適化計算部12は、典型的には、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)又はGPU(Graphics Processing Unit)のようなハードウェア回路である。
【0044】
なお、最適化計算部12は、一つ以上の物理的な又は仮想的なコアを有するCPU(Central Processing Unit)により実現されてもよい。
【0045】
あるいは、最適化計算部12は、例えば、半導体回路(例えばCMOS(Complementary Metal Oxide Semiconductor)回路)でイジングモデルの動作を疑似的に再現した半導体コンピュータ(例えばCMOSアニーリングマシン)とすることができる。最適化計算部は、例えば、GPU上で動作するアルゴリズム(例えばMomentum annealing)によって実現されてもよい。
【0046】
また、最適化計算部12は、デジタル計算機ではなく、アニーリング型量子計算機や汎用型量子計算機を用いてもよい。
【0047】
以上、本発明の前提とする事項についてまとめて説明を行った。以下、
図1に戻り、本発明の具体的な処理内容について説明する。
【0048】
図1の情報処理システムの実行にあたり、入力データベースDBIから入力データを入手する。入力データは、割当対象群(ヒト、モノ、タスク等)のノードデータ(割当先のデータD1)、対象とする割当問題が課す制約条件D3、そしてノードの属性等の条件を指定する共有条件D2である。
【0049】
入力されたノードデータD1と共有条件D2、制約条件D3を用いて、前処理部11のグラフ生成部11aにおいて、候補グラフの生成を行う。なお本発明は、前処理部11のグラフ生成部11aの処理に特徴を有するものであり、この部分の処理内容を拡大して示している。
【0050】
拡大して示す処理部分においては、最初に一般的なフォーマット11a1として入力されたノードデータD1を登録開始する処理11a2を行い、まず制約条件D3を満たしているかどうかの判定11a3を行う。
【0051】
その後制約条件D3を満たしたノードデータD1に対しては、共有条件判定部11a4において、入力された共有条件D2を元に共有条件判定を行い、共有条件に一致したものはグルーピング部11a5において、条件に一致する,既に存在する共有ノードの情報を取得し、その共有ノードに属するように登録11a6する。存在しない場合は、新しい共有ノードとして登録11a6を行う。
【0052】
全ての入力ノードD1に対して上記の処理を行った後、ノード間を制約条件が充足するように接続を行い,候補グラフを作成して、ノード登録終了11a7とする。
【0053】
次に前処理部11のグラフ探索部11bでは、候補グラフに対して候補探索を実施することで、候補生成を行う。生成された候補に対しては、KPIに従ってコストを付与したうえで候補行列コスト登録部11cに登録する。
【0054】
最適化計算部12では、前段で生成された候補及びコストに従って、モデル生成及び最適化計算を実施する。なお先に述べたように、本発明では最適化手法を特に限定するものではなく、周知の手法が適用できる。
【0055】
共有ノード展開部13では、割当られた共有ノード群に対して、共有ノードD2に含まれるノードが2つ以上のものに対して展開処理を行うことで、各割当先に対して割当対象が一意に割当てられるようにする。上記の処理を行い、結果は割当データとして出力される。
【0056】
以下、具体事例問題として勤務シフト作成を例にとって、
図3のフローチャートを用いて説明をする。なおこのフローチャートの右側には、これらの処理を実行する機能として前処理部11のグラフ生成部11a、グラフ探索部11b、最適化計算部12、共有ノード展開部13の処理範囲を併記している。
【0057】
このフローでは、グラフ生成部11aはまず処理ステップS11において割当先、割当データD1、制約条件D3、共有条件D2を入力する。
【0058】
このうち勤務シフト作成事例における割当先の例を
図4Aに、割当データの例を
図4Bに示している。なお実施例の勤務シフト作成問題では、割当期間中の対象の割当先に対して、各日付における割当タスクの割り当てを行う問題である。
【0059】
図4Aに示す割当先データは,データ番号D11(X1,X2,X3)に付随する属性情報として作業員の名前D12(X、Y,Zの3人)、保有スキルD13(L,M,N),当月総残業時間D14(ここでは初期値を0)の情報を含んで構成されている。
図4Bに示す割当データは,データ番号D15(Y1-Y9)に付随する属性情報としてタスク名D16(A-I)、日付D17(5/1-5/3)、要求スキルD18(L,M,N又はなし)、業務時間D19の情報を含んで構成されている。
【0060】
図4Aによれば作業員X1は保有スキルが多く、多くのタスクに対応できる可能性が高い。また
図4Bによれば、いつ、どのくらいの時間、どういうスキルの人を必要としているかが明らかにされている。これだけであれば、多くの場合に作業員X1を割り当てればよいが、実際には運用上の問題点、順守すべき事項が制約条件として設定されている。
【0061】
図6は、制約条件D3の事例を示しており、条件D31と内容D32を含むデータとされている。この場合の制約条件は、条件Z1として「1日に割当可能なタスクは1つ」と、条件Z2として「全てのタスクを過不足なく割り当てる」という割当問題の基本的な2つの制約と、条件Z3として「要求スキルを保有している人員にタスクを割り当てる」という制約を用いるものとする。
【0062】
図5は、共有条件D2の事例を示しており、条件D21と、名前D22と、日付D23と、要求スキルD24と、業務時間D25を含むデータとされている。ここでは、これらに関して、それぞれ条件を与える。本実施例では、条件S1は名前D22と条件D21は、共有条件として使用せず、日付D23と要求スキルD24が一致する場合、共有可能であると定義する。
【0063】
なお実施例では、完全一致を条件としているが、問題によっては部分一致や時間の差の範囲を指定することも可能である。また、同時に競合しない、あるいは優先順位をつけることで、複数の条件を指定しても良い。また、割当先ノードに条件を課しても良い(保持スキルが同じ等)。
【0064】
なおKPIとしては、各人員の総業務時間の平準化を用いる。KPIは、(2)式における目的関数に対応する。
【0065】
図3に戻りこのフローでは、グラフ生成部11aが次に処理ステップS12において入力した割当先、割当データD1、制約条件D3、共有条件D2を用いて共有ノード作成の処理を実施する。またこれに続いて処理ステップS13において割当候補グラフ作成の処理を実施する。
【0066】
このうち、処理ステップS12の共有ノード作成の詳細処理内容が
図7,
図8に示されている。本発明の実施例の場合には、勤務シフト割当を行うものであるので、まず
図7では処理ステップS120において割当先データをノードとして登録する。これにより
図4Aのデータ番号D11(X1,X2,X3)、作業員の名前D12(X、Y,Zの3人)、保有スキルD13(L,M,N),当月総残業時間D14(ここでは初期値を0)が登録され、以降はノード情報として以下の処理に利用される。
【0067】
図7の処理において、処理ステップS121と処理ステップS123の組み合わせは、処理ステップS122の処理を
図4Bの割当データを逐次更新しながらすべての割当てデータについて共有判定とグルーピングを行うことを示している。
【0068】
勤務シフト割当処理の事例では、処理ステップS12の処理は基本的には以下の作業を行うものである。基本的処理とは、
図4Bの割当データとしてまずY1のタスクについて、
図4Aを参照してまずX1の作業者が作業可能(共有)であるか、否か(非共有)を確認し、次にX2の作業者が作業可能か、次にX3の作業者が作業可能かを確認し、このあとY2のタスクについて、同様にX1の作業者が作業可能であるか、X2の作業者が作業可能か、X3の作業者が作業可能かを確認し、以下同様に最後のタスクに至るまで割当データ番号(Y1-Y9)と割当先データのデータ番号D11(X1,X2,X3)の全ての組み合わせについて作業の可能性を求めていくものである。
【0069】
ただし、上記基本的処理は、すべての組み合わせを追求することを述べたのみであり、さらに詳細には処理ステップS122の具体的処理を
図8により実行することで共有判定とグルーピングを行うものである。
【0070】
図8の処理において、処理ステップS122aと処理ステップS122cの組み合わせは、処理ステップS122bの処理を、
図5の共有条件を逐次更新しながらすべてのタスクと作業者の組み合わせについて見直しを行い、共有判定とグルーピングを行うことを示している。
【0071】
処理ステップS122bの処理では、提示されたタスクYと作業者Xの組み合わせ(Y-X)について、共有条件を満たすか否かを判断し、満たさない場合(No)には処理ステップS122cから処理ステップS122aに移り、繰り返し処理を継続する。
【0072】
共有条件を満たす場合(Yes)には処理ステップS122dに移り、この割り当てデータi(タスクY)を共有ノードSに追加し、その後処理ステップS122fに移り、共有ノードsの属性を変更する。
【0073】
なお、処理ステップS122cでは、すべての組み合わせを確認したことをもって、一連の共有判定結果を共有ノードとして登録する。
【0074】
勤務シフト割当処理の事例では、処理ステップS122bの処理では以下の作業を行うものである。まず
図5の本事例の共有条件では、「条件S1は名前D22と条件D21は、共有条件として使用せず、日付D23と要求スキルD24が一致する場合、共有可能である」と定義している。このため、例えば該当する日付についてタスクと作業者の組み合わせがY1-X1であるとき要求スキルが合致し共有とされ、Y1-X2であるとき要求スキルが合致しないので非共有とされる。なおタスクY2ではスキルを要求しないので、作業者はだれでもよいことになり、結果として共有と判定される。
【0075】
図8までの一連の処理を具体事例で図示して説明する。まず
図10Aは、処理ステップS120を行ったときの処理概念図である。割当先データをノードとして登録したことにより、すべての割当先ノードであるX1,X2,X3が準備される。これらは作業者X,Y,Zに対応しており、各人のスキルとともに示されている。ちなみにX1のスキルはL,M,Nであり,X2のスキルはNであり、X3のスキルはM,Nである。
【0076】
次に
図10Bは、
図7、
図8の処理ステップS122における共有判定処理が途中まで進んだ中間段階における処理概念図である。この例では、
図4Bの日付が5/1の割当データであるY1,Y2,Y3のうち、タスクY1とY2まで処理が進んだ状態を示している。
【0077】
ここでは、まずスキルMを要求するタスクY1について、スキルMを保有する作業者X1が作業可能であることから共有判定され、次にスキルを必要としないタスクY2について、すでに共有判定された作業者X1以外の作業者X2が作業可能であることからタスクY2を作業者X2に割り当てるところまでを確認した中間段階である。図示では、タスクA,タスクBの二重丸が共有条件を満たすタスクであることを表しており、独立した2個の共有ノードとして登録されることを表している。つまり、この例では、それぞれ共有条件を満たす共有ノードが存在しないため、共有ノードが2つ登録される。
【0078】
これに対し、
図4Bの日付が5/1の割当データであるY1,Y2,Y3のうち、最後のタスクY3まで処理が進むと、それぞれ共有条件を満たす共有ノードが存在してくる。
図10Cは、
図8の処理ステップS122bにおいてタスクY3まで処理が進んだ状態を示している。
【0079】
図10Cの状態では、5/1の割当データのうち残りのタスクY2とY3に対する処理を行っている。両タスクとも無資格者の要求であるため、タスクY2をタスクY1と同様に処理し、タスクY3を処理する際に、
図5の共有条件が定義する共有関係に有ることが判明することから、処理ステップS122eにおいて共有ノードsに追加することで、タスクY2,Y3がグルーピングされる。
【0080】
本発明では、こういったケースを1つのグループとし、このグルーピングを1つの共有ノードとして扱うものである。
【0081】
また、処理ステップS122fの処理は、タスクY2の業務時間は8時間、タスクY3の業務時間は6時間であるところ、グルーピングにより1組の情報として取り扱う関係上、中間の値である7時間に、属性(業務時間)を更新したものである。本実施例では、平均値を用いたが、最大値や最小値などを用いても構わない。
【0082】
図10Dは、以上の判定を最後のタスクY9まで実行した結果を示す図である。2日目は2つのタスクがグルーピングされ、3日目では、グルーピングは生じない。
【0083】
このグルーピング処理によれば、本来9個発生するはずのタスクYのノードが7個になっている。このため後述する最適化処理ではより少ない個数での最適化処理が可能になる。
【0084】
この処理により、1日目、2日目における割当データである要求タスクは、作業者が3組(X1,X2,X3)に対して、本来は3組必要であるが、上記のグルーピングにより、1対1の関係が崩れるため、
図6の制約条件Z1、Z2を満たすために、
図3のステップS14の集合被覆問題求解(最適化)部において、各共有ノードはそれぞれのグループに含まれるタスクの数だけ、選択される候補の中に含まれる必要がある。
【0085】
図10Eは、グラフ生成部11aの処理の結果、割当先ノードの保有スキルを参照してノード間の接続を行った状態を示しており、割当先ノードX1,X2,X3ごとに、可能な経路をまとめたものである。これらのノード間の接続は、
図6の制約条件、条件Z1として「1日に割当可能なタスクは1つ」と、条件Z3として「要求スキルを保有している人員にタスクを割り当てる」に沿って行われている。例えばすべてのスキルに対応する作業者X1はすべての日においていずれの共有ノードへの経路も適用可能であるが、スキルがNのみの作業者X2はスキルMを要求されるタスクA,タスクFへの経路はとることができない。
【0086】
図3に戻り、グラフ探索部11bは、処理ステップS14から処理ステップS17におけるグラフ探索処理を実行する。処理ステップS14では、グラフ探索を開始し、処理ステップS15では、
図10Eの3つのグラフを探索し、担当先ノード(従って各作業者)が第1日目に行いうる作業、第2日目に行いうる作業、第3日目に行いうる作業について、順次すべての経路を想定する。
【0087】
グラフ探索部11bの処理の結果、
図11が求められる。
図11は、作業者(X1,X2,X3)の3日間の各日における作業予定の時系列を示している。個々の作業者X1,X2,X3が取りうる3日間の全てのスケジュールが候補として求められている。
【0088】
図3の処理ステップS16では、すべての想定経路に対して、コスト計算を実行する。本実施例では、コスト例は割愛するが、勤務時間の平準化等のKPIに関わるコスト等を算出するものである。処理ステップS17では、グラフ探索を終了するが、終了時点では
図11に示すように割当先ノードX1,X2,X3ごとに、この作業者が取りうる3日目までの作業の全ての組み合わせが作成されている。
図10Eの例ではX1は12種類、X2は2種類、X3は8種類、合計では22種類の候補が生成されることになる。
【0089】
図3において最適化処理部12の処理ステップS18では、最適化モデルを生成する。これは、後処理時に元の問題において過不足なく割当を行うためのモデル生成を行ったものである。そのうえで、処理ステップS19では、集合被覆問題求解(最適化)を実施するが、上記の例では合計22種類の候補による最適化を行うことになる。このため、このとき最適化処理部12に対しては、(2)(3)式に示されるような低コストの観点から選択された(これはユーザが決定してもよい)選択候補案件が提供されるものであってもよい。
【0090】
図12は、個数が削減され、簡略化された形式で最適化を行ったときに、最適化処理で最終的に求めた解の一例を示している。各共有ノードについて、スキルと作業時間を表記している。
【0091】
図9は、
図3の処理ステップS20における割り当て候補グラフ作成処理の処理内容を示すフロー図である。このフローにおいて、処理ステップS131とS135は、この間の処理ステップS132,S133,S134の処理を、共有ノードを変更しながら繰り返し実行することを示している。
【0092】
例えばこの事例の場合には、まず
図12の割当結果のうち作業者X1に対する1日目のタスクAがとりだされこれが1つのノードで構成されていることから割り当て確定とされ、次にX2、X3に割り当てられている1日目のタスクBとCによる共有ノードがとりだされる。このときは共有ノード内のノードの数が1より多いので、未割当共有ノードとしての登録がされる。以降7個の共有ノードの全てについて割当確認がされる。
【0093】
このあと処理ステップS136では、割当確定部分のKPI計算を実行する。これはグルーピングされていない部分におけるKPI確認である。なお3日目は、全てのタスクが割当確定状態にあるので、3日目全体としてのKPI計算を実行するものであってもよい。
【0094】
処理ステップS137では、未割当部分も割当がされ、これにより7個全ての割当処理がされたことになる。
【0095】
図13Aは、ループ処理を全て終了して割当確定部分のKPI計算を行った状態を示している。例えば第1日目のグルーピングされている、B,Cの共有部分について、ここでは例えばX2にCを割り振り、X3にBを割り振ったものである。これらのグループはB,Cのいずれが担当してもよいタスクであり、基本的にだれがどちらを担当しても大きな相違はない組み合わせである。このため、展開にあたっては、3日間の総勤務時間が極力平準化する形で展開を行えばよい。この際、本最適化計算は(4)式のような定式化によってこれを決定しても良い。
【0096】
図13Bは、最終的に割振を完了したものであり、例えば作業者X1はA-E-Gの作業を日替わりで行い、作業者X2はC-D-Hの作業を日替わりで行い、作業者X3はB-F-Iの作業を日替わりで行うように最終配分が決定されたことを示している。
【0097】
以上詳細に説明した本発明は、「割当先データと割当データ、制約条件、共有条件を得る手段と、割当先の要素の集合である割当先データに対して、制約条件に従って、割当対象の集合である割当データの中から割当を行うとともに、共有条件に従って割当の一部をグルーピング化し、割当関係を示すグラフを作成するグラフ生成部と、割当関係を示すグラフの探索により割当候補を複数生成するグラフ探索部と、最適化モデルを生成し、割当候補に対する最適化処理を実施して最適化割当を得る最適化計算部と、最適化割当に含まれるグルーピングを解除して最終割当とする展開部を備えることを特徴とする情報処理システム。」としたものである。
【0098】
以上詳細に説明した本発明の実施例によれば、共有条件によって共有されたノードにより、縮約グラフを得ることが出来、結果として問題規模の及び計算時間削減が見込まれる。