(57)【要約】【課題】列車の運転整理業務の支援等を行うシステムにおける運行計画の調整等の処理に関して、高速化を実現できる技術を提供する。【解決手段】計算機システム１００の運行計画生成機能６１は、ダイヤデータテーブル４１の（調整前）運行計画情報ｄ１と、演算リンク定義テーブル４２とを用いて、グラフデータｄ２を生成する処理（Ｓ１）と、グラフデータｄ２を用いて、マルチスレッドの並列処理による演算処理の実行により、（調整後）運行計画情報ｄ３を出力する処理（Ｓ２）と、を行う。グラフデータｄ２の生成の際は、運行計画情報における各路線、各列車、及び各駅に関する着発時刻をそれぞれ値として持つノードとし、当該複数のノードにおける２つのノードの時刻の差分をそれぞれ重み値として持つ方向付きのリンクとして構成する。【選択図】図２
2011218838.tif 000002
【特許請求の範囲】
【請求項１】
計算機システムを用いて列車の運転整理の業務を支援する処理を行う運転整理支援システムであって、
前記計算機システムは、
列車のダイヤデータに基づく調整前の運行計画情報を入力として用いてその調整のための演算処理を行って調整後の運行計画情報を出力する調整機能を有し、
前記調整機能は、グラフデータ生成部と、演算実行部と、を有し、
前記グラフデータ生成部は、前記調整前の運行計画情報を入力として用いて、前記演算実行部の演算処理で用いる、ノード及びリンクを持つ構造のグラフデータを生成する処理を行い、
前記演算実行部は、前記グラフデータを入力として用いて、マルチスレッドの並列処理による演算処理の実行により、前記調整後の運行計画情報を出力し、
前記グラフデータ生成部は、前記グラフデータの生成の際、前記運行計画情報における各路線、各列車、及び各駅に関する到着時刻及び出発時刻をそれぞれ値として持つノードとし、当該複数のノードにおける２つのノードの時刻の差分をそれぞれ重み値として持つ方向付きのリンクとし、
前記演算実行部は、前記マルチスレッドの並列処理による演算処理の実行の際、複数（ｍ）の処理スレッドを用いてそれぞれの処理スレッドにより前記グラフデータのノードの値の調整のための演算を実行し、その際は、当該グラフデータにおけるノードとリンクの接続関係に基づき、あるノードの値は当該ノードと接続されるリンクの重み値及び当該リンクで接続される他のノードの値に基づき演算されること、を特徴とする運転整理支援システム。
【請求項２】
請求項１記載の運転整理支援システムにおいて、
前記計算機システムは、
前記調整機能による前記調整後の運行計画情報をユーザに提示する処理を行う情報提示機能と、
路線、列車、駅、到着時刻、及び出発時刻の情報を含む前記運行計画情報を含む前記ダイヤデータを管理するテーブルと、
前記グラフデータ生成部で生成するグラフデータのリンクに関する生成条件の定義情報を管理するテーブルと、
前記演算実行部による前記マルチスレッドの並列処理による演算処理の実行過程で前記複数（ｍ）の処理スレッドの各々から処理対象のノードの登録及び削除が実行されるバッファと、を有し、
前記グラフデータ生成部は、前記調整前の運行計画情報及び前記定義情報を入力として用いて、当該定義情報に従うリンクを持つ前記グラフデータを生成する処理を行うこと、を特徴とする運転整理支援システム。
【請求項３】
請求項２記載の運転整理支援システムにおいて、
前記演算実行部の処理では、
前記マルチスレッドの並列処理で実行する処理スレッドの数（ｍ）を、設定に基づいて決定する処理と、
前記グラフデータにおいて、あるリンクに対して、当該リンクの矢元のノードを流入ノードとし、当該リンクの矢先のノードを流出ノードとし、また、あるノードに対して、矢先がつながるリンクを流入リンクとし、矢元がつながるリンクを流出ノードとしたとき、複数のノードのうち、流入リンクが無いノードを演算ノードとして前記バッファへ登録する処理と、
前記複数（ｍ）の処理スレッドを生成して、それぞれの処理スレッドにより、前記バッファに登録されているノードを対象として、同様のアルゴリズムによる演算処理を実行する処理と、を有し、
上記の複数（ｍ）の処理スレッドでの演算処理を繰り返し実行してすべてのノードの演算値を決定した後に当該演算実行部の処理を終了すること、を特徴とする運転整理支援システム。
【請求項４】
請求項３記載の運転整理支援システムにおいて、
前記演算実行部における前記マルチスレッドの並列処理による演算処理では、
（１）前記バッファに登録されているノードの有無を判定し、無い場合には処理を終了し、
（２）上記で有る場合には、前記バッファに登録されているノード（Ｘ）を取得すると共に、当該バッファから、当該取得したノード（Ｘ）の情報を削除し、
（３）上記取得したノード（Ｘ）を矢元とする流出リンクがすべて巡回済みか判定し、すべて巡回済みの場合は、前記（１）へ処理を戻し、
（４）上記で未巡回の流出リンクが有る場合には、未巡回の流出リンクのうち１つを巡回済みに設定し、
（５）当該ノード（Ｘ）とその流出リンクでつながる次ノード（Ｙ）を取得し、
（６）上記次ノード（Ｙ）を矢先とする流入リンクがすべて巡回済みか判定し、すべて巡回済みではない場合には、前記（３）へ処理を戻し、
（７）上記ですべて巡回済みである場合には、当該次ノード（Ｙ）の演算値を決定する処理を行い、
（８）上記演算値を決定した次ノード（Ｙ）を前記バッファへ登録し、前記（３）へ処理を戻し、
上記（１）〜（８）の一連の処理を並列実行すること、を特徴とする運転整理支援システム。
【請求項５】
請求項４記載の運転整理支援システムにおいて、
前記（７）の当該次ノード（Ｙ）の演算値を決定する処理において、
該当のすべての流入リンク（ａ）に対して、当該流入リンク（ａ）の重み値と当該流入リンク（ａ）の矢元ノードの演算値との加算をし、それらの計算値の最大値と、当該次ノード（Ｙ）の初期値とにおける最大値をとり、その最大値を当該次ノード（Ｙ）の演算値として決定すること、を特徴とする運転整理支援システム。
【請求項６】
請求項１記載の運転整理支援システムにおいて、
前記グラフデータのノード及びリンクに関する生成の定義として、
前記調整の対象とする各路線、各列車、及び各駅について、
第１の駅への到着時刻を第１のノードとし、第１の駅からの出発時刻を第２のノードとし、第１の駅での停車時間を第１のリンクの重み値とし、
第２の駅への到着時刻を第３のノードとし、第２の駅からの出発時刻を第４のノードとし、第２の駅での停車時間を第３のリンクの重み値とし、
第１の駅と第２の駅との間の走行時間を第２のリンクの重み値とすること、を特徴とする運転整理支援システム。
【請求項７】
請求項１記載の運転整理支援システムにおいて、
前記グラフデータのノード及びリンクに関する生成の定義において、
第１の定義として、矢元ノードを駅到着時刻とし、矢先ノードを駅出発時刻とし、それらの時隔差である駅停車時間をリンクの重み値とすること、を特徴とする運転整理支援システム。
【請求項８】
請求項１記載の運転整理支援システムにおいて、
前記グラフデータのノード及びリンクに関する生成の定義において、
第２の定義として、矢元ノードを駅出発時刻とし、矢先ノードを次駅到着時刻とし、それらの時隔差である駅間走行時間をリンクの重み値とすること、を特徴とする運転整理支援システム。
【請求項９】
請求項１記載の運転整理支援システムにおいて、
前記グラフデータのノード及びリンクに関する生成の定義において、
第３の定義として、矢元ノードを当該列車の駅出発時刻とし、矢先ノードを当該列車の次発列車の駅出発時刻とし、それらの時隔差である列車間の出発続行時間をリンクの重み値とすること、を特徴とする運転整理支援システム。
【請求項１０】
列車の運転整理の業務を支援する処理を行う運転整理支援装置であって、
列車のダイヤデータに基づく調整前の運行計画情報を入力として用いてその調整のための演算処理を行って調整後の運行計画情報を出力する調整機能と、
前記調整機能による前記調整後の運行計画情報をユーザに提示する処理を行う情報提示機能と、
路線、列車、駅、到着時刻、及び出発時刻の情報を含む前記運行計画情報を含む前記ダイヤデータを管理するテーブルと、
前記グラフデータ生成部で生成するグラフデータのリンクに関する生成条件の定義情報を管理するテーブルと、
前記演算実行部による前記マルチスレッドの並列処理による演算処理の実行過程で前記複数（ｍ）の処理スレッドの各々から処理対象のノードの登録及び削除が実行されるバッファと、を有し、
前記調整機能は、グラフデータ生成部と、演算実行部と、を有し、
前記グラフデータ生成部は、前記調整前の運行計画情報及び前記定義情報を入力として用いて、前記演算実行部の演算処理で用いる、ノード及びリンクを持つ構造のグラフデータを生成する処理を行い、
前記演算実行部は、前記グラフデータを入力として用いて、マルチスレッドの並列処理による演算処理の実行により、前記調整後の運行計画情報を出力し、
前記グラフデータ生成部は、前記グラフデータの生成の際、前記運行計画情報における各路線、各列車、及び各駅に関する到着時刻及び出発時刻をそれぞれ値として持つノードとし、当該複数のノードにおける２つのノードの時刻の差分をそれぞれ重み値として持つ方向付きのリンクとし、
前記演算実行部は、前記マルチスレッドの並列処理による演算処理の実行の際、複数（ｍ）の処理スレッドを用いてそれぞれの処理スレッドにより前記グラフデータのノードの値の調整のための演算を実行し、その際は、当該グラフデータにおけるノードとリンクの接続関係に基づき、あるノードの値は当該ノードと接続されるリンクの重み値及び当該リンクで接続される他のノードの値に基づき演算されること、を特徴とする運転整理支援装置。
【請求項１１】
請求項１０記載の運転整理支援装置において、
前記演算実行部の処理では、
前記マルチスレッドの並列処理で実行する処理スレッドの数（ｍ）を、設定に基づいて決定する処理と、
前記グラフデータにおいて、あるリンクに対して、当該リンクの矢元のノードを流入ノードとし、当該リンクの矢先のノードを流出ノードとし、また、あるノードに対して、矢先がつながるリンクを流入リンクとし、矢元がつながるリンクを流出ノードとしたとき、複数のノードのうち、流入リンクが無いノードを演算ノードとして前記バッファへ登録する処理と、
前記複数（ｍ）の処理スレッドを生成して、それぞれの処理スレッドにより、前記バッファに登録されているノードを対象として、同様のアルゴリズムによる演算処理を実行する処理と、を有し、
上記の複数（ｍ）の処理スレッドでの演算処理を繰り返して実行してすべてのノードの演算値を決定した後に本演算実行部の処理を終了すること、を特徴とする運転整理支援装置。
【請求項１２】
計算機システムを用いて列車の運転整理の業務を支援する処理を行う運転整理支援システムにおける列車運行計画演算処理方法であって、
前記計算機システムは、
列車のダイヤデータに基づく調整前の運行計画情報を入力として用いてその調整のための演算処理を行って調整後の運行計画情報を出力する調整処理を行い、
前記調整処理において、
前記調整前の運行計画情報を入力として用いて、第２の処理ステップの演算処理で用いる、ノード及びリンクを持つ構造のグラフデータを生成する第１の処理ステップと、
前記グラフデータを入力として用いて、マルチスレッドの並列処理による演算処理の実行により、前記調整後の運行計画情報を出力する第２の処理ステップと、を有し、
前記第１の処理ステップでは、前記グラフデータの生成の際、前記運行計画情報における各路線、各列車、及び各駅に関する到着時刻及び出発時刻をそれぞれ値として持つノードとし、当該複数のノードにおける２つのノードの時刻の差分をそれぞれ重み値として持つ方向付きのリンクとし、
前記第２の処理ステップでは、前記マルチスレッドの並列処理による演算処理の実行の際、複数（ｍ）の処理スレッドを用いてそれぞれの処理スレッドにより前記グラフデータのノードの値の調整のための演算を実行し、その際は、当該グラフデータにおけるノードとリンクの接続関係に基づき、あるノードの値は当該ノードと接続されるリンクの重み値及び当該リンクで接続される他のノードの値に基づき演算されること、を特徴とする列車運行計画演算処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、運転整理支援システム及び装置、並びに列車運行計画演算処理方法に関する。
【背景技術】
【０００２】
列車の運転整理業務では、天候不良や車両故障や乗客トラブルなどによって列車の運行に乱れ（遅延等）が生じた時に、運行計画の調整等を行う。この業務は、列車走行速度や駅での退避設備等の物理条件の判断だけでなく、車両・乗務員の運用率や旅客サービスなど、輸送システム全体を考えた、多目的・大局的な判断を要する、非常に複雑な計画業務である。
【０００３】
上記運転整理業務を司る者（指令員）の負担を軽減し、技量の高度化を推進するための技術が必要とされ、近年、開発（システム化）が進んできている。例えば、現時点までに取得した列車の運行実績情報に基づき未来の列車運行の予測シミュレーションを行う技術（言い換えれば列車運行計画情報を作成・調整等する技術）が開発されている。
【０００４】
なお上記運転整理業務を行う指令員は例えば列車運行管理システム等の管制室などに存在し、運行計画情報等を画面で参照する。例えば上記運行計画情報に基づき列車や駅設備等へ指示・制御がなされることにより適切な運行が実現される。
【０００５】
上記業務に係わる先行技術例として、例えば特開２００６−１５１１３７号公報（特許文献１）（列車運行管理システム）がある。特許文献１では、ある列車の遅れに起因する他の列車に対する将来の運行スケジュール（運行計画）を予測するシステムであって、予測した将来の運行スケジュールを標準運行スケジュールとともに表示装置にリアルタイム表示する構成等について記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−１５１１３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
前記特許文献１では、列車の走行時分・停車時分だけでなく、先行する列車との出発間隔・到着間隔を踏まえて、現時点までに取得した列車の運行実績情報に基づき未来の列車運行の予測シミュレーションを行う技術（言い換えれば列車運行計画情報等を作成・調整等する技術）が開示されている。しかしながら、特許文献１等の従来技術においては、以下のような課題がある。
【０００８】
運転整理業務が対象とするのは現在走行中の列車の運行計画の調整（変更）であることから、運転整理業務とは迅速性が求められる業務である。即ち運行状況等に応じた短時間での判断などが要求される。従って、運転整理業務において利用する情報を指令員等に対して提供するにあたっては、この機能（情報提供機能）のレスポンスの高速化が必須となる。例えば、指令員が見る画面に対して運行計画情報の調整が要求されてから調整後の運行計画情報等を表示するまでの処理が高速（短時間）であることが要求される。即ち、計算機システムで運行計画情報等を作成・調整等する処理（演算）における高速化が要求される。
【０００９】
前記特許文献１では、列車運行計画の調整（運行スケジュールの予測シミュレーション）について述べられているが、上記のような応答速度（レスポンスの高速化）に関する観点や具体的な構成については述べられていない。
【００１０】
特に、近年における都市部の鉄道運行のように相互乗り入れが進む状況においては、列車運行計画の調整の処理が対象とする列車本数なども増加してゆくことが予想される。前記特許文献１等の従来技術では、上記列車本数などの多い区間を対象とした運行計画の調整の処理（演算）を、運転整理業務が必要とする応答速度で実行することは、難しいと考えられる。
【００１１】
上述のように、列車の運転整理業務に係わる運行計画の調整の処理（演算）は、処理対象とする情報データ量の増大や計算パラメータの増大などにより、従来技術では高速化が難しく、今後一層難しくなると予想される。
【００１２】
以上を鑑み、本発明の主な目的は、上記列車の運転整理業務の支援等を行うシステムにおける運行計画の調整（予測シミュレーション）等の処理に関して、高速化を実現できる技術を提供することである。
【課題を解決するための手段】
【００１３】
上記目的を実現するため、本発明の代表的な実施の形態は、上記列車の運転整理業務の支援等を行う情報処理システム（運転整理支援システム）等であって、運行計画（ダイヤ）の調整（予測シミュレーション）等の処理を行うシステム等であり、以下に示す構成を有することを特徴とする。
【００１４】
本形態は、運行計画（運行計画情報）の作成・調整等の処理（演算）において、特徴的なグラフデータ（ノード及びリンクを持つデータ構造）の演算処理と、マルチスレッドによる並列処理と、を適用した構成である。これは、既存技術の単なる組み合わせの構成ではなく、運転整理業務で考慮すべき要素、及び高速化の観点を、演算のアルゴリズムに組み入れた構成である。
【００１５】
本形態は、例えば、計算機システムを用いて列車の運転整理の業務を支援する処理を行う運転整理支援システムである。計算機システムは、列車のダイヤデータに基づく調整前の運行計画情報を入力として用いてその調整のための演算処理（列車運行予測シミュレーション処理）を行って調整後の運行計画情報を出力する調整機能を有する。調整機能は、グラフデータ生成部と、演算実行部と、を有する。グラフデータ生成部は、調整前の運行計画情報を入力として用いて、演算実行部の演算処理で用いる、ノード及びリンクを持つ構造のグラフデータを生成する処理を行う。演算実行部は、グラフデータを入力として用いて、マルチスレッドの並列処理による演算処理の実行により、調整後の運行計画情報を出力する。グラフデータ生成部は、グラフデータの生成の際、運行計画情報における各路線、各列車、及び各駅に関する到着時刻及び出発時刻をそれぞれ値（初期値）として持つノードとし、当該複数のノードにおける２つのノードの時刻の差分をそれぞれ重み値として持つ方向付きのリンクとする。演算実行部は、マルチスレッドの並列処理による演算処理の実行の際、複数（ｍ）の処理スレッドを用いてそれぞれの処理スレッドによりグラフデータのノードの値の調整のための演算を実行し、その際は、当該グラフデータにおけるノードとリンクの接続関係に基づき、あるノードの値は当該ノードと接続されるリンクの重み値及び当該リンクで接続される他のノードの値に基づき演算される。
【発明の効果】
【００１６】
本発明の代表的な実施の形態によれば、運転整理業務を司る者（指令員）の負担を軽減することができ、列車運行を適切に制御することに寄与できる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施の形態の運転整理支援システムに関する全体の構成を示す図である。
【図２】本システムにおける運行計画生成機能の処理に関する構成を示す図である。
【図３】ダイヤデータテーブルの構成例を示す図である。
【図４】グラフデータの基本構成例を示す図である。
【図５】グラフデータの具体構成例を示す図である。
【図６】グラフデータのうち、ノードのデータ構成例（テーブル）を示す図である。
【図７】グラフデータのうち、リンクのデータ構成例（テーブル）を示す図である。
【図８】演算リンク定義テーブルの構成例を示す図である。
【図９】演算実行部の処理フローを示す図である。
【図１０】図９の演算実行部の処理のうちマルチスレッドの演算処理のフローを示す図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一符号を付し、その繰り返しの説明は省略する。
【００１９】
＜概要＞
本実施の形態の列車運転整理支援システムでは、列車・路線・駅などの要素（各々の要素は１つ以上）を対象とした運行計画の調整を含む運転整理の業務（指令員の業務）を、計算機システムで支援する処理を行う。本処理では、調整前の運行計画情報を入力として、特徴的な演算処理であるグラフデータを用いたマルチスレッドの並列処理を実行し、調整後の運行計画情報を出力する（図８，図９等）。従来システムでは行われていない、上記特徴的な演算処理（グラフデータを用いて運行計画を生成（調整）する処理）により、処理結果情報を高速に得て指令員等へ提示（画面表示等）することができる。
【００２０】
＜システム＞
先ず、図１を用いて、本実施の形態の運転整理支援システム１０に関する全体の構成について説明する。本運転整理支援システム１０は、主な要素として計算機システム１００（運転整理支援装置）として構成される。また、運転整理支援システム１０は、主要素である計算機システム１００の他、公知技術であるＣＴＣシステム２０等と接続されてもよいし、それらと一体的に構成されてもよい。本例では、運転整理支援システム１０は、ＣＴＣシステム２０と接続される。指令員等のユーザ５０は、計算機システム１００を操作・使用し、運転整理業務を行う。
【００２１】
計算機システム１００は、中央処理装置１１０、記憶装置１２０、入力装置１３０、表示装置（出力装置）１４０、及びその他図示しない一般的な構成要素（バス、通信装置等）を有する構成である。
【００２２】
中央処理装置１１０は、複数のプロセッサ等を有する構成（マルチプロセッサ構成）であり、プロセッサによりメモリ（非図示）上のプログラム（非図示）の処理を実行することにより、各機能を実現する。機能として、少なくとも、運行計画生成機能（調整機能）６１、情報提示機能６２を有する。マルチプロセッサ構成により、後述のマルチスレッドの並列処理を行う。また、中央処理装置１１０は、グラフデータ生成部３１や演算実行部３２の処理で必要なデータを記憶装置１２０等に対して入出力処理する。
【００２３】
記憶装置１２０は、各種の情報データを記憶・蓄積する手段であり、メモリ、ディスク、データベース、等により成る。記憶装置１２０は、中央処理装置１１０から高速にアクセス可能である。入力装置１３０は、ユーザ５０からの入力操作を受け付ける、例えばマウスやキーボード、あるいは専用コンソールなどである。表示装置１４０は、本システムの機能に係わる各種ＧＵＩ情報を画面に表示するディスプレイなどである。表示するＧＵＩ情報は、列車ダイヤ（運行計画情報）をはじめとする各種情報を含む。
【００２４】
運行計画生成機能（調整機能）６１では、グラフデータ生成部３１、演算実行部３２を有し、これらはプログラム処理の実行により実現される。運行計画生成機能（調整機能）６１は、運行計画情報の生成（調整を含む）の処理（演算）を行う（図２）。
【００２５】
情報提示機能６２は、グラフィカルユーザインタフェース（ＧＵＩ）機能等を含み、運行計画情報（ダイヤデータ）を含む各種の情報を、表示装置１４０の画面を通じてユーザ５０に提示する処理を行う。また、情報提示機能６２のＧＵＩ機能は、入力装置１３０からの入力操作に基づき、調整機能６１への指示や設定を行うこともできる。
【００２６】
記憶装置１２０では、ダイヤデータテーブル４１、演算リンク定義テーブル４２、演算ノードバッファ４３、等の情報データ（領域）を保有する。
【００２７】
ダイヤデータテーブル４１（例は図３）は、運行計画情報を含むダイヤデータ（列車ダイヤデータ）を格納する。運行計画情報は、各路線、各列車、及び各駅の着発時刻等の情報を含む。
【００２８】
演算リンク定義テーブル４２（例は図７）は、演算実行部３２による演算処理（列車運行予測シミュレーション）を実行するにあたって制約条件として考慮すべき情報である演算リンク定義情報を保有する。この定義情報に従って、グラフデータのリンク及びノードが生成されることになる。
【００２９】
演算ノードバッファ４３は、演算実行部３２の演算処理（マルチスレッドの並列処理）の実行過程においてデータ（演算ノード等）の登録及び削除等を行う対象となるバッファ（記憶領域）である。
【００３０】
また、図１では、本運転整理支援システム１０に対して接続される関連する他の要素の構成例（列車運行管理システム等）も示している。本発明の主たる特徴及び効果は運転整理支援システム１０内で実現されているが、図１では、運転整理支援システム１０に対して入出力する情報データの利用例に関する要素を図示している。公知の列車運行管理システムの機能としては、複数の路線における複数の列車の始発から終着までの各駅間の運行を管理する。
【００３１】
ネットワーク１１は、広域の無線通信システム、専用回線等である。駅設備１２は、駅などの停車場の各種設備を含む。列車１３は、各車両及びその中の設備を含む。
【００３２】
運転整理支援システム１０及びネットワーク１１に接続されるＣＴＣシステム２０は、列車集中制御装置・システムであり、運行実績取得部２１、運行計画指示部２２等を備える。ＣＴＣシステム２０自体は公知技術を適用可能である。ＣＴＣシステム２０では、ダイヤデータ（運行計画情報）等に従い、駅設備１２や列車１３等を制御することで運行を制御する。
【００３３】
運行実績取得部２１は、ネットワーク１１を介して、駅設備１２や列車１３、信号機、乗務員所持端末、等の要素から、列車の運行実績情報（Ｄ１）を随時収集・取得する（列車追跡装置等）。この情報（Ｄ１）は、過去及び現在の列車１３の運行の実績や状況を示す情報である。取得した情報（Ｄ１）は、記憶装置１２０内のテーブル（例えばダイヤデータテーブル４１）に格納・反映される。例えば、列車１３の遅延等の状況が、運行実績情報（Ｄ１）として取得され、計算機システム１００での処理の契機になる。
【００３４】
運行計画指示部２２は、例えば計算機システム１００のダイヤデータテーブル４１の（調整後）運行計画情報、またはそれに基づく指令員５０による指示情報などに基づいて、自動的に運行計画の指示・制御情報（Ｄ２）を、ネットワーク１１を介して駅設備１２や列車１３、信号機、乗務員所持端末等に対して送信する場合に使用される。
【００３５】
なお鉄道各社の相互乗り入れの状況などに対応した構成とする場合、各社の各路線・各列車の運行実績情報などを本システムに収集・取得するように構成する。また例えば各社の情報データの形式が異なる場合などには、それらの情報データを所定の形式に統合・変換等する処理部を設けることにより対応できる。
【００３６】
＜運転整理支援処理＞
図２は、計算機システム１００における主な処理機能である運行計画生成機能６１に関する構成、処理やデータの流れなどを示す。運行計画生成機能６１の処理は、大きくは、グラフデータ生成部３１による処理ステップＳ１と、演算実行部３２による処理ステップＳ２とから構成される。
【００３７】
運行計画生成機能６１の処理の開始の契機は、例えば、列車遅延等の列車運行状況の変動であり、それを反映した運行実績情報（Ｄ１）の入力や、あるいは指令員５０による処理指示入力などである。
【００３８】
グラフデータ生成部３１（処理ステップＳ１）は、ダイヤデータ（運行計画情報）ｄ０に基づき、本特徴的なグラフデータｄ２を生成する処理を行う。この際、グラフデータ生成部３１は、ダイヤデータテーブル４１、演算リンク定義テーブル４２等を参照し、（調整前）運行計画情報ｄ１を入力情報として、グラフデータｄ２を生成する。このグラフデータｄ２は、列車ダイヤ（運行計画情報）における着発時刻の各々をノードとし、それらの２つのノードの着発時刻の間の時隔差（時間）をリンク（重み）としたグラフ構造データである（例は図４，５）。なおグラフデータｄ２は、中央処理装置１１０及び記憶装置１２０で保有される。
【００３９】
演算実行部３２（処理ステップＳ２）は、上記グラフデータ生成部６１により生成したグラフデータｄ２に基づき、（調整前）運行計画情報ｄ１の調整の演算処理（現在時刻以降の列車運行予測シミュレーション）を、マルチスレッドの並列処理により実行し、結果、（調整後）運行計画情報ｄ３を出力する。この際、演算実行部３２は、演算処理の実行過程で、記憶装置１２０のバッファ４３に対してグラフデータｄ２のノード（演算ノード）を登録・削除しながら処理を行う。
【００４０】
上記処理により得られた、調整後の運行計画情報ｄ３は、リアルタイムで、情報提示機能６２の処理を通じて表示装置１４０の画面に出力情報として表示されると共に、記憶装置１２０内（ダイヤテーブル４１）に格納される。調整後の運行計画情報ｄ３（演算値）により、調整前の運行計画情報ｄ１（初期値）を更新することにより、最新の運行計画（新たな調整前の運行計画情報ｄ１になる）が得られる。指令員５０は、画面の出力情報を見ることで、調整後の運行計画等を認識することができる。また、指令員５０は、その出力情報に基づき、例えば公知技術と同様に、ＣＴＣシステム２０（運行計画指示部２２）を通じて運行指示等をしてもよい（図１）。なお出力情報の利用の仕方は列車運行管理システム等の形態に依存する。
【００４１】
＜ダイヤデータ＞
図３は、ダイヤデータテーブル４１の構成例を示す。既存の列車運行管理システム等で使用されているダイヤデータｄ０の構成の一例である。ダイヤデータテーブル４１（ダイヤデータｄ０）は、本実施の形態では、運行計画情報（３２２，３２３）と運行実績情報（３２４，３２５）とを含む情報が統合的に格納される構成である。また運行計画情報は、状態として、図２の（調整前）運行計画情報ｄ１（即ち演算対象となる初期値の情報）と、（調整後）運行計画情報ｄ３（即ち演算後の演算値の情報）とを有する。調整前の初期値は調整後の演算値により更新される。運行実績情報（３２４，３２５）は、前述の外部から得られる運行実績情報（Ｄ１）などによる。尚これらの各情報は分割して管理しても構わない。
【００４２】
図３のダイヤデータテーブル４１は、項目として、列車番号（ＩＤ）３１１、走行情報３１２等を有する。列車番号（ＩＤ）３１１は、対象の列車１３を識別する番号や名称や固有ＩＤ等を示す（例えば「001レ」等）。本例では列車番号３１１（既存システムの管理情報）に対応付けるＩＤ（本演算処理用）を記号Ｒで表すとする（例：Ｒ１等）。またその他、路線や種別（特急／準急／普通等）など、関連する要素の管理情報を保有してもよい。本例では、ある路線で連続して走行する２つの列車（「001レ」（Ｒ１），「002レ」（Ｒ２））の各走行情報３１２のテーブルを関連付けで示しているが、他の列車に関しても同様に管理される。
【００４３】
走行情報３１２は、当該列車の走行する路線における複数の駅（停車場）（３２１）、計画時の着発時刻（３２２，３２３）、及び実績の着発時刻（３２４，３２５）など、当該列車の走行に関する管理情報を保有する。本例では、走行情報３１２では、当該列車が走行する路線の始発から終着までの全ての駅の各駅毎に、１レコード（行）のデータを保有する。当該レコードは、駅３２１、計画到着時刻３２２、計画出発時刻３２３、実績到着時刻３２４、実績出発時刻３２５、等の項目を持つ。上記計画の項目（３２２，３２３）は、（調整前）運行計画情報ｄ１に対応し、調整（運行計画情報ｄ３）により値が更新される。
【００４４】
駅３２１は、駅名やＩＤ等である（例：Ａ，Ｂ，Ｃ）。計画到着時刻３２２は、運行計画における当該駅３２１への到着時刻である。計画出発時刻３２３は、運行計画における当該駅３２１からの出発時刻である。実績到着時刻３２４は、運行実績における当該駅３２１への到着時刻である。実績出発時刻３２５は、運行実績における当該駅３２１からの出発時刻である。
【００４５】
例えば、３０１のレコードでは、列車Ｒ１のＣ駅の走行の情報を示し、計画到着時刻３２２が「15:00」、計画出発時刻３２３が「15:01」であるが（即ちＣ駅停車時間の計画は１分）、実績到着時刻３２４は、計画到着時刻３２２に対して３分遅延して「15:03」であることを示している。また、３０２のレコードでは、列車Ｒ１がＣ駅の次に走行するＢ駅の走行の情報を示している。例えば計画到着時刻３２２が「15:04」である（即ちＣ駅−Ｂ駅間の走行時間の計画は３分）。また例えば３０１のレコードの実績出発時刻３２５や、３０２のレコードでの運行実績の情報（３２４，３２５）は、値が設定されていないが、これはその時点で当該実績が未定、即ち列車Ｒ１はＣ駅に留まっておりＢ駅に到着していないこと等を示している。
【００４６】
なおダイヤデータｄ０の情報を画面等に表示する場合は、情報提示機能６２により、所定の形式で見やすく表示することができる。計画情報と実績情報、あるいは調整前と調整後の情報を、個別に表示してもよいし、一部のみ表示してもよいし、並べて表示してもよい。
【００４７】
＜グラフデータ＞
図４は、グラフデータｄ２の基本構造を示す。楕円で示すノード（記号Ｎで表す）、矢印で示すリンク（記号Ｌで表す）を有する。なおノードＮは頂点、リンクＬは枝など、適宜言い換え可能である。例として、ノードＮ：Ｎａ〜Ｎｄ，リンクＬ：Ｌａ〜Ｌｃを有し、図示のような接続構造である。ノードＮの値は、前述の駅発着時刻（駅到着時刻、または、駅出発時刻）である。リンクＬの値（重み）は、接続する２つのノード（時刻）の時隔差（差分値）であり、即ち駅停車時間や駅間走行時間などである。リンクＬは、方向（矢元、矢先）と重みが付く構造である。
【００４８】
ノードＮａとノードＮｂがリンクＬａで接続される部分は、ある第１の駅（Ｘ駅）の停車を示す。リンクＬａの値（重み）は、Ｘ駅停車時間を示す。リンクＬａについて見ると、ノードＮａはＬａの流出ノード（当該リンクの矢元につながるノード）であり、ノードＮｂはＬａの流入ノード（当該リンクの矢先につながるノード）である。
【００４９】
同様に、ノードＮｃとノードＮｄがリンクＬｃで接続される部分は、ある第２の駅（Ｙ駅）の停車を示す。また、ノードＮｂとノードＮｃがリンクＬｂで接続される部分は、第１の駅（Ｘ駅）と第２の駅（Ｙ駅）との間の走行を示す。リンクＬｂの値（重み）は、Ｘ−Ｙ駅間の走行時間を示す。ノードＮｂについて見ると、リンクＬａはＮｂの流入リンク（矢先がつながるリンク）であり、リンクＬｂはＮｂの流出リンク（矢元がつながるリンク）である。
【００５０】
図５は、本実施の形態のグラフデータｄ２の具体例を示す。本例では、左側の系列で、第１の列車Ｒ１（「001レ」）の第１の路線（駅：Ｃ→Ｂ→Ａ）の運行に関するノードＮ｛Ｎ１〜Ｎ５｝及びリンクＬ｛ＬＡ〜ＬＤ｝を有し、右側の系列で、第２の列車Ｒ２（「002レ」）の同第１の路線の運行に関するノードＮ｛Ｎ６〜Ｎ１０｝及びリンクＬ｛ＬＥ〜ＬＨ｝を有する。また横方向で、例えばＮ２−Ｎ７間のリンクＬＩ、及びＮ４−Ｎ９間のリンクＬＪがある。
【００５１】
各ノードは、駅着発時刻の値（図４では「初期値」）を持つ。この「初期値」は、本演算処理（Ｓ２）による調整の前の状態の値であり、図２の（調整前）運行計画情報ｄ１の値に対応する。本演算処理（Ｓ２）の際は、この「初期値」を用いた演算処理がされ、その結果の「演算値」は、図２の（調整後）運行計画情報ｄ３に対応する。
【００５２】
各リンクは、重み（値）を持つ。この値の単位は本例では［分］である。
【００５３】
例えばノードＮ１−リンクＬＡ−ノードＮ２の部分は、列車Ｒ１がＣ駅に到着し停車し出発するという計画を表している。また、ノードＮ２−リンクＬＢ−ノードＮ３の部分は、列車Ｒ１がＣ駅から出発して走行しＢ駅に到着するという計画を表している。例えばＮ１は、ＩＤ（ノードＩＤ）が「１」のノードであり、Ｒ１のＣ駅到着時刻の値（初期値）を持つ。Ｎ１の初期値は、図４では最初（標準の運行計画）は「15:00」（１５時０分）で、次に遅延等の運行状況変動（実績）により「15:03」になった場合である。同様に、Ｎ２は、Ｒ１のＣ駅出発時刻の値（初期値）、例えば「15:01」を持つ。また例えばＬＡは、ＩＤ（リンクＩＤ）が「Ａ」のリンクであり、重み（値）は、Ｒ１のＣ駅停車時間として、１［分］を示す。同様に、ＬＢは、重み（値）は、Ｒ１のＣ−Ｂ駅間の走行時間として、３［分］を示す。また例えばＮ２−Ｎ７間のリンクＬＩは、例えばＣ駅からの出発に関する順序の関係として、第１の列車Ｒ１、次に第２の列車Ｒ２という関係に対応した、列車間の出発続行の時間を示す。例えばリンクＬＩの重みが４［分］であり、即ちＣ駅での列車Ｒ１，Ｒ２の走行（出発）の間隔として４分を確保することを示す。
【００５４】
運行計画生成機能６１では、運行計画の一部の変動を元にそこから波及的に他の運行計画へと影響する性質の運行計画情報を生成（調整）する処理を、当該波及的な影響をアルゴリズムとして表現（反映）したグラフデータ処理及びマルチスレッド処理による演算処理によって、高速に処理して結果を出力することができる。図４の例で言えば、列車Ｒ１のＣ駅着発時刻の遅れを表すノードＮ１を元にそこから波及的に他の駅や他の列車Ｒ２等へ影響する運行計画情報を生成（調整）する処理を、グラフデータｄ２の処理及びマルチスレッド処理による演算処理（Ｓ２）によって高速に処理して結果（ｄ３）を出力することができる。波及的な影響は、リンクＬの矢印（矢元側から矢先側への流れ）にて表現されている。
【００５５】
＜ノード＞
図６は、上記グラフデータｄ２で示されるノードＮ（演算ノード）に関するデータ（ｄ２−１）の構成例（テーブル）を示す。このノードのデータ（ｄ２−１）は、グラフデータｄ２内に含まれる。
【００５６】
本ノードのデータ（ｄ２−１）のテーブルにおいて、項目として、ＩＤ（ノードＩＤ）５１１、初期値５１２、演算値５１３、流入リンクリスト５１４、流出リンクリスト５１５、等を有する。その他、対応する列車ＩＤ，駅、種別（到着時刻／出発時刻など）等の情報を保有してもよい。
【００５７】
ＩＤ５１１は、ノードＮの固有ＩＤ（ノードＩＤ）である（前述のＮ１等）。初期値５１２は、当該ノードＮが示す着発時刻（計画情報）の値（調整前の情報（ｄ１））を示す。本例では図５に対応した値を示している。演算値５１３は、演算処理（Ｓ２）の結果の値（調整後の情報（ｄ３））を示す。本例では、演算処理（Ｓ２）の前の状態で演算値が未格納であることを示しているが、演算処理（Ｓ２）の実行に伴って値が格納される。
【００５８】
流入リンクリスト５１４は、前述（図４）した、当該ノードを矢先とするリンク（流入リンク）のリスト（リンクＩＤ値）である。流出リンクリスト５１５は、前述（図４）した、当該ノードを矢元とするリンク（流出リンク）のリスト（リンクＩＤ値）である。図５の例で言えば、ノードＮ２の流入リンクはＬＡ、流出リンクはＬＢ，ＬＩである。
【００５９】
例えば５０１で示すレコード（列）は、図５のノードＮ１のデータを示し、ＩＤ５１１は「１」（Ｎ１）であり、初期値５１２は、図３に示すＲ１のＣ駅における実績到着時刻３２５である「15:03」であり（なお実績情報が無い場合は計画情報を使用）、演算値５１３は未定であり、流入リンクリスト５１４は無しであり、流出リンクリスト５１５はリンクＬＡであることを示している。同様に５０２で示すレコード（列）は、ノードＮ２のデータに関し、初期値が「15:01」、流入リンクとしてＬＡ、流出リンクとしてＬＢ，ＬＩを有することを示す。
【００６０】
＜リンク＞
図７は、上記グラフデータｄ２で示されるリンクＬ（演算リンク）に関するデータ（ｄ２−２）の構成例（テーブル）を示す。このリンクのデータ（ｄ２−２）は、グラフデータｄ２内に含まれる。
【００６１】
本リンクのデータ（ｄ２−２）のテーブルにおいて、項目として、ＩＤ（リンクＩＤ）６１１、矢元演算ノードＩＤ６１２、矢先演算ノードＩＤ６１３、種別６１４、重み６１５、等を有する。その他、対応する列車ＩＤ，駅、等の情報を保有してもよい。
【００６２】
ＩＤ６１１は、リンクＬの固有ＩＤ（リンクＩＤ）を示す（前述のＬＡ等）。矢元演算ノードＩＤ６１２は、当該リンクの矢元となるノードのＩＤを示す。矢先演算ノードＩＤ６１３は、当該リンクの矢先となるノードのＩＤを示す。種別６１４は、当該リンクの種別を示し、矢元と矢先のノード間における時隔差（リンク重み）の発生の種別を示す。重み（重み値）６１５は、当該リンクにおける当該種別６１４に応じた上記時隔差の量（例えば［分］）を示す。
【００６３】
例えば、６０１で示す列のリンクＬＡでは、種別が駅停車であり、重みはＲ１のＣ駅の停車時分が１分であることを示す。６０２で示す列のリンクＬＢでは、種別が駅間走行であり、重みはＲ１のＣ駅−Ｂ駅間の走行時分が３分であることを示す。６０３で示す列のリンクＬＪでは、種別が出発続行であり、重みはＢ駅の列車（Ｒ１，Ｒ２）間の出発続行の時分が４分であることを示す。
【００６４】
＜演算リンク定義テーブル＞
図８は、演算リンク定義テーブル４２のデータ構成例を示す。本テーブルは、演算処理（Ｓ２）で用いるグラフデータｄ２のリンクＬ（演算リンク）の生成条件定義情報を保有するものである。この定義情報は、グラフデータｄ２における、リンクＬで結ばれる２つのノードＮ（矢元ノード、矢先ノード）の関係、及び当該２つノードの値（駅着発時刻）の間の時隔差を、リンク（重み）として定義する情報である。なお当該リンクの定義により、その矢元・矢先にあたるノードも併せて定義されることになる（７１２，７１３）。
【００６５】
本テーブル（４２）は、項目として、種別７１１、矢元演算ノード定義７１２、矢先演算ノード定義７１３、重み値定義７１４、等の項目を有する。種別７１１は、リンクＬの種別を示す（図７の種別６１４と対応関係）。例えば７０１の列の「駅停車」、７０２の列の「駅間走行」、７０３の列の「出発続行」等を有する。なお用語は既存の列車運行管理システム等で使用されている用語に従ったものである。
【００６６】
矢元演算ノード定義７１２は、当該リンクの矢元にあたる演算ノードの定義を示す。例えば、「駅到着時刻」（７０１）、「駅出発時刻」（７０２）、「（当該列車）出発時刻」（７０３）（当該列車（例えばＲ１）の駅出発時刻）、等がある。矢先演算ノード定義７１３は、当該リンクの矢先にあたる演算ノードの定義を示す。例えば、「駅出発時刻」（７０１）、「（次）駅到着時刻」（７０２）、「次発列車出発時刻」（７０３）（次発列車（例えばＲ２）の駅出発時刻）、等がある。
【００６７】
重み値定義７１４は、当該リンクＬの重み（値）（図７の重み（値）６１５に対応）の設定量の決定方法に関する定義を示す。例えば、「駅停車時分」（７０１）、「駅間走行時分」（７０２）、「出発続行時分」（７０３）、等がある。例えば、７０１の列では、種別７１１が「駅停車」、重み値定義７１４が「駅停車時分」であり、これは例えば図７の種別６１４が「駅停車」である６０１の列のリンクＬＡ等に関する定義を示している。当該リンクＬＡの重み（値）６１５が「駅停車時分」によって定義（決定）される。
【００６８】
本例でのグラフデータｄ２のノード及びリンクの定義に関してまとめると以下である。第１の定義（種別；駅停車）として、矢元ノードを駅到着時刻とし、矢先ノードを駅出発時刻とし、それらの時隔差である駅停車時間をリンク重み値とする。第２の定義（種別；駅間走行）として、矢元ノードを駅出発時刻とし、矢先ノードを次駅到着時刻とし、それらの時隔差である駅間走行時間をリンク重み値とする。第３の定義（種別；出発続行）として、矢元ノードを当該列車（先行列車）の駅出発時刻とし、矢先ノードを次発列車（後続列車）の駅出発時刻とし、それらの時隔差である列車間の出発続行時間（運行規制等のために確保する時間）をリンク重み値とする。
【００６９】
なお本例のテーブル（４２）では図５のグラフデータｄ２の例に対応して３つの種別（７１１）の定義のみ示しているが、運行計画（運行管理）で考慮する要素に応じて、グラフデータｄ２のノード間を定義する各種の種別を本テーブル（４２）で定義することができる。またこの定義情報は例えば管理者等により本システム（１０）に対して設定可能とする。
【００７０】
＜処理＞
図９を用いて、運行計画生成機能６１における演算実行部３２による処理（Ｓ２）の流れを説明する。本例では、前記図３，図５〜図８の例に対応して、列車Ｒ１のＣ駅への到着が標準の計画（初期値「15:00」）に対して３分遅れた場合（初期値「15:03」）の処理（Ｓ２）について説明する。
【００７１】
まずＳ１０では、本処理（Ｓ２）におけるマルチスレッド並列処理による演算処理（Ｓ３０）を実行する際の処理スレッド数（ｍとする）を決定（設定）する。本例では、ｍ＝２の場合とする。この数ｍは、本システム（１０）での予めの設定値としてもよいし、例えばユーザ（指令員、管理者等）５０により指定して設定・変更等を可能としてもよい。ユーザ設定可能とする場合は、情報提示機能６２を通じて画面で設定可能とすると好ましい。
【００７２】
次にＳ２０では、前記Ｓ１で生成したグラフデータｄ２中のノード（群）の中から、流入リンク（５１４）が存在しないノードを、演算ノード（処理対象ノード）として、演算ノードバッファ４３へと登録する。
【００７３】
例えば図５のグラフデータｄ２の例では、ノードＮ１，Ｎ６の２つが、流入リンクが無い矢元ノードであるため、Ｓ２０での登録対象となる。これらのノードは、グラフデータ構造（運行計画情報の構造）において、各列車（Ｒ１，Ｒ２）の走行の路線における起点側のノードに相当している。
【００７４】
次にＳ３０では、上記処理スレッド数（ｍ）の設定に応じたマルチスレッド並列処理による演算処理（各演算ノードの演算値を決定する処理）を実行する。複数（ｍ）の演算実行（処理スレッドＴ）として、Ｓ３１（Ｔ１），Ｓ３２（Ｔ２），……，Ｓ３３（Ｔｍ）を有し、これら複数（ｍ）の処理スレッドＴを、中央処理装置１１０（マルチプロセッサ）を用いて並列的に実行する。これにより各演算ノードの演算値（５１３）を決定する（前記６のノードのデータ（ｄ２−１）に演算値（５１３）を格納する）。各処理スレッドＴのステップでは、同一内容（同一アルゴリズム）の演算処理（処理対象ノード等はその都度異なる）をマルチスレッド方式に従って別スレッドとして並列に実行するものである。マルチスレッド並列処理により高速化を図れる。
【００７５】
本例では、ｍ＝２に従い２つのスレッド（Ｔ１，Ｔ２）を生成し、バッファ４３に登録（Ｓ２０）されている複数の演算ノード（例えばＮ１，Ｎ６）に関して、第１の演算ノード（例えばＮ６）に関する演算処理をＳ３１（スレッドＴ１）で実行し、第２の演算ノード（例えばＮ１）に関する演算処理をＳ８２（スレッドＴ２）で実行する、といった形になる。
【００７６】
最後にＳ４０では、Ｓ３０の演算処理で、バッファ４３のすべての演算ノードに関するすべてのスレッドＴの処理（即ち演算値の決定）が終了したかどうかを判定し、未終了のものがある場合はＳ３０の処理に戻り、すべて終了した場合は、本機能（６１）の処理を終了する。
【００７７】
＜演算処理（Ｓ３０）＞
図１０は、図９のマルチスレッドの演算処理（Ｓ３０）に関する詳細な処理フロー例を示す。本処理では、図６の演算ノードの初期値５１２（調整前の値）から演算値５１３（調整後の値）を決定する処理を行うものである。処理主体は演算実行部３２（中央処理装置１１０）である。本例では、図９同様に、第１の処理スレッドＴ１の演算処理（Ｓ３１）、及び第２の処理スレッドＴ２の演算処理（Ｓ３２）の場合とする。以下、一般化した処理と本具体例とを並行して説明する。
【００７８】
まずＳ３０１では、バッファ（演算ノードバッファ）４３に演算ノードが登録されているかどうかを判定し、登録されている演算ノードが有る場合には（Ｙｅｓ）、Ｓ３０２へ進み、無い場合には（Ｎｏ）、本処理（Ｓ３０）を終了する。
【００７９】
本例では、図５のノードＮ１，Ｎ６の２つの演算ノードが登録されている。よって、２つの処理スレッドＴ（Ｔ１，Ｔ２）で共に、Ｓ３０２へと処理を進める。
【００８０】
Ｓ３０２では、各処理スレッドＴにおいて、バッファ４３から、登録されている演算ノードを（演算のために）１つ取得すると共に、当該取得した演算ノードについてのバッファ４３側の登録情報を削除する。取得した演算ノードをここでは記号Ｘで表すとする。
【００８１】
本例では、第１の処理スレッドＴ１では、ノードＮ６を取得し、第２の処理スレッドＴ２では、ノードＮ６を取得し、取得した２つの演算ノードの情報をバッファ４３から削除したとする。
【００８２】
Ｓ３０３では、取得した演算ノードＸの流出リンクリスト５１４において存在する流出リンクが、すべて巡回済みであるかを判定し、すべて巡回済みである場合には（Ｙｅｓ）、Ｓ３０１へと処理を戻し、未巡回の流出リンクがある場合には（Ｎｏ）、Ｓ３０４へと処理を進める（なお巡回とは本処理フローのループ構造における巡回）。なお、ここでの巡回の有無とは、Ｓ３０４で巡回済みと設定されるか否かによって決定される。
【００８３】
本例では、第１のスレッドＴ１で取得したノードＮ６の流出リンクであるリンクＬＥ、及び、第２のスレッドＴ２で取得したノードＮ１の流出リンクであるリンクＬＡが共に、未巡回なので、Ｓ３０４へと処理を進めたとする。
【００８４】
Ｓ３０４では、Ｓ３０２で取得した演算ノードＸの流出リンクのうち、未巡回のリンク（ここでは区別のため記号Ｐで表すとする）を１つ取得して、巡回済みに設定する。
【００８５】
本例では、第１のスレッドＴ１では、リンクＬＥを巡回済みに設定し、第２のスレッドＴ２ではリンクＬＡを巡回済みに設定したとする。
【００８６】
Ｓ３０５では、Ｓ３０４で巡回済みとしたリンクＰの矢先側にある演算ノード（ここでは区別のため記号Ｙで表すとする）を取得する。即ち、矢元ノードＸに対してリンクＰでつながる矢先ノードＹを取得する。
【００８７】
本例では、第１のスレッドＴ１では、リンクＬＥの矢先ノードＮ７をＹとして取得し、第２のスレッドＴ２では、リンクＬＡの矢先ノードＮ２をＹとして取得する。
【００８８】
Ｓ３０６では、Ｓ３０５で矢先として取得した演算ノードＹの流入リンク（５１４）がすべて巡回済みかどうかを判定し、すべて巡回済みである場合には（Ｙｅｓ）、Ｓ３０７へと処理を進め、未巡回のリンクが有る場合には（Ｎｏ）、Ｓ３０３へと処理を戻す。
【００８９】
本例では、第１のスレッドＴ１で取得したノードＮ７には流入リンクとしてリンクＬＥとリンクＬＩがあり、リンクＬＩが未巡回であるので、Ｓ３０３へと処理を戻し、第２のスレッドＴ２で取得したノードＮ２の唯一の流入リンクであるリンクＬＡは巡回済みであるので、Ｓ３０７へと処理を進めたとする。
【００９０】
Ｓ３０７では、Ｓ３０５で取得した演算ノードＹの値（図６の演算値５１３）を決定する処理を、以下に示す式（式１）（所定のアルゴリズム）によって行う。
【００９１】
【数１】
2011218838.tif 000003
【００９２】
上記式で、Value（NodeN）は、ノードNの値（演算値）である。Max（A,B）は、AとBの最大値である。Max（∀ｉ：ｆ（ｉ））は、該当するすべてのｉに対してｆ（ｉ）を実行したときの最大値である。initialV(N)は、ノードＮの初期値である。ａは、ノードＮの流入リンクである。ｗ（ａ）は、リンク重みである。basenode（ａ）は、リンクａの矢元ノードである。
【００９３】
上記式では、該当のすべての流入リンクａに対して、ｗ（ａ）＋Value（basenode（ａ））の計算（リンクａ重みとリンクａ矢元ノードの演算値との加算）をしたときの、それらの計算値の最大値と、ノードＮの初期値（initialV(N)）と、における最大値をとる処理を行っている。
【００９４】
本例では、演算値の決定の対象となるノードＮ２の初期値（５１２）は「15:01」であり、流入リンクＬＡの重み（６１５）が１分であり、演算済みのノードＮの演算値（５１３）は「15:03」である。それら（Ｎ１演算値、ＬＡ重み）を加算するとその計算値は「15:04」となる。よって、２つの値（初期値「15:01」、計算値「15:04」）における最大値（「15:04」）が、ノードＮ２の演算値となる（図６の演算値５１３に格納）。
【００９５】
Ｓ３０８では、Ｓ３０５で取得した演算ノードＹ（Ｓ３０７で演算値の決定済み）を、バッファ４３へと登録する。そして前記Ｓ３０３へ進む（戻る）。
【００９６】
本例では、ノードＮ２をバッファ４３へ登録し、第１のスレッドＴ１及び第２のスレッドＴ２で共にＳ３０３へ進み、Ｓ３０２で取得したノードＮ６，Ｎ１で共に流出リンクが巡回済みであるので、Ｓ３０１へ戻る。以降、第１のスレッドＴ１が第２処理スレッドＴ２よりも若干早く処理した場合として説明を続けると、第１のスレッドＴ１では、Ｓ３０８で登録したノードＮ２を対象として同様の処理を継続し、第２のスレッドＴ２では、Ｓ３０１でバッファ４３が空と判定され処理が終了となる。なお、第２のスレッドＴ２の処理の方は、図９のＳ４０へ進み、全スレッドの処理が終了したか判定されるが、第１のスレッドＴ１の処理が継続中であるため、再度Ｓ３０へ戻り処理が継続されることになる。
【００９７】
上記のような処理に従い、図５の例で言えば、Ｒ１の系列とＲ２の系列で、それぞれ、各リンクの矢元側から矢先側へ処理が流れる形で、各ノード（Ｎ１〜Ｎ１０）の演算値が順に決定されてゆき、最後、ノードＮ５，Ｎ１０の値が決定されると、本処理（Ｓ３０）が終了する。これにより得られた各演算値（５１３）は、図２の（調整後）運行計画情報ｄ３として出力される。
【００９８】
＜効果等＞
以上説明したように、本実施の形態によれば、上記列車の運転整理業務の支援等を行うシステムにおける運行計画の調整等の処理に関して、高速化を実現できる。これにより、運転整理業務を司る者（指令員）の負担を軽減し、技量の高度化を推進することができ、列車運行を適切に制御することに寄与できる。
【００９９】
特に、上記処理（演算）の実行にあたり、処理対象とする列車本数などの情報データ量が増大する場合などであっても、本形態によれば、マルチスレッド演算処理（並列処理）の実行の処理スレッド数を増やすことにより、運転整理業務で必要とされる情報提供機能のレスポンスの高速化などを実現できる。
【０１００】
より具体的には、次の通りである。即ち、列車の運行計画情報を表現したグラフデータｄ２及びそのマルチスレッドの演算処理（Ｓ３０）などを特徴とする構成によって、従来技術に比べて処理高速化が実現できる。即ち、指令員５０への情報提示機能６２（調整後の運行計画情報ｄ３の表示）のレスポンスの高速化などが実現できる。これにより運転整理業務の効率化、指令員５０の負担の軽減、などが実現できる。
【０１０１】
また特に、上記演算実行（Ｓ２）にあたり、処理対象とする列車１３の本数などの情報データ量が増大する場合などであっても、本形態では、処理スレッド数（ｍ）を増やすことにより処理性能を調節でき、運転整理業務で必要とされるレスポンスの高速化を実現できる。
【０１０２】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【符号の説明】
【０１０３】
１０…運転整理支援システム、１１…ネットワーク、１２…駅設備、１３…列車、２０…ＣＴＣシステム、２１…運行実績取得部、２２…運行計画指示部、３１…グラフデータ生成部、３２…演算実行部、４１…ダイヤデータテーブル、４２…演算リンク定義テーブル、４３…バッファ（演算ノードバッファ）、５０…ユーザ（指令員等）、６１…運行計画生成機能（調整機能）、６２…情報提示機能、１００…計算機システム（運転整理支援装置）、１１０…中央処理装置、１２０…記憶装置、１３０…入力装置、１４０…表示装置（出力装置）、ｄ０…ダイヤデータ、ｄ１…（調整前）運行計画情報、ｄ２…グラフデータ、ｄ３…（調整後）運行計画情報。
【図１】
2011218838.tif 000004
【図２】
2011218838.tif 000005
【図３】
2011218838.tif 000006
【図４】
2011218838.tif 000007
【図５】
2011218838.tif 000008
【図６】
2011218838.tif 000009
【図７】
2011218838.tif 000010
【図８】
2011218838.tif 000011
【図９】
2011218838.tif 000012
【図１０】
2011218838.tif 000013