(57)【要約】【課題】  致死遺伝子の生成を抑止しつつ、探索効率を向上する。【解決手段】共存型遺伝的アルゴリズム（共存型ＧＡ）を用いてコンピュータで演算することによりナーススケジューリング問題を解決するスケジューリング方法である。各個体間に課せられた最低限満たさなければならない制約条件の下で初期世代の個体群を生成するステップＳ２と、初期世代の個体群を元にして生成された所定の世代の個体群から２つの個体を親ペアとして選択するステップＳ４と、ステップＳ４で選択された親ペアを構成する各個体を互いに交叉させるステップＳ５と、ステップＳ５で交叉された結果生まれた子ペアを親ペアと置き換えて次世代候補を生成するステップＳ６と、ステップＳ４〜Ｓ８を複数回実行した後、複数の次世代候補の中から次世代解を選択するステップＳ９とを含む。【選択図】      図３
2005149148.tif 000002
【特許請求の範囲】
【請求項１】
所定の集団に属する各要員のスケジュールを構成するデータを個体として遺伝的アルゴリズムを用いて演算することにより各要員のスケジュールを作成するスケジューリング方法をコンピュータを用いて実行するためのプログラムであって、
前記各個体間に課せられた制約条件の下で初期世代の個体群を生成する初期個体群生成手段と、
前記初期世代の個体群を元にして生成された所定の世代の個体群から２つの個体を親ペアとして選択する親ペア選択手段と、
前記親ペア選択手段によって選択された親ペアを構成する各個体を互いに交叉させる交叉手段と、
前記交叉手段によって交叉された結果生まれた子ペアを親ペアと置き換えて次世代候補の個体群を生成する次世代候補生成手段と、
前記親ペアの選択、交叉及び次世代候補の生成を複数回実行する制御手段と、
前記制御手段によって次世代候補の生成が複数回行われた結果得られた複数の次世代候補の中から次世代解を選択する次世代解選択手段とを有して前記コンピュータを機能させるプログラム。
【請求項２】
前記所定の世代の個体群を構成する各個体の評価値をそれぞれ演算する個体評価手段が設けられ、
前記親ペア選択手段は、各親ペアの一方をランダム選択するとともに、各親ペアの他方を前記個体評価手段による評価の悪いものほど選択され易い確率で選択する処理を行うように構成されている請求項１に記載のプログラム。
【請求項３】
所定の集団に属する各要員のスケジュールを構成するデータを個体として遺伝的アルゴリズムを用いて各要員のスケジュールをコンピュータにより作成するスケジューリング方法であって、
前記コンピュータが、各個体間に課せられた制約条件の下で初期世代の個体群を生成する初期個体群生成ステップと、
前記コンピュータが、前記初期世代の個体群を元にして生成された所定の世代の個体群から２つの個体を親ペアとして選択する親ペア選択ステップと、
前記コンピュータが、前記親ペア選択ステップで選択された親ペアを構成する各個体を互いに交叉させる交叉ステップと、
前記コンピュータが、前記交叉ステップで交叉された結果生まれた子ペアを親ペアと置き換えて次世代候補の個体群を生成する次世代候補生成ステップと、
前記コンピュータが、前記親ペア選択ステップ、交叉ステップ及び次世代候補生成ステップを複数回実行した後、複数の次世代候補の中から次世代解を選択する次世代解選択ステップとを含んでいるスケジューリング方法。
【請求項４】
所定の集団に属する各要員のスケジュールを構成するるデータを個体として遺伝的アルゴリズムを用いて演算することにより各要員のスケジュールを作成するスケジューリング装置であって、
前記各個体間に課せられた制約条件の下で初期世代の個体群を生成する初期個体群生成手段と、
前記初期世代の個体群を元にして生成された所定の世代の個体群から２つの個体を親ペアとして選択する親ペア選択手段と、
前記親ペア選択手段によって選択された親ペアを構成する各個体を互いに交叉させる交叉手段と、
前記交叉手段によって交叉された結果生まれた子ペアを親ペアと置き換えて次世代候補の個体群を生成する次世代候補生成手段と、
前記親ペアの選択、交叉及び次世代候補の生成を複数回実行する制御手段と、
前記制御手段によって次世代候補の生成が複数回行われた結果得られた複数の次世代候補の中から次世代解を選択する次世代解選択手段とを備えているスケジューリング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、スケジューリング方法及びスケジューリング装置に関し、特に探索効率を向上するための対策に係るものである。
【背景技術】
【０００２】
従来より、所定の集団に属する各要員のスケジュールを最適化するスケジューリング問題が一般的に知られている。この種のスケジューリング問題として、例えば、特許文献１に開示されているように遺伝的アルゴリズム（Genetic Algorithm、以下単にＧＡと呼ぶ。）に代表される進化的計算手法を用いた解法が提案されている。
【０００３】
遺伝的アルゴリズムとは、生物の進化を模倣した最適化手法の一種であり、その具体的な処理を説明すると、まず、ランダムに生成した個体の集合としての初期個体集団を生成し、この各個体を所定の評価尺度に従って評価する。そして、そのうちの２つの個体を選択し、この２個体の一部を互いに交換する交叉処理を行う。この交叉処理によって生成された新たな個体の一部を変更して新たな個体を生成する突然変異処理を行う。そして、この突然変異処理において生成された新たな個体の解としての優秀さを所定の評価尺度に従って評価し、個体集団中の最も低い個体の評価値と比較し、新たな個体の評価値の方が優れている場合には、個体集団中の最も劣った個体と入れ替える操作を行う。これらの処理を繰り返すことにより、与えられた問題の準最適解が得られるというものである。
【０００４】
前記特許文献１に開示されたスケジューリング方法では、初期個体集団の中からより評価値の高い個体をランダムに選択し、この２個体に対して交叉を実行するようにしている。そして、交叉によって生成された個体に連続して何度も突然変異を施すことによって解の改善を図るようにしている。
【０００５】
特許文献２には、複数の交叉法を用意するとともに、この中からより良い解を生成する交叉法を選択する処理を行うことが開示されている。そして、遺伝操作を施した個体群が前世代の個体群と同じ場合には、突然変異の操作を行う割合を高くして、局所解から脱出するようにすることが示されている。
【０００６】
非特許文献１には、多重制約性と多目的性に対して提案される共存型ＧＡが開示されている。この共存型ＧＡは、複数の個体からなる集団全体に対して制約条件を課し、評価項目を適用して集団全体を改善することを目的とするものであり、この共存型ＧＡにおいては、各個体は他の個体と多重の制約条件によって拘束されており、個体は解候補の一部を担い個体集団としての解候補を表すこととしている。
【０００７】
共存型ＧＡを例えばナーススケジューリング問題（Nurse Scheduling Problem、以下単にＮＳＰという。）に適用した場合について説明する。勤務スケジュール表は看護師個人の例えば１ヶ月のスケジュールを集合して全体のスケジュールが構成される。この個人の１ヶ月のスケジュールが一個体となり、全体の１ヶ月のスケジュールが一集団となる。このナーススケジューリング問題では、看護師数をｎとし、また日数をｍとするとｎ×ｍ行列を決定する問題となる。そして、準最適解を導出すべく以下に示す処理を順次実行する。
Ｈ１：看護師の属する集団に課せられたある制約条件を満たした初期個体集団をランダムに生成する。たとえば、１日の各勤務における必要人員数等がこの制約条件に該当する。
Ｈ２：各個体の評価を与えられた個体の評価尺度にしたがって計算し、その結果を評価値とする。
Ｈ３：個体の評価値に応じて選ばれやすくなるようにバイアスをかけてランダムに２個体を選択する。この選ばれた２個体を親ペアと呼ぶ。
Ｈ４：親ペアの一部を互いに交換して新たな個体を生成する。生成された２個体を子ペアと呼び、親ペアの一部を互いに交換する操作を交叉と呼ぶ。このとき、前記制約条件を満たした初期個体集団を生成することにより、交叉処理を行っても常にこの制約条件が満たされるようになっている。
Ｈ５：生成された子ペアを親ペアと置き換えて新たな集団を生成する。この新たに生成された集団を次世代解候補と呼ぶ。
Ｈ６：生成された次世代解候補の評価を予め設定された集団の評価尺度にしたがって計算し、その結果を評価値とする。
Ｈ７：Ｈ４〜Ｈ６を繰り返すことで複数の次世代解候補を生成する。
Ｈ８：複数の次世代候補の中から集団の評価により１つの次世代解を選択し、現世代解を次世代解に置き換える。
Ｈ９：前記処理Ｈ２〜Ｈ８を１サイクルとして繰り返し処理を行う。これにより、全体のスケジュールが準最適解に達することとなる。
【特許文献１】特開２０００−１３２６０４号公報
【特許文献２】特開平９−６９０５０号公報
【非特許文献１】北野宏明、「遺伝的アルゴリズム（２）」、日本、産業図書、１９９５年、ｐ．８９−１２５
【発明の開示】
【発明が解決しようとする課題】
【０００８】
前記特許文献１に示されたものでは、評価値に基づいて２個の個体をランダムに選択して交叉を行うために、制約を充足しない実行不可能な解（致死遺伝子）を発生させる可能性がある。このため、この致死遺伝子の発生を抑制するために交叉箇所が限定されてしまうという問題を生じ、制約を充足するのが困難となる。さらに致死遺伝子の発生を抑制するための突然変異操作を行うことが余儀なくされるという問題がある。
【０００９】
また、前記特許文献２に記載されたものでは、複数の交叉法を用意するとともに、この中からより良い解を生成する交叉法を選択する処理を行うことにより評価指標に依存することなく良い結果を取得できるようにしている。しかしながら、このものにおいても致死遺伝子が発生する可能性があるために、致死遺伝子の生成を抑制するためには前記同様の問題が発生する。
【００１０】
一方、前記非特許文献１に記載されたものでは、１つのスケジュール全体を１つの集団に、１人の看護師に対応する勤務スケジュールを１つの個体に対応させてコード化するとともに、制約条件を満たす初期集団を生成することにより、交叉を繰り返しても致死遺伝子が生じる危険がないという利点がある。しかしながら、このものでは、図９に示すように、親ペアを選択するのは１つのみであるために、多様な子が生成されにくいものとなっている。このため、解空間に対して探索空間が狭くなり、初期収束や探索効率が低下するという問題がある。
【００１１】
そこで、本発明は、かかる点に鑑みてなされたものであり、その目的とするところは、致死遺伝子の生成を抑止しつつ、探索効率を向上することにある。
【課題を解決するための手段】
【００１２】
前記の目的を達成するため、本発明は、所定の集団に属する各要員のスケジュールを構成するデータを個体として遺伝的アルゴリズムを用いて演算することにより各要員のスケジュールを作成するスケジューリング方法をコンピュータを用いて実行するためのプログラムを前提として、前記各個体間に課せられた制約条件の下で初期世代の個体群を生成する初期個体群生成手段と、前記初期世代の個体群を元にして生成された所定の世代の個体群から２つの個体を親ペアとして選択する親ペア選択手段と、前記親ペア選択手段によって選択された親ペアを構成する各個体を互いに交叉させる交叉手段と、前記交叉手段によって交叉された結果生まれた子ペアを親ペアと置き換えて次世代候補の個体群を生成する次世代候補生成手段と、前記親ペアの選択、交叉及び次世代候補の生成を複数回実行する制御手段と、前記制御手段によって次世代候補の生成が複数回行われた結果得られた複数の次世代候補の中から次世代解を選択する次世代解選択手段とを有して前記コンピュータを機能させる。
【００１３】
また、本発明は、所定の集団に属する各要員のスケジュールを構成するデータを個体として遺伝的アルゴリズムを用いて各要員のスケジュールをコンピュータにより作成するスケジューリング方法を前提として、前記コンピュータが、各個体間に課せられた制約条件の下で初期世代の個体群を生成する初期個体群生成ステップと、前記コンピュータが、前記初期世代の個体群を元にして生成された所定の世代の個体群から２つの個体を親ペアとして選択する親ペア選択ステップと、前記コンピュータが、前記親ペア選択ステップで選択された親ペアを構成する各個体を互いに交叉させる交叉ステップと、前記コンピュータが、前記交叉ステップで交叉された結果生まれた子ペアを親ペアと置き換えて次世代候補の個体群を生成する次世代候補生成ステップと、前記コンピュータが、前記親ペア選択ステップ、交叉ステップ及び次世代候補生成ステップを複数回実行した後、複数の次世代候補の中から次世代解を選択する次世代解選択ステップとを含んでいる。
【００１４】
また、本発明は、所定の集団に属する各要員のスケジュールを構成するデータを個体として遺伝的アルゴリズムを用いて演算することにより各要員のスケジュールを作成するスケジューリング装置を前提として、前記各個体間に課せられた制約条件の下で初期世代の個体群を生成する初期個体群生成手段と、前記初期世代の個体群を元にして生成された所定の世代の個体群から２つの個体を親ペアとして選択する親ペア選択手段と、前記親ペア選択手段によって選択された親ペアを構成する各個体を互いに交叉させる交叉手段と、前記交叉手段によって交叉された結果生まれた子ペアを親ペアと置き換えて次世代候補の個体群を生成する次世代候補生成手段と、前記親ペアの選択、交叉及び次世代候補の生成を複数回実行する制御手段と、前記制御手段によって次世代候補の生成が複数回行われた結果得られた複数の次世代候補の中から次世代解を選択する次世代解選択手段とを備えている。
【００１５】
また、本発明は、前記所定の世代の個体群を構成する各個体の評価値をそれぞれ演算する個体評価手段が設けられ、前記親ペア選択手段は、各親ペアの一方をランダム選択するとともに、各親ペアの他方を前記個体評価手段による評価の悪いものほど選択され易い確率で選択する処理を行うように構成されているのが好ましい。こうすることで、次世代候補をランダムに生成しつつ、適応度の低いものを高くすることができる。
【発明の効果】
【００１６】
以上説明したように、本発明によれば、各個体間に課せられた最低限満たさなければならない制約条件の下で初期世代の個体群を生成し、この初期世代の個体群を元にして親ペアの交叉を行うために、致死遺伝子が生成されるのを抑止することができる。そして、このとき親ペアの選択を複数回実行することから、複数の親ペアが選択されることとなり、この複数の親ペアに対して各親ペアを構成する各個体の一部同士を互いに交叉して複数の子ペアを生成している。この結果、複数の親ペアから多様な子ペアが生成されることが可能となり、解の探索空間の拡大を図ることができて探索効率を向上できるとともに局所解に陥る確率を低減することができる。
【００１７】
また、本発明によれば、親ペアを構成する各個体の交叉箇所が少ない場合であっても、交叉処理を行うに当たり複数の親ペアを選択するために、各親ペアを選択する毎に交叉箇所を逐次選択することが可能となる。この結果、各親ペア毎の交叉箇所の選択についての組み合わせを増大させることができるので、解の探索空間の拡大により最適解に近い最良解を取得しやすくできる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施形態を図面に基づいて詳細に説明する。
【００１９】
図１は、本発明の実施形態に係るスケジューリング方法を実施するためのスケジューリング装置の構成を示すブロック図である。本スケジュール装置は、病院の所定の科に属するスケジューリング対象となる全看護師のスケジュールを調整するための装置であり、各看護師の１ヶ月のスケジュールを構成する個体としての各データを共存型遺伝的アルゴリズム（以下、共存型ＧＡという。）を用いて演算し、この科全体の看護師のスケジューリングを行うためのコンピュータを備えている。このコンピュータは、入力部、ＣＰＵ、ＲＯＭ、ＲＡＭ、外部記憶装置、表示装置、印字装置等から構成されている。そして、このコンピュータは、ハードディスク等の外部記憶装置に予め記憶されているスケジューリングプログラムをＣＰＵ等で実行することにより、スケジューリング装置として機能する。
【００２０】
入力部は、マウス、キーボード等から構成され、後述する各評価項目に必要なデータをユーザーが入力するために使用される。
【００２１】
コンピュータは、データ受付部１と、初期個体集団生成部２と、個体評価値計算部３と、親ペア選択部４と、交叉処理部５と、次世代解候補生成部６と、次世代解候補評価値計算部７と、次世代解選択部８と、最良解更新部９と、出力部１０と、メモリ部１１と、制御部１２とを備えている。
【００２２】
データ受付部１は、入力部によって入力されたデータを受け付け、このデータを初期個体集団生成部２等へ出力する。ここで出力されるデータには、スケジューリング問題に関するパラメータと共存型ＧＡに関するパラメータとがある。
【００２３】
スケジューリング問題に関するパラメータとしては、スケジューリング対象となる看護師、スケジューリング対象となる日にち、土日祝の日にち、勤務形態（日勤、準夜勤、深夜勤）ごとに必要な必要勤務者数、各勤務形態ごとに必要な最低看護レベル、勤務パターンの評価値、研修、会議、希望休暇等の変更不可能な固定箇所等が挙げられる。
【００２４】
また、共存型ＧＡに関するパラメータとしては、全体処理の繰り返し回数即ち世代数、次世代解候補を生成する数、評価計算に用いられる重み係数等が挙げられる。本実施形態では、例えば全体処理の繰り返し回数（世代数）を５０００回とし、また次世代解候補を生成する数（交叉数）として１００００としている。
【００２５】
本実施形態では、各個体は、スケジューリング対象期間となる所定期間（本実施形態では１ヶ月）におけるある看護師の勤務スケジュールを構成するデータからなる。そして、この個体の集合である、スケジューリング対象となる全ての看護師の勤務スケジュールが個体群となる。
【００２６】
初期個体集団生成部２は、初期個体群生成手段を構成するものであり、スケジューリング対象となる全ての看護師の前記所定期間の勤務スケジュールを初期世代の個体群としてランダムに構成するように構成されている。この初期世代の個体群からなる初期集団は、各看護師の勤務スケジュール間に課せられた最低限満たすべき制約条件を満足するように構成される。例えば、１日の必要勤務者数、より具体的には日勤、順夜勤、深夜勤の各勤務形態において要求される要員数を満足するような初期集団が形成される。また、研修、会議、希望休暇等の変更不可能な固定箇所についてはそれを満足するような初期集団として形成される。
【００２７】
個体評価値計算部３は、個体評価手段を構成するものであり、予め設定された所定の評価関数に基づいて演算された個体評価値に従って各個体の評価計算を実行するように構成されている。この個体評価値の詳細は後述する。
【００２８】
親ペア選択部４は、親ペア選択手段を構成するものであり、現行世代の個体群の中から親ペアとしての２つの個体を選択してメモリ１１に格納する処理を実行するように構成されている。この親ペアの選択は、親ペアの一方をランダム選択するとともに、この親ペアの他方を適応度の低いもの即ち個体評価値計算部３による評価の悪いものほど選択され易い確率で選択する方式で実行される。言い換えると、親ペアの一方は個体評価値計算部３による評価の影響を受けることなくランダムに選択される一方、親ペアの他方は前記評価の悪いものを積極的に選択するようになっている。
【００２９】
交叉処理部５は、交叉手段を構成するものであり、選択された親ペアに対してこの親ペアを構成する各個体の一部を互いに交叉する交叉処理を実行し、子ペアを生成してメモリ１１に格納するように構成されている。この交叉処理では、親ペアを構成する各個体についてそれぞれ同じ交叉箇所をランダムに設定し、その所定の交叉箇所内のデータを個体間でそれぞれ入れ替える処理を実行する。本実施形態では２点交叉を行うように構成されている。このとき、研修等の変更不可能な固定箇所については交叉しないようになっている。尚、これに代え、例えば１点交叉としてもよくあるいは３点以上の多点交叉としてもよい。
【００３０】
共存型ＧＡでは、各個体についてそれぞれ同一の交叉箇所を設定することにより、交叉実行後も各看護師の勤務スケジュール間に課せられた最低限満たすべき制約条件が常に満足されるようになっている。例えば、各日にちの必要勤務者数が満足されるように初期集団が設定されており、この初期集団を元にしてある２人の看護師の所定の日の勤務パターンを入れ替えたとしてもその日にちにおける必要勤務者数が満足されることとなる。
【００３１】
次世代解候補生成部６は、次世代候補生成手段を構成するものであり、交叉処理部５によって生成された子ペアを親ペアと置き換えることにより、新たな集団としての次世代の個体群である次世代解候補の個体群を生成してメモリ１１に格納する制御を実行するように構成されている。親ペアの選択は後述するように複数（多数）回実行されるようになっている。この結果、次世代解候補は、複数（多数）生成される。
【００３２】
次世代解候補評価値計算部７は、予め設定された評価計算に基づいて次世代解候補についての評価値の計算を実行するように構成されている。この評価計算についての詳細は後述する。
【００３３】
次世代解選択部８は、次世代解選択手段を構成するものであり、生成された複数（多数）の次世代解候補の中からパレート最適選択によって次世代解を１つ選択する制御を実行するように構成されている。この次世代解候補の選択は、後述するように繰り返し行われるようになっており、次世代解候補の選択が行われることで世代が順次交代していくこととなる。
【００３４】
最良解更新部９は、選択された次世代解がそれ以前に得られた次世代解よりも高い評価値であるときにこの次世代解を最良解として更新してメモリ１１に格納する制御を実行するように構成されている。
【００３５】
出力部１０は、最良解更新部９に格納された最良解を計算終了時に最終結果として表示装置等へ出力するように構成されている。
【００３６】
メモリ部１１は、処理中の結果等を一時的に記憶するように構成されている。
【００３７】
制御部１２は、前記各部１，‥，１１による制御を順次実行させるように構成されている。また、この制御部１２は、交叉及び次世代候補の生成を複数回実行する制御手段を構成している。例えば図２に示すように、ある所定の世代において親ペアは複数選択されることとなり、この各親ペアからそれぞれ１つずつ子ペアが生成される。
【００３８】
この制御部１２には、２つのカウンタが設けられている。一方は全体処理の繰り返し回数を計数するカウンタであり、もう一方は次世代解候補を生成する回数を計数するカウンタである。
【００３９】
続いて評価項目及び評価計算の詳細について説明する。ここでは、実際に大阪市立枚方市民病院の脳外科の看護師の勤務スケジューリングを行ったときのものについて説明する。スケジューリング対象となる看護師２３名であり、スケジューリング対象期間は３０日（例えば１１月）である。勤務スケジューリング上で分類されるこの科の勤務形態としては、日勤、準夜勤、深夜勤及び休日がある。
【００４０】
まず、この科の勤務スケジュール作成担当者である師長に評価項目について聞き取り調査を行い、勤務スケジュールを作成するに当たっての評価すべき評価項目の整理を行った。評価項目は、個人に関する評価項目と１日に関する評価項目とに分類できる。尚、師長はスケジューリング対象には属していない。
【００４１】
個人に関する評価項目として、
（１）勤務パターンの負荷度合いの軽減
（２）勤務日数の公平さ
（３）その他の個人に関する評価項目
が挙げられる。
【００４２】
また、１日に関する評価項目として、
（４）必要勤務者数の確保
（５）看護の質の維持
（６）その他の１日に関する評価項目
が挙げられる。
【００４３】
以下、これらの評価項目の定式化を行う。
【００４４】
まず、スケジューリング対象となる看護師の集合をＭ＝｛ｍ1，ｍ2，‥，ｍi，‥，ｍ23｝とし、またスケジューリング対象期間の日にちの集合をＤ＝｛１，２，‥，ｊ，‥，３０｝とする。また、日にちｊにおける看護師ｍiが勤務している時刻をＴj(ｍi)とする。
【００４５】
日にちｊにおける日勤の看護師の集合をＭjdayとし、また日にちｊにおける準夜勤の看護師の集合をＭjsemとし、また日にちｊにおける深夜勤の看護師の集合をＭjmidとし、また日にちｊにおける休日の看護師の集合をＭjhomとすると、これらＭjday、Ｍjsem、Ｍjmid、Ｍjhomはそれぞれ以下の式（１）〜式（４）の通り、
【数１】
2005149148.tif 000003
と定義することができる。
【００４６】
また、看護師ｍiにおける日勤の日にちの集合をＤidayとし、また看護師ｍiにおける準夜勤の日にちの集合をＤisemとし、また看護師ｍiにおける深夜勤の日にちの集合をＤimidとし、また看護師ｍiにおける休日の日にちの集合をＤihomとすると、これらＤiday、Ｄisem、Ｄimid、Ｄihomはそれぞれ以下の式（５）〜式（８）の通り、
【数２】
2005149148.tif 000004
と定義することができる。
【００４７】
（１）勤務パターンの負荷度合いの軽減
隔たった日にち間においては勤務パターンの負荷度合いについての依存関係が低くなるために、勤務パターンの評価は、連続３日の勤務パターンで評価することが可能である。そこで、師長に依頼して勤務パターン及びその評価値ｄijを以下の表１に示すように４種類に分類してもらった。各勤務パターンにおける勤務例を表１の中に示している。スケジューリングにおいては勤務負荷の少ない最優先パターンをできるだけ増やすことを目的にする。一方、禁止パターンについては評価の重みを大きくすることで制約条件となるようにした。
【００４８】
【表１】
2005149148.tif 000005
【００４９】
看護師ｍiの１ヶ月間の勤務パターンに関する負荷度合いを表す評価関数Ｆ1iは、以下の式（９）の通り、
【数３】
2005149148.tif 000006
と定義することができる。ここで、ｄijは看護師ｍiの日にちｊにおける勤務パターンに対応する評価値を表している。
【００５０】
（２）勤務日数の公平さ
勤務日数に関する評価項目として、例えば「休日は土日祝の数と同じにする」、「夜勤は８回以下とする」及び「準夜勤・深夜勤の上限はそれぞれ４回とする」という項目が挙げられる。これら各項目に違反する場合には、各項目に違反する毎にペナルティを課す。よって、看護師ｍiにおける休日に関する評価関数Ｆ2i及び夜勤に関する評価関数Ｆ3iは、以下の式（１０）、（１１）の通り、
【数４】
2005149148.tif 000007
と定義することができる。ここで、Ｎhomは1ヶ月間の土日祝の日数、Ｎsemは準夜勤回数の上限値、Ｎmidは深夜勤回数の上限値を表している。つまり、式（１０）から明らかなように、1ヶ月間の土日祝の日数に対して休日に過不足が発生したときには、その日数に応じたペナルティを課す。また、式（１１）から明らかなように、準夜勤の回数が上限値を超えたときや深夜勤の回数が上限値を超えたときには、その超えた日数に応じたペナルティを課す。
【００５１】
（３）その他の個人に関する評価項目
この評価項目として、例えば「６日間以上の連続勤務を禁止する」、「連続する６日間のうちで４回以上の夜勤を禁止する」及び「研修の翌日の深夜勤を禁止する」という項目が挙げられる。これらの項目に違反する場合には、各項目に違反する毎にペナルティを課す。言い換えると、これらの項目に対する違反する毎に１を加算していくようになっており、看護師ｍiにおけるこの評価項目の評価関数Ｆ4iは、加算された点数の合計として表される。
【００５２】
（４）必要勤務者数の確保
この病棟における１日の必要勤務者数は、日勤で１０〜１１人であり、準夜勤で３人であり、深夜勤で３人である。この必要勤務者数は最低限満たさなければならない制約条件となっている。本実施例では、共存型ＧＡによる演算を行うために、初期集団を形成するときにこの制約条件を満足するように各日にち毎の勤務者数を割り付けるために、交叉を繰り返してもこの制約条件が満たされるため、致死遺伝子を発生させる危険性はない。
【００５３】
（５）看護の質の維持
業務に支障がないように日勤、準夜勤、深夜勤のそれぞれについて一定レベル以上の看護の質を維持する必要があり、また日によって看護の質に偏りが生じるのをなるべく抑制する必要がある。そこで、各看護師のレベルを１〜１０の１０段階に分類して看護レベルＬ(ｍi)を数値化することとした。看護師ｍiの看護レベルＬ(ｍi)を表２に示している。ベテラン看護師の看護レベルＬ(ｍi)は７〜１０と、また中堅看護師の看護レベルＬ(ｍi)は４〜６と、また新人看護師の看護レベルＬ(ｍi)は１〜３となっている。
【００５４】
【表２】
2005149148.tif 000008
【００５５】
本評価項目においては、各勤務形態毎の看護レベルＬ(ｍi)の総和が予め設定された最低看護レベル以上となることを目的とした。日にちｊにおける日勤の看護レベルに関する評価関数Ｇ1j、日にちｊにおける準夜勤の看護レベルに関する評価関数Ｇ2j、日にちｊにおける深夜勤の看護レベルに関する評価関数Ｇ3jは、それぞれ以下の式（１２）〜式（１４）の通り、
【数５】
2005149148.tif 000009
と定義することができる。ここで、Ｌjdayは日にちｊにおける日勤の最低看護レベルを、またＬjsemは日にちｊにおける準夜勤の最低看護レベルを、またＬjmidは日にちｊにおける深夜勤の最低看護レベルをそれぞれ表しており、これらは予め設定された値である。師長と話し合った結果、日勤の最低看護レベルＬjdayは、平日は５４、土曜日は３３、日祝日は２８と設定し、また準夜勤及び深夜勤の最低看護レベルはそれぞれ１６と設定した。つまり、本評価項目では、式（１２）〜式（１４）から明らかなように、看護レベルＬ(ｍi)の総和が各勤務ごとに予め設定された最低看護レベルに満たないときには、その不足する点数に応じた評価値が算出されることとなる。
【００５６】
（６）その他の１日に関する評価項目
本評価項目としては、「夜勤に相性の悪い看護師同士を組み合わせるのは禁止する」、「夜勤に新人同士を組み合わせるのは禁止する」及び「夜勤には少なくとも１人のベテランを割り振る」が挙げられる。これらの項目に違反する場合には、各項目に違反する毎にペナルティを課す。言い換えると、これらの項目に対する違反する毎に１を加算していくようになっており、日にちｊにおける本評価項目に関する評価関数Ｇ4jは、加算された点数の合計として表される。
【００５７】
以上、各個体の評価値（個体評価値）Ｆiは、個人に関する評価項目に対する前記評価関数Ｆ1i〜Ｆ4iを用い、以下の式（１５）の通り算出する。また、個体群全体としての評価は、互いに干渉し合う勤務パターンの負荷度合いに関する評価値Ｈ1と、それ以外の個人に関する評価項目から得られる評価値Ｈ2と、一日に関する評価項目から得られる評価値Ｈ3とをそれぞれ評価軸とする３軸パレート評価を行う。これにより、多様性を持った解探索が行えるようになっている。これら評価値Ｈ1，Ｈ2，Ｈ3は以下の式（１６）〜式（１８）の通り算出する。
【００５８】
【数６】
2005149148.tif 000010
【００５９】
そして、以下の式（１９）及び式（２０）に示す通り、
【数７】
2005149148.tif 000011
前記評価値Ｈ1，Ｈ2，Ｈ3のユークリッド距離を計算して得られた最終評価値Ｈにより最良解か否かを判定した。すなわち、最終評価値Ｈがなるべく低くゼロに近い値であるときの解が最良解となる。この最終評価値Ｈは、最適解に対する得られた最良解の距離（distance）を表している。
【００６０】
次に、本実施形態に係るスケジューリング装置によるスケジューリング処理について図３を参照しながら説明する。まず、ステップＳ１においてデータ受付部１は、各評価項目に必要なデータを受け付け、これらデータを初期集団生成部２等へ出力する。ここでは、スケジューリング対象となる看護師、スケジューリング対象となる日にち等のスケジューリング問題に関するパラメータと、全体処理の繰り返し回数（世代数）Ｇ、次世代解候補を生成する数（交叉数）Ｎ等の共存型ＧＡに関するパラメータとが入力される。
【００６１】
そして、ステップＳ２において、初期個体集団生成部２が、スケジュール対象となる各看護師毎に各日にち毎の勤務形態が割り付けられた各個体の集合としての初期集団をランダムに生成する。このとき、１日の必要勤務者数等の最低限満たすべき制約条件を満足するように初期集団をランダムに生成する。つまり、このステップＳ２は初期個体群生成ステップを構成している。尚、このとき全体処理の繰り返し回数Ｇを計数するカウンタのカウントｈをリセットする。
【００６２】
次に、ステップＳ３では個体評価値計算部３が、外部記憶装置に記憶された評価関数Ｆ1i，‥，Ｆ4iを用いて各個体に対して個体評価値Ｆiを演算してメモリ９に格納する。この各個体は、初回の評価では初期集団が現行世代を形成するため、この初期集団を形成する個体に対して行われ、繰り返し計算後においては交叉処理が行われた後の現行世代を形成する個体に対して行われる。また、このステップＳ３を実行する度に全体処理の繰り返し回数Ｇを計数するカウンタのカウントｈに１を加算して更新し、次世代解候補を生成する回数を計数するカウンタのカウントｑをリセットする。
【００６３】
次に、ステップＳ４では、親ペア選択部４が、現行世代を形成する個体群の中から１つの親ペアとして２つの個体を選択し、メモリ１１に格納する。つまり、このステップＳ４は親ペア選択ステップを構成している。この親ペアの選択は、親ペアの一方をランダム選択するとともに、この親ペアの他方を適応度の低い（評価の悪い）もの即ち個体評価値Ｆiの大きいものほど選択され易い確率で選択する方式で実行される。つまり、個体評価値Ｆiはペナルティを加算して得られるものであるので、この値が大きいものほど評価が悪いこととなる。そしてこのとき、次世代解候補を生成する回数を計数するカウンタのカウントｑに１を加算して更新する。
【００６４】
次に、ステップＳ５では、交叉処理部５が、選択された親ペアに対し、各個体の交叉箇所をランダムに設定して交叉処理を実行し、子ペアを生成してメモリ１１に格納する。つまり、このステップＳ５は交叉ステップを構成している。このとき、親ペアを構成する各個体について同じ箇所を交叉箇所として設定している。
【００６５】
次に、ステップＳ６では、次世代解候補生成部６が、メモリ１１に格納された子ペアを、メモリ１１に格納されている親ペアと置き換えてできる新たな集団としての次世代の個体群である次世代解候補の個体群を１つ生成し、メモリ１１に格納する。つまり、ステップＳ６は次世代候補生成ステップを構成している。
【００６６】
次に、ステップＳ７では、次世代解候補評価値計算部７が、前述した評価計算に基づいて次世代解候補についての評価値Ｈ1，Ｈ2，Ｈ3を計算する。
【００６７】
次に、ステップＳ８では、次世代解候補を生成する回数を計数するカウンタのカウントｑがデータ受付部１に入力された設定数Ｎを超えたか否かを判断する。そして、カウントｑが回数Ｎ以下であるときには判定がＮＯとなってステップＳ４へ戻る。したがって、次世代解候補がＮ個生成されるまで、ステップＳ４〜ステップＳ８が繰り返し実行される。このときメモリ１１では、親ペアが選択されるたびにこの親ペアがメモリ１１に格納されている親ペアに上書きされ、また子ペアが生成されるたびにこの子ペアがメモリ１１に格納されている子ペアに上書きされている。したがって、次世代解候補の生成回数Ｎを１００００と設定してもメモリ１１に記憶されるデータ量が膨大になることはない。
【００６８】
そして、カウントｑが回数Ｎを超えるとステップＳ８における判定がＹＥＳとなってステップＳ９に移る。ステップＳ９では、次世代解選択部８が、多数の次世代解候補の中からパレート最適選択によってパレート最適解の中から１つ選択して次世代解とし、この次世代解を現行世代解と置換する。つまり、ステップＳ９は次世代解選択ステップを構成している。
【００６９】
次に、ステップＳ１０では、最良解更新部９が、選択された次世代解の最終評価値Ｈがそれ以前に得られた次世代解候補よりも良い値（ユークリッド距離が小さい値）であるときにこの次世代解候補を最良解として更新してメモリ９に格納する。
【００７０】
次に、ステップＳ１１では、全体処理の繰り返し回数Ｇを計数するカウンタのカウントｈがデータ受付部１に入力された繰り返し回数Ｇを超えたか否かを判断する。そして、カウントｈが繰り返し回数Ｇ以下であるときには判定がＮＯとなってステップＳ３へ戻る。したがって、世代交代が繰り返し回数Ｇに達するまでステップＳ３〜ステップＳ１１が繰り返し実行される。そして、カウントｈが繰り返し回数Ｇを超えるとステップＳ１１における判定がＹＥＳとなってステップＳ１２に移る。
【００７１】
ステップＳ１２では、出力部１０が、最良解更新部９に格納された最良解を最終結果として出力し、全処理が終了する。
【００７２】
実際に得られた最良解の一例を図４に示す。この図は、看護師２３人の３０日間の勤務スケジュールを示している。この図から分かるように、各制約条件を維持しつつ、各看護レベルをも維持できている。また、表３に示すように勤務パターンの負荷度合いと看護の質の維持に関する評価が特に改善されていた。
【００７３】
【表３】
2005149148.tif 000012
【００７４】
各世代に対する最良解の推移を図５に示している。図５では、本実施形態における演算結果を実線で示すとともに、師長が実際に作成された勤務スケジュール表から得られた最終評価値Ｈを比較例として破線で示している。師長はこの勤務スケジュール表を２，３日かけて作成している。本実施形態ではおよそ最良解が収束する２０００世代辺りまで計算するのに約２０分で得ることができ、親ペアを多数回に亘って繰り返し選択する演算を行うにもかかわらず実用可能な時間で処理を終えることができる。尚、図５は、ｃ1＝0.2、ｃ2＝0.2、ｃ3＝0.2、ｃ4＝0.4、ｄ1＝0.1、ｄ2＝0.1、ｄ3＝0.1、ｄ4＝0.7、Ｇ＝5000、Ｎ＝10000としたときの一例である。
【００７５】
以上説明したように、本実施形態によれば、各個体間に課せられた最低限満たさなければならない制約条件の下で初期世代の個体群を生成し、この初期世代の個体群を元にして親ペアの交叉を行うために、致死遺伝子が生成されるのを抑制することができる。そして、このとき親ペアの選択を複数回実行することから、複数の親ペアが選択されることとなり、この複数の親ペアに対して各親ペアを構成する各個体の一部同士を互いに交叉して複数の子ペアを生成している。この結果、複数の親ペアから多様な子ペアが生成されることが可能となり、解の探索空間の拡大を図ることができて探索効率を向上できるとともに局所解に陥る確率を低減することができる。
【００７６】
また、本実施形態では、親ペアを構成する各個体の交叉箇所が少ない場合であっても、交叉処理を行うに当たり複数の親ペアを選択するために、各親ペアを選択する毎に交叉箇所を逐次選択することが可能となる。この結果、各親ペア毎の交叉箇所の選択についての組み合わせを増大させることができるので、解の探索空間の拡大により最適解に近い最良解を取得しやすくできる。
【００７７】
また、本実施形態では、各親ペアの一方をランダム選択するとともに、各親ペアの他方を個体評価値Ｆiの大きいものほど選択され易い確率で選択する処理を行うようにしているので、次世代候補をランダムに生成しつつ、適応度の低いものを高くすることができる。
【００７８】
また、本実施形態では、次世代解候補を生成するたびに親ペア及び子ペアをメモリ１１に格納されている親ペア及び子ペアに対して上書きしていくように処理しているので、メモリ１１に格納されるデータ量が膨大になるのを防止することができる。
【００７９】
尚、本発明は、前記実施形態について、以下のような構成としてもよい。
【００８０】
前記実施形態では、ユークリッド距離に基づいたパレート最適選択によって次世代解候補の中からランダムに次世代解を選択する構成としているが、これに代えハミング距離に基づいて次世代解を選択する構成としてもよい。
【００８１】
また、前記実施形態では、ステップＳ４〜ステップＳ８を繰り返し実行する構成としたが、これに代え、メモリ９に余裕があるとき等には、親ペアの選択〜次世代の生成までを並行して実行する構成としてもよい。
【００８２】
また、前記実施形態では、本発明を看護師のスケジュールを調整するための装置に適用したものについて説明したが、本発明はこれに限られるものではなく、例えば工場等における従業員シフトスケジュール、ゼミにおける発表スケジュール、アルバイトやパートタイマーのシフトスケジュール等を調整するための装置に適用することもできる。
【００８３】
また、前記実施形態では、看護師のスケジュールを調整するスケジューリング装置について説明したが、これに限られるものではなく、コンピュータを機能させて前記同様のステップを順次実行させるコンピュータプログラムとしてもよい。
【実施例】
【００８４】
この実施例は、本発明を所定の研究室におけるゼミ発表スケジュール問題に適用したものである。このゼミ発表スケジュール問題は、毎週研究室等で行われるゼミの発表者を割り当てる問題である。本実施例では、研究室の要員数が１３人、ゼミ回数が２６回、一回あたりのゼミ発表者人数が３人であるとした場合の最適なゼミ発表スケジュールを得ることを目的としている。つまり、本実施例では、個体数１３、個体長が２６となる。そして、研究テーマは３つとし、それぞれの発表者数は５人、４人、４人とした。この事例では最適な発表回数は６回、最適な発表間隔は４．３週となる。
【００８５】
個体の評価は、発表回数の均等化と発表間隔の均等化を目的とした評価を行う。適応度関数Ｆは、以下の式（２１）に示すように、
【数８】
2005149148.tif 000013
とした。ここで、Ｎを最適な発表間隔とした場合において、ｆ1iは発表者ｉにおける発表回数を、またｆ2は最適な発表回数を、またｆ3iはＮ週間における発表者ｉによる発表が２回以上又は０回の回数を、またｆ4iは発表者ｉにおける発表間隔がＮ＋１週間以上又はＮ−１週間以下の回数をそれぞれ表している。個体の適応度関数の重みは、α＝２、β＝２、γ＝１とした。
【００８６】
集団としての評価は、（１）全体の発表負荷の最小化、（２）全体の発表負荷の均等化、（３）発表テーマ重複度の最小化を評価項目として行った。この（１）及び（２）は、各発表者のスケジュールの評価値の平均及び標準偏差を評価値としている。また（３）は、ゼミ１回の発表者の中で同じテーマ重複度を算出し、この総和を評価値としている。テーマ重複度とは、テーマごとにＭ−１を算出し、その総和で決定される。尚、Ｍは重複人数を表している。
【００８７】
また、本問題においては、テーマ重複度を取り入れない実験１と、テーマ重複度を取り入れた実験２との２つの実験を行った。
【００８８】
本実施例における共存型ＧＡに関するパラメータについて説明する。本実施例でも、親ペアの選択は、一方をランダム選択とする一方、他方を適応度の低いもの即ち評価の悪いものほど選択され易い確率で選択する方式としている。そして、比較例としての従来の共存型ＧＡは２点交叉で行い、本実施例２は１点交叉とした。次世代解候補の生成数を３００とし、世代数は、実験１では７００世代、実験２では３０００世代とした。
【００８９】
そして、次世代解候補の中からの最良解の選択は最適解からのユークリッド距離の最小のものを選択することにより行った。今回の問題では、最適解の値は、平均が１．８、標準偏差が０．４、テーマ重複度が４となる。
【００９０】
次に実験結果について説明する。
【００９１】
図６は、実験１において各探索過程で得られた解候補の分布を示している。この図から、実施例では解候補の分布が平均値によらず一様であるとともに広い探索空間を保持して探索が進められるのに対し、比較例では解の分布が局所的であるとともに解候補の探索空間が実施例に比べて狭くなっていることが分かる。
【００９２】
図７及び図８は、各世代で得られた次世代解に対する最適解までの距離の推移を示している。図７はテーマ重複度を取り入れない実験１における結果を示しており、この図から分かるように実施例は比較例に比べ最適解へ早く収束している。一方、図８は実験２における結果を示しており、この図から実施例は比較例に比べ最適解との距離が小さくなっていることが分かる。したがって、実施例の方が比較例に比べ最適解に近い解に収束しており、精度の良い解が得られていると言える。この実験２では、テーマ重複度を取り入れることで問題が複雑化しており、このために、比較例では最適解に近づけない局所解に陥ったと考察される。
【００９３】
以上より、本実施例では、比較例に比べて解の探索空間の拡大を図ることができて探索効率を向上できるとともに局所解に陥る確率を低減することができる。
【図面の簡単な説明】
【００９４】
【図１】本発明の実施形態に係るスケジューリング装置の全体構成を示すブロック図である。
【図２】本発明の実施形態に係るスケジューリング装置による共存型ＧＡを概念的に示す図である。
【図３】本発明の実施形態に係るスケジューリング装置の制御動作を示すフロー図である。
【図４】本発明の実施形態に係るスケジューリング装置によって得られた勤務スケジュール表の一例を示す図である。
【図５】本発明の実施形態に係るスケジューリング装置によって得られた各世代に対する最適解との距離の推移を示す図である。
【図６】本発明の実施例における解候補の広がりを示す特性図であり、（ａ）は比較例での結果例を示し、（ｂ）は実施例での結果例を示している。
【図７】本発明の実施例における実験１での探索結果を示す特性図である。
【図８】本発明の実施例における実験２での探索結果を示す特性図である。
【図９】従来の共存型ＧＡを概念的に示す図である。
【符号の説明】
【００９５】
２      初期個体集団生成部（初期個体群生成手段）
３      個体評価値計算部（個体評価手段）
４      親ペア選択部（親ペア選択手段）
５      交叉処理部（交叉手段）
６      次世代解候補生成部（次世代候補生成手段）
８      次世代解選択部（次世代解選択手段）
１２    制御部（制御手段）
【図１】
2005149148.tif 000014
【図２】
2005149148.tif 000015
【図３】
2005149148.tif 000016
【図４】
2005149148.tif 000017
【図５】
2005149148.tif 000018
【図６】
2005149148.tif 000019
【図７】
2005149148.tif 000020
【図８】
2005149148.tif 000021
【図９】
2005149148.tif 000022