(57)【要約】  列車ダイヤ校正装置は、入力部からスジの移動先情報が入力された場合に、スジの移動方向に存在するスジについて、隣接する２つの駅間における同一の列車の運転時分を、対応するノード間に係るアークの制約時間条件データに基づいて校正することで、移動方向に存在するスジにおけるノードの最早時刻及び最遅時刻をそれぞれ演算し、ダイヤネットワークを更新する。
2016147212.tif 000002
【特許請求の範囲】
【請求項１】
複数の駅を繋ぐ路線上を走行する列車に係るダイヤデータを記憶するダイヤデータ記憶部と、
前記ダイヤデータ記憶部から前記ダイヤデータを読込み、前記列車の各駅における到着及び出発に係るイベントをそれぞれ表すノードを生成するとともに、これらのノードを前記ノード間の時間間隔及び時系列上の着発順序をそれぞれ表すアークによって順次接続して前記ダイヤデータを表すダイヤネットワークを生成するダイヤネットワーク生成部と、
前記ダイヤネットワーク生成部が生成したダイヤネットワークを画面表示する表示部と、
前記表示部が表示しているダイヤネットワークに含まれるスジを指定し、時系列上で移動先情報を入力する入力部と、
前記ノード間の時間間隔の最小値及び最大値を前記アークの制約時間条件データとして記憶する制約時間条件データ記憶部と、
前記入力部から前記スジの移動先情報が入力された場合に、前記スジの移動方向に存在するスジについて、同一方向へ進行する２つの前記列車間の時間間隔を表す続行時隔及び前記路線の終端駅に対して反対方向へ進行する２つの前記列車間の時間間隔を表す交差時隔を、対応するノード間に係る前記制約時間条件データに基づいて校正することで、前記移動方向に存在するスジにおける前記ノードの最早時刻及び最遅時刻をそれぞれ演算し、前記ダイヤネットワークを更新するダイヤネットワーク更新部と、
を備えることを特徴とする列車ダイヤ校正装置。
【請求項２】
複数の駅を繋ぐ路線上を走行する列車に係るダイヤデータを記憶するダイヤデータ記憶部と、
前記ダイヤデータ記憶部から前記ダイヤデータを読込み、前記列車の各駅における到着及び出発に係るイベントをそれぞれ表すノードを生成するとともに、これらのノードを前記ノード間の時間間隔及び時系列上の着発順序をそれぞれ表すアークによって順次接続して前記ダイヤデータを表すダイヤネットワークを生成するダイヤネットワーク生成部と、
前記ダイヤネットワーク生成部が生成したダイヤネットワークを画面表示する表示部と、
前記表示部が表示しているダイヤネットワークに含まれるスジを指定し、時系列上で移動先情報を入力する入力部と、
前記ノード間の時間間隔の最小値及び最大値を前記アークの制約時間条件データとして記憶する制約時間条件データ記憶部と、
前記入力部から前記スジの移動先情報が入力された場合に、前記スジの移動方向に存在するスジについて、隣接する２つの駅間における同一の前記列車の運転時分を、対応するノード間に係るアークの前記制約時間条件データに基づいて校正することで、前記移動方向に存在するスジにおける前記ノードの最早時刻及び最遅時刻をそれぞれ演算し、前記ダイヤネットワークを更新するダイヤネットワーク更新部と、
を備えることを特徴とする列車ダイヤ校正装置。
【請求項３】
前記ダイヤネットワーク更新部は、前記入力部から前記スジの移動先情報が入力された場合に、前記運転時分に加えて、同一の前記列車の停車時間及び折返し時間を、対応するノード間に係るアークの前記制約時間条件データに基づいて校正することで、前記移動方向に存在するスジにおける前記ノードの最早時刻及び最遅時刻をそれぞれ演算し、前記ダイヤネットワークを更新することを特徴とする請求項２記載の列車ダイヤ校正装置。
【請求項４】
前記ダイヤネットワーク更新部は、前記入力部から前記スジの移動先情報が入力された場合に、前記続行時隔及び前記交差時隔に加えて、隣接する２つの駅間における同一の前記列車の運転時分、同一の前記列車の停車時間及び折返し時間を、対応するノード間に係るアークの前記制約時間条件データに基づいて校正することで、前記移動方向に存在するスジにおける前記ノードの最早時刻及び最遅時刻をそれぞれ演算し、前記ダイヤネットワークを更新することを特徴とする請求項１記載の列車ダイヤ校正装置。
【請求項５】
複数の駅を繋ぐ路線上を走行する列車に係るダイヤデータを記憶する記憶装置から前記ダイヤデータを読込み、前記列車の各駅における到着及び出発に係るイベントをそれぞれ表すノードを生成するとともに、これらのノードを前記ノード間の時間間隔及び時系列上の着発順序をそれぞれ表すアークによって順次接続して前記ダイヤデータを表すダイヤネットワークを生成するダイヤネットワーク生成ステップと、
前記ダイヤネットワーク生成ステップにおいて生成されたダイヤネットワークを画面表示する表示ステップと、
前記表示ステップにおいて表示されたダイヤネットワークに含まれるスジを指定し、時系列上で移動先情報を入力する移動先入力ステップと、
前記入力ステップにおいて前記スジの移動先情報が入力された場合に、前記スジの移動方向に存在するスジについて、同一方向へ進行する２つの前記列車間の時間間隔を表す続行時隔及び前記路線の終端駅に対して反対方向へ進行する２つの前記列車間の時間間隔を表す交差時隔、隣接する２つの駅間における同一の前記列車の運転時分、同一の前記列車の停車時間及び折返し時間を、対応するノード間の時間間隔の最小値及び最大値を予め定義した制約時間条件データに基づいて校正することで、前記移動方向に存在するスジにおける前記ノードの最早時刻及び最遅時刻をそれぞれ演算し、前記ダイヤネットワークを更新するダイヤネットワーク更新ステップと、
をコンピュータに実行させることを特徴とする列車ダイヤ校正プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、列車ダイヤ校正装置および列車ダイヤ校正プログラムに関する。
【背景技術】
【０００２】
鉄道やバスの運行計画を立案するときは、予め２つ駅の間の移動時間（基準運転時分）と、各駅での停車時間（所定停車時分）を決め、その時間を使って作成するのが基本である。また、鉄道など移動体の運行計画は、新規作成することは稀であり、既存のダイヤグラム（以下、「ダイヤ」という。）を複写したダイヤを基に経験を踏まえた改良を行い、何回もそれを反復することでダイヤが熟成されているのが実情である。【０００３】
しかしながら、ダイヤを改良するときには１本のダイヤスジ（以下、「スジ」という。）を移動させるだけでも様々な問題が発生する場合が多い。特に運行密度が高いダイヤの場合に顕著である。具体的には、二次元上で表現されたダイヤにおいてスジを移動させると列車間のスジが重なる、走行順が逆になる等、つじつまが合わない部分が発生してしまう。【０００４】
また、列車を安全に運行するためには、先行列車と続行列車の時間間隔（時隔時分）を確保し、スジとスジの間を適切に維持することが求められる。更に、堅牢で頑強性の高いダイヤにするためには、適切な停車時間や、折返し駅での十分な停車時間（折返し停車時分）を確保することも重要である。これは、ダイヤの乱れをその停車時間で吸収するために必要だからである。このため、鉄道などのダイヤの変更作業におけるスジの動かし方は、基本的には基準運転時分は変更せずに、停車時間のみを調整するのが一般的である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２７４６６４号公報
【特許文献２】特許２００５−４１３３２号公報
【非特許文献１】長崎、江口、古関「鉄道運行計画におけるグラフ理論の応用−理論の基礎と運転整理問題への適用可能性」、電気学会交通電気鉄道研究会資料、ＴＥＲ−０３−２３、Ｊｕｎ，２００３
【非特許文献２】富井他、「鉄道のスケジューリングアルゴリズム」、ＮＴＳ、２００５
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ある列車の途中駅における停車時間を延長すると、その時間の延長がスジ全体に波及し、更にそのスジと干渉する他の全てのスジに影響が波及するため、つじつまの合わない部分が広がってしまう。このため、輸送計画の立案者が、１つのスジを移動させた際に、所定の制約条件を満たしながら他のスジも同時に移動させ、再計画できる仕組みが必要とされる。【０００７】
例えば、鉄道分野において、簡易的なシミュレーション手段としてＰＥＲＴ（Ｐｒｏｊｅｃｔ Ｅｖａｌｕａｔｉｏｎ ａｎｄ Ｒｅｖｉｅｗ Ｔｅｃｈｎｉｑｕｅ）を使用した事例や、事故時のダイヤ遅延の際のダイヤ修正を行うべき部分の候補を発見するためにクリティカルパスを用いた事例が知られている。これらの事例の多くは、鉄道ダイヤのような様々な時間制約が原因として混在するスケジュールにおいて、制約違反の原因となる箇所を連鎖的に発見（クリティカルパスを発見）する方法も用いている。【０００８】
しかしながら、従来のＰＥＲＴを用いた方法は、イベント間で要する最小の時間間隔のみを制約として扱うため用途が制限され、クリティカルパスを用いた方法では基本的にスケジュールの遅延解析にしか使えないという問題があった。鉄道などの移動体のダイヤでは、既定の運転時分通りにスジが引かれるべきであるが、途中駅停車時間も遅延吸収用に考えられた既定の所定停車時間と遅れ回復用の最小限の停車時間を許可する等、イベント間の時間間隔に関する制約が多数あり、従来型のＰＥＲＴのクリティカルパス解析では扱い難かった。【０００９】
そこで、本発明の一実施形態に係る列車ダイヤ校正装置は、上記従来技術の問題に鑑み、既存ダイヤを変更する際に、ダイヤ上でのスジ間のつじつまを合わせつつ、ダイヤを自動的に校正するものである。
【課題を解決するための手段】
【００１０】
本発明の一実施形態に係る列車ダイヤ校正装置は、複数の駅を繋ぐ路線上を走行する列車に係るダイヤデータを記憶するダイヤデータ記憶部と、前記ダイヤデータ記憶部から前記ダイヤデータを読込み、前記列車の各駅における到着及び出発に係るイベントをそれぞれ表すノードを生成するとともに、これらのノードを前記ノード間の時間間隔及び時系列上の着発順序をそれぞれ表すアークによって順次接続して前記ダイヤデータを表すダイヤネットワークを生成するダイヤネットワーク生成部と、前記ダイヤネットワーク生成部が生成したダイヤネットワークを画面表示する表示部と、前記表示部が表示しているダイヤネットワークに含まれるスジを指定し、時系列上で移動先情報を入力する入力部と、前記ノード間の時間間隔の最小値及び最大値を前記アークの制約時間条件データとして記憶する制約時間条件データ記憶部と、前記入力部から前記スジの移動先情報が入力された場合に、前記スジの移動方向に存在するスジについて、同一方向へ進行する２つの前記列車間の時間間隔を表す続行時隔及び前記路線の終端駅に対して反対方向へ進行する２つの前記列車間の時間間隔を表す交差時隔を、対応するノード間に係る前記制約時間条件データに基づいて校正することで、前記移動方向に存在するスジにおける前記ノードの最早時刻及び最遅時刻をそれぞれ演算し、前記ダイヤネットワークを更新するダイヤネットワーク更新部と、
を備えることを特徴とする。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係る列車ダイヤ校正装置の全体構成例を示す図。
【図２】図１の列車ダイヤ校正装置のハードウェア構成例を示すブロック図。
【図３】ダイヤデータをＰＥＲＴに準じたダイヤネットワークに変換した図。
【図４】路線とダイヤデータの対応関係の具体例を示す図。
【図５】図４の路線とダイヤデータをＰＥＲＴに準じたダイヤネットワークに変換した図。
【図６】ダイヤ校正モード設定画面の具体例を示す図。
【図７】図１のダイヤネットワーク生成部におけるダイヤネットワーク生成処理の具体例を示すフローチャート。
【図８】ノードの生成を説明する図。
【図９】駅間アークの生成を説明する図。
【図１０】第１の停車アークの生成を説明する図。
【図１１】第２の停車アークの生成を説明する図。
【図１２】第１の着発順序アークの生成を説明する図。
【図１３】第２の着発順序アークの生成を説明する図。
【図１４】第３の着発順序アークの生成を説明する図。
【図１５】第４の着発順序アークの生成を説明する図。
【図１６】第１の番線順序アークの生成を説明する図。
【図１７】第２の番線順序アークの生成を説明する図。
【図１８】第３の番線順序アークの生成を説明する図。
【図１９】図１のダイヤネットワーク更新部におけるダイヤネットワーク更新処理の具体例を示すフローチャート。
【図２０Ａ】図１９のＳ１０５の詳細な処理例を示すフローチャート。
【図２０Ｂ】図１９のＳ１０７の詳細な処理例を示すフローチャート。
【図２１】ダイヤスジの編集事例（１）を示す図。
【図２２】ダイヤスジの編集事例（２）を示す図。
【図２３】ダイヤスジの編集事例（３）を示す図。
【図２４】ダイヤスジの編集事例（４）を示す図。
【図２５】ダイヤスジの編集事例（５）を示す図。
【図２６】ダイヤスジの編集事例（６）を示す図。
【図２７】ダイヤスジの編集事例（７）を示す図。
【図２８】本発明の一実施形態に係る列車ダイヤ校正装置の変形例であるコンピュータシステムを示す図。
【発明を実施するための形態】
【００１２】
先ず、本実施形態に係る列車ダイヤ校正装置の概要について説明する。本実施形態に係る列車ダイヤ校正装置は、白紙の状態から完全なダイヤを自動作成するものではなく、既存のダイヤをユーザが変更する作業を支援するものである。一般に、ダイヤを一旦ネットワーク形式でモデル化した場合、ネットワークの構造を変化させない範囲の変更であれば、設定された全ての時間制約（各発着ノードの実施時刻の上限値と下限値の制約や、ノード間の時間間隔の最小値と最大値の制約）を守るダイヤの到着・出発時刻を高速に求めることが可能であり、本実施形態ではこの仕組みを利用している。ここで、「ネットワークの構造を変化させない」とは、車両運用（スジの折返しのつなぎ方）や駅での着発順序及び同一番線の使用順序に制限を設けることを意味するものとする。
【００１３】
以下、本発明の一実施形態に係る列車ダイヤ校正装置１について図面を用いて詳細に説明する。図１は、列車ダイヤ校正装置１の全体構成例を示す図である。同図に示されるように、列車ダイヤ校正装置１は、ダイヤデータ記憶部１１、入力部１２、制約時間条件データ記憶部１３、スケジュール検証部１４、ダイヤ校正モード記憶部１５、違反ノード記憶部１６、表示部１７を備えている。
【００１４】
ダイヤデータ記憶部１１は、複数の駅を繋ぐ路線上を走行する列車に係るダイヤデータ（運行計画データ）を記憶する記憶装置である。尚、ダイヤデータ記憶部１１は、ダイヤデータとして、列車情報と車両運用情報についても記憶しているものとする。列車情報は、一意になる列車番号をキーとして、例えば特急や急行と言った列車種別情報と、停車・通過する駅の配列情報である。駅の配列情報は、始発駅から終着駅まで停車・通過する順に昇順につけられた番号とそれに対応する駅コード、通過・停車の区分、到着時刻、出発時刻（始発駅は出発時刻のみ、終着駅は到着時刻のみ）で構成される構造体である。また、車両運用情報とは、一意になる車両運用番号をキーとして、例えばＥ２３３系と言った車両型式情報と、運用される列車番号の配列情報である。列車番号の配列情報は、出庫時からの運用順に列車番号を並べたときの昇順につけられた番号とそれに対応する列車番号情報で構成される構造体である。
【００１５】
入力部１２は、ユーザが情報を入力するために用いる各種の入力装置であり、例えば、マウス等が該当する。例えば、入力部１２では、表示部１７が表示する編集画面上でダイヤネットワークに含まれるスジを指定し、時系列上で移動先情報を入力する。
【００１６】
制約時間条件データ記憶部１３は、列車の各駅における到着及び出発に係るイベントをそれぞれ表すノード間の時間間隔の最小値及び最大値を、これらのイベント間を結ぶアークの制約時間条件データとして記憶する記憶装置である。本実施形態では、制約時間条件データを「アークの重み」ともいう。
【００１７】
スケジュール検証部１４は、入力部１２において複数のイベントに関するスケジュール（ダイヤデータ）の入力を受けると、当該スケジュールが制約時間条件データ記憶部１３に記憶されている制約時間条件を満足するか否かを検証する。スケジュール検証部１４は、ダイヤネットワーク生成部１４ａ、ダイヤネットワーク更新部１４ｂ、違反ノード検出部１４ｃ、最早・最遅時刻制約変更部１４ｄ、ダイヤ校正モード設定部１４ｅからなる。
【００１８】
ダイヤネットワーク生成部１４ａは、ダイヤデータ記憶部１１からダイヤデータを読込み、ノードを生成するとともに、これらをノード間の時間間隔及び時系列上の着発順序をそれぞれ表すアークによって順次接続してダイヤデータを表すダイヤネットワークを生成する。また、ダイヤネットワーク生成部１４ａは、ダイヤネットワークの生成時に、制約時間条件データからノード間（アーク）で要する時間間隔の最小値・最大値の双方を制約（アークの重み）として指定するものとする。
【００１９】
ダイヤネットワーク更新部１４ｂは、入力部１２からスジの移動先情報が入力された場合に、制約時間条件データ記憶部１３に記憶されている制約時間条件データに基づいて、スジの移動方向に存在するスジにおけるノードの最早時刻及び最遅時刻をそれぞれ演算し、ダイヤネットワークを更新し、表示部１７へ出力するプログラムである。ダイヤネットワーク更新部１４ｂは、各ノードにおける制約時間条件データで指定されるイベントの実施時刻の上限値（最早時刻ＥＴ）と下限値（最遅時刻ＬＴ）を修正する演算を、各値が収束するまで反復実行するものとする。
【００２０】
違反ノード検出部１４ｃは、ダイヤネットワーク更新部１４ｂにおける最早時刻ＥＴ・最遅時刻ＬＴの演算処理の中で、各ノードの最早時刻ＥＴ・最遅時刻ＬＴの大小関係が反転しているか否かをチェックし、反転しているノード（ＥＴ＞ＬＴ）を検出した場合には、それを違反ノードとして違反ノード記憶部１６に記憶する。
【００２１】
最早・最遅時刻制約変更部１４ｄは、ダイヤネットワークの各ノードに設定される最早時刻ＥＴ・最遅時刻ＬＴが守るべき最早時刻制約、最遅時刻制約を規定の量だけ増減した値を各ノードの初期値として指定する。すなわち、最早・最遅時刻制約変更部１４ｄは、ダイヤネットワーク更新部１４ｂにおける演算結果に従って、増減値を順次変更する。
【００２２】
ダイヤ校正モード設定部１４ｅは、入力部１２からの入力に基づいて表示部１７にダイヤ校正モード設定画面を表示させるとともに、当該画面上で指定されたモード選択情報（ダイヤ校正モード情報）を出力する。
【００２３】
ダイヤ校正モード記憶部１５は、ダイヤ校正モード設定部１４ｅから出力されたダイヤ校正モード情報を記憶する記憶装置である。
【００２４】
違反ノード記憶部１６は、スケジュール検証部１４（違反ノード検出部１４ｃ）において検出された違反ノードを記憶する記憶装置である。ダイヤデータ記憶部１１、制約時間条件データ記憶部１３、ダイヤ校正モード記憶部１５、違反ノード記憶部１６は、１つの記憶装置に統合してもよいし、複数の記憶装置に適宜分散して設けてもよい。
【００２５】
表示部１７は、ダイヤネットワーク生成部１４ａが生成したダイヤネットワーク、ダイヤネットワーク更新部１４ｂが更新したダイヤネットワーク、ダイヤ校正モード設定部１４ｅが出力するダイヤ校正モード設定画面等を表示する表示装置である。
【００２６】
図２は、図１の列車ダイヤ校正装置１のハードウェア構成例を示すブロック図である。同図に示されるように、列車ダイヤ校正装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉt）１０１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２、ＲＡＭ（Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）１０３、入出力インターフェース１０４、システムバス１０５、入力装置１０６、表示装置１０７、ストレージ１０８および通信装置１０９から構成されたコンピュータである。
【００２７】
ＣＰＵ１０１は、ＲＯＭ１０２やＲＡＭ１０３に格納されたプログラムやデータなどを用いて各種の演算処理を実行する処理装置である。ＲＯＭ１０２は、コンピュータを機能させるための基本プログラムや環境ファイルなどを記憶する読み取り専用の記憶装置である。ＲＡＭ１０３は、ＣＰＵ１０１が実行するプログラムおよび各プログラムの実行に必要なデータを記憶する主記憶装置であり、高速な読み出しと書き込みが可能である。入出力インターフェース１０４は、各種のハードウェアとシステムバス１０５との接続を仲介する装置である。システムバス１０５は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３および入出力インターフェース１０４で共有される情報伝達路である。
【００２８】
また、入出力インターフェース１０４には、入力装置１０６、表示装置１０７、ストレージ１０８、および通信装置１０９などのハードウェアが接続されている。入力装置１０６は、ユーザからの入力を処理する装置であり、例えばキーボードやマウスなどである。表示装置１０７は、ユーザに対して演算結果や作成画面などを表示する装置であり、例えば液晶ディスプレイやプラズマディスプレイなどである。ストレージ１０８は、プログラムやデータを蓄積する大容量の補助記憶装置であり、例えばハードディスク装置などである。
【００２９】
図３は、ダイヤデータ（スケジュール）をＰＥＲＴに準じたダイヤネットワークの具体例を示す図である。各丸印はノードを示している。各ノードには、変更前のダイヤの時刻が標準時刻として設定される他、イベント単体の制約条件として制約時間条件データから、実行可能な最早時刻ＥＴ（下限時刻）制限、最遅時刻ＬＴ（上限時刻）制限が付加されているものとする。
【００３０】
また、矢印はアークをそれぞれ示している。アークは、大きく３つの種類に分類される。実線矢印のアークＲは、各駅の出発ノード（以下、「発ノード」ともいう。）とその次の駅の到着ノード（以下、「着ノード」ともいう。）の間に張られ、駅間走行に相当するアークであり、「駅間アーク」という。また、実線矢印のアークＳは、各駅の到着ノードとその駅の出発ノードの間に張られ、駅停車に相当するアークであり、「停車アーク」という。そして、破線矢印のアークＡ／Ｄは、同じ駅を使用する列車の間における順番を示すアークであり、「着発順序アーク」という。
【００３１】
各アークには、変更前のダイヤに設定された時刻の差分（出発ノードと到着ノードに設定された標準時刻の差分）がイベントの間の標準時隔として設定される他、イベントの間で守るべき時間制約条件として、制約時間条件データから最小時間間隔、最大時間間隔が付加されているものとする。
【００３２】
図４は、路線とダイヤデータの対応関係の具体例を示す図である。図４（Ａ）では、Ａ駅、Ｂ駅、Ｃ駅がそれぞれ複数の番線を含む路線図を示している。図４（Ｂ）は、図４（Ａ）の路線を運行する３つの列車に対応するダイヤデータを示している。例えば、実線で示されているダイヤスジは、Ａ駅を出発し、Ｂ駅を経て、Ｃ駅で反対方向に折り返す列車の動きを示している。
【００３３】
図５は、図４の路線とダイヤデータをＰＥＲＴに準じたネットワーク形式のモデルで表現した図である。ここでは、上記図３と同様に、複数の発着ノードと、これらのノード間を繋ぐアークからなるダイヤネットワークが示されている。図３の場合と異なる点は、Ａ駅〜Ｃ駅にそれぞれ番線が複数有り、ノードとアークが番線ごとに設定されていることと、二点鎖線矢印のアークＰが含まれていることである。アークＰは、各駅で同一番線を留置・通過で使用する順番を表現するアークであり、本実施形態では「番線順序アーク」という。この番線順序アークＰについても、他の種類のアークと同様にイベントの間で守るべき時間制約条件として、制約時間条件データから最小時間間隔、最大時間間隔が付加されているものとする。
【００３４】
次に、図５のようなダイヤネットワークを画面表示する際に、各種のアークの重みとして設定される基本的な時刻情報の説明を行う。
【００３５】
（１）基準運転時分
ある駅からある駅まで移動に必要な運転時間の基準値を「基準運転時分」という。この基準運転時分は、通常運転曲線を描画し、シミュレーションすることで算出される。車両が変われば車両性能も異なるためシミュレーション値にばらつきが出るが、通常は最も時間のかかる車両でシミュレーションし、全車両が走行可能な基準運転時分が求められる。日本の都市圏の鉄道のように高密度で運行する場合は、全ての列車がこの基準運転時分通りに走行することで、密度を高めている。本実施形態で使用する「時分」の意味には、秒単位の時間も含まれるものとする。
【００３６】
基準運転時分は、駅間アークの重みとして使用される制約時間条件データであり、｛線区，進行方向，開始駅，終了駅｝がユニークなキーとなるデータである。具体的には以下のようなデータ構造になる。
【表１−１】
2016147212.tif 000003
【００３７】
上記は｛線区，進行方向，開始駅，終了駅｝の単位であるが、番線も考慮し、より厳密に定義することもある。その場合は以下のようなデータ構造になる。
【表１−２】
2016147212.tif 000004
【００３８】
（２）最小（標準）停車時分
ある駅での停車時間は予め決められていて、通常必要最低限の時間が設定されている。これを「最小（標準）停車時分」といい、殆どの列車はこの停車時間で運行される。同一駅での列車間の乗り継ぎなどで意図的に停車時間を延ばされることもあるが、遅れが発生した場合は最小（標準）停車時分までは短縮可能である。また、停車時間は乗降する人の数によって左右されるため、時間帯によって停車時間の評定が変わり、最小（標準）停車時分を変えることもある。この最小（標準）停車時分は一般的に進行方向別に定められている。最小（標準）停車時分は停車アークの重みとして使用される制約時間条件データの一つであり、{線区，進行方向，駅}がユニークなキーとなるデータである。その場合は以下のような構造になる。
【表２−１】
2016147212.tif 000005
【００３９】
上記は｛線区，進行方向，駅｝の単位であるが、番線も考慮し、より厳密に定義することもある。その場合は以下のような構造になる。
【表２−２】
2016147212.tif 000006
【００４０】
（３）折返し最小停車時分
ある列車が終端駅に到着してから折返して出発するまでの時分を「折返し最小停車時分」という。この折返し時の停車時分は、計画した列車と列車の繋がりで決まるもので任意である。列車の遅れに対するダイヤの堅牢性を高めるには、この折返し時の停車時間を長くすることが重要である。列車の遅れをこの停車時間で吸収し、計画したダイヤに復元させることが容易だからである。折返し時の停車時間を短縮させる場合でも、最低限必要な停車時間が存在する。その最低限、必要な停車時間が、折返し最小停車時分である。折返し最小停車時分は停車アークの重みとして使用される制約時間条件データの一つであり、{線区，進行方向，駅}がユニークなキーとなるデータである。そのデータ構造は以下のようになる。
【表３−１】
2016147212.tif 000007
【００４１】
上記は｛線区，進行方向，駅｝の単位であるが、番線も考慮し、より厳密に定義することもある。その場合は以下のようなデータ構造になる。
【表３−２】
2016147212.tif 000008
【００４２】
（４）時隔時分
駅到着や駅出発時に、先行列車と続行列車が安全に走行できる時間間隔のことを「時隔時分」という。先行列車と続行列車は駅到着、出発時に分岐器を通過することがあり、その場合は分岐器の切り替え時間以上に、列車間の時間を空けないといけない。また、停車する列車と通過する列車の組み合わせになる場合は、列車間の速度差が発生するため、２列車間で接近してしまう。そのため速度差があっても接近しないような時間差（時隔時分）を確保する必要がある。時隔時分には、同一方向を進行する列車間の時間間隔を表す「続行時隔」と、終端駅での到着列車と出発列車のように反対方向に進行する列車間の時間間隔を表す「折返し時隔（交差時隔）」の２つがある。また、分岐器が駅の両端にあることから、時隔時分は駅の両端について定義され、到着、出発、通過の組み合わせの数だけ存在する。
【００４３】
（４−１）続行時隔の種類
続行時隔は駅の両端に存在し、先行列車と続行列車の通停による組み合わせが存在する。組み合わせは、到着、出発、通過の３パターンがあり、通常到着を“着”、出発を“発”、通過を“通”と表現する。例えば、先行列車が到着で、続行列車が通過の場合は、“着通時隔”と表現する。続行時隔時分は着発順序アークおよび番線順序アークの重みとして使用される制約時間条件データの一つであり、｛線区，進行方向，駅，先行・続行の組み合わせパターン｝がユニークなキーとなるデータである。そのデータ構造は以下のようになる。
【表４−１】
2016147212.tif 000009
【００４４】
上記は｛線区，進行方向，駅，先行・続行の組み合わせパターン｝の単位であるが、番線も考慮し、より厳密に定義することもある。その場合は以下のようなデータ構造になる。
【表４−２】
2016147212.tif 000010
【００４５】
（４−２）折返し時隔（交差時隔）の種類
折返し時隔は、主として終端駅の終端側でない方向に存在し、途中駅でも折返し列車がある場合は、折返し時隔が存在する。また、折返し時隔には、折返し列車の先行列車と続行列車の通停による組み合わせが存在する。組み合わせは、到着、出発があり、通過駅の場合は通過の３パターンがあり、通常到着を“着”、出発を“発”、通過を“通”と表現する。
【００４６】
例えば、先行列車が到着、続行列車が出発の場合は、“着発折返し時隔”と表現する。
【００４７】
折返し時隔（交差時隔）時分は、着発順序アークおよび番線順序アークの重みとして使用される制約時間条件データの一つであり、｛線区，進行方向，駅，先行・続行組み合わせパターン，折返し時隔時分｝がユニークなキーとなるデータである。そのデータ構造は以下のようになる。
【表５−１】
2016147212.tif 000011
【００４８】
上記は｛線区，進行方向，駅，先行・続行組み合わせパターン，折返し時隔時分｝の単位であるが、番線も考慮し、更に厳密に定義することもある。その場合は以下のようなデータ構造になる。
【表５−２】
2016147212.tif 000012
【００４９】
次に、ダイヤネットワーク更新部１４ｂにおける処理の前提条件として、ユーザが予め設定するダイヤ校正モードについて説明する。図６は、ダイヤ校正モード設定画面の具体例を示す図である。この画面は、ダイヤ校正モード設定部１４ｅにより表示部１７に表示される。ここでは、画面上で６つのダイヤ校正モードを設定できることが示されている。ユーザは、ダイヤ校正モードの設定が変更することで、ダイヤの編集作業におけるスジの動き（校正パターン）を変更することができる。これは、ダイヤネットワークの生成時にアークに付加されるアークの重みの値が変化し、スジの移動時にはその制約を受けるためである。例えば、各モードのＯＮ（適用する・維持する・許可する）／ＯＦＦ（適用しない・維持しない・許可しない）によって、以下のようにアークに設定する値を変えることができる。
【００５０】
（１）基準運転時分適用モード
ＯＮ時（適用する時）：スジの傾きがいかなる列車（基準運転時分以外の走行の列車）であろうとも、駅間の基準運転時分を強制的に適用した制約を守るように演算する。すなわち、全列車に基準運転時分を適用する。
【００５１】
ＯＦＦ時（適用しない時）：現状のダイヤ通りの駅間の運転時分の制約を守るように演算する。すなわち、現状の運転時分のままにする。
【００５２】
（２）運転時分遅延許可モード
ＯＮ時（許可する時）：基準運転時分適用モードのＯＮ、ＯＦＦに関係なく、運転時分の制約を外し、運転時分の遅延を許容させて演算する。
【００５３】
ＯＦＦ時（許可しない時）：基準運転時分または現状のダイヤ通りの駅間の運転時分の制約を守るように演算する。
【００５４】
（３）通過列車順序維持モード
ＯＮ時（維持する時）：通過列車と停車列車の間で、その駅での通過順を維持して演算する。
【００５５】
ＯＦＦ時（維持しない時）：通過列車と停車列車の間で、その駅での通過順を考慮せず自由に入れ替えして演算する。
【００５６】
（４）折返し列車順序維持モード
ＯＮ時（維持する時）：到着列車と出発列車の間で、その駅での入出場順を維持して演算する。
【００５７】
ＯＦＦ時（維持しない時）：到着列車と出発列車の間で、その駅での入出場順を考慮せず自由に入れ替えして演算する。
【００５８】
（５）停車時間短縮許可モード
ＯＮ時（許可する時）：現状のダイヤの停車時間より短い、予め定められた駅ごとの最小（標準）停車時間を守るように停車時間を演算する。
【００５９】
ＯＦＦ時（許可しない時）：現状のダイヤの停車時間を守るように停車時間を演算する。
【００６０】
（６）折返し時間短縮許可モード
ＯＮ時（許可する時）：現状のダイヤの折返し時間より短い、予め定められた駅ごとの折返し最小停車時分を守るように折返し時間を演算する。
【００６１】
ＯＦＦ時（許可しない時）：現状のダイヤの折返し時間を守るように折返し時間を演算する。
【００６２】
続いて、本実施形態に係る列車ダイヤ校正装置１の動作について説明する。
【００６３】
＜ダイヤネットワーク生成処理＞
図７は、ダイヤネットワーク生成部１４ａにおけるダイヤネットワーク生成処理の具体例を示すフローチャートである。この処理はユーザが現時点のダイヤネットワークの表示を要求することで開始される。
【００６４】
先ず、ダイヤネットワーク生成部１４ａは、編成ｎの運行に沿ってダイヤデータを読み出すと（Ｓ１）、１運行のイベント毎に着・発ノードを生成する（Ｓ２）。
【００６５】
次に、ダイヤネットワーク生成部１４ａは、ダイヤ校正モード記憶部１５を参照し、基準運転時分適用モードのＯＮ／ＯＦＦを判定する（Ｓ３）。ここで、基準運転時分適用モードがＯＮの場合（Ｓ３：ＯＮ）は、Ｓ４へ進む。これに対し、基準運転時分適用モードがＯＦＦの場合（Ｓ３：ＯＦＦ）は、Ｓ５へ進む。
【００６６】
Ｓ４において、ダイヤネットワーク生成部１４ａは、ダイヤ校正モード記憶部１５を参照し、運転時分遅延許可モードのＯＮ／ＯＦＦを判定する。ここで、運転時分遅延許可モードがＯＮの場合（Ｓ４：ＯＮ）は、以下の条件で駅間アークを生成し（Ｓ６）、Ｓ１０へ進む。本実施形態における駅間アークは、同一列車のある駅の発ノード（出発時刻ノード）から次の駅の着ノード（到着時刻ノード）までを結ぶアークである。
【００６７】
［駅間アーク生成条件（１）］
・最小時隔：対応区間の基準運転時分
・最大時隔：２４時間
これに対し、運転時分遅延許可モードがＯＦＦの場合（Ｓ４：ＯＦＦ）は、以下の条件で駅間アークを生成し（Ｓ７）、Ｓ１０へ進む。
【００６８】
［駅間アーク生成条件（２）］
・最小時隔：対応区間の基準運転時分
・最大時隔：対応区間の基準運転時分
Ｓ５において、ダイヤネットワーク生成部１４ａは、ダイヤ校正モード記憶部１５を参照し、運転時分遅延許可モードのＯＮ／ＯＦＦを判定する。ここで、運転時分遅延許可モードがＯＮの場合（Ｓ５：ＯＮ）は、以下の条件で駅間アークを生成し（Ｓ８）、Ｓ１０へ進む。
【００６９】
［駅間アーク生成条件（３）］
・最小時隔：ダイヤ上の駅間走行時分
・最大時隔：２４時間
これに対し、運転時分遅延許可モードがＯＦＦの場合（Ｓ５：ＯＦＦ）は、以下の条件で駅間アークを生成し（Ｓ９）、Ｓ１０へ進む。
【００７０】
［駅間アーク生成条件（４）］
・最小時隔：ダイヤ上の駅間走行時分
・最大時隔：ダイヤ上の駅間走行時分
Ｓ１０において、ダイヤネットワーク生成部１４ａは、ダイヤ校正モード記憶部１５を参照し、停車時分短縮許可モードのＯＮ／ＯＦＦを判定する。ここで、停車時分短縮許可モードがＯＮの場合（Ｓ１０：ＯＮ）は、以下の条件で第１の停車アークを生成し（Ｓ１１）、Ｓ１３へ進む。本実施形態における第１の停車アークは、同一列車である駅の着ノード（到着時刻ノード）から同一駅の発ノード（出発時刻ノード）までを結ぶアークである。
【００７１】
［第１の停車アーク生成条件（１）］
・最小時隔：基準ノードが停車駅に係るノードならば駅・進行方向ごとの最小停車時分、基準ノードが通過駅ならば０
・最大時隔：基準ノードが停車駅に係るノードならば２４時間、基準ノードが通過駅に係るノードならば０
これに対し、停車時分短縮許可モードがＯＦＦの場合（Ｓ１０：ＯＦＦ）は、以下の条件で第１の停車アークを生成し（Ｓ１２）、Ｓ１３へ進む。
【００７２】
［第１の停車アーク生成条件（２）］
・最小時隔：基準ノードが停車駅に係るノードならばダイヤ上の停車時間、基準ノードが通過駅に係るノードならば０
・最大時隔：基準ノードが停車駅に係るノードならば２４時間、基準ノードが通過駅に係るノードならば０
Ｓ１３において、ダイヤネットワーク生成部１４ａは、ダイヤ校正モード記憶部１５を参照し、折返し時分短縮許可モードのＯＮ／ＯＦＦを判定する。ここで、折返し時分短縮許可モードがＯＮの場合（Ｓ１３：ＯＮ）は、以下の条件で第２の停車アークを生成し（Ｓ１４）、Ｓ１６へ進む。本実施形態における第２の停車アークは、１つの車両運用に含まれるある列車の終着到着時刻ノードから、同一車両運用に含まれる同一駅での別列車の始発出発時刻ノードまでを結ぶアークである。
【００７３】
［第２の停車アーク生成条件（１）］
・最小時隔：駅ごとの折返し列車用の最小停車時分
・最大時隔：２４時間
これに対し、折返し時分短縮許可モードがＯＦＦの場合（Ｓ１３：ＯＦＦ）は、以下の条件で第２の停車アークを生成し（Ｓ１５）、Ｓ１６へ進む。
【００７４】
［第２の停車アーク生成条件（２）］
・最小時隔：ダイヤ上の折返し停車時間
・最大時隔：２４時間
Ｓ１６において、ダイヤネットワーク生成部１４ａは、全運行の着・発ノード、駅間アーク、停車アークの生成が完了しているか否かを判定する。ここで、全運行のノード、駅間アーク、停車アークの生成が完了している場合（Ｓ１６：Ｙｅｓ）は、Ｓ１７へ進む。これに対し、全運行のノード、駅間アーク、停車アークの生成が未完了の場合（Ｓ１６：Ｎｏ）は、Ｓ１へ戻る。
【００７５】
Ｓ１７において、ダイヤネットワーク生成部１４ａは、生成した全ノードを検索し、各駅の発ノードから同一駅の着ノードに向かうノードのペアを抽出する。そして、ペアを発ノードの初期時刻（標準時刻）の早い順にソートし（Ｓ１８）、ソートした順番に従い、発ノードと着ノード間を、生成した着発順序アークにより接続する（Ｓ１９）。尚、同一駅からの発車であっても行き先の駅が異なる場合は、駅間で通過する線路が異なるため、相互にアークを接続しない。着発順序アークの生成方法の詳細については後述する。
【００７６】
次に、ダイヤネットワーク生成部１４ａは、全ての駅の着・発ノードを着発順序アークで接続完了したか否かを判定する（Ｓ２０）。ここで、全ての駅の着・発ノードを着発順序アークで接続完了であれば（Ｓ２０：Ｙｅｓ）、Ｓ２１に進む。これに対し、接続が未完了であれば（Ｓ２０：Ｎｏ）、Ｓ１７へ戻る。
【００７７】
次に、ダイヤネットワーク生成部１４ａは、生成した全ノードを検索し、各駅の各番線の着ノード、発ノードを抽出し（Ｓ２１）、ノードを初期時刻（標準時刻）の早い順にソートし（Ｓ２２）、ソートした順番に従い、異なる運行に属するノードの間を、生成した番線順序アークにより接続する（Ｓ２３）。番線順序アークの生成方法の詳細については後述する。
【００７８】
次に、ダイヤネットワーク生成部１４ａは、全ての駅の全ての番線の着・発ノードを番線順序アークで接続完了したか否かを判定する（Ｓ２４）。ここで、全ての駅の全ての番線の着・発ノードを番線順序アークで接続完了であれば（Ｓ２４：Ｙｅｓ）、処理を終了する。これに対し、接続が未完了であれば（Ｓ２４：Ｎｏ）、Ｓ２１へ戻る。
【００７９】
続いて、上述したノードの生成、アークの生成について説明を補足する。
【００８０】
１．ノードの生成
図８は、ノードの生成を説明する図である。ここでは、到着ノードをＮｏｄｅ（“０”，“ノードＩＤ”）、出発ノードをＮｏｄｅ（“１”，“ノードＩＤ”）の形式で到着時刻点、出発時刻点ごとに生成している。例えば、Ａ駅の１番線における最初の出発ノードはＮｏｄｅ（１，Ａ１１）であり、同一列車のＢ駅の１番線における到着ノードはＮｏｄｅ（０，Ｂ１１）である。
【００８１】
尚、ノードの重みの値は以下のように設定する。  
・最早時刻（Ｅｔ）：着ノードはダイヤデータで設定されている到着時刻、発ノードは出発時刻とする。
【００８２】
・最早時刻制約：移動可能な最小の時刻とする。（例えば３：００：００）
・最遅時刻制約：移動可能な最大の時刻とする。（例えば２７：００：００）
２．駅間アーク
図９は、駅間アークの生成を説明する図である。駅間アークは、同一列車のある駅の出発時刻ノードから次の駅の到着時刻ノードまでを結ぶアークである。駅間アークは、ダイヤデータに従い、ある駅の出発時刻を基準（接続元）ノードとし、同一列車の次の停車駅の到着時刻（次が通過の場合は出発時刻）を接続先ノードとして、駅間アークを作成する。図９では、破線矢印が駅間アークをそれぞれ示している。図９において駅間アークは、Ａｒｃ（“１”，“基準ノードＩＤ（出発）”，“０”，“接続先ノードＩＤ（到着）”）の形式で表されている。例えば、Ａ駅１番線の出発ノードＡ１１とＢ駅１番線の到着ノードＢ１１を結ぶ駅間アークは、Ａｒｃ（１，Ａ１１，０，Ｂ１１）である。
【００８３】
尚、駅間アークの重みの各値は以下のように設定する。  
（１）基準運転時分適用モードＯＮ、運転時分遅延許可モードＯＮの場合
・最小時隔：アークが対応する区間に予め設定されている基準運転時分とする。  
・最大時隔：移動可能な最大の時間（例えば２４時間）とする。  
（２）基準運転時分適用モードＯＮ、運転時分遅延許可モードＯＦＦの場合
・最小時隔：アークが対応する区間に予め設定されている基準運転時分とする。  
・最大時隔：アークが対応する区間に予め設定されている基準運転時分とする。  
（３）基準運転時分適用モードＯＦＦ、運転時分遅延許可モードＯＮの場合
・最小時隔：アークが対応する区間をダイヤ上で走行する駅間走行時分とする。  
・最大時隔：移動可能な最大の時間（例えば２４時間）とする。  
（４）基準運転時分適用モードＯＦＦ、運転時分遅延許可モードＯＦＦの場合
・最小時隔：アークが対応する区間をダイヤ上で走行する駅間走行時分とする。  
・最大時隔：アークが対応する区間をダイヤ上で走行する駅間走行時分とする。
【００８４】
３．停車アークの生成
続いて、停車アークについて説明する。本実施形態において、停車アークは、２種類に分類される。図１０は、第１の停車アークの生成を説明する図である。第１の停車アークは、同一列車のある駅の到着時刻ノードから同一駅の出発時刻ノードまでを結ぶアークである。第１の停車アークは、ダイヤデータに従い、ある駅の到着時刻を基準ノードとし、次の同一列車の出発時刻を接続先ノードとして作成する。通過駅の場合も同様に作成する。図１０では、破線矢印が第１の停車アークをそれぞれ示している。図１０において、第１の停車アークは、Ａｒｃ（“０”，“基準ノードＩＤ（到着）”，“１”，“接続先ノードＩＤ（出発）”）の形式で表されている。例えば、Ｂ駅１番線の到着ノードＢ１１とＢ駅１番線の出発ノードＢ１２を結ぶ第１の停車アークは、Ａｒｃ（０，Ｂ１１，１，Ｂ１２）である。
【００８５】
尚、第１の停車アークの重みの各値は以下のように設定する。  
（１）停車時間短縮許可モードＯＮ
・最小時隔：基準ノードが停車駅の時は、予め駅ごとに設定されている同じ進行方向の最小停車時分マスタ設定の値とする。ノードが通過駅の時は、０とする。  
・最大時隔：移動可能な最大の時間（例えば２４時間）とする。ノードが通過駅の時は、０とする。  
（２）停車時間短縮許可モードＯＦＦ
・最小時隔：基準ノードが停車駅の時は、既に存在するダイヤ上での停車時間を設定する。基準ノードが通過駅の時は、０とする。  
・最大時隔：移動可能な最大の時間（例えば２４時間）とする。基準ノードが通過駅の時は、０とする。
【００８６】
図１１は、第２の停車アークの生成を説明する図である。第２の停車アークは、１つの車両運用に含まれるある列車の終着到着時刻ノードから、同一車両運用に含まれる同一駅での別列車の始発出発時刻ノードまでを結ぶアークである。第２の停車アークは、ダイヤデータと車両運用情報に従い、終着到着時刻を基準ノードとし、次の別列車の始発出発時刻を接続先ノードとして作成する。図１１では、破線矢印が第２の停車アークを示している。図１１において、第２の停車アークは、Ａｒｃ（“０”，“基準ノードＩＤ（到着）”，“１”，“接続先ノードＩＤ（出発）”）の形式で表されている。例えば、Ｃ駅１番線の到着ノードＣ１２とＣ駅１番線の出発ノードＣ１３を結ぶ第２の停車アークは、Ａｒｃ（０，Ｃ１２，１，Ｃ１３）である。
【００８７】
尚、第２の停車アークの重みの各値は以下のように設定する。  
（１）折返し時間短縮許可モードＯＮ
・最小時隔：予め駅ごとに設定されている折返し列車用の最低停車時分とする。  
・最大時隔：移動可能な最大の時間（例えば２４時間）とする。  
（２）折返し時間短縮許可モードＯＦＦ
・最小時隔：既に存在するダイヤ上での折返し停車時間を設定する。  
・最大時隔：移動可能な最大の時間（例えば２４時間）とする。
【００８８】
４．着発順序アークの生成
続いて、着発順序アークについて説明する。本実施形態において、着発順序アークは、４種類に分類される。図１２は、第１の着発順序アークの生成を説明する図である。第１の着発順序（同一進路方向着）アークは、ある駅の進行方向別に、ノードを昇順ソートしたときに、ある列車の到着時刻ノードから次の別の列車の到着時刻ノードまでを結ぶアークである。第１の着発順序アークは、列車情報に従い、駅・進行方向別にソートされたノード情報を到着時刻の小さいものから検索し、到着時刻を基準とするノードとし、次の別列車の到着時刻を接続先ノードとして作成する。図１２では、破線矢印が第１の着発順序アークをそれぞれ示している。図１２において、第１の着発順序アークは、Ａｒｃ（“０”，“基準ノードＩＤ（到着）”，“３”，“接続先ノードＩＤ（到着”）の形式で表されている。例えば、Ａ駅１番線の到着ノードＡ１２とＡ駅２番線の到着ノードＡ２１を結ぶ第１の着発順序アークは、Ａｒｃ（０，Ａ１２，３，Ａ２１）である。
【００８９】
尚、第１の着発順序アークの重みの各値は以下のように設定する。  
・最小時隔：ダイヤデータ既に存在上で設定されている２ノードの組み合わせと同じ、駅、進行方向で予め定められている時隔時分（最小値）を設定する。  
・最大時隔：移動可能な最大の時間（例えば２４時間）とする。
【００９０】
また、接続元（基準）ノードと接続先ノードの着発及び停車・通過に係る種別の組み合わせによって、選択する時隔時分は以下のように決定される。
【表６−１Ａ】
2016147212.tif 000013
【００９１】
また、上記図６のダイヤ校正モード設定画面で選択した通過列車順序維持モードがＯＮ（維持する）の時は、接続先ノードの停車・通過の種別によって第１の着発順序アークの生成条件が異なる。通過列車順序維持モードが／ＯＦＦ（維持しない）の時は、接続元ノードの停車・通過の種別と接続先ノードの停車・通過の種別との組み合わせによってアークの生成条件が異なる。具体的には、第１の着発順序アークの生成条件は以下のように決定される。
【表６−１Ｂ】
2016147212.tif 000014
【００９２】
図１３は、第２の着発順序アークの生成を説明する図である。第２の着発順序（同一進路方向発）は、ある駅の進行方向別に、ノードを昇順ソートしたときに、ある列車の出発時刻ノードから次の別の列車の出発時刻ノードまでを結ぶアークである。第２の着発順序アークは、列車情報に従い、駅・進行方向別にソートされたノード情報を出発時刻の小さいものから検索し、出発時刻を基準とするノードとし、次の別列車の出発時刻を接続先ノードとして、第２の着発順序アークを作成する。図１３では、破線矢印が第２の着発順序アークをそれぞれ示している。図１３において、第２の着発順序アークは、Ａｒｃ（“１”，“基準ノードＩＤ（出発）”，“３”，“接続先ノードＩＤ（出発）”）の形式で表されている。例えば、Ｂ駅３番線の出発ノードＢ３２とＢ駅４番線の出発ノードＢ４２を結ぶ第２の着発順序アークは、Ａｒｃ（１，Ｂ３２，３，Ｂ４２）である。
【００９３】
尚、第２の着発順序アークの重みの各値は以下のように設定する。  
・最小時隔：ダイヤデータ既に存在上で設定されている２ノードの組み合わせと同じ、駅、進行方向で予め定められている同一進路時隔時分（最小値）を設定する。  
・最大時隔：移動可能な最大の時間（例えば２４時間）とする。
【００９４】
また、接続元（基準）ノードと接続先ノードの着発及び停車・通過に係る種別の組み合わせによって、選択する時隔時分は以下のように決定される。
【表６−２Ａ】
2016147212.tif 000015
【００９５】
また、上記図６のダイヤ校正モード設定画面で選択した通過列車順序維持モードがＯＮ（維持する）の時は、接続先ノードの停車・通過の種別によって第２の着発順序アークの生成条件が異なる。通過列車順序維持モードが／ＯＦＦ（維持しない）の時は、接続元ノードの停車・通過の種別と接続先ノードの停車・通過の種別との組み合わせによってアークの生成条件が異なる。具体的には、第２の着発順序アークの生成条件は以下のように決定される。
【表６−２Ｂ】
2016147212.tif 000016
【００９６】
図１４は、第３の着発順序アークの生成を説明する図である。第３の着発順序（折返し着発）アークは、１つの車両運用（列車運行）に含まれるある列車の終着到着時刻ノードから、他の車両運用に含まれる同一駅での反対方向に出発する始端の時刻ノードまでを結ぶアークである。第３の着発順序アークは、列車情報と車両運用情報に従い、終着到着時刻を基準ノードとし、次の反対方向別列車の出発時刻を接続先ノードとして作成する。図１４では、破線矢印が第３の着発順序アークをそれぞれ示している。図１４において、第３の着発順序アークは、Ａｒｃ（“０”，“基準ノードＩＤ（到着）”，“３”，“接続先ノードＩＤ（逆方向出発）”）の形式で表されている。例えば、Ａ駅１番線の到着ノードＡ１２とＡ駅２番線の逆方向出発ノードＡ２４を結ぶ第３の着発順序アークは、Ａｒｃ（０，Ａ１２，３，Ａ２４）である。
【００９７】
尚、第３の着発順序アークの重みの各値は以下のように設定する。  
・最小時隔：ダイヤデータ既に存在上で設定されている２ノードの組み合わせと同じ、駅、折返し方向で予め定められている折返し着発時隔時分（最小値）を設定する。  
・最大時隔：移動可能な最大の時間（例えば２４時間）とする。
【００９８】
また、接続元（基準）ノードと接続先ノードの着発及び停車・通過に係る種別の組み合わせによって、選択する時隔時分は以下のように決定される。
【表６−３Ａ】
2016147212.tif 000017
【００９９】
また、上記図６のダイヤ校正モード設定画面で選択した折返し列車順序維持モードがＯＮ（維持する）の時は、２列車間の進行方向及び駅における番線の有無の組み合わせによって第３の着発順序アークの生成条件が異なる。折返し列車順序維持モードが／ＯＦＦ（維持しない）の時は、アークを生成しないでよい。具体的には、第３の着発順序アークの生成条件は以下のように決定される。
【表６−３Ｂ】
2016147212.tif 000018
【０１００】
図１５は、第４の着発順序アークの生成を説明する図である。第４の着発順序（折返し発着）アークは、１つの車両運用に含まれるある列車の始発出発時刻ノードから、他の車両運用に含まれる同一駅での反対方向に到着する終端の時刻ノードまでを結ぶアークである。第４の着発順序アークは、列車情報と車両運用情報に従い、始発出発時刻を基準ノードとし、次の反対方向別列車の到着時刻を接続先ノードとして作成する。図１５では、破線矢印が第４の着発順序アークをそれぞれ示している。図１５において、第４の着発順序アークは、Ａｒｃ（“１”，“基準ノードＩＤ（出発）”，“３”，“接続先ノードＩＤ（逆方向到着）”）の形式で表されている。例えば、Ａ駅１番線の出発ノードＡ１１とＡ駅１番線の逆方向到着ノードＡ１２を結ぶ第４の着発順序アークは、Ａｒｃ（１，Ａ１１，３，Ａ１２）である。
【０１０１】
尚、第４の着発順序アークの重みの各値は以下のように設定する。  
・最小時隔：ダイヤデータ既に存在上で設定されている２ノードの組み合わせと同じ、駅、折返し方向で予め定められている折返し発着時隔時分（最小値）を設定する。  
・最大時隔：移動可能な最大の時間（例えば２４時間）とする。
【０１０２】
また、接続元（基準）ノードと接続先ノードの着発及び停車・通過に係る種別の組み合わせによって、選択する時隔時分は以下のように決定される。
【表６−４Ａ】
2016147212.tif 000019
【０１０３】
また、上記図６のダイヤ校正モード設定画面で選択した折返し列車順序維持モードがＯＮ（維持する）の時は、２列車間の進行方向及び駅における番線の有無の組み合わせによって第４の着発順序アークの生成条件が異なる。折返し列車順序維持モードが／ＯＦＦ（維持しない）の時は、アークを生成しないでよい。具体的には、第４の着発順序アークの生成条件は以下のように決定される。
【表６−４Ｂ】
2016147212.tif 000020
【０１０４】
５．番線順序アークの生成
続いて、番線順序アークについて説明する。本実施形態において、番線順序アークは、３種類に分類される。図１６は、第１の番線順序アークの生成を説明する図である。第１の番線順序アークは、ある駅の番線ごとに、ノードを昇順ソートしたときに、ある列車の出発時刻ノードから次の別の列車の到着時刻ノードまでを結ぶアークである。第１の番線順序アークは、列車情報に従い、駅・番線ごとにソートされたノード情報を出発時刻の小さいものから検索し、出発時刻を基準とするノードとし、次の別列車の到着時刻を接続先ノードとして作成する。図１６では、破線矢印が第１の番線順序アークをそれぞれ示している。図１６において、第１の番線順序アークは、Ａｒｃ（“０”，“基準ノードＩＤ（出発）”，“２”，“接続先ノードＩＤ（到着）”）の形式で表されている。例えば、Ｂ駅３番線の出発ノードＢ３２とＢ駅３番線の到着ノードＢ３３を結ぶ第１の番線順序アークは、Ａｒｃ（１，Ｂ３２，２，Ｂ３３）である。
【０１０５】
尚、第１の番線順序アークの重みの各値は以下のように設定する。  
・最小時隔：ダイヤデータ既に存在上で設定されている２ノードの組み合わせと同じ、駅、番線で予め定められている時隔時分（最小値）を設定する。  
・最大時隔：移動可能な最大の時間（例えば２４時間）とする。
【０１０６】
また、接続元（基準）ノードと接続先ノードの着発及び停車・通過に係る種別の組み合わせによって、選択する時隔時分は以下のように決定される。
【表６−５Ａ】
2016147212.tif 000021
【０１０７】
また、上記図６のダイヤ校正モード設定画面で選択した通過列車順序維持モードがＯＮ（維持する）の時は、２列車間の進行方向と駅における番線の有無の組み合わせによって第１の番線順序アークの生成条件が異なる。通過列車順序維持モードが／ＯＦＦ（維持しない）の時は、２列車間の進行方向、接続元ノード及び接続先ノードの停車・通過の種別、及び駅における番線の有無との組み合わせによってアークの生成条件が異なる。具体的には、第１の番線順序アークの生成条件は以下のように決定される。
【表６−５Ｂ】
2016147212.tif 000022
【０１０８】
図１７は、第２の番線順序アークの生成を説明する図である。第２の番線順序アークは、ある駅の番線ごとに、ノードを昇順ソートしたときに、ある列車の終着到着時刻ノードから次の別の列車のノードまでを結ぶアークである。第２の番線順序アークは、列車情報に従い、駅・番線ごとにソートされたノード情報を到着時刻の小さいものから検索し、終着到着時刻を基準ノードとし、次の別列車のノードを接続先ノードとして作成する。図１７では、破線矢印が第２の番線順序アークをそれぞれ示している。図１７において、第２の番線順序アークは、Ａｒｃ（“０”，“基準ノードＩＤ（終着到着）”，“２”，“接続先ノードＩＤ”）の形式で表されている。例えば、Ａ駅２番線の終着到着ノードＡ２１とＡ駅２番線のノードＡ２２を結ぶ第２の番線順序アークは、Ａｒｃ（０，Ａ２１，２，Ａ２２）である。
【０１０９】
尚、第２の番線順序アークの重みの各値は以下のように設定する。  
・最小時隔：ダイヤデータ既に存在上で設定されている２ノードの組み合わせと同じ、駅、番線で予め定められている時隔時分（最小値）を設定する。  
・最大時隔：移動可能な最大の時間（例えば２４時間）とする。
【０１１０】
また、接続元（基準）ノードと接続先ノードの着発及び停車・通過に係る種別の組み合わせによって、選択する時隔時分は以下のように決定される。
【表６−６Ａ】
2016147212.tif 000023
【０１１１】
また、２列車間の進行方向と駅における番線の有無の組み合わせによって第２の番線順序アークの生成条件が異なる。具体的には、第２の番線順序アークの生成条件は以下のように決定される。
【表６−６Ｂ】
2016147212.tif 000024
【０１１２】
図１８は、第３の番線順序アークの生成を説明する図である。第３の番線順序アークは、
ある駅の番線ごとに、ノードを昇順ソートしたときに、ある列車の始発出発時刻ノードから次の別の列車のノードまでを結ぶアークである。第３の番線順序アークは、所定の列車情報に従い、駅・番線ごとにソートされたノード情報を出発時刻の小さいものから検索し、始発出発時刻を基準とするノードとし、次の別列車のノードを接続先ノードとして作成する。図１８では、破線矢印が第３の番線順序アークをそれぞれ示している。図１８において、第３の番線順序アークは、Ａｒｃ（“１”，“基準ノードＩＤ（始発出発）”，“２”，“接続先ノードＩＤ”）の形式で表されている。例えば、Ｃ駅２番線の始発出発ノードＣ２１とＣ駅２番線のノードＣ２２を結ぶ第３の番線順序アークは、Ａｒｃ（１，Ｃ２１，２，Ｃ２２）である。
【０１１３】
尚、第３の番線順序アークの重みの各値は以下のように設定する。  
・最小時隔（秒）：ダイヤデータ既に存在上で設定されている２ノードの組み合わせと同じ、駅、番線で予め定められている時隔時分（最小値）を設定する。  
・最大時隔（秒）：移動可能な最大の時間（例えば２４時間）とする。
【０１１４】
また、接続元（基準）ノードと接続先ノードの着発及び停車・通過に係る種別の組み合わせによって、選択する時隔時分は以下のように決定される。
【表６−７Ａ】
2016147212.tif 000025
【０１１５】
また、２列車間の進行方向と駅における番線の有無の組み合わせによって第３の番線順序アークの生成条件が異なる。具体的には、第３の番線順序アークの生成条件は以下のように決定される。
【表６−７Ｂ】
2016147212.tif 000026
【０１１６】
＜ダイヤネットワーク更新処理＞
図１９は、図１のダイヤネットワーク更新部１４ｂにおけるダイヤネットワーク更新処理の具体例を示すフローチャートである。この処理は、ユーザが画面上でダイヤを編集することで開始される。
【０１１７】
先ず、ダイヤネットワーク更新部１４ｂは、編集したスジの影響を受けるノードを全て抽出し（Ｓ１０１）、ＥＴ（最早時刻）の初期値としてスジ移動前の各ノードの設定時刻をノードごとに格納する。
【０１１８】
次に、ダイヤネットワーク更新部１４ｂは、編集したスジが編集前のダイヤ時刻よりも時系列上で後方（未来時刻）に移動したか否かを判定する（Ｓ１０３）。ここで、後方移動と判定した場合は（Ｓ１０３：Ｙｅｓ）、後方移動時の規則に基づいて固定ノードを１つ設定し、最早・最遅時刻制約として編集スジの時刻を設定し（Ｓ１０４）、後方移動モードでＥＴ・ＬＴの更新演算を行う（Ｓ１０５）。
【０１１９】
最遅時刻ＬＴを例にすると、例えば各ノードの守るべき最遅時刻制約ＬＴｍａｘを元に、以下のように繰り返し数に応じて次第に初期値ＬＴ０を更新する（次第に小さくする）ことで、段階的に制約を厳しくし、最もボトルネックとなるノードを検出する。ここでＤＴ１、ＤＴ２は修正値、反復数はステップＳ１０２を反復した回数である。
【０１２０】
ＬＴ０＝ＬＴｍａｘ＋（ＤＴ１−反復数×ＤＴ２）
最大時間間隔制約である最遅時刻制約ＬＴｍａｘが含まれるため、本更新演算の内容は、従来のＰＥＲＴにおける時刻更新演算とは異なる。
【０１２１】
以下、ダイヤネットワーク更新部１４ｂにおけるＥＴ，ＬＴの更新演算の概要を説明する。最小時間間隔制約と最大時間間隔制約の双方を処理するためには、ＥＴ，ＬＴのそれぞれにつき、以下の手順により、値が変化しなくなるまで時間更新演算を反復実施する必要がある。説明に使用する記号を以下のように定義する。
【０１２２】
Ｔ（ｉ，ｊ）：ノードｉ−ノードｊの最小時間間隔（アークの重みの最小値）
ｈ：ノードｉに流入する（先行する）ノード
ＥＴｍｉｎ（ｉ）：ノードｉの取りうる最も早い時刻の制約
ｋ：ノードｉから流出する（後発する）ノード
ＬＴｍａｘ（ｉ）：ノードｉの取りうる最も遅い時刻の制約
そして、以下の手順１〜４で更新を行う。  
［手順１：ノードのトポロジカルソート］
ＥＴはノードの先行する順番に値を演算していく必要があるため（ＬＴは逆方向）、事前にトポロジカル（ｔｏｐｏｌｏｇｉｃａｌ）ソートを実施する。トポロジカルソートとは、あるノードＡがノードＢに先行する時、必ずＡがＢの前になるような順番で全てのノードを並べ直すことである。
【０１２３】
［手順２：初期化］
全てのノードｉについて、以下の初期化を行う。なお、先に説明したように、制約違反ノードを検出する過程においては、最早・最遅時刻制約変更部１４ｄにより初期値が修正される。
【０１２４】
ＥＴ０（ｉ）＝ＥＴｍｉｎ（ｉ）
ＬＴ０（ｉ）＝ＬＴｍａｘ（ｉ）
［手順３：ＥＴ更新演算］
以下の式（１）、式（２）の演算を値が収束し変化しなくなるまで交互に反復する。ここで、ＥＴｓ−１は更新前、ＥＴｓは更新後の値である。
【数１】
2016147212.tif 000027
【０１２５】
［手順４：ＬＴ更新演算］
以下の式（３）、式（４）の演算を値が収束し変化しなくなるまで交互に反復する。
【０１２６】
ここで、ＬＴｓ−１は更新前、ＬＴｓは更新後の値である。
【数２】
2016147212.tif 000028
【０１２７】
なお、ＥＴ、ＬＴの値はそれぞれ独立して演算可能であり、ＥＴ更新演算とＬＴ更新演算は順番が逆でも良いし、式（１）から（４）までの演算を反復演算の同じループ内で実施しても良い。
【０１２８】
また、図１９のＳ１０３において、ダイヤネットワーク更新部１４ｂは、編集前のダイヤ時刻よりも前方（過去時刻）に移動と判定した場合には（Ｓ１０３：Ｎｏ）、前方移動時の規則に基づいて固定ノードを１つ設定し、最早・最遅時刻制約として編集スジの時刻を設定し（Ｓ１０６）、前方移動モードでＥＴ・ＬＴの更新演算を行う（Ｓ１０７）。Ｓ１０７とＳ１０５の違いは、処理の順序が一部逆になることであるが、詳細については図２０Ａ及び図２０Ｂにおいて後述する。
【０１２９】
次に、ダイヤネットワーク更新部１４ｂは、Ｓ１０５あるいはＳ１０７においてＥＴ・ＬＴの更新演算が成功したか否かを判定する（Ｓ１０８）。ここで、演算成功と判定した場合（Ｓ１０８：Ｙｅｓ）は、ＥＴ，ＬＴから演算により決定された時刻を取出し、これをスジに反映させて新たなダイヤネットワークを再描画し（Ｓ１０９）、固定ノードの最早・最遅時刻制約を設定してＳ１１３へ進む。これに対し、演算失敗、すなわち、違反ノードが発生したと判定した場合（Ｓ１０８：Ｎｏ）は、スジを編集前の状態に戻して再描画し（Ｓ１１１）、ＥＴ，ＬＴ，最遅時刻制約を編集前の値に戻して（Ｓ１１２）、Ｓ１１３へ進む。
【０１３０】
Ｓ１１３において、ダイヤネットワーク更新部１４ｂは、ユーザがスジの編集を終了したか否かを判定する。具体的には、ユーザが編集画面の終了を指示したか否かを判定する。ここで、スジ編集が終了したと判定した場合（Ｓ１１３：Ｙｅｓ）は、処理を終了する。これに対し、スジ編集を終了していないと判定した場合（Ｓ１１３：Ｎｏ）はＳ１０１へ戻る。
【０１３１】
図２０Ａは、図１９のＳ１０５の詳細な処理例を示すフローチャートである。  
ブロックＡ１では、各ノードについて式（１）に従ってＥＴ（ｉ）の更新演算を行い（Ｓ２０１）、ＥＴ（ｉ）がＬＴ（ｉ）よりも大きくなったノードがあったときは（Ｓ２０２、Ｓ２０３：ＹＥＳ）、エラーを返し（Ｓ２０４）、違反ノード検出部１４ｃでは当該ノードを違反ノードとして検出する。
【０１３２】
ブロックＡ２では各ノードについて式（２）に従ってＥＴ（ｉ）の更新演算を行い（Ｓ２１１）、ＥＴ（ｉ）がＬＴ（ｉ）よりも大きくなったノードがあったときは（Ｓ２１２、Ｓ２１３：ＹＥＳ）、エラーを返し（Ｓ２１４）、違反ノード検出部１４ｃでは当該ノードを違反ノードとして検出する。
【０１３３】
ＥＴの値が更新されたノードが１つもなかった場合は（Ｓ２２１：ＮＯ）、更新演算が収束したとして処理を終了する。これに対し、ＥＴの値が更新されたノードがあった場合は（Ｓ２２１：ＹＥＳ）、反復回数が上限値に達したかどうかを判定し（Ｓ２２２）、達していない場合は、再度、ブロックＡ１、Ａ２を繰り返す。反復回数が上限値に達した場合は（Ｓ２２２：ＮＯ）、更新演算が収束しないとしてエラーを返す（Ｓ２２３）。
【０１３４】
なお、フローチャート内に記述されたＣｍａｘは、式（１）により値が更新された最も下流のノードを記憶し、式（２）の演算を行う範囲をそのノードより上流に限定するために用いる。Ｃｍｉｎは、逆に式（２）により値が更新された最も上流のノードを記憶し、式（１）の演算を行う範囲をそのノードより下流に限定するために用いる。
【０１３５】
尚、ＬＴ更新演算についても、図２０Ａの処理フローチャートに準じて、式（３）と式（４）を利用して交互に値を更新する手順を、値が収束するまで反復することで実行するだけであるため、説明は省略する。
【０１３６】
これに対し、図２０Ｂは、図１９のＳ１０７の詳細な処理例を示すフローチャートである。  
ブロックＢ１では各ノードについて式（２）に従ってＥＴ（ｉ）の更新演算を行い（Ｓ３０１）、ＥＴ（ｉ）がＬＴ（ｉ）よりも大きくなったノードがあったときは（Ｓ３０２、Ｓ３０３：ＹＥＳ）、エラーを返し（Ｓ３０４）、違反ノード検出部１４ｃでは当該ノードを違反ノードとして検出する。
【０１３７】
また、ブロックＢ２では、各ノードについて式（１）に従ってＥＴ（ｉ）の更新演算を行い（Ｓ３１１）、ＥＴ（ｉ）がＬＴ（ｉ）よりも大きくなったノードがあったときは（Ｓ３１２、Ｓ３１３：ＹＥＳ）、エラーを返し（Ｓ３１４）、違反ノード検出部１４ｃでは当該ノードを違反ノードとして検出する。
【０１３８】
ＥＴの値が更新されたノードが１つもなかった場合は（Ｓ３２１：ＮＯ）、更新演算が収束したとして処理を終了する。これに対し、ＥＴの値が更新されたノードがあった場合は（Ｓ３２１：ＹＥＳ）、反復回数が上限値に達したかどうかを判定し（Ｓ３２２）、達していない場合は、再度、ブロックＢ１、Ｂ２を繰り返す。反復回数が上限値に達した場合は（Ｓ３２２：ＮＯ）、更新演算が収束しないとしてエラーを返す（Ｓ３２３）。
【０１３９】
このように、ブロックＢ１に含まれる処理は、図２０ＡのブロックＡ２と同一であり、ブロックＢ２に含まれる処理は、図２０ＡのブロックＡ１と同一であり、実行順序が逆になっている。また、図２０Ａと同様に、フローチャート内に記述されたＣｍａｘは、式（１）により値が更新された最も下流のノードを記憶し、式（２）の演算を行う範囲をそのノードより上流に限定するために用いる。Ｃｍｉｎは、逆に式（２）により値が更新された最も上流のノードを記憶し、式（１）の演算を行う範囲をそのノードより下流に限定するために用いる。また、ＬＴ更新演算についても、図２０Ｂの処理フローチャートに準じて、式（３）と式（４）を利用して交互に値を更新する手順を、値が収束するまで反復することで実行するだけであるため、説明は省略する。
【０１４０】
＜ダイヤスジの編集事例＞
最後に、以上の処理の結果、スジが移動する幾つかの事例を示す。
【０１４１】
図２１は、ダイヤスジの編集事例（１）を示す図である。ここでは、ダイヤスジの一定範囲を画面右方向（遅い時刻）に移動した場合を示している。このように、ユーザが出発ノードＣ２から到着ノードＦ１までの範囲をマウスカーソルで指定し、全体的に右にドラッグした場合には、点線丸印の各ノードの時刻値が更新されるが、ノードＣ２〜ノードＦ１の間の各時間間隔と順序は維持されている。
【０１４２】
図２２は、ダイヤスジの編集事例（２）を示す図である。ここでは、ダイヤスジ上の到着ノードＣ２だけを指定して画面右方向（遅い時刻）に移動した場合を示している。このように、単一のノードＣ２だけを動かした場合には、当該ノードＣ２の時刻値が更新される。ノードＣ２以降のノードについては、図２１と同じように連鎖的に移動させる、あるいは、違反ノードとして警告する等、変更を可能にするとよい。
【０１４３】
図２３は、ダイヤスジの編集事例（３）を示す図である。ここでは、基準運転時分適用モードがＯＮ（適用）、停車時分短縮許可モードがＯＮのときのダイヤスジの動きを示している。編集前（図２３（Ａ））において、出発ノードＢ２と到着ノードＢ３の間の時間間隔はＴ１、到着ノードＢ３と出発ノードＢ４の間の時間間隔はＴ２である。また、二つのダイヤスジは基準運転時分に従って設定されている。この状態から左側のスジを十分な停車時間がある右側のダイヤスジに接近するように移動させると、クリティカルパス部分の時隔時分Ｔ１を最小値であるＴ１´に短縮しつつ、停車時間をＴ２からＴ２´に短縮するようにダイヤが調整される。
【０１４４】
図２４は、ダイヤスジの編集事例（４）を示す図である。ここでは、基準運転時分適用モードがＯＮ、停車時分短縮許可モードがＯＦＦ（適用しない）のときのダイヤスジの動きを示している。基準運転時分に従ったダイヤスジが２本あり、左側のダイヤスジを十分な停車時間がある右側のダイヤスジに接近するように移動させると、クリティカルパス部分の時隔時分Ｔ１を着発順序アークの重みの最小値に相当するＴ１´にまで短縮し、ノードＢ３とノードＢ４の間の停車時間はＴ２に維持したままダイヤが調整される。また、左側のダイヤスジの各ノードと異なり、右側のスジの各ノードの実施時刻は編集後も変更されていない。
【０１４５】
図２５は、ダイヤスジの編集事例（５）を示す図である。ここでは、基準運転時分適用モードがＯＮ、折返し時分短縮許可モードがＯＮのときのダイヤスジの動きを示している。基準運転時分に従った２本のダイヤスジがＡ駅で折り返すように接続されており、破線で指定されている左側のダイヤスジを十分な折返し時間がある右側のダイヤスジに接近させると、クリティカルパス部分の折返し時分Ｔ１を最小折返し時分のＴ１´にまで短縮し、ダイヤが調整される。
【０１４６】
図２６は、ダイヤスジの編集事例（６）を示す図である。ここでは、基準運転時分適用モードがＯＮ、折返し時分短縮許可モードがＯＦＦのときのダイヤスジの動きを示している。基準運転時分に従った２本のダイヤスジがＡ駅で折り返すように接続されており、破線で指定されている左側のダイヤスジを十分な折返し時間がある右側のダイヤスジに接近させると、クリティカルパス部分の折返し時分Ｔ１の値を維持したまま、右側のダイヤスジも右に移動し、ダイヤが調整される。
【０１４７】
図２７は、ダイヤスジの編集事例（７）を示す図である。ここでは、運転時分遅延許可モードがＯＮ、停車時分短縮許可モードがＯＦＦのときのダイヤスジの動きを示している。
【０１４８】
基準運転時分に従った２本のダイヤスジがあり、左側のダイヤスジを右側のダイヤスジに接近移動させると、クリティカルパス部分の時隔時分をＴ１からＴ１´に短縮するとともに、右側のダイヤスジの出発ノードＡ２と到着ノードＢ３間の運転時分をＴ２からＴ２´に延長し、ダイヤが調整される。また、停車時分短縮許可モードＯＦＦのため、Ｂ駅における停車時間は一定に維持されている。
【０１４９】
このように、本実施形態に係る列車ダイヤ校正装置１によれば、画面上でユーザがスジを移動させた場合でも、ダイヤネットワークの構造を変化させない範囲の変更に留めることができるため、他の運行計画（車両運用、乗務員運用、構内作業計画など）にほとんど影響を与えずにダイヤを変更することが可能となる。例えば、ダイヤ改正時や運行整理時（事故などによるダイヤ乱れの復旧時）に有効である。他路線の主要列車との乗り換えの利便性などを考慮し、一部の列車の主要駅の到着・発車時刻や停車駅を変更したい場合などに、所定の制約時間条件を守りつつ、影響の及ぶ他の列車の発着時刻の変更を自動的に行うことが可能となる。
【０１５０】
＜変形例＞
図２８は、本発明の一実施形態に係る列車ダイヤ校正装置の変形例であるコンピュータシステムを示す図である。ここでは、クライアント端末１００がインターネットなどのネットワークＮＷ１を介してＷｅｂアプリケーションサーバ２００に接続され、Ｗｅｂアプリケーションサーバ２００がＬＡＮなどのネットワークＮＷ２を介してデータベースサーバ３００に接続されたコンピュータシステムが示されている。クライアント端末１００は、図１の入力部１２と表示部１７、Ｗｅｂアプリケーションサーバ２００のアプリケーションは、スケジュール検証部１４、データベースサーバ３００は、ダイヤデータ記憶部１１および制約時間条件データ記憶部１３にそれぞれ相当する。このように、上記実施形態では、ダイヤデータ、制限時間条件データ、スケジュール検証部等の全てを一台のコンピュータ装置が備えていたが、図２８に示すように、クライアント端末１００、Ｗｅｂアプリケーションサーバ２００およびデータベースサーバ３００に分散して備えることもできる。
【０１５１】
また、ダイヤデータ（スケジュール）をネットワーク形式のモデルに変換する方法はＰＥＲＴには限られない。上記の最早時刻ＥＴ（下限時刻），最遅時刻ＬＴ（上限時刻）及び各アークの最小時間間隔、最大時間間隔が指定されていれば本発明には適用可能である。
【０１５２】
また、上記実施形態では、スジの移動に伴って違反ノードが生じた場合には、編集前のスジに戻した上でダイヤネットワークを再表示していたが、スジの移動状態を維持しつつ、違反ノードを含む箇所を識別可能に表示し、ユーザに修正を促すようにしてもよい。
【０１５３】
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施することが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１５４】
１…列車ダイヤ校正装置、
１１…ダイヤデータ記憶部、
１２…入力部、
１３…制約時間条件データ記憶部、
１４…スケジュール検証部、
１４ａ…ダイヤネットワーク生成部、
１４ｂ…ダイヤネットワーク更新部、
１４ｃ…違反ノード検出部、
１４ｄ…最早・最遅時刻制約変更部、
１４ｅ…ダイヤ校正モード設定部、
１５…ダイヤ校正モード記憶部、
１６…違反ノード記憶部、
１００…クライアント端末、
２００…Ｗｅｂアプリケーションサーバ、
３００…データベースサーバ。
【図１】
2016147212.tif 000029
【図２】
2016147212.tif 000030
【図３】
2016147212.tif 000031
【図４】
2016147212.tif 000032
【図５】
2016147212.tif 000033
【図６】
2016147212.tif 000034
【図７】
2016147212.tif 000035
【図８】
2016147212.tif 000036
【図９】
2016147212.tif 000037
【図１０】
2016147212.tif 000038
【図１１】
2016147212.tif 000039
【図１２】
2016147212.tif 000040
【図１３】
2016147212.tif 000041
【図１４】
2016147212.tif 000042
【図１５】
2016147212.tif 000043
【図１６】
2016147212.tif 000044
【図１７】
2016147212.tif 000045
【図１８】
2016147212.tif 000046
【図１９】
2016147212.tif 000047
【図２０Ａ】
2016147212.tif 000048
【図２０Ｂ】
2016147212.tif 000049
【図２１】
2016147212.tif 000050
【図２２】
2016147212.tif 000051
【図２３】
2016147212.tif 000052
【図２４】
2016147212.tif 000053
【図２５】
2016147212.tif 000054
【図２６】
2016147212.tif 000055
【図２７】
2016147212.tif 000056
【図２８】
2016147212.tif 000057
【手続補正書】
【提出日】平成28年6月22日(2016.6.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の駅を繋ぐ路線上を走行する列車に係るダイヤデータを記憶するダイヤデータ記憶部と、
前記ダイヤデータ記憶部から前記ダイヤデータを読込み、前記列車の各駅における到着及び出発に係るイベントをそれぞれ表すノードを生成するとともに、これらのノードを前記ノード間の時間間隔及び時系列上の着発順序をそれぞれ表す、駅間アーク、停車アーク、及び発着順序アークを含むアークによって順次接続して前記ダイヤデータを表すダイヤネットワークを生成するダイヤネットワーク生成部と、
前記ダイヤネットワーク生成部が生成したダイヤネットワークを画面表示する表示部と、
前記表示部が表示しているダイヤネットワークに含まれるスジを指定し、時系列上で移動先情報を入力する入力部と、
前記ノード間の時間間隔の最小値及び最大値を前記アークの制約時間条件データとして記憶する制約時間条件データ記憶部と、
前記入力部から前記スジの移動先情報が入力された場合に、前記スジの移動方向に存在するスジについて、同一方向へ進行する２つの前記列車間の時間間隔を表す続行時隔及び前記路線の終端駅に対して反対方向へ進行する２つの前記列車間の時間間隔を表す交差時隔を、対応するノード間に係る前記制約時間条件データに基づいて校正することで、前記移動方向に存在するスジにおける前記ノードの最早時刻及び最遅時刻をそれぞれ演算し、前記ダイヤネットワークを更新するダイヤネットワーク更新部と、
を備え、
前記ダイヤネットワーク生成部は、
前記ノードに、１日の前記列車の運用を開始する時刻を繰り下げる範囲を規定する最早時刻制約と、１日に前記列車の運用を終了する時刻を繰り上げる範囲を規定する最遅時刻制約とを与え、
前記駅間アークに、予め設定されている駅間の基準運転時分、又はダイヤ上で走行する駅間の運転時分最小時隔を、隣接する駅相互間での前記列車の移動時間の最小値を示す移動時間最小時隔として与えるとともに、前記基準運転時分、又は前記駅相互間の運転時分最大時隔を、隣接する前記駅相互間での前記列車の移動時間の最大値を示す移動時間最大時隔として与え、
前記停車アークに、予め設定されている最小停車時分を、前記列車が駅に到着してから出発するまでの停車時間の最小値を示す停車時間最小時隔として与え、予め設定されているある前記列車と次の前記列車の間の時隔時分を、ある駅の特定の番線でのある前記列車の発車時刻から次の前記列車の到着時刻までの第１の時間の最小値を示す第１の最小時隔として与え、１日の前記列車の運用時間の最大値である２４時間を、前記列車の停車時間の最大値を示す停車時間最大時隔として与えるとともに、前記第１の時間の最大値を示す第１の最大時隔として与え、
前記発着順序アークに、予め設定されているある前記列車と次の前記列車の間の時隔時分を、駅でのある前記列車の到着時刻から次の前記列車の到着時刻までの第２の時間の最小値を示す第２の最小時隔として与えるとともに、駅でのある前記列車の出発時刻から次の前記列車の出発時刻までの第３の時間の最小値を示す第３の最小時隔として与え、１日の前記列車の運用時間の最大値である２４時間を、前記第２の時間の最大値を示す第２の最大時隔として与えるとともに、前記第３の時間の最大値を示す第３の最大時隔として与えることを特徴とする列車ダイヤ校正装置。
【請求項２】
複数の駅を繋ぐ路線上を走行する列車に係るダイヤデータを記憶するダイヤデータ記憶部と、
前記ダイヤデータ記憶部から前記ダイヤデータを読込み、前記列車の各駅における到着及び出発に係るイベントをそれぞれ表すノードを生成するとともに、これらのノードを前記ノード間の時間間隔及び時系列上の着発順序をそれぞれ表すアークによって順次接続して前記ダイヤデータを表すダイヤネットワークを生成するダイヤネットワーク生成部と、
前記ダイヤネットワーク生成部が生成したダイヤネットワークを画面表示する表示部と、
前記表示部が表示しているダイヤネットワークに含まれるスジを指定し、時系列上で移動先情報を入力する入力部と、
前記ノード間の時間間隔の最小値及び最大値を前記アークの制約時間条件データとして記憶する制約時間条件データ記憶部と、
前記入力部から前記スジの移動先情報が入力された場合に、前記スジの移動方向に存在するスジについて、隣接する２つの駅間における同一の前記列車の運転時分を、対応するノード間に係るアークの前記制約時間条件データに基づいて校正することで、前記移動方向に存在するスジにおける前記ノードの最早時刻及び最遅時刻をそれぞれ演算し、前記ダイヤネットワークを更新するダイヤネットワーク更新部と、
を備えることを特徴とする列車ダイヤ校正装置。
【請求項３】
前記ダイヤネットワーク更新部は、前記入力部から前記スジの移動先情報が入力された場合に、前記運転時分に加えて、同一の前記列車の停車時間及び折返し時間を、対応するノード間に係るアークの前記制約時間条件データに基づいて校正することで、前記移動方向に存在するスジにおける前記ノードの最早時刻及び最遅時刻をそれぞれ演算し、前記ダイヤネットワークを更新することを特徴とする請求項２記載の列車ダイヤ校正装置。
【請求項４】
前記ダイヤネットワーク更新部は、前記入力部から前記スジの移動先情報が入力された場合に、前記続行時隔及び前記交差時隔に加えて、隣接する２つの駅間における同一の前記列車の運転時分、同一の前記列車の停車時間及び折返し時間を、対応するノード間に係るアークの前記制約時間条件データに基づいて校正することで、前記移動方向に存在するスジにおける前記ノードの最早時刻及び最遅時刻をそれぞれ演算し、前記ダイヤネットワークを更新することを特徴とする請求項１記載の列車ダイヤ校正装置。
【請求項５】
複数の駅を繋ぐ路線上を走行する列車に係るダイヤデータを記憶する記憶装置から前記ダイヤデータを読込み、前記列車の各駅における到着及び出発に係るイベントをそれぞれ表すノードを生成するとともに、これらのノードを前記ノード間の時間間隔及び時系列上の着発順序をそれぞれ表すアークによって順次接続して前記ダイヤデータを表すダイヤネットワークを生成するダイヤネットワーク生成ステップと、
前記ダイヤネットワーク生成ステップにおいて生成されたダイヤネットワークを画面表示する表示ステップと、
前記表示ステップにおいて表示されたダイヤネットワークに含まれるスジを指定し、時系列上で移動先情報を入力する移動先入力ステップと、
前記入力ステップにおいて前記スジの移動先情報が入力された場合に、前記スジの移動方向に存在するスジについて、同一方向へ進行する２つの前記列車間の時間間隔を表す続行時隔及び前記路線の終端駅に対して反対方向へ進行する２つの前記列車間の時間間隔を表す交差時隔、隣接する２つの駅間における同一の前記列車の運転時分、同一の前記列車の停車時間及び折返し時間を、対応するノード間の時間間隔の最小値及び最大値を予め定義した制約時間条件データに基づいて校正することで、前記移動方向に存在するスジにおける前記ノードの最早時刻及び最遅時刻をそれぞれ演算し、前記ダイヤネットワークを更新するダイヤネットワーク更新ステップと、
をコンピュータに実行させることを特徴とする列車ダイヤ校正プログラム。
【国際調査報告】
2016147212.tif 000058
2016147212.tif 000059
2016147212.tif 000060
2016147212.tif 000061