(57)【特許請求の範囲】
【請求項１】
企業等の被雇用者の日時ごとのスケジュールを表示するためのスケジュール表を自動的に作成するスケジュール表作成装置において、
前記被雇用者の雇用条件に関する情報であって前記スケジュール表を作成する際の制約条件を形成するルール情報を複数設け、それぞれの前記ルール情報を木構造の階層構造として管理するための階層情報を備えた階層管理手段と、
該階層管理手段で階層的に管理された前記ルール情報から前記スケジュール表の作成に適用する前記ルール情報を選択する適用選択手段と、
該適用選択手段において選択された前記ルール情報を構成する、任意の期間において勤務する勤務者の数を設定するための目標関数とそれぞれの前記勤務者の勤務可能な日時を設定するための所定の制約条件とを用いた整数計画によって前記スケジュール表の作成を行う整数計画ソルバーと、
前記整数計画ソルバーにおいて前記ルール情報を用いて前記スケジュール表の作成ができない場合、該スケジュール表への適用が可能になるように前記ルール情報を調節するルール緩和手段とを有し、
前記階層管理手段は、それぞれの前記階層情報を、一のノードをルートノードとし、他の複数の前記ノードを前記ルートノードを根とする前記木構造に形成してなる組織階層定義情報を有し、
それぞれの前記ノードは、前記木構造を形成する情報として自らの直近の上位ノードを示す上位ノード情報を有し、
それぞれの前記ノードには、前記被雇用者の役職等、個々の前記被雇用者の属性となる情報、及び／又は、前記被雇用者の勤務先、勤務地域等、雇用先の属性となる情報、が設定されると共に、それぞれの前記ノードごとに前記ルール情報が設定され、かつ、該ノード及び該ノードに繋がる下位の前記ノードに対して前記ルール情報が適用されることを規定する、前記ルール情報の適用の範囲情報が対応付けられ、
前記適用選択手段は、前記ルール情報を適用する前記範囲情報が対応付けられた前記ノードを特定し、特定された前記ノードを起点に、前記上位ノード情報に基づいて前記ルートノードまで前記木構造をさかのぼって探索した場合に、該探索の経路に該当するそれぞれの前記ノードに関連付けられた前記ルール情報を選択し、
前記整数計画ソルバーは、前記適用選択手段において選択された前記ルール情報に対応する前記目標関数と前記制約条件とを、前記目標関数と前記所定の制約条件として用いて前記スケジュール表を作成すると共に、
前記ノードに関連付けられた前記ルール情報は、規定された前記目標関数と前記制約条件を用いて任意の勤務日、非勤務日、勤務時間帯におけるスケジュール作成ができない場合に、該スケジュール作成ができない時間帯において、前記目標関数の値の緩和条件を規定するルール緩和情報を有し、
前記ルール緩和手段は、前記整数計画ソルバーにおいて、前記適用選択手段によって選択された前記ルール情報を用いて前記スケジュール表の作成ができない場合、該スケジュール表への適用が可能になるように、前記ルール緩和情報を用いて任意の前記ルール情報を緩和して、前記整数計画ソルバーに、前記緩和された前記ルール情報に対応する前記目的関数と前記制約条件とによって前記スケジュール表を作成させることを特徴とすることを特徴とするスケジュール表作成装置。
【請求項２】
前記勤務者の勤務可能な日時は、前記勤務者の勤務日、非勤務日、勤務時間帯を有することを特徴とする請求項１に記載のスケジュール表作成装置。
【請求項３】
コンピュータを請求項１又は２に記載のスケジュール表作成装置として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、企業従業員等の集団構成員のスケジュール表を自動作成する技術に関する。
【背景技術】
【０００２】
企業等においては、様々な場面で社員、派遣社員、アルバイトスタッフ等の被雇用者（以下単に「被雇用者」と称する。）のスケジュール表を作成する必要が生ずる。例えば、複数の被雇用者が交代制で勤務に就くような状況で勤務スケジュール表を作成する場合、仕事量の増減、遵守しなければならない就業条件、更に各被雇用者の都合等に合わせて各被雇用者の勤務日、勤務時間、休日等を決める最適化（以下単に「最適化」と称する。）を行う必要がある。このようなスケジュール表作成における労力の軽減を図るため、従来、スケジュール表を自動的に作成する技術が提案されている。例えば、遺伝的アルゴリズムを用いて最適化を行う勤務スケジュール表作成装置の発明が知られている（例えば、特許文献１参照）。また、各被雇用者の業務スキルを算出し、算出結果を元に人員配置を行う勤務スケジュール表作成装置の発明が知られている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３１０５３０号公報
【特許文献２】特開平１１−１４３８５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、たとえ同一企業内であったとしても、仕事の内容や仕事量などは、部署毎、事業所毎、地域毎に相異することが多い。また、同一部署、同一事業所であったとしても、季節、月、曜日によって仕事量に違いが生じることが多い。そのため、別個の部署や事業所等に勤務する被雇用者の勤務態様や雇用条件等はこれらの条件によって多様な違いが生ずることが多い。そして、上記特許文献１、特許文献２に記載の発明においては、この多様な違いに起因してスケジュール表を作成する際の制約条件も多様になり、スケジュール表作成装置において記録・管理される、制約条件を適用するためのデータや数式の数量が膨大になり、処理内容や情報管理が煩雑になるという問題が生ずる。
【０００５】
本発明は上記の問題に鑑みてなされたものであり、スケジュール表作成時に用いる複数の制約条件を合理的に管理し、コンピュータに過大な負荷をかけることなく、多様な勤務態様、雇用条件に対応するスケジュール表を作成することができるスケジュール表作成装置を提供することを課題としている。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、請求項１に記載の発明は、企業等の被雇用者の日時ごとのスケジュールを表示するためのスケジュール表を自動的に作成するスケジュール表作成装置において、前記被雇用者の雇用条件に関する情報であって前記スケジュール表を作成する際の制約条件を形成するルール情報を複数設け、それぞれの前記ルール情報を木構造の階層構造として管理するための階層情報を備えた階層管理手段と、該階層管理手段で階層的に管理された前記ルール情報から前記スケジュール表の作成に適用する前記ルール情報を選択する適用選択手段と、該適用選択手段において選択された前記ルール情報を構成する、任意の期間において勤務する勤務者の数を設定するための目標関数とそれぞれの前記勤務者の勤務可能な日時を設定するための所定の制約条件とを用いた整数計画によって前記スケジュール表の作成を行う整数計画ソルバーと、前記整数計画ソルバーにおいて前記ルール情報を用いて前記スケジュール表の作成ができない場合、該スケジュール表への適用が可能になるように前記ルール情報を調節するルール緩和手段とを有し、前記階層管理手段は、それぞれの前記階層情報を、一のノードをルートノードとし、他の複数の前記ノードを前記ルートノードを根とする前記木構造に形成してなる組織階層定義情報を有し、それぞれの前記ノードは、前記木構造を形成する情報として自らの直近の上位ノードを示す上位ノード情報を有し、それぞれの前記ノードには、前記被雇用者の役職等、個々の前記被雇用者の属性となる情報、及び／又は、前記被雇用者の勤務先、勤務地域等、雇用先の属性となる情報、が設定されると共に、それぞれの前記ノードごとに前記ルール情報が設定され、かつ、該ノード及び該ノードに繋がる下位の前記ノードに対して前記ルール情報が適用されることを規定する、前記ルール情報の適用の範囲情報が対応付けられ、前記適用選択手段は、前記ルール情報を適用する前記範囲情報が対応付けられた前記ノードを特定し、特定された前記ノードを起点に、前記上位ノード情報に基づいて前記ルートノードまで前記木構造をさかのぼって探索した場合に、該探索の経路に該当するそれぞれの前記ノードに関連付けられた前記ルール情報を選択し、前記整数計画ソルバーは、前記適用選択手段において選択された前記ルール情報に対応する前記目標関数と前記制約条件とを、前記目標関数と前記所定の制約条件として用いて前記スケジュール表を作成すると共に、前記ノードに関連付けられた前記ルール情報は、規定された前記目標関数と前記制約条件を用いて任意の勤務日、非勤務日、勤務時間帯におけるスケジュール作成ができない場合に、該スケジュール作成ができない時間帯において、前記目標関数の値の緩和条件を規定するルール緩和情報を有し、前記ルール緩和手段は、前記整数計画ソルバーにおいて、前記適用選択手段によって選択された前記ルール情報を用いて前記スケジュール表の作成ができない場合、該スケジュール表への適用が可能になるように、前記ルール緩和情報を用いて任意の前記ルール情報を緩和して、前記整数計画ソルバーに、前記緩和された前記ルール情報に対応する前記目的関数と前記制約条件とによって前記スケジュール表を作成させることを特徴とすることを特徴とする。
【０００７】
請求項２に記載の発明は、請求項１に記載の構成に加え、前記勤務者の勤務可能な日時は、前記勤務者の勤務日、非勤務日、勤務時間帯を有することを特徴とする。
【０００８】
請求項３に記載の発明は、プログラムであって、コンピュータを請求項１又は２に記載のスケジュール表作成装置として機能させることを特徴とする。
【発明の効果】
【０００９】
請求項１に記載の発明によれば、被雇用者の雇用条件に関する情報であってスケジュール表を作成する際の制約条件を形成するルール情報を階層構造として複数管理する階層管理手段と、階層管理手段で階層的に管理されたルール情報からスケジュール表の作成に適用するルール情報を選択する適用選択手段とを備えたことにより、関連性の高いルール情報同士をグループ化した状態で管理し、かつスケジュール表の作成に用いることが可能になる。これにより、スケジュール表作成時に用いる複数の制約条件を合理的に管理し、コンピュータに過大な負荷をかけることなく、多様な勤務態様、雇用条件に対応するスケジュール表を作成することができる。
【００１０】
請求項１に記載の発明によれば、目標関数と所定の制約条件とを用いた整数計画によってスケジュール表の作成を行う整数計画ソルバーを有し、適用選択手段は、整数計画ソルバーに適用しうる目標関数と整数計画ソルバーに適用しうる所定の制約条件とを有するルール情報を選択し、整数計画ソルバーは適用選択手段によって選択されたルール情報を用いてスケジュール表を作成することにより、コンピュータが実行し易い態様で、適用される組織や時間等の条件に対する適合性の高いスケジュール表を作成できる。これにより、本発明に基づいて作成されたスケジュール表の有用性を高くすることができる。
【００１１】
請求項１に記載の発明によれば、整数計画ソルバーにおいて、適用選択手段によって選択されたルール情報を用いてスケジュール表の作成ができない場合、スケジュール表への適用が可能になるようにルール情報を緩和するルール緩和手段を備えたことにより、状況の変化に応じてルール情報の適用条件を調節し、制約条件を満たすことができないためにスケジュール表を作成できないような事態の発生を抑止することができる。これにより、例えば就労可能な被雇用者数の増減が頻繁に生ずるような被雇用者の実情に沿った形でスケジュール表の作成を一層円滑に行うことができる。
【００１２】
請求項３に記載の発明によれば、本発明のスケジュール表作成装置をプログラム化し、多様なコンピュータハードウェア上で実現させることができる。
【図面の簡単な説明】
【００１３】
【図１】この発明の実施の形態１のスケジュール表作成システムのシステム構成図及び機能ブロック図である。
【図２】同上実施の形態１のスケジュール表作成装置の機能ブロック図である。
【図３】（ａ）同上スケジュール表作成装置で用いられるデータのデータ構造を模式的に示した図、（ｂ）同上スケジュール表作成装置で用いられるデータにおける、特定の被雇用者の特定日におけるシフト種類を特定するための配列を模式的に示したである。
【図４】同上スケジュール表作成装置におけるスケジュール表作成手順を示すフローチャートである。
【図５】同上スケジュール表作成装置の組織データ階層管理部において管理されている組織階層定義テーブルを模式的に示した図である。
【図６】同上スケジュール表作成装置の組織データ階層管理部において管理されているルールテーブルを模式的に示した図である。
【図７】同上スケジュール表作成装置の組織データ階層管理部において管理されている各テーブルを用いて、特定階層の特定のノードに適用するルール情報を抽出する処理を示すフローチャートである。
【図８】同上スケジュール表作成装置において定義された時間階層等を模式的に示した図である。
【図９】同上スケジュール表作成装置の時間データ階層管理部において管理されている時間階層定義テーブルを模式的に示した図である。
【図１０】同上スケジュール表作成装置の時間データ階層管理部において管理されている各テーブルを用いて、特定の時間に適用するルール情報を抽出する処理を示すフローチャートである。
【図１１】この発明の実施の形態２のスケジュール表作成装置の機能ブロック図である。
【図１２】同上スケジュール表作成装置における、ルール情報の緩和手順を示すフローチャートである。
【発明を実施するための形態】
【００１４】
（発明の実施の形態１）
以下、図１乃至図１０にこの発明の実施の形態１を示す。
【００１５】
図１は、この発明の実施の形態１のスケジュール表作成システムのシステム構成図及び機能ブロック図である。同図に示すとおり、スケジュール表作成システム１Ａは、スケジュール表作成装置１と、ｎ個（ｎ≧１）のクライアント端末２１〜２ｎとを備えたクライアント・サーバーシステムであって、スケジュール表作成装置１とクライアント端末２１〜２ｎは、ＷＡＮ（Wide  Area  Network）としてのインターネット３を介して相互に交信可能である。この実施の形態において「スケジュール表」は被雇用者の勤務表であるものとするが、これに限定されず、スケジュール管理のためのあらゆる表を自動作成するためのシステムに適用することができる。
【００１６】
スケジュール表作成装置１は、企業等複数の構成員を有する団体、又は同団体の依頼に基づいて各構成員の構成員等のスケジュール情報の記録管理を行う事業者が管理するコンピュータシステムである。なお、この実施の形態では当該団体はシフト制で働く被雇用者を有する企業とするが、シフト制以外の雇用形態で勤務する被雇用者を有する企業であってもよいし、企業以外でも、家族、学校、各種非営利団体等であってもよい。
【００１７】
スケジュール表作成装置１は、Ｗｅｂサーバー４、スケジュール記録管理部５、最適化処理部６、表示部７を備えている。Ｗｅｂサーバー４はクライアント端末２１〜２ｎとの間でデータ通信を行なう。スケジュール記録管理部５はスケジュール情報の記録と集中管理を行う。またスケジュール記録管理部５には各コミュニティの構成員や特定個人に関するスケジュール以外の様々な情報も記録されてリポジトリ・システムを形成する。最適化処理部６はスケジュール記録管理部５に記録された各種情報（例えば企業の雇用条件と雇用希望者の希望条件等）のマッチングとマッチングのための各種情報の最適化処理とを行うと共に、各被雇用者のスケジュールを最適化した状態で作成する。表示部７はＬＣＤ（Liquid  Crystal  Display）等からなりマウス、キーボード等の操作部（図示せず）から入力された各種指示等や各種画像を表示する。
【００１８】
クライアント端末２１，・・・，２ｎは、企業においてシフト制で働く被雇用者等が使用する、データ通信機能を有する通信端末、例えばパーソナルコンピュータ、携帯電話端末、電子手帳、ＰＤＡ（Personal  Digital  Assistants、携帯情報端末）等である。クライアント端末２１，・・・，２ｎは、マウスやキーボード等各種指示を入力するために用いられる操作部（図示せず）、表示部７と同様の構成の表示部２１１，・・・，２１ｎ（図示せず）を有し、Ｗｅｂブラウザ２２１・・・，２２ｎ（図示せず）が表示される。なお、クライアント端末２１，・・・，２ｎ、表示部２１１，・・・，２１ｎ、Ｗｅｂブラウザ２２１，・・・，２２ｎは同じ構成を持つので、以下区別する必要がある場合を除き、クライアント端末２、表示部２１、Ｗｅｂブラウザ２２と表記する。
【００１９】
図１には図示しないが、スケジュール表作成装置１のＷｅｂサーバー４、スケジュール記録管理部５には、少なくとも１のＣＰＵ（Central  Processing  Unit、中央処理装置）、及び、ＣＰＵの作業領域として機能するＲＡＭ（Random  Access  Memory）、起動用ブートプログラム等が記録されたＲＯＭ（Read  Only  Memory）、各種プログラムやデータ等が記録されるハードディスク等の補助記憶装置、データの送受信に用いる通信インターフェース等がそれぞれ設けられている。補助記憶装置には、ＯＳ（Operating  System）用プログラム、各種アプリケーションプログラムやデータが記録されており、これらのプログラムやデータはＣＰＵの演算処理により、ハードウェア資源と協働し、各種機能を実現する。
【００２０】
図２は、スケジュール表作成装置１の機能ブロック図である。同図に示す通り、スケジュール表作成装置１の最適化処理部６は、機能手段として、予定表管理部６１、スケジュール表作成部６２を有している。
【００２１】
予定表管理部６１は、各被雇用者の出張予定日時、有給休暇取得予定日時等、各被雇用者の予めわかっているスケジュール情報の記録と管理を行う。スケジュール表作成部６２は、与えられた条件に基づいて、スケジュールを最適化した状態でスケジュール表の作成を行う。
【００２２】
スケジュール表作成部６２は更に、作成の対象となるスケジュール表の内容としての初期条件（以下単に「初期条件」と称する。）の情報、及び当該スケジュール表の作成に用いる情報をそれぞれ取得して作成に必要な処理を行う初期条件等設定部６２１、スケジュール表の作成にあたり、スケジュール表を作成する際の制約条件を形成するルール情報を適用して最適化されたスケジュール表を作成するルール適用部６２２、作成されたスケジュール表を表示部７等に対して出力するスケジュール表出力部６２３を有する。
【００２３】
ルール適用部６２２は更に、目標関数及び所定の制約条件を管理する制約数理モデル部６２２１と、これら目標関数及び所定の制約条件を用いた整数計画によってスケジュール表の作成を行う整数計画ソルバー６２２２とを有している。
【００２４】
制約数理モデル部６２２１は更に、目標関数記録管理部６２２１ａ、制約条件記録管理部６２２１ｂ、「階層管理手段」としての階層管理部６２２１ｃ、「適用選択手段」としての適用選択部６２２１ｄを有している。目標関数記録管理部６２２１ａ、制約条件記録管理部６２２１ｂはそれぞれ、整数計画で用いられる目標関数と制約条件とが記録されている。階層管理部６２２１ｃには、被雇用者の雇用条件に関する情報であってスケジュール表を作成する際の制約条件を形成するルール情報（以下単に「ルール情報」と称する。）が階層構造のデータとして複数記憶されている。適用選択部６２２１ｄは、階層管理部６２２１ｃで階層的に管理されたルール情報からスケジュール表の作成に適用するルール情報を選択すると共に、ルール情報に用いられる目標関数や制約条件を目標関数記録管理部６２２１ａや制約条件記録管理部６２２１ｂから取得してルール情報に適用する。適用選択部６２２１ｄには一時記憶領域が設けられて、この一時記憶領域に、日にちリスト６２２１ｅが形成される（詳しくは後述する。）。
【００２５】
また、階層管理部６２２１ｃは更に、組織データ階層管理部６２２１ｃ１と時間データ階層管理部６２２１ｃ２とを有している。組織データ階層管理部６２２１ｃ１は、被雇用者が所属する部署等の組織に関する情報をルール情報として有すると共に、この組織に関する情報を階層的に管理している（具体的には後述する。）。時間データ階層管理部６２２１ｃ２は、被雇用者の勤務日、非勤務日、勤務日における勤務シフト等の勤務態様に関する情報をルール情報として有すると共に、この勤務態様に関する情報を階層的に管理している（具体的には後述する。）。
【００２６】
次に、この実施の形態のスケジュール表作成装置１において、スケジュール表の作成に用いられるデータのデータ構造について説明する。
【００２７】
図３の（ａ）は、この実施の形態のスケジュール表作成装置１で用いられるデータのデータ構造を模式的に示したものである。なお同図に示すデータ構造のデータは、スケジュール記録管理部５に個々のスケジュール表を示すデータとして記憶されている。同図は、午前勤務、午後勤務、深夜勤務等の複数の勤務シフトを有する雇用形態としてのシフト制勤務のスケジュール表に用いられるものである。即ち、スケジュール表は同図のような３次元の配列で表わすことができるデータ構造を有している。
【００２８】
ｉ軸は日、ｊ軸は被雇用者（スタッフ）、ｋ軸はシフト種類（後述）を示し、個々のブロックはスケジュール表に記録される特定日の特定の被雇用者の特定シフトを示す。個々のセルは下記（１）式で示される。
【００２９】
0005501421.tif 000002
【００３０】
ここで、Ｒは０，１の２値を取る変数である。即ち、スケジュール表の個々のデータ（同図の個々のセル）は０，１の２値データであることを示している。
【００３１】
図３の（ｂ）は、スケジュール表作成装置１で用いられるデータにおける、特定の被雇用者の特定日におけるシフト種類を特定するための配列を模式的に示したものである。同図において、ｋ軸方向の配列のうち１つのセルのみが１つの値を取る。つまり、ある被雇用者が特定の日において取り得るシフト種類は１種類だけである。
【００３２】
次に、この実施の形態のスケジュール表作成装置１において、スケジュール表の作成に用いられる目標関数と制約条件について説明する。
【００３３】
図２の制約数理モデル部６２２１の目標関数記録管理部６２２１ａ及び制約条件記録管理部６２２１ｂには、上述したスケジュール表を最適化するための目標関数と、目標関数を制約するための制約条件が多数記録されている。
【００３４】
例えば、特定の日（例えば６月１５日）に１０名以上が勤務しなければならない場合、以下（２）に示す目標関数と（３）に示す制約条件とが用いられる。
【００３５】
0005501421.tif 000003
【００３６】
ただしＲ：０，１の２値を取る変数、ｉx：ｉの最大値，ｊｘ：ｉの最大値，ｋｘ：ｋの最大値、Ｓ：シフト種類を表わすベクトルデータ、である。
【００３７】
0005501421.tif 000004
【００３８】
ただしＳ：シフト種類を表わすベクトルデータ、１：勤務とみなされるシフト，０：勤務とみなされないシフト、である。
【００３９】
また、全体の勤務人日が最も少なくなる最適化を行う場合の目標関数は以下（４）が用いられる。
【００４０】
0005501421.tif 000005
【００４１】
ただしＮ：全体の勤務人日、ｉx：ｉの最大値，ｊｘ：ｉの最大値，ｋｘ：ｋの最大値、Ｒ：０，１の２値を取る変数、Ｓ：シフト種類を表わすベクトルデータ、である。
更に、例えばそれぞれの日の勤務人数がなるべく同じになることを考慮する場合、以下（５）のように複数の目標関数を組み合わせる場合もある。
【００４２】
0005501421.tif 000006
【００４３】
ただしＮ：勤務人数、ａ１，ａ２：重み係数、Ｒ：０，１の２値を取る変数、ｉx：ｉの最大値，ｊｘ：ｉの最大値，ｋｘ：ｋの最大値、Ｓ：シフト種類を表わすベクトルデータ、である。
【００４４】
この実施の形態においては、上記（１）〜（５）に例示したような目標関数や制約条件が後述する階層と共に適用されることになる。
【００４５】
次に、この実施の形態のスケジュール表作成装置１における、組織データ階層管理部６２２１ｃ１において管理されている情報の具体的態様と、ルール情報の適用の具体的手順について説明する。
【００４６】
図４に、この実施の形態のスケジュール表作成装置１において定義された組織階層等を模式的に示した図を示す。同図に示す通り、スケジュール表作成システム１Ａにおいては複数（ここでは５つ）の組織階層、即ち上位から順にシステム階層（第１階層）、エンタープライズ階層（第２階層）、リージョン階層（第３階層）、サイト階層（第４階層）、ロール階層（第５階層）が定義され、各階層にノードが定義されている。各階層は企業同士、あるいは企業内の階層関係（従属、被従属の関係等）に基づいた態様に区分されており、具体的には、事業所、部署、役職等を定義するノードが設けられている。システム階層にはシステム全体を示す“ＲＯＯＴ”ノードが設けられ、エンタープライズ階層には「企業Ａ」「企業Ｂ」等企業全体を示すノード、リージョン階層には「東京」「大阪」等企業の事業所や営業所が設置された地域を示すノード、サイト階層には「銀座店」「青山店」等事業所や営業所の店舗を示すノード、ロール階層には「マネジャー」「セールス」等被雇用者の役職を示すノードが設けられている。これらのノードは“ＲＯＯＴ”ノードを起点とするツリー構造を形成している。
【００４７】
図５は、この実施の形態のスケジュール表作成装置１の組織データ階層管理部６２２１ｃ１において管理されている組織階層定義テーブルを模式的に示した図である。この組織階層定義テーブル１００は図４に示す組織階層をテーブル化したものであり、各ノード及びノード相互間の関係を名称列１０１、階層レベル列１０２、上位ノードの名称列１０３によって規定し、各行が１のノードを表わしている。例えば４行目１０４は「サイト階層」にある「銀座店」ノードであり、上位ノードは「東京」ノードであることを示している（図４参照）。なお、同階層定義テーブル１０５においては、１〜３行目の上位ノードの名称が直属の「エンタープライズ」でなく「ＲＯＯＴ」になっているが、エンタープライズ階層の「企業Ａ」「企業Ｂ」等がそれ以下の階層そのものを区分するので最上位の階層のノードを上位ノードに規定したものである。
【００４８】
図６は、この実施の形態のスケジュール表作成装置１の組織データ階層管理部６２２１ｃ１において管理されているルールテーブルを模式的に示した図である。このルールテーブル１１０は、組織階層のノード毎のルールを組織階層ラベル列１１１、テンプレート番号列１１２、パラメータリスト列１１３、コメント文字列１１４に基づいて規定したものであり、各行が１のノード自身に規定されたルール情報を形成する。各行において、組織階層ラベル列１１１には各行のルール情報が規定されるノードの名称が規定され、テンプレート番号列１１２は各行のルール情報に適用される目標関数や制約条件の式（即ち上記（１）乃至（５）に示すような式のこと。この実施の形態では各式に通し番号が付され、この通し番号がテンプレート番号を形成する。）が規定され、パラメータリスト列１１３には、テンプレート番号列１１２で特定された式の変数に引き渡すパラメータの値が規定され、コメント文字列１１４は各行のルール情報の意味を概説するための情報が規定される。
【００４９】
次に、これらのテーブルを用いたルールの抽出手順について説明する。
【００５０】
図７は、この実施の形態のスケジュール表作成装置１の組織データ階層管理部６２２１ｃ１において管理されている各テーブルを用いて、特定階層の特定のノードに適用するルール情報を抽出する処理を示すフローチャートである。当該処理は適用選択部６２２１ｄにおいて行われる。なお同フローチャートはサイト階層のノードに対する処理を例示して説明するが、サイト階層以外の階層のノードに対する処理であっても全て本フローチャートと同様の手順で処理が行われる。
【００５１】
例えば図４に示すサイト階層の「銀座店」ノード１０４に適用するルールを規定するルール情報を考える。このとき、まず適用選択部６２２１ｄは対象となるサイト階層を抽出し（ステップＳ１）、次いで組織階層定義テーブル１００の名称「銀座店」ノード１０４を抽出する（ステップＳ１）。組織階層定義テーブル１００の名称列１０１に対象となる「銀座店」を含む行（レコード）１０４を抽出する。そして、当該「銀座店」の行１０４において上位ノードの名称列１０３に記載されている名称「東京」を対象リージョンとし、次に組織階層定義テーブル１００の名称列１０１に「東京」を含む行の上位ノードの名称列１０３に記載された「ＲＯＯＴ」を抽出する（ステップＳ２）。即ち、ステップＳ２の処理はステップＳ１で抽出された階層から最上位の階層までノードをさかのぼる（図４参照）形で組織階層定義テーブル１００の抽出が行われる。
【００５２】
次に、適用選択部６２２１ｄはルールテーブル１１０の中からステップＳ２で抽出された行に対応する行（レコード）を抽出する。この実施の形態では、ルールテーブル１１０の中から対象サイト、対象リージョン（又はルート）に対応する、組織階層ラベル列１１１が「銀座店」の行１１５、及び組織階層ラベル列１１１が「東京」の行１１６を抽出する（ステップＳ３）。
【００５３】
そして、適用選択部６２２１ｄはステップＳ３で抽出された行（レコード）のセットを対象サイトに適用するルールセット（ルール情報）とする（ステップＳ４）。即ち、ステップＳ３で抽出された行（ここではルールテーブル１１０の行１１５、行１１６）において、テンプレート番号列１１２の番号で規定された目標関数や制約条件の式、及びパラメータリスト列１１３にて規定されたパラメータの値が「銀座店」ノード１０４のルールセット（ルール情報）となる。
【００５４】
このように、被雇用者が所属する部署等の組織に関する情報をルール情報として有すると共に組織に関する情報が階層的に管理された組織データ階層管理部６２２１ｃ１を備えたことにより、関連性の高いルール情報同士を企業内の部署同士や事業所同士の関係と同様に階層的に管理し、また統合的に利用することを可能にする。これにより、部署毎、事業所毎、地域毎等の違いによる仕事の内容や仕事量の違いによって増加したルール情報を合理的に管理することを可能にすると共に、スケジュール情報を作成する際におけるルール情報の利用の利便性を向上させることができる。
【００５５】
次に、この実施の形態のスケジュール表作成装置１における、時間データ階層管理部６２２１ｃ２において管理されている情報の具体的態様と、ルール情報の適用の具体的手順について説明する。
【００５６】
図８は、この実施の形態のスケジュール表作成装置１において定義された時間階層等を模式的に示した図である。同図に示す通り、スケジュール表作成システム１Ａにおいては複数の時間階層、即ち季節階層、月階層、日階層、週階層、曜日種類階層、曜日階層、業務階層が定義されている。また、各階層には階層のカテゴリーに含まれるノードが定義されており、季節階層のノードと月階層のノード、曜日種類階層のノードと曜日階層のノードは上下関係を形成し、ゆえにこれらの階層同士も上下関係を形成している。また、各ノードはいずれの階層にも属しない「全ての日」ノードを起点とするツリー構造を形成している。なお、業務階層と、業務階層に含まれる棚卸」ノード及び「ミーティング」ノードとの定義は必ずしも必要ではないが、ノードの定義する「棚卸」のある日や「ミーティング」のある日にはその業務が定義されている。
【００５７】
図９は、この実施の形態のスケジュール表作成装置１の時間データ階層管理部６２２１ｃ２において管理されている時間階層定義テーブルを模式的に示した図である。この時間階層定義テーブル２００は図８に示す時間階層をテーブル化したものであり、各ノード及びノード相互間の関係を種類列２０１、値列２０２、上位ノード種類列２０３、上位ノード値列２０４によって規定し、各行が１のノードを表わしている。例えば４行目２０５は「月階層」にある「１月」ノードであり、上位階層は「季節階層」で上位ノードは「繁忙期」ノードであることを示している（図８参照）。
【００５８】
また、図示しないがこの実施の形態の時間データ階層管理部６２２１ｃ２には時間ルールテーブルが設けられている。この時間ルールテーブルには、下記（Ａ）を単位とするルール情報を複数有するテーブルデータを形成している。
｛日にちの条件｝−｛スタッフの条件｝−｛ルールボディ｝−｛制限値｝・・・（Ａ）
但し（Ａ）において｛｝は情報の単位、“−”は情報の単位同士の関連付けを示す。この｛日にちの条件｝には時間階層の特定のノード（図８の種類列２０１参照）が定義され、｛スタッフの条件｝にはスタッフの役職等（図４のロール階層のノード等参照）が定義され、｛ルールボディ｝には目標関数や制約条件の式（上記（１）乃至（５）に示すような式）が定義され、｛制限値｝には被雇用者の数や勤務時間等の具体的な制限値が定義されて、全体として例えば「繁忙期にはセールス階層の被雇用者が１５人以上勤務する」ような時間毎の勤務条件が定義される。
【００５９】
次に、これらのテーブルを用いたルールの抽出手順について説明する。
【００６０】
図１０は、この実施の形態のスケジュール表作成装置１の時間データ階層管理部６２２１ｃ２において管理されている各テーブルを用いて、特定の時間に適用するルール情報を抽出する処理を示すフローチャートである。当該処理は適用選択部６２２１ｄにおいて行われる。なお同フローチャートは特定の「日」に適用されるルール情報の抽出処理を例示して説明するが、「日」以外の全ての時間（例えば図８における「季節」や「時間」等の各階層）に対する処理であっても全て本フローチャートと同様の手順で処理が行われる。
【００６１】
例えば「３月１日、月曜日」に適用されるルール情報を抽出する場合、適用選択部６２２１ｄは時間階層定義テーブル２００の値列２０２に該当する時間種類が記載された行を抽出し、抽出した行情報をデータの一時記憶領域としての「日にちリスト（図１０に示す６２２１ｅ参照。実際には図２に示す通り適用選択部６２２１ｄの一部に形成される。）」に記憶しておく（ステップＳ１１）。例えば図９の時間階層定義テーブル２００においては、値列２０２が「３（月）」の行２０６、「１（週目）」の行２０７、「月（曜日）」の行２０８が抽出され、これらが「日にちリスト」に記憶される。そして、抽出された列の上位ノード種類列２０３、上位ノード値列２０４に値がある場合には（ステップＳ１２の“Ｙｅｓ”）、その上位ノードが種類列２０１、値列２０２に記載された行の検索と抽出を行う（ステップＳ１３）。図９の時間階層定義テーブル２００においては、値列２０２が「通常期」の行２０９、値列２０２が「平日」の行２１０が抽出される。即ち、ステップＳ１２〜Ｓ１３の処理はステップＳ１１で抽出された各ノードから最上位のノードまでそれぞれのノードツリーをさかのぼる（図８参照）形で時間階層定義テーブル２００の抽出が行われる。
【００６２】
ステップＳ１３の処理が全て完了したら（ステップＳ１２の“Ｎｏ”）、適用選択部６２２１ｄは日にちリストに記憶された情報を抽出し（ステップＳ１４）、時間ルールテーブル（図示せず）から該当するルールを抽出して（ステップＳ１５の“Ｙｅｓ”）当該ルールを適用する（ステップＳ１６）。時間ルールテーブルから如何なるルールも抽出できなければ（ステップＳ１５の“Ｎｏ”）ルールの適用は行わない。
【００６３】
このように、被雇用者の勤務日、非勤務日、勤務日における勤務シフト等の勤務態様に関する情報をルール情報として有すると共に勤務態様に関する情報が階層的に管理された時間データ階層管理部６２２１ｃ２を備えたことにより、関連性の高いルール情報同士を企業内の仕事の内容や仕事量を左右する時間情報に基づいて階層的に管理し、また統合的に利用することを可能にする。これにより、季節、月、曜日等の違いによる仕事の内容や仕事量の違いによって増加したルール情報を合理的に管理することを可能にすると共に、スケジュール情報を作成する際におけるルール情報の利用の利便性を向上させることができる。
【００６４】
そして、図７及び図１０に示す手順が実行された結果、整数計画ソルバー６２２２は組織データ及び時間データに基づくルール情報を構成する目標関数及び制約条件と計算に必要なパラメータの値等を用いてスケジュール表を作成する。これにより、コンピュータが実行し易い態様で、適用される組織や時間等の条件に対する適合性の高いスケジュール表を作成できる。
【００６５】
（発明の実施の形態２）
以下、図１１乃至図１２にこの発明の実施の形態２を示す。
【００６６】
図１１は、この発明の実施の形態２のスケジュール表作成装置１における最適化処理部６の機能ブロック図である。同図に示す通り、この実施の形態におけるスケジュール表作成装置１の最適化処理部６は、ルール緩和部６２２３が設けられている。このルール緩和部６２２３は、整数計画ソルバー６２２２において、適用選択部６２２１ｄによって選択されたルール情報を用いてスケジュール表の作成ができない場合、スケジュール表への適用が可能になるようにルール情報を緩和するものであり、当該ルール情報を用いてスケジュール表の作成ができるか否かを判断する判断部６２２３ｂと、判断部６２２３ｂにおいてスケジュール表が作成できないと判断された場合にルール情報の緩和を行う緩和部６２２３ａとを有している。
【００６７】
また、この実施の形態の時間データ階層管理部６２２１ｃ２にも時間ルールテーブル（図示せず）が設けられている。この時間ルールテーブルには、この発明の実施の形態１に示すルール情報（Ａ）の他に、下記（Ｂ）に例示する例外ルール情報を複数有している。この例外ルール情報（Ｂ）は特定のルール情報に関連付けられて、当該特定のルール情報を適用できないときに例外適用するための情報を形成する。
｛日にちの条件｝−｛スタッフの条件｝−｛制限値｝・・・（Ｂ）
但し（Ｂ）において｛｝は情報の単位、“−”は情報の単位同士の関連付けを示す。
この｛日にちの条件｝には時間階層の特定のノード（図８の種類列２０１参照）が定義され、｛スタッフの条件｝にはスタッフの役職等（図４のロール階層のノード等参照）が定義され、｛制限値｝には被雇用者の数や勤務時間等の具体的な制限値が定義されて、全体として例えば「（ルール情報（Ａ）によって規定された「日曜日には被雇用者が１０人以上勤務する」という原則が適用できない場合には）６人以上９人以下の被雇用者が勤務する」ような時間毎の勤務条件が定義される。
【００６８】
また、この実施の形態２の時間ルールテーブル（図示せず）には、ルール情報（Ａ）や例外ルール情報（Ｂ）の｛日にちの条件｝を自動的に変更しうるか否かの自動変更可否情報も併せて記録されている。
【００６９】
上記以外の構成は実施の形態１と同じである。
【００７０】
図１２は、この実施の形態２のスケジュール表作成装置１における、ルール情報の緩和手順を示すフローチャートである。以下同フローチャートに基づいて具体的手順を説明する。
【００７１】
まず、図７，図１０に示す手順の後、整数計画ソルバー６２２２に組織データ及び時間データに基づくルール情報を適用した結果、制約条件に基づいたスケジュール表の作成ができないとルール緩和部６２２３の判断部６２２３ｂが判断した場合、判断部６２２３ｂは、制約に違反したルール、違反した日を抽出する（ステップＳ２１）。例えば「日曜日には被雇用者が１０人以上勤務する」というルール情報があるにも係らず、予定表管理部６１、及びスケジュール記録管理部５には、ある特定の日曜日は休暇や出張などで被雇用者が９人しか勤務できない旨の情報が記録されているような場合が、この「違反したルール」「違反した日」として抽出される条件に相当する。
【００７２】
次に、判断部６２２３ｂは、時間ルールテーブル（図示せず）等を参照し、例外ルール情報（上記（Ｂ））が存在するか否かを確認し、存在する場合（ステップＳ２２の“Ｙｅｓ”）で、かつ当該例外ルール情報（Ｂ）やそれに関連付けられたルール情報（Ａ）の｛日にちの条件｝の自動変更可否情報が自動変更可能の設定になっている場合（ステップＳ２３の“Ｙｅｓ”）、緩和部６２２３ａは「違反した日」を例外の日にちの条件に設定して例外の「日にちリスト（図１０，図１１に示す６２２１ｅ参照）」に記憶する条件設定を行い（ステップＳ２４）、再度、整数計画ソルバー６２２２による最適化処理が行われる（ステップＳ２６）。なお、上記において例外ルール情報（Ｂ）が存在しない場合（ステップＳ２２の“Ｎｏ”）や、｛日にちの条件｝の自動変更可否情報が自動変更不可の設定になっている場合（ステップＳ２３の“Ｎｏ”）には、スケジュール表作成装置１のオペレータによる手動による例外の指定が行われ（ステップＳ２５）て、かかる指定に基づいてステップＳ２６の処理が行われる。
【００７３】
以上、この実施の形態２においては、整数計画ソルバー６２２２において、適用選択部６２２１ｄによって選択されたルール情報を用いてスケジュール表の作成ができない場合、スケジュール表への適用が可能になるようにルール情報を緩和するルール緩和部６２２３を備えたことにより、状況の変化に応じてルール情報の適用条件を調節し、制約条件を満たすことができないためにスケジュール表を作成できないような事態の発生を抑止することができる。
【００７４】
以上、上記各実施の形態においては、被雇用者の雇用条件に関する情報であってスケジュール表を作成する際の制約条件を形成するルール情報を階層構造として複数管理する階層管理部６２２１ｃと、階層管理部６２２１ｃで階層的に管理されたルール情報からスケジュール表の作成に適用するルール情報を選択する適用選択部６２２１ｄとを備えたことにより、関連性の高いルール情報同士をグループ化した状態で管理し、かつスケジュール表の作成に用いることが可能になる。これにより、スケジュール表作成時に用いる複数の制約条件を合理的に管理し、コンピュータに過大な負荷をかけることなく、多様な勤務態様、雇用条件に対応するスケジュール表を作成することができる。
【００７５】
上記各実施の形態において、各機能手段はプログラム等の演算結果に基いて形成されるものとしたが、これらの全部又は一部をハードウェアロジックによって形成し、処理の高速化を図ってもよい。
【００７６】
上記各実施の形態は本発明の例示であり、本発明が上記各実施の形態に限定されることを意味するものではないことは、いうまでもない。
【符号の説明】
【００７７】
１・・・スケジュール表作成装置
６２２１ｃ・・・階層管理部（階層管理手段）
６２２１ｄ・・・適用選択部（適用選択手段）
６２２２・・・整数計画ソルバー
６２２３・・・ルール緩和部（ルール緩和手段）
【図１】
0005501421.tif 000007
【図２】
0005501421.tif 000008
【図３】
0005501421.tif 000009
【図４】
0005501421.tif 000010
【図５】
0005501421.tif 000011
【図６】
0005501421.tif 000012
【図７】
0005501421.tif 000013
【図８】
0005501421.tif 000014
【図９】
0005501421.tif 000015
【図１０】
0005501421.tif 000016
【図１１】
0005501421.tif 000017
【図１２】
0005501421.tif 000018