(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-30
(45)【発行日】2024-08-07
(54)【発明の名称】情報処理装置、情報処理方法及びコンピュータプログラム
(51)【国際特許分類】
G06Q 10/0631 20230101AFI20240731BHJP
G06Q 10/1093 20230101ALI20240731BHJP
【FI】
G06Q10/0631
G06Q10/1093
(21)【出願番号】P 2020150715
(22)【出願日】2020-09-08
【審査請求日】2022-11-24
【前置審査】
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(73)【特許権者】
【識別番号】598076591
【氏名又は名称】東芝インフラシステムズ株式会社
(74)【代理人】
【識別番号】100107582
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100118876
【氏名又は名称】鈴木 順生
(72)【発明者】
【氏名】愛須 英之
(72)【発明者】
【氏名】山口 大輔
(72)【発明者】
【氏名】池田 克己
【審査官】庄司 琴美
(56)【参考文献】
【文献】特開2004-013487(JP,A)
【文献】特開2008-176417(JP,A)
【文献】国際公開第2016/203531(WO,A1)
【文献】特開2020-113161(JP,A)
【文献】特開2008-077281(JP,A)
【文献】特開2016-189079(JP,A)
【文献】特開2004-227235(JP,A)
【文献】特開平10-143565(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00 - 99/00
(57)【特許請求の範囲】
【請求項1】
複数の作業員が行う作業の第1候補計画を、前記作業に関する第1制約条件と前記第1制約条件の重みとを含む制約情報に基づき生成し、
前記第1候補計画が違反している制約に関する、前記作業に関する第2制約条件を取得するとともに前記第2制約条件の重みを設定し、前記第2制約条件と前記第2制約条件の重みとに基づき前記制約情報を更新
し、
前記第2制約条件と同じ第1制約条件が前記制約情報に含まれる場合は、前記第2制約条件と同じ前記第1制約条件の重みを変更する、処理部
を備えた情報処理装置。
【請求項2】
前記処理部は、前記第1候補計画に制約違反があるか否かのチェック要求を出力し、前記第1候補計画が違反している制約に関する前記第2制約条件を取得する
請求項1に記載の情報処理装置。
【請求項3】
前記処理部は、前記第2制約条件と同じ制約条件が前記制約情報に含まれない場合は、前記第2制約条件と前記第2制約条件の重みとを前記制約情報に追加する
請求項1又は2に記載の情報処理装置。
【請求項4】
前記第2制約条件は、前記作業員に対して2つ以上の前記作業の特定の並び方を禁止する
請求項1~
3のいずれか一項に記載の情報処理装置。
【請求項5】
前記第2制約条件は、特定の作業員と特定の作業との組み合わせを禁止する
請求項1~
4のいずれか一項に記載の情報処理装置。
【請求項6】
前記作業は少なくとも1つの属性を含み、
前記第2制約条件は、特定の作業員と特定の属性との組み合わせを禁止する
請求項1~
5のいずれか一項に記載の情報処理装置。
【請求項7】
前記作業は少なくとも1つの属性を含み、
前記第2制約条件は、第1の長さの期間内に前記作業員に割り当てた前記作業の前記属性の値の総和の上限値及び下限値の少なくとも一方を含む
請求項1~
6のいずれか一項に記載の情報処理装置。
【請求項8】
前記第1制約条件及び前記第2制約条件は、前記第1の長さの期間内に前記作業員に割り当てた前記作業の前記属性の値の総和の上限値及び下限値の少なくとも一方を含み、
前記処理部は、前記制約情報に含まれる前記第1制約条件における前記上限値及び下限値の少なくとも一方を、前記第2制約条件における前記上限値及び前記下限値の少なくとも一方に基づき更新する
請求項
7に記載の情報処理装置。
【請求項9】
前記作業は少なくとも1つの属性を含み、前記第2制約条件は、複数の前記作業の属性の特定の並び方を禁止する、
請求項1~
8のいずれか一項に記載の情報処理装置。
【請求項10】
前記処理部は、前記作業員に予め割り当てた前記作業の予約データに基づき、前記第1候補計画を生成する
請求項1~
9のいずれか一項に記載の情報処理装置。
【請求項11】
前記処理部は、前記チェック要求をユーザの操作装置に出力し、前記操作装置から前記第2制約条件を取得する
請求項2に記載の情報処理装置。
【請求項12】
前記処理部は、前記制約違反の有無をチェックする装置に前記チェック要求を出力し、前記装置から前記第2制約条件を取得する
請求項2に記載の情報処理装置。
【請求項13】
複数の作業員が行う作業の作業計画を生成するための第1制約条件と前記第1制約条件の重みとを含む制約情報を更新する処理部を備え、
前記処理部は、前記作業計画の候補が違反する制約に関する第2制約条件を取得し、前記第2制約条件と前記第2制約条件の重みとに基づき前記制約情報を更新
し、
前記処理部は、前記第2制約条件と同じ第1制約条件が前記制約情報に含まれる場合は、前記第2制約条件と同じ前記第1制約条件の重みを変更する、
情報処理装置。
【請求項14】
前記処理部は、更新した制約情報の一部もしくは全てを初期化することが可能である
請求項1~
13のいずれか一項に記載の情報処理装置。
【請求項15】
複数の作業員が行う作業の第1候補計画を、前記作業に関する第1制約条件と前記第1制約条件の重みとを含む制約情報に基づき生成し、
前記第1候補計画が違反している制約に関する、前記作業に関する第2制約条件を取得するとともに前記第2制約条件の重みを設定
し、前記第2制約条件と前記第2制約条件の重みとに基づき前記制約情報を更新
し、
前記第2制約条件と同じ第1制約条件が前記制約情報に含まれる場合は、前記第2制約条件と同じ前記第1制約条件の重みを変更する、
コンピュータが実行する情報処理方法。
【請求項16】
複数の作業員が行う作業の第1候補計画を、前記作業に関する第1制約条件と前記第1制約条件の重みとを含む制約情報に基づき生成するステップと、
前記第1候補計画が違反している制約に関する、前記作業に関する第2制約条件を取得するとともに前記第2制約条件の重みを設定
し、前記第2制約条件と前記第2制約条件の重みとに基づき前記制約情報を更新するステップと
、 をコンピュータに実行させ
、
前記更新するステップは、前記第2制約条件と同じ第1制約条件が前記制約情報に含まれる場合は、前記第2制約条件と同じ前記第1制約条件の重みを変更する
コンピュータプログラム。
【請求項17】
複数の作業員が行う作業の第1候補計画を、前記作業に関する第1制約条件を含む制約情報に基づき生成し、前記制約情報は、前記第1制約条件の重みを含み、
前記第1候補計画に基づき前記作業に関する第2制約条件を取得し、前記第2制約条件に基づき前記制約情報を更新し、
前記第2制約条件と同じ第1制約条件が前記制約情報に含まれる場合は、前記第2制約条件と同じ前記第1制約条件の重みを変更する、処理部、
を備えた情報処理装置。
【請求項18】
複数の作業員が行う作業の第1候補計画を、前記作業に関する第1制約条件を含む制約情報に基づき生成し、前記制約情報は、前記第1制約条件の重みを含み、
前記第1候補計画に基づき前記作業に関する第2制約条件を取得し、前記第2制約条件に基づき前記制約情報を更新し、
前記第2制約条件と同じ第1制約条件が前記制約情報に含まれる場合は、前記第2制約条件と同じ前記第1制約条件の重みを変更する
、
コンピュータが実行する情報処理方法。
【請求項19】
複数の作業員が行う作業の第1候補計画を、前記作業に関する第1制約条件を含む制約情報に基づき生成し、前記制約情報は、前記第1制約条件の重みを含む、ステップと、
前記第1候補計画に基づき前記作業に関する第2制約条件を取得し、前記第2制約条件に基づき前記制約情報を更新するステップと、
前記第2制約条件と同じ第1制約条件が前記制約情報に含まれる場合は、前記第2制約条件と同じ前記第1制約条件の重みを変更するステップと、
をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報処理装置、情報処理方法及びコンピュータプログラムに関する。
【背景技術】
【0002】
現場における多種多様な制約条件を満たすように、各作業員に作業を割り当てる計画を勤務計画もしくはシフトスケジューリングと称する。非正規従業員の増加を背景として、交通、製造、医療、介護、店舗、教育等の各種分野において、人的リソースを対象とする勤務計画(シフトスケジューリング)の自動化ニーズが高まっている。例えば、鉄道や公共交通などの交通分野における例として、乗務員計画がある。乗務員計画とは、いわゆる交番計画と呼ばれる匿名の基本計画を各乗務員の個別条件(年休、資格など)を満足するように具体的な勤務計画(シフトスケジューリング)に落とし込む作業のことである。
【0003】
人的リソースを対象とする勤務計画では、現場ノウハウに相当する、「出来る限り守って欲しい」という制約条件(以降、ソフト制約条件と称する)が非常に多い。ソフト制約条件では、相互に矛盾の発生するソフト制約条件を同時に満たすことを求められる場合や、全てのソフト制約条件を充足する解が存在しない場合が頻繁に発生する。
【0004】
このようなソフト制約条件を設定された場合のスケジューリングの一般解法の代表例として、非特許文献1に示しているような方法が知られている。まず、各ソフト制約条件について、制約条件の違反度に応じたペナルティの計算式と、各制約条件の重要度に応じた重みとを定義する。その上で、ペナルティの加重和を最小化する重み付き制約充足問題という形式で計画問題を表現する。この計画問題を、組み合わせ最適化問題として解く。
【0005】
これらの方法では、各制約条件の優先度及び各制約条件の重みを事前にバランス良い値としてチューニングすることが非常に難しい。また、同一の会社でも職場ごとに特有の制約条件があるため、漏れなく条件を聞き出して制約条件として反映させることが難しかった。また、運用開始後に不定期に就業規則が変更(すなわち制約条件が変更)されることが多いため、計画生成を行う計画モジュールのパラメータ設定データのメンテナンスも難しい。このため、優先度及び重みのチューニングは、従来は人手に頼っていた。
【0006】
このような課題を解決するための技術の一つとして、いわゆる事例ベースと呼ばれる古典的な人工知能分野の手法が存在する。この手法では、入力データと類似している過去の事例データを発見し、発見した事例データを、対象で使用すべき制約条件の選択や、計画の生成に利用する。他の技術として、教師となる過去の計画事例を蓄積し、教師データの特徴量に、自動提案した計画の特徴量が近づくように制約条件及び制約条件の重みを学習する方式なども存在する。しかし、上記で挙げた事例ベースによる方法や、過去の計画事例から制約条件や重みを学習する方法は、熟練者が作成した正しい計画の事例データを大量に準備する必要があり、実用化の障壁が高かった。
【先行技術文献】
【特許文献】
【0007】
【文献】特開2018-120342号公報
【文献】特開2019-028576号公報
【文献】特許第6467264号公報
【文献】特許第6502816号公報
【文献】特許第6622592号公報
【非特許文献】
【0008】
【文献】野々部 宏司: 「メタヒューリスティックスによる汎用ソルバーの構築」,日本オペレーションズ・リサーチ学会誌, 2011年5月号,p257-262
【文献】池上敦子 他: 「我が国におけるナース・スケジューリング問題」,日本オペレーションズ・リサーチ学会誌, 1996年8月号,p436-442
【発明の概要】
【発明が解決しようとする課題】
【0009】
本発明の実施形態は、前述のソフト制約条件の設定と優先度及び各制約条件の重みのチューニングを行うための情報処理装置、情報処理方法及びコンピュータプログラムを提供する。
【課題を解決するための手段】
【0010】
本発明の実施形態に係る情報処理装置は、複数の作業員が行う作業の第1候補計画を、前記作業に関する第1制約条件を含む制約情報に基づき生成する計画生成部と、前記第1候補計画に基づき前記作業に関する第2制約条件を取得し、前記第2制約条件に基づき前記制約情報を更新する更新部とを備える。
【図面の簡単な説明】
【0011】
【
図1】本発明の実施形態に係る計画システムを示すブロック図。
【
図3】作業の属性情報の定義データの一例を示す図。
【
図4】候補計画の一例と、制約条件に違反している箇所とを示す図。
【
図6】候補計画の一例と、制約条件に違反している箇所とを示す図。
【
図8】候補計画の一例と、制約条件に違反している箇所とを示す図。
【
図10】候補計画の一例と、制約条件に違反している箇所とを示す図。
【
図12】本実施形態に係る計画システムの処理の一例のフローチャート。
【
図13】
図1の計画生成装置又は計画管理装置のハードウェア構成を示す図。
【発明を実施するための形態】
【0012】
以下、図面を参照しながら、本発明の実施形態について説明する。
【0013】
図1は、本発明の実施形態に係る計画システムを示すブロック図である。
図1の計画装置は、本実施形態に係る情報処理装置の一形態である計画生成装置1と、計画管理装置2とを備える。
【0014】
図1の計画システムの概要を説明する。計画生成装置1は、作業員に割り当てる作業に関する少なくとも1つの制約条件(第1制約条件)を含む制約情報に基づき、作業員が行う作業の候補計画を生成する。生成した候補計画を計画管理装置2に提供する。計画管理装置2では、候補計画に制約違反があるかを判断し、制約違反が存在する場合に、制約違反の内容を含む制約違反情報を計画生成装置1にフィードバックする。計画生成装置1は、計画管理装置2からフィードバックされた制約違反情報を計画システムで解釈可能な制約条件に変換し、変換された制約条件に基づき、上述の制約情報を更新(制約条件の学習)する。計画生成装置1は、候補計画の生成と、制約情報の更新(制約条件の学習)とを繰り返すことにより、最終的な作業計画を生成する。これにより、現場における制約の変更、追加、削除等があったり、現場における制約が多種多様であったりしたとしても、現場における制約をできるだけ満足する計画を簡単に生成する汎用的なシステムを実現できる。以下、
図1の計画システムについて詳細に説明する。
【0015】
計画管理装置2は、入力部10、作業データ記憶部11、予約データ記憶部12、初期計画記憶部13、初期制約条件記憶部14、制約条件記憶部15、計画記憶部16、計画生成部17、制約条件取得部25、制約条件比較部21、更新部26、を備えている。制約条件取得部25は、違反情報一時記憶部18、違反情報変換部19、制約条件一時記憶部20を備えている。更新部26は、制約条件追加部22、重み変更部23を備えている。
【0016】
計画生成部17は、作業データ記憶部11、予約データ記憶部12、初期計画記憶部13、初期制約条件記憶部14及び制約条件記憶部15に記憶されたデータに基づき、少なくとも1人の作業員(スタッフ)に1日又は複数の日(時間帯)における作業を割り当てることにより候補計画を生成する。生成する計画の例としては、前述した鉄道の乗務員の勤務計画がある。
【0017】
図2に乗務員の勤務計画の例を示す。勤務計画として、乗務員ごとに各日(時間帯)に作業を割り当てている。ここで、「行路」は、該当日における1シフトの乗務を示し、作業員に割り当てるべき作業に相当する。「年休」は有給休暇を示し、「休」は定休日を示す。休みの種類には、「公休」、「特別休暇」など他のものがあってもよい。
【0018】
作業データ記憶部11に記憶される各作業の定義データは、作業を一意に特定可能なID情報を含む、属性情報を備える。
図3は、行路の定義データの具体例を示す。休み扱い、勤務種別、勤務時間、勤務開始時刻、勤務終了時刻、休憩時間、乗車する列車の車種、列車の経由区間など、複数の属性の値を示す項目が含まれる。「休み扱い:NO」は、乗務員の休みの日でないことを表す。図示の属性の組は一例であり、その他の属性情報が含まれていてもよいし、
図3に示した属性情報の一部が存在しなくてもよい。
図2に示した複数の行路のうち同じ番号(ID )の行路は、
図3の各項目の値が同じであることを意味する。
【0019】
本実施形態で生成対象とする計画は、乗務員の勤務計画以外にも、各日(各時間帯)で処理しなければならない作業の組が与えられており、各作業員に作業を割り当てる、いわゆるシフトスケジューリングで生成する計画であれば特に限定されない。例えば、製造計画や建築工事の分野において、各時間帯に処理すべき作業に作業員を割当する計画でもよい。また、医療や介護の分野において、各時間帯に対応すべき作業(チェック、患者への処置など)が事前に決まっており、各作業員の資格や出勤予定に応じて、各作業を各作業員に割り当てる計画でもよい。また、店舗において複数種類の作業がありそれぞれに作業員を割り当てる計画でもよい。また、教育分野で、各時間帯(時間割)に対し対応可能な教師を割り当てる計画でもよい。属性情報の種類は、計画の生成対象とする作業の種類によって異なる。
【0020】
入力部10は、記憶部11~14の少なくとも1つに格納するデータを入力する入力装置である。入力部10は、一例として、本システムのユーザが操作する装置、例えばマウス、キーボード、タッチパネルでもよい。あるいは、入力部10は、ユーザが音声、ジェスチャ等により情報を入力する装置でもよい。あるいは、入力部10は、図示しない有線又は無線の通信ネットワークを介して、外部の装置(サーバ、端末、又はストレージ等)からデータを受信し、受信したデータを記憶部11~14の少なくとも1つに入力する通信装置でもよい。
【0021】
作業データ記憶部11は、各日(各時間帯)で処理すべき作業を含む作業データを記憶する。作業データ記憶部11は、一例としてデータベース(DB)又はリスト等により構成される。作業データ記憶部11は、計画の生成対象となる期間の各日(各時間帯)について、対応しなければならない複数の作業の組を記憶している。また、作業データ記憶部11は、各作業の定義データを記憶している。計画の生成対象となる期間の各時間帯について、対応しなければならない全ての作業に、それぞれ異なる1人の作業員(鉄道の場合は乗務員)を割り当てる必要がある。
【0022】
予約データ記憶部12は、予め各作業員に割り当てられた作業や休みを含む予約データを記憶する。予約データ記憶部12は、一例としてデータベース(DB)又はリスト等により構成される。計画を生成する際、予約データに示される割り当てを守る必要がある。なお、予約データを用いずに計画を生成することも可能である。この場合、予約データ記憶部12は不要である。
【0023】
初期計画記憶部13は、計画の生成対象となる期間の各時間帯について、対応しなければならない全ての作業に、それぞれ異なる作業員を割り当てた初期計画を記憶する。初期計画記憶部13は、一例としてデータベース(DB)又はリスト等により構成される。初期計画は、ユーザがマニュアルで生成した計画でもよいし、ランダムに各作業員に作業を割り当てた計画でもよいし、その他で生成した計画でもよい。初期計画を用いずに、ゼロベースで計画を生成することも可能である。
【0024】
初期制約条件記憶部14は、作業員(乗務員等)に割り当てる作業に関する予め決められた制約条件(初期制約条件)を記憶する。初期制約条件記憶部14は、一例としてデータベース(DB)又はリスト等により構成される。各制約条件には重みが設定されている。制約条件の簡単な例として、「年休」、「休」などの休暇の日には乗務員に行路を割り当てることを禁止する制約条件がある。制約条件には様々な種類がある。制約条件の詳細については後述する。
【0025】
制約条件記憶部15は、本システムによって学習された制約条件を記憶する。制約条件記憶部15は、一例としてデータベース(DB)又はリスト等により構成される。初期状態では、制約条件記憶部15にはまだ制約条件が記憶されていなくてもよい。制約条件には、重みが設定されている。制約条件記憶部15に記憶されている制約条件を格納したリストを第1制約条件リストと呼ぶ。
【0026】
制約条件記憶部15に記憶されている制約条件の集合は、第1制約条件に対応する。初期制約条件記憶部14に記憶されている初期制約条件も含むように制約情報を定義してもよい。
【0027】
計画生成部17は、作業データ記憶部11、予約データ記憶部12及び初期計画記憶部13に記憶されているデータと、初期制約条件記憶部14及び制約条件記憶部15に記憶されている制約条件とに基づき、複数の作業員に対し、各日(各時間帯)において対応すべき作業(行路等)を割り当てた候補計画を生成する。計画生成部17は、生成した候補計画を計画記憶部16に格納する。また、計画生成部17は、生成した候補計画に制約違反があるか否かのチェック要求を、計画管理装置2に提供する。
【0028】
計画生成部17が計画を生成するアルゴリズムは、先述のソフト制約条件を扱うことが可能な公知の方法を利用する。以下、最適化問題としての定義の一例について説明する。記憶部14,15に記憶されているそれぞれの制約条件の種類に応じて、制約条件の違反度に応じたペナルティと、制約条件の重要度に応じた重みとを定義する。ペナルティの加重和を最小化する重み付き制約充足問題として問題を定義し、この問題を組み合わせ最適化問題として解く。組み合わせ最適化問題の解法としては、構築法又は逐次改善法などがある。構築法は、制約を満足する作業(行路)を順次充当して行く方法である。逐次法は、逐次的に計画を微修正しては内部的に評価することを反復する方法(最急降下法、タブーサーチ、遺伝的アルゴリズム、シミュレーティド・アニーリングなど)である。解法には他にも様々あるが、ここでは特に限定しない。
【0029】
本実施形態における解法の具体例を示す。以下のように記号を定義する。
Ck:制約条件
pk(x):k番目の制約条件の違反度に応じたペナルティ(制約条件を満たすとき0となる)
Wk:制約条件の重要度に応じた重み(>=0)
x:変数、x=(x1,m1,j1,…, xd,m,j,…, xD,M,J)(∀d∈D, ∀j∈J(d)),xd,m,j∈{0,1}
D:日(時間帯)の集合
M:作業員の集合
J:割り当てるべき作業(行路等)の集合
J(d):日(時間帯)d∈Dの割り当て対象の作業の集合(⊆J)。割り当てるべき作業j(d)はd毎に異なる。
p(x):ペナルティの加重和、P(x)=Σwkpk(x)
【0030】
変数xd,m,jは0又は1の値をとる。日(時間帯)d∈Dの作業j∈J(d)を作業員m∈Mに割り当てた場合、変数xd,m,j=1、それ以外は、変数xd,m,j=0とする。
【0031】
P(x)を目的関数とし、目的関数を最小化する問題を以下のように定義する。
【数1】
【0032】
目的関数P(x)を最小化する問題を解くための基本的な制約条件を以下に示す。
【数2】
【数3】
【数4】
【0033】
式(2)は、各日(各時間帯)の割り当て対象の作業は、作業員の誰か1人に必ず割り当てる制約である。
式(3)は、どの作業員も1日(時間帯)に1つの作業を割り当てるか、何も割り当てない(仕事がない日(時間帯)があり得る)との制約である。
式(4)は、ある日(時間帯)にある作業員に必ず割り当てる作業を表す集合C1⊆D×M×J、ある日(時間帯)にある作業員に割り当ててはならない作業を表す集合C2⊆D×M×Jを定義し、集合C1及び集合C2を制約とする。集合C1及び集合C2のいずれか一方のみを定義してもよい。
【0034】
目的関数P(x)を、式(1)~(4)の基本的な制約条件の元、最小化又は準最小化することで、変数xd,m,jを求める。これにより、複数の作業員に対し、各日(各時間帯)の作業を割り当てる。目的関数を解く際、初期計画から開始し、初期計画を調整するように処理を行うことで、効率的な探索が可能となる。但し、初期計画が存在せず、ゼロベースで計画を作成することも可能である。この場合、初期計画記憶部13は不要である。探索に制限時間がある場合は、初期計画から開始することで、制限時間内に最小化又は準最小化する可能性を高めることができる。
【0035】
初期制約条件及び第1制約条件リストに含まれる制約条件(学習された制約条件)は目的関数P(x)に反映される。第1制約条件リストに制約条件が追加されるごとに、追加された制約条件が反映された目的関数P(x)を最小化又は準最小化するよう最適化を行う。目的関数に含まれるペナルティ(ペナルティ関数とも呼ぶ)pk(x)の詳細については後述する。
【0036】
計画管理装置2は計画評価部31及び入出力部32を備えている。入出力部32は、本システムのユーザが操作する入力装置(操作装置)と、本システムのユーザに情報を提示する出力装置とを含む。入力装置の例は、計画生成装置1の入力部10と同様である。出力装置は、一例として、液晶表示装置、有機EL表示装置、プラズマ表示装置、CRT表示装置などの表示装置である。あるいは、出力装置は、VR(Virtual Reality)ヘッドマウント又はAR(Augumented Reality)グラスなどでもよい。
【0037】
計画評価部31は、計画生成部17から提供された候補計画について制約違反があるか否かのチェック(制約違反チェック)を行う。
【0038】
制約違反チェックの第1の方法としては、コンピュータプログラムの実行により、事前に与えられた各種制約を満たすか否かをチェックする方法がある。すなわち、計画評価部31が、制約を満たすか否かをチェックする機能を有する。この場合、制約の内容を含む複数のルール(制約ルール)に基づき各制約ルールを満たすかを判定するプログラムを計画評価部31に実行させてもよい。制約ルールは、ユーザが入出力部32を用いて記憶装置に設定し、設定した制約ルールを読み出すようにしてもよい。計画評価部31は、候補計画が違反している(満たしていない)制約を制約違反情報として特定し、計画生成装置1に提供(フィードバック)する。
【0039】
制約違反チェックの第2の方法としては、ユーザが候補計画を表示装置等でチェックし、制約を満たしていない箇所があるかを検出し、検出した箇所が満たしていない制約を制約違反情報として、入出力部32を用いて入力してもよい。この場合、計画評価部31は、ユーザにより入力された制約違反情報を計画生成装置1に提供(フィードバック)する。
【0040】
本実施形態では、第1の方法、及び第2の方法のいずれの方法を用いてもかまわない。あるいは、第1の方法と第2の方法との両方を用いてもよい。
【0041】
制約違反チェックでチェックする制約の種類として、以下の5種類の一部もしくは全種類を含む計画評価部31は、制約違反情報として、違反している制約の種類と違反箇所(違反している日(時間枠))の情報を計画生成装置1に提供(フィードバック)する。
【0042】
(A)同一の作業員に割り当てた作業の特定の並び方を禁止する制約
(B)作業員の資格・経験と、作業の特定の属性との組合せを禁止する制約
(C)同一の作業員に割り当てた作業の特定の属性値の期間内の総和の上限及び下限の少なくとも一方を規定する制約
(D)同一の作業員に割り当てた作業の属性の特定の並び方を禁止する制約
(E)作業員の資格・経験と、作業との組合せを禁止する制約
【0043】
種別Aの制約は、同一の作業員に割り当てた複数の作業(休み等も含む)の並び方自体の制約である。計画評価部31又はユーザは、在宅休養時間を一定時間以上とる必要がある、休みの前後の勤務開始時刻や勤務終了時刻の組み合わせの制限、長時間勤務を連続させてはならないなどの様々な複数作業間の接続条件を考慮した判定ロジックにより、候補計画の作業の並び方の違反箇所をチェックする。前記の複数作業間の接続条件そのものは計画生成装置1にはフィードバックされない。
【0044】
種別B、Eの制約に関して乗務員計画の例で説明する。例えば、乗務員は資格によって運転可能な車種が制限されている場合がある。また、乗車中に行う乗車券確認等の作業に必要な資格を乗務員が有していなければならない場合、及び、行路に含まれる路線の運転経験を乗務員が有していなければならない場合がある。制限される作業において違反原因となる属性値が制約違反情報の一部として取得可能である場合は種別Bの制約として、そうでない場合は種別Eの制約として扱う。
【0045】
種別Cの制約の具体例として、例えば一定期間内の総労働時間が所定の上限を超えないとの制約、例えば一定期間内の総労働時間が所定の下限以上となるとの制約、及び所定の期間内に法律で規定された数の休みを取っているかの制約などがある。上限値及び下限値は、制約を規定する境界値に相当する。種別Cの制約の場合、計画評価部31は、違反している制約の種類の情報として、上限及び下限のいずれを制限する制約かを識別する情報も計画生成装置1に提供(フィードバック)する。
【0046】
種別Dの制約の具体例として、勤務種別「深夜」が一定回数連続してはならないとの制約、及び、「深夜」と「早朝」とが連続してはならないとの制約などがある。
【0047】
制約条件取得部25は、計画管理装置2の計画評価部31から候補計画が満たしていないと判断された制約違反情報を取得する。違反情報一時記憶部18は、取得された制約違反情報を記憶する。違反情報変換部19は、違反情報一時記憶部18に記憶された制約違反情報を読み出し、本計画システムで解釈可能な形式に変換して、変化後の情報を制約条件として制約条件一時記憶部20に格納する。違反情報変換部19に記憶されている制約違反情報は消去してもよいし、次回の違反情報一時記憶部18への書き込みの際に上書きされてもよい。制約条件一時記憶部20に記憶されている制約条件の集合を含むリストを、第2制約条件リストと呼ぶ。
【0048】
制約条件比較部21が、制約条件一時記憶部20から第2制約条件リストを読み出す。第2制約条件リストを読み出した後、制約条件比較部21は、制約条件一時記憶部20に記憶されている第2制約条件リストを消去してもよい。あるいは、次回の制約条件一時記憶部20への書き込みの際に第2制約条件リストが上書きされてもよい。
【0049】
制約条件比較部21は、第2制約条件リスト中の制約条件を、制約条件記憶部15内の第1制約条件リストに含まれる各制約条件と比較する。第2制約条件リスト中の制約条件と同じ制約条件が第1制約条件リストに含まれていない場合は、制約条件追加部22が、当該制約条件を新規制約条件として、第1制約条件リストに追加する。制約条件追加部22は、当該制約条件に初期の重みを設定し、設定した重みを制約条件に関連づけて第1制約条件リストに追加する。重みは予め決められた値でよいし、計画管理装置2が制約違反情報とともに重みをフィードバックするようにし、フィードバックされた重みを用いてもよい。その他の方法で重みを決定してもよい。重みは学習パラメータの一種であり、実際の事例を通して、事前にチューニングしておいてもよい。
【0050】
一方、第2制約条件リスト中の制約条件と同じ制約条件が、第1制約条件リストに含まれている場合には、重み変更部23が、第1制約条件リストに含まれている当該制約条件の重みを変更する。例えば一定の値を加算する、又は一定の値を乗じることにより重みを変更する。重みが更新される回数を用いて、重みの値を変更してもよい。例えば変更される回数が多くなるにつれ、加算する値を小さく又は大きくしてもよい。その他の方法で重みを変更してもよい。制約の種別がCであり、第2制約条件リスト中の制約条件と同じ属性値で同じ長さの期間内の属性値の総和に関する制約である場合で、かつ、境界値(上限または下限)のみ異なる場合は、第2制約条件リスト中の制約条件に含まれる境界値によって、第1制約条件リストに含まれる制約条件の境界値を更新し、さらに、当該制約条件の重みを更新する。境界値のみ更新する場合もあり得る。
【0051】
以下、計画管理装置2からフィードバックされた制約違反情報に基づき、第1制約条件リスト内の制約条件を更新する具体例をいくつか説明する。
【0052】
[第1の例]
図4(A)は、計画生成装置1から計画管理装置2に提供された候補計画の一例を示す。
図4(B)は、
図4(A)の候補計画において前記の種別Aの制約に違反しているとして計画評価部31により検出された箇所を示す。検出された箇所が、破線の枠で囲まれている。
【0053】
計画評価部31では
図4(A)の候補計画に制約違反となる箇所(事例)があるかを判断する。本例では、
図4(B)に示す「行路5→行路3」、「行路→公休→行路6」の2つの事例が制約に違反しているとして検出されている。
【0054】
計画生成装置1の制約条件取得部25は、当該2つの制約の違反に関する制約違反情報を計画管理装置2から取得する。制約条件取得部25は、制約違反情報を計画生成装置1で解釈可能な形式に変換し、2つの制約条件を含む第2制約条件リストを制約条件比較部21に提供する。
【0055】
制約条件比較部21は、第2制約条件リストに含まれる各制約条件を、第1制約条件リストに含まれる制約条件と比較し、同じか否かを判断する。第2制約条件リストに含まれる制約条件が第1制約条件リストに含まれる制約条件と異なる場合、当該制約条件を第1制約条件リストに追加する。追加する制約条件には初期の重みを設定する。第2制約条件リストに含まれる制約条件が第1制約条件リストに含まれる制約条件と同じ場合、第1制約条件リストにおける当該制約条件の重みを変更する。
【0056】
図5は、第1制約条件リストの更新例を示す。図の右に示すように、更新前の第1制約条件リストには「行路5→行路3」を禁止する制約条件と、「行路9→行路5」を禁止する制約条件とが格納されている。重みはいずれも0.5である。その他の制約条件も格納されているが、図示を省略している。
【0057】
図の中央に示すように、計画管理装置2からフィードバックされた制約違反情報として、「行路5→行路3」を禁止する制約と、「行路4→公休→行路6」を禁止する制約が示されている。
【0058】
フィードバックされた「行路5→行路3」は、第1制約条件リストに含まれる「行路5→行路3」と同じである。このため、図の左に示すように、第1制約条件リストにおける「行路5→行路3」の重みに0.1が加算されて、0.6となっている。
【0059】
フィードバックされた「行路4→公休→行路6」は、第1制約条件リストには含まれていない。このため、図の左に示すように、「行路4→公休→行路6」が新規の制約条件として、初期の重み0.5に関連づけられて、第1制約条件リストに追加されている。
【0060】
[第2の例]
図6(A)は、計画生成装置1から計画管理装置2に提供された候補計画の一例を示す。
図6(B)は、
図6(A)の候補計画において前記の種別Bの制約に違反しているとして計画評価部31により検出された箇所を示す。検出された箇所が、破線の枠で囲まれている。
図6において、車種は作業(行路)の属性の一つであるとする。なお、違反の原因となる属性(本例では車種)が不明である場合や、属性値が取得できない場合は、計画評価部31により種別Eの制約として検出される。
【0061】
本例では、乗務員2に汽車で乗務する行路3を割り当てた日と、乗務員2にディーゼル機関車(D車)で乗務する行路5を割り当てている日を制約違反箇所として検出されている。
【0062】
図7は、第1制約条件リストの更新例を示す。図の右上に示すように、更新前の第1制約条件リストには「乗務員1&汽車(乗務員2が汽車で乗務すること)」を禁止する制約条件と、「乗務員2&D車(乗務員2がディーゼル機関車(D車)で乗務すること)」を禁止する制約条件とが格納されている。重みはいずれも0.5である。その他の制約条件も格納されているが、図示を省略している。
【0063】
図の中央に示すように、計画管理装置2からフィードバックされた制約違反情報として、「乗務員2&汽車」を禁止する制約と、「乗務員2&D車」を禁止する制約が示されている。
【0064】
フィードバックされた「乗務員2&D車」は、第1制約条件リストに含まれる「乗務員2&D車」と同じである。このため、図の左に示すように、第1制約条件リストにおける「乗務員2&D車」の重みは0.1加算されて、0.6となっている。
【0065】
フィードバックされた「乗務員1&汽車」は、第1制約条件リストには含まれていない。このため、図の左に示すように、「乗務員1&汽車」が新規の制約条件として、第1制約条件リストに追加されている。「乗務員1&汽車」の初期の重みは0.5とされている。
【0066】
[第3の例]
図8(A)は、計画生成装置1から計画管理装置2に提供された候補計画の一例を示す。
図8(B)は、
図8(A)の候補計画において前記の種別Cの制約に違反しているとして計画評価部31により検出された箇所を示す。検出された箇所が、破線の枠で囲まれている。
図8において、勤務(勤務時間)は作業(行路)の属性の一つであるとする。
【0067】
計画評価部31は、制約を満たさないとして、
図6(B)に点線の枠線で示す箇所を検出している。
【0068】
図9は、第1制約条件リストの更新例を示す。図の右上に示すように、更新前の第1制約条件リストには「Σ
8
d=1勤務時間d<60」を要求する制約条件と、「Σ
8
d=1公休>1」を要求する制約条件が格納されている。「Σ
8
d=1勤務時間d<60」は8日間の勤務時間の合計が60時間未満となることを要求する。換言すれば、8日間の勤務時間の合計が60時間以上となることを禁止する。「Σ
8
d=1公休>1」は、8日間のうち公休の回数が1回を超えることを要求する。換言すれば、8日間のうち公休の回数が1回以下となることを禁止する。その他の制約条件も格納されているが、図示を省略している。
【0069】
図の右下に示すように、計画管理装置2からフィードバックされた制約違反情報として、「Σ
8
d=1勤務時間d<56」が示されている。境界値(この例では56)は、候補計画において種別Cの制約に違反するとされた箇所の対象の属性値の和であり、
図8(B)の乗務員2の勤務時間の8日間の総和56に相当する。
【0070】
フィードバックされた「Σ8
d=1勤務時間d<56」は、第1制約条件リストに含まれる「Σ8
d=1勤務時間d<60」と同様に8日間の勤務時間の総和の上限を制限する制約条件であり、境界値(この例では60)のみが異なる。このため、図の左に示すように、第1制約条件リストにおける「Σ8
d=1勤務時間d<60」の境界値60を、56に変更している。また、重みに0.1を加算して、0.6としている。この例では、制約条件の境界値を変更したが、境界値が異なる制約条件を新たな制約条件として追加する構成も可能である。この場合、新たな制約条件には初期の重み(例えば0.5)を設定する。また、境界値のみを変更して重みを変更しない方法もあり得る。
【0071】
[第4の例]
図10(A)は、計画生成装置1から計画管理装置2に提供された候補計画の一例を示す。
図10(B)は、
図10(A)の候補計画において前記の種別Dの制約に違反しているとして計画評価部31により検出された箇所を示す。検出された箇所が、破線の枠で囲まれている。
図10において、日勤、深夜、早朝などの勤務種別は作業(行路)の属性の一つであるとする。
【0072】
図11は、第1制約条件リストの更新例を示す。図の右上に示すように、更新前の第1制約条件リストには「深夜→深夜」を禁止する制約条件が格納されている。重みは0.5である。その他の制約条件も格納されているが、図示を省略している。
【0073】
図の右下に示すように、計画管理装置2からフィードバックされた制約条件として、「深夜→深夜」を禁止する制約条件と、「深夜→早朝」を禁止する制約条件が示されている。
【0074】
フィードバックされた「深夜→深夜」は、第1制約条件リストに含まれる「深夜→深夜」と同じである。このため、図の左に示すように、第1制約条件リストにおける「深夜→深夜」の重みが0.1加算されて、0.6となっている。
【0075】
フィードバックされた「深夜→早朝」は、第1制約条件リストには含まれていない。このため、図の左に示すように「深夜→早朝」が新規の制約条件として、第1制約条件リストに追加されている。「深夜→早朝」の初期の重みは0.5とされている。
【0076】
ここで第1制約条件リストに含まれる制約条件に基づき前記の式(1)のペナルティ関数を定式化する例を具体的に示す。
【0077】
[種別A制約]
【数5】
k番目の制約条件(k∈K
1)により、どの作業員にも、(T
k+1)個の作業を特定の順序(j
k(0), j
k(1), …, j
k(T
k))で割り当てるのを禁止する。K
1は同種の制約条件の数、kは制約条件のIDであり、T
kは制約条件kが禁止する並びの数を示す。
【0078】
[種別B制約]
【数6】
特定の属性の仕事jを集合M
kに含まれる作業員に割り当てるのを禁止する。フラグ(α
1j, α
2j, …, α
Kj)は、作業jが制約条件kで対象とする属性に該当するか否かを示す。α
kj=1の場合は該当、α
kj=0なら非該当を表す。K
2は同種の制約条件の数、kは制約条件のIDである。
【0079】
[種別C制約(上限値を制限する場合)]
【数7】
式(7)及び式(7’)の一方を用いる。作業員に開始日d∈D
kから割り当てたT
k+1個の作業で、それらの属性α
kjの合計がある値b
kを超えることを禁止する制約条件である。α
kjは作業jにおける制約条件kで対象とする属性の値である。K
3は同種の制約条件の数、kは制約条件のIDである。
【0080】
[例4]
[種別C制約(下限値を制限する場合)]
【数8】
式(8)及び式(8’)の一方を用いる。作業員に開始日d∈D
kから割り当てたT
k+1個の仕事で、それらの属性α
kjの合計がある値b
kを下回ることを禁止する。α
kjは仕事jにおける制約条件kで対象とする属性の値である。K
4は同種の制約条件の数であり、kは制約条件のIDである。
【0081】
[種別D制約]
【数9】
どの作業員にも、T
k+1個の作業をフラグα
kj(t)で定義される特定の属性の順序で割り当ててはならない。フラグ(α
1j(0), α
1j(1),…, α
1j(T
1),…, α
Kj(0), α
Kj(1),…, α
Kj(T
K))は、作業jが制約条件kの禁止する属性の並びのt番目の属性に該当するか否かを示す。α
kj(t)=1の場合は該当、α
Kj(t)=0なら非該当である。K
5は同種の制約条件の数、kは制約条件のIDであり、T
kは制約条件kが禁止する並びの数を示す。
【0082】
図12は、本実施形態に係る計画システムの処理の一例のフローチャートである。計画生成部17が、作業データ記憶部11から各日に割り当てるべき作業のリスト(作業データ)を読み出し、予約データ記憶部12から年休等の休みや既に割り当ての決まっている作業の予約情報を読み出す(STEP1)。また、初期計画記憶部13から初期計画を読み出し、初期制約条件記憶部14から、事前に設定された制約条件(初期制約条件)を読み出す。(STEP1)。
【0083】
続いて、計画生成部17は、制約条件記憶部15から学習済の制約条件を含む第1制約条件リストを読み出す(STEP2)。
【0084】
次に、計画生成部17は、初期制約条件と第1制約条件リスト中の制約条件と、STEP1で読み出したデータとに基づき、候補計画を生成する(STEP3)。計画生成部17は、候補計画データと制約違反があるか否かのチェック要求を計画管理装置2に提供する。
【0085】
計画管理装置2は、当該チェック要求に基づき、候補計画に対して制約違反チェックを行う(STEP4)。一例として、計画評価部31が、候補計画が、候補計画が違反している(満たしてない)制約の種別と違反箇所(日もしくは時間帯)を特定し、制約違反情報を計画生成装置1にフィードバックする。あるいは、ユーザが入出力部32を用いて、表示された候補計画を確認し、制約を満たしていない違反箇所をチェックする。ユーザがチェックする場合は、違反箇所を指摘するのみでなく、違反箇所が違反した制約の種別を入力する必要がある。この場合、計画評価部31は、ユーザから入力された制約を含む制約違反情報を計画生成装置1にフィードバックする。
【0086】
違反情報変換部19は、計画管理装置2からフィードバックされた制約違反情報を、計画生成装置1が解釈できる形式の制約条件に変換し、制約条件を含む第2制約条件リストを生成する(STEP5)。
【0087】
次に、制約条件比較部21が、第2制約条件リスト中の制約条件を、第1制約条件リストと順次比較する(STEP6)。第2制約条件リスト中の制約条件が、第1制約条件リストに含まれる制約条件と同じか否か、つまり、既に制約違反チェックで検出されたことがある制約条件か否かで処理を分岐する(STEP7)。
【0088】
第2制約条件リスト中の制約条件が第1制約条件リストに含まれる制約条件と同じでない場合、すなわち新規制約条件の場合は、新規制約条件に初期重みを設定する。初期重みを設定した新規成約条件を第1制約条件リストに追加する(STEP9)。
【0089】
第2制約条件リスト中の制約条件が、第1制約条件リストに含まれる制約条件と同じである場合、第1制約条件リストに含まれる当該制約条件の重みを増加させる。これにより、次回の計画生成部17の候補計画の生成時に、当該制約条件をより強く反映させることができる(STEP8)。また、第2制約条件リスト中の制約条件が種別Cであり、第1制約条件リストに含まれる制約条件と同じ期間の同じ属性値の和に関する制約であり、境界値のみが両者で異なる場合は、境界値を更新し、さらに重みを更新する。具体的には、総和の上限値(境界値)を超える違反が発生した場合は、当該制約条件の上限値を現状より小さくする(制約を厳しく)。逆に、総和の下限値(境界値)を下回る違反が発生した場合は、当該制約条件の下限値を現状より大きく修正する(制約を厳しくする)。
【0090】
第2制約条件リスト中の制約条件の全てについてSTEP7~STEP9の処理を行ったら(STEP10)、終了条件を満たしたかを判断する(STEP11)。終了条件を満たさない場合は、STEP3に戻る。戻ったSTEP3では、更新済みの第1制約条件リストを用いて新たな候補計画を生成し、制約違反チェックする(STEP3~STEP10)。終了条件が満たされるまで、STEP3~STEP10を反復する。
【0091】
終了条件が満たされたら、最後に生成された候補計画を最終的な計画として計画管理装置2に出力する(STEP12)。あるいは、計画記憶部16に記憶されている候補計画のうち最も目的関数の値が小さい候補計画、又は目的関数の値が閾値より小さい候補計画を、最終的な計画として出力してもよい。さらに、更新後の第1制約条件リストの内容を制約条件記憶部15に反映する。STEP8およびSTEP9において第1制約条件リストが更新されると同時に制約条件記憶部15に更新内容が反映される場合もあり得る。
図12の処理の他にも、制約条件記憶部15に記憶された制約条件を変更する場合があり得る。例えば、計画の対象となる作業の内容や作業員が大幅に変更された場合(例えば、鉄道の乗務員計画ではダイヤ改正の場合)、学習した制約条件のほとんどが無効になるため、制約条件記憶部15の内容を初期化する。初期化処理として、追加した全ての制約条件を消去し重みを初期設定に戻す方法、IDを指定した一部の制約条件だけを消去する方法、指定した種類の制約条件だけを消去する方法などがあり得るが、ここでは初期化方法ついて限定しない。
【0092】
計画管理装置2の入出力部32は、最終的な計画を表示装置に表示する。最終的な計画を計画管理装置2内の記憶装置又は外部の記憶装置に格納してもよい。
【0093】
ここで終了条件の判定方法の例を示す。計画評価部31がプログラム動作により制約違反チェックをする場合は、STEP3~STEP10を所定の回数繰り返したら、終了条件が満たされたと判断してもよい。また、STEP3~STEP10を予め定めた制限時間に達するまで反復し、制限時間に達したら、終了条件が満たされたと判断してもよい。また、STEP3~STEP10を制約違反がなくなるまで、もしくは、目的関数(ペナルティ総和)の値が閾値以下になるまでループを反復し続けてもよい。その他の方法で終了条件の成否を判定してもよい。ユーザが入出力部32(GUI)を用いて制約違反チェックする場合は、ユーザ自身がSTEP3~STEP10の繰り返しを終了するタイミングを判断してもよい。ユーザが繰り返しを終了する指示データを入力し、指示データに基づき、繰り返しを終了してもよい。
【0094】
以上、本実施形態によれば、計画生成装置1により生成した候補計画が違反している制約を、計画管理装置もしくはユーザが、制約違反情報として検出し、フィードバックする。計画生成装置が、制約違反情報に基づく制約条件を第1制約条件リストに蓄積する。具体的には、制約条件と同じ制約条件が第1制約条件リストに存在しない場合は、当該制約条件に重みを設定して第1制約条件リストに追加する。制約条件と同じ制約条件が第1制約条件リストに存在する場合は、第1制約条件リストに存在する当該同じ制約条件の重みを更新する。このように候補計画の生成、制約条件の蓄積、及び制約条件の重みの変更を反復することで、現場における制約の変更及び追加等にも容易に対応可能な汎用的な計画システムを実現できる。
【0095】
例えば、システムの初期導入時又は就業規則変更時は、計画管理装置2の評価アルゴリズム又はルールを書き換えることで、計画生成装置で扱うことが可能な形式で新たな又は変更された制約条件を反映させることが可能となり、メンテナンス性が向上する。また、各々の現場のユーザのフィードバックにより、現場毎の細かい制約の違いに段階的に適応することが可能となる。
【0096】
(ハードウェア構成)
図13に、
図1の計画生成装置1又は計画管理装置2のハードウェア構成を示す。
図1の計画生成装置1又は計画管理装置2は、コンピュータ装置600により構成される。コンピュータ装置600は、CPU601と、入力インタフェース602と、表示装置603と、通信装置604と、主記憶装置605と、外部記憶装置606とを備え、これらはバス607により相互に接続されている。
【0097】
CPU(中央演算装置)601は、主記憶装置605上で、コンピュータプログラムである情報処理プログラムを実行する。情報処理プログラムは、本装置の上述の各機能構成を実現するプログラムのことである。情報処理プログラムは、1つのプログラムではなく、複数のプログラムやスクリプトの組み合わせにより実現されていてもよい。CPU601が、情報処理プログラムを実行することにより、各機能構成は実現される。
【0098】
入力インタフェース602は、キーボード、マウス、およびタッチパネルなどの入力装置からの操作信号を、本装置に入力するための回路である。入力インタフェース602は入力部又は入出力部に対応する。
【0099】
表示装置603は、本装置から出力されるデータを表示する。表示装置603は、例えば、LCD(液晶ディスプレイ)、有機エレクトロルミネッセンスディスプレイ、CRT(ブラウン管)、またはPDP(プラズマディスプレイ)であるが、これに限られない。コンピュータ装置600から出力されたデータは、この表示装置603に表示することができる。表示装置603は入出力部に対応する。
【0100】
通信装置604は、本装置が外部装置と無線または有線で通信するための回路である。データは、通信装置604を介して外部装置から入力することができる。外部装置から入力したデータを、主記憶装置605や外部記憶装置606に格納することができる。
【0101】
主記憶装置605は、情報処理プログラム、情報処理プログラムの実行に必要なデータ、および情報処理プログラムの実行により生成されたデータなどを記憶する。情報処理プログラムは、主記憶装置605上で展開され、実行される。主記憶装置605は、例えば、RAM、DRAM、SRAMであるが、これに限られない。
図1の各記憶部又はデータベースは、主記憶装置605上に構築されてもよい。
【0102】
外部記憶装置606は、情報処理プログラム、情報処理プログラムの実行に必要なデータ、および情報処理プログラムの実行により生成されたデータなどを記憶する。これらの情報処理プログラムやデータは、情報処理プログラムの実行の際に、主記憶装置605に読み出される。外部記憶装置606は、例えば、ハードディスク、光ディスク、フラッシュメモリ、及び磁気テープであるが、これに限られない。
図1の各記憶部又はデータベースは、外部記憶装置606上に構築されてもよい。
【0103】
なお、情報処理プログラムは、コンピュータ装置600に予めインストールされていてもよいし、CD-ROMなどの記憶媒体に記憶されていてもよい。また、情報処理プログラムは、インターネット上にアップロードされていてもよい。
【0104】
また、本装置は、単一のコンピュータ装置600により構成されてもよいし、相互に接続された複数のコンピュータ装置600からなるシステムとして構成されてもよい。
【0105】
なお、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の発明を形成できる。また例えば、各実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組み合わせてもよい。
【符号の説明】
【0106】
1:計画生成装置
2:計画管理装置
10:入力部
11:作業データ記憶部
12:予約データ記憶部
13:初期計画記憶部
14:初期制約条件記憶部
15:制約条件記憶部
16:計画記憶部
17:計画生成部
18:違反情報一時記憶部
19:違反情報変換部
20:制約条件一時記憶部
21:制約条件比較部
22:制約条件追加部
23:重み変更部
25:制約条件取得部
26:更新部
601:プロセッサ(CPU)
602:入力インタフェース
603:表示装置
604:通信装置
605:主記憶装置
606:外部記憶装置
607:バス
600:コンピュータ装置