JP4430282B2 - 勤務表作成支援システム - Google Patents
勤務表作成支援システム Download PDFInfo
- Publication number
- JP4430282B2 JP4430282B2 JP2002165499A JP2002165499A JP4430282B2 JP 4430282 B2 JP4430282 B2 JP 4430282B2 JP 2002165499 A JP2002165499 A JP 2002165499A JP 2002165499 A JP2002165499 A JP 2002165499A JP 4430282 B2 JP4430282 B2 JP 4430282B2
- Authority
- JP
- Japan
- Prior art keywords
- condition
- work
- work schedule
- additional
- violation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims description 128
- 238000011156 evaluation Methods 0.000 claims description 109
- 238000012937 correction Methods 0.000 claims description 100
- 230000008569 process Effects 0.000 claims description 99
- 238000003860 storage Methods 0.000 claims description 68
- 239000011159 matrix material Substances 0.000 claims description 64
- 238000012545 processing Methods 0.000 claims description 52
- 238000002360 preparation method Methods 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 claims 1
- 230000008859 change Effects 0.000 description 38
- 238000004364 calculation method Methods 0.000 description 27
- 238000010586 diagram Methods 0.000 description 10
- 238000012797 qualification Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002068 genetic effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000002922 simulated annealing Methods 0.000 description 2
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
【発明の属する技術分野】
本発明は、看護婦や警備員などの勤務表(勤務予定表)を作成する勤務表作成支援システム、特に、作成中の勤務表において作成者が指定した個所を自動的に修正し、新たな勤務表を提示することができる勤務表作成支援システムに関する。
【0002】
【従来の技術】
病院においては、例えば各病棟ごとに看護婦の勤務表が作成される。その勤務表は、婦長等によって作成されるが、その作成に当たっては様々な制約条件を考慮しなければならない。すなわち、勤務表の作成者は、有給休暇などの各看護婦の勤務の希望、各種行事、資格や能力上の要請などの多くの条件を満足するよう作成する必要がある。勤務表で表されるスケジュールは、通常、勤務者と勤務日とによる2次元マトリックスで表現されるが、2次元マトリックス上の各要素には、縦方向及び横方向の他の要素(同じ勤務日の他の勤務者又は同一勤務者の他の勤務日)に設定されている要素値(すなわち日勤、夜勤、休み等の勤務区分)、更に各要素値の集計値を参照し、各制約条件に違反しないように調整しながら適切な要素値を割り付けなければならない。
【0003】
しかし、全ての条件を満足する勤務表を最初から完璧に作成することは通常は困難である。従って、実際の婦長等が勤務表を作成するときは、勤務表をとりあえず完成させて、その勤務表に対して違反した条件を解消するように手作業で修正を加えていくようにしている。このように、従来においては、多くの条件を反映させた勤務表を作成するために多大な負担・労力を要しているのが現状である。
【0004】
このような勤務表の作成に要する負担を軽減するために、勤務表をコンピュータが自動作成するための各種支援システムが提案されている。この種のシステムでは、一般に数理計画的手法あるいは知識工学的手法のいずれかを用いることが多いが、いずれにしても婦長等の作成者が考慮している諸条件を何らかのモデルによってコンピュータ内で表現する必要がある。例えば、特開平4−15865号では、制約条件を知識ベースモデルによって表現し、最初に設定した知識ベースで自動作成したスケジュール表を見ながら、各制約条件の優先順位を変更の指針として作成者が手作業により知識ベースの改善を図り、次回以降の自動作成時により良い解を得ようとする提案がなされている。
【0005】
【発明が解決しようとする課題】
しかしながら、勤務表を作成するための条件は非常に複雑であり、実用的な時間で条件を満たす勤務表を作成するのは困難である。従って、人間の考える条件をより反映させるために、実用的なシステムでは自動作成した勤務表に対して後から修正する機能が不可欠になる。前述した従来例においても、自動作成したスケジュール表においてその表の中の一つまたは複数の要素を、作成者が明示的に指定した別の値に変更することによりスケジュール表を修正していた。前述したように、スケジュール表や勤務表を作成するためには多くの制約条件が設定されている。勤務表の一要素値を変更することによっていずれかの制約条件違反は解消するかもしれないが、他の制約条件の違反が新たに発生する可能性もある。例えば、ある勤務日の夜勤勤務者が所定数に達していないという条件に違反しているためにAさんの勤務区分を夜勤に変更すると、今度はAさんの勤務状況を、夜勤は連続させないという条件や1か月の夜勤日数の所定数を超えさせないと言う条件に違反させてしまう可能性がある。更に、Aさんの勤務についての違反を解消するためにAさんの他の勤務日の夜勤を日勤に変更すると、その変更した勤務日の夜勤勤務者が所定数に達しなくなってしまう可能性がある。
【0006】
すなわち、勤務表作成に関する制約条件の多くは、勤務表の複数の要素に関連しているため、一般に一つの要素の値を変更した場合には、付随して他の要素の値も同時に変更する必要が生じる場合が少なくない。このため、最初に決定した要素変更が妥当なものであったかどうかは、その要素変更に付随した他の要素変更を行ってみないとわからない。しかし、要素変更に付随してどのように変更すべきかは容易にわからない。また、変更する要素値の候補が複数存在する場合には、どの要素値を選択すればよいのかも容易に特定できない場合もある。
【0007】
このため、勤務表作成者は、作成された勤務表において一つの「修正したい状態」を解消するためにさまざまな要素変更の試行錯誤を行う必要があり、これが勤務表作成者にとって大きな負担となり、満足できる勤務表を作成することは困難となっていた。
【0008】
本発明は以上のような問題を解決するためになされたものであり、その目的は、勤務表作成の際の修正に関して、作成者が修正したいと考える勤務状態を指示するだけで、その勤務状態の修正に付随して他の要素に設定された要素値を効果的に自動修正することのできる勤務表作成支援システムを提供することにある。
【0009】
【課題を解決するための手段】
以上のような目的を達成するために、本発明に係る勤務表作成支援システムは、各勤務者の勤務状況を表す2次元マトリクスを含む勤務表を作成する勤務表作成支援システムにおいて、勤務表を作成するための作成条件を記憶する割付条件記憶手段と、勤務表について前記作成条件に対する条件違反度を示すペナルティ値を計算し、当該ペナルティ値に基づく評価が高くなるように、所定のアルゴリズムに従い前記2次元マトリクス上に各勤務区分を割り付ける初期割付処理を実行することによって勤務表を作成する初期割付処理手段と、前記作成した勤務表について前記作成条件に対する条件違反を警告表示する警告表示手段と、前記作成した勤務表を修正する際の追加条件を記憶する追加条件記憶手段と、前記警告表示された条件違反のうち任意の条件違反を勤務表作成者が入力指定することによって当該条件違反を解消することを前記追加条件として前記追加条件記憶手段に設定する入力手段と、勤務表について前記作成条件に対する違反度を示すペナルティ値及び前記追加条件に対する条件違反度を示す追加ペナルティ値を計算し、当該ペナルティ値及び当該追加ペナルティ値に基づく評価が高くなるように、所定のアルゴリズムに従い前記初期割付処理手段が割り付けた2次元マトリクス上の各勤務区分を変更する修正割付処理を実行することによって勤務表を作成する修正割付処理手段とを有し、前記修正割付処理手段は、前記修正割付処理によって作成された勤務表において前記追加条件に対する条件違反が解消されないと、当該追加条件に対する追加ペナルティ値に加重を課した追加ペナルティ値を再設定し、前記ペナルティ値及び当該追加ペナルティ値に基づく評価が高くなるように、前記修正割付処理を再度実行することを特徴とする。
【0010】
上記構成によれば、勤務表上にある条件違反の個所や、条件違反ではないが作成者が修正したいと考える状態などを入力手段から指示すると、その指示に従った上でなるべく最初の割付条件に合致するように勤務表を修正することができる。この際、勤務表作成者は、勤務表の個々の要素に対して要素値の変更操作を行う必要がなくなり、作成者の負担を大幅に軽減することができるとともに自らの意思を勤務表に反映させることができる。
【0011】
また、前記修正割付処理手段は、勤務表を作成する際に、前記追加条件記憶手段に記憶されている追加条件に対する条件違反が解消するまで前記修正割付処理を反復して行い、前記修正割付処理の反復実行過程において、その反復回数に応じた加重を課した追加ペナルティ値を再設定して評価値を計算することを特徴とする。
【0015】
本発明に係る勤務表作成支援システムは、各勤務者の勤務状況を表す2次元マトリクスを含む勤務表を作成する勤務表作成支援システムにおいて、勤務表を作成するための作成条件を記憶する割付条件記憶手段と、勤務表について前記作成条件に対する条件違反度を示すペナルティ値を計算し、当該ペナルティ値に基づく評価が高くなるように、所定のアルゴリズムに従い前記2次元マトリクス上に各勤務区分を割り付ける初期割付処理を実行することによって勤務表を作成する初期割付処理手段と、前記作成した勤務表について前記作成条件に対する条件違反を警告表示する警告表示手段と、前記作成した勤務表を修正する際の追加条件を記憶する追加条件記憶手段と、前記警告表示された条件違反のうち任意の条件違反を勤務表作成者が入力指定することによって当該条件違反を解消することを前記追加条件として前記追加条件記憶手段に設定する入力手段と、勤務表について前記作成条件に対する違反度を示すペナルティ値及び前記追加条件に対する条件違反度を示す追加ペナルティ値を計算し、当該ペナルティ値及び当該追加ペナルティ値に基づく評価が高くなるように、所定のアルゴリズムに従い前記初期割付処理手段が割り付けた2次元マトリクス上の各勤務区分を変更する修正割付処理を実行することによって勤務表を作成する修正割付処理手段とを有し、前記警告表示手段は、前記作成した勤務表について前記作成条件に対して条件違反が生じている当該勤務表上の勤務状況部分を明示することで当該条件違反を警告表示し、前記入力手段は、前記警告表示手段により警告表示された前記勤務状況部分のうち、入力指定された勤務状況部分の条件違反を解消することを前記追加条件として前記追加条件記憶手段に設定することを特徴とする。
【0016】
この構成によれば、勤務表作成者が修正したいと考えるものに対して入力手段において警告表示の個所を指定した場合に、当該警告表示のもとになっている条件違反から追加条件を構成することができ、勤務表作成者が必要と考える追加条件入力をより簡便に行うことができる。
【0017】
【発明の実施の形態】
以下、図面に基づいて、本発明の好適な実施の形態について説明する。
【0018】
図1は、本発明に係る勤務表作成支援システムの一実施の形態を示した機能ブロック構成図である。本実施の形態における勤務表作成支援システムは、割付条件記述部2、入力部4、評価値計算部6、追加条件記憶部8、勤務表作成処理部10、表示処理部12及び勤務表保存部14を有している。また、勤務表作成処理部10には割付実行部16及び修正実行部18が、表示処理部12には違反判定部20、違反記憶部22及び警告表示部24が、それぞれ含まれている。
【0019】
割付条件記述部2には、勤務表を作成するための作成条件、換言すると勤務表の2次元マトリクス上に勤務区分を割り付けるための割付条件が予め記憶されている。入力部4は、勤務表作成前にあるいは追加的に割付条件記述部2に記憶させる割付条件を入力し、設定する。また、勤務表を修正する際に追加する条件の入力、更に勤務表の2次元マトリクス(以下、「勤務表マトリクス」)に対する修正入力を直接受け付ける。追加条件記憶部8には、入力部4を介して勤務表作成者により入力指定された追加条件が記憶される。また、修正実行部18で実行された修正試行回数が追加条件毎に記録される。評価値計算部6は、勤務表作成処理部10が作成した勤務表が割付条件記述部2に設定登録されている割付条件と追加条件記憶部8に記憶されている追加条件にどれだけ違反しているか、その条件違反度を示す評価値を算出する。
【0020】
勤務表作成処理部10は、割付条件記述部2に設定登録されている割付条件と追加条件記憶部8に記憶されている追加条件に基づいて、所定規則に従い2次元マトリクス上に各勤務区分を割り付ける割付処理を実行することによって勤務表を作成する。勤務表作成処理部10に含まれている割付実行部16は、評価値計算部6から得られる評価値がなるべく小さくなるように勤務表マトリクスの各要素値を決定する。勤務表保存部14は、割付処理された勤務表を記憶する。修正実行部18は、入力部4からの指示や追加条件記憶部8に記憶されている追加条件に従って、勤務表マトリクス上の追加条件違反状態が解消されるように割付実行部16を制御する。
【0021】
表示処理部12は、勤務表や違反した条件を表示するための手段である。表示処理部12に含まれている違反判定部20は、表示された勤務表における条件違反を検出し、違反記憶部22に記憶する。警告表示部24は、違反判定部20により条件違反が検出されたときにその違反に対する警告表示を行う。
【0022】
図2は、本実施の形態における勤務表作成処理部10により作成され、表示処理部12により表示される勤務表の一例を示した図である。本実施の形態における勤務表は、各勤務者の勤務状況を示す2次元マトリクス(勤務表マトリクス)を含んでいる。割付領域は、勤務表作成を行う所定期間(例えば1か月)にわたって各勤務者(職員)の勤務区分が割り付けられる領域であって、割付結果である勤務表が表示される。その左端には病棟に所属する職員名が列記され、その上端には日付が記載されている。図中の「日」、「準」、「深」、「休」、「有」、「振」、「特」、「代」は表示分類に従う出勤休暇の区分を示し、この例ではそれぞれ「日勤」、「準夜勤」、「深夜勤」、「休み」、「有給休暇」、「振替休暇」、「特別休暇」、「代休」を意味している。後述する自動割付を実行させると、生成された割付結果がこの領域に表示される。また、勤務表作成者がマウス、キーボード等の入力部4を用いて勤務を直接入力することも可能である。また、図中において左側に示されるハッチがかかった部分は、前月の最終週の勤務状況を表しており、例えば当月第1週の割付の勤務パターン条件を判断する際に必要に応じて参酌される。
【0023】
横集計領域において、横方向には判断分類(勤務回数集計用)に従う出勤休暇の区分が示され、それに対応して縦方向に沿って、各職員ごとの勤務回数の集計欄がある。ここには勤務表の作成を行う期間全体に渡って、勤務の回数を集計した値が表示される。割付領域で勤務表作成者による入力や自動割付によって勤務が変更された場合、各集計値もリアルタイムに更新される。
【0024】
実働集計領域においては、勤務表作成期間内における各職員ごとの実働時間の集計が表示される。割付領域で勤務表作成者による入力や自動割付によって勤務が変更された場合には、この集計値もリアルタイムに更新される。
【0025】
縦集計領域において、縦方向には判断分類職員数(集計用)に従う出勤休暇の区分が示され、横方向に沿って各区分ごとの勤務者数が表示される。また、後述のように、下部のタブを選ぶことにより、職員の属性あるいはグループごとに集計を切り換えて表示することができる。割付領域において勤務表作成者による入力や自動割付によって勤務が変更された場合には、この集計値もリアルタイムに更新される。
【0026】
上記の横集計表及び縦集計表においては、勤務表の基礎をなす表示分類とは異なる集計用の判断分類に従って集計が行われており、このため、勤務表作成者が従来頭の中で行っていた再計算を不要にでき、勤務表の集計やチェックをより簡単に行うことができるという利点がある。
【0027】
図2に示されるように、本実施の形態における勤務表作成支援システムにおいては、勤務表及び各集計表において、割付条件に違反した個所が反転表示により警告表示され、どの部分が条件違反個所であるか容易に特定できる。この例では、各長円によって補充説明がなされているように、「勤務パターン条件違反」、「勤務間隔条件違反」、「職員組合せ条件違反」、「勤務供給条件違反」、「実働集計条件違反」が指摘されている。
【0028】
更に、このシステムにおいて、警告表示があった個所にポインタを移動させてマウスクリックを行う、あるいは一定時間ポインタを停止させることにより、図示されるように、その警告内容を表示させることができる。図示の例では、矩形の吹き流し表示によって「「休」と「休」の間隔が7日です。」というメッセージが表示されている。よって、これらの機能を利用して、勤務表の作成をより容易化・迅速化できる。なお、図2では、違反の種類を長円で囲み示し、また、マウスカーソルで指示されている違反部分の違反内容(警告内容)を矩形の吹き流しで示しているが、これらの表示/非表示を切り替え可能としてもよい。
【0029】
縦集計領域の下部には、上記のように、職員グループ名を表す幾つかのタブがあり、そのタブの選択によって特定グループに属する職員の集計表を表示可能である。ここで、図2は、「全体」のタブを選択した例であり、5日の全看護婦に対する準夜勤の人数が2名となっているため、勤務需要条件を満たしていないことを示している。なお、勤務区分の種類や分類、集計方法に関しては、本発明の要旨ではないため詳細な説明は省略するが、本願と同一出願人による特開2000−99569号公報に記載された内容をそのまま使用することができる。
【0030】
ここで、本実施の形態における割付条件記述部2に登録される割付条件について例を挙げて説明する。本実施の形態では割付条件を、勤務需要条件、 勤務供給条件、勤務パターン条件、勤務間隔条件、割付単位条件及び職員組み合わせ条件という種別に分類して扱っている。勤務需要条件というのは、1日の職員数の上限、下限、目標人数を職員の資格と勤務ごとに定めた条件であり、[例1]職員全員に対して日勤を下限10名〜上限12名とする(重み100)、[例2]夜勤リーダー資格の職員に対して準夜勤務を下限1名とする(重み200)などである。勤務供給条件というのは、所定期間(例えば 1ヶ月)内での各職員の勤務回数の上限、下限、目標回数の条件であり、[例1]職員Aの1ヶ月間の準夜勤務を下限4回とする(重み50)、[例2]各職員とも 1ヶ月間の休みを下限7回とする(重み30)などである。勤務パターン条件というのは、一人の職員について着目した場合に、回避したいあるいは推奨したい勤務のならびを定めた条件であり、[例1]病棟の全職員について準夜 深夜のならびを回避する(重み20)、[例2]職員Cは、深夜−深夜−深夜のならびを回避する(重み100)などである。勤務間隔条件というのは、一人の職員について着目した場合に、勤務と勤務の間隔の上限を定めた条件であり、[例]休みと休みの間隔は上限5日とする(重み150)などである。割付単位条件というのは、職員がある日に行いたいまたは行いたくない勤務を定めた条件であり、[例1]職員Dの5月1日は準夜と深夜を回避する(重み500)、[例2]職員Eの5月10日は休みまたは日勤を推奨する(重み200)などである。職員組み合わせ条件というのは、ある職員が同じ勤務を一緒に行いたいまたは行いたくない職員を定めた条件であり、[例1]職員Fは、準夜勤務で職員Gまたは職員Hとは組まない(重み70)、[例2]職員Iは、日勤で職員Jまたは職員Kと組む(重み80)などである。割付条件記述部2には、上記のように勤務表作成にあたって必要とされる割付条件が登録されるが、本実施の形態においては、各割付条件に対応させて重みを予め設定しておく。重みは、勤務表を作成する上での各割付条件の重要度を示す値であり、本実施の形態では大きい数の方が重要な条件となる。もちろん、小さい方を重要としてもよく、この場合は以降に詳述する評価値比較による評価の判断は逆になる。割付条件は、評価値計算部6及び違反判定部20により利用される。なお、ここでは、代表的な割付条件を列挙したが、この例に限定されるものではなく、勤務表を作成する業種、職種、業務規模等によって適切な条件の種類や重みを設定すればよい。
【0031】
次に、本実施の形態における動作について説明する。まず、図3に示したフローチャートを用いて、最初に初期割付を行い、その結果を修正することにより勤務表を作成する基本的な処理の全体の流れについて説明する。なお、割付処理に必要な割付条件は上記の通り割付条件記述部2に予め登録されているものとする。
【0032】
ステップ100における初期割付処理では、割付実行部16が評価値計算部6から得られる評価値がなるべく小さくなるよう勤務表マトリクスの要素値を決定する。初期割付では、まだ追加条件が設定されていないので、評価値計算部6は、割付条件記述部2に設定されている割付条件を用いて勤務表の評価値を決定する。なお、割付実行部16及び評価値計算部6における処理の詳細については後述する。
【0033】
ステップ200における表示処理では、表示処理部12が上記初期割付処理によって作成された勤務表を画面表示する。この際、違反判定部20は、割付条件記述部2の割付条件を用いて作成された勤務表に条件違反を検出したとき、その違反に該当する割付条件及びその違反内容を違反記憶部22に書き込む。そして、警告表示部24は、違反記憶部22に書き込まれた条件違反を通知するために警告表示する。
【0034】
続いて、ステップ300における分岐では、入力部4から追加条件となる入力があったかどうかが判断される。あった場合には次に述べる修正割付が行われる。入力がない場合には、ステップ400においてにおいて勤務表の作成が完了したかどうかが判断され、完了していない場合には表示処理以降の工程が繰り返し実行される。
【0035】
ステップ500における修正割付処理では、修正実行部18がまず入力部4からの入力に基づいて追加条件を構成し、追加条件記憶部8に登録する。追加条件記憶部8の内容例を図7に示す。その後、修正実行部18では割付実行部16を利用して、追加条件記憶部8に記録された追加条件に従って勤務表マトリクスを修正していく。修正実行部18における処理の詳細は後で説明する。修正割付処理が終了すると、再び表示処理に戻って同様の工程を繰り返す。
【0036】
本実施の形態における勤務表作成処理の全体の流れは、以上の通りであるが、以下に各処理について詳述する。まず最初に、初期割付処理(ステップ100)について説明する。
【0037】
本実施の形態における初期割付処理というのは、割付実行部16により実行され、予め入力されている作成条件に基づいて所定規則に従い2次元マトリクス上に各勤務区分をはじめて割り付ける処理である。なお、修正割付処理(ステップ500)においても同様に2次元マトリクス上に各勤務区分を割り付ける処理を実行するが、修正割付処理では追加条件を考慮するため、割付処理において追加条件を考慮しないで実行される割付処理を、ここでは特に初期割付処理と呼ぶこととする。もちろん、初期割付処理の際には追加条件記憶部8に追加条件は記憶されていない。
【0038】
初期割付処理において、割付実行部16は、まず勤務表マトリクスの空の要素に対して適当な要素値(勤務区分)を初期解として割り当てる。初期解の決め方の例としては、勤務表マトリクスの全要素に同じ勤務 (例えば休みなど) を割り当てる、あるいは、全ての要素の勤務をランダムに割り当てる、などの方法がある。次に、このように決定した初期解から所定のアルゴリズム、例えば山登り法、整数計画法、遺伝的アルゴリズム、シミュレーテッド・アニーリングなどの手法を用いて勤務表マトリクスの要素の値を変更する。いずれのアルゴリズムを用いる場合でも、要素の値を変更する際にはその時の勤務表マトリクスをもとに評価値計算部6で算出される評価値がなるべく小さくなるようにする。各アルゴリズムにおいて、それ以上ペナルティ値の小さい勤務表が得られなくなったり、反復回数や経過時間が既定値に達した場合に割付処理が終了となる。以下、初期割付の具体的な処理の流れを図4に示したフローチャートを用いて説明する。なお、ここでは、アルゴリズムとしては要素値のランダムな変更に基づく山登り法を用いて説明する。
【0039】
割付実行部16は、まず、反復回数を示すカウンタの値を0に初期化した後(ステップ101)、勤務表マトリクスに、休み、日勤、準夜等の勤務区分を割り当てる(ステップ102)。このときの割り当てる勤務区分は、初期値としてランダムに割り当てればよい。なお、本実施の形態では、初期値をランダムに定める例を示したが、何らかの規則に従って定めたり、全てを一様な値にするなどの方法を用いてよい。
【0040】
続いて、割付実行部16は、初期値の割り当てられた勤務表マトリクスに対する評価値を、評価値計算部6に算出させる(ステップ103)。算出した評価値は、変更前評価値として記録しておく(ステップ104)。なお、評価値算出処理の詳細については、追って説明する。次に、割付実行部16は、勤務表マトリクス中のいくつかの要素の値をランダムに変更する(ステップ105)。なお、ここではランダムに変更する例を示したが、何らかの基準に従って規則的に変更する、等の方法を用いてもよい。割付実行部16は、このように変更した勤務表マトリクスに対する評価値を評価値計算部6に改めて算出させ(ステップ106)、変更後評価値として記録する(ステップ107)。
【0041】
ここで、変更後評価値が変更前評価値よりも小さい場合には、先に実施した勤務表マトリクスにおける要素値の変更により勤務表が改善されたとみなすことができる。このときには、変更後評価値を次の変更前評価値として記録しておく(ステップ108,109)。一方、逆に変更後評価値が変更前評価値以上であった場合には、先の変更により勤務表が改善されなかったので、先のマトリクス要素の変更を元に戻す(ステップ108,110)。
【0042】
続いて、反復回数のカウンタの値を1加算する(ステップ111)。ここで、反復回数が予め設定した規定回数 (例えば1万回) を超えた場合には、処理を終了する(ステップ112)。また、経過時間が一定時間を超過した場合にも処理を終了する(ステップ113)。なお、初期割付処理の終了条件として、ここでは反復回数、経過時間の2種類を例示したが、これ以外にもある一定回数の反復において一度も勤務表の改善が見られなかった場合に終了する、等の基準により処理を終了させてもよい。上記終了条件に抵触しない場合には、ステップ105に戻って処理を繰り返す。
【0043】
次に、表示処理(ステップ200)について説明する。なお、本実施の形態において作成し、表示する勤務表に関しては、図2を用いて前述したが、勤務表の作成、表示自体は本発明の要旨ではないため説明を省略する。
【0044】
表示処理部12が上記初期割付処理によって作成された勤務表を画面表示する際、違反判定部20は、割付条件記述部2が持っている割付条件と勤務表保存部14に記憶されている勤務表とから、勤務表中の割付条件違反の有無やその発生位置を検出し、違反記憶部22に格納することは前述したとおりである。この格納される違反を例示すると、例えば、勤務需要条件に関しては、「夜勤リーダー資格の職員に対して準夜勤務を下限1名とする」という割付条件に対して「5月4日に、夜勤リーダー資格の社員に対して準夜勤務が1名未満」という違反が考えられる。 勤務供給条件に関しては、「職員Aの1ヶ月間の準夜勤務を下限4回とする」という割付条件に対して「職員Aの1ヶ月間の準夜勤務が4回未満」という違反が考えられる。勤務パターン条件に関しては、「病棟の全職員について準夜 深夜のならびを回避する」という割付条件に対して「職員Bの5月10日から11日にかけて、準夜 深夜の並びがある」という違反が考えられる。割付単位条件に関しては、「職員Aの5月1日は準夜と深夜を回避する」という割付条件に対して「職員Aの5月1日に深夜が割り付けられている」という違反が考えられる。
【0045】
条件違反の発生位置というのは、勤務者と勤務日とが交差した要素で特定されるが、必ずしも勤務表マトリクス中の単一の要素を示すとは限らず、条件の種類に応じてある特定の1日あるいは期間を示す場合もあり、また、ある特定の勤務者あるいは複数の勤務者を示す場合もある。違反判定部20が検出した条件違反は、以下の情報の組として違反記憶部22に登録される。
【0046】
勤務需要条件違反 … 勤務需要条件、日付、資格により限定される職員のグループ、勤務
勤務供給条件違反 … 勤務供給条件、職員、日付
勤務パターン条件違反 … 勤務パターン条件、職員、勤務パターン条件違反の先頭日、最終日
勤務間隔条件違反 … 勤務間隔条件、職員、勤務間隔条件違反の先頭日、最終日
割付単位条件違反 … 割付単位条件、職員、日付
職員組み合わせ条件違反 … 職員組み合わせ条件、日付、勤務、職員
違反記憶部22に記憶された条件違反は、警告表示部24において警告表示に用いたり、修正実行部18で勤務表マトリクスの修正を行う際に使用される。
【0047】
警告表示部24は、違反記憶部22に条件違反が書き込まれると、その条件違反を通知するために警告表示する。この表示の一例を図2に示した。図2に示した勤務表における警告表示例では反転表示で図示したが、表示色を変えるなどしてもよい。この例のように条件違反に該当する勤務状況部分の表示を違反していない部分と異ならせることによりその違反箇所を一目瞭然に特定することができる。
【0048】
図5には、その他の警告表示例を示した。この例では、違反内容をテキストによるリスト形式で表示している。このうち、図5(a)では、個々の条件違反を、図2が表上に示しているのに対し、テキスト文字にてメッセージとして示した。条件違反した個々の勤務状況部分に対応させているので、リストされているメッセージ数が条件違反数に等しい。これに対し、図5(b)は、割付条件に対して違反した内容をテキストによるリスト形式で表示する。つまり、図5(a)で表示される条件違反を違反の元となった割付条件毎にまとめて表示する。このように、初期割付を行った後にも割付条件に対する違反が生じている場合があるが、警告表示部24を設けたことで勤務表作成者にその違反内容を認識させることができる。なお、図2及び図5に示した警告表示は、勤務表作成者による操作に応じて切替え式に、あるいは全ての表示/非表示が制御される。
【0049】
次に、本実施の形態の特徴である修正割付処理(ステップ500)について図6に示したフローチャートを用いて説明する。
本実施の形態における修正割付処理というのは、主に修正実行部18により実行され、予め入力されている作成条件及び追加条件記憶部8に記憶されている追加条件に基づいて所定規則に従い2次元マトリクス上に各勤務区分を割り付けることにより追加条件違反状態の解消を図るために実施される処理である。
【0050】
まず、修正実行部18は、勤務表作成者が入力部4で入力した追加条件を、追加条件記憶部8に登録する(ステップ501)。ここで、入力部4を用いた追加条件の入力処理について説明する。
【0051】
初期割付処理により作成された勤務表は、図2に例示したように表示処理部12により画面表示される。初期割付処理後には、条件違反が発生することが多い。ここで、勤務表作成者が表示された勤務表上の警告表示されている個所にマウスポインタを移動させてクリックすると、その位置の情報は修正実行部18に伝えられる。修正実行部18は、そのクリック位置に対応する割付条件違反を違反記憶部22から抽出し、その割付条件違反を解消することを追加条件として新規に登録するかどうかを判定する。新規に登録しようとする追加条件が追加条件記憶部8に記録されていなければ登録する。
【0052】
また、図2に示した勤務表上で入力指定しなくても図5に示したリストの中から指定してもよい。図5(a)からの指定は、個々の条件違反を選択する点で図2からの指定と実質的に同じであるが、図5(b)の場合、リストされた違反内容に該当する勤務状況部分が複数存在することもありうる。図5(b)の例に基づくと、準夜−深夜の回避勤務パターンが割り付けられた勤務者が複数(例えば、AさんとBさん)存在する可能性がある。このような場合、修正実行部18は、Aさんの割付条件違反とBさんの割付条件違反とに分解して追加条件記憶部8に登録する。換言すると、準夜−深夜の回避勤務パターン違反という条件違反を一斉に解消したい場合には、図2又は図5(a)の形式による警告表示からではなく図5(b)の形式による警告表示から追加条件を入力指定すればよい。このように、本実施の形態では、警告表示に対応した割付条件違反を解消するための追加条件の入力を行うことができる。
【0053】
本実施の形態では、マウスクリックにより修正割付処理が自動的に開始されるように設定しているので、勤務表作成者は、表示された勤務表のある箇所でマウスクリックすると、その箇所の違反が解消されるように要素値が変更された勤務表の修正版が自動的に作成されることになる。つまり、詳細は後述するが、勤務表作成者は、条件違反を解消したい部分をクリック操作さえすれば、その箇所の変更値を入力する必要がなく、また、他の要素の要素値との関係を意識しなくてもよいので、勤務表の修正を自己の意思を反映させて極めて容易に行うことができる。
【0054】
なお、本実施の形態では、マウスクリックにより修正割付処理が自動的に開始されるように設定しているので、図2又は図5(a)による警告表示の場合は、追加条件を一つずつしか入力指定することはできないが、例えばマウスクリックにより複数の条件選択を選択操作し、別途設けた確定ボタンをマウスクリックすることにより修正割付処理が起動されるようにすれば、図5(b)と同様に複数の追加条件を一度に指定することができる。
【0055】
また、本実施の形態では、原則、条件違反した箇所を選択入力するようにしているが、付加機能として違反していない箇所を入力指定することもできる。例えば、夜勤の上限が9回のとき、Aさんの夜勤数は8回であり違反してはいないが、当該月の夜勤数を変更したいときにはAさんの8回と表示された夜勤数をクリックし、表示されたリストから「増加」、「減少」のいずれかを選択するようにしてもよい。修正割付処理により9回という上限を超えた要素値が割り付けられることはないので、9回又は7回以下に減らすことができる。このように、違反していない勤務状況部分や集計値部分を指定して勤務表の修正を行うことも可能である。なお、本実施の形態では、勤務表上でクリックが行われると、対応する位置情報が修正実行部18に送られて、それをもとに違反記憶部22の割付条件違反が検索されるが、対応する割付条件違反が存在しない場合は、修正実行部18により「指示された位置の要素値が現在の要素値にならないようにする」という追加条件が自動生成され、追加条件記憶部8に登録される。
【0056】
図6に戻り、修正実行部18は、上記のようにして勤務作成者に入力指定された追加条件を追加条件記憶部8に登録するが(ステップ501)、このとき、追加条件記憶部8には、同時にその追加条件に対する修正試行回数が初期値0として記憶される。この値はこれから述べる修正実行部18内の処理で使われる。追加条件記憶部8に登録された追加条件の例を図7に示す。システムの開始直後、追加条件記憶部8は空であるが、修正実行部18により追加条件と修正試行回数を組として累積的に登録されていく。追加条件記憶部8の内容は、追加条件の発生に伴って累積的に増えていくが、ある一定条件の下で削除される(ステップ517)。また、登録数が閾値を超えたら古い追加条件を自動削除する、などの方法によってその蓄積量を制限することもできる。また、作成者からの指示等によって追加条件記憶部8を空に戻す手段を設けてもよい。
【0057】
次に、修正実行部18は、追加条件記憶部8に登録された追加条件のうち、現在の勤務表マトリクスにおいて追加条件違反状態になっている追加条件を選択する(ステップ502)。本実施の形態では、基本的にステップ517でのみ登録された追加条件を削除するようにしている。従って、要素値を変更する処理(ステップ508)を含むステップ508〜516の繰り返し処理により追加条件違反が解消したとしても、その追加条件は追加条件記憶部8から削除されずに追加条件違反状態になっていない追加条件として残存する。なお、追加条件違反状態になっているかいないかは、追加条件記憶部8に登録されている各追加条件と作成されている勤務表とを付き合わせて毎回ステップ518において確認する。追加条件違反状態の追加条件が複数存在する場合は、そのうち一つの追加条件を自動選択する(ステップ502)。選択方法としては、ランダムに選択、最新に登録されたものを選択、最も先に登録されたもの(最も古いもの)を選択、試行回数の最も少ないものを選択、などの方法が考えられるが、いずれの方法を用いてもよい。なお、修正割付処理の開始時には、直前に勤務表作成者により指定された追加条件しか登録されていないはずなので、その追加条件が無条件に選択される。
【0058】
続いて、修正実行部18は、選択した追加条件に対応する修正試行回数に1を加える(ステップ503)。ここで、修正試行回数があらかじめ定めた規定回数を超過していない場合は(ステップ504)、割付実行部16により、作成された勤務表マトリクスに対する評価値を小さくするように要素値の変更を行う。なお、以降の例では初期割付処理の場合と同様に山登り法によるアルゴリズムを例にとって説明するが、ここでも他のアルゴリズム、例えば整数計画法、遺伝的アルゴリズム、シミュレーテッド・アニーリングなどの方法を用いてもよい。また、ここで用いるアルゴリズムには、初期割付処理時と別のアルゴリズムを用いてもよい。
【0059】
まず、反復回数を記録するカウンタを0に初期化する(ステップ505)。次に、現在の勤務表マトリクスに対する評価値を、評価値計算部6によって算出する(ステップ506)。ここでは、追加条件記憶部8に追加条件が登録されているため、評価値計算部6においては追加条件に対応する追加ペナルティ値も含めた評価値が計算される。すなわち、同じ勤務表に対する評価値でも、修正割付の場合 (追加条件記憶部8に追加条件がある場合) と修正割付でない場合 (追加条件記憶部が空の場合) では値が異なる。なお、評価値の算出処理の詳細については追って説明する。ここで算出した評価値は変更前評価値として記録しておく(ステップ507)。
【0060】
次に、勤務表マトリクス中のいくつかの要素の値を変更する(ステップ508)。ここでの変更方法は、初期割付の場合と同じでも異なっていてもよい。例えば、初期割付処理と同様にランダムに変更することもできるが、同一日の2名の職員の勤務を交換する、などの具体的な変更方法を1乃至複数切り替えて用いてもよい。もちろん、この方法では 1 日ごとの勤務数は変更されなくなるので、この方法は初期割付の結果で 1 日の勤務数の条件が満たされている場合のみ用いるべきであるが、そのような条件下ではランダムに変更するよりもより効率良く探索を行うことができる。ここで変更した勤務表マトリクスに対する評価値を評価値計算部6によって算出し(ステップ509)、ここで算出した評価値は変更後評価値として記録する(ステップ510)。
【0061】
ここで、変更後評価値が変更前評価値よりも小さい場合には、先に実施した勤務表マトリクスにおける要素値の変更により勤務表が改善されたとみなすことができる。このときには、変更後評価値を次の変更前評価値として記録しておく(ステップ511,512)。一方、逆に変更後評価値が変更前評価値以上であった場合には、先の変更により勤務表が改善されなかったので、先のマトリクス要素の変更を元に戻す(ステップ511,513)。
【0062】
次に、反復回数のカウンタの値を1加算する(ステップ514)。ここで、反復回数が予め設定した規定回数 (例えば1万回) を超えていない場合(ステップ515)、かつ経過時間が一定時間を超過していない場合(ステップ516)、ステップ508に戻る。一方、反復回数が予め設定した規定回数 (例えば1万回) を超えた場合(ステップ515)、あるいは経過時間が一定時間を超過した場合(ステップ516)、次に追加条件記憶部8に登録されている追加条件の条件違反が全て解消しているか判断する(ステップ518)。解消していれば、勤務作成者に指定された追加条件は勤務表に全て反映できたことになるので修正割付処理を終了する。解消されていなければ、ステップ502に戻って解消されていない条件違反が解消するまで処理を反復して行う。追加条件が全て解消したかどうか、すなわち追加条件違反状態になっているかいないかは、追加条件記憶部8に登録されている各追加条件と作成されている勤務表とを付き合わせて判定する。なお、ステップ508〜516の反復を終了させる条件として、本実施の形態では反復回数、経過時間の2種類を例示したが、これ以外にもある一定回数の反復において一度も勤務表の改善が見られなかった場合に終了する、等の基準により反復を終了してもよい。
【0063】
ここで、本実施の形態において特徴的な評価値計算部6が算出する評価値及び評価値の算出方法について詳述する。
【0064】
評価値計算部6は、割付処理において割付条件記述部2の割付条件と追加条件記憶部8の追加条件から勤務表マトリクスの勤務表に対する評価値を算出する。本実施の形態における評価値は、以下の評価関数E(x)により求める。
【0065】
E(x)=f(x)+p(x) ・・・(1)
ここで、xは勤務表マトリクス中の勤務表を示す。f(x)は目的関数であり、勤務表xが割付条件記述部2に記録されている割付条件にどの程度違反しているかを示すペナルティ値を求めるための関数である。p(x)は追加ペナルティ関数であり、勤務表xが追加条件記憶部8に登録されている追加条件にどの程度違反しているかを示す追加ペナルティ値を求める関数である。つまり、評価関数により得られる評価値は、作成条件及び追加条件に対する条件違反度を示す値であるということができる。なお、p(x)は、勤務表xに対する追加条件に対応して評価値を増加させる効果のある項であり、必ずしも上記式に限定されるものではない。すなわち、目的関数f、追加ペナルティ関数pの値が増加した場合に評価関数Eの値も増加するような形式であればどのようなものでもよい。そのような関数としては、例えば、
E(x)=f(x)×(1+k・p(x))
のようなものがある。但し、この場合はp(x)≧0となるようpを定める。kは正定数である。以下、各関数f、pについて説明する。
【0066】
割付条件の違反度を示す目的関数f(x)は、次のように定義される。
【0067】
【数1】
ここで、ftype(x)は、割付条件の種類ごとに、勤務表xに対する割付条件違反のペナルティ値を求める関数である。ペナルティ値の計算方法の例を以下に示す。
【0068】
まず、勤務パターン条件のペナルティ値の計算方法としては、例えば「病棟の全職員について準夜−深夜のならびを回避する(重み100)」という条件があるとき、勤務表中に準夜−深夜の並びになっている個所が5個所あるならば、5×100=500をペナルティ値とすることができる。
【0069】
また、勤務供給条件として、「職員Aの1ヶ月間の準夜勤務を下限4回とする(重み50)」という条件があるとき、勤務表中の職員Aの準夜勤務の回数合計が2回ならば、職員Aの準夜勤務は条件で指定された回数を2回下回っているので、この勤務供給条件に対するペナルティ値は、2×50=100となる。
【0070】
ここでは、勤務パターン条件と勤務供給条件におけるペナルティ値の計算方法の一例を述べたが、他の条件についても条件に違反する度合いが大きいほど大きな値を与えるような計算方法を定めて計算を行ってよい。
【0071】
なお、上記の勤務パターン条件、勤務供給条件についても計算方法は上記以外の方法も考えられる。例えば、勤務供給条件のペナルティ値の計算を例にとれば、下限の条件で指定された回数(4回)を下回った量(2回)の二乗に対して重みを掛けた値をペナルティ値とする(ペナルティ値は、22×50=200となる)方法などが考えられる。
【0072】
一方、追加条件の違反度を示す追加ペナルティ関数p(x)は、以下のように定義される。
【0073】
【数2】
ここで、pi(x)は勤務表xに対する追加条件iに対する追加条件ペナルティ値を求める関数である。この関数の一例を示すと以下のようになる。
【0074】
【数3】
ここで、αは追加条件を評価値に反映させる度合いを示す定数、tiは追加条件iの修正試行回数、gi(x)は勤務表xに対する追加条件違反の度合いを示す関数である。
【0075】
初期割付処理のときには、追加条件はまだ入力されていないので、追加条件記憶部8には追加条件が存在しない。つまり、いかなる勤務表xに対してもp(x)=0となる。一方、追加条件記憶部8に追加条件が登録されている場合には、それらの追加条件のうち追加条件違反状態のものに対して追加ペナルティ値が計算される。ここでの追加ペナルティ値の計算方法は、目的関数の場合と同様、追加条件に違反している度合いが大きいほど大きな値をとるような方法であればよい。もちろん、目的関数と同様の計算方法を使用してもよい。
【0076】
ここで、αの値は、修正試行回数の増加に伴ってその追加条件に対するペナルティ値が他の割付条件のペナルティ値に近づくような値を適当に定めればよい。例えば、割付条件の強さの平均の1/10程度にすればよい。但し、この値に限定するものではなく、例えば、前回の反復の際に得られた勤務表の評価値に基づいて決めることも可能である。
【0077】
また、追加条件ごとに異なるαの値を設定することもできる。例えば、違反した割付条件が追加条件となっている場合、その割付条件の重みを基準に設定(例えば、対応割付条件の重み値の1/10)とすれば、各追加条件のαの値は、対応する割付条件の重み値によって異なってくる。また、割付条件とは独立させて、αの値をどの追加条件の違反を優先的に解消させるかという優先度として用いることもできる。
【0078】
ここで、評価値算出の一例として、図7に示すような3種類の追加条件が追加条件記憶部8に登録されているとき、図2に示す勤務表に対するペナルティ値の計算方法の例を以下に示す。なお、α=10とする。
【0079】
勤務表は、追加条件「職員「加藤」の2日〜3日の準夜−深夜の並びを回避する」に違反している。よって、この追加条件は追加条件違反状態である。この追加条件に対する違反の度合いgi(x)は、違反が発生している場合は1、していない場合は0の値を取るとすると、この場合はgi(x)=1となる。また、修正試行回数ti=1なので、この追加条件に対する追加条件ペナルティ値は、pi(x)=10・1・1=10となる。それ以外の2つの追加条件は、図で示された勤務表ではすでに解消されている。従って、各追加条件ペナルティ値は0となる。これより、全ての追加条件に対する追加ペナルティ関数の値はp(x)=10+0+0=10となる。
【0080】
追加ペナルティ関数により得られる追加ペナルティ値p(x)は、上記式から明らかなように、追加条件違反状態の追加条件が存在するとき、各pi(x)に修正試行回数tiを乗算して算出される。従って、割付処理を繰り返し行っているのにもかかわらず追加条件違反状態が解消されない状態が継続すると、追加ペナルティ値p(x)は増加していく。修正試行回数tiは、全ての条件違反が解消されていなければ処理の繰り返しにより図6のステップ503で加算される値なので、違反状態である追加条件の違反度合いを示すパラメータの1つであるということができる。一方、目的関数により得られるペナルティ値f(x)は、修正試行回数(反復回数)に依存しない。すなわち、割付処理が繰り返し行われると、評価値に対する追加ペナルティ値が占める割合が大きくなり、これに伴い評価値自体も大きくなってしまう。本実施の形態における割付実行部16は、評価値計算部6から得られる評価値がなるべく小さくなるように勤務表マトリクスの各要素値を決定するので、結果的に割付条件に対する違反より追加条件、すなわち勤務作成者により入力指定された条件の違反を優先的に解消するように作用する。ステップ502において追加条件違反状態の追加条件が複数存在する場合、修正実行部18は、そのうち一つの追加条件を自動選択するが、いずれの追加条件を選択しても、その選択された追加条件の修正試行回数が1加算されるので、各追加条件の追加条件ペナルティ値pi(x)の総和により得られる追加ペナルティ値p(x)は大きくなる。従って、修正実行部18が修正試行回数を加算することになる追加条件をランダムに選択しても問題はない。
【0081】
また、修正割付処理においてマトリクスの要素値変更処理(ステップ508)が繰り返し行われることによって、条件違反状態でなくなった追加条件も条件違反状態となってしまう可能性もある。しかしながら、このような場合も、割付実行部16は、修正試行回数を増やし(ステップ518,503)、マトリクスの要素値変更処理(ステップ508)を改めて行うことにより復活した条件違反を再度解消するように作用する。
【0082】
修正実行部18では、評価値計算部6から得られる評価値がなるべく小さくなるように勤務表マトリクスの各要素値を決定する手法として山登り法等の所定のアルゴリズムを用いているが、たとえこのようなアルゴリズムを用いたとしても、特定の状況下では、割付処理を繰り返し行っても評価値を小さくできない可能性がある。そこで、本実施の形態では、ステップ503で選択した追加条件の修正試行回数が予め設定した規定回数を超過した場合には(ステップ504)、その追加条件に従った勤務表の変更はできないものとみなして、選択した追加条件を追加条件記憶部8から削除する(ステップ517)。追加条件を削除した後、その他に条件違反状態の追加条件が存在しなければ、修正割付処理を終了し、解消されていなければ、ステップ502に戻って解消されていない条件違反が解消するまで処理を反復して行う(ステップ518)。
【0083】
また、本実施の形態では、修正割付処理の途中で所定のアルゴリズムを変更できるようにした。すなわち、山登り法等採用しているアルゴリズムで評価値を小さくする際に限界に達しても、整数計画法等他のアルゴリズムに変更することにより、評価値を小さくできる可能性があるからである。このアルゴリズムの変更は、勤務表作成者からの指示に従い変更するようにしてもよいし、所定回数以上反復しても評価値が小さくならないときに、修正実行部18が自動的に変更するようにしてもよい。
【0084】
なお、本実施の形態では、評価値の小さい方が改善され評価の高い勤務表が得られるものとして説明した。つまり、評価値計算部6から得られる評価値がなるべく小さくなるように勤務表マトリクスの各要素値を決定するようにしたので、条件違反しているときにはペナルティ値を加算するようにした。しかし、この大小関係を逆にしてもよいことは言うまでもない。
【0085】
以下、本実施の形態における勤務表の作成処理について具体例をあげて説明する。ここでは、具体的な処理の例として、図8で示す前提のもとに、実際に修正を行う過程の例を図9,12に示す。この例では、修正割付の過程を端的に示すために、職員4名、4日間の勤務表を例として用いた。
【0086】
図9(a)には、初期割付処理により作成され、表示された勤務表が示されている(図3のステップ100,200)。この勤務表では、職員Bの勤務状況が割付条件のうち「深夜−深夜の並びを回避する(重み90)」という勤務パターン条件に違反している。この違反箇所は反転表示されているので、作成者は、修正すべき勤務状況を容易に認識できる。作成者は、その違反箇所をクリック操作することで修正指示を入力する(図3のステップ300)。この操作に応じて修正割付処理(図3のステップ500)が開始される。
【0087】
修正割付処理では、作成者により入力指定された箇所に対応する割付条件を追加条件として追加条件記憶部8に登録する(図6のステップ501)。この初期登録時での修正試行回数は、図9(b)に示すように0である。しかしながら、追加条件はこの時点では1つのみなので、この追加条件が選択されることにより(図6のステップ502)、その追加条件の修正試行回数はすぐに加算され1になる(図6のステップ503)。図9(c)は、図9(a)を転記した図であるが、目的関数f(x)の値は上記式(2)に従い90、追加ペナルティ関数p(x)の値はα=10とすると上記式(3),(4)に従い10となるので、この勤務表における評価値、すなわち評価関数E(x)の値は上記式(1)に従い90+10=100となる(図6のステップ506)。
【0088】
ここで、図8に示した割付時の勤務表マトリクスの変更方法に従い、図6のステップ508〜516を繰り返し行うことで勤務表マトリクスの要素値を変更する。この処理では、評価値の小さい勤務表になるように要素値を変更するが、この例では、評価値の小さい勤務表へ変更できず、初期割付により作成した勤務表がそのまま残る。この結果を示した例が図9(d)になる。
【0089】
上記処理では、所定回数又は所定時間、勤務表マトリクスの要素値の変更を繰り返したにもかかわらず追加条件が解消できなかったので(図6のステップ515,516,518)、図6のステップ502に戻る。ここで、追加条件記憶部8に登録されている追加条件は1つのみなので、その追加条件が再度選択され、その修正試行回数は更に1加算され2になる(図6のステップ503)。
【0090】
そして、図9(d)に示した勤務表における評価値が計算されることになる(図6のステップ506)。この勤務表における目的関数値は90と変わらないが、追加ペナルティ値は修正試行回数が2となったことで20となる。よって、この勤務表における評価値は上記式(1)に従い90+20=110となる。このように、同じ勤務表であっても処理の繰り返しに伴い追加ペナルティ値が増えることにより評価値が大きくなる。
【0091】
ここで、上記と同様に、図6のステップ508〜516を繰り返し行うことで勤務表マトリクスの要素値を変更する。ここでの処理では、図8に示した割付時の勤務表マトリクスの変更方法に従い、図10(e)に示した矢印のように職員Bと職員Cの2日の勤務状況を入れ替えてみたとする(図6のステップ508)。入れ替えた後の勤務表を図10(f)に示す。この入れ替えにより追加条件は解消されるが、今度は職員Cの勤務状況が割付条件のうち「休み−深夜の並びを回避する(重み100)」という4番目の勤務パターン条件に違反することになる。この変更した勤務表における目的関数値は100と増えるが、追加ペナルティ値は違反している追加条件がないので0となる。これにより、変更後の勤務表における評価値は上記式(1)に従い100+0=100となる(図6のステップ509)。従って、変更後の評価値の方が小さくなるので、この勤務表を記憶する(図6のステップ512)。
【0092】
更に、図6のステップ508に戻り、図8に示した割付時の勤務表マトリクスの変更方法に従い、今度は図10(f)に示した矢印のように職員Bと職員Cの1日の勤務状況を入れ替えてみたとする。入れ替えた後の勤務表を図10(g)に示す。この入れ替えにより違反する割付条件はなくなり、かつ追加条件もない。すなわち、変更後の勤務表における目的関数値、追加ペナルティ値共に0となり、この結果、変更後の勤務表における評価値は上記式(1)に従い0となる(図6のステップ509)。従って、変更後の評価値の方が小さくなるので、この勤務表を記憶する(図6のステップ512)。
【0093】
更に、図6のステップ508に戻り、勤務マトリクスの要素値を変更し、その変更前後の評価値を比較しても評価値0の勤務表を改善することはできない。そして、所定回数又は所定時間経過後、図6のステップ518において追加条件が全て解消されていることが確認されると、修正割付処理は終了する。この修正割付処理において作成される勤務表を図10(h)に示す。なお、図10(h)は図10(g)を転記した図である。
【0094】
このようにして作成された勤務表が画面表示されると(図3のステップ200)、作成者は、反転表示部分がないことによりこの勤務表はいずれの割付条件にも違反していないことを認識できる。この勤務表でよければ、作成者は、修正指示を入力せずに勤務表作成処理を終了させる(図3のステップ500)。なお、前述したように、本実施の形態では、違反箇所がなくても割り付けられた内容を変更したければ、該当する箇所をクリックすることで変更することは可能である。
【0095】
本来、この程度のサイズの勤務表であれば、初期割付だけで十分に良い勤務表が得られる可能性が高く、後から修正する必要性は少ない。しかし、実際に用いられる大きい勤務表では、初期割付で得られた勤務表に対して何らかの修正が必要となることは最初に説明した通りである。ここで例示する処理は、サイズが大きい勤務表に対してもそのまま使用できるものであり、修正過程の説明を平易に行うために、その方法を小さいサイズの勤務表において説明するものである。また、割付処理における所定のアルゴリズムとして、勤務表マトリクスの変更方法に「職員順、日付順に同一日の2名の職員の勤務を交換する」という方法を例として用いた。修正実行部18の説明でも述べたように、ここで用いるアルゴリズムは初期割付で用いるアルゴリズムとは別のものであってもよい。
【0096】
最後に、本実施の形態における勤務表作成支援システムに対するユーザインタフェイスを確認すると、勤務表作成者は、本システムを起動して勤務表を作成する。ここで作成され表示される勤務表というのは、初期割付処理により作成された勤務表であり、前述したように通常は条件違反が発生している。ここで、勤務表作成者は、警告表示を参照するなどして解消したいと考える条件違反箇所をマウスクリックにより指定する。マウスクリックする箇所を具体的に言えば、勤務表上における反転表示部分あるいは図5に示した警告メッセージである。もちろん、違反していない部分も指定可能であることは前述したとおりである。このマウスクリックに応じて修正割付処理が実行される。この結果、修正された勤務表が表示される。修正後もまだ条件違反が残っているなどの理由で更に勤務表を修正したい場合、勤務表作成者は、上記と同様にその修正箇所をマウスクリックにより指定する。このような作成された勤務表に対し修正箇所をマウスクリックにより指定することで勤務表を改善することができる。
【0097】
以上のように、本実施の形態によれば、勤務表作成の際の修正に関して、勤務表作成者により入力指定された要素の要素値を効果的に自動修正することができるので、勤務表作成者は、修正したいと考える勤務状況部分を指定するだけでよく、効果的に勤務表を修正することができる。
【0098】
なお、本実施の形態は、条件違反等により変更すべき要素値を自動的に修正することで勤務表作成者にかかる負担を軽減するものである。しかし、勤務表作成者による要素値の設定を否定するものではなく、従来と同様に各要素に所望の要素値を手動により入力設定できるようにしてもよい。また、本実施の形態では、条件違反を解消するために勤務表マトリクスの要素値変更をランダムに行っている(図6のステップ508)。つまり、各要素値は条件違反の有無に関係なく直前の勤務表と異なる場合がある。このため、勤務表作成者が手動で設定した要素値も割付処理の反復で変更されてしまう可能性がある。これを避けるには、割付条件に対する重みを設定変更できる機能を設けておき、要素値を変更させたくない要素に対する重みを極めて大きい値に設定しておけば、評価値が小さくなるように勤務表マトリクスを作成する割付実行部16は、その要素値が変更するような勤務表マトリクスを採用しない(図6のステップ511,513)。なお、勤務表作成者により手動で要素値が入力設定されたときは、その要素値を割付条件に自動登録し、その際に設定する重みを極めて大きい値に設定するよう自動処理するようにしてもよい。
【0099】
また、上記実施の形態においては、看護婦の勤務表の作成支援システムを実現するものであったが、本発明はこれに限定されず、例えば警備員、パイロット、タクシードライバーなどの交代制の勤務形態をもつ職種の勤務表作成にあたっても同様に適用可能である。
【0100】
【発明の効果】
本発明によれば、勤務表作成者は勤務表の修正を行う場合に、修正したいと考える個所を指示するだけでよく、修正に際してその個所の値をどんな値に変更すべきか、またその変更に伴って他の個所を派生的にどのように変更する必要があるかについて指示する必要がないため、勤務表修正の負担を大幅に軽減することができる。また、修正したい違反に対して追加ペナルティ値を与えるので、修正指示に伴う勤務表の変更箇所を少なく抑えることができ、勤務表作成者は、修正を視覚的に理解し易く、徐々に満足する勤務表に導くことができる。また、修正したい状態に対してペナルティ値を与えることで評価値を計算し勤務表の修正を行うため、その修正には最初に勤務表を自動作成するためのアルゴリズムをそのまま用いることもでき、その場合には修正に特化したルールを用意する必要がないというメリットがある。
【0101】
また、割付処理を反復して行う際に、割付処理の反復回数に応じた加重を課して追加ペナルティ値を再設定して評価値を計算するようにしたので、追加条件違反を優先的に解消する勤務表を作成することができる。
【0102】
また、割付処理を繰り返し行っても評価値を小さくできなくなったときに、採用しているアルゴリズムを他のアルゴリズムに変更できるようにしたので、評価値がより小さくなる改善された勤務表を作成することができる可能性がある。
【0103】
また、評価値計算手段により計算される評価値に反映させる追加ペナルティ値の度合いを追加条件毎に設定できるようにしたので、違反を解消させたい追加条件に優先度を持たせることができる。
【図面の簡単な説明】
【図1】 本発明に係る勤務表作成支援システムの一実施の形態を示した機能ブロック構成図である。
【図2】 本実施の形態において作成される勤務表の一例を示した図である。
【図3】 本実施の形態における勤務表作成処理の全体の流れを示したフローチャートである。
【図4】 本実施の形態における初期割付処理を示したフローチャートである。
【図5】 本実施の形態における警告表示例を示した図である。
【図6】 本実施の形態における修正割付処理を示したフローチャートである。
【図7】 本実施の形態における追加条件記憶部に登録される追加条件の例を示した図である。
【図8】 本実施の形態における修正割付処理を説明するための前提条件を示した図である。
【図9】 図8に示した前提条件に基づく修正割付処理による勤務表の遷移を示した図である。
【図10】 図9に続く勤務表の遷移を示した図である。
【符号の説明】
2 割付条件記述部、4 入力部、6 評価値計算部、8 追加条件記憶部、10 勤務表作成処理部、12 表示処理部、14 勤務表保存部、16 割付実行部、18 修正実行部、20 違反判定部、22 違反記憶部、24 警告表示部。
Claims (3)
- 各勤務者の勤務状況を表す2次元マトリクスを含む勤務表を作成する勤務表作成支援システムにおいて、
勤務表を作成するための作成条件を記憶する割付条件記憶手段と、
勤務表について前記作成条件に対する条件違反度を示すペナルティ値を計算し、当該ペナルティ値に基づく評価が高くなるように、所定のアルゴリズムに従い前記2次元マトリクス上に各勤務区分を割り付ける初期割付処理を実行することによって勤務表を作成する初期割付処理手段と、
前記作成した勤務表について前記作成条件に対する条件違反を警告表示する警告表示手段と、
前記作成した勤務表を修正する際の追加条件を記憶する追加条件記憶手段と、
前記警告表示された条件違反のうち任意の条件違反を勤務表作成者が入力指定することによって当該条件違反を解消することを前記追加条件として前記追加条件記憶手段に設定する入力手段と、
勤務表について前記作成条件に対する違反度を示すペナルティ値及び前記追加条件に対する条件違反度を示す追加ペナルティ値を計算し、当該ペナルティ値及び当該追加ペナルティ値に基づく評価が高くなるように、所定のアルゴリズムに従い前記初期割付処理手段が割り付けた2次元マトリクス上の各勤務区分を変更する修正割付処理を実行することによって勤務表を作成する修正割付処理手段と、
を有し、
前記修正割付処理手段は、前記修正割付処理によって作成された勤務表において前記追加条件に対する条件違反が解消されないと、当該追加条件に対する追加ペナルティ値に加重を課した追加ペナルティ値を再設定し、前記ペナルティ値及び当該追加ペナルティ値に基づく評価が高くなるように、前記修正割付処理を再度実行することを特徴とする勤務表作成支援システム。 - 請求項1記載の勤務表作成支援システムにおいて、
前記修正割付処理手段は、勤務表を作成する際に、前記追加条件記憶手段に記憶されている追加条件に対する条件違反が解消するまで前記修正割付処理を反復して行い、前記修正割付処理の反復実行過程において、その反復回数に応じた加重を課した追加ペナルティ値を再設定して評価値を計算することを特徴とする勤務表作成支援システム。 - 各勤務者の勤務状況を表す2次元マトリクスを含む勤務表を作成する勤務表作成支援システムにおいて、
勤務表を作成するための作成条件を記憶する割付条件記憶手段と、
勤務表について前記作成条件に対する条件違反度を示すペナルティ値を計算し、当該ペナルティ値に基づく評価が高くなるように、所定のアルゴリズムに従い前記2次元マトリクス上に各勤務区分を割り付ける初期割付処理を実行することによって勤務表を作成する初期割付処理手段と、
前記作成した勤務表について前記作成条件に対する条件違反を警告表示する警告表示手段と、
前記作成した勤務表を修正する際の追加条件を記憶する追加条件記憶手段と、
前記警告表示された条件違反のうち任意の条件違反を勤務表作成者が入力指定することによって当該条件違反を解消することを前記追加条件として前記追加条件記憶手段に設定する入力手段と、
勤務表について前記作成条件に対する違反度を示すペナルティ値及び前記追加条件に対する条件違反度を示す追加ペナルティ値を計算し、当該ペナルティ値及び当該追加ペナルティ値に基づく評価が高くなるように、所定のアルゴリズムに従い前記初期割付処理手段が割り付けた2次元マトリクス上の各勤務区分を変更する修正割付処理を実行することによって勤務表を作成する修正割付処理手段と、
を有し、
前記警告表示手段は、前記作成した勤務表について前記作成条件に対して条件違反が生じている当該勤務表上の勤務状況部分を明示することで当該条件違反を警告表示し、
前記入力手段は、前記警告表示手段により警告表示された前記勤務状況部分のうち、入力指定された勤務状況部分の条件違反を解消することを前記追加条件として前記追加条件記憶手段に設定することを特徴とする勤務表作成支援システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002165499A JP4430282B2 (ja) | 2002-06-06 | 2002-06-06 | 勤務表作成支援システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002165499A JP4430282B2 (ja) | 2002-06-06 | 2002-06-06 | 勤務表作成支援システム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004013487A JP2004013487A (ja) | 2004-01-15 |
JP2004013487A5 JP2004013487A5 (ja) | 2005-09-08 |
JP4430282B2 true JP4430282B2 (ja) | 2010-03-10 |
Family
ID=30433323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002165499A Expired - Fee Related JP4430282B2 (ja) | 2002-06-06 | 2002-06-06 | 勤務表作成支援システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4430282B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1707306B1 (en) | 2004-01-21 | 2012-09-26 | Toyohashi University of Technology | Process for forming an ultrafine crystal layer on a metallic surface by drilling |
JP2006236173A (ja) * | 2005-02-28 | 2006-09-07 | Secom Co Ltd | 勤務表作成システム |
JP5101203B2 (ja) * | 2007-08-06 | 2012-12-19 | ウィンワークス株式会社 | スケジュール表作成装置、プログラム |
JP5113023B2 (ja) * | 2008-11-20 | 2013-01-09 | 公益財団法人鉄道総合技術研究所 | 勤務計画作成装置 |
JP5501421B2 (ja) * | 2012-09-26 | 2014-05-21 | ウィンワークス株式会社 | スケジュール表作成装置、プログラム |
JP5946043B2 (ja) * | 2014-01-28 | 2016-07-05 | 鉄道情報システム株式会社 | 予定表作成装置、予定表作成プログラム、および予定表作成プログラムが記録された記録媒体 |
KR102256850B1 (ko) * | 2019-06-03 | 2021-05-26 | 이창용 | 빅데이터 및 ai 기반 병원 교대 근무자 근무표 서비스 시스템 및 방법 |
-
2002
- 2002-06-06 JP JP2002165499A patent/JP4430282B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004013487A (ja) | 2004-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7788598B2 (en) | System and method for assigning and scheduling activities | |
US5918226A (en) | Workflow system for operating and managing jobs with predicting future progress of workflow job | |
US9324060B2 (en) | Displaying a plurality of calendar entries | |
US20090265203A1 (en) | User prioritized search engine for automated meeting scheduling | |
JPH09190469A (ja) | スケジュール管理システム | |
WO2005079368A2 (en) | A business method for integrating and aligning product development and brand strategy | |
Vanhoucke | Integrated project management sourcebook | |
US20160098666A1 (en) | Transferring Employees in Operational Workforce Planning | |
US20070050228A1 (en) | Schedule management | |
US20060167725A1 (en) | Method and apparatus for scheduling | |
JP6576981B2 (ja) | 階層的プロジェクト管理装置 | |
US20150242782A1 (en) | Interactive Planning Method And Tool | |
US20200364282A1 (en) | Job prospect and applicant information processing | |
US10496962B1 (en) | Dynamic digital calendar day kanban board | |
US20160098653A1 (en) | Risk Analysis to Improve Operational Workforce Planning | |
JP7075075B2 (ja) | 勤務表作成運用装置、プログラム | |
JP4430282B2 (ja) | 勤務表作成支援システム | |
US20160098668A1 (en) | Operational Workforce Planning | |
JP5864387B2 (ja) | 工程計画立案支援装置、工程計画立案支援方法およびプログラム | |
KR102200112B1 (ko) | 계층적 프로젝트 관리 장치 | |
JP6741324B1 (ja) | 勤務表作成システム | |
JP2006202082A (ja) | 生産ライン管理システムと生産ライン管理プログラムと記録媒体及び生産ライン管理方法 | |
KR102151546B1 (ko) | 계층적 프로젝트 관리 장치 | |
JP2003016240A (ja) | ネットワーク型プロジェクト運営システム及びプログラム | |
JP7506542B2 (ja) | 計算機システム及び作業に対する作業員の割当て案の算出方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050310 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050310 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070525 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070619 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070815 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20071030 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071228 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20080109 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20080201 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20091217 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121225 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4430282 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131225 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |