(57)【要約】【課題】無駄な探索を避け効率的な最適化を行うスケジューリング装置を得る。【解決手段】グルーピングルールデータベース６は、リクエストをグルーピングするルールを格納する。グルーピング処理部７は、グルーピングルールデータベース６のルールを参照し、初期スケジュール生成部５から入力されたスケジュールを元に、各リクエストをグルーピングする。最適化実行部８は、グルーピング処理部７でグルーピングされたスケジュールに対して、評価が向上するように、スケジューリング処理部４およびスケジュール評価値算出部３を用いて、リクエストのグループ単位でスケジュールを変更する。【選択図】図１
2014002576.tif 000002
【特許請求の範囲】
【請求項１】
共有リソースを使用するリクエストの内容を格納する使用リクエストデータベースと、
任意のリクエストが前記共有リソースの使用を開始してから、次のリクエストが当該共有リソースを使用することが不可となる時間である使用不可時間の情報を格納する使用不可時間データベースと、
入力される前記共有リソースの使用スケジュールに対して、当該使用スケジュールの評価の度合いを示す評価値を算出するスケジュール評価値算出部と、
複数のリクエストの順列に対して、前記使用リクエストデータベースにおけるリクエストの内容と、前記使用不可時間データベースにおける使用不可時間とに基づいて、前記複数のリクエストの前記共有リソースの使用開始時刻が、前記使用不可時間以外の時刻となるよう、当該共有リソースの使用スケジュールを生成すると共に、前記スケジュール評価値算出部による評価値を付加して出力するスケジューリング処理部と、
前記使用リクエストデータベースを参照して、リクエストの順列を生成し、当該リクエストの順列に対して前記スケジューリング処理部が生成した使用スケジュールを初期スケジュールとして出力する初期スケジュール生成部と、
前記リクエストをグルーピングするルールを格納するグルーピングルールデータベースと、
前記グルーピングルールデータベースのルールを参照し、前記初期スケジュール生成部から入力されたスケジュールを元に、各リクエストをグルーピングするグルーピング処理部と、
前記グルーピング処理部でグルーピングされたスケジュールに対して、評価が向上するように、前記リクエストのグループ単位で当該スケジュールを変更する最適化実行部とを備えたことを特徴とするスケジューリング装置。
【請求項２】
スケジューリング処理部は、入力されるリクエストの順列に従って、先頭から１つずつリクエストの共有リソースの使用開始時刻を、使用不可時間以外の時刻となるよう決定していくことを特徴とする請求項１記載のスケジューリング装置。
【請求項３】
グルーピングルールデータベースの各ルールには優先度が設定され、グルーピング処理部は、当該優先度に従って各ルールを適用してグルーピングを行うことを特徴とする請求項１または請求項２記載のスケジューリング装置。
【請求項４】
グルーピング処理部は、リクエストの内容の並びに対して、グルーピングルールデータベースのルールを適用し、グルーピングを行うことを特徴とする請求項１から請求項３のうちのいずれか１項記載のスケジューリング装置。
【請求項５】
グルーピング処理部は、グルーピングルールデータベースのルールに適合したリクエストの内容の並びであっても、当該リクエストの使用開始時刻の時間差が所定の時間より長い場合は、グループ化を行わないことを特徴とする請求項４記載のスケジューリング装置。
【請求項６】
使用不可時間データベースに登録される使用不可時間は、共有リソースを先行して使用するリクエストとその次に使用するリクエストの内容に応じて設定されることを特徴とする請求項１から請求項５のうちのいずれか１項記載のスケジューリング装置。
【請求項７】
グルーピングルールデータベースのルールは、使用不可時間が長くなりにくいリクエストの内容の並びを示すことを特徴とする請求項６記載のスケジューリング装置。
【請求項８】
使用リクエストデータベースに登録されるリクエストの内容として、当該リクエストの使用開始時刻下限と使用開始時刻上限の情報を有し、
スケジューリング処理部は、任意のリクエストの使用開始時刻を決定する際に、前記リクエストの使用開始時刻下限と使用開始時刻上限の範囲内に、当該リクエストの使用開始時刻を割当て、一方、当該使用開始時刻下限と使用開始時刻上限の範囲内に、当該リクエストの使用開始時刻が割当てられなかった場合は、前記リクエストの使用開始時刻の割当てが不可であったことを出力することを特徴とする請求項１から請求項７のうちのいずれか１項記載のスケジューリング装置。
【請求項９】
初期スケジュール生成部は、使用リクエストデータベースを参照して、使用開始時刻下限順にソートすることによりリクエストの順列を生成することを特徴とすることを特徴とする請求項８記載のスケジューリング装置。
【請求項１０】
初期スケジュール生成部は、使用リクエストデータベースを参照して、使用開始時刻上限順にソートすることによりリクエストの順列を生成することを特徴とする請求項８記載のスケジューリング装置。
【請求項１１】
最適化実行部は、スケジュールを変更する際、所属するリクエスト数が所定の数以下であるグループを変更対象とすることを特徴とする請求項８から請求項１０のうちのいずれか１項記載のスケジューリング装置。
【請求項１２】
最適化実行部は、所属するリクエスト数が所定の数以下であるグループの共有リソースの使用順序を変更する際、所属するリクエスト数が前記所定の数より多いグループを超える順序変更を行わないことを特徴とする請求項１１に記載のスケジューリング装置。
【請求項１３】
最適化実行部は、スケジュールを変更して当該スケジュールの評価値が改善した場合、前記スケジュールを入力としてグルーピング処理を行ってから再度スケジュールの変更処理を行うことを特徴とする請求項４から請求項１２のうちのいずれか１項記載のスケジューリング装置。
【請求項１４】
共有リソースの使用に影響を及ぼす環境情報を格納する環境情報データベースを備え、
グルーピングルールデータベースのルールは、前記環境情報の内容に基づいて設定され、グルーピング処理部は、前記環境情報データベースを参照して、環境情報の内容に応じて前記グルーピングルールデータベースのルールを選択することを特徴とする請求項１から請求項１３のうちのいずれか１項記載のスケジューリング装置。
【請求項１５】
共有リソースの使用に影響を及ぼす環境情報を格納する環境情報データベースと、
スケジュール事例を格納するスケジュール事例データベースと、
使用リクエストデータベースにおけるリクエストの内容と、前記環境情報データベースにおける環境情報と類似したスケジュール事例を前記スケジュール事例データベースから抽出し、当該抽出したスケジュール事例に基づいてグルーピングルールを作成し、当該作成したグルーピングルールをグルーピングルールデータベースのルールとするグルーピングルール生成部とを備えたことを特徴とする請求項１から請求項１３のうちのいずれか１項記載のスケジューリング装置。
【請求項１６】
スケジューリング処理部は、リクエストの使用開始時刻下限と使用開始時刻上限の範囲内に当該リクエストの使用開始時刻を割当てられなかった場合、前記リクエストの使用開始時刻下限と使用開始時刻上限の範囲外に前記リクエストの使用開始時刻を設定し、
かつ、
スケジュール評価値算出部は、入力されたスケジュールにおいて、リクエストの使用開始時刻下限と使用開始時刻上限の範囲外に、当該リクエストの使用開始時刻が割当てられていた場合に当該スケジュールの評価値を評価が低下する値として出力することを特徴とする請求項８から請求項１５のうちのいずれか１項記載のスケジューリング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共有リソースに対して複数の使用リクエストが存在する状況において、共有リソースの使用スケジュールの評価値を改善するように、最適化技術を用いて、リクエストの使用開始時刻を決定するスケジューリング装置に関するものである。
【背景技術】
【０００２】
複数の使用リクエストが存在するような共有リソースとして、例えば、交通システムでは、航空機が使用する滑走路、電車が使用する駅、船舶が出入りする港湾、車が使用する料金所、交通における複数経路の合流点等がある。さらに、生産システムでは、製品の生産で使用する設備として、製造を行う機械・作業者、工場内で製品を移動させるベルトコンベア等がある。
このように、共有リソースに対して複数の使用リクエストが存在する状況では、各使用リクエストに共有リソースの使用開始時刻を割当て、共有リソースの使用スケジュールを生成することが必要となる。この際、以下制約を満たすスケジュールを生成することが求められる。
【０００３】
・制約１：リクエストの共有リソースの使用開始時刻は、そのリクエストの使用開始時刻下限（リクエストが最も早く共有リソースを使用可能な時刻）と使用開始時刻上限（使用開始時刻下限に対し、リクエストが共有リソースの使用を遅らせることができる最大時間を加算した時刻）の範囲内に割当てる。
・制約２：あるリクエストが共有リソースの使用を開始してから、予め決められた時間が経過するまで次のリクエストは共有リソースを使用できない。この共有リソースが使用不可となる時間は、リクエストの相互の依存関係や個別の性質で決まる。例えば、図２に示すように、共有リソースを先行して使用するリクエストとその次に使用するリクエストの内容に応じて使用不可時間が設定されることがある。なお、図２は、本発明で用いる使用不可時間データベースの内容を示すものであり、Ｔ１が最も使用不可時間が短く、Ｔ５が最も使用不可時間が長いことを示している。
【０００４】
そして、スケジュール生成では、上記制約を満たしつつ、効率が良いこと、使用リクエスト間の公平性が大きく損なわれないこと等も望まれる。効率の良さは、共有リソースにおけるリクエストのスループット、各リクエストについての遅延時間（例えば、使用開始時刻下限を基準に算出する）等の観点に基づき定量化される。また、公平性は、例えば、使用開始時刻下限順がリクエストの先着順であると考えた場合の使用順序における追い越しの発生数に基づき定量化される。
【０００５】
このような従来技術として、最適化技術を利用し、スループット最大化や遅延総和最小化等の基準に基づいて、個々の航空機を順序付けし、滑走路使用開始時刻を定める方式が提案されている。例えば、特許文献１に示すものがあり、ここでは、最適化技術として、実施の形態１においてＧＡ（Ｇｅｎｅｔｉｃ  Ａｌｇｏｒｉｔｈｍ）が利用されている。なお、滑走路における航空機スケジュールの場合、例えば、リクエストの内容に関して、目的は到着、出発等となり、種別は機体の大きさとなる。そして、ある航空機が滑走路の使用を開始してから、次の航空機が滑走路を使用することが不可となる時間は、先行機と後続機の目的と種別に応じて設定される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−１７０５０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来技術には、以下のような課題があった。
・最適化技術として、厳密なアルゴリズム（分枝限定法、動的計画法等）を用いる場合：対象とする航空機数が多い場合、処理に長時間を要する。
・最適化技術として、ヒューリスティックアルゴリズム（局所探索法、ＧＡ等）を用いる場合：確率的に様々な順序付けを評価するため、人間が見ると明らかに無駄な組合せも評価してしまう。
【０００８】
この発明は上記のような課題を解決するためになされたもので、無駄な探索を避け効率的な最適化を行うスケジューリング装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
この発明に係るスケジューリング装置は、共有リソースを使用するリクエストの内容を格納する使用リクエストデータベースと、任意のリクエストが共有リソースの使用を開始してから、次のリクエストが当該共有リソースを使用することが不可となる時間である使用不可時間の情報を格納する使用不可時間データベースと、入力される共有リソースの使用スケジュールに対して、使用スケジュールの評価の度合いを示す評価値を算出するスケジュール評価値算出部と、複数のリクエストの順列に対して、使用リクエストデータベースにおけるリクエストの内容と、使用不可時間データベースにおける使用不可時間とに基づいて、複数のリクエストの共有リソースの使用開始時刻が、使用不可時間以外の時刻となるよう、共有リソースの使用スケジュールを生成すると共に、スケジュール評価値算出部による評価値を付加して出力するスケジューリング処理部と、使用リクエストデータベースを参照して、リクエストの順列を生成し、リクエストの順列に対してスケジューリング処理部が生成した使用スケジュールを初期スケジュールとして出力する初期スケジュール生成部と、リクエストをグルーピングするルールを格納するグルーピングルールデータベースと、グルーピングルールデータベースのルールを参照し、初期スケジュール生成部から入力されたスケジュールを元に、各リクエストをグルーピングするグルーピング処理部と、グルーピング処理部でグルーピングされたスケジュールに対して、評価が向上するように、リクエストのグループ単位で当該スケジュールを変更する最適化実行部とを備えたものである。
【発明の効果】
【００１０】
この発明のスケジューリング装置は、生成したスケジュールのリクエストをグルーピングし、このリクエストがグルーピングされたスケジュールに対して、評価が向上するようリクエストのグループ単位でスケジュールを変更するようにしたので、無駄な探索を避け効率的な最適化を行うことができる。
【図面の簡単な説明】
【００１１】
【図１】この発明の実施の形態１によるスケジューリング装置を示す構成図である。
【図２】この発明の実施の形態１によるスケジューリング装置の使用不可時間データベースの内容を示す説明図である。
【図３】この発明の実施の形態１によるスケジューリング装置のリクエストの使用開始時刻の決定例を示す説明図である。
【図４】この発明の実施の形態１によるスケジューリング装置のグルーピングルールデータベースのルールを示す説明図である。
【図５】この発明の実施の形態１によるスケジューリング装置のグルーピング処理を示す説明図である。
【図６】この発明の実施の形態１によるスケジューリング装置の動作を示すフローチャートである。
【図７】この発明の実施の形態１によるスケジューリング装置のスケジュール変更を示す説明図である。
【図８】この発明の実施の形態３によるスケジューリング装置のスケジュール変更を示す説明図である。
【図９】この発明の実施の形態５によるスケジューリング装置の構成図である。
【図１０】この発明の実施の形態６によるスケジューリング装置の構成図である。
【発明を実施するための形態】
【００１２】
実施の形態１．
図１は、この発明の実施の形態１によるスケジューリング装置を示す構成図である。
図１に示すスケジューリング装置は、使用リクエストデータベース１、使用不可時間データベース２、スケジュール評価値算出部３、スケジューリング処理部４、初期スケジュール生成部５、グルーピングルールデータベース６、グルーピング処理部７、最適化実行部８を備えている。
【００１３】
使用リクエストデータベース１には、共有リソースである滑走路を使用するリクエストの内容が格納される。例えば、リクエストの内容は以下のようになる。
・ＩＤ：共有リソースを使用するリクエストの識別子
・目的：ＡまたはＢ
・種別：αまたはβ
・使用開始時刻下限：リクエストが最も早く共有リソースを使用可能な時刻。
・使用開始時刻上限：使用開始時刻下限に対し、リクエストが共有リソースの使用を遅らせることができる最大時間を加算した時刻
【００１４】
使用不可時間データベース２には、あるリクエストが共有リソースの使用を開始してから、次のリクエストが共有リソースを使用することが不可となる時間（以後、使用不可時間と呼ぶ）が格納される。この使用不可時間は、共有リソースを先行して使用するリクエストとその次に使用するリクエストの内容に応じて設定される。例えば、図２に示すように、共有リソースを先行して使用するリクエスト（以後、先行リクエストと呼ぶ）とその次に使用するリクエスト（以後、後続リクエストと呼ぶ）の目的と種別に応じて使用不可時間が設定される。ここで、リクエストの目的のＡやＢは、例えば航空機の出発や到着といったことであり、リクエストの種類のαやβとは、航空機の機種（大型機や小型機といった機体の大きさ）といったことを示している。
【００１５】
スケジュール評価値算出部３は、入力された共有リソースの使用スケジュールの評価値を算出する。例えば、評価値を決定する評価の度合いの基準としては、以下事項のうち、１つ、あるいは、複数を利用することが考えられる。
・使用開始時刻下限を基準に、スケジュールにおける各リクエストの使用開始時刻の遅延を算出し、その遅延の総和
・共有リソースにおけるリクエストのスループット
・使用開始時刻下限順がリクエストの先着順であると考えた場合の使用順序の追い越しの発生状況
【００１６】
スケジューリング処理部４は、使用リクエストデータベース１と使用不可時間データベース２を参照して、入力されたリクエストの順列に従って、先頭から１つずつリクエストの使用開始時刻を決定していくことで、共有リソースの使用スケジュールを生成する。例えば、リクエストの使用開始時刻は、以下の時刻範囲［Ａ］および［Ｂ］に共通に含まれる時刻範囲のうち，最も早い時刻に決定する。この際、時刻範囲［Ａ］および［Ｂ］に共通に含まれる時刻範囲が存在しない場合、リクエストに対する使用開始時刻の割当てが不可であったものとする。
［Ａ］（直前にスケジューリングした）リクエストの使用開始時刻に使用不可時間を加算した時刻以降の時間範囲
［Ｂ］スケジューリング対象とするリクエストの使用開始時刻下限と使用開始時刻上限の時間範囲
【００１７】
図３は、割当ての可否を示す説明図である。ここで、Ｒａ，Ｒｂは入力されたリクエストを示し、その順列は「…，Ｒａ，Ｒｂ，…」である。また、ここでは、リクエストＲａが既にスケジューリングされ、次にリクエストＲｂをスケジューリングする例を示している。図中（ａ）は、リクエストＲａの使用開始時刻に使用不可時間を加算した時刻以降の時間範囲にリクエストＲｂの使用開始時刻上限と下限の間の時間帯が含まれる例であり、この場合、リクエストＲｂの使用開始時刻はリクエストＲｂの使用開始時刻下限に決定される。また、（ｂ）は、リクエストＲａの使用開始時刻に使用不可時間を加算した時刻以降の時間範囲にリクエストＲｂの使用開始時刻上限は含まれるが、使用開始時刻下限が含まれない例であり、この場合、リクエストＲｂの使用開始時刻は、リクエストＲａの使用開始時刻に使用不可時間を加算した時刻に決定される。さらに、（ｃ）は、リクエストＲａの使用開始時刻に使用不可時間を加算した時刻以降の時間範囲にリクエストＲｂの使用開始時刻上限と下限の間の時間帯が含まれない例であり、この場合はリクエストＲｂに対する使用開始時刻の割当ては不可となる。
【００１８】
スケジュールの生成中に、リクエストに対する使用開始時刻の割当てが不可となった場合は、スケジュール生成に失敗した旨を出力し、スケジューリング処理部４の処理を終了する。一方、全リクエストの使用開始時刻が決定する、すなわち、スケジュールの生成が完了した場合は、スケジュール評価値算出部３における評価値算出処理を実行し、生成したスケジュールの評価値を取得する。そして、生成したスケジュールにその評価値を付加して出力し、スケジューリング処理部４の処理を終了する。
【００１９】
初期スケジュール生成部５は、使用リクエストデータベース１を参照して、リクエストの順列を生成する。そして、そのリクエストの順列を入力として、スケジューリング処理部４を実行することで、初期スケジュールを生成して出力する。例えば、使用開始時刻下限順にリクエストをソートすることで生成した順列をスケジューリング処理部４に入力し、初期スケジュールを生成する。
【００２０】
グルーピングルールデータベース６は、リクエストをグルーピングするルールと各ルールの優先度が格納される。例えば、図２に示した使用不可時間データベース２の場合、先行リクエストの種別が「α」であり、後続リクエストの種別が「β」である場合、使用不可時間が長い。そこで、図４に示すように、長い使用不可時間が発生し難い組合せをグルーピングルールとして登録し、優先度を設定する。すなわち、ルール１〜４は、次のような観点からルールが設定されている。
【００２１】
・ルール１：目的が共に「Ａ」で種別が同じであるリクエストの並びをグルーピングすることにより、最適化を実施する（グループ単位で順序を入れ替える）際に、「先行リクエスト：Ａかつα、後続リクエスト：Ａかつβ」であるリクエストの並び（Ｔ５となる並び）が発生する可能性を減らすため
・ルール２：目的が共に「Ｂ」で種別が同じであるリクエストの並びをグルーピングすることにより、最適化を実施する（グループ単位で順序を入れ替える）際に、「先行リクエスト：Ｂかつα、後続リクエスト：Ｂかつβ」であるリクエストの並び（Ｔ４となる並び）が発生する可能性を減らすため
・ルール３：「先行リクエスト：Ｂかつα」で後続リクエストの目的が「Ａ」であるリクエストの並びをグルーピングすることにより、最適化を実施する（グループ単位で順序を入れ替える）際に、「先行リクエスト：Ｂかつα、後続リクエスト：Ｂかつβ」であるリクエストの並び（Ｔ４となる並び）が発生する可能性を減らすため
・ルール４：「先行リクエスト：Ａかつα」で後続リクエストの目的が「Ｂ」であるリクエストの並びをグルーピングすることにより、最適化を実施する（グループ単位で順序を入れ替える）際に、「先行リクエスト：Ａかつα、後続リクエスト：Ａかつβ」であるリクエストの並び（Ｔ５となる並び）が発生する可能性を減らすため
【００２２】
グルーピング処理部７は、グルーピングルールデータベース６を参照し、入力されたスケジュール上において、グルーピングルールデータベース６に登録があり、かつ、所定の時間内にあるリクエストを各ルールに設定された優先度順にグルーピングしていく。図５に、図４に示したグルーピングルールデータベース６に従ってグルーピングを行った場合の例を示す。また、グルーピングしたリクエストと他のリクエストがルール１〜４のいずれかに適合する場合はさらにグルーピングを行う。例えば、図中、５０１に示すように、ルール１でグルーピングされた目的が「Ａ」で種別が「α」のリクエストは、目的が「Ｂ」で種別が「α」のリクエストとルール３によってさらにグルーピングされる。また、図中、５０２に示すように、ルール２でグルーピングされた目的が「Ｂ」で種別が「β」のリクエストは、ルール４によって、目的が「Ａ」で種別が「α」のリクエストとさらにグルーピングされる。なお、図中、５０３に示すように、使用開始時刻が所定の時間よりも長い場合、この空き時間に他のリクエストをスケジューリングできる可能性があるため、並びがいずれかのルールに適合する場合であってもグルーピングは行わない。
【００２３】
最適化実行部８は、入力されたスケジュールの評価値が向上するように、入力されたリクエストのグループ単位でスケジュールを変更する。
【００２４】
次に、実施の形態１によるスケジューリング装置の動作について、図６に示すフローチャートを参照しながら説明する。
ここで、最適化手法は、局所探索法を利用する場合を想定して説明する。局所探索法は、候補解を一つ保持し、その候補解を少し変化させた近傍解集合を生成し、現在の評価値よりも良い解で候補解を更新することを繰り返すことにより、評価値の良い解を探索するという手法である。本実施の形態の局所探索法において、解の表現はリクエストの順列であり、解の評価値は順列に従って、１つずつリクエストの使用開始時刻を決定していくことで生成されたスケジュールの評価値とする。
【００２５】
・ステップＳＴ１：初期スケジュール生成部５を実行し、初期スケジュールを生成する。
・ステップＳＴ２：グルーピング処理部７は、初期スケジュール生成部５で生成された初期スケジュールを入力としてグルーピング処理を実行する。そして、グルーピングされたリクエストの情報、初期スケジュールを入力として、最適化実行部８における最適化処理を行う。ここで、最適化実行部８は、入力された初期スケジュールにおけるリクエストの共有リソース使用順で候補解（リクエストの順列）を初期化する。
・ステップＳＴ３：最適化実行部８は、図７に示すように、候補解であるリクエストの順列の順序を、設定されているリクエストのグループ単位で１組交換することで、新たな順列（近傍解）を複数生成する。図７に示す例では、７０１に示すように、グルーピングされた目的が「Ｂ」で種別が「β」のリクエストの並びと、単体の目的が「Ｂ」で種別が「α」のリクエストとを、７０２に示すように、その順序が入れ替えられている。
【００２６】
・ステップＳＴ４：最適化実行部８は、ステップＳＴ３で生成された複数の順列（近傍解集合）をそれぞれスケジューリング処理部４に入力し、各順列に対応するスケジュールとその評価値を取得する。
・ステップＳＴ５：最適化実行部８は、近傍解集合の最良解が候補解の評価値よりも良い場合、候補解を近傍解集合の最良解で更新し、ステップＳＴ６へ進む。一方、近傍解集合の最良解が候補解の評価値よりも悪い場合、現在の候補解に対応するスケジュールとその評価値を最適化の結果として、外部に出力し、処理を終了する。
・ステップＳＴ６：最適化実行部８は、候補解の更新回数（最適化の繰り返し回数）が所定の回数に達していない場合は、ステップＳＴ３へ進む。一方、候補解の更新回数が所定の回数に達している場合、現在の候補解に対応するスケジュールとその評価値を最適化の結果として、外部に出力し、処理を終了する。
【００２７】
以上説明したように、実施の形態１のスケジューリング装置によれば、共有リソースを使用するリクエストの内容を格納する使用リクエストデータベースと、任意のリクエストが共有リソースの使用を開始してから、次のリクエストが共有リソースを使用することが不可となる時間である使用不可時間の情報を格納する使用不可時間データベースと、入力される共有リソースの使用スケジュールに対して、使用スケジュールの評価の度合いを示す評価値を算出するスケジュール評価値算出部と、複数のリクエストの順列に対して、使用リクエストデータベースにおけるリクエストの内容と、使用不可時間データベースにおける使用不可時間とに基づいて、複数のリクエストの共有リソースの使用開始時刻が、使用不可時間以外の時刻となるよう、共有リソースの使用スケジュールを生成すると共に、スケジュール評価値算出部による評価値を付加して出力するスケジューリング処理部と、使用リクエストデータベースを参照して、リクエストの順列を生成し、リクエストの順列に対してスケジューリング処理部が生成した使用スケジュールを初期スケジュールとして出力する初期スケジュール生成部と、リクエストをグルーピングするルールを格納するグルーピングルールデータベースと、グルーピングルールデータベースのルールを参照し、初期スケジュール生成部から入力されたスケジュールを元に、各リクエストをグルーピングするグルーピング処理部と、グルーピング処理部でグルーピングされたスケジュールに対して、評価が向上するように、リクエストのグループ単位でスケジュールを変更する最適化実行部とを備えたので、無駄な探索を避け効率的な最適化を行うことができる。
【００２８】
また、実施の形態１のスケジューリング装置によれば、スケジューリング処理部は、入力されるリクエストの順列に従って、先頭から１つずつリクエストの共有リソースの使用開始時刻を、使用不可時間以外の時刻となるよう決定していくようにしたので、最適化処理の性能を向上させることができる。
【００２９】
また、実施の形態１のスケジューリング装置によれば、グルーピングルールデータベースの各ルールには優先度が設定され、グルーピング処理部は、優先度に従って各ルールを適用してグルーピングを行うようにしたので、適切なグルーピングが行われ、得られるスケジュールの最適性を向上する、また、スケジュールの作成・実施管理者にとって自然なスケジュールを得ることができる。
【００３０】
また、実施の形態１のスケジューリング装置によれば、グルーピング処理部は、リクエストの内容の並びに対して、グルーピングルールデータベースのルールを適用し、グルーピングを行うようにしたので、リクエストの順列上の順序（すなわち、使用開始時刻）が離れたリクエスト同士がグルーピングされなくなり、リクエスト間の公平性を確保し、かつ、リクエストの遅延時間の短縮化を図ることができる。
【００３１】
また、実施の形態１のスケジューリング装置によれば、グルーピング処理部は、グルーピングルールデータベースのルールに適合したリクエストの内容の並びであっても、リクエストの使用開始時刻の時間差が所定の時間より長い場合は、グループ化を行わないようにしたので、この空き時間に他のリクエストをスケジューリングできる可能性を損なうことがなく、最適化処理を行うことができる。
【００３２】
また、実施の形態１のスケジューリング装置によれば、使用不可時間データベースに登録される使用不可時間は、共有リソースを先行して使用するリクエストとその次に使用するリクエストの内容に応じて設定されるようにしたので、より実現性の高いスケジュール（より現実の制約を反映したスケジュール）が生成できる。
【００３３】
また、実施の形態１のスケジューリング装置によれば、グルーピングルールデータベースのルールは、使用不可時間が長くなりにくいリクエストの内容の並びを示すようにしたので、個々のグループがリソースを占有する時間が短くなり、全体としてリクエストの総遅延時間が減少したスケジュール、さらには、リクエストのスループットが向上したスケジュールが得られる。
【００３４】
また、実施の形態１のスケジューリング装置によれば、使用リクエストデータベースに登録されるリクエストの内容として、リクエストの使用開始時刻下限と使用開始時刻上限の情報を有し、スケジューリング処理部は、任意のリクエストの使用開始時刻を決定する際に、リクエストの使用開始時刻下限と使用開始時刻上限の範囲内に、リクエストの使用開始時刻を割当て、一方、使用開始時刻下限と使用開始時刻上限の範囲内に、リクエストの使用開始時刻が割当てられなかった場合は、リクエストの使用開始時刻の割当てが不可であったことを出力するようにしたので、より実現性の高いスケジュール（より現実の制約を反映したスケジュール）を得ることができる。
【００３５】
また、実施の形態１のスケジューリング装置によれば、初期スケジュール生成部は、使用リクエストデータベースを参照して、使用開始時刻下限順にソートすることによりリクエストの順列を生成するようにしたので、リクエスト間の公平性を確保し、かつ、スケジュールの作成・実施管理者にとって自然なスケジュールを得ることができる。
【００３６】
実施の形態２．
実施の形態２における図面上の構成は実施の形態１における図１と同様であるため、図１を用いて説明する。実施の形態２の初期スケジュール生成部５は、使用リクエストデータベース１を参照して、使用開始時刻上限順にリクエストをソートすることによりリクエストの順列を生成するようにしたものである。他の構成は実施の形態１と同様であるため、ここでの説明は省略する。
【００３７】
次に、実施の形態２のスケジューリング装置の動作について説明する。初期スケジュール生成部５は、使用リクエストデータベース１を参照して、使用開始時刻上限順にリクエストをソートすることにより、リクエストの順列を生成する。そして、そのリクエストの順列を入力として、スケジューリング処理部４がスケジューリング処理を実行することで、初期スケジュールを生成して出力する。その他の動作については実施の形態１と同様である。
【００３８】
以上説明したように、実施の形態２のスケジューリング装置によれば、初期スケジュール生成部は、使用リクエストデータベースを参照して、使用開始時刻上限順にソートすることによりリクエストの順列を生成するようにしたので、初期スケジュールを生成する際に、リクエストへの使用開始時刻の割当てが不可となる（リクエストの使用開始時刻下限と使用開始時刻上限の範囲内にリクエストの使用開始時刻を割当てられない）ことの発生頻度を減少させることができる。
【００３９】
実施の形態３．
実施の形態３における図面上の構成は実施の形態１における図１と同様であるため、図１を用いて説明する。実施の形態３の最適化実行部８は、スケジュールを変更する際に、所属するリクエスト数が所定の数以下であるグループを変更対象とするよう構成されている。他の構成は実施の形態１と同様であるため、ここでの説明は省略する。
【００４０】
次に、実施の形態３のスケジューリング装置の動作として、最適化実行部８の動作のみを図６のフローチャートを参照しながら説明する。また、最適化実行部８は、図６のフローチャートのステップＳＴ３の動作が異なる以外、実施の形態１と同じである。よって、ステップＳＴ３の動作のみを説明する。
【００４１】
最適化実行部８は、図６のフローチャートにおけるステップＳＴ３において、候補解であるリクエストの順列の順序を、設定されているリクエストのグループ単位で１組交換することで、新たな順列（近傍解）を複数生成する。この際に、図８に示すように、所属するリクエスト数が所定の数以下であるグループを変更対象とし、かつ、所属するリクエスト数が所定の数より多いグループを超えて順序を変更しないようにする。例えば、図８の例では、８０１に示すように、グループに所属するリクエスト数が３以上のグループは変更対象とはしないよう設定され、また、８０２に示すように、所属するリクエスト数が所定の数より多いグループ（例えばリクエスト数が３以上のグループ）を超えて順序を入れ替えないよう設定されている。
【００４２】
以上説明したように、実施の形態３のスケジューリング装置によれば、最適化実行部は、スケジュールを変更する際、所属するリクエスト数が所定の数以下であるグループを変更対象とするようにしたので、スケジュール変更によって、リクエストへの使用開始時刻の割当てが不可となる（リクエストの使用開始時刻下限と使用開始時刻上限の範囲内にリクエストの使用開始時刻を割当てられない）ことが発生する頻度を減少する、すなわち、無駄な探索をさらに減少させることができる。
【００４３】
また、実施の形態３のスケジューリング装置によれば、最適化実行部は、所属するリクエスト数が所定の数以下であるグループの共有リソースの使用順序を変更する際、所属するリクエスト数が所定の数より多いグループを超える順序変更を行わないようにしたので、スケジュール変更によって、リクエストへの使用開始時刻の割当てが不可となる（リクエストの使用開始時刻下限と使用開始時刻上限の範囲内にリクエストの使用開始時刻を割当てられない）ことが発生する頻度を減少する、すなわち、無駄な探索をさらに減少させることができる。
【００４４】
なお、実施の形態３のスケジューリング装置において、リクエスト間の公平性を重視するものとして、使用時刻下限順にリクエストをソートした順列を元に初期スケジュールを生成し、最適化実行部がその初期スケジュールを変更するようにすれば、公平性を大きく損なう（使用時刻下限順から、共有リソースを実際に使用する順序が大きく遅れる）ことを防ぐことができる。
【００４５】
実施の形態４．
実施の形態４における図面上の構成は実施の形態１における図１と同様であるため、図１を用いて説明する。実施の形態４の最適化実行部８は、スケジュールを変更してスケジュールの評価値が改善した場合、そのスケジュールをグルーピング処理部７に入力し、グルーピング処理を行ってから再度最適化処理を行うよう構成されている。他の構成は実施の形態１と同様であるため、ここでの説明は省略する。
【００４６】
次に、実施の形態４のスケジューリング装置の動作について説明する。実施の形態４では、最適化実行部８の動作が異なる以外は、実施の形態１と同じであるため、最適化実行部８の動作についてのみ、図６のフローチャートを参照しながら説明する。
最適化実行部８は、図６のフローチャートのステップＳＴ５において、近傍解集合の最良解が候補解の評価値よりも良い場合、ステップＳＴ３において候補解を近傍解集合の最良解で更新する。この場合、評価値が改善されたスケジュールを入力としてグルーピング処理部７においてグルーピング処理を実行してからステップＳＴ３へ進む。すなわち、ステップＳＴ５において評価値が改善された場合、ステップＳＴ６において最適化の繰り返し回数が所定の回数に達していない場合はステップＳＴ３に戻り、グルーピング処理を行う。一方、ステップＳＴ５において、近傍解集合の最良解が候補解の評価値よりも悪い場合は、実施の形態１と同様に、現在の候補解に対応するスケジュールとその評価値を最適化の結果として、外部に出力し、処理を終了する。
【００４７】
以上説明したように、実施の形態４のスケジューリング装置によれば、最適化実行部は、スケジュールを変更してスケジュールの評価値が改善した場合、スケジュールを入力としてグルーピング処理を行ってから再度スケジュールの変更処理を行うようにしたので、新たに発生したグルーピングルールに該当するリクエストの並びがグループとしてまとめられ、より最適化対象となる要素数が減り、最適化に要する処理時間を短縮することができる。
【００４８】
実施の形態５．
図９は、本発明の実施の形態５におけるスケジューリング装置の構成を示すブロック図である。実施の形態５は、共有リソースの使用に影響を及ぼす環境情報を格納する環境情報データベース９を新たに備える。また、グルーピングルールデータベース６ａに登録されるグルーピングルールが環境情報の内容毎に設定されている、さらに、グルーピング処理部７ａは、環境情報データベース９を参照して、環境情報の内容に応じてグルーピングルールデータベース６ａのルールを選択するよう構成されている。これ以外の構成は、図１に示した実施の形態１と同様であるため、対応する部分に同一符号を付してその説明を省略する。
【００４９】
環境情報データベース９は、スケジュールを作成する共有リソースの使用に影響を与える環境情報として、例えば、以下の事項を示す情報を格納する。
・生成したスケジュールを利用してリクエストの実施を管理する管理者
・共有リソースが所属するシステムの構成（目的Ａのリクエストのみを処理可能な他の共有リソースが存在する等）
・共有リソースの使用条件に影響を与える事項（天候、気温等）
【００５０】
また、グルーピングルールデータベース６ａに登録されるグルーピングルールは、環境情報データベース９における環境情報毎に設定される。例えば、環境情報に「生成したスケジュールを利用してリクエストの実施を管理する管理者」が登録されている場合、管理者毎にグルーピングルールを設定する。更に、グルーピング処理部７ａは、環境情報データベース９を参照して、環境情報の内容に応じて利用するグルーピングルールを選択する。例えば、グルーピングルールが管理者毎に設定されている場合、環境情報データベース９を参照して、「生成したスケジュールを利用してリクエストの実施を管理する管理者」の情報を取得する。そして、グルーピングルールデータベース６ａより、その管理者に対応するグルーピングルールを選択し、そのグルーピングルールを用いてリクエストをグルーピングする。その他の動作は実施の形態１と同様である。
【００５１】
以上説明したように、実施の形態５のスケジューリング装置によれば、共有リソースの使用に影響を及ぼす環境情報を格納する環境情報データベースを備え、グルーピングルールデータベースのルールは、環境情報の内容に基づいて設定され、グルーピング処理部は、環境情報データベースを参照して、環境情報の内容に応じてグルーピングルールデータベースのルールを選択するようにしたので、より適切なスケジュールを生成することができる。
【００５２】
実施の形態６．
図１０は、本発明の実施の形態６におけるスケジューリング装置の構成を示すブロック図である。実施の形態６は、環境情報データベース９に加えて、スケジュール事例データベース１０とグルーピングルール生成部１１を新たに備える。また、グルーピングルールデータベース６ｂは、グルーピングルール生成部１１によって生成されたデータベースである。これ以外の構成は、図１に示した実施の形態１と同様であるため、対応する部分に同一符号を付してその説明を省略する。
【００５３】
環境情報データベース９は、実施の形態５の環境情報データベース９と同様の構成である。また、スケジュール事例データベース１０は、スケジュール事例を格納する。例えば、過去の共有リソースの使用状況やシミュレーションによるスケジュール結果等が挙げられる。グルーピングルール生成部１１は、使用リクエストデータベース１及び環境情報データベース９の内容と類似したスケジュール事例をスケジュール事例データベース１０から抽出する。そして、そのスケジュール事例を利用してグルーピングルールを作成し、グルーピングルールデータベース６ｂに登録する。例えば、環境情報データベース９に、「生成したスケジュールを利用してリクエストの実施を管理する管理者」が登録されている場合、以下の手順でグルーピングルールの生成を行うことが考えられる。
【００５４】
［ステップＳＴ１］：環境情報データベース９を参照して、「生成したスケジュールを利用してリクエストの実施を管理する管理者」の情報を取得する。そして、スケジュール事例データベース１０から、その管理者がリクエストの実施を管理した過去の共有リソースの使用状況であるスケジュール事例を抽出する。
［ステップＳＴ２］：ステップＳＴ１で抽出したスケジュール事例のうち、使用リクエストデータベース１の内容と類似したスケジュール事例をさらに抽出する。
［ステップＳＴ３］：ステップＳＴ２で抽出したスケジュール事例において、（連続して共有リソースを使用している）２つのリクエストの内容の並び方の発生数をそれぞれカウントする。そして、発生数が多いリクエストの内容の並び方をグルーピングルールとしてグルーピングルールデータベース６ｂに登録する。この際、発生数が多いほど、ルールの優先度を高く設定する。また、登録するルール数は所定の数までとする。
【００５５】
以上説明したように、実施の形態６のスケジューリング装置によれば、共有リソースの使用に影響を及ぼす環境情報を格納する環境情報データベースと、スケジュール事例を格納するスケジュール事例データベースと、使用リクエストデータベースにおけるリクエストの内容と、環境情報データベースにおける環境情報と類似したスケジュール事例をスケジュール事例データベースから抽出し、抽出したスケジュール事例に基づいてグルーピングルールを作成し、作成したグルーピングルールをグルーピングルールデータベースのルールとするグルーピングルール生成部とを備えたので、手動でグルーピングルールを設定する必要がなく、また、使用リクエストデータベース、環境情報データベースの内容に応じてグルーピングルールが設定されるので、より適切なスケジュールを生成することができる。
【００５６】
実施の形態７．
実施の形態７における図面上の構成は実施の形態１における図１と同様であるため、図１を用いて説明する。実施の形態７のスケジューリング処理部４は、リクエストの使用開始時刻下限と使用開始時刻上限の範囲内にリクエストの使用開始時刻を割当てられなかった場合、リクエストの使用開始時刻下限と使用開始時刻上限の範囲外にリクエストの使用開始時刻を設定するよう構成されている。また、スケジュール評価値算出部３は、入力されたスケジュールにおいて、リクエストの使用開始時刻下限と使用開始時刻上限の範囲外に、リクエストの使用開始時刻が割当てられている場合に、スケジュールの評価値として評価を低下させる値として出力するよう構成されている。他の構成は実施の形態１と同様であるため、ここでの説明は省略する。
【００５７】
次に、実施の形態７のスケジューリング装置の動作を、スケジューリング処理部４とスケジュール評価値算出部３について説明する。
スケジューリング処理部４は、リクエストの使用開始時刻下限と使用開始時刻上限の範囲内にリクエストの使用開始時刻を割当てられなかった場合に、リクエストの使用開始時刻下限と使用開始時刻上限の範囲外にリクエストの使用開始時刻を設定する。例えば、「使用不可時間でない時間帯における最も早い時刻」をリクエストの使用開始時刻として設定する。
【００５８】
スケジュール評価値算出部３は、入力されたスケジュールにおいて、リクエストの使用開始時刻下限と使用開始時刻上限の範囲外に、リクエストの使用開始時刻が割当てられている場合に、スケジュールの評価を低下させる値として、評価値にペナルティを与えて出力する。例えば、以下のようにペナルティを与える。
・スケジュールの評価値の値が小さいほど良い場合：リクエストの使用開始時刻下限と使用開始時刻上限の範囲外に、リクエストの使用開始時刻が割当てられている数に応じて、スケジュールの評価値を増加させる。
・スケジュールの評価値の値が大きいほど良い場合：リクエストの使用開始時刻下限と使用開始時刻上限の範囲外に、リクエストの使用開始時刻が割当てられている数に応じて、スケジュールの評価値を減少させる。
【００５９】
以上説明したように、実施の形態７のスケジューリング装置によれば、スケジューリング処理部は、リクエストの使用開始時刻下限と使用開始時刻上限の範囲内にリクエストの使用開始時刻を割当てられなかった場合、リクエストの使用開始時刻下限と使用開始時刻上限の範囲外にリクエストの使用開始時刻を設定し、かつ、スケジュール評価値算出部は、入力されたスケジュールにおいて、リクエストの使用開始時刻下限と使用開始時刻上限の範囲外に、リクエストの使用開始時刻が割当てられていた場合にスケジュールの評価値を評価が低下する値として出力するようにしたので、必ずスケジュールが生成されるという効果がある。また、リクエストの使用開始時刻下限と使用開始時刻上限の範囲外に、リクエストの使用開始時刻が割当てられている場合に、スケジュールの評価値にペナルティを与え、この評価値に基づいて最適化を実施することで、リクエストの使用開始時刻下限と使用開始時刻上限の範囲外に、リクエストの使用開始時刻が割当てられる数の減少を図ることができる。
【００６０】
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【符号の説明】
【００６１】
１  使用リクエストデータベース、２  使用不可時間データベース、３  スケジュール評価値算出部、４  スケジューリング処理部、５  初期スケジュール生成部、６，６ａ，６ｂ  グルーピングルールデータベース、７，７ａ  グルーピング処理部、８  最適化実行部、９  環境情報データベース、１０  スケジュール事例データベース、１１  グルーピングルール生成部。
【図１】
2014002576.tif 000003
【図２】
2014002576.tif 000004
【図３】
2014002576.tif 000005
【図４】
2014002576.tif 000006
【図５】
2014002576.tif 000007
【図６】
2014002576.tif 000008
【図７】
2014002576.tif 000009
【図８】
2014002576.tif 000010
【図９】
2014002576.tif 000011
【図１０】
2014002576.tif 000012