(57)【要約】【課題】  列車が予め定められた遅延時間以内の遅延で終着駅に到着できるかを、すばやく判断できるよう表示し、前記遅延時間以内で終着駅に到着できる列車の数を増加させる。【解決手段】  予め設定された計画ダイヤに対して手動でダイヤを変更し、この変更に伴って、与えられた制約式を満たすように各列車の運行を予測し、また、許容遅延時間予測ダイヤを作成し、さらに、列車同士の追い越し順序や追い越しを行う駅（交点）や番線を変更して、各列車のダイヤを変更することにより、許容遅延超過列車の数を減少させ、その結果得られた各列車のダイヤをユーザに提示する。【選択図】  図１
2014040161.tif 000002
【特許請求の範囲】
【請求項１】
運転整理業務支援装置は、
制約プログラミングで記述された問題から実行可能解を求める制約プログラミング実行手段と、
元々計画されていたダイヤである実施ダイヤと前記実施ダイヤを変更した実行ダイヤと列車運行の実績を記録した実績ダイヤを元に列車運行の予測結果である予測ダイヤを求める列車運行予測手段と、
前記実施ダイヤと前記実行ダイヤと前記実績ダイヤを元に、列車が終着駅に予め定められた遅延時間で到着する場合の予測結果である許容遅延ダイヤを求める許容遅延考慮予測手段と、
を有することを特徴とする運転整理業務支援装置。
【請求項２】
前記運転整理業務支援装置は、さらに、
表示画面上で、操作者によって指定された列車に関する前記実施ダイヤと前記予測ダイヤに囲まれた領域、および前記列車に関する前記予測ダイヤと前記許容遅延ダイヤに囲まれた領域、を強調表示する手段
を有することを特徴とする請求項１記載の運転整理業務支援装置。
【請求項３】
前記運転整理業務支援装置は、さらに、
前記列車運行予測手段および前記許容遅延考慮予測手段を用いて、終着駅に予め定められた遅延時間内で到着する列車の数が多くなるような運転整理を提案する、許容遅延考慮提案手段
を有することを特徴とする請求項１記載の運転整理業務支援装置。
【請求項４】
前記許容遅延考慮提案手段は、
前記予測ダイヤに対して、
始発駅から、列車同士の追い越し順序や追い越しを行う駅である交点までの各駅単位で、番線を変更する手段、
前記始発駅から前記交点までの各駅単位で、列車の発車順序を変更する手段、更に、
列車単位に、終着駅における到着時刻が許容遅延時間Ｌ以上遅れた列車である許容遅延超過列車の数が、前記予測ダイヤにおける数よりも減少したかどうかを判定する手段、
を有することを特徴とする請求項３記載の運転整理業務支援装置。
【請求項５】
ＣＰＵ、メモリ及び端末を有し、ネットワークを介して駅や列車の運行状況の情報の収集および運行の指示を行う処理装置を用いた運転整理業務支援方法であって、前記方法は、
元々計画されていたダイヤである実施ダイヤに対して指令員が手動でダイヤを変更して実行ダイヤを作成し、
前記実行ダイヤに対して制約式を満たすように変更して予測ダイヤを作成し、
前記予測ダイヤに対して許容遅延を設定して許容遅延予測ダイヤを作成し、
前記許容遅延予測ダイヤに対して駅構内の番線や列車の発車順序を変更して許容遅延考慮提案を作成し、更に、
前記指令員の前記端末操作により前記提案の採否を入力する、
ことを特徴とする運転整理業務支援方法。
【請求項６】
前記許容遅延考慮提案を作成するステップは、
前記予測ダイヤに対して、
始発駅から、列車同士の追い越し順序や追い越しを行う駅である交点までの各駅単位で、番線の変更処理を行い、
前記始発駅から前記交点までの各駅単位で、列車の発車順序の変更処理を行い、更に、
列車単位に、終着駅における到着時刻が許容遅延時間Ｌ以上遅れた列車である許容遅延超過列車の数が、前記予測ダイヤにおける数よりも減少したかどうかを判定する、
ことを特徴とする請求項５記載の運転整理業務支援方法。
【請求項７】
前記番線の変更処理は、
前記始発駅から前記交点までにおける前記予測ダイヤにおいて、
駅間の運行時間が基準運転時間よりも長く、かつ、当該駅の使用番線が属する番線グループに複数の番線が属している駅を取り出し、
前記当該駅における前記使用番線を他の番線に変更する、
ことを特徴とする請求項６記載の運転整理業務支援方法。
【請求項８】
前記発車順序の変更処理は、
前記始発駅から前記交点までにおける前記予測ダイヤにおいて、
前記交点よりも早い時間において、当該列車の直前列車が当該駅の前の駅における前列車のいずれとも異なるように出発順序変更が可能な駅を取り出し、
前記取り出した駅における列車の発車順序を変更し、前記列車の発車時刻を予測する、
ことを特徴とする請求項６記載の運転整理業務支援方法。
【請求項９】
前記交点を検索する際に、
前記予測ダイヤと前記許容遅延予測ダイヤにおいて、前記始発駅から検索を開始し、
当該列車の予測ダイヤの出発時刻＜当該列車の許容遅延予測ダイヤの出発時刻
である間、次の駅を検索し、
前記当該列車の予測ダイヤの出発時刻≧前記当該列車の許容遅延予測ダイヤの出発時刻となった最初の駅を交点として抽出し、
前記始発駅から
当該列車の予測ダイヤの出発時刻≧当該列車の許容遅延予測ダイヤの出発時刻
となっていた場合は、前記交点がないと判断する、
ことを特徴とする請求項６記載の運転整理業務支援方法。
【請求項１０】
前記制約式は、
駅の発車順序という順序制約、
実際の発車時刻は変更後の時刻よりも後という早発禁止制約、
ダイヤ変更後も同一の番線を使用するという番線使用制約、
列車相互の車両の運用関係を規定した車両運用制約、
各駅における停車時間は最小停車時間以上という最小停車時間制約、及び
駅間の運転時間は基準運転時間以上という基準運転時間制約、
の少なくとも１つを含むことを特徴とする請求項５記載の運転整理業務支援方法。
【請求項１１】
ＣＰＵ、メモリ及び端末を有する処理装置を用いて、ネットワークを介して駅や列車の運行状況の情報の収集および運行の指示を行う運転整理業務支援方法を実行するためのプログラムを格納した、計算機で読み取り可能な記憶媒体であって、前記方法は、
元々計画されていたダイヤである実施ダイヤに対して指令員が手動でダイヤを変更して実行ダイヤを作成し、
前記実行ダイヤに対して制約式を満たすように変更して予測ダイヤを作成し、
前記予測ダイヤに対して許容遅延を設定して許容遅延予測ダイヤを作成し、
前記許容遅延予測ダイヤに対して駅構内の番線や列車の発車順序を変更して許容遅延考慮提案を作成し、更に、
前記指令員の前記端末操作により前記提案の採否を入力する、
ことを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、運転整理業務支援装置に関する。
【背景技術】
【０００２】
本技術分野の背景技術として、特開平５−２８６４４１号公報（特許文献１）がある。この公報には、「列車の遅延時に遅延発生列車がどこまで回復可能か否かを迅速に判断可能とし、列車の適切な運行管理を確保する」目的の列車ダイヤ管理装置として、「予め計画されている列車の計画ダイヤと、列車位置検出装置から順次送られてくる列車の実績移動距離と経過時間とから定まる実績ダイヤとを表示する装置において、計画ダイヤと実績ダイヤとを比較し列車の遅延を判断する列車遅延判断手段と、列車が遅延と判断されたとき現在時刻から計画ダイヤを平行移動させたダイヤと各駅間の基準運転時間により走行するダイヤとから遅延を回復するための走行可能ダイヤ範囲を予測するダイヤ回復予測手段と、この予測された走行可能ダイヤ範囲を前記表示画面上に表示する走行可能ダイヤ表示手段とを備えた列車ダイヤ管理装置」が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平５−２８６４４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
前記特許文献1には、遅延列車に対し、今後どこまでダイヤを回復できるかを表示する手段が開示されている。しかし、終着駅において、予め定められた遅延時間以内に列車の遅延を抑えるという目的で運転整理が行われる場合がある。この場合、どこまでダイヤを回復できるかというよりは、終着駅において前記遅延時間以内に遅延を抑えることができるのか否かということを素早く把握することが必要である。しかしながら、前記特許文献1では、個々の列車について終着駅における遅延の見込みはつけられるものの、どの列車が前記遅延時間以内の遅延に収まる可能性があり、どの列車がすでに前記遅延時間以内の遅延に収まる可能性がないのかということを、すばやく判断する手段が用意されていない。
【０００５】
また、前記特許文献1では、装置側が運転整理案を提案する手段が開示されておらず、遅延列車の遅延を回復するための運転整理案は指令員が考える必要がある。このため、運転整理業務に不慣れな指令員では、効果的な運転整理の実行が難しかった。
【０００６】
本発明の目的は、終着駅において、予め定められた遅延時間以内に列車の遅延を抑えることができる運転整理案を提案する運転整理業務支援装置及び方法を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、例えば本発明の運転整理業務支援装置は、
制約プログラミングで記述された問題から実行可能解を求める制約プログラミング実行手段と、
実施ダイヤ（元々計画されていたダイヤ）と実行ダイヤ（実施ダイヤに対してダイヤ変更）と実績を元に列車運行の予測結果である予測ダイヤを求める列車運行予測手段と、
実施ダイヤと実行ダイヤと実績を元に、列車が終着駅に予め定められた遅延時間で到着する場合の予測結果である許容遅延ダイヤを求める許容遅延考慮予測手段、を有する。
【発明の効果】
【０００８】
本発明によれば、列車の遅延を、終着駅において前記遅延時間以内に抑える場合のスジ（列車ダイヤ上の列車を表現する線）を描画でき、そのスジと予測スジからどの列車が終着駅において前記遅延時間以内の遅延に抑えられるのか、指令員にとって分かりやすく表示することが可能である。さらに、前記遅延時間以内に抑える場合のスジと前記予測スジの間を領域として表示することもできるため、より視覚的にどのくらい余裕があるのかということを分かりやすく表示できる。このため、指令員が、どの列車が前記遅延時間以内の遅延に収まる可能性があり、どの列車がすでに前記遅延時間以内の遅延に収まる可能性がないのかということを、すばやく判断することができる。
【０００９】
また、本発明の運転整理支援装置によれば、多くの列車が終着駅において前記遅延時間以内の遅延に収まることが予測される運転整理案を提案できる。
【図面の簡単な説明】
【００１０】
【図１】システム構成を示した図である。
【図２】列車情報と各列車の時刻情報との関連を示す図である。
【図３】運転整理装置１０２における処理の概要を示した図である。
【図４】運転整理装置１０２における予測処理の概要を示した図である。
【図５】運転整理装置１０２における許容遅延予測処理の概要を示した図である。
【図６Ａ】運転整理装置１０２における許容遅延考慮提案処理の概要を示した図である。
【図６Ｂ】運転整理装置１０２における許容遅延考慮提案処理の概要を示した図である。
【図７】列車情報のデータ構造を示した図である。
【図８】時刻情報のデータ構造を示した図である。
【図９】基礎データのうち番線定義データの構造を示した図である。
【図１０】基礎データのうち最小停車時間データの構造を示した図である。
【図１１】基礎データのうち基準運転時間データの構造を示した図である。
【図１２】手動ダイヤ変更の例を示した図である。
【図１３】予測画面の例を示した図である。
【図１４】出発順序変更提案の画面例を示した図である。
【発明を実施するための形態】
【実施例１】
【００１１】
以下、図面を用いて実施例を説明する。
（１．構成）
まず、本実施例における運転整理支援装置の構成を、図１を用いて説明する。
【００１２】
（１.１システム構成）
図１は、システム構成を示した図である。
本発明を実施する運転整理装置１０２は、ネットワーク１５０を介して各駅１６０や列車１７０からの情報の収集、及び列車に対する運行の指示を行う。
【００１３】
運転整理装置１０２は、ＣＰＵ２０１、時計２０７、端末２１０、メモリ２０２、ハードディスク２０８及びネットワークＩ／Ｆ(インタフェース)２０４を有し、これらは内部バス２０３によって互いに接続されている。指令員が操作する端末２１０は、キーボード２０５、マウス２０９及び表示装置２０６を含む。ＣＰＵ２０１は、メモリ２０２に格納された列車運行予測エンジン１１１、許容遅延考慮提案エンジン１１２及び制約プログラミング実行エンジン１１３という各プログラムを実行する。ハードディスク２０８には、各プログラムの実行の際に参照、あるいは作成される各種情報が格納されている。
【００１４】
各種情報には、元々計画されていたダイヤである実施ダイヤ１０５、実施ダイヤ１０５に対してダイヤ変更を適用した、最新の実行すべきダイヤである実行ダイヤ１０６、ネットワーク１５０を介して各駅１６０や各列車１７０から収集した各列車の実際の運行状況を格納した実績ダイヤ１０７、実績ダイヤ１０５や実行ダイヤ１０６を元に将来の列車運行を予測したダイヤである予測ダイヤ１０８、許容される最大の遅延で列車が終着駅に到着する場合の予測ダイヤである許容遅延予測ダイヤ１０９、及び予めシステムに入力されている基準運転時間等のダイヤ予測の基礎となる基礎情報１１０がある。
【００１５】
列車運行予測エンジン１１１は、実行ダイヤ１０６、実績ダイヤ１０７及び基礎情報１１０を元に将来の列車運行を予測するプログラムである。許容遅延考慮提案エンジン１１２は、終着駅における遅延が許容遅延内に収まる列車の割合を多くするよう、列車順序もしくは使用番線もしくは使用線路の変更を、操作者に対し提案するプログラムである。制約プログラミング実行エンジン１１３は制約プログラミングという一般的なプログラミングパラダイムで記述されたプログラムを実行するための、一般的な実行プログラムである。
【００１６】
（１.２各装置）
運転整理装置１０２は専用の装置として実現しても良いし、一般のＰＣと専用のソフトウェアを用いて実現しても良い。本実施例においては、一般のＰＣと専用のソフトウェアを用いて実現する例を示す。
【００１７】
ＣＰＵ２０１は中央処理装置(Central Processing Unit)であり、メモリ２０２に記録されている、または予めハードディスク２０８からメモリ２０２に転送されたプログラムを実行することができる装置である。なお、プログラムは、必要に応じて、ＰＣが利用可能であり、着脱可能な記憶媒体によって導入されてもよい。この場合、前記記憶媒体を読み取るための装置を内部バス２０３に接続する。なお、このような前記記憶媒体及びそれを読み取るための装置としては、光ディスク（ＣＤ，ＤＶＤ等）を用いるものや、フラッシュメモリを用いるものが一般に知られており、これを用いることができる。また、プログラムは、必要に応じて、ネットワークインタフェース２０４によって、通信媒体（通信回線又は通信回線上の搬送波）を介して、ＰＣに導入されてもよい。メモリ２０２はプログラムやデータを一時的に記録しておくものである。内部バス２０３はＰＣシステム内の装置を接続するためのものであり、ＰＣ内の各装置と接続されている。ネットワークインタフェース２０４はＰＣシステム外のＰＣ等と通信をするための装置である。
【００１８】
端末２１０内のキーボード２０５はＰＣシステムへの指令やデータ入力を行うために、ＰＣシステムの操作者が操作する装置であり、表示装置２０６は処理結果等を表示するための装置である。マウス２０９は、表示装置２０６の画面上に表示されるポインタを動かすための装置である。なお、マウスは一般にポインティングデバイスと呼ばれる装置の一種であり、本明細書は例としてマウスを利用しているが、他のポインティングデバイスでもかまわなく、例えばトラックボールやポインティング・スティック、タッチパッド、タッチパネル、ペンタブレット等が挙げられる。
時計２０７はＣＰＵ２０１が現在のおよその時間を知るための装置である。
【００１９】
ハードディスク２０８はプログラム及びデータを格納する装置であり、例えば、磁気ディスクや不揮発性メモリ等によって構成することができる。この場合、ハードディスク２０８に格納されたプログラム及びデータは、ハードディスク２０８の電源がＯＦＦとなった後にＯＮになった場合でも、通常保持される。なお、ハードディスク２０８には、予めオペレーティングシステム（ＯＳ）が導入されていても良い。このようにすることで、ファイル名を用いてプログラムを指定することなどができるようになる。ここで、ＯＳとは、計算機の基本ソフトウェアのことであり、一般に広く知られたＯＳを用いることができる。
【００２０】
本明細書では、特に区別する必要がない場合は、以降メモリ２０２とハードディスク２０８を合わせて記憶装置と呼称する。この場合、記憶装置はメモリ２０２とハードディスク２０８のどちらかを指すものとする。なお、ハードディスク２０８に保存されたデータ等は、読み出すことによりメモリ２０２に複製を作成することができる。また、メモリ２０２に保存されたデータ等は、書き出すことによりハードディスク２０８に複製を作成することができる。よって、記憶装置にデータ等を保存した場合、以降、メモリ２０２、ハードディスク２０８のどちらからも読み出せるとする。また、記憶装置からデータ等を読み出す場合、メモリ２０２、ハードディスク２０８のどちらかに保存されているデータ等を読み出すものとする。
【００２１】
本明細書では、運転整理装置１０２をＰＣと、専用のソフトウェアを用いて実現する例を例示する。ここで、専用のソフトウェアとは、装置が行う処理（後述）をＣＰＵ２０１に行わせるためのプログラムである。
【００２２】
（２．データ構造）
処理の説明の前に、データ構造について説明する。
【００２３】
（２.１ダイヤのデータ構造）
まず、ダイヤのデータ構造について図７及び図８を用いて説明する。
図７はダイヤのデータ構造に含まれる列車情報テーブル７００を示した図である。テーブル７００は各列車の運行に関する情報を格納したもので、各列車の運行の際の時刻情報の詳細は図８の時刻情報テーブル８００に格納される。また、テーブル８００は、各列車に対応して設けられ、テーブル７００の「ダイヤへのポインタ７０４」によって関連付けられる。本実施例の処理では各列車のダイヤが変更されても図７に示す列車情報テーブル７００の内容は変更されないものとする。なお、図８は、実施ダイヤ１０５、実行ダイヤ１０６、実績ダイヤ１０７、予測ダイヤ１０８及び許容遅延予測ダイヤ１０９のデータ構造を示した図であり、これらのダイヤはすべて図８に示したデータ構造と同じデータ構造を持っている。
【００２４】
列車情報７００と各列車の時刻情報８００との関連を図２に示す。列車情報７００の各列車の情報に含まれるポインタ７０４によって、各列車の列車情報７００と時刻情報８００とが関連付けられ、ポインタ７０４は時刻情報８００に含まれる実施ダイヤ１０５の先頭アドレスを示す。更に、各列車について、実施ダイヤ１０５から実行ダイヤ１０６に、実行ダイヤ１０６から予測ダイヤ１０８に、更に、予測ダイヤ１０８から許容遅延予測ダイヤ１０９に、順次ポインタが張られる（これらのダイヤ間のポインタは図示せず）。即ち、各列車について、実施ダイヤ１０５、実行ダイヤ１０６、予測ダイヤ１０８及び許容遅延予測ダイヤ１０９の各時刻情報が順にリンクされる。リンク元のダイヤを変更した結果がリンク先のダイヤである。例えば、実施ダイヤ１０５の複製に対して変更処理を行った結果が実行ダイヤ１０６である。図２では、上記の順次に張られるポインタと後述する図３に示す各処理との関連を示す。図３に示す各処理ごとにリンク先のダイヤが生成され、それに対して各処理に応じた変更処理が施される。
【００２５】
図７に示したテーブル７００において、「列車番号」７０１は対象列車の列車番号である。行７０７は「列車番号」が「0001A」である列車に関する記述であり、行７０８は「列車番号」が「0003B」である列車に関する記述である。以降、同様に対象列車分の行が追加される。
【００２６】
「列車種別」７０２には対象列車の列車種別が記載される。
「速度種別」７０３には対象列車の速度種別が記載される。ここで、速度種別とは列車の速度の種類をコード化したものであり、たとえば列車番号0001Aの列車の速度種別はA130である。
【００２７】
「ダイヤへのポインタ」７０４には、駅発着時刻等、対象列車のダイヤが格納されているデータへのポインタ（図８のテーブルのアドレス）が記載される。例えば、「列車番号」が「0001A」である列車の「ダイヤへのポインタ」は「dia_0001A」である。このポインタを用いてＤＢにクエリを出すことにより、駅発着時刻等、対象列車のダイヤを取得することができる。このデータについては後述する。
【００２８】
「前運用列車」７０５には対象列車の前運用となる列車の列車番号が記載される。なお前運用とは、当該列車に充当されている車両が、当該列車として走行する前に他の列車として走行していたことを指している。なお、出庫直後等で前運用がない場合は例えば「＊」など、前運用がないというマークが記載される。例えば、「列車番号」が「0001A」である列車の前運用列車はない。
【００２９】
「後運用列車」７０６は対象列車の後運用となる列車の列車番号が記載される。なお、後運用とは、当該列車に充当されている車両が、当該列車として走行した後に他の列車として走行する予定になっていることを指している。なお、当該列車として走行した後に入庫する等で後運用がない場合は、例えば「＊」など、後運用がないというマークが記載される。
例えば、列車番号０１０３Ｂとして走行していた車両は、列車番号０００３Ｂの当該列車として走行し、その後、列車番号０２０３Ｂの列車として走行する予定になっていることを示す。
【００３０】
次に、「ダイヤへのポインタ」７０４にて指示されているダイヤデータのデータ構造について図８を用いて説明する。図８に示されているのは、ある１列車についての、ダイヤデータの構造である。ＤＢ上には、これが列車数分存在することになる。なお、実施ダイヤデータ、実行ダイヤデータ、実績ダイヤデータ、予測ダイヤデータ及び許容遅延予測ダイヤデータは、すべて図８に示されているような、同じデータ構造を持っている。
【００３１】
図８に示すテーブルにおいて、「駅名」８０１には当該列車の到着・出発・通過等に関わる駅名がこのフィールドに記載されている。例えば行８０５は「駅名」が「Ａ駅」である駅に関する記述である。図８では「・・・」として省略しているが、実際には行が当該列車の到着・出発・通過等に関わる駅の数だけ行が存在している。
【００３２】
「到着時刻」８０２には、当該列車が当該駅に到着する時刻が記載される。なお、当該駅が当該列車の始発駅であって到着時刻がない場合、例えば「＊」等、データがないということを示すマークが入力される。「発車時刻」８０３には、当該列車が当該駅を発車する時刻が記載される。発車時刻には通過時刻を含んでも良い。その場合、到着時刻８０２は「＊」で、発車時刻８０３に通過時刻が記載される。図８では分けていないが、通過時刻を別フィールドとして用意しても良い。「使用番線」８０４には、当該列車が当該駅で使用する駅構内の番線が記載される。
【００３３】
ここで、本発明のデータ処理に応じたダイヤのデータ構造の変形例、及びそれに基づく検索処理について説明する。
【００３４】
（１）所望の時間帯における各列車の運行状況を把握する場合、各列車について、当該時間帯に含まれる時刻情報８００（駅名、到着／発車時刻、使用番線を含む）を時系列に縦方向（行方向）に並べた列データを、列車ごとに所定の順に横方向（列方向）に並べた２次元の表データをメモリ２０２の作業領域に生成する。更に、生成した表データ全体に対して、到着／発車時刻が時系列となるように配列し、該当する時刻に列車の到着／発車がない場合は、その旨を示す「０」や「＊」などを該当する要素に格納する。指定した時刻（又は時間帯）に対応する行データを、表データから取り出せば、当該時刻（又は時間帯）における各列車の運行状況が把握できる。
【００３５】
（２）更に、上記のように生成した表データの中で同一駅名を含む各列車の時刻情報８００（到着／発車時刻、使用番線）が同一行となるように時刻情報８００を配列し直した表データに変更する。指定した少なくとも一つの駅に対応する行データを、変更した表データから取り出せば、当該駅（及びその前後の駅）における各列車の運行状況が把握できる。
【００３６】
（３）上記の表データ又は、変更された表データの時刻情報８００としては、列車ごとにダイヤの種類が異なっても良い。例えば、列車１については実施ダイヤ１０５、列車２については変更ダイヤ１０６などのように組み合わせても良い。更には、当該列車について、時間帯によってダイヤの種類が異なるものを組み合わせても良い。例えば、ある時刻よりも前は実施ダイヤ１０５、それ以降は変更ダイヤ１０６のように組み合わせも良い。
【００３７】
（４）更に、上記の表データ又は変更した表データにおいて、後述する図９の番線定義データ９００に基づいて、代替の番線を有する駅に関する時刻情報のみを残し、代替の番線を持たないその他の駅に関する時刻情報を削除すれば、列車の発車順序を変更することで列車の追い越しが可能な駅の候補を抽出できる。
【００３８】
（５）表データ及びその表データを変更した表データのそれぞれの要素を比較して所望の要素を抽出することもできる（表データ要素の比較演算）。具体的には、上記の表データ又は変更された表データの所定の第１の要件を満たす要素に対して所定の演算を施したダミー表データを生成し、ダミー表データ中の前記演算を施した要素と、元の表データ又は変更された表データの所定の第２の要件を満たす要素とを、所定の条件に基づいて比較することにより、前記所定の条件を満たす要素を含む列車や駅を一括して抽出できる。
【００３９】
例えば、発車時刻―到着時刻≧所定時間の場合、当該駅の到着時刻に対して到着時刻＋所定時間のような演算を施したダミー表データの要素（演算された当該駅の到着時刻）と、元の表データ又は変更された表データの当該列車の当該駅の発車時刻とを比較して、発車時刻≧演算された到着時刻のような条件を満たす列車や駅を一括して抽出できる。
【００４０】
要素によらず所定の条件が同じであれば、上記のようなダミー表データを生成せずに、上記の表データ又は変更された表データの所定の第１の要件を満たす要素と、所定の第２の要件を満たす要素とを、所定の条件に基づいて比較することにより、上記と同様の処理を行うこともできる。
【００４１】
上記の（１）〜（５）に述べたように、図７及び図８に示した情報の一部を、処理の目的に応じて抽出して、配列変更や削除などを行うことにより、所望の情報が得られる。
【００４２】
（２.２基礎情報の構造）
次に、駅の番線や列車の運行に関する基礎情報１１０の構造について、図９〜図１１を用いて説明する。
【００４３】
図１０及び１１は、時間―駅の列車ダイヤ図の描画の際に参照され、ダイヤ変更時にこれらの情報に基づいて駅での停車時間や駅間の運転時間が変更される。また、図９は、ダイヤ変更時の番線の変更の際に参照される。
【００４４】
図９は、基礎情報１１０のうち各駅における代替の番線の有無を示す番線定義データ９００の構造を示した図である。番線定義データ９００は、駅名９０１、番線９０２及び当該番線の所属する番線グループ９０３で構成されている。ここで、番線グループとは、番線変更可能な番線を同じグループにしたものである。すなわち、番線定義データでは、ある駅のある番線が、どのような番線グループに属しているかが記載されていることになる。例えば、図９ではＡ駅の１番線と２番線が同じ番線グループ１に属していることがわかる。このため、例えば実施ダイヤ上でＡ駅の１番線を使用している列車は、当日の運転整理により、Ａ駅の２番線に変更しても、基礎データ上は問題がないことが分かる。
【００４５】
図１０は、基礎情報１１０のうち列車が駅に停車する際の最小停車時間データ１０００の構造を示した図である。最小停車時間データ１０００は、速度種別１００１、駅名１００２及び当該列車の当該駅における最小停車時間１００３（秒単位）で構成される。すなわち、最小停車時間データでは、ある速度種別の列車がある駅に停車する際の最小停車時間が記載されている。例えば、図１０からは、Ａ１３０という速度種別を持つ列車のＢ駅における最小停車時間は３０秒であることが分かる。なお、行は各速度種別、及び各駅分だけ準備される。
【００４６】
図１１は、基礎情報１１０のうち速度種別ごとに駅間の運転時間を定めた基準運転時間データ１１００の構造を示した図である。基準運転時間データ１１００は、速度種別１１０１、当該速度種別の対象となる区間の端駅（前駅名１１０２、次駅名１１０３）及び当該速度で走る列車の当該区間における基準運転時間１１０４（運転時間の下限値、秒単位）で構成される。例えば、図１１からは、速度種別Ａ１３０である列車のＡ駅−Ｂ駅間における基準運転時間は１２０秒であることが分かる。なお、行は各速度種別、及び各走行区間分だけ準備される。
【００４７】
（３．運転整理装置１０２の処理）
次に、本実施例における運転整理装置１０２の処理について説明する。
【００４８】
本実施例における前提として、上り及び下りのそれぞれの線路は単線であり、当該列車が他の列車を追い越す場合は当該列車が停車している番線とは異なる番線を他の列車が使用して当該列車を追い越す。即ち、列車の追い越しは駅構内で行われる。また、予め計画された実施ダイヤ１０５に対する変更の処理は、指令員がある列車のダイヤを変更する場合、又は、実績ダイヤ１０７に基づいて当該列車の遅延を検知した場合を契機として実行される。以下の実施例では、指令員がある列車の運行ダイヤを変更した場合の処理を説明する。
【００４９】
（３.１概略）
図３は運転整理装置１０２における処理の概要を示した図である。
ステップ３０１は、運転整理装置１０２のＣＰＵ２０１が、実施ダイヤと実績ダイヤを取得し、それを運転整理装置１０２内の記憶装置に、実施ダイヤ１０５及び実績ダイヤ１０７として保存する処理である。なお、実績ダイヤ１０７の取得は、ネットワークインタフェース２０４を通じて各駅や運行中の各列車に対して送信要求を行い、得られた運行状況に対応する処理を行うという一般的な方法で行われる。このため、取得処理自体については詳細説明を省略する。
【００５０】
ステップ３０２は、運転整理装置１０２のＣＰＵ２０１が、ある列車の運行計画を変更するための手動ダイヤ変更を指令員に入力させ、実施ダイヤ１０５から実行ダイヤ１０６を作成する処理である。手動ダイヤ変更はＧＵＩを用いて行わせることができる。なお、詳細は後述する。
【００５１】
ステップ３０３は、運転整理装置１０２のＣＰＵ２０１が、所定の制約式を満たすように各列車の実行ダイヤを変更し、予測ダイヤ１０８を作成する処理である。なお、詳細は後述する。
【００５２】
ステップ３０４は、運転整理装置１０２のＣＰＵ２０１が、各列車の予測ダイヤ１０８に対して許容遅延を設定して許容遅延予測ダイヤ１０９を作成する処理である。なお、許容遅延予測後、予測ダイヤ１０８および許容遅延予測ダイヤ１０９を画面に表示することもできる。これらの詳細については後述する。
【００５３】
ステップ３０５は、運転整理装置１０２のＣＰＵ２０１が、許容遅延予測ダイヤ１０９に対して番線あるいは発車順序を変更することによって、許容遅延考慮提案を作成する処理である。なお、詳細は後述する。
【００５４】
ステップ３０６は、運転整理装置１０２のＣＰＵ２０１が、提案の有無を調べる処理である。もし提案があれば、ステップ３０７へ進む。もし提案がなければ、終了する。
【００５５】
ステップ３０７は、運転整理装置１０２のＣＰＵ２０１が、指令員に提案の採否を入力させる処理である。なお、詳細は後述する。
【００５６】
ステップ３０８は、運転整理装置１０２のＣＰＵ２０１が、指令員の提案の採否をチェックする処理である。もし採用されれば、ステップ３０９へ進む。もし採用されなければ（提案を却下）、終了する。
【００５７】
ステップ３０９は、運転整理装置１０２のＣＰＵ２０１が、許容遅延考慮提案に基づいて実行ダイヤ１０６を変更する処理である。
【００５８】
以上、本実施例の運転整理装置１０２の処理の概略を示した。上記の処理により、終着駅において遅延時間内に到着する列車に数が多くなるように運転ダイヤを変更することができる。以降、各処理の詳細について説明する。
【００５９】
（３.２ステップ３０２における処理の詳細：手動ダイヤ変更）
次に、ステップ３０２における処理の詳細について説明する。手動ダイヤ変更は、ＧＵＩを用いて行わせることができるが、その画面の例を図１２に示す。
【００６０】
図１２には、列車スジ表示ウィンドウ１２０１、ポインタ１２０２、階段状の点線で示した実施ダイヤスジ１２０３、実線で示した、実施ダイヤスジ１２０８を手動で変更した手動ダイヤ変更後スジ１２０４、直線状の点線で示した、通過列車の変更前の実施ダイヤスジ１２０８、及び提案ウィンドウ１２１０が表示されている。即ち、図１２は、指令員が、通過列車のダイヤを矢印１２１１の方向に手動で変更した場合を示す。列車スジ表示ウィンドウ１２０１の下に示す三角形１２０９は、ダイヤ変更を行っている現在時刻を示す。列車スジ表示ウィンドウ１２０１は列車スジを表示するウィンドウである。ポインタ１２０２は選択対象を指し示す表示図形である。実施ダイヤスジ１２０３は実施ダイヤを模式的に表示する線である。通過列車の実施ダイヤスジ１２０８は通過列車の実施ダイヤを模式的に示した線である。手動ダイヤ変更後スジ１２０４は手動変更したあとの通過列車のダイヤを模式的に示した線である。提案ウィンドウ１２１０は後述する提案内容が表示される領域であるが、本手動ダイヤ変更処理には関係しない。
【００６１】
図１２においては、実施ダイヤは点線で表示した実施ダイヤスジ１２０３および通過列車の実施ダイヤスジ１２０８だったと仮定している。ここで、指令員が手動変更を行い、通過列車の実施ダイヤスジ１２０８をポインタ１２０２で指示して少し横（矢印１２１１の方向）に動かす等の動作を行うことにより、通過列車のダイヤを手動ダイヤ変更後スジ１２０４に変更している。この結果、実行ダイヤ１０６は、変更がなかった実施ダイヤスジ１２０３と、変更後の通過列車のダイヤである手動ダイヤ変更後スジ１２０４が含まれることになる。なお、この処理により遅延見込みを入力することも可能である。
【００６２】
図１２のように画面上でダイヤを変更すると、変更の結果が図８の時刻情報８００、即ち、図３の各処理に応じたダイヤ（１０６、１０８、１０９）に反映される。
【００６３】
また、列車スジ表示ウィンドウ１２０１に、所定の時間帯及び駅区間に含まれる複数の列車のダイヤスジを表示する場合は、それぞれの列車ごとにダイヤスジを表わす線の色や表示形態を変えて、各列車のダイヤスジを区別して表示する、あるいは、各ダイヤスジの近傍に列車番号７０１を表示して各列車のダイヤスジを区別することができる。
【００６４】
（３.３ステップ３０３における処理の詳細：予測）
次に、ステップ３０３における処理の詳細について、運転整理装置１０２における予測処理の概要を示した図４を用いて説明する。なお、予測処理は各列車の各駅における発車時刻、及び到着時刻を求める処理である。これは、本実施例では、制約プログラミング実行エンジン１１３で実行される一般的な制約プログラミングの技法を利用して実現する。すなわち、各列車の各駅における発車時刻と到着時刻を制約プログラミングにおける制約変数とし、この制約変数に関する制約式を、ステップ４０１からステップ４０６によって設定する。その後、制約式を満たす解、即ち、各列車の到着時刻や発車時刻を求めていくという処理を行っている。制約プログラミングによる解法は後述する。この一連の処理は、運転整理装置１０２の記憶装置に保存されている列車運行予測エンジン１１１を運転整理装置１０２のＣＰＵ２０１が実行することにより行われる。
【００６５】
ステップ４０１は、運転整理装置１０２のＣＰＵ２０１が、順序制約を作成する処理である。ここで、順序制約とは、駅の発車順序のことである。これは、実行ダイヤ１０６において各駅の番線ごとに、列車番号を発車時刻順にソートすることで作成できる。その後、各駅の番線ごとに、発車時刻順に図７と図８の情報に基づいて、
Ａ列車の発車時刻＜Ｂ列車の到着時刻＜Ｂ列車の発車時刻＜Ｃ列車の到着時刻＜Ｃ列車の発車時刻＜・・・
と並べた制約を作成する。
【００６６】
ステップ４０２は、運転整理装置１０２のＣＰＵ２０１が、図８の情報を参照して早発禁止制約を作成する処理である。これは、実行ダイヤ１０６を読み出して、
Ａ列車のａ駅の発車時刻≧実行ダイヤにおけるＡ列車のａ駅の発車時刻
（即ち、実際の発車時刻は変更後の時刻よりも後）という制約を作成することによって実行される。
【００６７】
ステップ４０３は、運転整理装置１０２のＣＰＵ２０１が、図８の情報に基づいて番線使用制約を作成する処理である。これは、各列車の各駅について、
Ａ列車の使用番線＝実行ダイヤにおけるＡ列車の使用番線
（即ち、ダイヤ変更後も同一の番線を使用）という制約を作成することによって実行される。
【００６８】
ステップ４０４は、運転整理装置１０２のＣＰＵ２０１が、図７の情報に基づいて車両運用制約を作成する処理である。これは、実行ダイヤ１０６を用いて各列車について、
Ａ列車の後運用＝Ｂ列車、Ｂ列車の前運用＝Ａ列車
という列車相互の車両の運用関係を規定した制約を作成することによって実行される。
【００６９】
ステップ４０５は、運転整理装置１０２のＣＰＵ２０１が、図１０の情報に基づいて最小停車時間制約を作成する処理である。これは、基礎情報１１０のうち最小停車時間データ１０００を元に、各列車の各駅について
Ａ列車のａ駅の発車時刻−Ａ列車のａ駅の到着時刻≧基礎データにおけるＡ列車の速度種別のａ駅における最小停車時間
（即ち、停車時間は最小停車時間以上）という制約を作成することによって実行される。
【００７０】
ステップ４０６は、運転整理装置１０２のＣＰＵ２０１が、図１１の情報に基づいて基準運転時間制約を作成する処理である。これは、基礎情報１１０のうち基準運転時間データ１１００を元に、各列車の各駅間において
Ａ列車のｂ駅の到着時刻−Ａ列車のａ駅の発車時刻≧基礎データにおけるＡ列車の速度種別のａ駅−ｂ駅間基準運転時間
（即ち、駅間の運転時間は基準運転時間以上）という制約を作成することによって実行される。
【００７１】
ステップ４０７は、運転整理装置１０２のＣＰＵ２０１が、最も早い値（各列車の最も早い出発時刻）を取得するようにして、実行可能解を求める処理である。実行可能解とは、制約をすべて満たす解のことである。求解は一般的な制約プログラミングの技法を用いて行う。なお、運転整理装置１０２の記憶装置には、制約プログラミングエンジンとして、制約プログラミング実行エンジン１１３が保持されており、これをＣＰＵ２０１が実行することによって解を求める。なお、制約プログラミング実行エンジン１１３としては、一般的に入手可能な制約プログラミングエンジンを適用可能である。
【００７２】
（３.３.１制約変数決定の処理）
ここで、使用する制約プログラミング実行エンジン１１３の動作について、その概略を説明する。なお、ここで使用する制約プログラミングエンジンにおいて、制約変数（与えられた制約をすべて満たすように値を決定する対象である変数）がとりうる値は整数とする。また、制約は制約式で表される。なお、ここで使用する制約プログラミングエンジンでは、制約式は線形に限定している。
【００７３】
また、各制約変数にはドメインと呼ぶ、取りうる値の範囲（不連続範囲も許す）を記憶する領域が付与されている。ドメインは、制約を順次評価することによって変化して行く。ドメインの初期値は理想的には整数全体であるが、実装上は、例えば32ビットで表せる−2,147,483,648〜＋2,147,483,647としたり、64ビットあるいはそれ以外で表せる範囲にしたりしてよい。また、制約式には、それに含まれる制約変数を記憶する領域が付与されており、また、制約変数には、当該制約変数が含まれている制約式を記憶する領域が付与されているとする。
【００７４】
また、ドメインは、２.１ダイヤのデータ構造で述べた、ダイヤのデータ構造の変形、及びそれに基づいた検索処理によって得られる。
【００７５】
制約プログラミング実行エンジン１１３における制約変数決定の処理概要を以下に示す。本実施例では、各列車の出発時刻又は到着時刻が制約変数である。
【００７６】
（１）値がまだ一つに定まっていない制約変数Ｘ（ドメインがまだ整数一つにまでで変化していない制約変数）を一つ選択する。
【００７７】
（２）制約変数ＸのドメインDにある整数ａを一つ決め、制約式((Ｘ＝ a) or (Ｘ ≠ a))を加える。
【００７８】
（３）上記（２）で加わった制約式を評価する。Ｘ＝ aという制約式は、Ｘのドメインをaただ一つにすることで実行される。また、Ｘ≠aという制約式は、Ｘのドメインからaを削除することで実行される。また、制約式中の「or」という論理式は、片方の論理式を評価し、その後、論理式の評価結果に矛盾が見つかったらもう片方の論理式を評価するという動作を行う。
【００７９】
（４）ある制約変数が評価されると、その当該制約変数が含まれる制約式に対し、当該制約変数のドメインが変化したことを通知する。
【００８０】
（５）自身に含まれる制約変数のドメインが変化したことを受信した制約式は、当該制約変数ではない、自身に含まれる他の制約変数に対し、再評価を依頼する。
【００８１】
（６）再評価依頼を受け取った制約変数は、依頼元の制約式を評価し、自身のドメインが変化するか調査する。例えばＸ＝aY＋bという形で、制約変数Yのドメインが変化した場合、ＸのドメインもＸ＝aY＋bという関係に従って変化する。また、Ｘ≧aY＋bという形では、aが正でありYのドメインの最小値が変化（増大）している場合、Ｘのドメインの最小値が変化（増大）する。また、aが負でありYのドメインの最大値が変化（減少）している場合、Ｘのドメインの最小値が変化（増大）する。また、Ｘ≦aY＋bという形では、aが正でありYのドメインの最大値が変化（減少）している場合、Ｘのドメインの最大値が変化（減少）する。また、aが負でありYのドメインの最小値が変化（増大）している場合、Ｘのドメインの最大値が変化（減少）する。これら以外の場合ではＸのドメインは変化しない。
【００８２】
（７）ドメインが変化した結果、どれか一つ以上の制約変数のドメインがなくなった（空集合となった）場合、矛盾となる。この場合、「or」の論理式が評価された点まで処理を戻し、「or」のもう一つの論理式を評価していく。なお、「or」の論理式が見つからなければ、解なしとして回答する。
【００８３】
なお、上記の（２）において制約変数Ｘに対する整数aの決め方には任意性がある。例えば鉄道の例において最も早い値を見つける場合、aはドメインDの最小値を選択する。また、最も遅い値を見つける場合、aとしてはドメインDの最大値を選択する。
【００８４】
ステップ４０８は、運転整理装置１０２のＣＰＵ２０１が、求められた解を予測ダイヤとして出力する処理である。なお、本予測では番線を変更しないため、番線は実行ダイヤのデータをそのまま転記する。
【００８５】
（３.４ステップ３０４における処理の詳細：許容遅延予測）
次に、ステップ３０４における処理の詳細について、運転整理装置１０２における許容遅延予測処理の概要を示した図５を用いて説明する。即ち、以下の処理では、各列車のダイヤを変更した際に許容できる遅延時間を設定する。なお、許容遅延予測処理は予測処理同様、各列車の各駅における発車時刻、到着時刻を求める処理である。上記の（３.３ステップ３０３における処理の詳細：予測）で説明した予測処理との違いは、終着駅における到着時刻が最も遅い到着時刻を許容遅延として予測を行う点にある。よって、実際には予測処理と同じ列車運行予測エンジン１１１を用いて、その一部の処理を、予測処理または許容遅延予測処理のいずれかによって分岐しても良い。以下、処理について説明するが、ステップ５０１からステップ５０６は予測処理（図４のステップ４０１〜４０６）と同様であり、説明を省略する。
【００８６】
ステップ５０７は、運転整理装置１０２のＣＰＵ２０１が、終着駅における到着時間制約を作成する処理である。これは、予め定められた許容遅延時間Ｌと実行ダイヤを元に、各列車の終着駅について、
到着時間＝実行ダイヤにおける到着時間＋Ｌ
という制約を作成することによって実行される。許容遅延時間Ｌは、各列車や運行時間帯（駅間）によって変えることもできるが、本実施例ではＬは一定とする。
【００８７】
ステップ５０８は、運転整理装置１０２のＣＰＵ２０１が、最も遅い値（各列車の最も遅い到着時刻）を取得するようにして、実行可能解を求める処理である。予測処理では最も早い値を取得していたが、本処理では最も遅い値としている点が異なる。
【００８８】
ステップ５０９は、運転整理装置１０２のＣＰＵ２０１が、求められた解を許容遅延予測ダイヤとして出力する処理である。なお、本予測では番線を変更しないため、番線は実行ダイヤのデータをそのまま使用する。
【００８９】
なお、本処理においては、最小停車時間に対し調整を加えても良い。このようにすることで、列車が遅延した場合、乗降に時間がより長くかかるようになるという現象を反映させることができる。調整方法は、最小停車時間に対し一律10秒等、定数を加算する方法や、遅延時間もしくは直前列車との間隔を利用（定数を掛けた値を加算し、下限、上限で打ち切る等）する方法が考えられる。
【００９０】
（３.５ステップ３０４許容遅延予測処理実行後の予測画面出力）
ステップ３０４の予測処理を実行した後、予測ダイヤや許容遅延予測結果を画面に出力しても良い。その画面例を図１３に示す。
【００９１】
図１３は、図１２に示したダイヤスジ（１２０３、１２０８、１２０４）に加えて、予測ダイヤスジ１３０４、許容遅延予測ダイヤスジ１３０５、遅延時間領域１３０６、及び許容遅延時間残存領域１３０７が表示されている。
【００９２】
予測ダイヤスジ１３０４は予測ダイヤ１０８を模式的に表示する線である。許容遅延予測ダイヤスジ１３０５は許容遅延予測ダイヤ１０９を模式的に表示する線である。遅延時間領域１３０６は実施ダイヤ１２０３に対し、予測された遅延をしている領域である。許容遅延時間残存領域１３０７は許容遅延予測ダイヤ１３０５に対して、予測されたダイヤが持っている余裕を表現している領域である。
【００９３】
このようにある列車について、実施ダイヤ１０５、予測ダイヤ１０６、及び許容遅延予測ダイヤ１０９を表示し、さらに遅延時間領域１３０６や許容遅延時間残存領域１３０７を色や塗りつぶしの形態等で領域として表示することにより、どの程度遅延しているのか、あるいは、終着駅に許容遅延時間Ｌで到着するダイヤに対し、どの程度余裕があるのかが一目で分かるように表示させることができる。
【００９４】
なお、領域の表示であるが、その領域の狭さによって色や濃度を変えても良い。例えば領域が狭い場合、余裕がないということであり、濃い赤など一般に警告として用いられている色を使うことが考えられる。また、遅延が大きい予測スジほど浮き上がって見えるようにするなど、遅延量を３次元表示するといった方法も考えられる。
【００９５】
また、許容遅延予測処理を実施ダイヤに対して行うこともできる。これは実績として何もない状態とし、実行ダイヤを実施ダイヤと同じ状態にして許容遅延予測処理を行えばよい。このようにすると、実施ダイヤが許容遅延予測ダイヤに対しどの程度余裕を持っているかということを評価することができる。このため、実施ダイヤの頑健性評価という目的に使うことが可能である。
【００９６】
（３.６ステップ３０５における処理の詳細：許容遅延考慮提案）
次に、ステップ３０５における処理の詳細について、運転整理装置１０２における許容遅延考慮提案処理の概要を示した図６Ａ及び図６Ｂを用いて説明する。以下の処理では、ステップ３０３の処理によって予測された許容遅延超過列車の数を減少させるために、列車同士の追い越し順序や追い越しを行う駅（交点）や番線を変更した各列車のダイヤを生成する。
【００９７】
図６Ａ及び図６Ｂにおけるステップ６０２〜６１５の大きなループでは、予測ダイヤで、列車単位に、終着駅における到着時刻が許容遅延時間Ｌ以上遅れた列車（許容遅延超過列車）の数を減少させるための処理が行われる。ステップ６０２〜６０５及びステップ６０６〜６１０の小ループでは、始発駅から交点までの各駅単位で、番線の変更処理が行われる。ステップ６１１〜６１５の小ループでは、始発駅から交点までの各駅単位で、列車の発車順序の変更処理が行われる。
【００９８】
図６Ａのステップ６０１は、運転整理装置１０２のＣＰＵ２０１が、変数Ｎに予測ダイヤにおける許容遅延超過列車数を代入する処理である。これは、
各列車の終着駅における予測ダイヤ上の到着時間−各列車の終着駅における実施ダイヤ上の到着時間＞許容遅延時間Ｌ
となっている列車の数をＮに代入することで実行される。変数Ｎの値は、実施ダイヤ１０５と予測ダイヤ１０６を検索することによって得られ、本ステップ３０５を実施する前の許容遅延超過列車数を示す。
【００９９】
各列車について以下の処理を実行する。
ステップ６０２は、運転整理装置１０２のＣＰＵ２０１が、予測ダイヤにおいて許容遅延を超過した各列車を取り出す処理である。もし、列車があれば、ステップ６０３へ進む。各列車に対する処理の後、終了する。
【０１００】
ステップ６０３は、運転整理装置１０２のＣＰＵ２０１が、作業変数MinNにNを代入する処理である。作業変数MinNは、本ステップ３０５による許容遅延超過列車数Ｎの減少の有無を判断するための変数である。
【０１０１】
ステップ６０４は、運転整理装置１０２のＣＰＵ２０１が、当該列車の予測ダイヤと当該列車の許容遅延予測ダイヤの交点を検索する処理である。交点の検索の際に、２つの列車の始発駅における発車時刻の順序と終着駅における到着時刻の順序とが同じであれば列車ダイヤの交点は無く、双方の順序が逆転していれば列車ダイヤの交点が存在するので、この条件に基づいてダイヤの交点の検索対象を絞り込むことができる。
【０１０２】
交点検索では、予測ダイヤと許容遅延予測ダイヤにおいて、始発駅から検索を始め、
当該列車の予測ダイヤの出発時刻＜当該列車の許容遅延予測ダイヤの出発時刻
である間、次の駅を検索して行き、
当該列車の予測ダイヤの出発時刻≧当該列車の許容遅延予測ダイヤの出発時刻
となった最初の駅が交点となる。
なお、始発駅から
当該列車の予測ダイヤの出発時刻≧当該列車の許容遅延予測ダイヤの出発時刻
となっていた場合は交点がないとする。
【０１０３】
ステップ６０５は、運転整理装置１０２のＣＰＵ２０１が、交点ありかどうか調べる処理である。もし交点ありなら、ステップ６０６へ進む。もし交点がなければ、又は全ての交点についての以下の処理が終了したら、図６Ｂのステップ６１６へ進む。
【０１０４】
ステップ６０６は、運転整理装置１０２のＣＰＵ２０１が、交点よりも早い時間において、番線変更可能な各駅を取り出す処理である。これは、始発駅から交点までにおける予測ダイヤ１０８において、図１１の情報に基づいて、
当該駅到着時刻−直前駅発車時刻＞当該区間基準運転時間
（即ち、駅間の運行時間が基準運転時間よりも長い、即ち運行速度が基準よりも遅い）であり、かつ図９の情報に基づいて当該駅の使用番線が属する番線グループに複数の番線が属しているという駅を取り出すことで実行される。
もし、上記の条件を満たす駅があれば、ステップ６０７へ進む。各駅に対する処理が終了した後、図６Ｂのステップ６１１へ進む
ステップ６０７は、運転整理装置１０２のＣＰＵ２０１が、番線変更し、予測実行する処理である。これは、当該駅における使用番線を他番線に変更した実行ダイヤ（実行ダイヤの当該駅における番線を書き換える）を作成し、３.３ステップ３０３における処理の詳細：予測にて説明した処理と同様に予測処理を実行する。
【０１０５】
ステップ６０８は、運転整理装置１０２のＣＰＵ２０１が、新予測によって許容遅延を超過した列車数をNowNに代入する処理である。
【０１０６】
ステップ６０９は、運転整理装置１０２のＣＰＵ２０１が、新予測において、当該列車の遅延が許容遅延内であって、かつNowN＜MinN（新予測により許容遅延超過列車数が減少した）であるかどうかを調べる処理である。もし新予測によって、当該列車の遅延が許容遅延内であって、かつNowN＜MinNであれば、ステップ６１０へ進む。そうでなければ、ステップ６０６へ戻り、次の駅について同様の処理を行う。
【０１０７】
ステップ６１０は、運転整理装置１０２のＣＰＵ２０１が、作業変数MinNにNowNを代入し、本ステップ３０５による許容遅延超過列車数Ｎの減少の有無を判断するための変数を更新する処理である。
【０１０８】
図６Ｂのステップ６１１は、運転整理装置１０２のＣＰＵ２０１が、交点よりも早い時間において、他列車と出発順序変更可能な駅を取り出す処理である。
【０１０９】
これは、始発駅から交点までにおける予測ダイヤ１０８において、当該駅における出発順序において、当該列車の直前列車がその前駅における前列車のいずれとも異なるように発車順序の変更が可能な駅を検索することで実行される。なお、直前列車が前の駅における前列車のいずれとも異なる場合というのは、当該駅において直前列車が当該列車を追い越す場合や、当該駅において直前列車が他の線路もしくは線区から入線した場合を含んでいる。この場合、直前列車を待避する駅を後にすることや、直前列車の進入を遅らせるといった順序変更が可能である。
【０１１０】
もし、上記の条件を満たす駅があれば、ステップ６１２へ進む。各駅に対する処理が終了した後（出発順序変更が可能な駅の検索が終了）、図６Ａのステップ６０２へ進む
ステップ６１２は、運転整理装置１０２のＣＰＵ２０１が、列車の発車順序を変更し、列車の発車時刻を予測する処理である。ここでは、直前列車の実行ダイヤにおける到着時刻および出発時刻を、当該列車の実行ダイヤにおける出発時刻以降に変更した実行ダイヤを作成し、その後３.３ステップ３０３における処理の詳細：予測にて説明した処理と同様に予測処理を実行する。
【０１１１】
ステップ６１３は、運転整理装置１０２のＣＰＵ２０１が、NowNに新予測における許容遅延許可列車数を代入する処理である。
【０１１２】
ステップ６１４は、運転整理装置１０２のＣＰＵ２０１が、新予測において、当該列車の遅延が許容遅延内であって、かつNowN＜MinN（即ち、列車の発車順序変更により許容遅延超過列車数が減少した）であるかどうかを調べる処理である。もし新予測において、当該列車の遅延が許容遅延内であって、かつNowN＜MinNであれば、ステップ６１５へ進む。そうでなければ、ステップ６１１へ戻り、出発順序の変更が可能な次の駅について同様の処理を行う。
【０１１３】
ステップ６１５は、運転整理装置１０２のＣＰＵ２０１が、MinNにNowNを代入し、本ステップ３０５による許容遅延超過列車数Ｎの減少の有無を判断するための変数を更新する処理である。
【０１１４】
ステップ６１６は、運転整理装置１０２のＣＰＵ２０１が、MinN＜Nであるかどうかを調べる処理である。即ち、図６Ａ及び６Ｂの処理により、当初の予測ダイヤよりも許容遅延超過列車数が減少したかどうかを調べる。もしMinN＜Nであれば、ステップ６１７へ進む。もしMinN＜Nでなければ、ステップ３０５の処理を終了する。
【０１１５】
ステップ６１７は、運転整理装置１０２のＣＰＵ２０１が、MinNを与えたダイヤ変更（当初の予測ダイヤよりも許容遅延超過列車数が減少したダイヤ）を提案する処理である。
【０１１６】
以上に述べた図６Ａ、６Ｂの処理によって番線や列車の発車順序を変更することで、許容遅延超過列車数を少なくすることができる。
【０１１７】
ダイヤ変更提案について、出発順序変更提案の画面例を示した図１４を用いて説明する。図１４には、列車スジ表示ウィンドウ１２０１及び、提案承認ボタン１４１１と提案却下ボタン１４１２を含む提案ウィンドウ１２１０が表示されている。列車スジ表示ウィンドウ１２０１には、図１３に示したダイヤスジ（１２０３、１２０８、１２０４、１３０４、１３０５）に加えて、駅Ｂ出発後の列車の予測ダイヤスジ１３０４を矢印１２１２方向に移動させた、許容遅延考慮提案における列車ダイヤ１４０９が表示されている。
【０１１８】
図１４のように、提案ウィンドウ１２１０に提案内容が表示され、指令員は提案を承認する場合は提案承認ボタン１４１１を選択し、提案を却下する場合は提案却下ボタン１４１２を選択することにより、提案の採否を運転整理装置１０２に入力することができる。
【０１１９】
図１４では、列車ダイヤ１３０４の駅Ｂにおける停車時間を延長し、駅Ｂにおける発車時刻が、破線で示した列車ダイヤ１３０４の発車時刻を実線で示した変更後の通過列車ダイヤ１２０４の駅Ｂの通過時刻よりも後に変更されている。
【０１２０】
（４．他の実施例）
なお、上記した実施例に限定されない、様々な変形例も可能である。例えば、上記した実施例で説明した全ての構成を備えるものに限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１２１】
また、上記の各構成、機能、処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０１２２】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【０１２３】
また、本明細書では「終着駅」という用語を用いているが、実施例の一つに過ぎず、駅でないポイント（ただし駅同様にダイヤあり）であっても構わない。また、許容遅延ダイヤを求める箇所は、終着駅でなく途中駅であってもよい。このようにすると、ある特定の大きな中間駅での遅延を一定に抑えるといったことが可能となる。
【符号の説明】
【０１２４】
１０２：運転整理装置、１０５：実施ダイヤ、１０６：実行ダイヤ、１０７：実績ダイヤ、１０８：予測ダイヤ、１０９：許容遅延予測ダイヤ、１１０：基礎情報、１１１：列車運行予測エンジン、１１２：許容遅延考慮提案エンジン、１１３：制約プログラミング実行エンジン、２０１：ＣＰＵ、２０２：メモリ、２０３：内部バス、２０４：ネットワークインタフェース、２０５：キーボード、２０６：表示装置、２０７：時計、２０８：ハードディスク、２０９：マウス、２１０：端末、１２０１：列車スジ表示ウィンドウ、１２０２：ポインタ、１２１０：提案ウィンドウ、１４１１：提案承認ボタン、１４１２：提案却下ボタン
【図１】
2014040161.tif 000003
【図２】
2014040161.tif 000004
【図３】
2014040161.tif 000005
【図４】
2014040161.tif 000006
【図５】
2014040161.tif 000007
【図６Ａ】
2014040161.tif 000008
【図６Ｂ】
2014040161.tif 000009
【図７】
2014040161.tif 000010
【図８】
2014040161.tif 000011
【図９】
2014040161.tif 000012
【図１０】
2014040161.tif 000013
【図１１】
2014040161.tif 000014
【図１２】
2014040161.tif 000015
【図１３】
2014040161.tif 000016
【図１４】
2014040161.tif 000017