(57)【特許請求の範囲】
【請求項１】
運行計画のダイヤデータを格納するダイヤデータテーブル、列車運行に関する制約条件として考慮すべき２つの着発時刻間の時隔差を定義するリンク定義テーブル、列車の運行状況を表すグラフデータを格納するグラフデータテーブルを有するデータベースと、
格納された該ダイヤデータに対応したダイヤ図を表示装置に表示するダイヤ図表示部と、
該ダイヤデータテーブルに格納された該列車ダイヤデータを用いて、該リンク定義テーブルにより規定される定義に従って、列車ダイヤの着発時刻をノード、２つの着発時刻間の時隔差をリンクとしたグラフデータを生成するグラフデータ生成部と、
該ダイヤデータテーブル内のダイヤデータ又はユーザーによる入力装置からの運転整理入力結果から、デッドロックとなる箇所を検出するデッドロック判定部と、
デッドロックの解消や遅延回復のためのユーザーによる入力装置からの運転整理入力前後のダイヤデータを用いて該グラフデータ生成部により生成され格納された該グラフデータから、条件節をデッドロック又は遅延の原因及び遅延状況、実行節をダイヤ変更内容とするIF-THEN形式のルールを抽出する運転整理ルール生成部と、
運転整理案の自動生成及び現在時刻以降の列車運行予測のシミュレーション演算を実行する列車運行シミュレーション実行部と、
前記列車運行シミュレーション実行部により算出したダイヤデータに対し、前記運転整理ルール生成部にて生成した運転整理ルールを適用し、条件節を満たす列車に対して実行節に示す列車ダイヤデータの変更を実行する運転整理ルール実行部を有し、
前記運転整理ルール生成部は、デッドロック解消のための該入力装置からのユーザーによる運転整理入力から解消したデッドロックの構造を抽出して運転整理ルールの条件節とするか、あるいは遅延回復のための該入力装置からのユーザーによる運転整理入力から遅延回復した列車の遅延原因となる列車と遅延原因となる運行条件を抽出して運転整理ルールの条件節とし、
該運転整理ルール実行部により変更された、前記ダイヤデータテーブル内の該列車ダイヤデータに対応するダイヤ図を、該ダイヤ図表示部の制御により表示装置に表示する
ことを特徴とする運転整理支援システム。
【請求項２】
前記運転整理ルール生成部は、条件節をデッドロック又は遅延の原因及び遅延状況、実行節をダイヤ変更内容とするIF-THEN形式のルールを自動抽出し、ユーザーによる該入力装置からの入力により、条件節の列車種別、駅、又は、実行節の内容を追加、削除可能とすることを特徴とする、請求項１に記載の運転整理支援システム。
【請求項３】
前記運転整理ルール実行部は、前記運転整理ルール生成部により生成した駅や列車番号を特定しないIF-THEN形式の運転整理ルールについて、条件節に合致する列車に実行節のダイヤ変更を実行したときにデッドロックとならない箇所についてダイヤ変更を適用することを特徴とする、請求項１に記載の運転整理支援システム。
【請求項４】
請求項１に記載の運転整理支援システムであって、
前記データベースは、デッドロックや遅延の原因を含む運転整理ルールを採用率、実行有無と共に格納する運転整理ルールテーブルを有し、
更に、該運転整理ルールテーブルを参照して、該表示装置に表示された変更後のダイヤに対するユーザーによる該入力装置から入力された運転整理ルールの採用率を算出し、実行する運転整理ルールを分析する運転整理ルール分析部を有し、
運転整理ルール分析部によって算出した採用率に基づいて決められた該運転整理ルールについて、前記運転整理ルール実行部により運転整理ルール実行処理を行い、運転整理案の自動提案を行うことを特徴とする運転整理支援システム。
【請求項５】
列車の運転計画のダイヤデータ又はユーザーによる入力装置からの運転整理入力結果から、デッドロックとなる箇所を検出するデッドロック判定ステップと、
列車運行に関する制約条件として考慮すべき2つの着発時刻間の時隔差を定義するリンク定義テーブルによる定義に従って、列車ダイヤの着発時刻をノード、２つの着発時刻間の時隔差をリンクとしたグラフデータを生成するグラフデータ生成ステップと、
デッドロックの解消や遅延回復のためのユーザーによる入力装置からの運転整理入力前後のダイヤデータを用いて該グラフデータ生成ステップにより生成されたグラフデータから、条件節をデッドロック又は遅延の原因及び遅延状況、実行節をダイヤ変更内容とするIF-THEN形式のルールを抽出する運転整理ルール生成ステップと、
運転整理案の自動生成及び現在時刻以降の列車運行予測のシミュレーション演算を実行する列車運行シミュレーション実行ステップと、
該列車運行シミュレーション実行ステップにより算出したダイヤデータに対し、前記運転整理ルール生成部にて生成した運転整理ルールを適用し、条件節を満たす列車に対して実行節に示す列車ダイヤデータの変更を実行する運転整理ルール実行ステップと、
該運転整理ルール実行ステップにより変更された列車ダイヤデータに対応するダイヤ図を、表示装置に表示するステップとを有し、
前記運転整理ルール生成ステップにおいて、デッドロック解消のための該入力装置からのユーザーによる運転整理入力から解消したデッドロックの構造を抽出して運転整理ルールの条件節とするか、あるいは遅延回復のための該入力装置からのユーザーによる運転整理入力から遅延回復した列車の遅延原因となる列車と遅延原因となる運行条件を抽出して運転整理ルールの条件節とする
ことを特徴とする運転整理支援方法。
【請求項６】
更に、デッドロックや遅延の原因を含む運転整理ルールを採用率、実行有無と共に格納する運転整理ルールテーブルを参照して、該表示装置に表示された変更後のダイヤに対するユーザーによる該入力装置から入力された運転整理ルールの採用率を算出し、実行する運転整理ルールを分析する運転整理ルール分析ステップを有し、
運転整理ルール分析ステップによって算出した採用率に基づいて決められた該運転整理ルールについて、前記運転整理ルール実行ステップにより運転整理ルール実行処理を行い、
運転整理案の自動提案を行うことを特徴とする請求項５に記載の運転整理支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、運転整理支援システム及びその方法に係り、特に、列車ダイヤの運転整理業務において運行乱れを復旧する際の入力作業を軽減しつつ、運転整理案の自動生成を実行する運転整理支援システム及びその方法に関する。
【背景技術】
【０００２】
近年、鉄道分野においては、列車ダイヤの超高密度化、車両・車種の多様化、線区間相互乗り入れ運転の増加等の原因により、列車の運行計画、車両や乗務員の運用計画等を作成する計画業務が複雑化している。鉄道事業者には、列車運行を安全かつ定刻で旅客に提供することが求められているが、鉄道利用の問題点の一つとして、運行が乱れた際、復旧までに時間がかかることが挙げられる。列車運行に乱れが生じたときは、それに対して適切な変更を行って、列車の運行を正常にするような列車ダイヤを作成する必要がある。この業務は運転整理と呼ばれ、指令員と呼ばれる熟練者が中心となって運転整理を行っている。運転整理業務は手作業主体で行われていたが、業務の複雑化、ベテラン指令員の減少により、運転整理業務のシステム化及び計算機による支援のニーズが高まっている。
【０００３】
従来、運転整理の自動化に関するものとして、例えば特許文献１及び２に記載された技術が知られている。特許文献１に記載の技術は、運行乱れ時におけるユーザーの操作から、条件節を列車の運行遅延及び走行進路、実行節をダイヤ変更内容とするIF-THEN形式のルールを生成し、算出したダイヤデータに対し、生成した運転整理ルールを適用する。また、特許文献２に記載のものは、所定の設定時間以上遅れた部分毎に自動で運転整理を実施する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１８８７５０公報
【特許文献２】特開平８−５８５９２公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献1に記載の技術は、遅延の原因をルールとして抽出することができないため、異なる原因で遅延している列車や運転整理の必要のない列車に対してまで運転整理ルールを適用し、ユーザーの意図と異なる運転整理案を自動提案する可能性がある。また特許文献２に記載の技術は、遅延原因列車の遅延を加味しているが、ルールが固定されているため、指令員の新たな意図に柔軟に対応できない。また、これらの技術は何れもデッドロックのないダイヤを想定しているため、列車運行が不可能であるデッドロックを解消させるというユーザーにとって必須の運転整理に対応していない。運転整理後にデッドロックとなる場合も加味していないため、デッドロックとなる運転整理案を提案する可能性がある。適用時に必ずデッドロックとならないようなルールでは、ルールの条件が多く、ルールとしての汎用性がなくなってしまうことも考えられる。
【０００６】
本発明は、上記の課題に鑑み、ユーザー（指令員）によるデッドロックの解消や遅延回復のための運転整理入力から、デッドロックや遅延の原因を含む運転整理ルールを抽出する運転整理支援システム及びその方法を実現することにある。
本発明はまた、運転整理ルールの条件節に合致する列車に実行節の運転整理を実施した場合にデッドロックとならないものに対して自動的に運転整理を実施することにある。
本発明はまた、抽出した運転整理ルールや自動で実施した運転整理内容をユーザーが編集・取り消し可能であり、ユーザーの編集結果を運転整理の自動提案に適用することにある。
【課題を解決するための手段】
【０００７】
本発明による運転整理支援システムは、好ましくは、運行計画のダイヤデータを格納するダイヤデータテーブル、列車運行に関する制約条件として考慮すべき2つの着発時刻間の時隔差を定義するリンク定義テーブル、列車の運行状況を表すグラフデータを格納するグラフデータテーブル、および、デッドロックや遅延の原因を含む運転整理ルールを格納する運転整理ルールテーブルを有するデータベースと、
格納された該ダイヤデータに対応したダイヤ図を表示装置に表示するダイヤ図表示部と、
該ダイヤデータテーブルに格納された該列車ダイヤデータを用いて、該リンク定義テーブルにより規定される定義に従って、列車ダイヤの着発時刻をノード、２つの着発時刻間の時隔差をリンクとしたグラフデータを生成するグラフデータ生成部と、
該ダイヤデータテーブル内のダイヤデータ又はユーザーによる入力装置からの運転整理入力結果から、デッドロックとなる箇所を検出するデッドロック判定部と、
デッドロックの解消や遅延回復のためのユーザーによる入力装置からの運転整理入力前後のダイヤデータを用いて該グラフデータ生成部により生成され格納された該グラフデータから、条件節をデッドロックや遅延の原因及び遅延状況、実行節をダイヤ変更内容とするIF-THEN形式のルールを抽出する運転整理ルール生成部と、
運転整理案の自動生成及び現在時刻以降の列車運行予測のシミュレーション演算を実行する列車運行シミュレーション実行部と、
前記列車運行シミュレーション実行部により算出したダイヤデータに対し、前記運転整理ルール生成部にて生成され格納された該運転整理ルールテーブル内の運転整理ルールを適用し、条件節を満たす列車に対して実行節に示す列車ダイヤデータの変更を実行する運転整理ルール実行部を有し、
該運転整理ルール実行部により変更された、前記ダイヤデータテーブル内の該列車ダイヤデータに対応するダイヤ図を、該ダイヤ図表示部の制御により表示装置に表示することを特徴とする運転整理支援システムとして構成される。
【０００８】
また、本発明に係る運転整理支援方法は、好ましくは、列車の運転計画のダイヤデータ又はユーザーによる入力装置からの運転整理入力結果から、デッドロックとなる箇所を検出するデッドロック判定ステップと、
列車運行に関する制約条件として考慮すべき2つの着発時刻間の時隔差を定義するリンク定義テーブルによる定義に従って、列車ダイヤの着発時刻をノード、２つの着発時刻間の時隔差をリンクとしたグラフデータを生成するグラフデータ生成ステップと、
デッドロックの解消や遅延回復のためのユーザーによる入力装置からの運転整理入力前後のダイヤデータを用いて該グラフデータ生成ステップにより生成されたグラフデータから、条件節をデッドロックや遅延の原因及び遅延状況、実行節をダイヤ変更内容とするIF-THEN形式のルールを抽出する運転整理ルール生成ステップと、
運転整理案の自動生成及び現在時刻以降の列車運行予測のシミュレーション演算を実行する列車運行シミュレーション実行ステップと、
該列車運行シミュレーション実行ステップにより算出したダイヤデータに対し、前記運転整理ルール生成部にて生成した運転整理ルールを適用し、条件節を満たす列車に対して実行節に示す列車ダイヤデータの変更を実行する運転整理ルール実行ステップを有し、
該運転整理ルール実行ステップにより変更された列車ダイヤデータに対応するダイヤ図を、表示装置に表示するステップを有することを特徴とする運転整理支援方法として構成される。
【発明の効果】
【０００９】
本発明によれば、デッドロックの解消や遅延回復のための指令員による運転整理入力前後の列車運行状況を示すダイヤデータを基に、運転整理ルールをデッドロックや遅延の原因と共に抽出し、ルールを計算機の中で活用することで、ユーザーのダイヤ変更の手動入力操作を補助し、運転整理案作成支援を実現することができる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態による運転整理支援システムの構成を示す図。
【図２】一実施形態による運転整理支援システムの処理フローを示す図。
【図３】一実施形態によるダイヤ図例及び、ダイヤ図例に示すダイヤデータに対するグラフを示す図。
【図４】一実施形態によるダイヤデータテーブル1210のデータ構成を示す図。
【図５】一実施形態によるグラフデータテーブル1230にて示すノード情報のデータ構成を示す図。
【図６】一実施形態によるグラフデータテーブル1230にて示すリンク情報のデータ構成を示す図。
【図７】一実施形態によるリンク定義テーブル1220のデータ構成を示す図。
【図８】図２のステップＳ2300の運転整理処理の処理フローを示す図。
【図９】図８のステップＳ8300の運転整理ルール抽出処理の処理フローを示す図。
【図１０】一実施形態によるデッドロック解消ルールが抽出される運転整理入力例を示す図。
【図１１】一実施形態による運転整理ルールテーブル1230のうちのデッドロック解消ルールのテーブル構成を示す図。
【図１２】一実施形態による遅延解消ルールが抽出される運転整理入力例を示す図。
【図１３】一実施形態による運転整理ルールテーブル1230のうちの遅延回復ルールのテーブル構成を示す図。
【図１４】図８のステップＳ8600の運転整理ルール実行処理の処理フローを示す図。
【図１５】図１４のステップＳ14200のデッドロック解消ルール実行処理の処理フローを示す図。
【図１６】図１４のステップＳ14300の遅延回復ルール実行処理の処理フローを示す図。
【発明を実施するための形態】
【００１１】
以下、本発明に係る一実施形態について図面を参照して説明する。
図1は、一実施形態による、鉄道運行システムに適用した場合の運転整理支援システムの構成を示す。
運転整理支援システムは計算機システムとして構成され、プログラムを実行する処理装置1100、記憶装置内に形成され種々のデータを記憶するデータベース（ＤＢ）1200、ユーザーによるデータ入力を受ける入力装置1300、システムの処理結果を含む種々のデータを表示する表示装置1400を有して構成される。
【００１２】
処理装置1100は、所定のアプリケーションプログラムを実行することで、以下の処理機能を実現する。即ち、処理装置1100は、処理機能として、列車の運行状況を表すダイヤデータテーブル（図４）に格納された列車ダイヤデータをダイヤ図として表示装置1400に表示するダイヤ図表示部1110、列車ダイヤデータを用いて、列車ダイヤの着発時刻をノード、2つの着発時刻間の時隔差をリンクとしたグラフデータを生成し、グラフデータテーブル（図５）に格納するグラフデータ生成部1120、ダイヤデータテーブル内のダイヤデータ又はユーザーによる入力装置からの運転整理入力結果からデッドロックとなる箇所を検出するデッドロック判定部1130、デッドロックの解消や遅延回復のためにユーザーによって入力装置1300から入力される運転整理入力から、条件節をデッドロックや遅延の原因及び遅延状況、実行節をダイヤ変更内容とするIF-THEN形式のルールを抽出する運転整理ルール生成部1140、運転整理案の自動生成や現在時刻以降の列車運行予測のシミュレーション演算を実行する列車運行シミュレーション実行部1150、列車運行シミュレーション実行部1150により算出されたダイヤデータに対し、運転整理ルール生成部1140にて生成された運転整理ルールを適用して、条件節を満たす列車に対して実行節に示すダイヤ変更を実行してダイヤ図を表示装置に表示する運転整理ルール実行部1160、表示装置に表示されたダイヤ図に対して、ユーザーにより入力装置1300から入力されるダイヤ変更に関するデータ入力に対する運転整理ルールの採用率を算出し、実行する運転整理ルールを分析する運転整理ルール分析部1170を有する。なおここで、デッドロックとは、列車の運行条件が矛盾していることをいい、例えば複数の列車が同じ番線を共有して、列車が正常に運行できない状態に陥るこという。
【００１３】
データベース1200は、運行計画のダイヤデータを格納するダイヤデータテーブル1210と、列車運行に関する制約条件として考慮すべき2つの着発時刻間の時隔差を定義するリンク定義テーブル1220と、グラフデータ生成部1110にて生成されるグラフデータを格納するグラフデータテーブル1230と、運転整理ルール生成部1140で生成される運転整理ルールを、運転整理ルール分析部にて算出された採用率、実行有無と共に格納する運転整理ルールテーブル1240を有する。後述するが、この運転整理ルールにはデッドロック解消ルールも含まれる。
入力装置1300は、計算機システムで用いられるマウスやキーボードなど入力デバイスであり、表示装置1400はディスプレイなどの出力デバイスである。
【００１４】
図２は、図１に示した運転整理支援システムにおける処理フローを示す。
ステップ（Ｓ）2100では、グラフデータ生成部1120を用いて、ダイヤデータテーブル1210に格納された列車ダイヤデータより、列車ダイヤの着発時刻をノードとし、2つの着発時刻間の時隔差をリンクとするグラフデータを生成し、ノード情報を格納したテーブルとリンク情報を格納したテーブルをグラフデータテーブル1230に格納する。
Ｓ2200では、ダイヤデータテーブル1210に格納された列車ダイヤデータを、横軸を時刻、縦軸を走行位置として2次元座標上に直線集合、すなわちダイヤ図形式で表示装置1400に表示する。
ここで、図３乃至図７を参照して、ダイヤ図及び各種テーブルの構成について説明する。（なお、Ｓ2300以降の処理については、各種テーブルの説明をした後で、図８以降の図面を参照して述べる。）
図３はダイヤ図例及び、ダイヤ図例に示すダイヤデータに対するグラフを示す。
ダイヤ図3100は列車bレがK駅の1番線に到着し、列車cレとして出発した後、列車aレが異方向からK駅の1番線に到着し、列車cレと同じ方向に出発するという運行状況を表している。線分3101、線分3102、線分3103はそれぞれ列車bレ、列車cレ、列車aレの走行を表している。列車aレのK駅到着前の線分の傾きが著しく小さいのは、遅延している列車bレの到着、列車cレの出発を待ち、K駅の1番線到着前に駅間で停車している、または徐行していることを表している。
【００１５】
ダイヤ図3100の運行状況をグラフとして表したものを3200に示す。ノードは、列車aレの到着を示すノード3201、列車aレの出発を示すノード3202、列車bレの到着を示すノード3203、列車cレの出発を示すノード3204が存在し、ノード間のリンクとして、列車aレの停車を表すリンク3301、列車bレから列車cレへの折り返しを表すリンク3302、K駅を列車cレの出発後列車aレが出発するという出発順序を表すリンク3303、1番線を列車cレが使用後に列車aレが使用する、すなわち、1番線を列車cレが出発した後列車aレが進入するという番線使用順序を表すリンク3304が存在する。なお、ここでは時刻を示す値の表記を省略している。
【００１６】
図４はダイヤデータテーブル1210のテーブル構成を示す。ダイヤデータテーブル1210は1本の列車を1レコードとして管理する。各レコードは、列車の固有IDを示す列車番号4100、列車が走行する駅の名称や着発時刻に関する項目を持つ駅情報部の項目を有する。駅情報部は1駅分の情報(以下駅情報)を1つのブロックとして管理し、駅情報を走行順に並べて有している。従って、レコードの最初のブロックが始発駅に関する駅情報を示し、レコードの最後のブロックが終着駅に関する駅情報を示しており、始発から終着に至るまでの全ての駅の駅情報が１つのレコードに記憶されている。
【００１７】
駅情報には、駅の名前を示す駅名4210、計画時における到着時刻、出発時刻、使用番線を示す計画到着時刻4220、計画出発時刻4230、計画使用番線4240、列車運行シミュレーション実行部1150にて算出した到着時刻、出発時刻、使用番線を示す運転整理到着時刻4250、運転整理出発時刻4260、運転整理使用番線4270の項目が含まれる。なお、列車が駅を通過する場合は、計画到着時刻4220、運転整理到着時刻4250には無効値が格納される。レコード4201はaレのK駅走行時の走行情報を示し、計画到着時刻4220が10:20、計画出発時刻4230が10:21であるが、運転整理到着時刻は20分遅延し、運転整理到着時刻4250が10:40、運転整理出発時刻4260が10:41であることを示している。
【００１８】
図５はグラフデータテーブル1230にて示すノード情報のデータ構成を示す。
このテーブルは1つのノードを1レコードとして管理する。各レコードは、ノード固有のIDを示すID5110、列車番号5120、駅名5130、ノードの着発区別を示す着発5140、ノードを始点とするリンクのリストである流出リンクリスト5150、ノードを終点とするリンクのリストである流入リンクリスト5160、計画時刻を格納し、列車運行シミュレーション演算に利用する初期値5170、列車運行シミュレーション演算結果を格納する演算値5180の項目を有する。
【００１９】
レコード5210は図３のノード3201のデータを示しており、ID5110が1、列車番号5120がaレ、駅名5130がK駅、着発5140が着、流出リンク5150は図３のIDがＡのリンク3301、流入リンク5160は図３中のIDがDのリンク3304であることを示している。なお、図３のグラフ3200では省略しているが、初期値5170が図４におけるaレK駅の計画到着時刻10:20、演算値5180が図４におけるaレK駅の運転整理到着時刻10:40であることを示している。また、レコード5220は図３中のノード3203のデータを示しており、ID5110が3、列車番号5120がbレ、駅名5130がK駅、着発5140が着、流出リンク5150は図３のIDがBのリンク3302、流入リンク5160はなし、初期値5170が図4におけるbレK駅の計画到着時刻10:00、演算値5180が図４におけるbレK駅の運転整理到着時刻10:40であることを示している。
【００２０】
図６はグラフデータテーブル1230にて示すリンク情報のデータ構成を示す。
このテーブルは1つのリンクを1レコードとして管理する。各レコードは、リンク固有のIDを示すID6110、リンクの始点となるノードのIDを示す元ノードID6120、終点となるノードのIDを示す先ノードID6130、始点、終点のノードにおける時隔の発生種別を示す運行条件6140、時隔の最小値を示す重み6150、列車運行シミュレーション演算結果の元ノードと先ノードの演算値5180の差を示す演算値6160の項目を有する。
【００２１】
図７はリンク定義テーブル1220のテーブル構成を示す。
このテーブルは、列車運行に関する制約条件として考慮すべき２つの着発時刻間の時隔差を定義するものである。リンク定義テーブル1220は、リンクで結ばれる始点と終点のノードの関係、リンクの表す運行条件を定義したデータを格納する。運行条件7110はリンクの表す運行条件、始点ノード7120はリンクの始点にあたるノードの定義となる着発時刻、終点ノード7130はリンクの終点にあたるノードの定義となる着発時刻、重み定義7140は重み決定の際の定義を表す。この例では３つの運行条件を記述しているが、２つのノード間の条件を定義する運行条件であれば、適宜その運行条件を追加することで、このテーブルによって定義することができる。このテーブルは、図６に示すリンク情報を生成する際に用いるものである。
【００２２】
図６に戻り、グラフデータテーブル1230にて示すリンク情報のデータ構成の説明を続ける。レコード6210は図３のリンク3301のデータを示し、ID6110がＡ、元ノードID6120が列車aレのK駅到着時刻を示すID1のノード3201、先ノードID6130が列車aレのK駅出発時刻を示すID2のノード3202、運行条件6140は図７のレコード7220で示す停車条件、重み6150と演算値6160は列車aレのK駅停車時分の1であることを示す。重み6150と演算値6160が同じ値であることは、ID2である先ノード3202の演算値5180が本IDAのリンク、すなわち停車条件によって決定したことを示している。
【００２３】
レコード6220は図３中のリンク3304のデータを示し、ID6110がD、元ノードID6120が列車cレのK駅出発時刻を示すID4のノード3204、先ノードID6130が列車aレのK駅到着時刻を示すID1のノード3201、運行条件6140は図７のレコード7230で示す番線使用順序、重み6150と演算値6160はK駅1番線における列車cレと列車aレ間の番線使用時隔の5であることを示す。重み6150と演算値6160が同じ値であることは、ID1である先ノード3201の演算値5180が本IDDのリンク、すなわち番線使用順序によって決定したことを示している。
ここで、図２に戻り、本運転整理支援システムにおける処理フローの説明を続ける。Ｓ2200にてダイヤ図を表示した後、Ｓ2300にて運転整理処理を実行する。
【００２４】
図８は図２に示すＳ2300の運転整理処理の流れを示す。Ｓ8100ではユーザーによる運転整理入力（例えば番線変更や出発順序変更）が存在するかどうか判定し、存在する場合はＳ8200へ進み、存在しない場合はＳ8110へ進む。Ｓ8200では図1に示す運転整理ルール生成部1140を用いてユーザーによる入力装置からの運転整理入力から運転整理ルールを生成する。
【００２５】
図９は、図1の運転整理ルール生成部1140の処理の流れを示す。
Ｓ9100では、ユーザーによる運転整理入力により変更となった列車ダイヤデータに対してグラフデータテーブル1230を更新する。Ｓ9200では、更新後のグラフデータテーブルに対してデッドロック判定部1130において、ユーザーによる入力装置1300からの運転整理入力によりデッドロック箇所が増加したかどうかを判定する。デッドロック箇所が増加しなかった場合はＳ9300へ進む。デッドロック箇所が増加した場合はＳ9210へ進み、運転整理ルールを抽出しないとして運転整理ルール生成部1140の処理を終了する。
【００２６】
デッドロックとなる箇所を検出するデッドロック判定部1130の処理については、一般的にグラフの強連結成分分解を用いるアルゴリズムが存在するため、ここではそのアルゴリズムを用いることとする。Ｓ9300では、前述の更新後のグラフデータテーブルに対してデッドロック判定部1130においてデッドロック箇所が減少したかどうかを判定する。デッドロック箇所が減少しなかった場合はＳ9400へ進む。デッドロック箇所が減少した場合はＳ9310へ進み、運転整理入力により解消したデッドロックの構造を条件節、実行したダイヤ変更内容を実行節としたIF-THEN形式のデッドロック解消ルールを運転整理ルールとして抽出し、運転整理ルール生成部1140の処理を終了する。
【００２７】
図9におけるＳ9310のデッドロック解消ルール抽出例を、図１０に示す。ダイヤ図10100は、デッドロックとなる例を示している。列車aレの運行を表す線分は、aレがＰ駅の1番線に到着し、Ｐ駅にしばらく停車した後に出発することを表している。列車bレの運行を表す線分は、bレがaレよりも早くＰ駅の1番線に到着し、しばらく停車した後、aレよりも遅くＰ駅を出発することを表している。
本例は、同じ番線を共有し、デッドロックとなっていることを表している。グラフ10110は、本例の運行状況を表したグラフのうち、デッドロックの構造を表す部分を示す。なお、ここでは列車番号と着発、運行条件以外の表記を省略している。本例のデッドロックは、aレの着発間を結ぶ停車リンクと、aレとbレの出発順序を表すリンクと、aレとbレの番線使用順序を表すリンクがデッドロックを起こしているという構造である。
【００２８】
ダイヤ図10200は、ダイヤ図10100の示す列車運行に運転整理入力を行い、aレの使用番線を変更した後の運行状況を示す。使用番線が変更となったためデッドロックは解消し、運行可能となっている。番線が変更されたため、グラフにおける番線使用順序リンクが変更となり、グラフ10210に示すように番線使用順序リンクが消え、デッドロックが解消されていることがわかる。本例では「番線使用順序から始まり、番線使用順序、停車、出発順序の順に構成されるデッドロックであるならば、番線変更を行う」というデッドロック解消ルールを抽出する。
【００２９】
図１１は、図1に示す運転整理ルールテーブル1240にて示す運転整理ルール情報のうちのデッドロック解消ルールについてのデータ構成を示す。
このテーブルは1つのデッドロック解消ルールを1レコードとして管理する。各レコードは、ルールの固有のIDを示すルールID11100、ルールの条件節を示す条件11200、ルールの実行節となるダイヤ変更内容を示す実行内容11300、ルール実行時に条件に合致する列車に対して実行節のダイヤ変更を実施可能であったものの累積数を示す該当数11400、条件節に合致し実施可能であった変更箇所のうちユーザーの確認により実際に採用された箇所の累積数を示す採用数11500、採用数11500を該当数11400で割ることで算出した値を示す採用率11600、ルールを実行するかどうかを示す実行11700の項目を有する。
【００３０】
条件11200は、変更対象を示すリンクの条件を示す基準リンク条件11210とデッドロックを構成するリンクの集合を示すデッドロックリンク集合11220からなる。デッドロックリンク集合は1つのリンクを1レコードとして管理するテーブルであり、各レコードはデッドロックの構成を示すリンクの接続の順序を示す接続順序11221、リンクの運行条件を示すリンク条件11222の項目を有する。
該当数11400、採用数11500、採用率11600はルールが適用されるたびに更新される値であり、新規にルールを生成する際は初期値として0を格納する。レコード11001は図10にて抽出されるデッドロック解消ルールを示し、ルールID11100が1、条件11200の基準リンク条件11210が、実行内容11300が番線変更であることから抽出する番線使用順序、デッドロックリンク集合11220は、接続順序11221の順にリンク条件11222が番線使用順序、停車、出発順序であるリンク、実行内容11300が番線変更、該当数11400が20、採用数11500が18、採用率11600が0.9、実行11700が「○」、すなわち「実行する」であることを示している。
【００３１】
図９に戻り、図1に示す運転整理ルール生成部1140の処理の流れの説明を続ける。Ｓ9400では、ユーザーによる運転整理入力前後のグラフデータテーブルを比較し、運転整理入力前に存在した遅延が運転整理入力後に回復しているかどうか判定し、回復している場合はＳ9500へ進む。回復していない場合はＳ9210へ進み、運転整理ルールは抽出しないとして運転整理ルール生成部1140の処理を終了する。
Ｓ9500では、運転整理入力前に存在し入力後に回復した遅延の原因となる列車を特定する。原因列車の特定は、運転整理入力前後のグラフデータテーブルを比較し、次の６条件を満たす運転整理入力前のリンクの元ノードの示す列車と特定する。すなわち、ある駅において計画から規定の時間だけ遅延しており、かつ、その遅延が影響して他の列車にも遅延を発生させている列車のうち、遅延の連鎖の出発点となっている列車を原因列車と特定する。6条件を満たすリンクが存在しない場合は原因列車を特定不可能とする。
【００３２】
（１）運転整理入力前後で向きや順序が変更されている。
（２）運転整理入力前の先ノードが、運転整理入力によりダイヤ変更が実施された列車、駅に対するノードである。
（３）運転整理入力前の重み6150と演算値6160が同じ値、すなわち、ノードの演算値を決定している。
（４）運転整理入力前の先ノードの当該リンク以外の流入リンクの重み6150と演算値6160が運転整理入力前後で差が小さくなっている。
（５）運転整理入力前後で先ノードの演算値5180と初期値5170の差が小さくなっている。
（６）運転整理入力前の元ノードの演算値5180が初期値5170よりも一定量だけ大きい。ここで、一定量とは遅延として事前に定める定数とする。
【００３３】
なお、原因列車は当該リンクの示す運行条件6140とともに抽出することとする。Ｓ9600では、Ｓ9500にて原因列車が特定できたかどうかを判定する。特定できた場合はＳ9700へ進み、特定できた原因列車を抽出した運行条件とともにルールの条件としてＳ9900へ進む。Ｓ9600にて原因列車を特定できなかった場合はＳ9800へ進み、条件をユーザーにより手動で設定し、Ｓ9900へ進む。Ｓ9900では、Ｓ9700またはＳ9800で定めた条件を条件節、運転整理入力により実行したダイヤ変更内容を実行節としたIF-THEN形式の遅延回復ルールを運転整理ルールとして抽出し、運転整理ルール生成部1140の処理を終了する。
【００３４】
図１２は、図9におけるＳ9900の遅延回復ルール抽出例を示す。
ダイヤ図12100は、図３に示すダイヤ図3100と同じであり、同様の例を用いて抽出例を示す。グラフ12110はダイヤ図12100の運行状況をグラフで表したものである。ノード値表12120はダイヤ図12100の運行状況を示すグラフデータテーブル1230のノード情報の一部である。リンク値表12130はダイヤ図12100の運行状況を示すグラフデータテーブル1230のリンク情報の一部である。
【００３５】
ダイヤ図12200は、ダイヤ図12100に示す運行状況にて、K駅1番線到着が遅れている列車aレの番線使用順序と出発順序を変更した後のダイヤ図を示す。グラフ12210はダイヤ図12200の運行状況をグラフで表したものである。ノード値表12220はダイヤ図12200の運行状況を示すグラフデータテーブル1230のノード情報の一部である。リンク値表12230はダイヤ図12200の運行状況を示すグラフデータテーブル1230のリンク情報の一部である。
【００３６】
グラフ12110と12210を比較すると、条件(1)に該当するリンクは番線使用順序と出発順序である。運転整理入力によりダイヤ変更が実施された列車、駅はaレ、K駅であるので、この２つのリンクは条件(2)も満たしているが、リンク値表12130より、条件(3)を満たしているのは重み6150と演算値6160が同じ値である番線使用順序である。この番線使用順序については、遅延として事前に定める定数を10分とすると、ノード値表12120、12220、リンク値表12130、12230から、条件(5)(6)も満たしている。
【００３７】
本図では、他のノードに対するノード、リンクを表記していないため条件(4)については示されていないが、aレの到着を示すノードへの番線使用順序以外の流入リンクは条件(4)を満たしているとすると、原因列車をcレ、共に抽出する運行条件を番線使用順序と特定できる。実際、本例では列車cレの出発が遅延したことにより列車aレの到着が遅れているため、番線使用順序の変更、出発順序の変更を行っている例であると考えると、原因列車はcレである。本例では「番線使用順序が1本前の列車が遅延し、かつ、その遅延が原因で到着時間が20分以上遅延するならば、番線使用順序、出発順序の変更を行う」という遅延回復ルールを抽出する。
【００３８】
図１３は、図1に示す運転整理ルールテーブル1240にて示す運転整理ルール情報のうちの遅延回復ルールについてのデータ構成を示す。このテーブルは1つの遅延回復ルールを1レコードとして管理する。各レコードは、ルールの固有のIDを示すルールID13100、ルールの条件節を示す条件13200、ルールの実行節となるダイヤ変更内容を示す実行内容13300、ルール実行時に条件に合致する列車に対して実行節のダイヤ変更を実施可能であったものの累積数を示す該当数13400、条件節に合致し実施可能であった変更箇所のうちユーザーの確認により実際に採用された箇所の累積数を示す採用数13500、採用数13500を該当数13400で割ることで算出した値を示す採用率13600、ルールを実行するかどうかを示す実行13700の項目を有する。
【００３９】
条件13200は、ダイヤ変更対象列車を示すノードの着発を示す着発13210、遅延原因となっている運行条件を示す遅延原因条件13220、ダイヤ変更対象列車の遅延を判定する基準時間を示す遅延判定時間13230、原因列車の遅延判定時間を示す原因列車遅延時間13240、ダイヤ変更対象駅を示す駅13250、ダイヤ変更対象列車の列車種別を示す13260、原因列車の列車種別を示す13270からなる。
この条件のうち、図９に示すＳ9500にて特定するのは遅延原因条件13220と原因列車遅延時間13240である。その他の項目は、Ｓ9800や後に示すＳ8400にてユーザーが手動で設定する項目である。該当数13400、採用数13500、採用率13600はルールが適用されるたびに更新される値であり、新規にルールを生成する際は初期値として0を格納する。レコード13001は、図１２にて抽出される遅延回復ルールを示し、ルールID13100が1、条件13200の着発13210が着、遅延原因条件13220が番線使用順序、遅延判定時間13230が10分、原因列車遅延時間13240が30分、実行内容13300が番線使用順序変更と出発順序変更、該当数13400が20、採用数13500が10、採用率13600が50、実行13700が「○」、すなわち「実行する」であることを示している。
【００４０】
図８に戻り、図２に示すＳ2300の運転整理処理の流れの説明を続ける。Ｓ8200にて運転整理ルール生成処理を行い、Ｓ8300へ進む。Ｓ8300ではＳ8200にて運転整理ルールを抽出したか判定する。抽出した場合はＳ8400へ進み、抽出しなかった場合はＳ8100へと戻り、新たな運転整理入力が存在する場合は新たな運転整理入力に対して同様の処理を繰り返す。Ｓ8400では、Ｓ8200にて抽出した運転整理ルールを図1に示す表示装置1400に表示し、ユーザーが内容を確認する。図１１に示す条件11200や実行内容11300、図１３に示す条件13200や実行内容13300について、ユーザーの意図と異なる箇所、追加したい項目がある場合は、編集を行う。もし運転整理ルールの作成を取り消す場合も本ステップにて取り消し作業を行い、取り消し作業が行われた場合は、運転整理ルールテーブル1240に格納されている該当データを削除する。
ユーザーが意図通りに編集、もしくは運転整理ルールの削除を実施したのち、Ｓ8500へ進む。Ｓ8500では、Ｓ8400にて運転整理ルールが決定したかどうか判定する。運転整理ルールが決定していたらＳ8600へ進み、決定しなかった場合はＳ8100へと戻り、新たな運転整理入力が存在する場合は新たな運転整理入力に対して同様の処理を繰り返す。Ｓ8600では、運転整理ルールテーブル1240に格納された運転整理ルールを実行する。
【００４１】
図１４は、図8に示すＳ8600の運転整理ルール実行処理の流れを示す。Ｓ14100では、運転整理ルール実行の対象となるグラフデータテーブルに対して図1に示すデッドロック判定部1130を用いて、デッドロックが存在するかどうかを判定する。存在しない場合はＳ14300へ進み、存在する場合はＳ14200へ進む。Ｓ14200ではデッドロック解消ルールを実行する。
【００４２】
図１５は、図１４に示すＳ14200のデッドロック解消ルール実行処理の流れを示す。Ｓ15100では、図14に示すＳ14100にて検出されたデッドロックのうち、未調査のデッドロックが存在するかどうか判定する。存在するならばＳ15200へ進み、存在しないならば本デッドロック解消ルール実行処理を終了する。Ｓ15200では、図14に示すＳ14100にて検出されたデッドロックのうち、未調査のデッドロック1つをＡとし、Ｓ15300へ進む。
【００４３】
Ｓ15300では、図1に示す運転整理ルールテーブル1240のうちデッドロック解消ルールテーブルに格納されているルールについて、図１１に示す実行11700が「○」であるもののうちＡに対して未判定のデッドロック解消ルールが存在するかどうか判定する。存在する場合はＳ15400へ進み、存在しない場合はＳ15800へ進む。Ｓ15400では、未判定のデッドロック解消ルール1つについて、条件節のリンク集合がＡに含まれるかどうか判定する。この判定は、まず図１１に示す条件11200のうち基準リンク条件11210の示す条件に該当するリンクがＡに存在するか判定し、存在しない場合は条件節のリンク集合が含まれないと判断し、Ｓ15300へと戻る。存在する場合はそのリンクの向きの方向にリンクを調べ、デッドロックリンク集合11220に示す接続順序11221の順番にリンク条件11222に示す条件に該当するリンクがＡに存在するかどうか判定する。存在する場合はＳ15500へ進み、存在しない場合はＳ15300へと戻り、未判定のデッドロック解消ルールがなくなるまで本処理を繰り返す。
【００４４】
Ｓ15500では、判定したデッドロック解消ルールの実行内容11300に示すダイヤ変更を実施し、Ｓ15600へ進む。Ｓ15600では、Ｓ15500の処理によりデッドロックＡが解消したかどうか図1に示すデッドロック判定部1130を用いて判定する。解消した場合はＳ15800へ進み、解消しなかった場合はＳ15700へ進む。Ｓ15700では、Ｓ15500にて実施した変更を元に戻し、Ｓ15800へ進む。Ｓ15800にてデッドロックＡについて調査済みとし、Ｓ15100へと戻り、未調査のデッドロックがなくなるまで同様の処理を繰り返す。
【００４５】
図１４に戻り、図８に示すＳ8600の運転整理ルール実行処理の流れの説明を続ける。Ｓ14200にてデッドロック解消ルールを実行したのち、Ｓ14300へ進む。Ｓ14300では、遅延回復ルールを実行する。
【００４６】
図１６は、図１４に示すＳ14300の遅延回復ルール実行処理の流れを示す。Ｓ16100では、図1に示すグラフデータテーブル1240に含まれるノードのうち、未調査のノードが存在するかどうか判定する。存在するならばＳ16200へ進み、存在しないならば本遅延回復ルール実行処理を終了する。Ｓ16200では、存在する未調査のノードの1つをＡとし、Ｓ16300へ進む。Ｓ16300では、図1に示す運転整理ルールテーブル1240のうち遅延回復ルールテーブルに格納されているルールについて、図１３に示す実行13700が「○」であるもののうちＡに対して未判定の遅延回復ルールが存在するかどうか判定する。存在する場合はＳ16400へ進み、存在しない場合はＳ16900へ進む。
【００４７】
Ｓ16400では、未判定の遅延回復ルール1つについて、条件に合致するかどうか判定する。この判定は、まず図13に示す条件13200のうち着発13210がＡの着発と合致しているかどうか判定し、合致しない場合は条件に合致しないと判定する。合致する場合はノードＡの初期値5170と演算値5180の差が遅延判定時間13230以上であるかどうか判定し、遅延判定時間13230以上である場合はノードＡの流入リンクに遅延原因条件13220に示す条件のリンクが存在するか判定する。存在する場合は該当リンクの元ノードが示す列車を原因列車とし、その元ノードの初期値5170と演算値5180の差が原因列車遅延時間13240以上であるかどうかを判定する。駅13250、列車種別13260、原因列車種別13270についても条件が存在するならば判定する。すべての条件が合致しているならば、Ｓ16400は合致していると判定し、Ｓ16500へ進む。1つでも合致していない場合はＳ16400では条件に合致していないと判定し、Ｓ16300へと戻り、未判定の遅延回復ルールがなくなるまで本処理を繰り返す。Ｓ16500では、判定した遅延回復ルールの実行内容13300に示すダイヤ変更を実施し、Ｓ16600へ進む。
【００４８】
Ｓ16600では、Ｓ16500の処理によりデッドロックが発生していないかどうか、図1に示すデッドロック判定部1130を用いて判定する。デッドロックとなっていない場合はＳ16700へ進み、図1に示す列車運行シミュレーション実行部1150を用いて列車運行シミュレーションを実行し、Ｓ16900へ進む。デッドロックとなっていた場合はＳ16800へ進み、Ｓ16500にて実施した変更を元に戻し、Ｓ16900へ進む。Ｓ16900にてノードＡについて調査済みとし、Ｓ16100へと戻り、未調査のノードがなくなるまで同様の処理を繰り返す。
【００４９】
図１４に戻り、図８に示すＳ8600の運転整理ルール実行処理の流れの説明を続ける。Ｓ14300にて遅延回復ルールを実行したのち、Ｓ14400へ進む。Ｓ14400では、Ｓ14200、14300にてダイヤデータが変更された箇所について、図1に示す表示装置1400に表示されたダイヤ図（図３）上にマーク（変更部分が分かるような、○印や色分け等の表示子）を表示し、本Ｓ8600の運転整理ルール実行処理を終了する。
【００５０】
図８に戻り、図２に示すＳ2300の運転整理処理の流れの説明を続ける。
Ｓ8600にて運転整理ルールを実行したのち、Ｓ8700へ進む。Ｓ8700では、図1に示す表示装置1400に表示されたダイヤ図上のマークをユーザーが確認し、変更を取り消したい箇所があれば変更を取り消す作業を実施し、Ｓ8800へ進む。Ｓ8800では、図1に示す運転整理ルール分析部1170を用いて運転整理ルールを分析する。運転整理ルール分析部1170は、図1に示す運転整理ルールテーブル1240に格納された運転整理ルールそれぞれについて、マークの数、すなわちルール該当数を図11に示す該当数11400、図13に示す該当数13400に、ユーザーによって取り消されることのなかった変更数、すなわちルール採用数を図１１に示す該当数11500、図１３に示す該当数13500に追加登録し、これらの値から採用率を算出し、図１１に示す採用率11600、図１３に示す採用率13600に登録、更新する。更新したのち、図１１に示す採用率11600、図１３に示す採用率13600のうち、ある事前に決められた一定値以上の割合のものを実行ルールとして図１１に示す実行11700、図１３に示す実行13700に「○」と登録する。Ｓ8800にて運転整理ルールを分析したのち、Ｓ8100へ進み、運転整理入力がなくなるまで本処理を繰り返す。Ｓ8110では、運転整理ルールテーブル1240に格納された運転整理ルールのうち、図１１に示す実行11700、図１３に示す実行13700が「○」のものに対し、Ｓ8600と同様の運転整理ルール実行処理を行い、運転整理案の自動提案を行い、本Ｓ2300の運転整理処理を終了する。
【００５１】
図２に戻り、本運転整理支援システムにおける処理フローの説明を続ける。Ｓ2300にて運転整理処理を実行したのち、Ｓ2400へ進む。Ｓ2400では、図１に示す表示装置1400にＳ14400にて表示されたダイヤ図上のマークをユーザーが確認し、変更を取り消したい箇所があれば変更を取り消す作業を実施したのち、Ｓ2500へ進む。Ｓ2500では、図１に示す運転整理ルール分析部1170を用いて図８に示すＳ8800と同様の処理を行い、図１に示す運転整理ルールテーブル1240を更新する。更新後、Ｓ2600へ進み、ユーザーが運転整理案全体を確認し、運転整理処理を続けたい場合は運転整理案作成が完了していないとしてＳ2300へと戻り、ユーザーが運転整理案作成完了と判断するまで運転整理処理を繰り返す。ユーザーが運転整理案作成完了と判断した場合は本運転整理支援システムにおける処理を終了する。
以上の処理で一連の流れが終了する。
【符号の説明】
【００５２】
1100：処理装置、1200：データベース、1300：入力装置、1400：表示装置、1110：ダイヤ図表示部、1120：グラフデータ生成部、1130：デッドロック判定部、1140：運転整理ルール生成部、1150：列車運行シミュレーション実行部、1160：運転整理ルール実行部、1170：運転整理ルール分析部、1210：ダイヤデータテーブル、1220：リンク定義テーブル、1230：グラフデータテーブル、1240：運転整理ルールテーブル。
【図１】
0005611876.tif 000002
【図２】
0005611876.tif 000003
【図３】
0005611876.tif 000004
【図４】
0005611876.tif 000005
【図５】
0005611876.tif 000006
【図６】
0005611876.tif 000007
【図７】
0005611876.tif 000008
【図８】
0005611876.tif 000009
【図９】
0005611876.tif 000010
【図１０】
0005611876.tif 000011
【図１１】
0005611876.tif 000012
【図１２】
0005611876.tif 000013
【図１３】
0005611876.tif 000014
【図１４】
0005611876.tif 000015
【図１５】
0005611876.tif 000016
【図１６】
0005611876.tif 000017