(57)【要約】【課題】複数のスタッフに対して様々な時間長をもった複数の勤務項目が割り付けられる勤務表を効率的に作成できるようにする。また、人為的な割り付けと自動的な割り付けとを整合させる。【解決手段】勤務項目リスト１４から、自動割付が指定されている勤務項目群２０’が選択され、それらに基づいて勤務項目組合せリスト２８が生成される。一方、仮勤務表３４上には、セグメントマトリクスが定義される。それを構成する各割付セグメントは所定の時間単位（例えば日）に相当する。各勤務項目組合せは、各割付セグメントに割り付け可能な１又は複数の勤務項目で構成される。手動割付がなされた後、自動割付の対象となる各割付セグメントに対して割付候補が自動割付される。仮勤務表について計算される評価値が所定の終了条件を満足するまで、自動割付が繰り返し実行される。【選択図】図１
2006236173.tif 000002
【特許請求の範囲】
【請求項１】
一定期間にわたって複数の勤務者に対してそれぞれ勤務項目の並びを設定することにより勤務表を作成する勤務表作成システムにおいて、
前記一定期間における所定の時間単位ごとに画定され且つ勤務者ごとに画定される複数の割付セグメントを有するセグメントマトリクスを構成するセグメントマトリクス構成手段と、
前記所定の時間単位内に割付可能な１又は複数の勤務項目からなる割付候補を生成し、これにより複数の割付候補で構成される割付候補リストを生成する割付候補生成手段と、
前記セグメントマトリクスにおける各割付セグメントに対して前記割付候補リストから選択された割付候補を割り付けて割付結果を評価する割付評価処理を繰り返し実行することによって、前記勤務表を作成する勤務表作成手段と、
を含むことを特徴とする勤務表作成システム。
【請求項２】
請求項１記載のシステムにおいて、
前記割付評価処理による自動割付に先立って、前記割付セグメントに対して勤務項目を固定的に設定する手動割付を行うためのユーザー割付手段を含み、
前記勤務表作成手段は、
前記セグメントマトリクス上において前記手動割付の結果に基づいて前記自動割付の対象となる未確定状態の各割付セグメントを特定し、前記未確定状態の各割付セグメントに対して前記自動割付を実行する割付実行部と、
前記自動割付後のセグメントマトリクスの内容を評価する評価部と、
を含むことを特徴とする勤務表作成システム。
【請求項３】
請求項２記載のシステムにおいて、
前記手動割付では、当該手動割付により勤務項目が設定された割付セグメントに対して全部固定属性又は部分固定属性を指定可能であり、
前記割付実行部は、前記全部固定属性が指定された割付セグメントを前記自動割付の対象から除外し、前記手動割付がなされていない割付セグメント及び前記部分固定属性が指定された割付セグメントを前記自動割付の対象として特定する、
ことを特徴とする勤務表作成システム。
【請求項４】
請求項２記載のシステムにおいて、
前記評価部は、前記手動割付の割付結果及び前記自動割付の割付結果を総合評価する、
ことを特徴とする勤務表作成システム。
【請求項５】
請求項１記載のシステムにおいて、
前記割付候補生成手段は候補生成条件群に従って各割付候補を生成し、
前記候補生成条件群には、勤務項目間での重複禁止条件及び勤務項目間での空き時間条件が含まれる、
ことを特徴とする勤務表作成システム。
【請求項６】
一定期間にわたって複数の勤務者に対してそれぞれ勤務項目の並びを設定することにより勤務表を作成するシステムにおいて実行され、前記システムに複数の工程を実行させるプログラムであって、
前記複数の工程には、
前記一定期間における所定の時間単位ごとに画定され且つ勤務者ごとに画定される複数の割付セグメントを有するセグメントマトリクスを構成する工程と、
前記所定の時間単位内に割付可能な１又は複数の勤務項目からなる割付候補を順次生成し、これにより複数の割付候補で構成される割付候補リストを生成する工程と、
前記セグメントマトリクスにおける各割付セグメントに対して前記割付候補リストから選択された割付候補を割り付けてその割付結果を評価する割付評価処理を繰り返し実行することにより、前記勤務表を作成する工程と、
が含まれることを特徴とする勤務表作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は勤務表作成システムに関し、特に、複数のスタッフ（勤務者）に対してそれぞれ勤務項目の並びを設定して一定期間の勤務表を作成するシステムに関する。
【背景技術】
【０００２】
レストラン、コンビニエンスストア、コールセンター、工場、病院などにおいては、複数のスタッフによる交代制の勤務が行われている。そのために各スタッフごとの勤務スケジュールを記載した勤務表が事前に作成される。勤務表の作成に当たっては、多様な割付条件を考慮する必要があるため、作者者の負担は非常に大きい。そこで、その作業を支援しあるいは自動化するための勤務表作成システム（あるいはスケジュール作成システム）が提案されており、また、それを具現化した幾つかのソフトウエア製品が提供されている。例えば、非特許文献１に記載された方法では、多数の複雑な割付条件を満足する解を得るためのアルゴリズムとして「遺伝的アルゴリズム」が利用されている。特許文献１に記載されたシステムでは「整数計画法」が利用されている。
【０００３】
例えば、病院における看護師の勤務表などにおいては、一般に、各スタッフに対して１日当たり１種類の勤務が割り当てられる。具体例としては、図１３の（Ａ）に示されるように、勤務表の各セル（日に相当）に、日勤、準夜勤、深夜勤などの勤務項目（図示の例では勤務項目を示すマーク）が記入される。その勤務表において、横軸は時間軸であり、縦軸にはスタッフが列記されている。これに関し、図１３（Ｂ）には、各勤務項目についてマーク、名称及び勤務時間帯が示されている。ここでは、割付の観点から、勤務項目が狭義の勤務の他に有給休暇などを含む広義の意味で用いられている。以下、この図１３の（Ａ）に示すような勤務表を便宜上「第１種の勤務表」と称することにする。
【０００４】
一方、業種によっては、各スタッフに対して１日当たり時間長が異なる様々な勤務項目を組み合わせて割り付けることが求められる。具体例としては、図１４に示されるような勤務項目リストが定められている場合に、図１５に示されるような勤務表が作成される。図１４においては、各勤務項目についてマーク、名称、勤務時間帯及び備考（ここでは割当条件）が示されている。図１５に示す勤務表において、横軸は時間軸であり、縦軸にはスタッフが列記されている。その勤務表において、各スタッフについては、時間軸方向に複数の勤務項目の並びが設定されているが、図１３の（Ａ）に示した第１種の勤務表とは異なり、各スタッフについて、日ごとに複数のセルが存在し、しかも各セルの時間長は必ずしも一定ではない。つまり、この種の勤務表では、個々のスタッフに対して区々の時間長をもった複数の勤務項目からなる並びが割り付けられて、各スタッフの１日の勤務スケジュールが構成され、更に、その集合として勤務表が構成されている。以下、このような勤務表を便宜上「第２種の勤務表」と称することにする。
【０００５】
図１３の（Ａ）に示したような第１種の勤務表を作成するシステムをそのまま利用して図１５に示したような第２種の勤務表を作成することはできない。第２種の勤務表の作成に当たっては、各勤務項目についての時間長が一定でないために、個々のスタッフごとに勤務時間帯の重複や過剰な空き時間を防止するなどのより細かい調整が必要となる。なお、従来の一般的な手法を単純に拡張して上記第２種の勤務表を作成することも不可能ではないが、その場合には、かなり複雑な演算処理が必要となり、迅速に勤務表を作成できなくなるという問題が生じる。
【０００６】
特許文献２には、第２種の勤務表の作成に関し、１日に時間長の異なる複数の勤務項目を割り付ける方法が記載されている。かかる方法は、１ヶ月の勤務表作成に関して、「月間計画」と「日時処理」の２段階のステップによって構成される。前者の月間計画においては、社員の希望や１日ごとの全体の作業量から、各日付に割り当てる従業員が確保され、その上で、後者の日時処理において、各日付に、確保された従業員に対して作業項目（勤務項目）が割り当てられる。具体的には、特許文献２の図１０に示されるように、時間長の異なる複数の勤務項目に対し、優先度が高い勤務項目から順に選択し、選択された勤務項目に対し所定条件を満たす従業員を割り付けていくものである。ここで、割付が不可能な場合には、条件を緩和した上で再割付が行われる。
【０００７】
【非特許文献１】山村他、第４章  遺伝的アルゴリズムによるナーススケジューリング、遺伝的アルゴリズム２、産業図書、１９９５年
【特許文献１】特開２００４‐３６１９９１号公報
【特許文献２】特開２００３−００６３９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記の特許文献２に記載された方法では、条件を緩和したとしても、その条件を満たす従業員がいなければ解が得られなくなる可能性がある。勤務項目の数や条件が多くなると、この傾向は強くなり、最終的には、既定の勤務時間を大幅にオーバーする割り付けがなされてしまう従業員が出てくる可能性がある。また、割り付けられた結果が最適な解であるかどうかがわからないという問題がある。
【０００９】
本発明の目的は、複数のスタッフに対して様々な時間長をもった複数の勤務項目が割り付けられる勤務表を効率的に作成できるようにすることにある。
【００１０】
本発明の他の目的は、複数のスタッフに対して様々な時間長をもった複数の勤務項目が割り付けられる勤務表について割付品質を向上することにある。
【００１１】
本発明の他の目的は、複数のスタッフに対して様々な時間長をもった複数の勤務項目が割り付けられる勤務表の作成に当たって、人為的な割り付けと自動的な割り付けとを整合させることにある。
【課題を解決するための手段】
【００１２】
（１）本発明は、一定期間にわたって複数の勤務者に対してそれぞれ勤務項目の並びを設定することにより勤務表を作成する勤務表作成システムにおいて、前記一定期間における所定の時間単位ごとに画定され且つ勤務者ごとに画定される複数の割付セグメントを有するセグメントマトリクスを構成するセグメントマトリクス構成手段と、前記所定の時間単位内に割付可能な１又は複数の勤務項目からなる割付候補を生成し、これにより複数の割付候補で構成される割付候補リストを生成する割付候補生成手段と、前記セグメントマトリクスにおける各割付セグメントに対して前記割付候補リストから選択された割付候補を割り付けて割付結果を評価する割付評価処理を繰り返し実行することによって、前記勤務表を作成する勤務表作成手段と、を含むことを特徴とする。
【００１３】
上記構成によれば、時間軸上において勤務者（スタッフ）ごとに複数の割付セグメント（割付単位）が定義される。ここで各割付セグメントは時間軸上における所定の時間単位に相当する。これにより、勤務表（より正確には割付前勤務表）上において、複数の割付セグメントを有するセグメントマトリクスが構成される。そのようなセグメントマトリクスを予め作成して保存しておくようにしてもよいし、それをその都度作成するようにしてもよい。割付セグメントの時間長つまり所定の時間単位は、例えば１日であるが、業種ごとに最適な時間単位を定めることができる。例えば、半日、１週間、１０日などであってもよい。その時間単位をユーザー指定できるように構成するのが望ましいが、何らかの基準に基づいて時間単位を自動設定するようにしてもよい。一方、個々の割付セグメントへの自動的な割り付けのために、その割付に先立って割付候補リストが用意される。その割付候補リストは、複数の割付候補で構成され、各割付候補は、上記の所定の時間単位に割り付けることが可能な１つの勤務項目又は複数の勤務項目の並びとして構成される。個々の割付セグメントへの割付候補の自動割り付けと割付結果の評価とからなる自動的な割付評価処理が繰り返し実行される。これにより勤務表の割付品質を向上させ、最終的に勤務表が完成する。
【００１４】
以上のように、時間長が異なる複数の勤務項目を勤務表に割り付ける場合であっても、これから作成しようとする勤務表上に内在する各スタッフ共通の時間的区切り（上記の所定の時間単位）を見出しあるいは認定し、それを基礎としてセグメントマトリクスを定義すると共に、所定の時間単位に当て嵌め可能な複数の割付候補を生成しておけば、シンプルな割付演算で迅速に勤務表を作成することが可能となる。本発明によれば、上記第２種の勤務表の作成に当たって、上記第１種の勤務表を作成する様々な手法を応用することも可能となるので、既存の技術あるいはソフトウエア製品の発展的利用を期待できる。
【００１５】
（２）望ましくは、前記割付評価処理による自動割付に先立って、前記勤務表に対して勤務項目を固定的に設定する手動割付を行うためのユーザー割付手段を含み、前記勤務表作成手段は、前記セグメントマトリクス上において前記手動割付の結果に基づいて前記自動割付の対象となる未確定状態の各割付セグメントを特定し、前記未確定状態の各割付セグメントに対して前記自動割付を実行する割付実行部と、前記自動割付後のセグメントマトリクスの内容を評価する評価部と、を含む。この構成によれば、手動割付の結果に基づいて自動割付を行う対象が特定され、その対象に対して自動割付が行われる。評価部は、自動割付後のセグメントマトリクスの内容つまり評価対象となる作成途中の勤務表について所定方法に従って評価を行う。これにより、手動割付と自動割付とを両立させることができ、また自動割付対象を絞り込んで勤務表について最適解の探索を効率的に行える。
【００１６】
望ましくは、前記手動割付では、当該手動割付により勤務項目が設定された割付セグメントに対して全部固定属性又は部分固定属性を指定可能であり、前記割付実行部は、前記全部固定属性が指定された割付セグメントを前記自動割付の対象から除外し、前記手動割付がなされていない割付セグメント及び前記部分固定属性が指定された割付セグメントを前記自動割付の対象として特定する。この構成によれば、割付セグメントの全体が既に確定しているもの（全部固定属性をもった割付セグメント）を除き、各割付セグメントが自動割付の対象となる。ここで、部分固定属性は、割付セグメント中の一部分（一部時間帯）についてのみ手動割付が行われ、それ以外の空き部分について自動割付を許容する属性である。つまり、割付セグメントを単位として自動割付を行う場合において、手動割付が割付セグメント内の一部についてだけ行われた場合においても、空き部分を割付対象とすることが可能となる。よって、ユーザーにとっては割付セグメントを格別意識することなく手動割付を行えるという利点がある。上記構成によれば、割付セグメントという大まかな時間単位を設定した場合においても、その時間単位内における細かい手動割付を許容できるので（自動割付の補完的利用が可能であるので）、実用的価値が高い。
【００１７】
望ましくは、前記評価部は、前記手動割付の割付結果及び前記自動割付の割付結果を総合評価する。更に時間的に前の勤務表の全部又は一部を考慮して、つまり、勤務表間のつながり関係を考慮して、評価を行うのが望ましい。
【００１８】
望ましくは、前記割付候補生成手段は候補生成条件群に従って各割付候補を生成し、前記候補生成条件群には、勤務項目間での重複禁止条件及び勤務項目間での空き時間条件が含まれる。割付候補の生成にあたっては、望ましくは、勤務項目間でオーバーラップが生じていないこと、及び、勤務項目間での空き時間が不適切（例えば過度に小さい又は大きいもの）でないことが求められる。このように割付候補の生成にあたって一定条件を考慮することにより、割付価値の無い候補が多数生成されてしまう問題を未然に防止でき、つまり割付候補リストを適度の規模にして迅速に勤務表の最適解を求めることが可能となる。なお、最適解といっても厳密に最適な解を求める必要はなく、ユーザーの要望する品質が得られた段階をもって最適解としてよい。そのために、最適解の探索条件について適当な終了条件を定めるのが望ましい。
【００１９】
（３）本発明に係るプログラムは、一定期間にわたって複数の勤務者に対してそれぞれ勤務項目の並びを設定することにより勤務表を作成するシステムにおいて実行され、前記システムに複数の工程を実行させるプログラムであって、前記複数の工程には、前記一定期間における所定の時間単位ごとに画定され且つ勤務者ごとに画定される複数の割付セグメントを有するセグメントマトリクスを構成する工程と、前記所定の時間単位内に割付可能な１又は複数の勤務項目からなる割付候補を順次生成し、これにより複数の割付候補で構成される割付候補リストを生成する工程と、前記セグメントマトリクスにおける各割付セグメントに対して前記割付候補リストから選択された割付候補を割り付けてその割付結果を評価する割付評価処理を繰り返し実行することにより、前記勤務表を作成する工程と、が含まれることを特徴とする。
【００２０】
このプログラムは、望ましくは、パーソナルコンピュータ、ネットワーク上のサーバー・クライアントなどの情報処理システムで実行される。上記第１種の勤務表を作成するプログラムのベースとし、それに対して割付セグメント定義モジュール及び割付候補生成モジュールなどの機能を付加することにより、上記のプログラムを構成することも可能である。割付及び評価を繰り返し行って勤務表の内容を優良化して最終的に完成された勤務表を得る手法（最適解の探索方法）としては後述するように各種の公知手法を利用できる。
【発明の効果】
【００２１】
以上説明したように、本発明によれば、複数のスタッフに対して様々な時間長をもった複数の勤務項目が割り付けられる勤務表を効率的に作成できる。本発明によれば、複数のスタッフに対して様々な時間長をもった複数の勤務項目が割り付けられる勤務表について割付品質を向上できる。あるいは、本発明によれば、複数のスタッフに対して様々な時間長をもった複数の勤務項目が割り付けられる勤務表の作成に当たって、人為的な割り付けと自動的な割り付けとを整合させることができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の好適な実施形態を図面に基づいて説明する。
【００２３】
（１）実施形態の概念的説明
図１には、本発明に係る勤務表作成システムの全体的構成が概念図として示されている。この勤務表作成システムは、図１５に示したような勤務表（第２種の勤務表）を作成するシステムであり、様々な業種で用いることができる。図１において、勤務表作成システムは図示の例ではデータ格納部１０と演算処理部１２とを有する。
【００２４】
データ格納部１０には、勤務項目リスト１４、割付条件群１６及び実勤務表１８などが格納される。勤務項目リスト１４は、勤務表に割付可能なすべての勤務項目で構成される。それらの具体的内容については後に図３などを用いて詳述するが、各勤務項目には、属性として、自動割付指定の有無が設定される。符号２０は自動割付指定ありの勤務項目集団を示し、符号２２はそれ以外の自動割付指定なしの勤務項目集団を示している。このような分類を行うことによって、後述するように、勤務項目組合せリスト（割付候補リスト）の内容を優良化でき、またそれを構成する勤務項目組合せ数（割付候補数）を削減できる。割付条件群１６は後述するように多数の割付条件で構成される。実勤務表１８には、最終的に、後に詳述する仮勤務表３４の内容が反映され、それが完成後の勤務表を構成する。本実施形態において実勤務表１８及び仮勤務表３４はそれぞれ電子的なワークシート上に構成されるテーブルに相当する。本実施形態では、仮勤務表３４についての自動割付に先立って初期状態の実勤務表１８に対してユーザーによる手動割付が行われる。その内容は実勤務表１８上に登録され、仮勤務表３４の作成に当たって、その内容が適宜参照される。なお、現在作成している勤務表を評価するために、少なくとも前回使用した勤務表の全部又は一部（例えば現在作成している勤務表に繋がる後の部分）をデータ格納部１０上に保存しておくのが望ましい。符号３３は、手動割付を行うための手入力を示している。上記の手動割付及び自動割付の関係について更に説明すると、手入力３３により、実勤務表１８上における任意の箇所に、任意の１又は複数の勤務項目を固定的に設定することが可能である。自動割付に当たっては手動割付によって指定された内容が優先、尊重される。本実施形態では、自動割付に当たって、仮勤務表３４を介して、実勤務表１８における手動設定内容が参照される。これにより、仮勤務表３４における各割付セグメントについて、手動割付に係る属性や状況を認識することが可能である。後述するように、実勤務表１８と仮勤務表３４とを一体化してもよい。上記の他にもデータ格納部１０には各種の情報が格納されているが、図１においてはそれらが図示省略されている。
【００２５】
演算処理部１２は各種の機能を有する。その内で代表的な機能を説明すると、符号２４で示されるように、勤務項目リスト１４の内で自動割付指定ありの勤務項目集団２０が選択（抽出）され（それが図１に符号２０’で示されている）、その勤務項目集団２０’に基づいて、符号２６で示されるように、勤務項目組合せリスト（割付候補リスト）２８が生成される。その場合、符号２７で示されるように、割付条件群１６の内で割付候補生成に関わる１又は複数の割付条件が参照される。勤務項目組合せリスト２８は、複数の勤務項目組合せで構成され、各勤務項目組合せはそれぞれ仮勤務表３４への割付候補であって、所定の時間単位（本実施形態では１日）に割り付け可能な１又は複数の勤務項目で構成されるものである。ちなみに、互いに構成要素は同一であるが並び（順列、配列）が異なる複数の勤務項目組合せは互いに別の勤務項目組合せとして認識される。符号２７で示されるように、勤務項目組合せリストの生成時に、割付条件群１６の全部又は一部が参照される。
【００２６】
一方、セグメントマトリクス構成部３０により、仮勤務表３４上においてセグメントマトリクスが定義される。あるいは、そのようなセグメントマトリクスが画定された勤務表として仮勤務表３４が構成される。仮勤務表３４は最終的な勤務表を作成する過程で試行錯誤的に繰り返し修正される暫定的な勤務表である。セグメントマトリクスは、複数の割付セグメントの二次元配列として構成され、各割付セグメントは所定の時間単位を有する一定の割付単位である。つまり、勤務表を作成すべき一定期間が所定の時間単位をもって複数に区分され、これにより勤務者ごとに時間軸方向に複数の割付セグメントが画定される。従来のようにセルを割付単位として自動割付を行う場合、各セルの時間長が不定の場合には、その自動割付が困難となるが、本実施形態では、１又は複数のセルを包含する、一定長をもった割付セグメントという固有の割付単位を導入することにより、本来的に不定形処理が必要な問題に対して定形処理を適用することが可能となる。
【００２７】
すなわち、複数のスタッフに対して様々な時間長をもった複数の勤務項目が割り付けられる勤務表（第２種の勤務表）において、それ全体として見た場合、各スタッフ間で共通の時間的区切りが存在すれば、その共通の時間的区切りを所定の時間単位として認識して、それを割付単位として利用することが可能となる。つまり、画一的なセグメントマトリクスを基礎として自動割付を行うことが可能である。その前提として、上述した各勤務項目組合せは、そのような所定の時間単位を基準として、そこに割付可能な候補として生成される。以上のように、勤務表上に最終的に設定されるセル配列の上位区分概念としてセグメントマトリクスを定義し、同時に、それに割り付ける候補の集合を定義しておけば、第２種の勤務表であっても第１種の勤務表と同様に自動割付を行うことが可能となる。
【００２８】
以上を前提として、符号３２で示されるように、演算処理部１２の自動割付評価機能により、仮勤務表３４上における割付可能な（つまり未確定状態の）各割付セグメントに対して、勤務項目組合せリスト中のいずれかの勤務項目組合せが仮に割り付けられる。仮勤務表３４に対する１つの（又は複数の）勤務候補の組合せの自動割付の後、符号３６で示されるように、評価計算部３５が仮勤務表３４の内容を評価する。その場合、符号３８で示されるように割付条件群１６の全部又は一部が参照され、また符号４０で示されるように、必要に応じて、実勤務表１８の内容が参照される。その場合、例えば、手動設定の内容や前回利用された勤務表などが参照される。いずれにしても、評価計算部３５は、手動割付及び自動割付の内容を総合評価する。評価計算部３５の評価結果が一定の条件を満足しない場合、再度、仮勤務表３４に対する自動割付評価処理が繰り返し実行される。そのような過程が反復されて最終的に仮勤務表３４の設定内容が満足できるものとなった場合、符号４２で示されるように、その仮勤務表３４の自動割付内容が実勤務表上に反映（コピー）される。
【００２９】
以上のように、時間長が異なる複数の勤務項目を勤務表に割り付ける場合であっても、勤務表上から見出される共通の時間的区切りを利用し、それを基準として割付セグメントを定義すると共に、それに適合する複数の勤務項目組合せを生成しておけば、シンプルな割付演算をもって迅速に勤務表を作成できる。なお、勤務表上の一部に所定の時間単位で区切れない特異部分が存在する場合、それについては例外的処理を適用してもよい。例えば、その特異部分に対しては、手動割付で対処してもよく、あるいは、別の割付アルゴリズムを適用してもよい。
【００３０】
以下、図２以降の各図を参照しつつ、本実施形態に係る勤務表作成システムについてより詳細に説明することにする。
【００３１】
（２）実施形態に係るシステムの全体的説明
図２には、勤務表作成システムの構成例が示されている。このシステムは、例えば、一般的な計算機（パーソナルコンピュータ等）上に構築され、上記の各機能は当該システム上で動作するプログラムとして実現される。既に説明したように、勤務表作成システムは、データ格納部１０及び演算処理部１２を有する。演算処理部１２は、上記各機能を実現するプログラム５６及びＣＰＵなどのハードウエアを有する。データ格納部１０は、ハードディスクなどの外部記憶装置あるいは主記憶に相当する。データ格納部１０には、図示のように、マスター情報記憶部５２、割付条件群記憶部５０、及び、実勤務表記憶部５４などを有する。
【００３２】
マスター情報記憶部５２には、勤務表を作成する上でのマスター情報となる「勤務情報」、「スタッフ情報」、「カレンダー情報」などが登録される。勤務情報には勤務項目リストが含まれる。図３には勤務項目リスト１００の主要部分が例示されており、その勤務項目リスト１００には、勤務名称、勤務時間帯、自動割付指定の有無などが含まれる。更に、図示されていないが、勤務項目を示すマークも含まれる。そのマークは、勤務表上に表示される勤務項目の名称（勤務名称）を示す略号である。勤務時間帯は、一般に開始時刻と終了時刻とで定義され、その他、実働時間や休憩時間等なども勤務時間情報として管理される。なお、既に説明した図１においても、勤務項目リスト１４の一例が示されている（図３の勤務項目リスト１００と図１の勤務項目リスト１４はそれらの表現に若干の差異があるものの、それらのリストの実体的構成は同一である）。
【００３３】
図３に示す勤務項目リスト１００上において、各勤務項目についての自動割付指定の有無は、自動割付に先立って勤務項目組合せ（割付候補）を生成する場合に、その要素として当該勤務項目を利用するか否かを指定する属性である。つまり、その属性が「有」の勤務項目からなる集合１０２が（図１において符号２０参照）、勤務項目組合せ生成処理に利用され、それ以外の勤務項目からなる集合１０４（図１において符号２２参照）は勤務組合せ生成処理には利用されない。例えば、曜日別にまたは特定日に必要人数が決まっている場合や公休日など、定期的に発生する事項について自動割付指定として「有」が設定され、一方、不定期に発生する研修業務やスタッフが希望する有給休暇等については自動割付指定として「無」が設定される。その有無はユーザーにより指定することが可能であるが、デフォルトとしてプリセットされていてもよい。
【００３４】
図２のマスター情報記憶部５２に含まれるスタッフ情報には、図示されていないスタッフリストが含まれる。そのスタッフリストには、スタッフの氏名、ＩＤ番号（社員番号等）、資格やスキル、所属グループ等が含まれる。更に、そのマスター情報記憶部５２に記憶されたカレンダー情報には、日付、曜日、営業日、休業日などの情報が含まれる。
【００３５】
図２の割付条件群記憶部５０には、勤務表を作成するために必要となる多様な割付条件が記憶される。各割付条件に対して、後述するように、それぞれ「重み（重み値）」が指定されている。割付条件の重みは、自動割付評価処理において、その割付条件をどの程度重要視するかを示すインデックスであり、その重みは「絶対」というラベルあるいは数値（度合い）として与えられる。重みが「絶対」として与えられたラベルは、その条件を満たすことが必須とされる。以下に割付条件の具体例を示す。
【００３６】
ａ）時間軸方向における各スタッフの勤務構成に関する割付条件
これは、勤務表における時間軸方向（例えば月間）の割付条件であり、各スタッフが当該条件を満たすか否かが個別的に判断される。例えば「供給条件」、「パターン条件」、「間隔条件」がある。なお、割付単位内における複数の勤務項目の時間軸方向の並びについては、後述するように、１日の勤務スケジュールに関する割付条件が定められている。
【００３７】
「供給条件」は、指定期間（例えば１ヶ月）内でのスタッフの勤務回数または実働時間の上限、下限、目標回数に関する条件である。例えば、以下のように定められる。
・公休の回数は１ヶ月間で下限８回とする（重み：２０）
・スタッフＢの夜勤の回数は１ヶ月に上限６回とする（重み：１００）
【００３８】
「パターン条件」は、各スタッフについての連続した勤務項目の並びの中で、回避したい並びを定める条件である。例えば、以下のように定められる。
・残業について、早出日勤との並びは回避する（重み：３００）
・公休について、遅出日勤との並びは回避する（重み：５０）
【００３９】
「間隔条件」は、各スタッフについて、勤務項目と勤務項目の間隔日数の上限、下限、目標を定めた条件である。例えば、以下のように定められる。
・休日と休日の間隔を上限５日とする（重み：１０）
【００４０】
ｂ）各日ごとのスタッフ構成に関する割付条件（日ごとの割付条件）
これは、勤務表における縦の割付条件であり、つまり、勤務表の中で１日ごとに当該条件を満たすか否かが判断される。例えば「需要条件」、「スタッフ組合せ条件」がある。
【００４１】
「需要条件」は、スタッフの資格等を考慮しつつ、勤務項目ごとに１日のスタッフの上限、下限、目標の人数を定める条件である。例えば、以下のように定められる。
・９：００〜１２：００の電話対応勤務を１０名とする（重み：絶対）
・９：００〜１２：００の電話対応勤務について、
１名以上「ベテラン」のスキルを持つスタッフとする（重み：絶対）
・１３：００〜１５：００の受付勤務について、
「新人」のスキルを持つスタッフを１名以下とする（重み：１００）
【００４２】
「スタッフ組合せ条件」は、あるスタッフについて、同じ業務を一緒に行いたい、または行いたくない他のスタッフを定める条件である。
・スタッフＡは、受付勤務でスタッフＢ、Ｃ、Ｄとは組まない（重み：１００）
・スタッフＥは、電話対応勤務でスタッフＦ、Ｇ、Ｈ、Ｉのいずれかと組む
（重み：絶対）
【００４３】
ｃ）１日の勤務スケジュールに関する割付条件（割付単位ごとの割付条件）
これは、割付セグメントの時間単位である１日について、各スタッフに割り付けられる勤務スケジュールに関する割付条件である。例えば、「スタッフ出勤時間帯条件」、「勤務時間間隔条件」、「勤務項目組合せ条件」がある。
【００４４】
「スタッフ出勤時間帯条件」は、各スタッフの出勤時間帯（出社〜退社、曜日等）に関する条件である。例えば、以下のように定められる。
・スタッフＡの勤務時間帯は９：００〜１８：００（重み：５００）
・スタッフＢの勤務時間帯は平日のみ９：００〜１８：００（重み：５００）
・スタッフＣの勤務時間帯は月曜のみ９：００〜１８：００（重み：５００）
【００４５】
「勤務時間間隔条件」は、１日の中に割当てられる勤務項目間の間隔（空き時間、時間帯の重複）の上限や下限の条件である。例えば、以下のように定められる。
・勤務項目間での勤務時間帯の重複の禁止（重み：絶対）
・勤務項目間の間隔の上限を１時間とする（重み：５００）
【００４６】
「勤務項目組合せ条件」は、１日の中に割当てられる勤務項目組合せについての条件である。例えば、以下のように定められる。
・勤務Ａと勤務Ｂの両方を１日に割り当てない（重み：３００）
【００４７】
図２における実勤務表記憶部５４には、所属スタッフの指定期間分（１ヶ月等）の勤務予定としての実勤務表、及び、指定期間より過去分の実勤務表が格納される。仮勤務表と同様に、自動割付評価処理においては、実勤務表上においても、セグメントマトリクスが定義あるいは認識される（但し、本実施形態では各割付セグメントを日付とスタッフによって定義できるので特別な演算は必ずしも不要である）。その中の任意の割付セグメント（割付単位）の全体又は一部に対して、自動割付評価処理に先立って、ユーザーの手入力により、１又は複数の勤務項目を固定的に指定することが可能である。その際、当該割付セグメントに対し、自動割付評価処理で参照される属性がユーザーにより（場合によっては自動的に）指定される。その属性としては本実施形態において次の３つが用意されている。
【００４８】
ａ）個々の勤務に対する固定指定（「勤務の固定指定」）
これは、１日中のある部分的な時間帯において、あらかじめ決まっている研修や会議の予定等を部分的に指定するための属性である。割付セグメントにおいて部分的に固定指定がなされた勤務項目については、後の自動割付処理によって変更されない（つまり、上書きが部分的に禁止される）。但し、その１日の中の空いている時間帯には、割付条件を考慮した上で、他の勤務項目が（追加で）自動的に割付けられることがある。例えば、半日有休の希望があり、残りの時間帯に勤務項目を自動的に割り付けたい場合に、この指定がなされる。
【００４９】
ｂ）割付単位全体に対する固定指定（「割付単位の固定指定」）
これは、あるスタッフの特定日のスケジュールがすべて確定している場合（スタッフの有休等の希望等も含む）などに、それに該当する割付セグメントについて全体的に指定される属性である。この割付単位の固定指定がなされた割付セグメントについては、上記の「勤務の固定指定」の場合と同様、自動割付処理によってその登録内容が変更されない（つまり、それに対する上書きが全面的に禁止される）。つまり、この「割付単位の固定指定」の場合には、割付セグメント中に空き時間帯があったとしても、他の勤務項目を追加で割り付けることができず、その点で上記の「勤務の固定指定」の場合と異なる。
【００５０】
ｃ）固定指定なし：この属性が設定された割付セグメントについては自動割付処理による対象となる。
【００５１】
以上のように、割付セグメントの全体を自動割付対象から除外する指定の他に、割付セグメント中の一部を自動割付対象から除外する指定を行えるようにしたので、割付セグメントという大まかな時間単位での自動割付処理を基本としつつも、１つの割付セグメント内において、細かい手動割付と補完的な自動割付を併用することが可能となる。もちろん、そのような部分的な空き時間に対する自動割付が可能となるように、割付候補リストには時間的な隙間に当て嵌め可能な多様な割付候補が含まれる。
【００５２】
図２に示した演算処理部１２において、プログラム５６は、勤務項目組合せ生成部５８、セグメントマトリクス構成部３０、割付処理部６２、評価計算部３５などの機能を有し、それらによって仮勤務表３４が作成及び評価される。勤務項目組合せ生成部５８は、自動割付の指定がなされている複数の勤務項目を用いて、後に図４に示す勤務項目組合せリスト（割付候補リスト）を生成する。勤務項目組合せの生成については後述する。セグメントマトリクス生成部３０は、仮勤務表３４上にセグメントマトリクスを構成し、つまり、仮勤務表３４上における各スタッフごとに時間軸上に固定長をもった複数の割付セグメントを定義する。仮勤務表３４はプログラム５６の実行に際して暫定的に生成され、それは演算処理部１２における内部メモリ上に保有される。仮勤務表３４の最終的な内容は実勤務表（図１の符号１８及び図１５）上にコピーされる。その実勤務表は、表示部６６の画面上に表示される。自動割付評価処理の実行過程における仮勤務表と実勤務表の関係については後に図５を用いて詳述する。
【００５３】
割付処理部６２は、仮勤務表３４上で自動割付を実行する手段である。評価計算部３５は、割付条件群に基づいて、自動割付の結果を手動割付内容を含めて総合的に評価する手段である。その評価値の演算方法については後に図６乃至図８を用いて詳述する。仮勤務表３４の内容が徐々に優良化して、一定の終了条件を満足するまで、自動割付評価処理が繰り返される。その自動割付評価処理では、まず、仮勤務表３４において、全体的に又は部分的に自動割付可能な（未確定状態の）個々の割付セグメントに対して何らかの勤務項目組合せが割り付けられる。つまり、初期解が生成される。そして、その仮勤務表３４についての評価結果（評価値）が徐々に良くなるように、仮勤務表３４の修正と評価が繰り返される。その処理は、評価値が自動割付評価処理を終了するための所定条件を満足するまで反復して行われる。ちなみに、初期解の決め方の例として、例えば、すべての各割付セグメントに同じ勤務項目組合せを割り付ける方法、各割付セグメントにランダムに勤務項目組合せを割り付ける方法などをあげることができる。その後の自動割付評価処理に当たっては、「山登り法」、「整数計画法」、「遺伝的アルゴリズム」、「シミュレーテッドアニーリング」などの公知のアルゴリズムを利用するのが望ましい。
【００５４】
図２において、表示部６６は、液晶ディスプレイなどの表示器で構成される。その表示部６６には手動割付及び自動割付により最終的に確定された勤務表などが表示される。入力部６８は、キーボード、マウス等のポインティングデバイスで構成される。この入力部６８を用いて、各スタッフについて予め決まっている勤務予定、希望休暇日などを入力することができる。また、入力部６８を用いて、カレンダー情報やスタッフ情報などを入力することができ、また割付条件やその重みの設定を行うことができる。更にそれを用いて自動割付開始指示を入力することができる。なお、各情報については、外部とのインターフェイス６４を介してネットワークを通じて授受することができる。例えば、データ格納部１０に格納されている情報をネットワーク上のサーバーに格納するように構成してもよい。
【００５５】
（３）自動割付処理の詳細説明
上記のように、本実施形態では１日の時間長を有する各割付セグメントに割り付け可能な勤務項目組合せが自動割付評価処理に先立って生成される。各勤務項目組合せは上記のように割付候補である。各勤務項目組合せを便宜的に１つの勤務項目とみなせば、各スタッフについて１日に１つの勤務項目を割り当てる従来の手法（第１の評価表を自動作成する従来法）を利用して、第２の評価表を作成することが可能となる。上述したように、各勤務項目組合せは、勤務表の自動割付評価処理の前処理として生成され、システムの内部メモリに一時的に格納される。その際、データ格納部１０に登録されている勤務項目リスト（図３の符号１００参照）のうちで、自動割付指定が「有」のものだけが選択され、その選択された勤務項目の集団を利用して個々の勤務項目組合せが自動的に生成される。生成された複数の勤務項目組合せの一例が図４において勤務項目組合せリスト１０６として示されている。その勤務項目組合せリスト１０６について以下に説明する。
【００５６】
図４において、個々の勤務項目組合せについては、それを構成する１又は複数の要素（勤務項目）の内容が定義され、また、上書き指定の有無、ラベルなどが属性として付与あるいは管理されている。ラベルは、各勤務項目組合せの識別子である。ここで、上書き指定は、手動割付を前提として自動割付を行う場合に、両者を整合させる管理情報として利用される。具体的には、上書き指定には、本実施形態において、「追加」と「変更」の２種類の属性がある。例えば、図４に示す例において、勤務Ａのみで構成される割付候補として、上書き指定が「追加」と「変更」で２種類の勤務項目組合せが用意され、それらが使い分けられる。他の勤務項目組合せについても同様である。
【００５７】
ここで、「追加」は、実勤務表上に「勤務の固定指定」がなされている割付セグメントに対して（つまり、部分的に固定指定がなされているものに対して）、当該「追加」属性をもった勤務項目組合せを割付可能であることを示す。この場合、１つの割付セグメントにおいて、固定指定がなされていない残余の空き部分が自動割付の対象となる。一方、「変更」は、実勤務表上の「割付単位の固定指定」及び「勤務の固定指定」のいずれもがなされていない割付セグメントに対して、当該「変更」属性をもった勤務項目組合せを割付可能であることを示す。この場合、１つの割付セグメントの全体が自動割付の対象となる。
【００５８】
本実施形態において、勤務項目組合せの生成にあたっては、割付条件群の中から、勤務項目間の時間間隔や勤務項目間での重複回避などの時間的な割付条件が考慮される。つまり、それらの割付候補生成に係る割付条件を満たすように、各勤務項目組合せが生成される。その場合、それらの割付条件を考慮して、上書き指定「追加」及び「変更」の設定要否が判断される。本実施形態では、後に詳述するように、「追加」の属性を指定可能な勤務項目組合せの中で、さらに「変更」の属性を指定可能なものが特定され、それについては別途「変更」の属性も設定されている。
【００５９】
図４において、符号１０８は特別な割付候補を示す。それは、自動割付に当たっては通常の勤務項目組合せと便宜上同様に取り扱われるが、特定の実体的内容を有せず、それが割り付けられた割付セグメントについて上書きを禁止する作用をもつものである。その上書き指定の属性は「非変更」であり、そのラベルは記号「＊」である。その役割あるいは利用価値については後述する。
【００６０】
なお、本実施形態においては、個々の勤務項目組合せについて上記のような「追加」及び「変更」の属性を指定していたが、これらに限られるものではなく、各勤務項目組合せに対して、上書き指定の内容を「追加のみ可能」あるいは「追加・変更可能」とすることにより、生成する勤務項目組合せの個数を削減することも可能である。いずれにしても手動設定に係る「割付単位の固定指定」及び「勤務の固定指定」を考慮して、仮勤務表上に対する自動割付が適切になされるように、各割付セグメントの属性あるいは各割付候補の属性が管理される。
【００６１】
次に、図５を用いて、仮勤務表３４と実勤務表１８の関係について説明する。上記のように、仮勤務表３４は、自動割付評価処理の過程において、実勤務表（実勤務表データ）１８とは別に、メモリ上に一時的に作成される暫定的な勤務表である。最終的に得られる実勤務表１８は、例えば、図１５に示したように、各スタッフについて時間長の異なる複数の勤務項目の並びが設定される。つまり、１日内に時間長が異なる複数のセルが設定される。一方、仮勤務表３４は、１日を割付単位とするセグメントマトリクスとして構成される。本実施形態では、１日が実勤務表における各スタッフ間の共通の時間的区切りであり、それが割付セグメントの時間長に相当することは上述した通りである。このように、複雑な構成を有する実勤務表を直接の処理対象とせずに、シンプルに構された仮勤務表を直接の処理対象とすることにより、各種の既存の割付アルゴリズムを利用して仮勤務表を作成し、ひいては実勤務表を作成することが可能となる。
【００６２】
但し、仮勤務表３４及び実勤務表１８の区別あるいはそれらを利用した処理は演算処理上の都合によるものである。よって、何らかの形式で割付セグメントのマトリクスを構成できれば、単一のテーブルを利用して割付評価処理を遂行させることもできる。例えば、そのようなテーブルに対して手動割付を行った上で、そのようなテーブルに対して自動割付を行うこともできる。
【００６３】
図５に示す例では、実勤務表１８に、符号７４Ｂで示されるように、特定スタッフの特定日（特定の割付セグメント）に対して「勤務の固定指定」がなされている。つまり、１日の内で特定の部分的な時間帯７６に対して特定の勤務項目が手動設定によって固定的に設定されている（ここでは勤務項目Ｃが設定されている）。また、実勤務表１８上において、符号７０Ｂで示されるように、別の特定の割付セグメントには「割付単位の固定指定」がなされている。つまり、該当日の全体について固定的な設定がなされている（ここでは有給休暇が設定されている）。一方、実勤務表１８と同様にセグメントマトリクスを有する仮勤務表３４上においては、実勤務表１８の符号７４Ｂで示される割付セグメントに対応する割付セグメント７４Ａに、自動割付により上書き指定が「追加」である勤務項目組合せが割り付けられ、ここではラベルｐ１の勤務項目組合せが割り付けられている。ラベルｐ１は、勤務項目Ａのみによって構成される勤務項目組合せである（図４）。つまり、割付セグメント７４Ａ（及び７４Ｂ）内において、手動設定された勤務項目Ｃ以外の空き時間帯に、上書き指定が「追加」である勤務項目組合せが追加的に自動割付されている。仮勤務表３４において、割付セグメント７２Ａについては、それに対応する手動割付は何らなされておらず、つまり「勤務の固定指定」及び「割付単位の固定指定」のいずれの指定も存在せず、上書き指定が「変更」の勤務項目組合せが割り付けられている。ここでは、ラベルｐ２で特定される勤務項目組合せが割り付けられている。
【００６４】
一方、仮勤務表３４上において、実勤務表１８上の割付セグメント７０Ｂに対応する割付セグメント７０Ａには、上書き指定「非変更」の属性をもった特別な割付候補が設定される（それが「＊」の記号で示されている）。すなわち、実勤務表１８における割付セグメント７０Ｂについては、手動割付時に「割付単位の固定指定」がなされており、仮勤務表３４上の対応する割付セグメント７０Ａに対する自動割付に当たっては、その「割付単位の固定指定」を遵守するため、当該割付セグメント７０Ａの全体が上書き禁止とされる。このように、「非変更」の属性は、手動設定において「割付単位の固定指定」がなされた割付セグメントに対して必ず割り付けられるものである。ちなみに、「勤務の固定指定」として部分的に勤務項目が固定的に指定されている場合にも、割付候補の１つとして、「非変更」の属性をもった特別な割付候補が割り付けられるようにするのが望ましい。その場合、固定指定された勤務項目以外の空き時間に対して設定される「非変更」の属性は、当該空き時間に何も勤務項目を割り付けないことを示す。
【００６５】
以上のように、実務表１８上において手動指定が行われると、仮勤務表３４の作成時に、手動指定の内容に従って、各割付セグメントに対して適切な勤務項目組合せが設定され同時に適切な属性が設定される。
【００６６】
自動割付後の仮勤務表３４の評価に当たっては、仮勤務表３４に対して設定された各割付セグメントの勤務項目組合せ及び属性が参照され、必要に応じて、更に実勤務表１８上における対応の割付セグメントの内容が参照される。この場合、仮勤務表３４上において割付セグメントに与えられた属性が「非変更」であれば、実勤務表１８上における対応の割付セグメントの内容が参照され（符号１１０参照）、その内容が当該割付セグメントの指定内容であると認識される。仮勤務表３４上において割付セグメントに与えられた属性が「変更」であれば、そこに割り付けられた勤務項目組合せがそのまま採用される。仮勤務表３４上において割付セグメントに与えられた属性が「追加」であれば、実勤務表１８上における対応の割付セグメントの内容（「勤務の固定指定」を伴う勤務項目）が参照され（符号１１２参照）、同時に、仮勤務表３４における当該割付セグメントに追加で割り付けられた勤務項目組合せが参照され、それらの両方を結合させたものが当該割付セグメントの内容をなすものとみなされる。
【００６７】
図５に概念的に示される評価計算部３５は、以上のような参照を行い、つまり仮勤務表３４の参照及びそれを介した実勤務表１８の参照を行い、割付条件群に照らして、現在の仮勤務表の内容について評価値を数値として演算する。その詳細については後述するが、例えば、実勤務表１８上に固定的に指定された勤務項目と仮勤務表３４上に自動割付された勤務項目組合せとの間で、時間帯の重複（オーバーラップ）が発生した場合は、それがペナルティとして評価値に反映される。上記の自動割付評価処理は所定の終了条件を満たすまで繰り返される。所定の終了条件を持たした時点の仮勤務表３４の内容が実務勤務表１８へコピーされる。その際、「非変更」の属性が設定されていない各割付セグメントの内容がコピーされる。なお、実勤務表１８の参照は、評価値の計算時よりも前の時期、例えば初期解生成時などに行うようにしてもよい。
【００６８】
（４）評価処理の詳細説明
次に、評価計算部による評価値の計方法算について詳述する。評価計算部においては、自動割付の結果として作成（修正）された勤務表について評価値を計算する。ここで、評価対象となる勤務表は直接的には上記の仮勤務表であるが、より正確には、仮勤務表の内容に実勤務表上の内容を加えたもの（手動割付及び自動割付に係る勤務表）が評価対象となる。評価値は、評価対象となった勤務表上の複数の割付セグメントに何らかの勤務項目が割付けられた状態（勤務表に空白が残っている状態であってもよい）において、当該勤務表に対して１つ定められる数値であり、ここでは、その数値が小さいほど良い内容を表すものとする。つまり、評価値は、割付条件群をそれ全体としてどの程度満足するのか定量的に指標する数値である。勤務表をＸとし、その評価値（全体評価値）をＥ（Ｘ）とし、各割付条件についての評価関数をＥTYPE（Ｘ）とした場合、評価値Ｅ（Ｘ）は、以下のように全種類の評価関数ＥTYPE（Ｘ）の関数値（個別評価値）の和として定義される。ここで、各評価関数ＥTYPE（Ｘ）の関数式は、割付条件の種類によって異なるものである。
Ｅ（Ｘ）＝ΣＥTYPE（Ｘ）  ・・・（１）
【００６９】
以下に、割付条件ごとの評価値の計算方法の例を示す。
【００７０】
ａ）割付セグメントを評価単位とする評価区分
勤務表上において、スタッフと日付で特定される割付セグメントごとに、勤務内容（勤務項目の並び）が参照され、それに関わる複数の割付条件について違反があるかどうかが判断される。ここでは割付条件ごとの違反度合いがペナルティ値とされる。割付セグメントごとに複数の割付条件についてのペナルティ値が加算され、その加算値を勤務表全体について合計することによって、割付セグメントを評価単位とした評価区分における評価値が求められる。以下では、割付セグメントごとの割付条件である、スタッフ出社時間帯条件、勤務時間間隔条件および勤務項目組合わせ条件についての評価例を示す。
【００７１】
・スタッフ出社時間帯条件についての評価例
例えば「スタッフＡの勤務時間帯は、９：００〜１８：００（重み：５００）」という条件が設定されている場合において、スタッフＡについてのある割付セグメントにおいて、最初の勤務の開始時刻が８：３０であるときには、そのスタッフＡの出社時刻が３０分早まってしまうので、このスタッフ出社時間帯条件に関するペナルティ値は５００となる。同様に、その日に最後の勤務の終了時刻が退社時刻より遅い場合も、同様のペナルティ値となる。同様の計算をすべてのスタッフ出社時間帯条件及びすべての割付セグメントについて行い、全部のペナルティ値を合計したものが評価関数（スタッフ出社時間帯条件用）の値となる。
【００７２】
・勤務時間間隔条件についての評価例
例えば「勤務項目間の間隔の上限を１時間とする（重み：５００）」という条件が設定されている場合において、ある割付セグメント、勤務項目Ａ（９：００〜１１：００）と勤務項目Ｂ（１３：００〜１５：００）が割り付けられると、勤務項目間の空き時間が１１：００〜１３：００（２時間）となり、１時間を超えてしまうことになるので、この勤務時間間隔条件についてのペナルティ値は５００となる。
【００７３】
同様の計算を全ての割付セグメントに対して行い、全部のペナルティ値を合計したものが評価関数（勤務時間間隔条件用）の値となる。なお、条件が「下限○時間」、「重複禁止」の場合も、ペナルティ値として同様に重み値を用いればよい。
【００７４】
なお、割付条件の重みとして「絶対」が設定されている場合、ペナルティ値の計算において擬似的に重みとして十分大きな数（１００００など）を用いて計算するようにすれば、上記と同じ扱いで「絶対」を考慮することができる。例えば、「勤務項目間の重複の禁止（重み：１００００）」という条件があるとき、ある割付セグメントに予め手入力により、研修Ａ（１０：３０〜１５：３０）を入力していた場合、自動割付により勤務Ｂ（１３：００〜１５：００）が割り付けされると、重複が発生し、勤務時間間隔条件のペナルティ値は１００００となる。なお、ペナルティ値は、重複が発生した場合に一律に同じ値を与えてもよいし、重複条件に応じて可変させてもよい。
【００７５】
・勤務項目組合せ条件についての評価例
例えば「勤務項目Ａと勤務項目Ｂの両方を同じ日に割り当てない（重み：３００）」という条件がある場合において、ある割付セグメントに対して、勤務項目Ａと勤務項目Ｂが割り付けられた場合、条件に違反していることになるので、この勤務組合せ条件のペナルティ値は３００となる。同様の計算を全ての割付セグメントに対して行い、ペナルティ値を合計したものが評価関数（勤務組合せ条件用）の値となる。
【００７６】
なお、上記の勤務時間間隔条件と勤務項目組合せ条件に関しては、それらが絶対条件であれば、勤務項目組合せの生成段階で、そのような違反対象を生成しないようにするのが望ましい。但し、そのような場合でも、ユーザが手入力で「勤務の固定指定」を行った割付セグメントに追加的に特定の割付候補が割付られた場合は、絶対条件が禁止である場合が発生し得るので、その時はペナルティ値として評価関数に反映させる。
【００７７】
ｂ）スタッフを評価単位とする評価区分
勤務表中のあるスタッフ１名分のスケジュールを（横方向に）見て、そのスタッフに対する割付条件の違反があるかどうかが判断される。ここでは、スタッフごとの違反度合いをペナルティ値とする。このペナルティ値をスタッフごとに計算し、勤務表全体でそれらの和をとれば、スタッフを評価単位とした評価区分についての評価値が求められる。以下では、スタッフごとの割付条件である供給条件、パターン条件および間隔条件について評価例を示す。
【００７８】
・供給条件についての評価例
例えば「公休の回数は１ヶ月間で下限８回とする（重み：２０）」という条件があるとき、あるスタッフに対する１ヶ月の公休の回数合計が６回だったとすると、条件で指定された回数を２回下回っているので、この供給条件に対するペナルティ値は２×２０＝４０となる。同様の計算を全ての供給条件、すべてのスタッフに対して行い、ペナルティを合計したものが評価関数（供給条件用）の値となる。
【００７９】
なお、条件が「上限○回」の場合、ペナルティ値としては（条件を指定した回数を上回った回数）×（重み）の値を用いればよく、当該条件が「目標○回」の場合は（条件で指定した回数との差）×（重み）の値を用いればよい。
【００８０】
・パターン条件についての評価例
例えば「残業→早出日勤の並びは回避する（重み：３００）」という条件があるとき、あるスタッフについて、１ヶ月間に「残業→早出日勤」の並びが３回出現していたとすると、このパターン条件に対するペナルティ値は、３×３００＝９００となる。同様の計算を全てのパターン条件、すべてのスタッフに対して行い、ペナルティ値を合計したものが評価関数（パターン条件用）の値となる。なお、前の月から引き続く勤務表を作成する場合には、前月とまたがって出現する「残業→早出日勤」の並びも１回として数えてよい。
【００８１】
・間隔条件についての評価例
例えば「休日と休日の間隔を上限５日とする（重み：１０）」という条件があるとき、あるスタッフについて１ヶ月内に休みと休みの間隔が５日を超える箇所が２箇所出現していたとすると、間隔条件に対するペナルティ値は２×１０＝２０となる。同様の計算を全ての間隔条件、全てのスタッフに対して行い、ペナルティ値を合計したものが評価関数（間隔条件用）の値となる。なお、前の月から引き続く勤務表を作成する場合には、前月とまたがって休日間隔が５日を超える場合も１回として数えてよい。
【００８２】
ｃ）日を評価単位とする評価区分
勤務表中におけるある１日分のマスだけを（縦方向に）見て、その日について割付条件の違反があるかどうかが判断される。ここでは、日ごとの違反度合いがペナルティ値となる。日を評価単位とするすべての割付条件に対してペナルティ値を計算し、それらを日ごとに集計し、更に勤務表全体として合計すれば、日を評価単位とした評価区分についての評価値が求められる。例えば、次の通りである。
【００８３】
・需要条件についての評価例
例えば「「ベテラン」のスキルを持つスタッフに対して、電話対応勤務（９：００〜１２：００）を２名以上とする（重み：１００）」という条件があるとき、勤務表中のある日のベテランの電話対応勤務（９：００〜１２：００）の人数が１名だったとすると、条件で指定された人数を１名下回っているので、ペナルティ値は１×１００＝１００となる。同様の計算を全ての需要条件、全ての日に対して行い、ペナルティ値を合計したものが評価関数（需要条件用）の値となる。なお、割付条件が「上限○名」の場合は、ペナルティ値としては、（条件で指定した人数を上回った人数）×（重み）の値とし、それが「目標○名」の場合は（条件で指定した人数との差）×（重み）の値を用いればよい。
【００８４】
・スタッフ組合せ条件についての評価例
例えば「スタッフＡは、受付勤務でスタッフＢ、Ｃ、Ｄとは組まない（重み：１００）」という条件があるとき、勤務表中のある日にスタッフＡに受付勤務が割付けられていたとする。そのとき、同じ日にスタッフＢ、Ｃ、Ｄのうちで２名に受付勤務が割り付けられていたとすると、当該条件に対して２名分違反していることになるので、ペナルティ値は２×１００＝２００となる。このような計算を全てのスタッフ組合せ条件について行って、それにより得られる全ペナルティ値を合計したものが評価関数（スタッフ組合せ条件用）の値となる。
【００８５】
なお、スタッフごとの条件におけるペナルティ値の計算方法としては、条件違反の度合いが大きいほど大きな値をとる方法であればどのような方法でもよく、上記の例に限定されるものではない。すなわち、前述の供給条件を例にとると、条件で指定された回数を２回下回っている場合のペナルティ値として、下回った回数の２乗と重みの積、すなわち２2×２０＝８０という値を用いてもよい。また、スタッフごとの条件の種類については、上記の例以外にも多用な種類が考えられる。例えば「３連続の休日を月１回取得する」というような条件は、スタッフ毎の条件として表現しうる割付条件の一例である。この場合も、条件に違反した度合いが大きいほど値が大きくなるようなペナルティ値の計算方法を定義すれば、上記例と同様に取り扱うことができる。
【００８６】
ｄ）実際の評価例
図６には実際の評価例が示されている。ここで、（Ａ）には評価対象となる勤務表８０が示され、（Ｂ）には日ごとの各勤務項目についての集計結果が示され、（ｃ）には実働時間及び公休日数について各スタッフごとの月間の集計結果が示されている。符号８２，８４，８６で示されるように、幾つかの箇所に割付条件違反が生じている。ここで、評価値の計算上利用される「重み」は例えば図７に示すように定義される。ここで、（Ａ）には各勤務項目ごとの割付条件とそれに対応する重みが例示されている。（Ｂ）には勤務項目間の時間間隔についての割付条件とそれに対応する重みが例示されている。図８には、ペナルティ値のリストが示されている。複数のペナルティ値の合計値として、全体評価値が求められる。
【００８７】
（４）システム動作の説明
次に、図２に示したシステムの動作を図９〜図１２を用いて説明する。図９には、システム（特に図２の演算処理部１２）の全体的動作が示されている。ディスプレイ等の表示部に表示されたスタートボタンをクリックすることなどにより、本システムの動作が開始される。上述したように、勤務表の自動割付開始に先立って、手入力によって必要な勤務項目（有給休暇などを含む）がキーボード等の入力部を用いて固定的に指定される。
【００８８】
勤務表作成の開始が指示がされると、Ｓ１１において、複数の勤務項目組合せが自動的に生成され、つまり勤務項目組合せリストが自動的に生成される。これについては後に図１０を用いて詳述するが、このＳ１１では、データ格納部１０に収納されている勤務項目データが参照され、自動割付指定ありの勤務項目集団が抽出され、それに基づいて、演算処理部１２内のメモリ上に、割付候補としての複数の勤務項目組合せが順次生成される。Ｓ１２においては、仮勤務表についての初期解が算出され、それが仮勤務表上に反映される。上記のように仮勤務表は演算処理部内のメモリ上に一時的に作成されるものである。この初期解の算出に関しては後に図１１を用いて詳述する。次に、Ｓ１３において、初期解が与えられた勤務表あるいは以下に説明する修正処理を経た勤務表について、割付条件群に基づいて評価値が算出される。これについては上記において詳述した通りである。Ｓ１４では、算出された評価値に基づいて、自動割付評価処理を終了するか否かが判定され、つまり、評価値が一定の終了条件を満足する程度に到達したか否かが判断され、終了可と判定された場合はＳ１５ヘ処理が移行し、終了不可と判定された場合はＳ１６へ処理が進む。
【００８９】
Ｓ１６においては、後に図１２を用いて説明するように勤務表を修正し、その後、処理がＳ１３から再び繰り返し実行される。一般に、Ｓ１３〜Ｓ１６が繰り返し実行され、つまり自動割付評価処理が反復的に実行され、そのような過程において、勤務表の品質が徐々に改善していく（あるいは、多数の割付結果を求め、最終的に最も評価値の良い割付結果を採用してもよい）。上記の終了条件としては、「評価値が一定値より下回った」、「前回の評価より良くなかった（改善されなかった）」、「開始から一定の時間に達した」等をあげることができる。要求する品質や用途に応じて終了条件を適宜定めることができる。なお、一定時間を経ても勤務表を優良化できなかった場合、エラー処理を実行して、その旨をユーザーに警告してもよい。その場合、割付条件違反が生じている箇所をユーザーに対して明示したり違反度合いを数値で表示したりすることが可能である。Ｓ１４において、終了条件を満たした場合、Ｓ１５において、自動割付の最終結果として、仮勤務表の内容が実勤務表上にコピーされる。そして、その実勤務表が画面等に表示され、この処理が終了する。
【００９０】
図１０には、図９に示したＳ１１の工程の具体例が示されている。この図１０に示されるプロセスにより、勤務項目組合せが自動的に生成されるが、その際、データ格納部に登録されているすべての勤務項目をその基礎にしてあらゆる組合せを生成すると、生成される勤務項目組合せの個数が極めて膨大となり、自動割付の処理効率がかえって悪化してしまう。そこで、本実施形態では、第１に、勤務項目組合せの生成に際し、その要素とする勤務項目を、上記のように自動割付指定のあるものに限定している。第２に、勤務項目組合せの生成に際し、複数の勤務項目を組み合せる場合には、データ格納部に登録されている割付条件（絶対条件）に違反しないような組合せ（例：勤務項目間で時間帯が重複しない組合せ、空き時間が一定条件を満足する組合せ）となるように制限が課せられている。このような２つの条件付けにより、必要な勤務項目組合せを確実に割付候補としつつも、無用な勤務項目組合せが割付候補となってしまうことを回避できる。そして、勤務項目組合せリスト（割付候補リスト）を小さくできるので、自動割付評価処理の効率を高めることが可能となる。
【００９１】
図１０において、まずＳ００１では、勤務項目組合せリスト及び初期リストが初期化される。なお、初期化後に、勤務項目組合せリストに対して、上述した上書き指定「非変更」の属性をもった割付候補が付加される。次に、Ｓ００２において、自動割付指定がなされているすべての勤務項目に基づいて、すべての勤務項目組合せをリストアップする。生成されたすべての勤務項目組合せが一時的に初期リストに格納される。ここで、自動割付の指定がなされた勤務項目の個数をｎとすると、複数の勤務項目の中から任意数の勤務項目を選択して順列を形成する場合として、勤務項目組合せの個数は２のｎ乗−１個となる。Ｓ００３では、カウンタｉが初期化され、以降カウンタの値が勤務項目組合せの上限数に到達するまでＳ００４〜Ｓ０１０の工程が繰り返される。
【００９２】
Ｓ００５では、初期リストからｉ番目の勤務項目組合せが取り出される。Ｓ００６では、当該勤務項目組合せにおいて、勤務項目間で時間帯の重複があるかが判定される。重複がある場合には当該勤務項目組合せは勤務項目組合せリストには追加されず（割付候補からの除外）、処理がＳ０１０へ進む。Ｓ００６において、重複がない場合は、処理がＳ００７へ進む。Ｓ００７では、当該勤務項目組合せが勤務項目組合せリストに追加され、その場合、その属性として上書き指定「追加」が設定される。Ｓ００８では、当該勤務項目組合せに複数の勤務項目が含まれる場合において、それらの複数の勤務項目が、勤務時間間隔条件および勤務組合せ条件のうちで、スタッフに依存せずかつ重みが絶対である割付条件（例えば、勤務時間間隔が１時間以内、勤務Ａと勤務Ｆは組合せないなど）をすべて満足しているか否かが判定される。１つでも違反がある場合は、処理がＳ０１０へ進み、すべて満足している場合は、処理がＳ００９へ進む。Ｓ００９では、当該勤務項目組合せが勤務項目組合せリストに別途追加され、その場合、その属性として上書き指定「変更」が設定される。つまり、本実施形態では、自動割付の便宜上、生成された勤務項目組合せが一定条件を満たす場合に、それについて２つの属性が付与され、それらが別々の割付候補として取り扱われることになる。もちろん、属性を独立して付与、管理できるように構成し、上記のような重複登録を行わないようにしてもよい。Ｓ０１０では、カウンタｉの値が１つインクリメントされ、処理がＳ００４へ移行する。
【００９３】
なお、不定期に実施する研修やスタッフが希望する有給休暇等、ユーザが自動割付を行う前に（「勤務の固定指定」または「割付単位の固定指定」として）手入力される勤務項目については、勤務項目組合せの生成対象から除外される。但し、それらの勤務項目をユーザが手入力で別途指定することは可能であるため、研修と有給休暇の組合せなど通常はあり得ない組合せ（割付条件にて禁止されている勤務項目同士の組合せ等）に関しても、特例として割り付けることは可能である。また、割付セグメントの全体ではなく部分的に勤務項目を固定的に入力したい場合に、それ以外の空き部分についての追加的な上書きを許容できるので、空いている時間帯に必要な勤務項目を割り付けることができる。このように、本実施形態によれば、実用性の高い勤務表作成システムを構成できる。
【００９４】
次に、図９に示したＳ１２の工程について詳述する。Ｓ１２では、仮勤務表上において、各割付セグメントに対して何らかの勤務組合せが初期解として割り付けられる。その初期解の生成にあたって、実勤務表上で「割付単位の固定指定」を行った割付セグメント（臨時の勤務や有給休暇等を指定した日）については、仮勤務表上においてそれに対応する割付セグメントに「非変更」の属性が割り付けられる。実勤務表上で「勤務の固定指定」を行った割付セグメント中の部分（臨時の会議等の設定部分）については、仮勤務表上においてそれに対応する割付セグメントに、上書き指定「追加」の属性をもった勤務項目組合せが割り付けられ、あるいは、「非変更」の特別な割り付けがなされる。仮勤務表上において、上記以外の割付セグメントに対しては、上書き指定「変更」の属性をもった勤務項目組合せが割り付けられる。各割付セグメントに対して勤務項目組合せを割り付ける方法については、公知の各種のアルゴリズムを利用することができるが、図１１にはランダムに初期解を作成する方法が示されている。
【００９５】
そこで、図１１を用いて、図９に示したＳ１２の具体例について説明する。Ｓ１０１では、仮勤務表上の最初の日付が選択され、Ｓ１０２では、仮勤務表上の一番上のスタッフが選択される。Ｓ１０３では、上記のように選択されたスタッフ及び日付に対応する（つまり選択された割付セグメントに対応する）、実勤務表上の割付セグメントが参照される。その割付セグメントについての指定内容（あるいは状況）に応じて（Ｓ１０４）、仮勤務表上における対応の割付セグメントに対して、それぞれ以下のように勤務項目組合せが割り付けられる。
【００９６】
すなわち、（ア）実勤務表上で、ユーザーが「割付単位の固定指定」として勤務項目（臨時勤務や有給休暇等）を割付けた割付セグメントについては、仮勤務表上における対応の割付セグメントに「非変更」の属性が割り付けられる（Ｓ１０４−１）。（イ）実勤務表上で、ユーザーが「勤務の固定指定」として勤務項目（臨時の会議等）を割付けた部分を含む割付セグメントについては、仮勤務表上における対応の割付セグメントに対して、上書き指定「追加」の属性をもった勤務項目組合せ及び「非変更」の属性をもった特別の勤務項目組合せの中から、ランダムに選択された勤務項目組合せが割り付けられる（Ｓ１０４−２）。（ウ）それらの場合以外においては、割付セグメントには、上書き指定が「変更」である勤務項目組合せの中からランダムに選択された勤務項目組合せが割り付けられる（Ｓ１０４−３）。
【００９７】
ここで、上記Ｓ１０４−２において、実勤務上に「勤務の固定指定」としての勤務項目が設定されている場合に、仮勤務表上への自動割付に際し、一般の勤務項目組合せに加えて、「非変更」の属性をもった特別な勤務項目組合せを割付候補とする理由は次の通りである。例えば、実勤務表上に勤務項目Ｚ（９：３０〜１７：３０）を固定的に指定した場合を考える。仮に上記のような特別の勤務項目組合せを採用しない場合、勤務項目Ｚ以外の空き時間には、ランダムに選択されたいずれかの上書き指定「追加」の勤務項目組合せが割り付けられることになるが、勤務項目間での重複を発生させずに、その空き時間に割り付けられる割付候補がない場合には、いかなる勤務項目組合わせを割り付けても、勤務表全体の評価値が改善されなくなる。これに対し、ランダムに割り付ける候補のひとつとして「何も割り付けない」場合、即ち「非変更」の属性をもった特別の割付候補を用意しておけば、上記問題を回避することができ、つまり、時間帯の重複を防いで、勤務表の評価値を改善できる余地を残せる。そのような考え方は、後述する図１２における勤務表の修正（解の修正）においても同様に採用される。なお、初期解の生成時には、上記の「非変更」の属性をもった特別な割付候補を選択対象から除外し、解の修正時に「非変更」の属性をもった特別な割付候補を選択対象として採用するようにしてもよい。
【００９８】
S１０５では、現在選択しているスタッフが仮勤務表上の最後のスタッフであるか否かが判定され、最後のスタッフであれば処理がＳ１０７へ移行し、そうでない場合は処理がＳ１０６へ移行して次のスタッフが選択され、その後、処理がＳ１０３へ移行する。Ｓ１０７において、現在選択している日付が仮勤務表上の最後の日付であるか否かが判定され、最後の日付であれば、初期解生成処理を終了し、そうでない場合は、処理がＳ１０８に移行して、次の日付が選択される。
【００９９】
次に、図９のＳ１６に示された勤務表の修正工程の具体例を図１２に基づいて説明する。修正プロセスでは、仮勤務表について計算される評価値がなるべく良くなるように、仮勤務表に対する修正が繰り返し実行される。その修正に当たっては、公知の各種の手法を利用できる。例えば、「山登り法」、「整数計画法」、「遺伝的アルゴリズム」、「シミュレーテッドアニーリング」などの公知のアルゴリズムを利用できる。すなわち、本実施形態は、上記のように、セグメントマトリクスの設定及び割付候補の生成を行うことにより、第１種の勤務表の作成アルゴリズムを本来的に適用できない第２種の勤務表についても、かかるアルゴリズムを適用して、その作成を実現できるものである。もちろん、単純なランダム法などを用いて、勤務表の修正を行うようにしてもよい。但し、最適解の探索の進行に伴って、試行錯誤を繰り返しながらも、仮評価表の内容が次第に優良化（最適化）されるように、探索方法を決定し及びその諸条件を設定するのが望ましい。以下においては、選択されたアルゴリズムを便宜上、所定方法と表現することにする。
【０１００】
図１２に示すプロセスは、図９に示したＳ１４の終了条件判定において、仮勤務表の内容が終了条件を満足しないと判定された場合に、その実行が開始され、その実行結果としての修正された勤務表について、図９に示したＳ１３の評価工程で評価値が算出される。そして、Ｓ１４で終了条件に到達したと判断されるまで、図１２に示すプロセスが繰り返し実行されることになる。なお、図１２に示すプロセスの実行に当たっては、１回の修正工程で、１つの割付セグメントの内容のみを変更してもよいし、複数の割付セグメントを同時に修正するようにしてもよいし、更に、その修正数を動的に変更するようにしてもよい。
【０１０１】
図１２のＳ１１２及びＳ１１３で、所定方法に従って、仮勤務表上において日付及びスタッフが選択される（つまり割付セグメントが選択される）。Ｓ１１４では、上記のように選択されたスタッフ及び日付で特定される割付セグメントに対応する、実勤務表の割付セグメントが参照される。Ｓ１１４では、参照した実勤務表上の割付セグメントに指定されている内容に応じて、現在修正を行おうとしている仮勤務表上の割付セグメントに対して、以下のように勤務項目組合せが上書きにより割り付けられる。
【０１０２】
すなわち、（ア）実勤務表上で「割付単位の固定指定」として勤務項目（臨時勤務や有給休暇等）が割付けられた割付セグメントについては、仮勤務表上における対応する割付セグメントに対して「非変更」を割付ける（Ｓ１１５−１）。但し、既に初期解の生成時等において実勤務表上の「割付単位の固定指定」を認識し、且つ、仮勤務表上に「非変更」の属性を設定した割付セグメントについては、それをＳ１１５で判断して、Ｓ１１５−１の工程を経由することなく、Ｓ１１６で示すように、直ちにＳ１１２及びＳ１１３の工程を再び実行させるようにしてもよいし、そもそも、そのような「非変更」の属性をもった割付セグメントがＳ１１２及びＳ１１３において選択されないように条件付けしてもよい。一方、Ｓ１１５において、（イ）実勤務表上で「勤務の固定指定」として勤務項目（臨時の会議等）が部分的に割り付けられている割付セグメントについては、仮勤務表上の対応する割付セグメントに対して、上書き指定「追加」の属性をもった勤務項目組合せ及び「非変更」の属性をもった特別な勤務項目組合せの中から、所定方法に従って選択された勤務項目組合せが割り付けられる（Ｓ１１５−２）。（ウ）それら以外の場合には、上書き指定「変更」の属性をもった勤務項目組合せの中から所定方法に従って選択された勤務項目組合せが当該割付セグメントに割り付けられる（Ｓ１１５−３）。
【０１０３】
以上のプロセスが図９のＳ１４における終了条件を満足するまで繰り返される。本実施形態では、上記（１）式に示した評価値（全体評価値）が所定値以下となった場合に終了条件を満たしたと判断される。なお、ファジー推論などを利用して複数の評価値を総合考慮して終了判定を行うようにしてもよい。更に、反復回数や経過時間の上限を別の終了条件として定めておいて、その条件に該当した場合にはエラー判定を行うようにしてもよい。また、評価値の変化の推移を観察し、反復回数が一定回数に達するまでの間に、全体評価値の改善が見られなければ強制的に終了させてエラーを判定するようにしてもよい。
【０１０４】
さて、上記のように仮勤務表について最適化が図られたと判断された場合、図９におけるＳ１５においては、仮勤務表の内容が実勤務表へコピーされることになるが、具体的には例えば次のような処理が実行される。まず、仮勤務表上において、最初の日付が選択され、また、最初のスタッフが選択される。つまり、最初の割付セグメントが選択され、その割付セグメントの内容が参照される。そして、その割付セグメントに設定されている属性に応じて、次のような処理が実行される。（ア）「非変更」の属性が設定されている場合には、コピー等の処理はなされない。（イ）上書き指定「変更」の属性をもった勤務項目組合せについては、その勤務項目組合せが実勤務表における対応の割付セグメント（対応日）にコピーされる。（ウ）上書き指定「追加」の属性をもった勤務項目組合せについては、勤務項目組合せが実勤務表における対応の割付セグメントにおける対応箇所（対応日における空き部分）にコピーされる。そして、以上の処理が、最後のスタッフについての最後の日付、つまり最後の割付セグメントに至るまで繰り返される。
【０１０５】
上記の実施形態によれば、共通の時間的区分としてのセグメントマトリクスを導入し、同時に、固定長の割付セグメントに当て嵌め可能な割付候補リストを生成しているので、第１種の勤務表を作成する既存のアルゴリズムを利用しつつ、そのアルゴリズムそれ自体では作成困難な第２種の勤務表を作成することが可能となる。上記実施形態においては、割付候補の生成にあたって、自動割付指定の有無及び勤務候補の並びに関する条件を考慮するので、生成される割付候補数を削減して、自動割付処理の繰り返し実行における処理効率を向上させることができる。また、上記実施形態においては、実勤務表と仮勤務表の区別により、同時に属性の指定及び管理により、手動割付と自動割付の調整、調停を巧妙に行うことができる。但し、一元的な勤務表上において手動割付と自動割付を行うようにしてもよい。
【図面の簡単な説明】
【０１０６】
【図１】本発明に係る勤務表作成システムを示す概念図である。
【図２】本発明に係る勤務表作成システムの構成を示すブロック図である。
【図３】実施形態における勤務項目リストの一例を示す図である。
【図４】実施形態における勤務項目組合せリスト（割付候補リスト）の一例を示す図である。
【図５】実勤務表と仮勤務表の関係を示す説明図である。
【図６】勤務表の評価を説明するための図である。
【図７】勤務表上の条件違反を説明するための図である。
【図８】勤務表の評価値演算方法を示す図である。
【図９】図２に示したシステムの動作を示すフローチャートである。
【図１０】勤務項目組合せ（割付候補）の生成方法を示すフローチャートである。
【図１１】勤務表の初期解の生成方法を示すフローチャートである。
【図１２】勤務表の修正方法を示すフローチャートである。
【図１３】日単位で勤務項目が設定される勤務表及び各勤務項目の内容を示す説明図である。
【図１４】区々の時間長をもった複数の勤務項目を示す説明図である。
【図１５】各スタッフについて多様な時間長をもった複数の勤務項目の並びが設定される勤務表を示す説明図である。
【符号の説明】
【０１０７】
１０  データ格納部、１２  演算処理部、１４  勤務項目リスト、１６  割付条件群、１８  実勤務表、２８  勤務項目組合せリスト（割付候補リスト）、３０  セグメントマトリクス構成部３０、３４  仮勤務表、３５  評価計算部、５０  割付条件群記憶部、５２  マスター情報記憶部、５４  実勤務表記憶部、５６  勤務表作成プログラム、５８  勤務項目組合せ生成部、６２  割付処理部。
【図１】
2006236173.tif 000003
【図２】
2006236173.tif 000004
【図３】
2006236173.tif 000005
【図４】
2006236173.tif 000006
【図５】
2006236173.tif 000007
【図６】
2006236173.tif 000008
【図７】
2006236173.tif 000009
【図８】
2006236173.tif 000010
【図９】
2006236173.tif 000011
【図１０】
2006236173.tif 000012
【図１１】
2006236173.tif 000013
【図１２】
2006236173.tif 000014
【図１３】
2006236173.tif 000015
【図１４】
2006236173.tif 000016
【図１５】
2006236173.tif 000017