(57)【特許請求の範囲】
【請求項１】
複数の勤務者に対して所定の期間での各日に所定の勤務形態を割付けた勤務シフト表を作成する勤務シフト表作成装置であって、
過去に作成された勤務シフト表のデータを取得する勤務シフト表データ取得手段と、
前記勤務シフト表データ取得手段が取得した過去の勤務シフト表のデータから、確率を用いたアルゴリズムによって、ある勤務者の時系列の勤務形態パターンから算出した、ある勤務者のある日に割り当てられる勤務形態の確率と、同一日でのある勤務者以外の他の勤務者に割り当てられる勤務形態の確率とに基づいて、当該日のある勤務者の、確率的に可能性の高い勤務形態を推測することで、ある勤務者の確率的に一番高い勤務形態パターンを推測するパターン推測手段と、
予め設定した各勤務者に対する制約条件を記憶した記憶手段と、
勤務シフト表の作成処理を行う勤務シフト表作成処理手段とを備え、
前記勤務シフト表作成処理手段は、前記記憶手段に記憶している前記制約条件を満足するために制約プログラミングを用い、かつ前記パターン推測手段から取り込んだ、ある勤務者の前記確率的に一番高い勤務形態パターンのデータから、
ある勤務者の前記所定の期間での各日に対して、前記制約条件を満足するようにして、推測した前記確率的に一番高い勤務形態パターンのうちから選んだ勤務形態を順に割り付けつつ、前記他の勤務者については、前記所定の期間での各日に対して、前記制約条件を満足するようにして所定の勤務形態を順に割付けるようにして勤務シフト表を生成することを特徴とする勤務シフト表作成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、勤務者の勤務シフト計画表（以下、「勤務シフト表」という）を作成する勤務シフト表作成装置に関する。
【背景技術】
【０００２】
従来より、例えば、病院、介護施設、コールセンターなどにおいては、複数の勤務者が交代制（早番、遅番、日勤、夜勤等）で勤務しているので、前月の中旬か下旬ぐらいまでに予め次月の勤務シフト表を作成しておく必要がある。
【０００３】
勤務シフト表の作成は、従来は勤務シフト表作成担当者（勤務管理責任者）が各勤務者の希望等を考慮しつつ、全勤務者に対して不公平感が生じないように調整しながら手書き作業で行っていたが、近年、コンピュータを利用して勤務シフト表を作成する装置が提案されている（例えば、特許文献１参照）。
【０００４】
前記特許文献１の発明では、勤務配置の際に参照する望ましい勤務パターンを登録した推奨勤務情報、禁止したい勤務パターンを登録した禁則勤務情報、勤務者の技術レベル情報等に基づいて、勤務シフト表を作成するようにしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−１４９９２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、前記特許文献１の発明では、作成された勤務シフト表から各勤務者に対するシフト割り当てのパターンを抽出する機能を有していないので、過去の履歴を反映することができない。このため、勤務シフト表を作成するたびに推奨勤務情報、禁則勤務情報、勤務者の技術レベル情報等を登録する必要があるので、勤務シフト表の作成に時間を要し、適切な勤務シフト表を作業性よく作成することができなかった。
【０００７】
そこで、本発明は、適切な勤務シフト表を作業性よく作成することが可能な勤務シフト表作成装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
前記目的を達成するために本発明は、複数の勤務者に対して所定の期間での各日に所定の勤務形態を割付けた勤務シフト表を作成する勤務シフト表作成装置であって、過去に作成された勤務シフト表のデータを取得する勤務シフト表データ取得手段と、前記勤務シフト表データ取得手段が取得した過去の勤務シフト表のデータから、確率を用いたアルゴリズムによって、ある勤務者の時系列の勤務形態パターンから算出した、ある勤務者のある日に割り当てられる勤務形態の確率と、同一日でのある勤務者以外の他の勤務者に割り当てられる勤務形態の確率とに基づいて、当該日のある勤務者の、確率的に可能性の高い勤務形態を推測することで、ある勤務者の確率的に一番高い勤務形態パターンを推測するパターン推測手段と、予め設定した各勤務者に対する制約条件を記憶した記憶手段と、勤務シフト表の作成処理を行う勤務シフト表作成処理手段とを備え、前記勤務シフト表作成処理手段は、前記記憶手段に記憶している前記制約条件を満足するために制約プログラミングを用い、かつ前記パターン推測手段から取り込んだ、ある勤務者の前記確率的に一番高い勤務形態パターンのデータから、ある勤務者の前記所定の期間での各日に対して、前記制約条件を満足するようにして、推測した前記確率的に一番高い勤務形態パターンのうちから選んだ勤務形態を順に割り付けつつ、前記他の勤務者については、前記所定の期間での各日に対して、前記制約条件を満足するようにして所定の勤務形態を順に割付けるようにして勤務シフト表を生成することを特徴としている。
【発明の効果】
【０００９】
本発明に係る勤務シフト表作成装置によれば、勤務シフト表作成処理手段は、記憶手段に記憶している制約条件を満足するために制約プログラミングを用い、かつパターン推測手段から取り込んだ、ある勤務者の確率的に一番高い勤務形態パターンのデータから、ある勤務者の所定の期間での各日に対して、制約条件を満足するようにして、推測した確率的に一番高い勤務形態パターンのうちから選んだ勤務形態を順に割り付けつつ、他の勤務者については、所定の期間での各日に対して、制約条件を満足するようにして所定の勤務形態を順に割付けるようにして勤務シフト表を生成する。
【００１０】
これにより、制約条件を単に満たすだけの勤務シフト表とは異なり、過去の勤務シフト表のデータから推測した確率的に一番高いシフトパターン情報を反映させることができるので、勤務シフト表の作成に熟練していないユーザでも適切な勤務シフト表を作業性よく作成することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係る勤務シフト表作成装置の構成を示すブロック図。
【図２】過去に作成された勤務シフト表の一例を示す図。
【図３】本実施形態に係る勤務シフト表作成装置を使用して勤務シフト表を作成する際の手順を示したフローチャート。
【図４】本実施形態に係る勤務シフト表作成装置を使用して勤務シフト表を作成する際の最初の初期シフト表を示す図。
【図５】曜日とその前後の並びに基づく確率の計算方法の一例を示した図。
【図６】（ａ）〜（ｅ）は、勤務者の組み合わせに基づく確率の計算方法の一例を示した図。
【図７】初期シフト表上で割り付け可能な３パターンの勤務形態を保持した状態を示す図。
【図８】制約条件３、４に基づいて、各勤務者に割り付け可能な勤務形態（「夜」）の数、各曜日で必要な勤務形態（「日」、「夜」）の数を保持した状態を示す図。
【図９】勤務者「鈴木」の１日目のシフトとして「日勤」を仮定して設定した状態を示す図。
【図１０】制約条件２によって、勤務者「鈴木」の２日目には「夜明」を割り付けることができず、１日目については、制約条件４により他の勤務者に「日勤」を割り付けることができない状態を示す図。
【図１１】シフトパターン推測部によって、「日勤」の次は「夜勤」となるシフトパターンの確率が一番高いと判断して、勤務者「鈴木」の２日目に「夜勤」を割り付けた状態を示す図。
【図１２】制約条件１によって、勤務者「鈴木」の３日目に「夜明」を割り付けた状態を示す図。
【図１３】勤務者「佐藤」の１日目のシフトとして「夜勤」を仮定して設定した状態を示す図。
【図１４】制約条件１、２により、勤務者「佐藤」の２日目、３日目に「夜明」、「日勤」を割り付け、制約条件２〜４により、勤務者「高橋」の１〜３日目に「夜明」、「日勤」、「夜勤」を割り付けた状態を示す図。
【発明を実施するための形態】
【００１２】
以下、本発明を図示の実施形態に基づいて説明する。図１は、本発明の実施形態に係る勤務シフト表作成装置の構成を示すブロック図である。なお、本実施形態では、図１に示した勤務シフト表作成装置１によって、病院に勤務する看護師等の勤務シフト表を作成する例について説明する。
【００１３】
図１に示すように、本実施形態の勤務シフト表作成装置１は、装置本体２と、キーボード等の入力部３と、液晶ディスプレイ等の表示部４とを備えている。この勤務シフト表作成支援装置１は、例えばパーソナルコンピュータ（ＰＣ）によって構成されている。
【００１４】
装置本体２は、勤務シフト表データ取得部５、シフトパターン推測部６、勤務シフト表作成処理部７、勤務シフト表データ記憶部８、制約条件記憶部９を有している。
【００１５】
勤務シフト表データ取得部５は、勤務シフト表データ記憶部８に保存されている過去に作成された勤務シフト表（以下、「過去の勤務シフト表」という）のデータを読み取って、この過去の勤務シフト表のデータを取得する。この過去の勤務シフト表のデータは、ＣＳＶ（Comma-Separated Values）形式などのテキストデータファイルとしてハードディスクやＵＳＢメモリなどからなる勤務シフト表データ記憶部８に保存されている。
【００１６】
勤務シフト表データ記憶部８には、後述する作成手順によってこの勤務シフト表作成支援装置１で作成された過去の勤務シフト表のデータが蓄積されている。なお、勤務シフト表データ記憶部８に保存された過去の勤務シフト表のデータには、勤務シフト表作成支援装置１で作成後に勤務シフト表作成担当者によって一部修正された修正勤務シフト表も含まれている。
【００１７】
勤務シフト表データ取得部５は、勤務シフト表データ記憶部８から最後に作成された最新の過去の勤務シフト表のデータを通常は読み出すが、勤務シフト表作成担当者による入力部３の操作によって蓄積されているデータのうちから任意の過去の勤務シフト表を選択することもできる。
【００１８】
なお、勤務シフト表データ取得部５は、勤務シフト表データ記憶部８から過去の勤務シフト表のデータを読み取る以外にも、例えば勤務シフト表作成支援装置１を導入する以前に手作業で作成された紙の勤務シフト表のデータを、スキャナ装置（不図示）を介して取り込む構成でもよい。
【００１９】
シフトパターン推測部６は、勤務シフト表データ取得部５が取得した過去の勤務シフト表（修正勤務シフト表も含む）のデータから統計情報を取得し、確率を用いたアルゴリズムによって確率的に一番高い勤務形態パターンを推測する。例えば、図２に示すような過去の勤務シフト表（修正勤務シフト表も含む）Ａのデータにおいて、「日勤」の次に来るシフト回数のみに基づいて確率を求めるとすると、確率はそれぞれ「夜勤」＝2/3、「休」＝1/3となる。これにより、「日勤」の次は「夜勤」となる勤務形態パターンの可能性が一番高くなると推測できる。なお、図２に示した勤務シフト表において、「日勤」は「昼間勤務」、「夜勤」は「夜間勤務」、「夜明」は「夜間勤務明けの昼間勤務」、「休」は「休日」を表している。
【００２０】
制約条件記憶部９には、勤務シフト表を作成するにあたって予め設定された制約条件が記憶されている。この制約条件は、例えば、「各勤務者に対して夜間勤務（夜勤）の次は夜間勤務明けの昼間勤務（夜明）とする」などの職場の勤務形態に応じて必ず守る必要がある一つ或いは複数の設定事項である。なお、制約条件記憶部９に記憶される制約条件は、勤務シフト表作成担当者による入力部３の操作によって変更可能である。
【００２１】
勤務シフト表作成処理部７は、制約条件記憶部９に記憶している制約条件を満足するような制約プログラミング、及びシフトパターン推測部６で推測した確率的に一番高くなる勤務形態パターン情報によって、各勤務者に対して所定の期間での各日に、制約条件を満たしながら確率的に一番高い勤務形態パターン情報を反映させた勤務形態を割付けながら勤務シフト表を生成する処理を行う（詳細は後述する）。
【００２２】
次に、勤務シフト表作成装置１を使用して勤務シフト表を作成する際の手順を、図３に示すフローチャートを参照して説明する。
【００２３】
なお、本実施形態では、説明を簡単にして作成手順を分かり易くするために、図４に示す初期シフト表ように、勤務者の人数を３人（鈴木、佐藤、高橋）、勤務シフト表の期間（日数）を３日（１（月）、２（火）、３(水））として説明する。また、勤務形態も説明を簡単にするために、「日勤」、「夜勤」、「夜明」の３パターンの勤務形態として説明する。
【００２４】
勤務シフト表データ記憶部８には、本実施形態では、例えば、図２に示したような過去の勤務シフト表（修正勤務シフト表も含む）Ａが記憶されている。また、制約条件記憶部９には、本実施形態では、例えば、「各勤務者に対して夜勤の次は夜勤明けとする（以下、「制約条件１」という）」、「各勤務者に対して夜勤明けの前は夜勤とする（以下、「制約条件２」という）」、「各勤務者に対して夜勤の数は３日間の間に１回である（以下、「制約条件３」という」、「各曜日において、日勤と夜勤はそれぞれ１人だけ割り付ける（以下、「制約条件４」という」といった４つの制約条件が記憶されている。なお、制約条件１は、勤務シフトスケジュールの最後の日に関しては除外し、制約条件２は、勤務シフトスケジュールの最初の日に関しては除外する。
【００２５】
先ず、勤務シフト表作成装置１の勤務シフト表データ取得部５は、勤務シフト表データ記憶部８から例えば、図２に示した過去の勤務シフト表（修正勤務シフト表も含む）Ａのデータを取得する（ステップＳ１）。
【００２６】
そして、シフトパターン推測部６は、勤務シフト表データ取得部５が取得した過去の勤務シフト表（例えば、図２に示したような過去の勤務シフト表Ａ）のデータから統計情報を取得し、確率を用いたアルゴリズムによって可能性の高い勤務形態パターンを推測する（ステップＳ２）。例えば、図２に示したような過去の勤務シフト表（修正勤務シフト表も含む）Ａのデータから、「日勤」の次に来るシフト回数のみに基づいて確率を求めるとすると、確率はそれぞれ「夜勤」＝2/3、「休」＝1/3となる。これにより、「日勤」の次は「夜勤」となる勤務形態パターンの可能性が一番高くなると推測する。
【００２７】
以下、ステップＳ２における、確率を用いたアルゴリズムによって可能性の高い勤務形態パターンを推測する方法の詳細について説明する。
【００２８】
（曜日とその前後の並びに基づく確率の計算）
先ず、勤務シフト表の横方向（ある勤務者の勤務形態パターン）を元にした確率の計算法について説明する。
【００２９】
例えば、図５に示したような過去のシフト表から、勤務者「鈴木」に対して、注目した日が水曜日、かつ1日前が「明（夜明）」、かつ1日後が「日（日勤）」の条件（以下、この条件を「条件Ａ」とする）が成立した回数Ａと、注目した日が特定のシフト(図５の例では「休」)であった回数Ａａを数えることにより、条件Ａが成立した時に注目した日が「休」になる確率はＡａ／Ａとして計算できる。
【００３０】
そして、同様の計算を他のシフト(「夜（夜勤）」、「明（夜明）」「日（日勤）」など)についても行えば、どのシフトが割り当てられる確率が最も高いのかを計算することができる（同一の条件Ａで各シフトが割り当てられる確率の和は1になる）。
【００３１】
ここでは、１日前、１日後に基づいた条件を例にあげたが、これは任意のｎ日前、ｎ日後についても同じ方法で計算を行うことができる。異なる日数を用いて計算された確率を保持する場合、すべての確率の積が、シフトが割り当てられる確率となる。
【００３２】
例えば、１日前、１日後の条件に基づいて計算した、シフトａが割り当てられる確率をP1aとした場合、２日前、２日後の条件に基づいて計算した、シフトａが割り当てられる確率をＰ２ａとする。このとき、注目している日付のシフトがａになる確率は、Ｐ１ａＰ２ａとなる。
【００３３】
（勤務者の組み合わせに基づく確率の計算）
次に、シフト表の縦方向(ある日の勤務者のシフト割り当て)を元にした確率の計算方法について説明する。
【００３４】
先ず、過去のシフト割り当てデータが十分にあることを前提にする(例えば、過去一ヶ月分のシフト割り当てデータ）。そして、図６（ａ）に示すように、各日（日Ａ〜日Ｄ）のシフト割り当てが図示のように得られているとする。
【００３５】
そして、例えば、図６（ｂ）に示すように、勤務者「鈴木」に対して、確率を計算しようとしている日の他の勤務者の勤務状態が図示のようであったとする。
【００３６】
そして、過去のシフト割り当てのデータに対して、他の勤務者のシフトが一致するものを「０」、一致しないものを「１」としてハミング距離を計算すると、例えば、図６（ｃ）のようになる。
【００３７】
ここで、合計が例えば１以下のもの（図６（ｃ）内の斜線部分）だけを取り出し、勤務者「鈴木」に対して割り当たっているシフトを数える。図６（ｄ）は、この割り当たっているシフトの数の一例である。
【００３８】
この時、勤務者「鈴木」に割り当てるべきシフトの確率は、シフトの回数／合計であり、図６（ｅ）のようになる（これは、勤務表の比較にシフト割り当てのハミング距離を用い、K近傍法でシフトの割り当て確率を求めたことに相当する）。
【００３９】
上記したこれらの確率の計算方法等を用いることで可能性の高い勤務形態パターンを推測することができる。
【００４０】
そして、勤務シフト表作成処理部７は、図７に示すように、初期シフト表上で割り付け可能な前記の３パターンの勤務形態を保持する（ステップＳ１）。なお、図５では、勤務形態の「日勤」を「日」、「夜勤」を「夜」、「夜明」を「明」と略して表記している（以下の図においても同様である）。
【００４１】
そして、図８に示すように、制約条件記憶部９から取り込んだ前記制約条件３、４に基づいて、各勤務者に割り付け可能な勤務形態（「夜」）の数、各曜日で必要な勤務形態（「日」、「夜」）の数を保持する（ステップＳ３）。
【００４２】
そして、図９に示すように、勤務者「鈴木」の１（月）日目のシフトとして「日勤」を仮定して設定する（ステップＳ４）。ここで、前記制約条件２によって、図１０に示すように、勤務者「鈴木」の２(火）日目に「夜明」を割り付けることができず、また、１（月）日目については、前記制約条件４により他の勤務者に「日勤」を割り付けることができない。
【００４３】
そして、勤務者「鈴木」の２(火）日目のシフトとして「夜明」が除外されることで、勤務者「鈴木」の２（火）日目のシフト候補として「日勤」と「夜勤」があるが、シフトパターン推測部６（図１参照）によって、「日勤」の次は「夜勤」となる勤務形態パターンの確率が一番高いと判断し、図１１に示すように、勤務者「鈴木」の２(火）日目に「夜勤」を割り付ける（ステップＳ５）。
【００４４】
そして、前記制約条件１によって、図１２に示すように、勤務者「鈴木」の３(水）日目に「夜明」を割り付ける（ステップＳ６）。なお、２（火）日目については、前記制約条件４により他の勤務者に「夜勤」を割り付けることができない。
【００４５】
ステップＳ６で勤務者「鈴木」の１〜３日目までの全ての勤務シフトが決定されると、次に、図１３に示すように、勤務者「佐藤」の１（月）日目のシフトとして「夜勤」を仮定して設定する（ステップＳ７）。ここで、図１４に示すように、前記制約条件１により、勤務者「佐藤」の２（火）日目に「夜明」が割り付けられ、更に、前記制約条件１、２により、勤務者「佐藤」の３（水）日目は「夜勤」でも「夜明」でもないので、「日勤」が割り付けられる（ステップＳ８）。
【００４６】
そして、残りの勤務者「高橋」に関しては、１（月）日目は前記制約条件４により「夜明」が割り付けられ、また、２（火）日目は前記制約条件４により「日勤」が割り付けられ、更に、３（水）日目は前記制約条件２、３により「夜勤」が割り付けられることによって、勤務シフト表が生成される（ステップＳ９）。
【００４７】
ステップＳ９で作成された勤務シフト表は、表示装置４に表示され、必要があれば勤務シフト表作成担当者による入力部３の操作によって一部を修正した後に、勤務シフト表データ記憶部８に記憶し、更に、接続されたプリンタ（不図示）によりこの作成された勤務シフト表を印字した用紙を出力する。
【００４８】
このように、本実施形態の勤務シフト表作成装置１によれば、勤務シフト表作成処理部７は、制約条件記憶部９に記憶されている制約条件項目（制約条件１〜４）を満足するような制約プログラミング、及びシフトパターン推測部６で推測した確率的に一番高くなる勤務形態パターン（例えば、「日勤」の次は「夜勤」となるような勤務形態パターン）情報によって、各勤務者の各曜日に適切な勤務形態を割付けることができる。
【００４９】
これにより、予め設定した制約条件を単に満たすだけの勤務シフト表とは異なり、過去の勤務シフト表のデータから推測した確率的に一番高い勤務形態パターン情報を反映させることができるので、勤務シフト表の作成に熟練していないユーザでも適切な勤務シフト表を作業性よく作成することが可能となる。
【００５０】
なお、前記した実施形態では、説明を簡単にするために勤務者の人数を３人（鈴木、佐藤、高橋）、勤務シフト表の期間（日数）を３日（１（月）、２（火）、３(水））とし、更に勤務形態を「日勤」、「夜勤」、「夜明」の３パターンの勤務形態として説明したが、これに限定されることはない。例えば、勤務者の人数が数人〜数十人、勤務シフト表の期間（日数）が１週間、１ヶ月間、３ヶ月間等、勤務形態が「日勤」、「夜勤」、「夜明」の他に「休日」、「早出」、「遅出」などを含んでいる場合においても、同様に前記した勤務シフト表の作成手順を適用することで適切な勤務シフト表を作業性よく作成することができる。
【００５１】
また、前記した実施形態では、制約条件記憶部９に前記制約条件１〜４が記憶された構成であったが、これに限らず、制約条件記憶部９には職場の勤務形態に応じて任意の制約条件を複数記憶することができる。
【００５２】
更に、前記した実施形態では、病院に勤務する看護師等の勤務シフト表を作成する例について説明したが、これ以外にも、例えば、介護施設、コールセンターなどの複数の勤務者が交代制（早番、遅番、日勤、夜勤等）で勤務する職場においても同様に本発明を適用することができる。
【符号の説明】
【００５３】
１        勤務シフト表作成装置
３        入力装置
４        表示装置
５        勤務シフト表データ取得部（勤務シフト表データ取得手段）
６        シフトパターン推測部（パターン推測手段）
７        勤務シフト表作成処理部（勤務シフト表作成処理手段）
８        勤務シフト表データ記憶部
９        制約条件記憶部（記憶手段）
【図１】
0005587814.tif 000002
【図２】
0005587814.tif 000003
【図３】
0005587814.tif 000004
【図４】
0005587814.tif 000005
【図５】
0005587814.tif 000006
【図６】
0005587814.tif 000007
【図７】
0005587814.tif 000008
【図８】
0005587814.tif 000009
【図９】
0005587814.tif 000010
【図１０】
0005587814.tif 000011
【図１１】
0005587814.tif 000012
【図１２】
0005587814.tif 000013
【図１３】
0005587814.tif 000014
【図１４】
0005587814.tif 000015