【課題】可能な限り多くの条件を満たして違反出力を最小に抑えた予定表に、容易に改善することができる予定表作成装置、予定表作成方法、予定表作成プログラム、および予定表作成プログラムが記録された記録媒体を提供する。
【解決手段】複数の条件を満たした予定表を作成する際、条件のうち競合して満たすことができなかった条件に基づく出力である違反出力の予定表全体における総量を最小にするために、その総量を最小にすることの妨げとなった度合である影響値を条件ごとに算出し、この影響値が高い条件ほど、予定表全体における前記違反出力の総量を最小にするための上位の要件として出力する影響値算出部を備えて予定表作成装置を構成する。
複数の条件を満たした予定表を作成する際、前記条件のうち競合して満たすことができなかった前記条件に基づく出力である違反出力の前記予定表全体における総量を最小にする予定表作成装置において、
前記予定表全体における前記違反出力の総量を最小にすることの妨げとなった度合である影響値が前記条件ごとに算出されて情報テーブルに記憶され、前記条件のうち、前記影響値が高い前記条件ほど、前記予定表全体における前記違反出力の総量を最小にするための上位の要件として出力される影響値算出部が備えられた、
ことを特徴とする予定表作成装置。
複数の条件を満たした予定表を作成する際、前記条件のうち競合して満たすことができなかった前記条件に基づく出力である違反出力の前記予定表全体における総量を最小にする予定表作成方法において、
前記予定表全体における前記違反出力の総量を最小にすることの妨げとなった度合である影響値を前記条件ごとに算出して情報テーブルに記憶し、前記条件のうち、前記影響値が高い前記条件ほど、前記予定表全体における前記違反出力の総量を最小にするための上位の要件として出力する影響値算出手順を含む、
ことを特徴とする予定表作成方法。
複数の条件を満たした予定表を作成する際、前記条件のうち競合して満たすことができなかった前記条件に基づく出力である違反出力の前記予定表全体における総量を最小にする予定表作成プログラムにおいて、
前記予定表全体における前記違反出力の総量を最小にすることの妨げとなった度合である影響値を前記条件ごとに算出して情報テーブルに記憶し、前記条件のうち、前記影響値が高い前記条件ほど、前記予定表全体における前記違反出力の総量を最小にするための上位の要件として出力する影響値算出手順をコンピュータに実行させる、
ことを特徴とする予定表作成プログラム。
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記したWCSPによれば、予定表の自動作成は、ある条件を満たすことができなかった場合、その条件に違反した出力(以下、「違反出力」と記す。)の予定表全体における総量が最小となるまで繰り返される。満たそうとした条件が競合して(相反して)違反出力を改善することができなかった場合、違反出力が含まれたまま予定表が完成する。残された違反出力の改善はユーザーの調整によって図られる。
【0005】
ここで、違反出力の改善策として、違反出力を修正することが考えられるが、この修正によって予定表が改善されるとは限らない。すなわち、ある条件Aの違反出力が修正されることで、他の条件Bを満たすことができなくなる場合がある。例えば、“遅番の勤務者を毎日必ず一人配置しなければならない”という条件と、“早番の勤務者を毎日必ず一人配置しなければならない”という条件があったとする。仮に前者の条件を満たすことができない日があった場合、その日の遅番の勤務者が“0人”と表示された予定表が作成される。そこで、遅番の勤務者が“0人”から“1人”に修正された結果、“早番の勤務者を毎日一必ず人配置しなければならない”という条件を満たすことができなくなるという場合がある。したがって、すべての条件を満たした予定表を作成することは一般的に困難である。
【0006】
本発明は、上記の実情に鑑みて提案されたものである。すなわち、可能な限り多くの条件を満たして予定表全体における違反出力の総量を最小に抑えた予定表に、容易に改善することができる予定表作成装置、予定表作成方法、予定表作成プログラム、および予定表作成プログラムが記録された記録媒体の提供を目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明に係る予定表作成装置は、複数の条件を満たした予定表を作成する際、前記条件のうち競合して満たすことができなかった前記条件に基づく出力である違反出力の前記予定表全体における総量を最小にする予定表作成装置において、前記予定表全体における前記違反出力の総量を最小にすることの妨げとなった度合である影響値が前記条件ごとに算出されて情報テーブルに記憶され、前記条件のうち、前記影響値が高い前記条件ほど、前記予定表全体における前記違反出力の総量を最小にするための上位の要件として出力される影響値算出部が備えられた、ことを特徴とする。
【0008】
本発明に係る予定表作成装置は、前記条件を緩和させるための情報である修正支援情報が前記影響値ごとに関連付けられる、ことを特徴とする。
【0009】
本発明に係る予定表作成装置は、前記条件のうち、前記違反出力が多い前記条件ほど、前記予定表全体における前記違反出力の総量を最小にするための上位の要件として出力される、ことを特徴とする。
【0010】
本発明に係る予定表作成方法は、複数の条件を満たした予定表を作成する際、前記条件のうち競合して満たすことができなかった前記条件に基づく出力である違反出力の前記予定表全体における総量を最小にする予定表作成方法において、前記予定表全体における前記違反出力の総量を最小にすることの妨げとなった度合である影響値を前記条件ごとに算出して情報テーブルに記憶し、前記条件のうち、前記影響値が高い前記条件ほど、前記予定表全体における前記違反出力の総量を最小にするための上位の要件として出力する影響値算出手順を含む、ことを特徴とする。
【0011】
本発明に係る予定表作成プログラムは、複数の条件を満たした予定表を作成する際、前記条件のうち競合して満たすことができなかった前記条件に基づく出力である違反出力の前記予定表全体における総量を最小にする予定表作成プログラムにおいて、前記予定表全体における前記違反出力の総量を最小にすることの妨げとなった度合である影響値を前記条件ごとに算出して情報テーブルに記憶し、前記条件のうち、前記影響値が高い前記条件ほど、前記予定表全体における前記違反出力の総量を最小にするための上位の要件として出力する影響値算出手順をコンピュータに実行させる、ことを特徴とする。
【0012】
本発明に係るコンピュータで読み取り可能な記録媒体は、予定表作成プログラムが記録された、ことを特徴とする。
【発明の効果】
【0013】
本発明に係る予定表作成装置、予定表作成方法、予定表作成プログラム、および予定表作成プログラムが記録された記録媒体は上記した構成である。すなわち、複数の条件を満たして予定表全体における違反出力の総量を最小に抑えた予定表を作成するに当たり、このような予定表を作成することの妨げとなっている原因は、影響値が高い条件の存在である。したがって、例えば影響値が高い条件を緩和することで、可能な限り多くの条件を満たした予定表に、容易に改善することができる。
【0014】
本発明に係る予定表作成装置は、条件を緩和させるための情報である修正支援情報が影響値ごとに関連付けられる。したがって、条件を緩和する際、修正支援情報に則って容易に緩和することができ、可能な限り多くの条件を満たした予定表に、容易に改善することができる。
【0015】
本発明に係る予定表作成装置は、前記条件のうち、違反出力が多い条件ほど、予定表全体における違反出力の総量を最小にするための上位の要件として出力される。したがって、条件を緩和する際、違反出力が多い条件を優先的に緩和することができ、可能な限り多くの条件を満たした予定表に、容易に改善することができる。
【図面の簡単な説明】
【0016】
【
図1】本発明の実施形態に係る予定表作成装置のハードウェア構成図である。
【
図2】本発明の実施形態に係る予定表作成装置による予定表の作成の流れが示されたフロー図である。
【
図3】本発明の実施形態に係る予定表作成装置の影響値算出部による処理の流れが示されたフロー図である。
【
図4】本発明の実施形態に係る予定表作成装置の影響値算出部による処理の一部を説明する説明図である。
【
図5】本発明の実施形態に係る予定表作成装置の影響値算出部による処理の一部を説明する説明図である。
【
図6】本発明の実施形態に係る予定表作成装置の影響値算出部による処理の一部を説明する説明図である。
【
図7】本発明の実施形態に係る予定表作成装置の影響値算出部による処理の一部を説明する説明図である。
【
図8】本発明の実施形態に係る予定表作成装置の影響値算出部による処理の一部を説明する説明図である。
【
図9】本発明の実施形態に係る予定表作成装置の影響値算出部による処理の一部を説明する説明図である。
【
図10】本発明の実施形態に係る予定表作成装置の影響値算出部による処理の一部を説明する説明図である。
【
図11】本発明の実施形態に係る予定表作成装置の影響値算出部による処理の一部を説明する説明図である。
【
図12】本発明の実施形態に係る予定表作成装置の影響値算出部による処理の一部を説明する説明図である。
【
図13】本発明の実施形態に係る予定表作成装置の影響値算出部による処理の一部を説明する説明図である。
【
図14】本発明の実施形態に係る予定表作成装置の影響値算出部による処理の一部を説明する説明図である。
【
図15】本発明の実施形態に係る予定表作成装置の影響値算出部による処理の一部を説明する説明図である。
【
図16】本発明の実施形態に係る予定表作成装置の影響値算出部による処理の一部を説明する説明図である。
【
図17】本発明の実施形態に係る予定表作成装置の影響値算出部による処理結果を説明する説明図である。
【
図18】本発明の実施形態に係る予定表作成装置によって作成された予定表の説明図である。
【発明を実施するための形態】
【0017】
以下に、本発明の実施形態に係る予定表作成装置10を図面に基づいて説明する。
図1は本実施形態に係る予定表作成装置10のハードウェアの構成が示されている。
図2は予定表作成装置10による予定表の作成の流れが示されている。
図3は影響値算出部7による処理の流れが示されている。
【0018】
図1に示されているとおり、予定表作成装置10はCPU1、記憶部2、入力部6、影響値算出部7、出力部8、を有し、複数の条件を満たした予定表を作成する際、優先順位が上位である優先条件を優先すると共に、条件のうち競合して(相反して)満たすことができなかった条件(以下、「未達条件」と記す。)に基づく出力である違反出力の予定表全体における総量を最小にした予定表を作成する。この予定表作成装置10によって予定表作成方法が実現される。影響値算出部7はCPU1に組み込まれていてもよい。なお、「違反出力の予定表全体における総量を最小にした予定表」とは、結果的に、予定表全体における違反出力の個数を最小にした予定表ともいえるが、制約充足問題(Constraint Satisfaction Problem:CSP)と区別するため、本発明ではこのように表現する。
【0019】
予定表の自動作成にあたり(
図2:ステップS1−1、
図3:ステップS2−1)、影響値算出部7では、影響値が条件ごとに算出されて関連付けられる。影響値とは予定表全体における違反出力の総量を最小にすることの妨げとなった度合をいう。具体的には、影響値はWCSPのアルゴリズムに基づいて算出される。WCSPによれば、指定された条件に則って1度ランダムに予定表が作成され、その結果に基づいて、未達条件に基づく予定表全体における違反出力の総量が最小になるまで条件が組み換えられてリトライされる。その際、条件が組み換えられる度に未達条件の影響値が上げられ(影響値の重みが重くなり)、違反出力が抑えられる。影響値が上げられる条件式は、次式によって表される。
【0021】
式1によれば、条件l(エル)が未達条件となった場合、それに応じた数値が加算されて影響値であるV
Lが算出され、一方、条件l(エル)が満たされた場合、V
Lは変化しない。例えば、“ある勤務者の夜勤の回数は1ヶ月に1回である”という条件Xがある場合において、その勤務者の夜勤の回数が1ヶ月に4回入った予定表が作成されたとする。この後、条件が組み換えられてリトライされる際、条件Xは影響値が上げられるため先に作成された予定表が採用され難くなる。すなわち、条件Xに基づく違反出力の総量(予定表全体における違反出力の総量)を小さくしようとして組み換えられてリトライが行われる。ただし、条件Xが満たされて条件全体としての違反出力の総量(予定表全体における違反出力の総量)が抑えられる場合であっても、例えば他の条件Yとの関係で、条件Yが満たされて条件全体としての違反出力の総量(予定表全体における違反出力の総量)が前者(条件Xが満たされて条件全体としての違反出力の総量が抑えられる場合)よりも少ない場合は、条件Xは未達条件となる場合がある。
【0022】
以上より、予定表が作成される際、影響値が高い条件ほど他の条件と比較して予定表全体における違反出力の総量を最小にすることの妨げとなるといえる。すなわち、影響値が高い条件は、予定表の作成に関し、他の条件よりも多大な影響を及ぼすといえる。
【0023】
次に影響値算出部7では、影響値が高い条件ほど、予定表全体における違反出力の総量を最小にするための上位の要件として出力されると共に、条件を緩和させるための情報である修正支援情報が影響値ごとに関連付けられて表示される(
図2:ステップS1−2)。ここで、
図3から
図17に基づいて、影響値算出部7における処理を説明する。上記したとおり
図3は影響値算出部7による処理の流れが示されている。
図4から
図17は各処理におけるテーブルなどが示されている。
【0024】
図3に示されているとおり、ステップS2−1では、算出されたV
Lの情報(以下、「V
L情報」と記す。)が抽出されてV
L情報テーブルが作成される。
図4に示されたとおりV
L情報は、制約式番号、制約タイプ、影響値、違反出力、制約種、情報1、情報2、および情報3が含まれている。制約タイプは、条件間における優先順位であり、SEMI_HARD、Hardの順で優先順位が上がる。影響値は予定表全体における違反出力の総量を最小にすることの妨げとなった度合である。影響値が高い程、予定表全体における違反出力の総量が最小である予定表を作成する際に妨げとなる。違反出力は未達条件に基づく出力である。違反出力が“0”であれば、その条件に違反した出力がなく、その条件が満たされていることを示す。違反出力が“1”であればその条件に違反した出力の個数が1個であり、同様に“2”であればその条件に違反した出力の個数が2個であることを示す。例えば、
図18に示されているとおり、違反出力箇所1は、条件が“22日の深夜勤は合計で1名以上である”であるのに対し、表示が“0”である。したがって、違反出力は“1”である。また、違反出力箇所2は、条件が“23日の夜勤は合計で4名以上である”であるのに対し、表示が“2”である。したがって、違反出力は“2”である。制約種は、条件の種類である。情報1から3は、名称情報が読み込まれる際のキーや、勤務者、勤務、日付に付随する情報など、予定表の行列における位置などである(
図18参照)。
【0025】
ステップS2−2では、共通例外情報(
図5)がデータベースなどの外部データから読み出されてV
L情報と比較され、制約種が共通例外情報に該当する条件がV
L情報テーブルから削除される(
図6)。共通例外情報は、必ず満たされなければならない条件が、その制約種単位で指定されたものである。共通例外情報に該当するのは、例えば“夜勤明けの次の日は必ず休日とする”という条件などである。なお、共通例外情報は任意である。
【0026】
ステップS2−3では、部署毎例外情報(
図7)が外部データから読み出されてV
L情報と比較され、制約種が部署毎例外情報に該当する条件がV
L情報テーブルから削除される(
図8)。部署毎例外情報は、ユーザーが所属する部署ごとに必ず満たされなければならない条件が、その制約種単位で指定されたものである。部署毎例外情報に該当するのは、例えば、2交代部署において“準夜勤の次の日は必ず深夜勤とする”という条件などである。部署毎例外情報は、共通例外情報と同様に任意である。
【0027】
ステップS2−4では、第1キーとして、影響値が高い条件ほど予定表全体における違反出力の総量を最小にするための上位の要件として並べ替えられる。さらにステップS2−5では、第2キーとして、違反出力が多い未達条件ほど、予定表全体における違反出力の総量を最小にするための上位の要件として並べ替えられる(
図9)。なお、各ステップS2−4、S2−5では、影響値、違反出力に基づく降順または昇順は任意である。
【0028】
ステップS2−6では、第3キーとして、制約並び情報(
図10)が外部データから読み出されて並べ替えられる(
図11)。制約並び情報は、制約種の優先順位を定めたものである。制約種は、ユーザーが緩和しやすい条件ほど優先順位が上位である。ユーザーが緩和しやすい条件とは、例えば“日毎の必要人数”である。なお、ユーザーが緩和しやすい条件はユーザーの職種等によって異なる。
【0029】
ステップS2−7では、読込件数情報(
図12)が外部データから読み出され、上位の条件が読込件数に則ってV
L情報テーブルに残され、残りが削除される(
図13)。読込件数情報は、出力される際に表示される件数の上限値が定められたものである。
【0030】
ステップS2−8では、修正支援情報が読み出されて影響値ごとに(条件ごとに)関連付けられる。修正支援情報は、ヒントメッセージ情報と名称情報とから構成されている。ヒントメッセージ情報(
図14)は外部データから読み出され、制約種をキーとしてV
L情報と置換・結合され、一方、名称情報(
図15)は外部データから読み出され、情報1から3までをキーとしてV
L情報と置換・結合される(
図16)。
図14に示されたとおり、ヒントメッセージ情報は、条件を緩和させるための具体的な指示が制約種ごとに関連付けられたものであり、また
図15に示されたとおり、名称情報は、ユーザーの名称、勤務形態などが情報コード(情報1から3)ごとに関連づけられたものである。なお、制約式番号、制約種、情報1から3までの各列はV
L情報テーブルから削除される。
【0031】
ステップS2−8について詳説すれば、例えば、
図13における制約式番号“2971”は、制約種が“C1”であるため、ヒントメッセージ情報(
図14)から制約種“C1”のヒントメッセージである“X日のSのGの人数を下げてください”が読み出される。制約式番号“2971”の情報1は、“23”であるため、“17日”(
図18において左端を0として23列目)が読み出される。同様に、制約式番号“2971”は、情報2が“S2”であるため名称情報(
図15)から情報コード“S2”の名称である“準夜勤”が読み出され、情報3が“G1”であるため名称情報(
図15)から情報コード“G1”の名称である“リーダー”が読み出される。読み出された“X日のSのGの人数を下げてください”、“17日”、“準夜勤”、“リーダー”、が置換・結合され、「17日の準夜勤のリーダーの人数を下げてください」という修正支援情報が完成する。修正支援情報は影響値ごとに(条件ごとに)関連付けられる。
【0032】
ステップS2−9では、処理された結果が画面フォーマットに応じて表示される。
図17に示されているとおり、影響値が高い条件ほど予定表全体における違反出力の総量を最小にするための上位の要件として表示され、違反出力が多い未達条件ほど、予定表全体における違反出力の総量を最小にするための上位の要件として表示される。例えば、“制約タイプ”は「強さ」として表される。満たされなければならい優先順位が「必ず(Hard)」や「極力(SEMI_HARD)」で表される。修正支援情報は、予定表作成装置10に登録されたユーザーの名称、役職、勤務形態、日にちなどが示され、条件を緩和するための具体的な指示が「修正内容」として表される。なお、表示する際、影響値、違反出力に基づく降順または昇順は任意である。
【0033】
図2に示されたとおり、処理された結果に基づいて条件を緩和するか否かがユーザーによって判断される(ステップS1−3)。条件が緩和される場合はユーザーによって条件が修正され(ステップS1−4)、予定表が再度自動作成される(ステップS1−1)。一方、条件が緩和されない場合は、予定表における違反出力の位置が表示される(ステップS1−5)(
図18参照)。違反出力が許容できるか否かがユーザーによって判断され(ステップS1−6)、許容される場合は予定表の作成が終了して予定表が完成する。一方、違反出力が許容されない場合は、再度自動作成するか否かがユーザーによって判断される(ステップS1−7)。自動作成されない場合は予定表が修正され(ステップS1−10)、一方、自動作成される場合は、再度情報が入力され(ステップS1−8)、条件が初期状態となって(ステップS1−9)再度自動作成される(ステップS1−1)。
【0034】
上記した予定表作成装置10は、影響値算出部7を稼働させる際、少なくとも入力部6、記憶部2、出力部8を使用する。
【0035】
入力部6は、キーボードやマウス、タッチパネルなどから構成され、また、出力部8は、液晶ディスプレイなどから構成される。記憶部2は、ROM3、RAM4、HDD5から構成される。
【0036】
CPU1は、入力部6からの入力情報を検出すると共に、ROM3に格納されたプログラムに従って、CPU1に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの一部が格納されたRAM4を使用して予定表作成装置10を制御し、入力情報の処理結果を出力部8に出力する。
【0037】
なお、予定表作成装置10は、ハードウェア構成、DSP(Digital Signal Processor)、MPU(Micro Processing Unit)、ソフトウェアによって実現することが可能である。例えば、ソフトウェアによって実現する場合、実際にはコンピュータのCPU1、あるいはMPU、ROM3、RAM4などを備えて構成し、ROM3やRAM4に記憶されたプログラムが動作することによって実現できる。
【0038】
したがって、コンピュータが上記各装置の機能を果たすように動作させる予定表作成プログラムを、例えばCD−ROMなどの記録媒体に記録し、コンピュータに読み込ませることによって実現できる。予定表作成プログラムを記録する記録媒体としては、CD−ROM以外に、例えばフレキシブルディスク、光ディスク等を用いることができる。また、予定表作成プログラムをインターネットなどのネットワークを介してコンピュータにダウンロードすることによっても実現できる。さらに、これらのハードウェア、ソフトウェア資源を、ネットワークを介して提供することもできる。
【0039】
上記のとおり、予定表作成装置10、予定表作成方法、予定表作成プログラム、および予定表作成プログラムが記録された記録媒体が構成されている。
【0040】
次に、予定表作成装置10、予定表作成方法、予定表作成プログラム、および予定表作成プログラムが記録された記録媒体の効果を説明する。
【0041】
上記のとおり、予定表作成装置10、予定表作成方法、予定表作成プログラム、および予定表作成プログラムが記録された記録媒体によれば、影響値算出部7では、影響値がWCSPのアルゴリズムに基づいて条件ごとに算出され、条件のうち、影響値が高い条件ほど、予定表全体における違反出力の総量を最小にするための上位の要件として出力されると共に、条件を緩和させるための情報である修正支援情報が影響値ごとに関連付けられて表示される。複数の条件を満たして予定表全体における違反出力の総量を最小に抑えた予定表を作成するに当たり、このような予定表を作成するすことの妨げとなっている原因は、影響値が高い条件の存在である。
【0042】
したがって、例えば影響値が高い条件を緩和することで、可能な限り多くの条件を満たした予定表に、容易に改善することができる。また条件を緩和する際、修正支援情報に則って容易に緩和することができる。
【0043】
本発明に係る予定表作成装置10、予定表作成方法、予定表作成プログラム、および予定表作成プログラムが記録された記録媒体によれば、条件のうち、違反出力が多い条件ほど、予定表全体における違反出力の総量を最小にするための上位の要件として並べ替えられる。したがって、条件を緩和する際、違反出力が多い条件を優先的に緩和することができ、可能な限り多くの条件を満たした予定表に、容易に改善することができる。
【0044】
以上、本発明の実施形態を詳述したが、本発明は上記実施形態に限定されるものではない。そして本発明は、特許請求の範囲に記載された事項を逸脱することがなければ、種々の設計変更を行うことが可能である。予定表は、例えば病院、販売店、会社など、様々な勤務形態に対応することができる。