JP4398672B2 - Allocation table creation system and allocation table creation program - Google Patents
Allocation table creation system and allocation table creation program Download PDFInfo
- Publication number
- JP4398672B2 JP4398672B2 JP2003155911A JP2003155911A JP4398672B2 JP 4398672 B2 JP4398672 B2 JP 4398672B2 JP 2003155911 A JP2003155911 A JP 2003155911A JP 2003155911 A JP2003155911 A JP 2003155911A JP 4398672 B2 JP4398672 B2 JP 4398672B2
- Authority
- JP
- Japan
- Prior art keywords
- allocation
- condition
- work
- storage unit
- assignment
- 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
- 238000011156 evaluation Methods 0.000 claims description 119
- 239000011159 matrix material Substances 0.000 claims description 36
- 230000008520 organization Effects 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 description 38
- 230000006870 function Effects 0.000 description 36
- 238000000034 method Methods 0.000 description 33
- 230000014509 gene expression Effects 0.000 description 23
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 230000002354 daily effect Effects 0.000 description 8
- 238000009795 derivation Methods 0.000 description 5
- 230000003203 everyday effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012797 qualification Methods 0.000 description 2
- 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
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は割付表作成システムに関し、特に、看護師や警備員などの勤務予定などを割り付けた割付表の作成に関する。
【0002】
【従来技術】
病院を例にとって従来技術を説明すると、病院においては、一般的に、各病棟に看護師長が個々の看護師の1ヶ月分の勤務表(割付表の一種)を作成する。看護師の勤務形態には「日勤」、「準夜勤」、「夜勤」、「休み」などといったものがあり、看護師長は、1ヶ月を通しての各看護師についての勤務形態ごとの回数や、一日の中での各勤務に必要な看護師の人数など、多くの条件を満たすように、勤務表全体の作成を行わなければならない。しかし、勤務表の作成に当たって、取り得る勤務形態の組み合わせは無数に考えられるため、全ての割付条件を十分に満たす勤務表を作り出すことは極めて困難であり、あるいは不可能であるといっても過言ではない。したがって、各割付条件を満たせなかったときに勤務表に与える問題の大きさを考慮しながら、試行錯誤を繰り返しつつ、質の高い勤務表を得られるよう勤務表の作成に努めている。このように、看護師長による勤務表の作成に当たっては非常に大きな労力と時間が費やされている。
【0003】
上述のような勤務表の作成による業務量を軽減する為に、勤務表を自動的に作成する方法が幾つか考えられている。勤務表を自動作成する方法としては、まず、コンピュータにより勤務表において取り得る総ての勤務形態の組み合わせを検索し、それぞれの勤務表について各種割付条件をどの程度満たしているかを確認して、最も質の高い勤務表内容を採用する方法があげられる。しかし、勤務表において取り得る勤務形態の組み合わせは無数存在し、総ての組み合わせを評価するのには膨大な時間を要するため、実用的な時間で勤務表を作成することはできない。
【0004】
次に、実用的な時間で勤務表を作成するために、反復回数や処理時間に上限を設けてランダムに勤務表に勤務形態を割付けることにより勤務表を作成する方法が考えられる。しかし、上述のように勤務表において取り得る勤務形態の組み合わせは無数存在するため、所定の反復では必ずしも質の高い勤務表を得られるとは限らず、勤務形態の種類の数や看護師の人数といった勤務表を作成する条件が増えれば増えるほど質の高い勤務表を作成することが困難になる。
【0005】
そこで、このような問題を解決する方法として、勤務表を作成する条件を考慮しながら割付する等、割付の工程を工夫した種々の方法が提案されている。例えば、下記の非特許文献1に開示されているような方法である。この方法は、2交代制の勤務表を作成するときに「夜勤」に関する条件が勤務表の作成を困難にしていることに着目したものである。この方法では、まず、各看護師ごとに、1ヶ月間の「夜勤」の回数の条件や「夜勤」の連続勤務の条件など、「夜勤」に関する横の条件(各看護師ごとに考慮すべき条件)のみを満たすような勤務パターンが総て列挙される。次に、「夜勤」に関する縦の条件(各日ごとに考慮すべき条件)を満たさない度合の最小化を目的関数として与え、列挙した各看護師の勤務パターンの組み合わせから、この目的関数を解いている。これにより、「夜勤」についての全看護師の勤務が決定される。その後に、勤務表の割付されていない部分に「日勤」や「休み」が割付される。2交代制の「日勤」や「休み」は割付する上での条件が厳しくないため、条件を満たすような勤務の入れ替えを繰り返すことにより割付が完了する。以上により、勤務表全体についての割付を完了し、勤務表を完成させる。このような方法によれば、条件の厳しい勤務から割付を行うことにより、作成される勤務表の質をある程度保証し、また、作成される勤務表のパターンをある程度絞ることができるため比較的短い時間で勤務表を作成することができる。
【0006】
なお、下記特許文献1には、勤務表を作成するシステムが開示されており、特に各種の判断分類を備えたシステムが開示されている。
【0007】
【非特許文献1】
池上、丹羽、「ナース・スケジューリングに有効なアプローチ−
2交代制アルゴリズムにおける実現−」、日本OR学会論文、
Vol.41、1998年12月、P572
【特許文献1】
特開2000−99569号公報
【0008】
【発明が解決しようする課題】
しかしながら、上記の非特許文献1に記載された方法によると、「夜勤」を割り付けた段階では「日勤」や「休み」との繋がり関係に関する条件を満足できるか否かがわからず、よって質の高い勤務表を必ずしも作成することはできないということが指摘できる。また、勤務の種類が「日勤」、「夜勤」、「休み」である2交代制勤務の場合は比較的短い時間で勤務表を作成できるが、3交代制以上の勤務体制の場合は「準夜勤」など他にも勤務形態があるために、勤務表の取り得る勤務の組み合わせが非常に多くなり、実用的な時間内に勤務表を作成することができない。したがって、上記の方法では、必ずしも質の高い勤務表を実用的な時間内に作成することができない。また、一般的に言っても、勤務表等の割付表を作成する場合に、その割付品質を良好にし、また迅速な演算を可能とすることが切望されている。
【0009】
本発明の目的は、質のよい内容をもった割付表を迅速に作成できるようにすることにある。
【0010】
【課題を解決するための手段】
(1)本発明は、組織を構成する複数のメンバーについて一定期間内における各時間単位に勤務予定を割り付けることにより割付表を作成するシステムにおいて、前記一定期間内において1又は複数の時間単位からなる部分範囲を設定する部分範囲設定手段と、前記設定された部分範囲について勤務予定の部分割付を実行する部分割付手段と、を含み、前記部分割付手段は、前記部分範囲内において各メンバーに複数の割付候補を仮割り付けする仮割付手段と、前記仮割り付けがなされた各割付候補に、前記一定期間の全体を評価対象として個別評価を行う個別評価手段と、前記個別評価手段による各割付候補の個別評価結果に基づいて、前記複数のメンバーについての複数の割付候補の最適組合せを決定し、それを前記部分範囲へ割り付ける最適組合せ割付手段と、を有することを特徴とする。
【0011】
上記構成によれば、割付表において人為的に又は自動的に設定された部分範囲について、各メンバーに複数の割付候補が試行的に割り付けられ、その仮割り付けされた各候補に個別評価が実施される。その場合、評価精度を高めるために、割付表における一定期間の全体が評価対象とされる。そして、各割付候補の個別評価結果に基づいて、複数のメンバーについて割り付ける複数の割付候補の最適組み合わせが決定される。
【0012】
よって、一度の割付対象が部分範囲に制限されていること(つまり部分割付であること)、及び、そのような部分割付であっても割付表全体を評価対象としていることから、迅速且つ良好な品質で割り付けを行える。もちろん、必要ならば部分範囲の位置を段階的に変更して割付表全体へ部分割付を展開してもよい。
【0013】
上記において、割付候補は、勤務予定の種別又は種別の並びに相当する。また、最適組合せは、厳密な意味での最適な組合せだけを意味するのではなく、演算上(例えば最適解を求める公知の各種の手法により)最適と判断される組合せの意味である。なお、メンバーは、典型的には職員、担当者、従業員などの個人であるが、それらの集合(例えば職員グループ)であってもよい。また、時間単位は通常は日となるが、必ずしもそれには限定されない。割り付けられる勤務予定は、出勤形態(日勤、夜勤など)であってもよいし、勤務内容などであってもよい。
【0014】
望ましくは、各メンバーの一連の勤務構成に関する第1割付条件群と、各時間単位のメンバー構成に関する第2割付条件群と、が登録される記憶部を含み、前記個別評価手段は、前記第1割付条件群に基づいて前記各割付候補の個別評価を実行し、前記最適組合せ割付手段は、前記各割付候補の個別評価結果及び前記第2割付条件群に基づいて、前記最適組合せを決定する。
【0015】
上記構成によれば、評価表全体を対象としつつ、第1割付条件群に基づいて各割付候補に個別評価が実施される。そして、その各割付候補の個別評価結果及び第2割付条件群に基づいて、最適組合せが決定される。
【0016】
よって、個々のメンバーについての時間軸方向の勤務構成に関する割付条件(第1割付条件)と各単位時間のメンバー構成に関する割付条件(第2割付条件)とを区別して段階的に取り扱うことにより、各段階の演算量を削減しつつ、全体として割付品質を高めることができる。
【0017】
望ましくは、前記第1割付条件群を構成する複数の第1割付条件、及び、前記第2割付条件群を構成する複数の第2割付条件には、それぞれ当該割付条件の優先度を示す属性情報が付与され、前記個別評価手段は、前記各メンバーについての各割付候補に、前記各第1割付条件に付与された属性情報を用いて個別評価値を演算し、これにより前記各メンバーについての各割付候補の個別評価値からなる個別評価マトリクスを構築し、前記最適組合せ割付手段は、前記個別評価マトリクスの内容及び前記各第2割付条件について付与された属性情報に基づいて、前記最適組合せを決定する。
【0018】
各割付条件はそれぞれ重要度、優先度、違反による影響度が異なり、そのような相違を割付演算に反映させるために、上記の属性情報が利用される。そして、属性情報は、個別評価値の演算、最適組合せの決定などで利用される。
【0019】
望ましくは、前記部分範囲設定手段は、前記一定期間内において設定位置を異ならせつつ前記部分範囲を繰り返し設定し、前記部分割付手段は、前記繰り返し指定される各設定位置において前記部分割付を実行し、これにより前記割付表に対する全体割付を完結し、所定の終了判定条件が満たされるまで前記全体割付を繰り返し実行させる終了判定手段が設けられる。
【0020】
上記構成によれば、部分割付の段階的進行によって全体割付が達成され、その全体割付が一定の全体割付品質を得られるまで繰り返される。この繰り返しにより、割付表の品質は段階的に優良化される。よって、要求品質及び要求処理時間との兼ね合いにおいて、終了条件を適宜設定するのが望ましい。
【0021】
特に、前記終了判定手段として、前記割付表の全体に対して全体評価値を演算する手段と、前記全体評価値に基づいて前記全体割付の繰り返し実行を終了させるか否かを判定する手段と、を設けるのが望ましい。その場合に終了条件としては全体評価値が優良化されなくなったこと、全体評価値が一定値に到達したこと、繰り返し回数が一定数に到達したこと、一連の割付処理の開始から一定時間経過したこと、などをあげることができる。
【0022】
(2)望ましくは、組織を構成する複数のメンバーについて一定期間内における各時間単位に勤務予定を割り付けることにより割付表を作成するシステムが、前記一定期間内において1又は複数の時間単位からなる部分範囲を設定する手段と、各メンバーの一連の勤務構成に関する第1割付条件群と、各時間単位のメンバー構成に関する第2割付条件群と、を記憶する手段と、前記第1割付条件群及び前記第2割付条件群の内の一方に基づいて、前記部分範囲に割付可能な個々の割付候補について事前評価を行って個別評価マトリクスを生成する手段と、前記個別評価マトリクスと前記第1割付条件群及び前記第2割付条件群の内の他方とに基づいて、前記部分範囲に対する最適割付内容を決定し、それにより部分割付を実行する手段と、を含む。
【0023】
上記構成によれば、多数の割付条件が第1割付条件群と第2割付条件群とに取り扱い上区別され、その内の一方がまず部分割付のための事前評価に利用されて、次に、その内の他方が部分割付内容の決定に利用される。つまり、各割付条件群が段階的に利用される。一度に全部の割付条件を利用して最適割付内容を決定しようとすると、どうしても演算内容が複雑になったり、演算量が非常に膨大となったりするが、上記の構成によれば、一方の割付条件群を先行利用してそれによる事前評価の結果を個別評価マトリクスとして集約し、その成果(個別評価マトリクス)と他方の割付条件群とから最適割付内容を導出できるので、解の導出を効率的に行える。なお、上記非特許文献1もある意味では割付条件の段階的適用が開示されているが、それは「夜勤」割付を優先させるもので、上記のような第1及び第2割付条件群の分類及び取り扱いとは異なる。
【0024】
望ましくは最初に第1割付条件群が利用されて次に第2割付条件群が利用されるが、割付表の内容及び諸条件によっては、その逆であっても同じ原理を適用して上記同様の作用効果を得られる。上記構成において、個々の割付候補を個別評価する場合には割付品質を考慮して割付表全体をその評価対象とするのが望ましい。なお、上記構成において、個々の割付候補は、第1割付条件群が先行利用される場合には、各メンバーの勤務予定パターンであり、第2割付条件群が先行利用される場合には、各時間単位(例えば日)のメンバー構成となる。
【0025】
(3)また本発明は、コンピュータに読み込まれて実行され、組織を構成する複数のメンバーについて一定期間内における各時間単位に勤務予定を割り付けることにより割付表を作成する割付表作成プログラムであって、当該割付表作成プログラムは、前記一定期間内において1又は複数の時間単位からなる部分範囲を設定する機能と、前記設定された部分範囲について勤務予定の部分割付を実行する機能と、を含み、前記部分割付を実行する機能は、前記部分範囲内において各メンバーに複数の割付候補を仮割り付けする機能と、前記仮割り付けがなされた各割付候補に、前記一定期間の全体を評価対象として個別評価を行う機能と、前記個別評価手段による各割付候補の個別評価結果に基づいて、前記複数のメンバーについての複数の割付候補の最適組合せを決定し、それを前記部分範囲へ割り付ける機能と、を有することを特徴とする。
【0026】
上記において、割付表作成プログラムは、パーソナルコンピュータやワークステーションなどの情報処理装置に読み込まれて実行されるアプリケーションソフトウエアであってもよい。
【0027】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて説明する。
【0028】
まず最初に、本発明に係る割付表作成システムによって作成される割付表について、図1に示す勤務表をその例にとって説明する。
【0029】
図1には、コンピュータの表示部に表示される勤務表の一例が示されている。この勤務表はこの例では病院の特定病棟に勤務する複数の看護師について1ヶ月分の勤務予定を割り付けたものである(各セル内には勤務形態を示すシンボルが記入されている)。図1において、縦軸方向(後述のy方向)は複数の職員(看護師)10を示し、横軸方向(後述のx方向)は一定期間12における各日を示している。符号14は、割付が完了したあるいは割付を行う一ヶ月分を示し、符号16(網掛け部分)は、参照用としての前月の終わりの数日を示している。勤務表作成時には前月からの勤務のつながりを見ることも多いため、前月分の勤務表が部分的に表示されている。符号18及び符号20は、それぞれ縦軸方向及び横軸方向の集計欄を示している(これに関しては上記特許文献1に開示されている)。なお、図1に示す勤務表のレイアウトは一例であって、これ以外のレイアウトを採用することもできる。例えば、縦軸方向に日付を対応付け、横軸方向に職員を対応付けてもよい。
【0030】
図2には、図1に示した勤務表を作成するシステムの構成が機能ブロック図として示されている。このシステムは、大別して、CPU及び勤務表作成プログラム24などによって構成される演算処理部22と、その演算処理部22に接続された入力部26及び表示部28と、演算処理部22に接続された情報記憶部30と、を有する。入力部26はキーボードやマウスなどのポインティングデバイスで構成される。この入力部26を用いて、各職員の希望休暇日などを入力したり、カレンダー情報や後述するマスタ情報を入力したりすることができ、また、後述する割付条件やその重みの設定を行うこともできる。更に、その入力部26を用いて、割付開始指示や割付終了指示を入力することができる。表示部28は液晶ディスプレイなどの表示器である。その表示部28には、図1に示した勤務表などが表示される。情報記憶部30は、外部記憶装置であってもよいし、それが主記憶上に構築されてもよい。勤務表作成プログラム24は割付実行部として機能し、そのプログラム実行に伴って生成されるデータは演算処理部22内部のメモリに記憶され、あるいは、情報記憶部30に記憶される。なお、外部装置との間でネットワーク52を介して通信を行って、必要な情報の授受を行える。
【0031】
上記の勤務表作成プログラム24が有する代表的な各機能が図2においてブロックとして示されている。この勤務表作成プログラム24は、ペナルティ計算部32,制約式生成部34,目的関数生成部36,解導出部38,評価値計算部40,終了条件判定部42などを有する。また、情報記憶部30は、マスタ情報記憶部44,割付条件記憶部46,勤務表記憶部48.個別評価マトリクス(個別評価値テーブル)50を有する。
【0032】
以下、各構成について適宜他の図面を参照しながら説明する。
【0033】
マスタ情報記憶部44には、勤務表を作成する上でのマスタ情報となる、カレンダー情報、職員情報、固定的に割り付けるべき勤務予定、その他の情報が登録される。
【0034】
割付条件記憶部46には、勤務表を作成する上で必要となる多様な割付条件と、各割付条件ごとの「重み(重み値)」とが相互に対応付けられて記憶される。その重みは、割付処理において、それに対応付けられた割付条件をどの程度重視するかを示すインデックスであり、その重みは「絶対」というラベルあるいは数値(度合い)として与えられる。複数の割付条件は、時間軸方向における各職員ごとの勤務構成に関する割付条件(以下、職員ごとの割付条件又は第1割付条件という。)群と、各日ごとの職員構成に関する割付条件(以下、日ごとの割付条件又は第2割付条件という。)群とに大別される。それらの具体例について後に詳しく説明するが、職員ごとの割付条件は、それぞれ各職員共通の割付条件でもよいし、非共通の割付条件でもよい。同様に、各日ごとの割付条件は、各日あるいは各曜日共通の割付条件でもよいし、非共通の割付条件でもよい。
【0035】
勤務表記憶部48には、日付を横軸にとり且つ職員を縦軸にとったマトリクス(勤務表)が存在し、マトリクスの各セル内には勤務予定を示す情報が記入される。
【0036】
個別評価マトリクス50は、後に詳述するように、勤務表における一定期間(一部分)に対して最適な割付候補の組合せを決定するために、それに先立って作成される。個別評価マトリクス50は、本実施形態では、一方軸に勤務パターンの種類を対応付け、且つ、他方軸に職員を対応付けたテーブルとして構成され、その各セル内には、各職員ごとの各割付候補についての個別評価値が記入される。図3には、例えば、1ヶ月の内で3日を部分割付の対象とした場合における、とり得るすべての勤務パターンがリストとして示されている。例えば、パターン(候補)番号#1は、休暇−休暇−休暇の勤務予定の並びであり、パターン番号#2は、休暇−休暇−日勤の勤務予定の並びである。それらの各勤務パターンは、各職員についての割付候補として位置づけられる。
【0037】
図4には、個別評価マトリクスの内容が例示されている。その横軸は図3に示した勤務パターンを示し、その縦軸は職員を示している。各職員について各勤務パターンごとに、後に詳述するように、勤務表全体を基礎として、個別評価が実施され、それにより演算された個別評価値69が対応セルに記入される。個別評価値は、本実施形態において、複数の第1割付条件に基づいて演算される複数のペナルティ値の総和として定義される。割付候補の個別評価に関しては後に詳しく説明する。
【0038】
ペナルティ計算部32は、勤務表全体の全体評価値及び上記個別評価値を求める前提として、各割付条件ごとにペナルティ値を演算する。これを図5を用いて説明する。図5には、勤務表54が模式的に示されている。この勤務表54は割付途中段階にある(一部に空欄があってもよい)。現時点では、符号56で示す部分が部分割付の対象となっている。符号56は、各職員ごとの割付条件(第1割付条件)群を示している。符号58は各日ごとの割付条件(第2割付条件)群を示している。ペナルティ計算部32は、勤務表全体を対象として、各割付条件ごとに当該条件に違反しているか否かの度合いを判断する。そして、違反している場合には、その条件に対応付けられた重みがペナルティ値とされる。図5においては、各割付条件ごとのペナルティ値が丸記号囲みの符号Pによって抽象的に表されている。例示すると、職員Aについては、個々の第1割付条件x1,x2,x3,・・・ごとに、ペナルティ値が演算される。同様に、他の職員についても同様に個々の第1割付条件ごとにペナルティ値が演算される。各第1割付条件に関するペナルティ値の集合が符号60で示されている。一方、各日については、個々の第2割付条件y1,y2,y3,・・・ごとに、ペナルティ値が演算される。そして、そのペナルティ値の集合が符号62で示されている。
【0039】
本実施形態では、それらの符号60及び符号62で示すペナルティ値の集合を全体的に加算することによって、勤務表全体を評価する指標となる全体評価値64が演算されており、その演算は図2に示す評価値計算部40が行っている。全体評価値64は、その値が小さいほど評価がよいことを表す。実施形態において、全体評価値64は、勤務表全体にわたる一連の部分割付を繰り返し行う場合における終了判定の基準として利用される。ここで、その終了判定は、図2に示す終了条件判定部42が判定している。また、本実施形態では、各職員について割付候補を仮割り付けした場合における、当該職員についての各第1割付条件ごとのペナルティ値を加算することによって、当該割付候補の個別評価値68が求められている。その演算も、本実施形態では、評価値計算部40が実行している。その個別評価値68は、上記のように個別評価マトリクス50に記入され、最適な割付候補の組合せの選定に当たって利用される。
【0040】
図6には、部分期間であるd日間に対して部分割付を行う方法が概念的に示されている(その具体的内容は後に図7及び図8を用いて説明する)。本実施形態では、部分期間に割り付ける最適な割付候補の組合せ(勤務パターンのセット)を決定するために、公知の整数計画問題の解法をとり入れている。この他には遺伝的アルゴリズムなどの解法を用いることができる。
【0041】
図6において、割付条件記憶部46には、既に説明したように複数の第1割付条件70と複数の第2割付条件72とが登録されている。上記のように、複数の第1割付条件70を利用して個別評価マトリクス50が生成される。一方、複数の第2割付条件72から、上記の整数計画問題の解法を実行する際に必要となる複数の制約式74が生成される。この他にも、他の条件(例えば固定値)などから、1又は複数の制約式74が生成される。目的関数78は、複数の第2割付条件72の中で、重みとして「絶対」が付与されたもの以外の第2割付条件(絶対ではない重みとしての数値が与えられた第2割付条件)と、個別評価マトリクス50とを用いて生成される。この場合、複数の制約式74の中には、補助変数(後述)を有する制約式が存在するが、その補助変数も目的関数78の中に組み入れられる(図6において一点鎖線の矢印で概念的に示す)。そして、符号80で示すように、生成された各制約式74をすべて満足し、且つ、目的関数78の値を最小にするものとして、制約式74と目的関数78にて定まる整数計画問題の解が決定される。その解は、部分期間における各職員の勤務パターンの最適組合せを特定する。
【0042】
図2において、制約式生成部34は、図6に示した複数の制約式74を生成するものである。また、目的関数生成部36は、図6に示した目的関数78を生成するものである。更に、解導出部38は、複数の制約式74と目的関数78を用いて最適組合せを決定するものである。なお、ペナルティ計算部32および評価値計算部40を図2においては別構成として示したが、これらの機能を一体化してもよい。他の構成についても同様である。
【0043】
以下に、上記において説明した各事項について具体例を用いて詳細な説明を行う。
【0044】
まず、割付条件について具体例を説明する。割付条件は、上記のように、職員ごとの勤務構成に関する割付条件(職員ごとの割付条件、第1割付条件)と、各日ごとの職員構成に関する割付条件(日ごとの割付条件、第2割付条件)と、に大別される。
【0045】
日ごとの割付条件(第2割付条件)は、勤務表における縦の割付条件であり、つまり、勤務表の中で1日ごとに当該条件を満たすかどうかが判断できる割付条件である。以下のように、例えば、需要条件、組合せ条件がある。
(需要条件の例)
1日の職員数の上限・下限・目標人数を職員の資格と勤務ごとに定めた条件
・職員全員に対して日勤をちょうど10名とする(重み:絶対)
・助産師に対して日勤を下限2名とする(重み:100)
・「ベテラン」の職員に対して準夜勤務を下限1名とする(重み:絶対)
なお、上の例では割付条件を適用する日を限定していないが、特定の日や特定の曜日にのみ適用する条件を同様に定めることができる。
(組合せ条件の例)
ある職員が同じ勤務を一緒に行いたい、または行いたくない職員を定めた条件
・職員Aは準夜勤務で職員B、C、Dとは組まない(重み:100)
・職員Eは日勤で職員F、G、H、Iのいずれかと組む(重み:絶対)
(新人の職員Eに、指導担当の職員が一緒に勤務する場合等)
【0046】
次に、職員ごとの割付条件(第1割付条件)は、勤務表における横の割付条件であり、つまり、勤務表の中の職員1名ごとに当該条件を満たすかどうかが判断できる割付条件である。以下のように、例えば、供給条件、パターン条件、間隔条件がある。
(供給条件の例)
所定期間(例えば1ヶ月) 内での職員の勤務回数の上限、下限、目標回数の条件
・休みの回数は1ヶ月間で下限8回とする(重み:20)
・職員Bの夜勤の回数は1ヶ月に上限6回とする(重み:100)
(パターン条件の例)
一人の職員について着目した場合に、回避したい勤務のならびを定めた条件
・準夜−深夜の並びは回避する(重み:300)
・休み−深夜の並びは回避する(重み:50)
(間隔条件の例)
一人の職員について着目した場合に、勤務と勤務の間隔の上限・下限・目標を定めた条件
・休みと休みの間隔を上限5日とする(重み:10)
【0047】
図7及び図8には、図2に示したシステムの動作例がフローチャートとして示されている。図7は全体動作を示す図であり、図8は図7におけるS125の具体的な処理例を示す図である。なお、カレンダー情報、職員情報、割り付けるべき勤務の種類などのマスタ情報は図2に示した入力部26を用いてあらかじめ入力され、それがマスタ情報記憶部44に記録されているものとする。また、勤務表作成に必要な各割付条件およびその重みについても、入力部26によって入力され、それが割付条件記憶部46に記憶されているものとする。
【0048】
S105において、入力部26を用いてユーザーにより、勤務表の自動割付の対象となる期間が入力される。例えば、これから4月の勤務表を作成するという場合には、4月1日〜4月30日の期間が入力される。また、既に4月の勤務表を作成してある状態で、4月15日以降の勤務表を作り直す場合には4月15日〜4月30日の期間が入力される。ここで入力した期間は、情報記憶部30に記憶される。なお、以下においては、勤務表全体が自動割付対象の期間である場合を例に説明することにする。
【0049】
S110では、入力部26を用いてユーザーにより、作成期間内における職員ごとの希望の休みや希望の勤務形態が入力される。それが図2の勤務表記憶部48における対応セルに固定値として記憶される。これは、本人の希望、申請を尊重するためである。ただし、職員ごとの希望の休みや希望の勤務形態については、以下に述べる他の割付条件と同様に、重みを付与して取り扱ってもよい。
【0050】
S115において、入力部26を用いて割付開始の指示を入力すると、評価値計算部40により、勤務表全体に対する全体評価値が計算され、それが評価値計算部40内の変数E0に記録される。具体的には、図5に示したように、ペナルティ計算部32は、職員ごとの割付条件、及び、日ごとの割付条件について、現在の勤務表の内容(空欄があってもよい)に基づいて、それらの違反度合いをペナルティ値として特定する。図2の評価値計算部40は、それらのペナルティ値を合計して勤務表全体の全体評価値とする。
【0051】
ここで、全体評価値について具体的に説明する。全体評価値とは、勤務表の全体にわたって何らかの勤務予定が割り付けられた状態、あるいは、勤務表に一部空白が残っている状態において、その勤務表Xに対して1つ定められる数値であり、その数値が小さいほど良い内容を表すものとする。勤務表Xに対する全体評価値を求める評価関数をE(X)とすると、E(X)は、以下に示すように、勤務表Xに対する各割付条件についての評価関数Etype(X)の和と定義される。
【0052】
【数1】
割付条件ごとの評価関数Etype(X)の定義は、割付条件の種類ごとに異なるので、以下に割付条件ごとの評価値の計算方法の例を示す。
【0053】
まず、日ごとの割付条件については、勤務表中のある1日分のマスだけを(縦方向に)見て、その日について割付条件の違反があるかどうかが判断される。ここでは、その日ごとの違反度合いがペナルティ値となる。全ての日ごとの割付条件に対して、このペナルティ値を勤務表全体で日ごとに計算してその和をとれば、日ごとの割付条件のペナルティ合計が求められる。以下では、日ごとの割付条件である需要条件および組合せ条件について、ペナルティ合計の計算例を示す。
【0054】
需要条件の例として、例えば「助産師に対して日勤を下限2名以上とする(重み:100)」という条件があるとき、勤務表中のある日の助産師の日勤者が1名だったとすると、条件で指定された人数を1名下回っているのでペナルティ値は1×100=100となる。同様の計算を全ての需要条件、全ての日に対して行い、ペナルティ値を合計したものが評価関数(需要条件用)の値となる。
【0055】
なお、割付条件が「上限○名」の場合は、ペナルティ値としては(条件で指定した人数を上回った人数)×(重み)の値とし、それが「目標○名」の場合は(条件で指定した人数との差)×(重み)の値を用いればよい。
【0056】
組合せ条件の例として、例えば「職員Aは準夜勤務で職員B、C、Dとは組まない(重み:100)」という条件があるとき、勤務表中のある日に職員Aに準夜勤務が割り付けられていたとする。そのとき、同じ日に職員B、C、Dのうちで2名に準夜勤務が割り付けられていたとすると、当該条件に対して2名分違反していることになるので、ペナルティ値は2×100=200となる。このような計算を全ての組合せ条件について行って、それにより得られる全ペナルティ値を合計したものが評価関数(組合せ条件用)の値となる。
【0057】
次に、職員ごとの割付条件については、勤務表中のある職員1名分のマスだけを(横方向に)見て、その職員に対する割付条件の違反があるかどうかが判断される。ここではその職員ごとの違反度合いをペナルティ値とする。このペナルティ値を勤務表全体で職員ごとに計算し、その和をとれば、職員ごとの割付条件のペナルティ合計が求められる。以下では、職員ごとの割付条件である供給条件、パターン条件および間隔条件について、ペナルティ合計の計算例を示す。
【0058】
供給条件の例として、例えば、「休みの回数は1ヶ月間で下限8回とする(重み:20)」という条件があるとき、ある職員に対する1ヶ月間の休みの回数合計が6回だったとすると、条件で指定された回数を2回下回っているので、この供給条件に対するペナルティ値は2×20=40となる。同様の計算を全ての供給条件、全ての職員に対して行い、ペナルティ値を合計したものが評価関数(供給条件用)の値となる。
【0059】
なお、条件が「上限○回」の場合は、ペナルティ値としては(条件で指定した回数を下回った回数)×(重み)の値を用いればよく、当該条件が「目標○回」の場合は(条件で指定した回数との差)×(重み)の値を用いればよい。
【0060】
パターン条件の例としては、例えば、「準夜−深夜の並びは回避する(重み:300)」という条件があるとき、ある職員に対する1ヶ月間に「準夜−深夜」の並びが3回出現していたとすると、このパターン条件に対するペナルティ値は3×300=900となる。同様の計算を全てのパターン条件、全ての職員に対して行い、ペナルティ値を合計したものが評価関数(パターン条件用)の値となる。なお、前の月から引き続く勤務表を作成する場合には、前月とまたがって出現する「準夜−深夜」の並びも1回として数えてよい。
【0061】
間隔条件の例としては、例えば、「休みと休みの間隔を上限5日とする(重み:10)」という条件があるとき、ある職員に対する1ヶ月間に休みと休みの間隔が5日を超える個所が2箇所出現していたとすると、この間隔条件に対するペナルティ値は2×10=20となる。同様の計算を全ての間隔条件、全ての職員に対して行い、ペナルティ値を合計したものが評価関数(間隔条件用)の値となる。なお、前の月から引き続く勤務表を作成する場合には、前月とまたがって休みと休みの間隔が5日を超える場合も1箇所として数えてよい。
【0062】
ちなみに、上記説明では、重みが数値である場合を例に説明したが、重みが「絶対」である場合には、ペナルティ値の計算において擬似的に重みとして十分大きな数(10000など)を用いて計算することで、上記と同じ扱いとすることができる。また、職員ごとの条件におけるペナルティ値の計算方法としては、条件違反の度合いが大きいほど大きな値をとる方法であればどのような方法でもよく、上記の例に限定されるものではない。すなわち、前述の供給条件を例にとると、条件で指定された回数を2回下回っている場合のペナルティ値として、下回った回数の2乗と重みの積、すなわち22×20=80という値を用いてもよい。また、職員ごとの条件の種類については、上記の例以外にも多様な種類が考えられる。例えば、「3連続の休みを月1回取得する」というような条件は、職員毎の条件として表現しうる割付条件の一例である。この場合も、条件に違反した度合いが大きいほど値が大きくなるようなペナルティ値の計算方法を定義すれば、上記例と同様に取り扱うことができる。
【0063】
なお、最初の段階では、通常、空欄が多くしかもその内容も適当でない場合が多いために、あまりよい全体評価値とはならない。しかし、勤務表全体に対する割付の自動的な繰り返し(本実施形態では部分割付のスキャンの繰り返し)により、勤務表の内容は段階的に良好になり、最終的には高品質の勤務表が得られる。
【0064】
図7において、S120では、上記のように設定された勤務表作成期間の先頭日を日付Dとする。そして、S125では、その日付Dから始まるd日間の、全職員に対する全ての勤務予定の割り付け(部分割付)を実行し、記憶された勤務表の内容を部分的に更新する。この具体例が図8に示されており、これについては後に詳述する。
【0065】
S130では、日付Dを翌日に移して、部分割付を繰り返す。ただし、S135において、日付D+(d−1)が作成期間の最終日を越えるならば、反復を終了し次のステップに移る。なお、上記では自動割付の対象となる期間の先頭の日から順番に割付を行う例を示したが、順番はこれに限定されるものではなく、その期間の後ろの日から前にさかのぼったり、あるいは適当な順番で対象日を選んでいってもよい。また、ここではd日間の連続した日を単位として割付を行っていく例を示したが、単日(d=1)もしくは勤務表作成期間の中の飛び飛びの複数日でも同様に取り扱うことができる。更に、一度に割付を行う日数dは勤務表全体を通じて一定である必要はなく、部分割付けを繰り返すごとに異なっても本質的に同様に取り扱うことができる。
【0066】
S140では、以上のような反復処理が終了すると、図2に示した勤務表記憶部48に保存されている勤務表に基づいて、評価値計算部40により全体評価値を計算し、それを変数Eに格納する。続いてS145では、評価値計算部40内の変数Eの値とS115で算出した変数E0の値とを比較する。変数Eの値が変数E0の値よりも小さいならば、直前のS125〜135の反復により、勤務表の内容が改善されており、さらなる反復で、より勤務表を改善できる可能性があるので、S150で、変数Eの値を新たに変数E0に格納しなおして、S120以降の各工程を繰り返す。一方、変数Eの値が変数E0と等しいあるいは大きいならば、それ以上勤務表の改善が見込めないものとして、S160で、その時に保存されている勤務表を表示部28で表示し、自動割付処理を終了する。また、S125の直後に、その都度、表示部28に表示させることも可能である。
【0067】
なお、ここでは勤務表の最終日まで割付が終わった段階で全体評価値の計算を行って反復終了を判定しているが、終了判定の方法は、反復回数や経過時間の上限による方法、あるいはS125の直後に毎回S145等と同等の処理を行って全体評価値の変化を調べ、S125〜135の反復回数が一定回数に達するまでの間に、全体評価値の改善が見られなければ終了とすることもできる。
【0068】
次に、図8を用いて、図7のS125に示した工程の具体的内容について詳述する。
【0069】
S200では、個別評価マトリクスを構成するために、d日分について勤務パターンのリストを用意する。既に示したように、図3には、勤務が「休み」、「日勤」、「準夜」、「深夜」の4種類で、d=3の場合における各種の勤務パターンが示されている。なお、先に述べた通り、d日は必ずしも連続している必要はない。すなわち、部分割付の対象として4月2日、4月4日、4月6日のように飛び飛びの日を選んだ場合、図3で示す勤務パターンにおける各勤務がそれぞれ4月2日、4月4日、4月6日に対応するものと考えれば、以降は同様に取り扱うことができる。
【0070】
S205では、任意の1名の職員(職員sとする)を選択し、S210では、一連の勤務パターンの中から一つのパターンを選択する(これをパターンiとする)。続いて、S215で、勤務表における職員sのセル列のうち、日付Dから始まるd日間分(図5の符号56を参照)を仮にパターンiで置き換えたとみなして、複数の第1割付条件について、ペナルティ値を計算する。そして、S225では、それらのペナルティ値を合計してその加算値を個別評価値とし(図5における符号68参照)、その個別評価値を個別評価マトリクスにおける対応セルへ記入する。
【0071】
個別評価マトリクスは、既に説明したように、(職員数)×(勤務パターンの数)のサイズをもったテーブルであり、その内で、上記の個別評価値は、(s,i)の位置に格納される(図4参照)。
【0072】
S230では、すべての勤務パターンを仮割り付けしたかが判断され、未了の場合には、S270で勤務パターンが次に変更されて、上記S215からの各工程が繰り返し実行される。更に、S235では、すべての職員について上記の工程を実行したか否かが判断され、それが終了していなければ、S265で次の職員が選択されて、S210からの各工程が繰り返し実行される。このような過程を経ると、個別評価マトリクスにおける全セルに個別評価値が記入されることになる。
【0073】
S240では、制約式生成部34により、まず職員sに対して勤務パターンiを割り当てるかどうかを定める0−1変数xsi、および、以下で述べる補助変数を用いて以下のような制約式を生成する。
【0074】
1)一人の職員sに対して、勤務パターンを1つしか割り当てないことを表す制約式は以下の通りである。各職員について同様の制約式を生成する。
【数2】
【0075】
2)職員ごとの希望の勤務や休みなど、割付可能な勤務が限定されていることを表す制約式は以下の通りである。各職員について、日付Dから始まるd日間のうちで勤務が限定されている各日について同様の制約式を生成する。
【数3】
【0076】
3)日付Dから始まるd日間に関する日ごとの条件(第2割付条件)のうち、重みが絶対のものに対応する制約式は、以下の通りである。
(例1)需要条件▲1▼「職員全員に対して日勤をちょうど10名とする(重み:絶対)」に対する制約式
日付Dから始まるd日間の各日について、同様の制約式を生成する。
【数4】
(例2)需要条件▲2▼「「ベテラン」の職員に対して準夜勤務を下限1名とする(重み:絶対)」に対する制約式
日付Dから始まるd日間の各日について、同様の制約式を生成する。
【数5】
(例3)組合せ条件▲1▼「職員Eは日勤で職員F、G、H、Iのいずれかと組む(重み:絶対)」に対する制約式
ただし、Cは十分大きな数で、日付Dから始まるd日間の各日について、同様の制約式を生成する。
【数6】
【0077】
4)日付Dから始まるd日間に関する日毎の条件(第2割付条件)のうち、重みが絶対でないものに対応する制約式は、以下の通りである。
(例1)需要条件▲3▼「助産師に対して日勤を下限2名とする(重み:100)」に対する制約式
日付Dから始まるd日間の各日について、同様の制約式を生成する。
なお、以下の補助変数についても日毎に別のものを用いる。
【数7】
ただし、
【数8】
は補助変数で、以下の条件を満たす。
【数9】
なお、補助変数
【数10】
は以下に説明する目的関数に対しても組み込まれる。
【0078】
なお、上記の2)において、職員毎の希望休み等が指定されている場合の制約式を示したが、このような制約式を用いる代わりに、他の制約式や目的関数で使用する勤務パターンを制限してもよい。つまり、例えば職員Aの日付Dに相当する日に「休」を希望として休みが設定されている場合、日付Dの勤務は必ず「休」となるため、勤務パターンのうち日付Dが「休」でないものについては、職員Aに関する制約式を生成する際に勤務パターンの選択肢から除く、つまり対応する変数を制約式および目的関数に含めないものとしてもよい。
【0079】
図8において、S245では目的関数が生成される。目的関数は以下のように表される。
【数11】
ここで、右辺の各項について以下の通りである。
【0080】
a)変数とペナルティマトリクス上の(s,i)の位置の値(asiとする)の積に対する和(職員毎の条件に対するペナルティ値の総和を表す)
【数12】
b)重みが絶対でない日毎の条件のうち、上限を示す条件に関連する項
【数13】
c)重みが絶対でない日毎の条件のうち、目標を示す条件に関連する項
【数14】
d)重みが絶対でない日毎の条件のうち、下限を示す条件に関連する項
【数15】
【0081】
図8において、S250では、上記の各制約式を満たし、且つ、目的関数の値を最小化するように、全ての変数xsiの0−1値および補助変数の値を決定する。ここで、決定される変数xsiの0−1値は、後述のように、各職員ごとの最適な勤務パターンを特定するものである。
【0082】
上記の制約式および目的関数は整数計画問題として定式化されているので、変数値の決定には整数計画法として既知の手法(Branch&Bound法など)を利用すればよい。これにより、絶対条件を満足し、且つ、それ以外の条件をできる限り満足できる理想的な勤務パターンのセットを生成することができる。
【0083】
ただし、各種制約式の内容如何によっては、解を求められない(解なしとなる)場合がある。例えば日ごとの条件で、「ベテラン」資格を持つ職員が2名しかいない場合に2名とも同一日に希望の休みが設定されていると、需要条件「「ベテラン」の職員に対して準夜勤務を下限1名とする(重み:絶対)」は決して満足することができず、解なしとなってしまう。
【0084】
従って、解を求める処理の後、S260で実際に解が得られているかどうかを判定し、解が得られなかった場合は、次に述べる勤務表の更新を行わないようにする。
【0085】
なお、整数計画法においては、変数の個数が多いと計算時間が増加することが知られている。よって、高速化するには、変数の個数をなるべく減らすことが望ましい。そこで変数xsiのうち、対応する個別評価マトリクス上の(s,i)の位置の値(asiとする)がある閾値以上である場合には、変数xsiを制約式および目的関数に含めないものとすることもできる。すなわちasiが大きい場合、対応する変数xsiを1とすると目的関数値が大きくなることから、そもそもそのような変数xsiが1となる可能性は低い。よって、あらかじめそのような変数を用いないこととし、高速化を図ることができる。
【0086】
図8のS260では、上記において解が求まった場合、値が1となる変数が各職員sに対して1つずつ、かつ、全職員分同時に定まっている。よって、勤務表中の日付Dから始まるd日間について、個々の職員sごとに、値1に対応する勤務パターンを割り付ける操作を行う。これにより、部分期間に対して部分割付が完了する。
【0087】
そして、図7で示したように、このような部分割付が順次実行されると、勤務表全体に対する割付(記入あるいは更新)が完了する。そして、勤務表全体の品質が一定条件を満たすまで、勤務表全体に対する割付が繰り返される。
【0088】
上述したように、複雑かつ多様な割付条件を未分離状態で一括して取り扱うと、且つ、一定期間の全体を同時割付処理しようとすると、どうしても演算量が複雑かつ膨大となり、ひいては割付精度の低下を招きやすい。これに対し、上記の実施形態によれば、一度に割り付ける対象として部分範囲を設定し、それについて、時間軸方向の第1割付条件群について、各割付候補を暫定的に個別評価しておき(その評価は品質を考慮して割付表全体を対象)、次に、その集約された個別評価の結果及び人的構成に関する第2割付条件群を用いて候補の最適組合せを決定しようというものである。換言すれば、解の導出演算に当たって、範囲限定及び事前集約によって演算条件を削減し、迅速な演算を達成するものである。そして、必要に応じて、満足できる品質になるまで、部分割付の全体展開が繰り返し行われ、勤務表全体の品質が優良化される。よって、実用性及び有用性の高い勤務表作成(支援)システムを提供できるという利点がある。
【0089】
なお、変形例としては、最初に第2割付条件群を利用して個別評価マトリクスを生成し、その個別評価マトリクスと第1割付条件群とを用いて部分割付内容を決定してもよい。また、上記のシステムは、勤務表以外の仕事割当表など他の割当表の作成にも応用することができる。
【0090】
【発明の効果】
以上説明したように、本発明によれば、質のよい内容をもった割付表を迅速に作成できる。
【図面の簡単な説明】
【図1】 本発明に係るシステムによって作成される勤務表の一例を示す説明図である。
【図2】 本発明に係るシステムの好適な実施形態を示すブロック図である。
【図3】 パターン(候補)番号によって特定される勤務パターン(割付候補)の種類を示す図である。
【図4】 個別評価マトリクスを示す説明図である。
【図5】 第1割付条件群及び第2割付条件群に基づくペナルティの演算を説明するための図である。
【図6】 整数計画問題の解法に基づいて解(部分割付内容)を決定する流れを説明する図である。
【図7】 図2に示したシステムの動作を説明するためのフローチャートである。
【図8】 図7のS125の具体的内容を説明するためのフローチャートである。
【符号の説明】
22 演算処理部、24 勤務表作成プログラム(割付実行部)、32 ペナルティ計算部、34 制約式生成部、36 目的関数生成部、38 解導出部、40 評価値算出部、42 終了条件判定部、44 マスタ情報記憶部、46 割付条件記憶部、48 勤務表記憶部、50 個別評価マトリクス(個別評価結果記憶部)。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an allocation table creation system, and more particularly to creation of an allocation table in which work schedules such as nurses and guards are allocated.
[0002]
[Prior art]
The conventional technology will be described taking a hospital as an example. In a hospital, a nurse chief generally creates a work schedule for one month of each nurse (a kind of allocation table) in each ward. There are nurses' daily work schedules such as “day shift”, “semi-night shift”, “night shift”, “rest”, etc. The entire work schedule must be prepared so as to satisfy many conditions, such as the number of nurses required for each work during the day. However, since there are countless combinations of work styles that can be taken in creating the work schedule, it is an exaggeration to say that it is extremely difficult or impossible to create a work schedule that sufficiently satisfies all the allocation conditions. is not. Therefore, while taking into consideration the magnitude of problems given to the work schedule when each allocation condition cannot be met, we are striving to create a work schedule so that a high-quality work schedule can be obtained through repeated trial and error. In this way, a great deal of labor and time is spent in preparing the work schedule by the nurse chief.
[0003]
In order to reduce the amount of work by creating the work schedule as described above, several methods for automatically creating the work schedule have been considered. As a method of automatically creating a work schedule, first search for all combinations of work styles that can be taken in the work schedule using a computer, check how much the various assignment conditions are satisfied for each work schedule, One way is to adopt a high-quality work schedule. However, there are innumerable combinations of work styles that can be taken in the work schedule, and it takes an enormous amount of time to evaluate all the combinations, so it is not possible to create a work schedule in practical time.
[0004]
Next, in order to create a work schedule at a practical time, a method of creating a work schedule by setting an upper limit on the number of iterations and processing time and randomly assigning a work schedule to the work schedule can be considered. However, because there are countless combinations of work schedules that can be taken in the work schedule as described above, it is not always possible to obtain a high-quality work schedule in a given iteration. The number of types of work styles and the number of nurses As the conditions for creating such work schedules increase, it becomes more difficult to create a high quality work schedule.
[0005]
Therefore, as a method for solving such a problem, various methods have been proposed in which the allocation process is devised, such as allocation while considering the conditions for creating the work schedule. For example, it is a method as disclosed in
[0006]
The following
[0007]
[Non-Patent Document 1]
Ikegami, Niwa, “An effective approach to nurse scheduling
Realization in a two-shift algorithm-"OR Japan Society of Papers,
Vol. 41, December 1998, P572
[Patent Document 1]
JP 2000-99569 A
[0008]
[Problems to be solved by the invention]
However, according to the method described in
[0009]
An object of the present invention is to make it possible to quickly create an allocation table having high-quality contents.
[0010]
[Means for Solving the Problems]
(1) The present invention is a system for creating an allocation table by allocating work schedules to each unit of time within a certain period for a plurality of members constituting the organization, and comprising one or more time units within the certain period A partial range setting means for setting a partial range; and a division attaching means for executing a division with a plan to work for the set partial range, wherein the part attaching means includes a plurality of members for each member within the partial range. Temporary allocation means for tentatively assigning allocation candidates, individual evaluation means for performing individual evaluation on the entire allocation candidate for which the provisional allocation has been performed, with the entire fixed period being evaluated, and individual allocation candidates by the individual evaluation means Based on the evaluation result, an optimal combination of a plurality of allocation candidates for the plurality of members is determined and allocated to the partial range. It characterized by having a a optimal combination allocating unit.
[0011]
According to the above configuration, with respect to the partial range set artificially or automatically in the allocation table, a plurality of allocation candidates are assigned to each member on a trial basis, and an individual evaluation is performed on each temporarily allocated candidate. The In that case, in order to raise evaluation accuracy, the whole fixed period in an allocation table is made into evaluation object. And based on the individual evaluation result of each allocation candidate, the optimal combination of the some allocation candidate allocated about a some member is determined.
[0012]
Therefore, since the assignment target at one time is limited to a partial range (that is, with partial division), and even with such partial division, the entire assignment table is subject to evaluation, so it is quick and good. Can be assigned by quality. Of course, if necessary, the position of the partial range may be changed stepwise to expand the partial assignment to the entire assignment table.
[0013]
In the above, the allocation candidate corresponds to the type of work schedule or a series of types. Further, the optimum combination does not mean only the optimum combination in a strict sense, but means the combination that is determined to be optimum in terms of calculation (for example, by various known methods for obtaining an optimum solution). The member is typically an individual such as a staff member, a person in charge, or an employee, but may be a group (for example, a staff group). Moreover, although a time unit is usually a day, it is not necessarily limited thereto. The assigned work schedule may be a work form (day shift, night shift, etc.), or work content.
[0014]
Preferably, a storage unit in which a first allocation condition group relating to a series of work configurations of each member and a second allocation condition group relating to each hourly member configuration are registered, and the individual evaluation means includes the first evaluation unit. The individual assignment candidates are individually evaluated based on the assignment condition group, and the optimum combination assignment means determines the optimum combination based on the individual evaluation results of the assignment candidates and the second assignment condition group.
[0015]
According to the above configuration, the individual evaluation is performed on each allocation candidate based on the first allocation condition group while targeting the entire evaluation table. Then, the optimal combination is determined based on the individual evaluation result of each allocation candidate and the second allocation condition group.
[0016]
Therefore, by distinguishing between the allocation condition (first allocation condition) for the work composition in the time axis direction for each member and the allocation condition (second allocation condition) for the member structure for each unit time, As a whole, the allocation quality can be improved while reducing the amount of calculation in stages.
[0017]
Desirably, the plurality of first allocation conditions configuring the first allocation condition group and the plurality of second allocation conditions configuring the second allocation condition group, respectively, attribute information indicating the priority of the allocation condition And the individual evaluation means calculates an individual evaluation value for each allocation candidate for each member using the attribute information given to each first allocation condition, whereby each individual member for each member is calculated. An individual evaluation matrix composed of individual evaluation values of allocation candidates is constructed, and the optimum combination allocation means determines the optimal combination based on the contents of the individual evaluation matrix and attribute information given for each of the second allocation conditions To do.
[0018]
Each allocation condition has a different importance, priority, and influence due to violation, and the attribute information is used to reflect such differences in the allocation calculation. The attribute information is used for calculation of individual evaluation values, determination of an optimal combination, and the like.
[0019]
Preferably, the partial range setting means repeatedly sets the partial range while changing the setting position within the fixed period, and the partial division attaching unit executes the partial division attaching at each of the repeatedly designated setting positions. Thus, there is provided an end determination means for completing the entire allocation for the allocation table and repeatedly executing the entire allocation until a predetermined end determination condition is satisfied.
[0020]
According to the above configuration, the overall allocation is achieved by the stepwise progress of the division, and the overall allocation is repeated until a certain overall allocation quality is obtained. By repeating this, the quality of the allocation table is improved step by step. Therefore, it is desirable to appropriately set the end condition in consideration of the required quality and the required processing time.
[0021]
In particular, as the termination determination unit, a unit that calculates a total evaluation value for the entire allocation table, a unit that determines whether or not to repeatedly execute the total allocation based on the total evaluation value, It is desirable to provide. In that case, the overall evaluation value is no longer improved, the overall evaluation value has reached a certain value, the number of repetitions has reached a certain number, and a certain time has elapsed since the start of a series of allocation processes And so on.
[0022]
(2)PreferablySystem that creates an assignment table by assigning work schedules to each unit of time within a certain period for multiple members that make up the organizationBut,Means for setting a partial range consisting of one or a plurality of time units within the predetermined period, a first allocation condition group regarding a series of work configurations of each member, and a second allocation condition group regarding the member configuration of each time unit; Based on one of the first allocation condition group and the second allocation condition group, a preliminary evaluation is performed on each allocation candidate that can be allocated to the partial range, and an individual evaluation matrix is generated. Means for determining the optimum allocation content for the partial range based on the individual evaluation matrix and the other of the first allocation condition group and the second allocation condition group, thereby executing partial allocation; , IncludingMu
[0023]
According to the above configuration, a large number of allocation conditions are distinguished from each other in terms of the first allocation condition group and the second allocation condition group, and one of them is first used for preliminary evaluation for partial allocation, The other of them is used to determine the content with partial division. That is, each allocation condition group is used in stages. If you try to determine the optimal assignment contents using all the assignment conditions at once, the calculation contents will inevitably become complicated and the amount of calculation will be extremely large. Preliminary use of condition groups and the results of prior evaluations are aggregated into individual evaluation matrices, and the optimal assignment content can be derived from the results (individual evaluation matrix) and the other assignment condition group, so the derivation of solutions is efficient Can be done. In addition, the
[0024]
Preferably, the first allocation condition group is used first, and then the second allocation condition group is used. However, depending on the contents and conditions of the allocation table, the same principle can be applied even if the reverse is true. The following effects can be obtained. In the above configuration, when individual allocation candidates are individually evaluated, it is desirable that the entire allocation table be the evaluation target in consideration of the allocation quality. In the above configuration, each allocation candidate is a work schedule pattern of each member when the first allocation condition group is used in advance, and each second allocation condition group is each when the second allocation condition group is used in advance. It becomes a member composition of time unit (for example, day).
[0025]
(3) Further, the present invention is an allocation table creation program that is executed by being read by a computer and creates an allocation table by allocating work schedules for each time unit within a certain period for a plurality of members constituting an organization. The allocation table creation program includes a function of setting a partial range consisting of one or a plurality of time units within the predetermined period, and a function of executing a division of work scheduled for the set partial range, The function of executing the partial allocation is a function of temporarily assigning a plurality of allocation candidates to each member within the partial range, and an individual evaluation with the entire fixed period as an evaluation target for each allocation candidate that has been temporarily allocated And a plurality of assignments for the plurality of members based on the individual evaluation result of each assignment candidate by the individual evaluation means. Determining the optimum combination of candidates, and having a function of allocating it to the subranges, the.
[0026]
In the above, the allocation table creation program may be application software that is read and executed by an information processing apparatus such as a personal computer or a workstation.
[0027]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0028]
First, the allocation table created by the allocation table creation system according to the present invention will be described with reference to the work table shown in FIG.
[0029]
FIG. 1 shows an example of a work schedule displayed on the display unit of the computer. In this example, the work schedule is a schedule in which one month's work schedule is assigned to a plurality of nurses working in a specific ward of a hospital (a symbol indicating a work style is entered in each cell). In FIG. 1, the vertical axis direction (y direction described later) indicates a plurality of staff members (nurses) 10, and the horizontal axis direction (x direction described later) indicates each day in a
[0030]
FIG. 2 is a functional block diagram showing the configuration of the system for creating the work schedule shown in FIG. This system is broadly divided into an arithmetic processing unit 22 configured by a CPU and a work schedule creation program 24, an
[0031]
Each typical function of the work schedule creation program 24 is shown as a block in FIG. The work schedule creation program 24 includes a
[0032]
Each configuration will be described below with reference to other drawings as appropriate.
[0033]
In the master
[0034]
The allocation
[0035]
In the work
[0036]
As will be described later in detail, the
[0037]
FIG. 4 illustrates the contents of the individual evaluation matrix. The horizontal axis shows the work pattern shown in FIG. 3, and the vertical axis shows the staff. As will be described in detail later for each staff member, individual evaluation is performed on the basis of the entire work schedule, and the
[0038]
The
[0039]
In the present embodiment, an
[0040]
FIG. 6 conceptually shows a method of performing division with respect to d days as a partial period (the specific contents will be described later with reference to FIGS. 7 and 8). In the present embodiment, a known integer programming problem solution is adopted in order to determine an optimal combination of allocation candidates (a set of work patterns) to be allocated to a partial period. In addition to this, a solution such as a genetic algorithm can be used.
[0041]
In FIG. 6, a plurality of
[0042]
In FIG. 2, the constraint
[0043]
In the following, each item described above will be described in detail using a specific example.
[0044]
First, a specific example of allocation conditions will be described. As mentioned above, the allocation conditions are as follows: allocation conditions for the work composition for each staff (assignment conditions for each staff, first allocation conditions), and allocation conditions for the staff composition for each day (daily allocation conditions, second allocation) And conditions).
[0045]
The daily allocation condition (second allocation condition) is a vertical allocation condition in the work schedule, that is, an allocation condition in which it can be determined whether the condition is satisfied every day in the work schedule. For example, there are demand conditions and combination conditions as follows.
(Example of demand conditions)
Conditions that determine the upper limit, lower limit, and target number of staff per day for each staff qualification and duty
・ The day shift for all staff members is just 10 (weight: absolute)
・ Minimum two days for midwives (weight: 100)
・ Semi-night duty is set to one lower limit for “Veteran” staff (weight: absolute)
In the above example, the day to which the allocation condition is applied is not limited. However, the condition to be applied only on a specific day or a specific day of the week can be similarly defined.
(Example of combination conditions)
Conditions that define the staff members who want or do not want to work together
-Staff A works semi-night and does not pair with staff B, C, D (weight: 100)
・ Staff E is a day shift and works with staff F, G, H, or I (weight: absolute)
(In the case of a new employee E who is in charge of the guidance staff)
[0046]
Next, the allocation condition for each staff member (first allocation condition) is the horizontal allocation condition in the work schedule, that is, the allocation condition that can determine whether or not the condition is satisfied for each staff member in the work schedule. is there. For example, there are a supply condition, a pattern condition, and an interval condition as follows.
(Example of supply conditions)
Conditions for the upper and lower limits of the number of working hours of employees within a predetermined period (for example, one month) and the target number of times
・ The minimum number of holidays is 8 times per month (weight: 20)
・ The maximum number of night shifts for staff B is six per month (weight: 100)
(Example of pattern conditions)
Conditions that define the work you want to avoid when you focus on one employee
・ Avoid the arrangement of midnight and midnight (weight: 300)
・ Non-breaking nights (weight: 50)
(Example of interval condition)
Conditions that set the upper and lower limits and goals of the interval between work when paying attention to one employee
・ Maximum interval between holidays is 5 days (weight: 10)
[0047]
7 and 8 are flowcharts showing an example of the operation of the system shown in FIG. FIG. 7 is a diagram showing the overall operation, and FIG. 8 is a diagram showing a specific processing example of S125 in FIG. It is assumed that master information such as calendar information, staff information, and type of work to be assigned is input in advance using the
[0048]
In S <b> 105, the user inputs a period to be automatically assigned to the work schedule by using the
[0049]
In S110, the user inputs a desired holiday and a desired work style for each staff member within the creation period using the
[0050]
In S115, when an instruction to start allocation is input using the
[0051]
Here, the overall evaluation value will be specifically described. The overall evaluation value is a numerical value determined for the work schedule X in a state where some work schedule is assigned throughout the work schedule, or in a state where some blanks remain in the work schedule, The smaller the value, the better the content. Assuming that an evaluation function for obtaining an overall evaluation value for the work schedule X is E (X), E (X) is an evaluation function E for each allocation condition for the work schedule X as shown below.typeIt is defined as the sum of (X).
[0052]
[Expression 1]
Evaluation function E for each allocation conditiontypeSince the definition of (X) differs for each type of allocation condition, an example of a method for calculating an evaluation value for each allocation condition is shown below.
[0053]
First, regarding the allocation conditions for each day, it is determined whether or not there is a violation of the allocation conditions for that day by looking only at a square for one day in the work schedule (in the vertical direction). Here, the degree of violation for each day is a penalty value. If the penalty value is calculated for each day in the entire work schedule and the sum is calculated for all the daily allocation conditions, the total penalty for the daily allocation conditions is obtained. Below, the example of calculation of a penalty total is shown about the demand conditions and combination conditions which are the allocation conditions for every day.
[0054]
As an example of the demand condition, for example, when there is a condition that “the minimum day shift is 2 or more for midwives (weight: 100)”, there is one midwife on one day in the work schedule. Then, since the number of persons specified in the condition is one person less, the penalty value is 1 × 100 = 100. The same calculation is performed for all demand conditions and all days, and the sum of the penalty values is the value of the evaluation function (for demand conditions).
[0055]
If the allocation condition is “upper limit ○ name”, the penalty value is (number of people exceeding the number of people specified in the condition) × (weight) value, and if it is “target ○ name” A value of (difference from specified number of people) × (weight) may be used.
[0056]
As an example of the combination condition, for example, when there is a condition that “employee A works semi-night and does not associate with staff B, C, D (weight: 100)”, employee A works semi-night on a certain day in the work schedule. Is assigned. At that time, if two employees of staff B, C, and D are assigned to work on a semi-night basis on the same day, the penalty value is 2 × because two people are violating the condition. 100 = 200. Such calculation is performed for all combination conditions, and the total of all penalty values obtained thereby is the value of the evaluation function (for combination conditions).
[0057]
Next, regarding the allocation conditions for each staff member, only the square for one staff member in the work schedule is viewed (in the horizontal direction) to determine whether there is a violation of the allocation conditions for that staff member. Here, the degree of violation for each employee is taken as a penalty value. If this penalty value is calculated for each staff member in the entire work schedule and the sum is taken, the total penalty of the allocation conditions for each staff member is obtained. The following shows an example of calculating the penalty total for the supply conditions, pattern conditions, and interval conditions that are the assignment conditions for each staff member.
[0058]
As an example of supply conditions, for example, when there is a condition that “the number of holidays is a lower limit of 8 times per month (weight: 20)”, the total number of holidays per month for a certain employee is 6 times. Then, since the number of times specified in the condition is twice, the penalty value for this supply condition is 2 × 20 = 40. The same calculation is performed for all supply conditions and all staff, and the sum of the penalty values is the value of the evaluation function (for supply conditions).
[0059]
When the condition is “upper limit ○ times”, the penalty value may be (number of times less than the number of times specified in the condition) × (weight). If the condition is “target ○ times” A value of (difference from the number of times specified by the condition) × (weight) may be used.
[0060]
As an example of the pattern condition, for example, when there is a condition of “avoid quasi-night-midnight arrangement (weight: 300)”, the “quasi-night-midnight” arrangement appears three times in a month for a certain employee. If so, the penalty value for this pattern condition is 3 × 300 = 900. The same calculation is performed for all pattern conditions and all staff, and the sum of the penalty values is the value of the evaluation function (for pattern conditions). In addition, when creating a work schedule that continues from the previous month, the “quasi-night-midnight” sequence that appears across the previous month may be counted as one time.
[0061]
As an example of the interval condition, for example, when there is a condition that “the interval between the holidays is 5 days (upper limit: 10)”, the interval between the holidays for a certain employee exceeds 5 days in one month. If two locations appear, the penalty value for this interval condition is 2 × 10 = 20. The same calculation is performed for all interval conditions and all staff, and the sum of the penalty values is the value of the evaluation function (for the interval condition). In addition, when creating a work schedule that continues from the previous month, it may be counted as one place even when the interval between holidays and holidays exceeds 5 days.
[0062]
By the way, in the above description, the case where the weight is a numerical value has been described as an example. However, when the weight is “absolute”, a sufficiently large number (such as 10,000) is used as the weight in the calculation of the penalty value. By calculating, the same treatment as above can be performed. Moreover, as a calculation method of the penalty value in the conditions for each staff member, any method may be used as long as the degree of condition violation is larger, and the method is not limited to the above example. That is, taking the above supply condition as an example, as a penalty value when the number of times specified by the condition is twice, the product of the square of the number of times below and the weight, ie, 22A value of × 20 = 80 may be used. In addition to the above examples, there are various types of conditions for each staff member. For example, a condition such as “acquire three consecutive holidays once a month” is an example of an allocation condition that can be expressed as a condition for each staff member. In this case as well, if a penalty value calculation method is defined such that the value increases as the degree of violation of the condition increases, it can be handled in the same manner as in the above example.
[0063]
In the first stage, since there are usually many blanks and the contents are often not appropriate, the overall evaluation value is not very good. However, due to automatic repetition of assignment to the entire work schedule (in this embodiment, repetition of scanning with division), the contents of the work schedule become better in stages, and finally a high-quality work schedule is obtained. .
[0064]
In FIG. 7, in S120, the first day of the work schedule creation period set as described above is set as the date D. In S125, allocation of all work schedules (with division) for all staff for d days starting from the date D is executed, and the contents of the stored work schedule are partially updated. An example of this is shown in FIG. 8, which will be described in detail later.
[0065]
In S130, the date D is moved to the next day and the division is repeated. However, if the date D + (d−1) exceeds the last day of the creation period in S135, the iteration is terminated and the process proceeds to the next step. In addition, in the above, an example is shown in which the allocation is performed in order from the first day of the period subject to automatic allocation, but the order is not limited to this, going back from the day after the period, Alternatively, the target days may be selected in an appropriate order. In addition, here, an example is shown in which allocation is performed in units of d consecutive days. However, a single day (d = 1) or multiple days in the work schedule creation period can be handled in the same manner. . Furthermore, the number of days d to be allocated at a time does not need to be constant throughout the work schedule, and can be handled essentially in the same manner even if it differs every time divisional allocation is repeated.
[0066]
In S140, when the above iterative process ends, the evaluation
[0067]
In this case, the end of the iteration is determined by calculating the overall evaluation value at the stage when the assignment is completed until the last day of the work schedule, but the method for determining the end is a method based on the upper limit of the number of iterations or elapsed time, or Immediately after S125, the same process as S145 is performed every time to check the change in the overall evaluation value, and if the improvement of the overall evaluation value is not seen until the number of iterations of S125 to 135 reaches a certain number of times, the process ends. You can also
[0068]
Next, specific contents of the process shown in S125 of FIG. 7 will be described in detail with reference to FIG.
[0069]
In S200, in order to construct an individual evaluation matrix, a list of work patterns is prepared for d days. As described above, FIG. 3 shows various work patterns in the case of d = 3 with four types of work, “day off”, “day shift”, “semi-night”, and “late night”. As described above, the d days do not necessarily have to be continuous. In other words, if a skipped day such as April 2, April 4, or April 6 is selected as the target of division, each work in the work pattern shown in FIG. If it is considered to correspond to April 4 and April 6, it can be handled in the same manner.
[0070]
In S205, one arbitrary staff member (referred to as staff member s) is selected, and in S210, one pattern is selected from a series of work patterns (this pattern is referred to as pattern i). Subsequently, in S215, it is assumed that d days (see
[0071]
As described above, the individual evaluation matrix is a table having a size of (the number of staff) × (the number of work patterns), and the individual evaluation value is in the position of (s, i). Stored (see FIG. 4).
[0072]
In S230, it is determined whether or not all work patterns have been provisionally allocated. If not, the work pattern is changed in S270, and the processes from S215 are repeated. Further, in S235, it is determined whether or not the above steps have been executed for all staff members. If not completed, the next staff member is selected in S265, and each process from S210 is repeatedly executed. . Through this process, individual evaluation values are entered in all cells in the individual evaluation matrix.
[0073]
In S240, the
[0074]
1) A constraint expression indicating that only one work pattern is assigned to one employee s is as follows. A similar constraint formula is generated for each staff member.
[Expression 2]
[0075]
2) The constraint formulas indicating that work that can be assigned is limited, such as desired work and holidays for each staff member, are as follows. For each staff member, a similar constraint expression is generated for each day for which work is limited within d days starting from date D.
[Equation 3]
[0076]
3) A constraint equation corresponding to an absolute weight among the conditions (second allocation condition) for each day regarding d days starting from the date D is as follows.
(Example 1) Requirement condition (1) Constraint formula for "10 employees should have 10 day shifts (weight: absolute)"
A similar constraint expression is generated for each day of d days starting from the date D.
[Expression 4]
(Example 2) Requirement condition (2) Constraint formula for “Low-time work is set to one lower limit for“ Veteran ”staff (weight: absolute)”
A similar constraint expression is generated for each day of d days starting from the date D.
[Equation 5]
(Example 3) Combination condition (1) Constraint formula for "Staff E is a day shift and is paired with one of staff F, G, H, or I (weight: absolute)"
However, C is a sufficiently large number, and a similar constraint expression is generated for each day of d days starting from the date D.
[Formula 6]
[0077]
4) A constraint equation corresponding to a non-absolute weight among conditions (second allocation condition) for each day regarding d days starting from the date D is as follows.
(Example 1) Requirement condition (3) Constraint formula for “Midwives have a minimum of two day shifts (weight: 100)”
A similar constraint expression is generated for each day of d days starting from the date D.
The following auxiliary variables are also used for each day.
[Expression 7]
However,
[Equation 8]
Is an auxiliary variable that satisfies the following conditions.
[Equation 9]
Auxiliary variables
[Expression 10]
Is also incorporated for the objective function described below.
[0078]
In addition, in 2) above, the constraint equation when the desired leave for each staff member is specified is shown. Instead of using such a constraint equation, work patterns used in other constraint equations and objective functions May be restricted. In other words, for example, when a day off corresponding to the date D of the staff member A is set as a “day off” request, the work on the date D is always “day off”, so the date D in the work pattern is “day off”. For those that are not, it is possible to exclude them from the choice of work pattern when generating the constraint equation for the staff A, that is, do not include the corresponding variable in the constraint equation and the objective function.
[0079]
In FIG. 8, an objective function is generated in S245. The objective function is expressed as follows.
## EQU11 ##
Here, each term on the right side is as follows.
[0080]
a) The value of the position of (s, i) on the variable and penalty matrix (asiSum of products (represents the sum of penalty values for each employee's condition)
[Expression 12]
b) Terms related to the condition indicating the upper limit among the conditions for each day whose weight is not absolute
[Formula 13]
c) A term related to a condition indicating a target among conditions for each day whose weight is not absolute.
[Expression 14]
d) Terms related to the condition indicating the lower limit among the daily conditions where the weight is not absolute.
[Expression 15]
[0081]
In FIG. 8, in S250, all the variables x are satisfied so as to satisfy the above constraint expressions and to minimize the value of the objective function.si0-1 values and auxiliary variable values are determined. Where the variable x to be determinedsiThe 0-1 value specifies the optimum work pattern for each staff member, as will be described later.
[0082]
Since the above constraint equation and objective function are formulated as an integer programming problem, a known method (Branch & Bound method or the like) may be used as an integer programming method for determining variable values. This makes it possible to generate an ideal work pattern set that satisfies the absolute conditions and satisfies the other conditions as much as possible.
[0083]
However, depending on the contents of various constraint equations, there is a case where a solution cannot be obtained (there is no solution). For example, if there are only two employees who have “Veteran” qualifications on a daily basis, and if both of them have the desired day off on the same day, it will be quasi-night for employees with the demand condition “Veteran” “Working as one lower limit (weight: absolute)” can never be satisfied, and there is no solution.
[0084]
Therefore, after the process of obtaining the solution, it is determined whether or not the solution is actually obtained in S260, and if the solution is not obtained, the work schedule described below is not updated.
[0085]
In integer programming, it is known that the calculation time increases when the number of variables is large. Therefore, to increase the speed, it is desirable to reduce the number of variables as much as possible. So variable xsiOf the position (s, i) on the corresponding individual evaluation matrix (asiVariable) x is greater than a certain thresholdsiCan be excluded from the constraint equation and the objective function. Ie asiIs large, the corresponding variable xsiIf 1 is set to 1, the objective function value increases, so in the first place such a variable xsiIs unlikely to be 1. Therefore, it is possible to increase the speed by not using such a variable in advance.
[0086]
In S260 of FIG. 8, when the solution is obtained in the above, one variable is set for each staff member s, and the number of staff members is determined simultaneously. Therefore, for d days starting from the date D in the work schedule, an operation for assigning a work pattern corresponding to the
[0087]
Then, as shown in FIG. 7, when such division is sequentially performed, the assignment (entry or update) to the entire work schedule is completed. The assignment for the entire work schedule is repeated until the quality of the entire work schedule satisfies a certain condition.
[0088]
As described above, if complicated and diverse allocation conditions are handled together in an unseparated state, and if an attempt is made to perform allocation processing for the entire fixed period at the same time, the amount of computation will inevitably become complicated and enormous, resulting in a decrease in allocation accuracy. It is easy to invite. On the other hand, according to the above-described embodiment, a partial range is set as an object to be allocated at a time, and each allocation candidate is provisionally individually evaluated for the first allocation condition group in the time axis direction ( The evaluation is for the entire allocation table in consideration of quality), and then the optimum combination of candidates is determined using the result of the aggregated individual evaluation and the second allocation condition group regarding the human composition. . In other words, in the solution derivation calculation, the calculation conditions are reduced by range limitation and pre-aggregation to achieve quick calculation. Then, if necessary, the entire development with division is repeated until the quality is satisfactory, and the quality of the entire work schedule is improved. Therefore, there is an advantage that a work schedule creation (support) system having high practicality and usefulness can be provided.
[0089]
As a modification, first, an individual evaluation matrix may be generated using the second allocation condition group, and the content with partial division may be determined using the individual evaluation matrix and the first allocation condition group. The above system can also be applied to the creation of other assignment tables such as work assignment tables other than work schedules.
[0090]
【The invention's effect】
As described above, according to the present invention, it is possible to quickly create an allocation table having high-quality contents.
[Brief description of the drawings]
FIG. 1 is an explanatory diagram showing an example of a work schedule created by a system according to the present invention.
FIG. 2 is a block diagram showing a preferred embodiment of the system according to the present invention.
FIG. 3 is a diagram showing types of work patterns (assignment candidates) specified by pattern (candidate) numbers.
FIG. 4 is an explanatory diagram showing an individual evaluation matrix.
FIG. 5 is a diagram for explaining a penalty calculation based on a first allocation condition group and a second allocation condition group.
FIG. 6 is a diagram illustrating a flow of determining a solution (content with partial division) based on an integer programming problem solution.
7 is a flowchart for explaining the operation of the system shown in FIG. 2;
FIG. 8 is a flowchart for explaining specific contents of S125 of FIG.
[Explanation of symbols]
22 arithmetic processing units, 24 work schedule creation program (assignment execution unit), 32 penalty calculation unit, 34 constraint expression generation unit, 36 objective function generation unit, 38 solution derivation unit, 40 evaluation value calculation unit, 42 end condition determination unit, 44 master information storage unit, 46 allocation condition storage unit, 48 work schedule storage unit, 50 individual evaluation matrix (individual evaluation result storage unit).
Claims (4)
前記一定期間内において複数の時間単位からなる部分範囲を設定する部分範囲設定手段と、
前記第1軸の方向における一連の勤務構成に関する複数の割付条件からなる第1割付条件群と、前記第2軸の方向における各時間単位のメンバー構成に関する複数の割付条件からなる第2割付条件群と、が記憶される割付条件記憶部と、
前記割付条件記憶部に記憶された第1割付条件群及び第2割付条件群を利用して、前記設定された部分範囲について勤務予定の部分割付を実行する部分割付手段と、
前記部分割付において生成される個別評価マトリクスが記憶されるマトリクス記憶部と、
を含み、
前記部分割付手段は、
前記部分範囲内において、各メンバーに対して、とり得る勤務予定の並びとして複数の割付候補を仮割り付けする仮割付手段と、
前記割付条件記憶部に記憶された第1割付条件群に基づいて、前記仮割り付けがなされた各メンバーについての各割付候補に対して前記一定期間の全体を評価対象として個別評価を行って個別評価値を演算し、これにより前記マトリクス記憶部上において前記個別評価値が記入された個別評価マトリクスを生成する個別評価手段と、
前記マトリクス記憶部に記憶された個別評価マトリクス及び前記割付条件記憶部に記憶された第2割付条件群に基づいて、前記複数のメンバーについての複数の割付候補の最適組合せを決定し、それを前記部分範囲へ割り付ける最適組合せ割付手段と、
を有することを特徴とする割付表作成システム。In a system for creating an allocation table having a first axis representing the certain period and a second axis representing the plurality of members by allocating work schedules to each unit of time within a certain period for a plurality of members constituting the organization ,
A partial range setting means for setting a partial region consisting of multiple time units Te said predetermined period in smell,
A first allocation condition group consisting of a plurality of allocation conditions relating to a series of work configurations in the direction of the first axis, and a second allocation condition group consisting of a plurality of allocation conditions relating to member configurations of each time unit in the direction of the second axis And an assignment condition storage unit for storing
Using the first assignment condition group and the second assignment condition group stored in the assignment condition storage unit, a part attaching unit that performs part assignment with scheduled work for the set partial range;
A matrix storage unit for storing an individual evaluation matrix generated in the partial division;
Including
The parting means is
Within the partial range, and the tentative allocation means for each member, be provisionally allocated a plurality of allocation candidates as a sequence of work scheduled to be taken,
Based on the first allocation condition groups stored in the assignment condition storage unit, individual I rows individual evaluation as an evaluation for the entire of the predetermined period for each allocation candidate for each member the temporary allocation is made An individual evaluation unit that calculates an evaluation value and thereby generates an individual evaluation matrix in which the individual evaluation value is written on the matrix storage unit;
Based on the individual evaluation matrix stored in the matrix storage unit and the second allocation condition group stored in the allocation condition storage unit, an optimal combination of a plurality of allocation candidates for the plurality of members is determined, and Optimal combination assignment means for assigning to the partial range;
An allocation table creation system characterized by comprising:
前記個別評価値は、前記第1割付条件群の各割付条件を違反している度合いを示すペナルティ値の総和である、ことを特徴とする割付表作成システム。The system of claim 1, wherein
The individual evaluation value is a summation of penalty values indicating the degree of violation of each allocation condition of the first allocation condition group .
前記部分範囲設定手段は、前記一定期間内において設定位置を異ならせつつ前記部分範囲を繰り返し設定し、
前記部分割付手段は、前記繰り返し指定される各設定位置において前記部分割付を実行し、これにより前記割付表に対する全体割付を完結し、
所定の終了判定条件が満たされるまで前記全体割付を繰り返し実行させる終了判定手段が設けられたことを特徴とする割付表作成システム。The system of claim 1, wherein
The partial range setting means repeatedly sets the partial range while changing the setting position within the fixed period,
The part dividing unit executes the parting at each setting position that is repeatedly specified, thereby completing the whole assignment for the assignment table,
An allocation table creating system comprising: an end determination unit that repeatedly executes the entire allocation until a predetermined end determination condition is satisfied.
当該割付表作成プログラムは、
前記一定期間内において複数の時間単位からなる部分範囲を設定する機能と、
前記第1軸の方向における一連の勤務構成に関する複数の割付条件からなる第1割付条件群と、前記第2軸の方向における各時間単位のメンバー構成に関する複数の割付条件からなる第2割付条件群と、を割付条件記憶部に記憶する機能と、
前記割付条件記憶部に記憶された第1割付条件群及び第2割付条件群を利用して、前記設定された部分範囲について勤務予定の部分割付を実行する機能と、
前記部分割付において生成される個別評価マトリクスをマトリクス記憶部に記憶する機能と、
を含み、
前記部分割付を実行する機能は、
前記部分範囲内において、各メンバーに対して、とり得る勤務予定の並びとして複数の割付候補を仮割り付けする機能と、
前記割付条件記憶部に記憶された第1割付条件群に基づいて、前記仮割り付けがなされた各メンバーについての各割付候補に対して前記一定期間の全体を評価対象として個別評価を行って個別評価値を演算し、これにより前記マトリクス記憶部上において前記個別評価値が記入された前記個別評価マトリクスを生成する機能と、
前記マトリクス記憶部に記憶された個別評価マトリクス及び前記割付条件記憶部に記憶された第2割付条件群に基づいて、前記複数のメンバーについての複数の割付候補の最適組合せを決定し、それを前記部分範囲へ割り付ける機能と、
を有することを特徴とする割付表作成プログラム。 The first axis representing the certain period and the second axis representing the plurality of members are assigned to a plurality of members that are read and executed by a computer, and assign work schedules to each unit of time within the certain period. An allocation table creation program for creating an allocation table having
The allocation table creation program is
A function of setting a partial region consisting of multiple time units Te said predetermined period in smell,
A first allocation condition group consisting of a plurality of allocation conditions relating to a series of work configurations in the direction of the first axis, and a second allocation condition group consisting of a plurality of allocation conditions relating to member configurations of each time unit in the direction of the second axis And a function for storing in the allocation condition storage unit,
A function of performing division of work scheduled for the set partial range using the first allocation condition group and the second allocation condition group stored in the allocation condition storage unit ;
A function of storing an individual evaluation matrix generated in the division with a matrix storage unit;
Including
The function to execute the division is as follows:
Within the partial range, a function for each member, be provisionally allocated a plurality of allocation candidates as a sequence of work scheduled to be taken,
Based on the first allocation condition groups stored in the assignment condition storage unit, individual I rows individual evaluation as an evaluation for the entire of the predetermined period for each allocation candidate for each member the temporary allocation is made A function of calculating an evaluation value, thereby generating the individual evaluation matrix in which the individual evaluation value is entered on the matrix storage unit;
Based on the individual evaluation matrix stored in the matrix storage unit and the second allocation condition group stored in the allocation condition storage unit, an optimal combination of a plurality of allocation candidates for the plurality of members is determined, and The ability to assign to partial ranges,
An allocation table creation program characterized by comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003155911A JP4398672B2 (en) | 2003-05-30 | 2003-05-30 | Allocation table creation system and allocation table creation program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003155911A JP4398672B2 (en) | 2003-05-30 | 2003-05-30 | Allocation table creation system and allocation table creation program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004361991A JP2004361991A (en) | 2004-12-24 |
JP4398672B2 true JP4398672B2 (en) | 2010-01-13 |
Family
ID=34050181
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003155911A Expired - Fee Related JP4398672B2 (en) | 2003-05-30 | 2003-05-30 | Allocation table creation system and allocation table creation program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4398672B2 (en) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006236173A (en) * | 2005-02-28 | 2006-09-07 | Secom Co Ltd | Roster creation system |
JP2006277060A (en) * | 2005-03-28 | 2006-10-12 | Tama Tlo Kk | Schedule preparation support system, schedule preparation method and program |
JP4455410B2 (en) * | 2005-06-02 | 2010-04-21 | 株式会社東芝 | Risk management system, simulation method and program |
JP5101203B2 (en) * | 2007-08-06 | 2012-12-19 | ウィンワークス株式会社 | Schedule table creation device, program |
JP5501421B2 (en) * | 2012-09-26 | 2014-05-21 | ウィンワークス株式会社 | Schedule table creation device, program |
KR101711914B1 (en) * | 2013-06-25 | 2017-03-03 | 주식회사 엘지화학 | An optimization method of interview schedule and the system for the same |
JP5946043B2 (en) * | 2014-01-28 | 2016-07-05 | 鉄道情報システム株式会社 | Schedule creation device, schedule creation program, and recording medium on which schedule creation program is recorded |
JP5877475B1 (en) * | 2015-07-06 | 2016-03-08 | 宮内 明 | Linkage between annual paid leave management and work schedule preparation |
JP6805103B2 (en) * | 2017-09-20 | 2020-12-23 | 株式会社東芝 | Scheduling device, scheduling method, and program |
JP7085957B2 (en) * | 2018-10-02 | 2022-06-17 | 三菱電機株式会社 | Work schedule creation device |
WO2021130841A1 (en) * | 2019-12-24 | 2021-07-01 | 日本電信電話株式会社 | Information processing device, information processing method, and program |
JP7292333B2 (en) * | 2021-08-03 | 2023-06-16 | 西日本電信電話株式会社 | Decision support device, decision support program and decision support method |
-
2003
- 2003-05-30 JP JP2003155911A patent/JP4398672B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004361991A (en) | 2004-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4398672B2 (en) | Allocation table creation system and allocation table creation program | |
US7370282B2 (en) | Grouping and displaying multiple tasks within an event object of an electronic calendar | |
Vinod et al. | Scheduling a dynamic job shop production system with sequence-dependent setups: an experimental study | |
US7478051B2 (en) | Method and apparatus for long-range planning | |
US5471408A (en) | Method for optimizing resource allocation and an apparatus using the method | |
Legrain et al. | A rotation-based branch-and-price approach for the nurse scheduling problem | |
EP1743259A4 (en) | A business method for integrating and aligning product development and brand strategy | |
Liu et al. | A heuristic algorithm combining Pareto optimization and niche technology for multi-objective unequal area facility layout problem | |
Alharkan | Algorithms for sequencing and scheduling | |
Altner et al. | A two-stage stochastic program for multi-shift, multi-analyst, workforce optimization with multiple on-call options | |
Smith | The application of an interactive algorithm to develop cyclical rotational schedules for nursing personnel | |
Archer et al. | A decision support system for project portfolio selection | |
Abello et al. | Using the k-chaining approach to solve a stochastic days-off-scheduling problem in a retail store | |
JP2002279132A (en) | Personnel posting system and personnel posting program | |
Awad et al. | Proctor assignment at Carleton University | |
US7840933B2 (en) | Software application management for distributing resources and resource modeling | |
US20230061899A1 (en) | Dynamic allocation of human resources for efficient project management | |
JP4987275B2 (en) | Production scheduling apparatus, production scheduling method, and program | |
JPH09183044A (en) | Preparation of production planning | |
Kurbel et al. | Integrating intelligent job-scheduling into a real-world production-scheduling system | |
Lakatos | Time Management in Institutions-A Managerial Approach | |
JPH1086044A (en) | Worker's discretion utilization schedule planning method and device therefor | |
Beauregard | A multi-criteria performance study of lean engineering | |
JP7466140B2 (en) | Work shift schedule creation device and program | |
Mauergauz | Dynamic Pareto-optimal group scheduling for a single machine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060412 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081210 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090113 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090316 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090929 |
|
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: 20091023 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121030 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4398672 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: 20121030 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131030 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |