列車の進路制御のために地上設備に対する制御命令を発行する進路制御プログラムを、進路制御プログラム生成装置によって生成する方法であって、進路制御プログラム生成装置の線路配線入力部が、複数の閉そく区間から構成される線路の線路配線情報を受け付けるステップと、進路制御プログラム生成装置の幾何パターン抽出部が、前記複数の閉そく区間各々について、前記線路配線を構成する他の一の閉そく区間とで構成される二つの閉そく区間の組み合わせ各々について、当該二つの閉そく区間の間の幾何的関係を、あらかじめ定められた複数の幾何パターン種別の一を用いて定義するステップと、進路制御プログラム生成装置の制御ロジック選択部が、前記二つの閉そく区間の組み合わせ各々について、当該二つの閉そく区間の一つへの列車の進入可否の判断に用いられるロジックを、当該二つの閉そく区間の組み合わせに対して定義された幾何パターン種別に基づいて選択するステップと、進路制御プログラム生成装置のプログラムモジュール結合部が、前記制御ロジック選択部によって選択された複数のロジックによって特定される複数のプログラムモジュールを結合して、前記進路制御プログラムを生成するステップとを有することを特徴とする、進路制御プログラム生成方法。請求項1記載の進路制御プログラム生成方法であって、二つの閉そく区間の幾何的関係は、当該二つの閉そく区間について、一方の閉そく区間の端点と他方の閉そく区間の端点の重複についての基準、一方の閉そく区間に包含される他方の閉そく区間の端点についての基準、および各閉そく区間への列車の進入方向についての基準に基づいて分類され、前記幾何パターン抽出部は、複数の前記基準に従って、前記二つの閉そく区間の組み合わせ各々について、当該二つの閉そく区間の間の幾何的関係を表す幾何パターン種別を選択することを特徴とする進路制御プログラム生成方法。請求項2記載の進路制御プログラム生成方法であって、前記進路制御プログラム生成装置は複数の制御ロジックを備えており、前記複数の制御ロジックは各々、進路決定ロジックタイプ、順序判断ロジックタイプ、衝突脱線防止ロジックタイプの三種類の種別のいずれかに分類されており、前記複数の幾何パターン種別には各々、当該幾何パターン種別が満たす前記基準に従って、必要な制御ロジックの種別が定義されており、前記制御ロジック選択部は、前記二つの閉そく区間の組み合わせ各々について、当該二つの閉そく区間の組み合わせに対して選択された幾何パターン種別について必要だと定義されている制御ロジック種別に属する制御ロジックを、前記複数の制御ロジックの中から選択することを特徴とする進路制御プログラム生成方法。請求項3記載の進路制御プログラム生成方法であって、更に、前記二つの閉そく区間の組み合わせ各々について、当該二つの閉そく区間の組み合わせに対して選択された幾何パターン種別を表示するステップを有することを特徴とする進路制御プログラム生成方法。請求項1記載の進路制御プログラム生成方法であって、前記線路配線入力部は、線路配線情報として、前記線路の構成要素を一以上の線分として表した線路形状情報と、前記複数の閉そく区間各々について当該閉そく区間の構成要素を前記線路形状情報に含まれる線分の集合で表した閉そく形状情報とを受け付け、前記線路形状情報に含まれる線分のうち、いずれの閉そく区間の閉そく形状情報にも含まれない線分が存在する場合に、エラーメッセージを出力することを特徴とする進路制御プログラム生成方法。地上設備に制御命令を発行して列車の進路制御を実行する列車進路制御装置であって、線路を構成する複数の閉そく区間各々について、当該閉そく区間と前記線路を構成する一以上の他の閉そく区間各々との間の幾何的関係を登録した閉そく情報と、各幾何的関係について、当該幾何的関係を構成する二つの閉そく区間の識別情報と、あらかじめ定められた複数の幾何パターン種別のいずれに当該幾何的関係が分類されるかを示した幾何パターン種別と、当該幾何パターン種別に基づいて当該幾何的関係に対して選択された制御ロジックとを登録した幾何情報と、処理対象の閉そく区間への列車の進入可否を判定する閉そく予約管理部とを有しており、前記閉そく予約管理部は、前記処理対象閉そく区間について、当該処理対象の閉そく区間と他の閉そく区間との間の一以上の幾何的関係を前記閉そく情報より特定し、特定された各幾何的関係について、当該幾何的関係について登録されている制御ロジックを用いて、当該幾何的関係を構成する他の閉そく区間への列車の在線状況もしくは進入予定に基づき、当該処理対象閉そく区間への列車の進入可否を判定することを特徴とする列車進路制御装置。請求項6記載の列車進路制御装置であって、前記幾何的関係は、当該幾何的関係を構成する二つの閉そく区間について、一方の閉そく区間の端点と他方の閉そく区間の端点の重複についての基準、一方の閉そく区間に包含される他方の閉そく区間の端点についての基準、および各閉そく区間への列車の進入方向についての基準に基づいて分類され、前記幾何情報は、前記分類に基づいて定められる各幾何的関係の幾何パターン種別に基づいて選択された制御ロジックを登録していることを特徴とする列車進路制御装置。請求項7記載の列車進路制御装置であって、制御ロジックは各々、進路決定ロジックタイプ、順序判断ロジックタイプ、衝突脱線防止ロジックタイプの三種類の種別のいずれかに分類されており、幾何パターン種別には各々、当該幾何パターン種別が満たす前記基準に従って、必要な制御ロジックの種別が定義されており、前記幾何情報は、各幾何的関係について、当該幾何的関係の幾何パターン種別にとって必要だと定義されている制御ロジック種別に属する制御ロジックを登録していることを特徴とする列車進路制御装置。進路制御装置は駅の線路配線に応じてプログラムを構築する必要があるが、駅の線路配線は多様であるため、現状では線区や駅ごとに独自のプログラムが開発されている。また、線路配線の改修が行われた際にはプログラムの修正が必要である。ところが近年、線路配線の複雑化や制御の高度化によりプログラムが大規模化してきており、線区や駅ごとに独自プログラムを構築する方式では人材の確保が難しくなってきている。結果として、プログラム品質の低下や開発の長期化、コストの増大を招いている。そのため、線路配線が異なる線区や駅であっても共通的な方法によって、進路制御装置およびそのプログラムを開発できる手法が求められている。列車の進路制御のために地上設備に対する制御命令を発行する進路制御プログラムを生成する方法であって、当該方法は、複数の閉そく区間から構成される線路の線路配線情報を受け付けるステップと、複数の閉そく区間各々について、線路配線を構成する他の一の閉そく区間とで構成される二つの閉そく区間の組み合わせ各々について、当該二つの閉そく区間の間の幾何的関係を、あらかじめ定められた複数の幾何パターン種別の一を用いて定義するステップと、二つの閉そく区間の組み合わせ各々について、当該二つの閉そく区間の一つへの列車の進入可否の判断に用いられるロジックを、当該二つの閉そく区間の組み合わせに対して定義された幾何パターン種別に基づいて選択するステップと、選択された複数のロジックによって特定される複数のプログラムモジュールを結合して進路制御プログラムを生成するステップを有する。また、地上設備に制御命令を発行して列車の進路制御を実行する列車進路制御装置であって、当該列車進路制御装置は、線路を構成する複数の閉そく区間各々について、当該閉そく区間と線路を構成する一以上の他の閉そく区間各々との間の幾何的関係を登録した閉そく情報と、各幾何的関係について、当該幾何的関係を構成する二つの閉そく区間の識別情報と、あらかじめ定められた複数の幾何パターン種別のいずれに当該幾何的関係が分類されるかを示した幾何パターン種別と、幾何パターン種別に基づいて当該幾何的関係に対して選択された制御ロジックを登録した幾何情報と、処理対象の閉そく区間への列車の進入可否を判定する閉そく予約管理部とを有しており、閉そく予約管理部は、処理対象閉そく区間について、当該処理対象の閉そく区間と一以上の他の閉そく区間との間の一以上の幾何的関係を閉そく情報より特定し、特定された各幾何的関係について、当該幾何的関係について登録されている制御ロジックを用いて、当該幾何的関係を構成する他の閉そく区間への列車の在線状況もしくは進入予定に基づき、当該処理対象閉そく区間への列車の進入可否を判定する。実施態様の一例によれば、線路配線が異なる線区や駅であっても共通的な方法に進路制御装置を開発することができ、線路形状に応じて進路制御プログラムや進路制御装置を簡便に開発することが可能となる。また、実施態様の一例によれば、進路制御プログラム生成に用いられるプログラムモジュールは様々な進路制御装置へと再利用することが可能となるため、再利用性の向上による開発工数や開発期間、開発コストの削減が可能となる。さらに、実施態様の一例によれば、同一のプログラムモジュールが多種の製品に組み込まれテストされることによる品質の向上が実現できる。加えて、実施態様の一例によれば、プログラムモジュールの更新が行われた際、容易に多数の進路制御プログラム群へ反映させることが可能となり、バグの修正や先進的な追加機能を迅速に進路制御装置製品群へと適用できるようになる。以下、本発明の一実施形態を図1~図21を参照して詳細に説明する。図20は列車運行計画と列車の在線位置や信号機、転轍機などの設備状態を監視しながら列車の運行を管理する鉄道運行管理システムのシステム全体構成例で、進路制御装置9900と計画系システム9910と地上装置9920と列車9930と地上設備群9940図では軌道回路9941と信号機9942と転轍機9943のみ記載から構成される。進路制御装置9900は計画系システム9910によって決定された列車ダイヤ情報および地上設備9920によって収集された地上設備群9940の状態をネットワークを介して受信して内部に保持しており、軌道回路9941から得られる列車9930の在線位置と列車ダイヤ情報に記載された出発時刻や計画進路を参照して列車9930の進路上に設置されている信号機9942や転轍機9943を地上装置9940を介して制御する。後述する進路制御プログラム生成装置100では進路制御装置9900を動作させるプログラムを生成する。計画系システム9910は列車ダイヤや車両運用計画、点検保守計画など列車の運行に関連する計画の作成を支援するシステムで、進路制御装置9900とネットワークを介して接続されている。地上装置9940は進路制御装置9900とネットワークを介して接続されており、進路制御装置9900からの制御要求に対して信号機9942、転轍機9943の反位制御を行う。また信号機9942や転轍機9943の状態や軌道回路9941の状態を監視し、結果を進路制御装置9900に伝達する。列車9930は内部にATSやATCといった列車の自動停止や自動制御を行うための安全装置、車上の詳細な動作状態や故障情報を収集表示記録する情報管理システムなどの車上装置を有している。また車上装置が有する情報はデジタル無線を介して地上装置9920に送信する事が可能である。本実施形態では列車9930の在線位置を軌道回路9941の状態から判断する事を想定しているが、例えば車上装置が自列車の位置を算出または計測して、デジタル無線を介して地上装置に伝達することにより列車9930の在線位置を判断してもよい。図21は進路制御プログラム生成装置100により生成される進路制御装置9900を動作させるためのプログラムである進路制御プログラム1400の動作概念図である。進路制御プログラム1400は、計画系システム9910から受け取った計画情報、地上装置9920から受け取った地上設備群情報を用いて信号機の制御判断を行い、地上装置9920に対して信号機の進行現示制御を要求するプログラムである。進路制御プログラム1400は、線路9901を閉そくの集合として管理する。ここで、閉そくとは信号機の防護区間のことであり、信号機の内方区間に設置された第一内方軌道回路から最終内方軌道回路までの線路領域を指す。図21に示す線路には、閉そくA9011、閉そくB9012、閉そくC9013、閉そくD9014、閉そくE9015、閉そくF9016が存在する。閉そくへの列車進入許可を運転手や指令員へと指示する装置が信号機であり、例えば閉そくへの列車進入許可は青信号を現示進行現示することにより、閉そくへの列車進入不許可は赤信号停止現示を現示することにより指示する。図21においては、例えば信号機D9021が進行現示であれば列車U9032は閉そくD9014へ進入することができるが、信号機D9021が停止現示であれば列車U9032は閉そくD9014へ進入することができない。進路制御プログラム1400では信号機の制御を列車による閉そくの予約という方式を用いて実現する。ここで、閉そくが列車により予約されるとは、当該閉そくに対して次に進入する列車が当該列車であると進路制御装置9900により決定されたことを意味する。閉そくが予約された際には、進路制御装置9900は当該閉そくを防護区間とする信号機の進行現示要求を地上装置9920に対して行う。閉そくの予約は列車が在線している閉そくを起点として開始され、列車の進路に沿って当該列車に近い閉そくから順に行う。図21においては、例えば列車T9031を起点として開始された予約処理は、進路9033に沿って閉そくC9013、閉そくE9015、閉そくF9016の順に行われる。予約処理は失敗した時点で終了とし、例えば前記例において閉そくE9015の予約が失敗した場合は閉そくF9016以降の予約は行わない。進路制御プログラム1400では進路制御装置の制御原理として進路決定、順序管理、衝突脱線防止の3つが定義されており、各制御原理を実現するロジックである制御ロジックが二つの閉そくの間で定義された幾何パターン種別後述と対応付けられている。閉そくの予約が行われる際、当該閉そくが持つ幾何パターン種別に対応付けられた制御ロジックが実行される。図21においては、例えば幾何パターン9041を持つ閉そくである閉そくB9012および閉そくC9013が予約される際には進路決定に対応する制御ロジックが、幾何パターン9042を持つ閉そくである閉そくD9014および閉そくE9015が予約される際には順序管理に対応する制御ロジックが、幾何パターン9041あるいは幾何パターン9042を持つ閉そくである閉そくB9012、閉そくC9013、閉そくD9014、閉そくE9015が予約される際には衝突脱線防止に対応する制御ロジックが実行される。図1Aは進路制御プログラム生成装置100のハードウェア構成例である。進路制御プログラム生成装置100のハードウェアは、中央処理装置110と主記憶装置120と内部バス130とバスインタフェース140と外部バス150と入出力装置160と入出力装置インタフェース161と大容量記憶装置170と大容量記憶装置インタフェース171と通信装置180と通信装置インタフェース181から構成される。中央処理装置110はプログラム実行等の演算を行うためのプロセッサである。主記憶装置120はプログラム実行時の処理領域および計画系システム9910や地上装置9920との送受信に使用するデータの一時格納領域として使用し、例えばOSOperatingSystemなどの基本プログラムや基本データを格納する。更に主記憶装置120は、線路配線入力部211、幾何パターン抽出部212、制御ロジック選択部213、プログラムモジュール結合部214、コントローラ部220、画面管理部230、入力インタフェース241、出力インタフェース242を実現するプログラムをプログラム実行時に一時的に格納する。中央処理装置110と主記憶装置120は内部バス130により接続されており、内部バス130はバスインタフェース140を介して外部バス150に接続されている。入出力装置160はディスプレイやキーボード、マウスなど、ユーザとのインターフェースデバイスおよび外部媒体に読み書き可能なドライブ装置などであるである。ユーザはキーボードやマウスなどの入力デバイスを用いてプログラムの実行を制御することができる。大容量記憶装置170は例えばHDDHardDiskDriveといった装置であり、基本プログラムや処理結果、線路配線入力部211、幾何パターン抽出部212、制御ロジック選択部213、プログラムモジュール結合部214、コントローラ部220、画面管理部230、入力インタフェース241、出力インタフェース242を実現するプログラムなどを永続的に記憶することができる。各種処理実行の際には中央処理装置110が主記憶装置120にプログラムを読み出して実行する。また、線路形状テーブル251や閉そく形状情報テーブル252、幾何パターン格納テーブル253、幾何パターン決定用テーブル254、選択済み制御ロジック格納テーブル255、幾何パターン制御ロジック種別対応表300、制御ロジックインデックステーブル400、制御ロジックライブラリ256、鉄道運行管理コアモジュールライブラリ257などの各種データが格納される。通信装置180は例えばEthernet登録商標といった外部サーバ装置などと接続するための装置であり、進路制御プログラム生成装置100が生成したプログラムをネットワークを通じて外部サーバ装置へと提供することができる。通信装置180を用いることにより、例えば進路制御プログラム生成装置100の機能をネットワークを通じた先に接続されている計算機に対してサービスとして提供することが可能となる。入出力装置160と大容量記憶装置170と通信装置180はそれぞれ入出力装置インタフェース161と大容量記憶装置インタフェース171と通信装置インタフェース181を介して外部バス150と接続されている。入出力装置160や大容量記憶装置170、通信装置180を含めた構成を進路制御装置100であるとしてもよい。尚、進路制御装置9900も図1Aに示すハード構成例と同様のハードウェア構成を有している。進路制御プログラム生成装置100との主な違いは、主記憶装置120および大容量記憶装置170に格納されているソフトウェア、データであり、これについては図14Aを用いて後述する。図1Bは進路制御プログラム生成装置100のソフトウェア構成例である。進路制御プログラム生成装置100のソフトウェアは、線路配線入力部211と幾何パターン抽出部212と制御ロジック選択部213とプログラムモジュール結合部214とコントローラ部220と画面管理部230と入力インタフェース241と出力インタフェース242と線路形状テーブル251と閉そく形状情報テーブル252と幾何パターン格納テーブル253と幾何パターン決定用テーブル254と選択済み制御ロジック格納テーブル255と幾何パターン制御ロジック種別対応表300と制御ロジックインデックステーブル400と制御ロジックライブラリ256と鉄道運行管理コアモジュールライブラリ257から構成される。線路配線入力部211と幾何パターン抽出部212と制御ロジック選択部213とプログラムモジュール結合部214とコントローラ部220と画面管理部230と入力インタフェース241と出力インタフェース242を実現するプログラムおよび幾何パターン決定用テーブル254と制御ロジックインデックステーブル256と制御ロジックライブラリ257と鉄道運行管理コアモジュールライブラリ258は実行時に大容量記憶装置170から主記憶装置120へと展開され、中央処理装置110により演算が行われる。また、プログラムの実行により生成された線路形状テーブル251と閉そく形状情報テーブル252と幾何パターン格納テーブル253と選択済み制御ロジック格納テーブル255は主記憶装置120へと展開される。ユーザはキーボードやマウス、ディスプレイなどの入出力装置160を介して入力インタフェース241へと指示を与えることによりプログラムの実行を制御することができる。また、入出力装置160として着脱可能で可搬性のある記憶媒体を用いることによりデータの入出力を行うことができる。通信装置180を通じ、他の装置との間で入出力を行うこともできる。各機能部を実現するプログラムは、予め大容量記憶装置170に格納されていてもよいし、利用可能な媒体を介して他の装置から大容量記憶装置170や主記憶装置120に導入されてもよい。媒体とは、例えば、入出力装置160としては着脱可能な記憶媒体、または、通信装置180としてはネットワーク、ネットワークを伝搬する搬送波やデジタル信号などの通信媒体を指す。線路配線入力部211は、ユーザから入力インタフェース241を介して線路配線および閉そくの入力情報を受け取り、線路形状情報テーブル251および閉そく形状情報テーブル252に登録する部分である。幾何パターン抽出部212は、線路形状情報テーブル251、閉そく形状情報テーブル252、幾何パターン決定用テーブル254を用いて二つの閉そく間の幾何パターン種別を判別し、結果を幾何パターン格納テーブル253に格納する部分である。制御ロジック選択部213は、幾何パターン格納テーブル253、幾何パターン制御ロジック種別対応表、制御ロジックインデックステーブル400を用いて選択可能な制御ロジックを選択して出力インタフェースを介してディスプレイに表示し、ユーザから入力インタフェース241を介して幾何パターンごとに実行される制御ロジックを受け取り、選択済制御ロジック格納テーブル255に登録する部分である。プログラムモジュール結合部214は、線路形状情報テーブル251、閉そく形状情報テーブル252、幾何パターン格納テーブル253、選択済制御ロジック格納テーブル255、制御ロジックインデックステーブル、制御ロジックライブラリ256、鉄道運行管理コアモジュールライブラリ257から進路制御装置9900を動作させるプログラムを生成する部分である。線路形状テーブル251と閉そく形状情報テーブル252と幾何パターン格納テーブル253と幾何パターン決定用テーブル254と選択済み制御ロジック格納テーブル255と幾何パターン制御ロジック種別対応表300と制御ロジックインデックステーブル400は構成例を用いて後述する。制御ロジックライブラリ256は多数の制御ロジックモジュールを格納したライブラリである。ここで、制御ロジックモジュールは制御ロジックモジュールを一意に識別するためのキーである制御ロジックIDを与えることにより一意に決定する。鉄道運行管理コアモジュールライブラリ257は、進路制御装置9900を動作させるプログラムを生成するにあたり必要なモジュールのうち制御ロジックモジュール以外のモジュールを格納したライブラリであり、例えば進路制御プログラム1400の通信管理部1460や入力インタフェース1471、出力インタフェース1472、計画系システム情報管理部1415、列車ダイヤ1487、地上設備群情報管理部1452、設備状態1488、閉そく予約管理部1410、予約処理中間データ格納テーブル1481、閉そく状態テーブル1484、閉そく進入列車テーブル1485を実現するモジュールを格納している。コントローラ部220はユーザからの入力情報を画面管理部230を介して受け取り、線路配線入力部211と幾何パターン抽出部212と制御ロジック選択部213とプログラムモジュール結合部214を制御する部分である。画面管理部230は入力インタフェース241を介してユーザからの入力情報を受け取り、コントローラ部421へと受け渡す部分である。また、線路配線入力部211と幾何パターン抽出部212と制御ロジック選択部213とプログラムモジュール結合部214の処理結果を受け取り、画面出力を出力インタフェース242へと受け渡す部分である。入力インタフェース241はユーザからの入力情報を受け取り、画面管理部230へと受け渡す部分である。出力インタフェース242は画面管理部から受け取った画面出力をディスプレイなどのユーザインタフェースへと出力する部分である。図2は進路制御プログラム生成装置100で使用する各種テーブルの一例を示している。図2Aは線路形状テーブル251の一例であり、線路要素ID、駅名、開始座標、終了座標を要素として持つ。線路要素IDには図7に示す線路配線入力窓730に入力された線路を表す線分を一意に識別するためのキーが格納されている。駅名には当該線分が所属する駅名が格納されている。開始座標および終了座標には、当該線分が持つ二つの端点の図7に示す線路配線入力窓730上における座標値がそれぞれ格納されている。図2Bは閉そく形状テーブル252の一例であり、閉そくID、発点座標、着点座標、対応線路要素ID、方向、隣駅境界を要素として持つ。閉そくIDには線路配線入力窓730に入力された閉そくを一意に識別するためのキーが格納されている。発点座標、着点座標には各々当該閉そくの発点、着点の線路配線入力窓730上における座標値が格納されている。ここで、発点とは閉そくに列車が進入する際に当該列車が当該閉そく外で最後に通過する場所を指し、着点とは閉そくから列車が進出する際に当該列車が当該閉そく内で最後に通過する場所を指す。例えば、図7に示す線路配線入力窓730おいて、735は閉そく733の発点、736は閉そく733の着点となっている。なお、735は閉そく733の発点であるが、735が指す線路位置は閉そく733には含まれない。また、736は同時に閉そく734の発点ともなっている。対応線路要素IDには、線路配線入力窓730上において当該閉そくが内部に包含している線分のすべてについて、線路形状テーブル251の線路要素IDの値が格納されている。例えば、図7に示す線路配線入力窓730おいて、閉そく733の内部に包含する線分は線分737、738、739である。方向には当該閉そくの方向が格納されている。ここで、閉そくの方向とは例えば上りおよび下りの2値から成る。図2Cは幾何パターン格納テーブル253の一例であり、幾何パターンID、幾何パターン種別、閉そく1ID、閉そく2IDを要素として持つ。幾何パターンIDには、二つの閉そくの組み、および当該二つの閉そく間の幾何的関係以降、幾何的関係を幾何パターンとも呼ぶを一意に識別するためのキーが格納されている。幾何パターン種別には当該幾何パターンがあらかじめ定義された22の幾何パターン種別のいずれに分類されるのかを示す幾何パターンの種別が格納されている幾何パターンの種別については図3を用いて後述する。閉そく1ID、閉そく2IDには、当該幾何パターンを構成する二つの閉そくを特定するために、閉そく形状テーブル252に定義されている当該閉そくの閉そくIDの値が格納されている。図2Dは選択済み制御ロジック格納テーブル255の一例であり、幾何パターンID、予約対象閉そく選定ロジック、順序判断ロジック、閉そく照査ロジック閉そく1→閉そく2、閉そく照査ロジック閉そく2→閉そく1を要素として持つ。幾何パターンIDは幾何パターン格納テーブル253の幾何パターンIDと同一である。予約対象閉そく選定ロジック、順序判断ロジック、閉そく照査ロジック閉そく1→閉そく2、閉そく照査ロジック閉そく2→閉そく1には各々、当該幾何パターンに対して図13に示す制御ロジック入力窓1310に入力された予約対象閉そく選定ロジック、順序判断ロジック、閉そく照査ロジックのそれぞれに対応する制御ロジックIDが格納されている。ここで、制御ロジックIDとは制御ロジックモジュールを一意に識別するためのキーであり、制御ロジックインデックステーブル400の制御ロジックIDと同一のものである。なお、予約対象閉そく選定ロジックとは制御原理のうち進路決定を実現するロジック、順序判断ロジックとは制御原理のうち順序管理を実現するロジック、閉そく照査ロジックとは制御原理のうち衝突脱線防止を実現するロジックである。図2Eは進路制御プログラム生成装置100で使用する幾何パターン決定用テーブル254の構成例である。幾何パターン決定用テーブル254は、幾何パターン分類基準、幾何パターン種別を要素として持つ。幾何パターン分類基準は重複端点数、重複端点種類、閉そく1に包含される閉そく2の端点数、閉そく1に包含される閉そく2の端点種類、閉そく2に包含される閉そく1の端点数、閉そく2に包含される閉そく1の端点種類、閉そく1と閉そく2の方向関係を要素として持つ。幾何パターン分類基準とは幾何パターン抽出部212が二つの閉そく間に定義される幾何パターン種別を判別する際に用いる情報である。幾何パターン種別とはそれぞれの幾何パターン分類基準を満たす幾何パターンについてその分類名称を与えたものであり、全部で22パターン種別存在する。なお、幾何パターン分類基準には物理的に実現不可能なものが存在し、それらについては幾何パターン種別を与えていない。図3に22の幾何パターン種別を示す。図3Aは幾何パターン決定用テーブル254のNo.1に登録されている交差Aの例である。矢印は線路を表しており、実線で表された分岐器、着点、矢印は閉そく1を、破線で表された分岐器、着点、矢印は閉そく2を表している。なお、閉そく1、閉そく2の両方に属する分岐器は実線で示している。矢印の向きは閉そく内で列車が進む向きを表しており、例えば左方向が上り、右方向が下りである。発点1、着点1はそれぞれ閉そく1の発点、着点であり、発点2、着点2はそれぞれ閉そく2の発点、着点である。信号機1、信号機2はそれぞれ閉そく1、閉そく2への列車進入許可を表示する信号機である。なお、図中の信号機は丸印方向から縦棒方向へと表示面を向けており、当該信号機の縦棒方向に在線している列車に対して指示を行う。図3Aにおいては、信号機1、信号機2は図左方向に表示面を向けている。交差Aでは、幾何パターン分類基準として重複端点数が0端点重複、重複端点種類がなしとなっており、これは図3Aにおいては発点1、発点2、着点1、着点2が重複していないことと対応している。また、幾何パターン分類基準として閉そく1に包含される閉そく2の端点数が0、閉そく1に包含される閉そく2の端点種類がなし、閉そく2に包含される閉そく1の端点数が0、閉そく2に包含される閉そく1の端点種類がなしとなっており、これは図3Aにおいては発点1、着点1が閉そく2に含まれていないことおよび発点2、着点2が閉そく1に含まれていないことと対応している。また、幾何パターン分類基準として閉そく1と閉そく2の方向関係が順方向となっており、これは図3Aにおいては閉そく1、閉そく2とも方向が右方向であることと対応している。なお、幾何パターン分類基準には分岐器の数は含まれていないため、図3Aに表記されている分岐器の数は幾何パターン種別を特定するためには関係ない情報であるが、交差Aの幾何パターン種別を実現するためには最低二つの分岐器が必要である。図3Bは幾何パターン決定用テーブル254のNo.2に登録されている交差Bの例である。矢印、実線、点線、信号機の表記が示す意味は図3Aと同様である。交差Bでは、分類基準として重複端点数が0端点重複、重複端点種類がなしとなっており、これは図3Bにおいては発点1、発点2、着点1、着点2が重複していないことと対応している。また、幾何パターン分類基準として閉そく1に包含される閉そく2の端点数が0、閉そく1に包含される閉そく2の端点種類がなし、閉そく2に包含される閉そく1の端点数が0、閉そく2に包含される閉そく1の端点種類がなしとなっており、これは図3Bにおいては発点1、着点1が閉そく2に含まれていないことおよび発点2、着点2が閉そく1に含まれていないことと対応している。また、幾何パターン分類基準として閉そく1と閉そく2の方向関係が逆方向となっており、これは図3Bにおいては閉そく1が右方向、閉そく2が左方向であることと対応している。なお、幾何パターン分類基準には分岐器の数は含まれていないため、図3Bに表記されている分岐器の数は幾何パターン種別を特定するためには関係ない情報であるが、当該幾何パターン種別を実現するためには最低二つの分岐器が必要である。図3Cは幾何パターン決定用テーブル254のNo.3に登録されている始点片封鎖Aの例である。矢印、実線、点線、信号機の表記が示す意味は図3Aと同様である。始点片封鎖Aでは、分類基準として重複端点数が0端点重複、重複端点種類がなしとなっており、これは図3Cにおいては発点1、発点2、着点1、着点2が重複していないことと対応している。また、幾何パターン分類基準として閉そく1に包含される閉そく2の端点数が1、閉そく1に包含される閉そく2の端点種類が発点、閉そく2に包含される閉そく1の端点数が0、閉そく2に包含される閉そく1の端点種類がなしとなっており、これは図3Cにおいては発点2が閉そく1に含まれていることと対応している。また、幾何パターン分類基準として閉そく1と閉そく2の方向関係が順方向となっており、これは図3Cにおいては閉そく1、閉そく2とも方向が右方向であることと対応している。なお、幾何パターン分類基準には分岐器の数は含まれていないため、図3Cに表記されている分岐器の数は幾何パターン種別を特定するためには関係ない情報であるが、当該幾何パターン種別を実現するためには最低1つの分岐器が必要である。図3Dは幾何パターン決定用テーブル254のNo.4に登録されている始点片封鎖Bの例である。矢印、実線、点線、信号機の表記が示す意味は図3Aと同様である。始点片封鎖Bでは、分類基準として重複端点数が0端点重複、重複端点種類がなしとなっており、これは図3Dにおいては発点1、発点2、着点1、着点2が重複していないことと対応している。また、幾何パターン分類基準として閉そく1に包含される閉そく2の端点数が1、閉そく1に包含される閉そく2の端点種類が発点、閉そく2に包含される閉そく1の端点数が0、閉そく2に包含される閉そく1の端点種類がなしとなっており、これは図3Dにおいては発点2が閉そく1に含まれていることと対応している。また、幾何パターン分類基準として閉そく1と閉そく2の方向関係が逆方向となっており、これは図3Dにおいては閉そく1が右方向、閉そく2が左方向であることと対応している。なお、幾何パターン分類基準には分岐器の数は含まれていないため、図3Dに表記されている分岐器の数は幾何パターン種別を特定するためには関係ない情報であるが、当該幾何パターン種別を実現するためには最低1つの分岐器が必要である。図3Eは幾何パターン決定用テーブル254のNo.5に登録されている終点片封鎖Aの例である。矢印、実線、点線、信号機の表記の意味は図3Aと同様である。終点片封鎖Aでは、分類基準として重複端点数が0端点重複、重複端点種類がなしとなっており、これは図3Eにおいては発点1、発点2、着点1、着点2が重複していないことと対応している。また、幾何パターン分類基準として閉そく1に包含される閉そく2の端点数が1、閉そく1に包含される閉そく2の端点種類が着点、閉そく2に包含される閉そく1の端点数が0、閉そく2に包含される閉そく1の端点種類がなしとなっており、これは図3Eにおいては着点2が閉そく1に含まれていることと対応している。また、幾何パターン決定用テーブル254のNo.5では、幾何パターン分類基準として閉そく1と閉そく2の方向関係が順方向となっており、これは図3Eにおいては閉そく1、閉そく2とも方向が右方向であることと対応している。なお、幾何パターン分類基準には分岐器の数は含まれていないため、図3Eに表記されている分岐器の数は幾何パターン種別の特定には関係ない情報だが、当該幾何パターン種別を実現するためには最低1つの分岐器が必要である。図3Fは幾何パターン決定用テーブル254のNo.6に登録されている終点片封鎖Bの例である。矢印、実線、点線、信号機の表記の意味は図3Aと同様である。終点片封鎖Bでは、分類基準として重複端点数が0端点重複、重複端点種類がなしとなっており、これは図3Fにおいては発点1、発点2、着点1、着点2が重複していないことと対応している。また、幾何パターン分類基準として閉そく1に包含される閉そく2の端点数が1、閉そく1に包含される閉そく2の端点種類が着点、閉そく2に包含される閉そく1の端点数が0、閉そく2に包含される閉そく1の端点種類がなしとなっており、これは図3Fにおいては着点2が閉そく1に含まれていることと対応している。また、幾何パターン分類基準として閉そく1と閉そく2の方向関係が逆方向となっており、これは図3Fにおいては閉そく1が右方向、閉そく2が左方向であることと対応している。なお、幾何パターン分類基準には分岐器の数は含まれていないため、図3Fに表記されている分岐器の数は幾何パターン種別の特定には関係ない情報であるが、当該幾何パターン種別を実現するためには最低1つの分岐器が必要である。図3Gは幾何パターン決定用テーブル254のNo.7に登録されている始終点交互片封鎖の例である。矢印、実線、点線、信号機の表記の意味は図3Aと同様である。始終点交互片封鎖では、分類基準として重複端点数が0端点重複、重複端点種類がなしとなっており、これは図3Gにおいては発点1、発点2、着点1、着点2が重複していないことと対応している。また、幾何パターン分類基準として閉そく1に包含される閉そく2の端点数が1、閉そく1に包含される閉そく2の端点種類が発点、閉そく2に包含される閉そく1の端点数が1、閉そく2に包含される閉そく1の端点種類が着点となっており、これは図3Gにおいては発点1が閉そく2に含まれていることおよび着点2が閉そく1に含まれていることと対応している。また、幾何パターン分類基準として閉そく1と閉そく2の方向関係が順方向となっており、これは図3Gにおいては閉そく1、閉そく2とも方向が右方向であることと対応している。なお、幾何パターン分類基準には分岐器の数は含まれていないため、図3Gに表記されている分岐器の数は幾何パターン種別の特定には関係ない情報であるが、当該幾何パターン種別は分岐器がなくても実現可能である。なお、幾何パターン決定用テーブル254のNo.8は幾何パターン決定用テーブル254のNo.7に対し、閉そく1と閉そく2の方向関係を逆方向としたものであるが、物理的に実現することは不可能である。図3Hは幾何パターン決定用テーブル254のNo.10に登録されているデッドロックBの例である。矢印、実線、点線、信号機の表記の意味は図3Aと同様である。デッドロックBでは、分類基準として重複端点数が0端点重複、重複端点種類がなしとなっており、これは図3Hにおいては発点1、発点2、着点1、着点2が重複していないことと対応している。また、幾何パターン分類基準として閉そく1に包含される閉そく2の端点数が1、閉そく1に包含される閉そく2の端点種類が発点、閉そく2に包含される閉そく1の端点数が1、閉そく2に包含される閉そく1の端点種類が発点となっており、これは図3Hにおいては発点1が閉そく2に含まれていることおよび発点2が閉そく1に含まれていることと対応している。また、幾何パターン分類基準として閉そく1と閉そく2の方向関係が逆方向となっており、これは図3Hにおいては閉そく1が右方向、閉そく2が左方向であることと対応している。なお、幾何パターン分類基準には分岐器の数は含まれていないため、図3Hに表記されている分岐器の数は幾何パターン種別の特定には関係ない情報だが、当該幾何パターン種別は分岐器がなくても実現可能である。なお、幾何パターン決定用テーブル254のNo.9は幾何パターン決定用テーブル254のNo.10に対し、閉そく1と閉そく2の方向関係を順方向としたものであるが、物理的に実現することは不可能である。図3Iは幾何パターン決定用テーブル254のNo.12に登録されている終点両封鎖Cの例である。矢印、実線、点線、信号機の表記の意味は図3Aと同様である。終点両封鎖Cでは、分類基準として重複端点数が0端点重複、重複端点種類がなしとなっており、これは図3Iにおいては発点1、発点2、着点1、着点2が重複していないことと対応している。また、幾何パターン分類基準として閉そく1に包含される閉そく2の端点数が1、閉そく1に包含される閉そく2の端点種類が着点、閉そく2に包含される閉そく1の端点数が1、閉そく2に包含される閉そく1の端点種類が着点となっており、これは図3Iにおいては着点1が閉そく2に含まれていることおよび着点2が閉そく1に含まれていることと対応している。また、幾何パターン分類基準として閉そく1と閉そく2の方向関係が逆方向となっており、これは図3Iにおいては閉そく1が右方向、閉そく2が左方向であることと対応している。なお、幾何パターン分類基準には分岐器の数は含まれていないため、図3Iに表記されている分岐器の数は幾何パターン種別の特定には関係ない情報だが、当該幾何パターン種別は分岐器がなくても実現可能である。なお、幾何パターン決定用テーブル254のNo.11は幾何パターン決定用テーブル254のNo.12に対し、閉そく1と閉そく2の方向関係を順方向としたものであるが、物理的に実現することは不可能である。図3Jは幾何パターン決定用テーブル254のNo.13に登録された始終点片封鎖Aの例である。矢印、実線、点線、信号機の表記の意味は図3Aと同様である。始終点片封鎖Aでは、分類基準として重複端点数が0端点重複、重複端点種類がなしとなっており、これは図3Jにおいては発点1、発点2、着点1、着点2が重複していないことと対応している。また、幾何パターン分類基準として閉そく1に包含される閉そく2の端点数が2、閉そく1に包含される閉そく2の端点種類が両方、閉そく2に包含される閉そく1の端点数が2、閉そく2に包含される閉そく1の端点種類が両方となっており、これは図3Jにおいては発点1および着点1が閉そく2に含まれていることならびに発点2および着点2が閉そく1に含まれていることと対応している。また、幾何パターン分類基準として閉そく1と閉そく2の方向関係が順方向となっており、これは図3Jにおいては閉そく1、閉そく2とも方向が右方向であることと対応している。なお、幾何パターン分類基準には分岐器の数は含まれていないため、図3Jに表記されている分岐器の数は幾何パターン種別を特定するには関係ない情報だが、当該幾何パターン種別は分岐器がなくても実現可能である。図3Kは幾何パターン決定用テーブル254のNo.14に登録された始終点片封鎖Bの例である。矢印、実線、点線、信号機の表記の意味は図3Aと同様である。始終点片封鎖Bでは、分類基準として重複端点数が0端点重複、重複端点種類がなしとなっており、これは図3Kにおいては発点1、発点2、着点1、着点2が重複していないことと対応している。また、幾何パターン分類基準として閉そく1に包含される閉そく2の端点数が2、閉そく1に包含される閉そく2の端点種類が両方、閉そく2に包含される閉そく1の端点数が2、閉そく2に包含される閉そく1の端点種類が両方となっており、これは図3Kにおいては発点1および着点1が閉そく2に含まれていることならびに発点2および着点2が閉そく1に含まれていることと対応している。また、幾何パターン分類基準として閉そく1と閉そく2の方向関係が逆方向となっており、これは図3Kにおいては閉そく1が右方向、閉そく2が左方向であることと対応している。なお、幾何パターン分類基準には分岐器の数は含まれていないため、図3Kに表記されている分岐器の数は幾何パターン種別を特定するには関係ない情報だが、当該幾何パターン種別は分岐器がなくても実現可能である。図3Lは幾何パターン決定用テーブル254のNo.15に登録された順方向接続の例である。矢印、実線、点線、信号機の表記の意味は図3Aと同様である。順方向接続では、分類基準として重複端点数が1端点重複、重複端点種類が閉そく1の発点と閉そく2の着点となっており、これは図3Lにおいては着点1と発点2が重複していることと対応している。また、幾何パターン分類基準として閉そく1に包含される閉そく2の端点数が0、閉そく1に包含される閉そく2の端点種類がなし、閉そく2に包含される閉そく1の端点数が0、閉そく2に包含される閉そく1の端点種類がなしとなっており、これは図3Lにおいては発点1、着点1が閉そく2に含まれていないことおよび発点2、着点2が閉そく1に含まれていないことと対応している。ここで、端点の重複は包含には含まない。また、幾何パターン分類基準として閉そく1と閉そく2の方向関係が順方向となっており、これは図3Lにおいては閉そく1、閉そく2とも方向が右方向であることと対応している。なお、幾何パターン分類基準には分岐器の数は含まれていないため、図3Lに表記されている分岐器の数は幾何パターン種別を特定するには関係ない情報だが、当該幾何パターン種別は分岐器がなくても実現可能である。図3Mは幾何パターン決定用テーブル254のNo.16に登録された逆方向接続Aの例である。矢印、実線、点線、信号機の表記の意味は図3Aと同様である。逆方向接続Aでは、分類基準として重複端点数が1端点重複、重複端点種類が閉そく1の発点と閉そく2の着点となっており、これは図3Mにおいては着点1と発点2が重複していることと対応している。また、幾何パターン分類基準として閉そく1に包含される閉そく2の端点数が0、閉そく1に包含される閉そく2の端点種類がなし、閉そく2に包含される閉そく1の端点数が0、閉そく2に包含される閉そく1の端点種類がなしとなっており、これは図3Mにおいては発点1、着点1が閉そく2に含まれていないことおよび発点2、着点2が閉そく1に含まれていないことと対応している。ここで、端点の重複は包含には含まない。また、幾何パターン分類基準として閉そく1と閉そく2の方向関係が逆方向となっており、これは図3Mにおいては閉そく1が右方向、閉そく2が左方向であることと対応している。なお、幾何パターン分類基準には分岐器の数は含まれていないため、図3Mに表記されている分岐器の数は幾何パターン種別の特定には関係ない情報だが、当該幾何パターン種別を実現するためには最低1つの分岐器が必要である。図3Nは幾何パターン決定用テーブル254のNo.18に登録された逆方向接続Bの例である。矢印、実線、点線、信号機の表記の意味は図3Aと同様である。逆方向接続Bでは、分類基準として重複端点数が1端点重複、重複端点種類が閉そく1の発点と閉そく2の着点となっており、これは図3Nにおいては着点1と発点2が重複していることと対応している。また、幾何パターン分類基準として閉そく1に包含される閉そく2の端点数が1、閉そく1に包含される閉そく2の端点種類が発点、閉そく2に包含される閉そく1の端点数が0、閉そく2に包含される閉そく1の端点種類がなしとなっており、これは図3Nにおいては発点1が閉そく2に含まれていることと対応している。ここで、端点の重複は包含には含まない。また、幾何パターン分類基準として閉そく1と閉そく2の方向関係が逆方向となっており、これは図3Nにおいては閉そく1が右方向、閉そく2が左方向であることと対応している。なお、幾何パターン分類基準には分岐器の数は含まれていないため、図3Nに表記されている分岐器の数は幾何パターン種別の特定には関係ないが、当該幾何パターン種別は分岐器がなくても実現可能である。なお、幾何パターン決定用テーブル254のNo.17は幾何パターン決定用テーブル254のNo.18に対し、閉そく1と閉そく2の方向関係を順方向としたものであるが、物理的に実現することは不可能である。図3Oは幾何パターン決定用テーブル254のNo.20に登録されている逆方向接続Cの例である。矢印、実線、点線、信号機の表記の意味は図3Aと同様である。逆方向接続Cでは、分類基準として重複端点数が1端点重複、重複端点種類が閉そく1の発点と閉そく2の着点となっており、これは図3Oにおいては着点1と発点2が重複していることと対応している。また、幾何パターン分類基準として閉そく1に包含される閉そく2の端点数が1、閉そく1に包含される閉そく2の端点種類が着点、閉そく2に包含される閉そく1の端点数が0、閉そく2に包含される閉そく1の端点種類がなしとなっており、これは図3Oにおいては着点2が閉そく1に含まれていることと対応している。ここで、端点の重複は包含には含まない。また、幾何パターン分類基準として閉そく1と閉そく2の方向関係が逆方向となっており、これは図3Oにおいては閉そく1が右方向、閉そく2が左方向であることと対応している。なお、幾何パターン分類基準には分岐器の数は含まれていないため、図3Oに表記されている分岐器の数は幾何パターン種別の特定には関係ないが、当該幾何パターン種別は分岐器がなくても実現可能である。なお、幾何パターン決定用テーブル254のNo.19は幾何パターン決定用テーブル254のNo.20に対し、閉そく1と閉そく2の方向関係を順方向としたものであるが、物理的に実現することは不可能である。図3Pは幾何パターン決定用テーブル254のNo.21に登録されている進路選択Aの例である。矢印、実線、点線、信号機の表記の意味は図3Aと同様である。進路選択Aでは、分類基準として重複端点数が1端点重複、重複端点種類が閉そく1の発点と閉そく2の発点となっており、これは図3Pにおいては発点1と発点2が重複していることと対応している。また、幾何パターン分類基準として閉そく1に包含される閉そく2の端点数が0、閉そく1に包含される閉そく2の端点種類がなし、閉そく2に包含される閉そく1の端点数が0、閉そく2に包含される閉そく1の端点種類がなしとなっており、これは図3Pにおいては発点1、着点1が閉そく2に含まれていないことおよび発点2、着点2が閉そく1に含まれていないことと対応している。ここで、端点の重複は包含には含まない。また、幾何パターン分類基準として閉そく1と閉そく2の方向関係が順方向となっており、これは図3Pにおいては閉そく1、閉そく2とも方向が右方向であることと対応している。なお、幾何パターン分類基準には分岐器の数は含まれていないため、図3Pに表記されている分岐器の数は幾何パターン種別の特定には関係ないが、当該幾何パターン種別を実現するためには最低1つの分岐器が必要である。図3Qは幾何パターン決定用テーブル254のNo.22に登録されている進路選択Bの例である。矢印、実線、点線、信号機の表記の意味は図3Aと同様である。進路選択Bでは、分類基準として重複端点数が1端点重複、重複端点種類が閉そく1の発点と閉そく2の発点となっており、これは図3Qにおいては発点1と発点2が重複していることと対応している。また、幾何パターン分類基準として閉そく1に包含される閉そく2の端点数が0、閉そく1に包含される閉そく2の端点種類がなし、閉そく2に包含される閉そく1の端点数が0、閉そく2に包含される閉そく1の端点種類がなしとなっており、これは図3Qにおいては発点1、着点1が閉そく2に含まれていないことおよび発点2、着点2が閉そく1に含まれていないことと対応している。ここで、端点の重複は包含には含まない。また幾何パターン分類基準として閉そく1と閉そく2の方向関係が逆方向となっており、これは図3Qにおいては閉そく1が右方向、閉そく2が左方向であることと対応している。なお、幾何パターン分類基準には分岐器の数は含まれていないため、図3Qに表記されている分岐器の数は幾何パターン種別の特定には関係ないが、当該幾何パターン種別は分岐器がなくても実現可能である。図3Rは幾何パターン決定用テーブル254のNo.23に登録されている進路選択Cの例である。矢印、実線、点線、信号機の表記の意味は図3Aと同様である。進路選択Cでは、分類基準として重複端点数が1端点重複、重複端点種類が閉そく1の発点と閉そく2の発点となっており、これは図3Rにおいては発点1と発点2が重複していることと対応している。また、幾何パターン分類基準として閉そく1に包含される閉そく2の端点数が1、閉そく1に包含される閉そく2の端点種類が着点、閉そく2に包含される閉そく1の端点数が0、閉そく2に包含される閉そく1の端点種類がなしとなっており、これは図3Rにおいては着点2が閉そく1に含まれていることと対応している。ここで、端点の重複は包含には含まない。また、幾何パターン分類基準として閉そく1と閉そく2の方向関係が順方向となっており、これは図3Rにおいては閉そく1、閉そく2とも方向が右方向であることと対応している。なお、幾何パターン分類基準には分岐器の数は含まれていないため、図3Rに表記されている分岐器の数は幾何パターン種別の特定には関係ないが、当該幾何パターン種別は分岐器がなくても実現可能である。なお、幾何パターン決定用テーブル254のNo.24は幾何パターン決定用テーブル254のNo.23に対し、閉そく1と閉そく2の方向関係を逆方向としたものであるが、物理的に実現することは不可能である。図3Sは幾何パターン決定用テーブル254のNo.25に登録されている終点両封鎖Aの例である。矢印、実線、点線、信号機の表記の意味は図3Aと同様である。終点両封鎖Aでは、分類基準として重複端点数が1端点重複、重複端点種類が閉そく1の着点と閉そく2の着点となっており、これは図3Sにおいては着点1と着点2が重複していることと対応している。また、幾何パターン分類基準として閉そく1に包含される閉そく2の端点数が0、閉そく1に包含される閉そく2の端点種類がなし、閉そく2に包含される閉そく1の端点数が0、閉そく2に包含される閉そく1の端点種類がなしとなっており、これは図3Sにおいては発点1、着点1が閉そく2に含まれていないことおよび発点2、着点2が閉そく1に含まれていないことと対応している。ここで、端点の重複は包含には含まない。また、幾何パターン分類基準として閉そく1と閉そく2の方向関係が順方向となっており、これは図3Sにおいては閉そく1、閉そく2とも方向が右方向であることと対応している。なお、幾何パターン分類基準には分岐器の数は含まれていないため、図3Sに表記されている分岐器の数は幾何パターン種別の特定には関係ないが、当該幾何パターン種別を実現するためには最低1つの分岐器が必要である。図3Tは幾何パターン決定用テーブル254のNo.26に登録されている終点両封鎖Bの例である。矢印、実線、点線、信号機の表記は図3Aと同様である。終点両封鎖Bでは、分類基準として重複端点数が1端点重複、重複端点種類が閉そく1の着点と閉そく2の着点となっており、これは図3Tにおいては着点1と着点2が重複していることと対応している。また、幾何パターン分類基準として閉そく1に包含される閉そく2の端点数が0、閉そく1に包含される閉そく2の端点種類がなし、閉そく2に包含される閉そく1の端点数が0、閉そく2に包含される閉そく1の端点種類がなしとなっており、これは図3Tにおいては発点1、着点1が閉そく2に含まれていないことおよび発点2、着点2が閉そく1に含まれていないことと対応している。ここで、端点の重複は包含には含まない。また、幾何パターン分類基準として閉そく1と閉そく2の方向関係が逆方向となっており、これは図3Tにおいては閉そく1が右方向、閉そく2が左方向であることと対応している。なお、幾何パターン分類基準には分岐器の数は含まれていないため、図3Tに表記されている分岐器の数は幾何パターン種別の特定には関係ないが、当該幾何パターン種別は分岐器がなくても実現可能である。図3Uは幾何パターン決定用テーブル254のNo.27に登録されている始終点片封鎖Cの例である。矢印、実線、点線、信号機の表記の意味は図3Aと同様である。始終点片封鎖Cでは、分類基準として重複端点数が1端点重複、重複端点種類が閉そく1の着点と閉そく2の着点となっており、これは図3Uにおいては着点1と着点2が重複していることと対応している。また、幾何パターン分類基準として閉そく1に包含される閉そく2の端点数が1、閉そく1に包含される閉そく2の端点種類が発点、閉そく2に包含される閉そく1の端点数が0、閉そく2に包含される閉そく1の端点種類がなしとなっており、これは図3Uにおいては発点2が閉そく1に含まれていることと対応している。ここで、端点の重複は包含には含まない。また、幾何パターン分類基準として閉そく1と閉そく2の方向関係が順方向となっており、これは図3Uにおいては閉そく1、閉そく2とも方向が右方向であることと対応している。なお、幾何パターン分類基準には分岐器の数は含まれていないため、図3Uに表記されている分岐器の数は幾何パターン種別の特定には関係ないが、当該幾何パターン種別は分岐器がなくても実現可能である。なお、幾何パターン決定用テーブル254のNo.28は幾何パターン決定用テーブル254のNo.27に対し、閉そく1と閉そく2の方向関係を逆方向としたものであるが、物理的に実現することは不可能である。図3Vは幾何パターン決定用テーブル254のNo.30に登録されているデッドロックAの例である。矢印、実線、点線、信号機の表記の意味は図3Aと同様である。デッドロックAでは、分類基準として重複端点数が2端点重複、重複端点種類が閉そく1の発点と閉そく2の着点および閉そく1の着点と閉そく2の発点となっており、これは図3Vにおいては発点1と着点2が重複していることおよび着点1と発点2が重複していることと対応している。また、幾何パターン分類基準として閉そく1に包含される閉そく2の端点数が0、閉そく1に包含される閉そく2の端点種類がなし、閉そく2に包含される閉そく1の端点数が0、閉そく2に包含される閉そく1の端点種類がなしとなっており、これは図3Vにおいては発点1、着点1が閉そく2に含まれていないことおよび発点2、着点2が閉そく1に含まれていないことと対応している。ここで、端点の重複は包含には含まない。また、幾何パターン分類基準として閉そく1と閉そく2の方向関係が逆方向となっており、これは図3Vにおいては閉そく1が右方向、閉そく2が左方向であることと対応している。なお、幾何パターン分類基準には分岐器の数は含まれていないため、図3Vに表記されている分岐器の数は幾何パターン種別の決定には関係ないが、当該幾何パターン種別は分岐器がなくても実現可能である。なお、幾何パターン決定用テーブル254のNo.29は幾何パターン決定用テーブル254のNo.30に対し、閉そく1と閉そく2の方向関係を順方向としたものであるが、物理的に実現することは不可能である。幾何パターン決定用テーブル254のNo.31は閉そく1と閉そく2が同一であることを表しており、特に幾何パターン種別は与えていない。幾何パターン決定用テーブル254のNo.32は幾何パターン決定用テーブル254のNo.31に対し、閉そく1と閉そく2の方向関係を順方向としたものであるが、物理的に実現することは不可能である。図4Aは進路制御プログラム生成装置100で使用する幾何パターン制御ロジック種別対応表300の構成例である。幾何パターン制御ロジック種別対応表300は幾何パターン種別、制御判断種別を要素として持つ。制御判断種別は予約対象閉そく選定、順序判断、閉そく照査を要素として持つ。幾何パターン種別には幾何パターン決定用テーブル254の22の幾何パターン種別が格納されている。予約対象閉そく選定、順序判断、閉そく照査は、当該幾何パターンに対し制御ロジックとして予約対象閉そく選定、順序判断、閉そく照査のそれぞれが必要であるか否かを示す情報が格納されている。図4Aにおいては○が必要、×が不要を表している。ここで、予約対象閉そく選定ロジックが必要な幾何パターンとは、二つの閉そくの発点が重複しているもの、または一方の閉そくの着点が他方の閉そくの発点と重複しているものであり、前者は12順方向接続、13逆方向接続A、14逆方向接続B、15逆方向接続C、の幾何パターン種別のいずれかに分類される幾何パターン、後者は16進路選択A、17進路選択B、18進路選択Cの幾何パターン種別のいずれかに分類される幾何パターンが挙げられる。順序判断ロジックが必要な幾何パターンとは、一方の閉そくの発点が他方の閉そくに重複も包含もされていないものであり、1交差A、2交差B、5終点片封鎖A、6終点片封鎖B、9終点両封鎖C、19終点両封鎖A、20終点両封鎖Bの幾何パターン種別のいずれかに分類される幾何パターンが挙げられる。閉そく照査ロジックが必要な幾何パターンとは、一方の閉そくの発点が他方の閉そくに重複も包含もされていないもの、あるいは幾何パターンを実現するために最低1つは分岐器が必要であるものであり、順序判断ロジックが必要な幾何パターンのほかに、3始点片封鎖A、4始点片封鎖B、13逆方向接続A、16進路選択Aの幾何パターン種別のいずれかに分類される幾何パターンが挙げられる。図4Bは進路制御プログラム生成装置100で使用する制御ロジックインデックステーブル400の構成例である。制御ロジックインデックステーブル400は制御判断種別、制御ロジック名称、制御ロジックIDを要素として持つ。制御判断種別は予約対象閉そく選定、順序判断、閉そく照査から成る。制御ロジック名称とは、予約対象閉そく選定、順序判断、閉そく照査のそれぞれを実現するロジックについて識別名称を与えたものが格納されている。制御ロジックIDとは制御ロジックモジュールを一意に識別するためのキーであり、制御ロジックライブラリ256に格納されている制御ロジックモジュールを選択するためのものである。制御ロジックライブラリ256に格納されている制御ロジックモジュールは制御ロジックIDを与えることにより一意に特定することができる。図5は進路制御プログラム生成装置100が実行する処理の全体の流れを表している。処理500は進路制御プログラム生成装置100の起動をトリガとして開始され、処理600、900、1200、1490が実行される。処理600は線路配線入力部211によって実行され、線路配線および閉そくの入力を受け付ける処理である。ユーザから線路配線および閉そくの情報を受け付ける際には、進路制御プログラム生成装置100は例えば図7に示す画面をユーザインタフェースとして表示する。処理600の詳細な流れを図6に示す。処理600は進路制御プログラム生成装置100の起動をトリガとして開始され、処理610、611、612、613、614、620、621を実行する。処理600は線路配線入力部211が実行する処理である。処理610は処理611、612、613、614を反復する処理であり、終了条件は図7に示す幾何パターン分析ステップへ進むボタン705の押下を受け付けた場合である。処理611は図7に示す駅選択窓710へのユーザの入力を受け付け、入力対象となっている駅の情報を取得する処理である。図7において、駅とは例えば三笠駅712や銀天町駅713である。入力対象となっている駅は例えば駅を反転表示や破線表示することにより表示され、図7においては銀天町駅713が入力対象となっている。ユーザは、入力対象の駅が駅選択窓710に存在しない場合は駅追加ボタン704を押下することで入力対象の駅を追加することができる。また、前駅へボタン741を押下することで現在の入力対象駅の前駅を、後駅へボタン742を押下することで現在の入力対象駅の後駅へと入力対象駅を切り替えることができる。処理612は図7に示す線路配線入力窓730へのユーザの入力を受け付け、線路配線の情報を取得する処理である。図7において、線路配線とは太実線で示された線であり、例えば線分737、738、739である。ユーザは例えば描画制御窓720の配線描画ボタン721が押下された状態で線路配線入力窓730に線路配線を入力することができる。また、ユーザは例えば描画制御窓720の配線描画ボタン722が押下された状態で線路配線入力窓730に入力された線路配線を消去することができる。ここで、配線描画ボタン721と配線描画ボタン722は同時に押下されないものとする。取得した線路配線情報は線路形状情報テーブル251に格納される。処理613は図7に示す線路配線入力窓730へのユーザの入力を受け付け、閉そく形状情報を取得する処理である。図7において、閉そくとは二つの黒菱形に挟まれた線路領域であり、例えば閉そく733である。閉そく733は線路領域として線分737、738、739を内部に包含している。また、閉そく733の発点は黒菱形735、着点は黒菱形736である。閉そくの方向は例えば閉そく方向矢印731で示され、本例では右向きとなっている。ユーザは例えば描画制御窓720の閉そく定義ボタン723が押下された状態で線路配線入力窓730に閉そくを入力することができる。入力方法としては、例えば線路配線上の位置を選択することにより発点を決定し、次に線路配線上の別の位置を選択することにより着点を決定する。また、ユーザは例えば描画制御窓720の閉そく消去ボタン724が押下された状態で線路配線入力窓730に入力された閉そくを消去することができる。ここで、閉そく定義ボタン723と閉そく消去ボタン724は同時に押下されないものとする。なお、閉そくとは信号機の内方区間に設置された第一内方軌道回路から最終内方軌道回路までの線路領域を指しているため、ユーザは上記区間に一致するように閉そくを入力する。取得した閉そく情報は閉そく形状情報テーブル252に格納される。処理614は図7に示す線路配線入力窓730へのユーザの入力を受け付け、隣駅境界情報を取得する処理である。図7において、隣駅境界は太矢印で表記されており、例えば隣駅境界731である。ユーザは例えば描画制御窓720の隣駅境界ボタン721が押下された状態で線路配線入力窓730に隣駅境界を入力することができる。隣駅境界は線分の端点にしか入力できない。なお、本例では線路配線入力窓730は駅単位で表示されているが、一度に多数の駅が表示されてもよい。この場合は隣駅境界の入力を省略することができる。取得した隣駅境界情報は閉そく形状情報テーブル252に格納される。なお、ユーザは保存ボタン703を押下することにより入力された線路配線情報、閉そく情報、隣駅境界情報をファイルへと書き込むことができる。また、ファイル読込ボタン701を押下することによりファイルへと保存された線路配線情報、閉そく情報、隣駅境界情報を読み出すことができる。また、ファイル追加読込ボタン702を押下することによりファイルへと保存された線路配線情報、閉そく情報、隣駅境界情報を既存の入力内容に追加する形で読み込むことができる。この際、データの競合が起こった場合は例えば競合が起こった各データについて確認ダイアログを表示し、ユーザの選択を受け付けることにより解消することができる。処理620は処理611-614で取得した線路配線情報、閉そく形状情報、隣駅境界情報の整合性をチェックする処理であり、幾何パターン分析ステップへ進むボタン705の押下をトリガとして実行される。整合性チェックは、例えば線路形状情報テーブル251に格納されているすべての線分が閉そく形状情報テーブル252に格納されているいずれかの閉そくに属しているかのチェックであり、線路形状情報テーブル251のすべての線路要素IDについて、閉そく形状情報テーブル252の対応線路要素IDの値として存在しているかを検索することにより実現できる。処理620により、信号機配置の誤りを検出することができる。処理621は処理620のチェック結果を判定する処理であり、処理620の整合性チェックが失敗した場合、例えば図8のエラーメッセージ表示窓801を表示させることによりユーザに整合性チェックの失敗を通知する。ここで、エラー内容修正ボタン802が押下された場合は再び処理610を開始し、エラー内容無視ボタン803が押下された場合は処理600を終了し、処理900を開始する。図5に戻って、処理900は処理600で入力された複数の閉そくについて、任意のすべての2閉そくの組について、信号機の発点および着点ならびに方向から幾何パターン種別を決定する処理であり、幾何パターン抽出部212によって実行される。この処理を実行する際、進路制御プログラム生成装置100は例えば図10に示す画面をユーザインタフェースとして表示する。処理900の詳細な流れを図9に示す。処理900は処理600の終了をトリガとして開始され、処理910、920、921、922、923、924、925、930、931を実行する。処理900は幾何パターン抽出部212が実行する。処理910は処理920を反復する処理であり、終了条件は閉そく形状情報テーブル252に登録されているすべての閉そくについて反復が完了することである。未処理の閉そくがある場合、その中の一つが選択される。処理920は処理921、922、923、924、925を反復する処理であり、終了条件は閉そく形状情報テーブル252の処理910で既に選択された閉そくを除いたすべての閉そくについて反復が完了することである。未処理の閉そくがある場合、その中の一つただし処理910で選択されている閉そく以外の閉そくが選択される。処理921は処理910で選択された閉そくと処理920で選択された閉そくについて発着点の重複をチェックする処理である。発着点の重複チェックは、例えば閉そく形状情報テーブル252の発点座標と着点座標を二つの閉そく間で比較を行うことにより実現できる。処理922は処理910で選択された閉そくと処理920で選択された閉そくについて発着点の包含をチェックする処理である。発着点の包含チェックは、例えば一方の閉そくについて閉そく形状情報テーブル252の対応線路要素IDから閉そくの内部点を判定し、他方の閉そくの発点座標と着点座標が前記内部点に包含されているかの判定を行うことにより実現できる。処理923は処理910で選択された閉そくと処理920で選択された閉そくについて方向をチェックする処理である。方向のチェックは、例えば閉そく形状情報テーブル252の方向を二つの閉そく間で比較し、同一の場合は順方向、異なる場合は逆方向とすることにより実現できる。処理924は処理921、922、923のチェック結果を幾何パターン決定用テーブル254と照合し、幾何パターン種別を決定する処理である。幾何パターン決定用テーブル254との照合は、例えば処理921の結果を幾何パターン決定用テーブル254の重複端点数、重複端点種類と照合し、処理922の結果を幾何パターン決定用テーブル254の閉そく1に包含される閉そく2の端点数、閉そく1に包含される閉そく2の端点種類、閉そく2に包含される閉そく1の端点数、閉そく2に包含される閉そく1の端点種類と照合し、処理923の結果を幾何パターン決定用テーブル254の閉そく1と閉そく2の方向関係からと照合し、すべてが合致した行の幾何パターン種別を取得することにより実現できる。処理925は処理924で決定された幾何パターン種別を幾何パターン格納テーブル253に格納する処理である。例えば、閉そくIDとしてBlock_1、Block_2を持つ二つの閉そくについて、処理924の結果が16進路選択Aであった場合は、幾何パターン格納テーブル253の幾何パターン種別に16を、閉そく1IDにBlock_1を、閉そく2IDにBlock_2を格納する。処理930は閉そく形状情報テーブル252および幾何パターン格納テーブル523に格納された情報を図10に示す線路形状グラフ表示窓1020へと表示する処理である。図10において、閉そく形状情報テーブル252に格納されている閉そくは例えば閉そくF1021のように表示される。また、幾何パターン格納テーブル523に格納されている幾何パターン種別は、二つの閉そく間をつなぐ線または矢印のパターンによって表示される。たとえば閉そくDと閉そくFの間の幾何パターン種別は順方向接続幾何パターン1022のように表示される。幾何パターン種別は、例えば幾何パターン一覧窓1010の幾何パターンアイコン1011によりユーザが識別できるように表示する。なお、ユーザによる幾何パターンアイコン1011の押下を契機に線路形状グラフ表示窓1020の該当する幾何パターンをハイライト表示してもよい。処理940は処理910の結果について整合性をチェックする処理である。整合性チェックは、例えば閉そくへ列車が進入するための幾何パターン種別がすべての閉そくに対して定義されているかのチェックである。閉そく形状情報テーブル252に登録されたすべての閉そくについて、幾何パターン格納テーブル523の閉そく1IDまたは閉そく2IDが当該閉そくであり、かつ幾何パターン種別の値として12、13、14、15が格納されているものが少なくとも一つ存在しているかを検索することにより実現できる。処理930により、信号機配置の妥当性を検証することができる。処理941は処理940のチェック結果を判定する処理である。処理930の整合性チェックが失敗した場合、例えば図11のエラーメッセージ表示窓1101およびエラー範囲1102を表示させることによりユーザに整合性チェックの失敗を通知する。ここで、エラー内容修正ボタン1103が押下された場合は再び処理600を開始し、エラー内容無視ボタン1104が押下された場合は処理940を実行する。処理950はユーザによる制御ロジック選択ステップへ進むボタン1001の押下を待ち受ける処理であり、制御ロジック選択ステップへ進むボタン1001の押下をトリガとして処理900を終了し、処理1200を開始する。図5に戻って処理1200は処理900で幾何パターン種別を定義された2閉そく間の幾何パターンに制御ロジックを対応付ける処理であり、例えば図13に示す画面をユーザインタフェースとして提供する。処理1200の詳細な流れを図12に示す。処理1200は処理900の終了をトリガとして開始され、処理1210、1211、1212、1213、1214、1220を実行する。処理1200は制御ロジック選択部213が実行する処理である。処理1210は処理1211、1212、1213、1214、を反復する処理であり、終了条件はプログラム動作確認ステップへ進むボタン1301の押下を受け付けることである。処理1211は線路形状グラフ表示窓1020から制御ロジック選択の対象となっている幾何パターンすなわち、二つの閉そく区間の組を取得する処理である。ユーザは図13に示す線路形状グラフ表示窓1020から任意の幾何パターンを選択することで、制御ロジック選択の対象とする幾何パターンを指定することができる。今、図13において、制御ロジック選択の対象となっている幾何パターンは閉そくJと閉そくKの間に定義されている幾何パターンである。ここで、ユーザが制御ロジック選択の対象となっている幾何パターンを容易に識別できるように制御ロジック選択の対象となっている幾何パターンをハイライト表示してもよい。処理1212は制御ロジック入力窓1310を画面上に表示する処理である。ここで、制御ロジック入力窓1310の表示項目は、制御ロジック選択の対象となっている幾何パターンの幾何パターン種別を幾何パターン制御ロジック種別対応表300図4A参照と照合することにより決定する。図13の例では、制御ロジック選択の対象となっている幾何パターンの幾何パターン種別は19終点両封鎖Aであり、幾何パターン制御ロジック種別対応表300の幾何パターン種別が19終点両封鎖Aに該当する行の制御判断種別は予約対象閉そく選定が×、順序判断が○、閉そく照査が×となっている。従って、制御ロジック入力窓1310には順序判断、閉そく照査が表示されている。処理1213は制御ロジック入力窓1310から制御ロジックの指定を取得する処理である。ユーザは制御ロジック入力窓1310のプルダウンメニュー1311から制御ロジックを選択し設定することができる。処理1213ではプルダウンメニューに設定された制御ロジックの指定を取得する。ここで、プルダウンメニュー1311に表示される制御ロジックは制御ロジックインデックステーブル400図4参照に登録されているものである。なお、ユーザが不正な制御ロジックを選択することを防止するため、制御ロジックインデックステーブル400に登録されている制御ロジックのうち、制御判断種別がプルダウンメニュー1311に対応する制御判断種別と異なるものを非表示としてもよい。また、既に他の幾何パターンについて選択された制御ロジックが制御ロジック選択の対象となっている幾何パターンで選択された制御ロジックと干渉し不正動作する可能性がある場合、プルダウンメニュー1311において当該制御ロジックを非表示としてもよい。また、処理1220において制御ロジックの干渉を検出し、干渉が検出された場合はエラー表示窓を画面上にポップアップさせてもよい。ここで、既に他の幾何パターンで選択された制御ロジックが制御ロジック選択の対象となっている幾何パターンで選択された制御ロジックと干渉し不正動作する場合とは、例えば閉そくAと閉そくBの間の幾何パターンT1と、閉そくAおよび閉そくCとの間の幾何パターンT2に順序判断が必要な場合に、T1では順序判断の制御ロジックとして制御ロジックインデックステーブル400のダイヤ時刻順が設定されているが、T2では順序判断の制御ロジックとして制御ロジックインデックステーブル400の列車位置順が設定されている場合である。制御ロジックインデックステーブル400のダイヤ時刻順、列車時刻順の詳細については後述する。また、ユーザはインポートボタン1312を押下することにより、制御ロジックインデックステーブル400に登録されていない制御ロジックを外部ファイルからインポートすることができる。インポートするファイルは例えば制御ロジックの処理内容を記述したソースコードファイルや当該ソースコードファイルをコンパイルした実行可能モジュールファイルである。また、属性設定ボタン1313を押下することにより選択された制御ロジックのパラメータを設定することができる。なお、制御ロジックの選択が完了した幾何パターンは例えばアイコンを付与することによりユーザが容易に識別できるようにしてもよい。また、線路形状グラフ表示窓920に拡大、縮小ボタンを追加することにより画面を拡大、縮小できるようにしてもよい。処理1214は1213で選択されたもしくはインポートされた制御ロジック情報を選択済制御ロジック格納テーブル255に格納する処理である。処理1214は、制御ロジック入力窓1310の入力確定ボタン1314の押下を受け付けたことをトリガとして開始され、制御ロジック入力窓1310のプルダウンメニュー1311から入力された制御ロジックを取得し、対応する制御ロジックIDを選択済制御ロジック格納テーブル255へと格納する。なお、処理1213後にキャンセルボタン1315が押下された場合、処理1214では何も行わずに処理1211へと移行する。処理1220はユーザによるプログラム動作確認ステップへ進むボタン1301の押下を待ち受ける処理であり、プログラム動作確認ステップへ進むボタン1301の押下を受け付けたのをトリガとして処理1200を終了し、処理1490を開始する。図5に戻って、処理1490は処理600で生成した閉そく形状情報テーブル252、処理900で生成した幾何パターン格納テーブル、処理1200で生成した選択済制御ロジック格納テーブル255および予め進路制御プログラム生成装置100の内部に保持している制御ロジックライブラリ256、鉄道運行管理コアモジュール257から、進路制御装置9900を実現するためのプログラムである進路制御プログラム1400を生成し、動作確認画面を表示する処理である。処理1490の詳細な流れを図14Hに示す。処理1490は処理1200の終了をトリガとして開始され、処理1491、1492、1493、1494、1495を実行する。処理1490はプログラムモジュール結合部が実行する処理である。処理1491は幾何パターン格納テーブル253図2C参照と選択済制御ロジック格納テーブル255図2D参照から、図14Cに示す幾何情報テーブル1482を生成する処理である。幾何情報テーブル1482の生成は、例えば幾何パターン格納テーブル253と選択済制御ロジック格納テーブル255の両者で幾何パターンIDが同一の行を検索、連結することにより実現できる。処理1492は幾何パターン格納テーブル253図2C参照と閉そく形状情報テーブル252図2B参照から、図14Dに示す閉そく情報テーブル1483を生成する処理である。閉そく情報テーブル1483の幾何パターンID項については、閉そく形状情報テーブル252の閉そくIDのそれぞれについて、幾何パターン格納テーブル253の閉そく1ID、閉そく2IDから一致するものを検索し、対応する幾何パターンIDを抽出することにより特定できる。閉そく情報テーブル1483の駅項や関連設備項は、地上設備群情報管理部1452の設備状態1487から取得した地上設備群9940の状態を閉そくと関連付けるためのキー情報であり、例えばファイルとして予め定義されたものを読み込むことにより生成する。あるいは、例えばユーザが図10の線路形状グラフ表示窓において閉そくF1021を選択した際に、設備入力画面を表示するなどの方法によりユーザから閉そくに関連付けるべき地上設備群の指定を受け付けて、駅項や関連設備項の入力としてもよい。処理1493は選択済制御ロジック格納テーブル255図2D参照に現れる制御ロジックを制御ロジックライブラリ256から選択し、制御ロジックモジュール群1486を生成する処理である。制御ロジックモジュール群1486の生成は、例えば制御ロジックライブラリ256内の各制御ロジックをオブジェクトファイルとして管理しておき、選択済制御ロジック格納テーブル255に現れる制御ロジックに対応するオブジェクトファイルを抽出して制御ロジックモジュール群1486へ格納することにより実現する。処理1494は鉄道運行管理コアモジュールライブラリ257、幾何情報テーブル1482図14C、閉そく情報テーブル1483図14D、制御ロジックモジュール群1486から進路制御プログラム1400を生成する処理である。すなわち処理1494では、処理1491で生成された幾何情報テーブル1482、処理1492で生成された閉そく情報テーブル1483、処理1493で生成された制御ロジックモジュール群1486と、予め鉄道運行管理コアモジュールライブラリ256の内部に格納されているモジュールである閉そく予約管理部1410、計画系システム情報管理部1451、地上設備群情報管理部1452、通信管理部1460、入力インタフェース1471、出力インタフェース1472、予約処理中間データ格納テーブル1481、閉そく状態テーブル1484、閉そく進入列車テーブル1485、列車ダイヤ1487、設備状態1488とを結合させることにより進路制御プログラム1400を生成する。処理1494で生成される進路制御プログラム1400のソフトウェア構成例を図14Aに示す。進路制御プログラム1400は閉そく予約管理部1410、計画系システム情報管理部1451、地上設備群情報管理部1452、通信管理部1460、入力インタフェース1471、出力インタフェース1472から構成される。閉そく予約管理部1410は、計画系システム情報管理部1451、地上設備群情報管理部1452からそれぞれ列車ダイヤ1487および設備状態1488を受け取り、閉そくの予約処理を通じて信号機の制御状態を演算し、地上設備群情報管理部1452へ信号機制御要求を出力する部分である。閉そく予約管理部1410によって閉そくが予約された際には、閉塞予約管理部が出力する信号機制御要求に基づいて、進路制御装置9900は地上装置9920に対し、当該閉そくを防護区間とする信号機の進行現示制御要求を行う。計画系システム情報管理部1451は、計画系システム9910から例えば列車ダイヤなどの計画情報を受け取り、閉そく予約管理部1410の要求に応じて情報を提供する部分である。地上設備群情報管理部1452は、地上装置9920から例えば設備状態などの地上設備群情報を受け取り、閉そく予約管理部1410の要求に応じて情報を提供する部分である。また、閉そく予約管理部1410から信号機制御要求を受け取り、地上装置9920へと信号機制御要求を出力する部分である。通信管理部1460は、例えば計画系システム9910や地上装置9920などの外部装置との通信を管理する部分である。入力インタフェース1471、出力インタフェース1472は、例えば計画系システム9910や地上装置9920などの外部装置との通信を実行する部分である。図14Bは進路制御プログラム1400で使用する予約処理中間データ格納テーブル1481の一例を示す。予約処理中間データ格納テーブル1481は予約要求閉そく、予約対象閉そく、前回予約対象閉そくを要素として持ち、それぞれ現在処理中の予約要求閉そく、予約対象閉そく、前回予約対象閉そくの値識別情報が格納されている。予約処理中間データ格納テーブル1481に格納される値は、進路制御プログラム1400が実行されるとその処理の中で更新される。詳細は後述する。図14Cは進路制御プログラム1400で使用する幾何情報テーブル1482の一例を示す。幾何情報テーブル1482は幾何パターンID、幾何パターン種別、閉そく1ID、閉そく2ID、予約対象閉そく選定ロジック、順序判断ロジック、閉そく照査ロジック閉そく1→閉そく2、閉そく照査ロジック閉そく2→閉そく1を要素として持つ。幾何パターンID、幾何パターン種別、閉そく1ID、閉そく2IDは幾何パターン格納テーブル253と、予約対象閉そく選定ロジック、順序判断ロジック、閉そく照査ロジック閉そく1→閉そく2、閉そく照査ロジック閉そく2→閉そく1は選択済制御ロジック格納テーブルと同一である。図14Dは進路制御プログラム1400で使用する閉そく情報テーブル1483の一例を示す。閉そく情報テーブル1483は閉そくID、幾何パターン、駅、関連設備を要素として持つ。幾何パターンには、閉そくIDで特定される閉そくと他閉そくとの間に定義されているすべての幾何パターンの幾何パターンIDが格納されている。駅には、閉そくIDで特定される閉そくが所属する駅が格納されている。関連設備には、閉そくIDで特定される閉そくの閉そく内の設備状態を決定するために必要なすべての設備が格納されている。ここで、当該閉そくの閉そく内設備状態を決定するために必要なすべての設備とは、例えば当該閉そくが指す線路領域内にある軌道回路、当該閉そくを防護区間としている信号機、当該閉そくが指す線路領域内にある転轍機や踏切、当該閉そくを防護区間としている信号機に対して停止現示指示を行うてこである線路閉鎖てこがある。ある閉そくが予約された場合後述する閉そく状態テーブル1484の予約状態が予約中になった場合には、閉そく情報テーブル1483において当該閉そくに対応する関連設備として登録されている信号機に対して、進路制御プログラム1400が進行現示制御要求を出力する。図14Eは進路制御プログラム1400で使用する閉そく状態テーブル1484の一例を示す。閉そく状態テーブル1484は閉そくID、予約状態、予約列車、在線列車、列車在線位置、閉そく内設備状態を要素として持つ。予約状態には、閉そくIDで指定される閉そくが列車により予約されている場合は予約中が、そうでない場合は未予約が格納されている。予約列車は当該閉そくが予約中の状態である場合に当該閉そくを予約している列車の識別子が格納されている。在線列車には、当該閉そくに列車が在線していた場合に当該列車の識別子が格納されている。列車在線位置には、当該閉そくに列車が在線していた場合に当該列車の閉そく内における位置が格納されている。在線列車および在線位置は、地上設備群情報管理部1488が随時地上設備群9940から収集する情報に基づいて更新される。閉そく内設備状態には、当該閉そくに関連する全ての設備が制御可能であるかが格納されており、例えば制御可能と制御不可の2値をとる。当該閉そくに関連する全ての設備が制御可能であるかの決定は、例えば閉そく情報テーブル1483の当該閉そくに対応する関連設備項のすべての設備群の状態を参照し、すべての設備が制御可能な条件を満たしているかをチェックすることにより行う。図14Fは進路制御プログラム1400で使用する閉そく進入列車テーブル1485の一例を示す。閉そく進入列車テーブル1485は閉そくID、進入予定列車、未進入/進入済を要素として持つ。進入予定列車には列車運行計画上において、閉そくIDで指定される閉そくへと進入する予定の列車の識別子を進入時刻順に並べたものが格納されており、例えば列車ダイヤ1487の経由閉そくから当該閉そくの閉そくIDを検索し、対応する列車IDを経由時刻順に並べることにより作成される。未進入/進入済には、前記列車が既に閉そくに進入したかが格納されており、例えばまだ進入していない場合には未進入、既に進入している場合は進入済を格納する。未進入/進入済の情報も、地上設備群情報管理部1488が随時地上設備群9940から収集する情報に基づいて更新される。図14Gは進路制御プログラム1400で使用する列車ダイヤ1487の一例を示す。列車ダイヤ1487は列車ID、経由閉そく、経由時刻を要素として持つ。列車IDは列車を一意に識別するためのキーであり、例えば列車番号である。経由閉そくには、当該列車が列車運行計画上で経由する予定となっている閉そくがすべて格納されている。経由閉そくは、例えば計画系システム9910から入力インタフェース1471、通信管理部1460を介して通信を行うことにより取得する。計画系システム9910から取得した列車運行計画が閉そく単位で作成されていなかった場合は、例えば計画系システム情報管理部1451内部に変換ルール定義テーブルを作成しておき、列車運行計画を閉そく単位の計画へと変換する。列車運行計画が閉そく単位で作成されていなかった場合とは、例えば駅の番線ごとに列車の発着時刻が与えられている場合などである。経由時刻には当該列車が前記閉そくを経由する時刻が格納されている。列車ダイヤ1487は、計画系システム9910から入力インタフェース1471、通信管理部1460を介して取得する。図14Hに戻って、処理1495は、処理1494で生成された進路制御プログラム1400を実行し、実行結果をユーザへ提示する処理であり、例えば図19に示す画面をユーザインタフェースとして表示する。進路制御プログラム1400は初期化ボタン2102の押下を受け付けることにより初期化される。プログラム内での時刻はプログラム実行制御窓2110に表示され、ユーザはプログラム内時刻2111をキーボード等の入力装置を介して操作することにより指定のプログラム内時刻の状態を、進路制御プログラム1400に再現させることができる。また、ユーザは時刻コントローラ2112を介して進路制御プログラム1400の早送り、巻き戻し、一時停止、一時停止解除を指示することができる。進路制御プログラム1400の内部状態は線路形状グラフ表示窓2130に表示される。線路形状グラフ表示窓2130に表示されるのは、線路形状グラフ窓1020に表示される線路形状情報に、閉そく状態テーブル1484の内容を反映させた情報である。予約中の閉そくは、例えば閉そくB2132のように二重線表示反転表示としてもよいすることにより識別できるようにする。未予約の閉そくは、例えば閉そくL2133のように点線表示することにより識別できるようにする。いずれかの列車により予約が試行されたが失敗した閉そくは、例えば閉そくD2134のように実線表示することにより識別できるようにしてもよい。また、このとき予約を試行した列車を例えば予約試行列車アイコン2135により、失敗の原因となった制御ロジックを予約失敗原因制御ロジックアイコン2136により識別できるようにしてもよい。図19においては、予約試行列車アイコン2135は列車Tが閉そくD2134の予約を試みたが失敗したことを示している。また、予約失敗原因制御ロジックアイコン2136は予約失敗した原因は閉そく照査ロジックの実行結果が失敗であったためであることを示している。ユーザが線路形状グラフ表示窓2130から例えば閉そくや幾何パターンを選択すること、この選択を受け付けた進路制御プログラム1400は情報表示窓2120に当該閉そくや幾何パターンの詳細情報を表示することができる。情報表示窓2120に表示されるのは、閉そく状態テーブル1484、閉そく情報テーブル1483、閉そく進入列車テーブル1485、幾何情報テーブル1482に登録されている情報である。例えば図19においては、閉そくE2137が選択状態となっており、情報表示窓2120には閉そくE2137の名称、在線列車、列車位置、保有設備情報が表示されている。ユーザは線路形状グラフ表示窓2130を確認することで進路制御プログラム1400の内部状態を把握することができる。また、同時にプログラム実行制御窓2110を通じてプログラム時間を操作することにより、各時間断面においてプログラムが正常動作しているかを確認することができる。プログラムがユーザの意図通りに動作しない場合、情報表示窓2120を確認することで原因を究明することができる。尚、図19に示す画面は、生成されたプログラムのチェックのために進路制御プログラム1400が実行された場合だけでなく、列車の進路制御のために進路制御プログラム1400が進路制御装置9900で実行された場合にも進路制御プログラム1400によって出力されることとしても良い。処理1494で生成される進路制御プログラム1400の処理の流れを、閉そく予約管理部1410の処理を中心に図15に示す。図15に示す処理フローは、先述の処理1495で進路制御プログラム1400が実行される際や、処理1494で生成された進路制御プログラム1400が進路制御装置9900にインストールされて進路制御装置で実行される際の処理フローに相当する。進路制御プログラム1400は先述の通り例えば図19に示す画面をユーザインタフェースとして提供する。処理1500は図19の初期化ボタン2102の押下を受け付けたことをトリガとして開始され、処理1510、1511、1520、1521、1522、1523、1524、1525、1526、1530、1531、1532、1533が実行される。処理1500は例えば2秒周期といった指定周期ごとに反復されてもよいし、地上設備群9920や計画系システム9910から状態変更を受け取ることをトリガとして実行されてもよい。処理1510は前回処理結果をクリアする処理であり、全ての閉そくに対し、閉そく状態テーブル1484の予約状態項、予約列車項をクリアする。処理1511は閉そく予約処理の起点となる閉そくを検索する処理であり、閉そく状態テーブル1484の在線列車項に列車が格納されている閉そくを特定する。処理1520は閉そくの予約を実行する処理であり、処理1511で特定された全ての閉そくについて反復される。ここで、反復して実行される処理1521以降の処理の各回について、処理の対象として処理1511で特定された複数の閉そくの中から選ばれる一の閉そくを以下では予約要求閉そくと呼称する。処理1521は予約要求閉そくの閉そくIDを予約処理中間データ格納テーブル1481の予約要求閉そく、および前回予約対象閉そく項にセット記録する処理である。処理1522は閉そく情報テーブル1483から、予約処理中間データ格納テーブル1481に前回予約対象閉そくとして登録されている閉そくIDを検索し、この閉そくIDに対応する全ての幾何パターンを取得する処理である。処理1523は、処理1522で取得した幾何パターンのうち、幾何パターン制御ロジック種別対応表300の予約対象閉そく選定項に○が格納されている幾何パターンについて、幾何情報テーブル1482から対応する予約対象閉そく選定ロジックを決定して、実行し、結果を予約処理中間データ格納テーブル1481の予約対象閉そく項にセットする処理である。ここで、予約対象閉そく選定ロジックの詳細については後述する。処理1524は閉そく情報テーブル1483から予約処理中間データ格納テーブル1481に予約対象閉そくとして登録されている閉そくIDを検索し、この閉そくIDに対応する全ての幾何パターンを取得する処理である。処理1525は、処理1524で取得した幾何パターンのうち、幾何パターン制御ロジック種別対応表300の順序判断項に○が格納されている幾何パターンについて、幾何情報テーブル1482から対応する順序判断ロジックを決定して、実行する処理である。ここで、順序判断ロジックの詳細については後述する。処理1526は、処理1524で取得した幾何パターンのうち、幾何パターン制御ロジック種別対応表300の閉そく照査項に○が格納されている幾何パターンについて、幾何情報テーブル1482から対応する閉そく照査ロジックを決定して、実行する処理である。ここで、閉そく照査ロジックの詳細については後述する。処理1530は、処理1525、1526の実行結果がすべて成功であるかを判定する処理である。すべて成功である場合は処理1531に移行し、一つでも失敗していた場合は処理1520の反復処理に戻って、他の閉そくを処理1511で特定された複数の閉そくの中から選択してこれを予約要求閉そくとして処理を続ける。処理1531は、閉そく状態テーブル1484から予約処理中間データ格納テーブル1481に予約対象閉そくとして登録されている閉そくIDを検索し、当該閉そくIDに対応する予約状態項に予約済をセットする処理である。処理1532は、閉そく状態テーブル1484から、予約処理中間データ格納テーブル1481に予約対象閉そくとして登録されている閉そくIDと、予約処理中間データ格納テーブル1481に予約要求閉そくとして登録されている閉そくIDとを検索する。そして、予約要求閉そくとして登録されている閉そくIDに対応する在線列車の識別情報を、予約対象閉そくとして登録されている閉そくIDに対応する予約列車項にセットする処理である。処理1533は、予約処理中間データ格納テーブル1481に予約対象閉そくとして登録されている閉そくIDを予約処理中間データ格納テーブル1481の前回予約対象閉としてセットする処理である。図15の処理1523で実行される予約対象閉そく選定ロジックは、予約処理の対象となる閉そくを決定するためのロジックであり、例えば優先進路選択ロジックやダイヤ進路選択ロジックが挙げられる。優先進路選択ロジックでは、16進路選択A、17進路選択B、18進路選択Cの幾何パターン種別の関係にある二つの閉そくに対して予め優先順位を付けておき、列車が当該2閉そくのどちらかを予約対象閉そくとして選択する際には優先順位が高い閉そくを選択する。この際、優先順位が高い閉そくが既に列車が在線しているなどの理由により予約できない場合には、優先順位が低い閉そくを予約対象閉そくとして選択する。ダイヤ進路選択ロジックでは、予め列車の進路を例えばダイヤにより定義しておき、列車が当該2閉そくのどちらかを予約対象閉そくとして選択する際には例えばダイヤ上で進路と定義された閉そくを列車の進路として選択する。ダイヤ進路選択ロジックの一例について処理の流れを図16に示す。処理1600は、予約対象閉そく選定ロジックの一例であるダイヤ進路選択ロジックの例であり、進路制御プログラム1400は処理1610、1620、1630、1631、1632、1640、1641、1650を実行する。処理1610は、幾何情報テーブル1482を参照して、処理1522で取得した幾何パターンのうち、12順方向接続、13逆方向接続A、14逆方向接続B、15逆方向接続Cのいずれかの幾何パターン種別に属し、かつ閉そく1が予約処理中間データ格納テーブル1481の前回予約対象閉そくと一致するものの数をカウントする処理である。処理1620は処理1610でカウントした幾何パターンの数が1に等しいかどうかを判定する処理である。処理1610でカウントした幾何パターンの数が1である場合は処理1650を実行し、2以上である場合は処理1630を実行する。なお、0である場合は列車が進行できる進路がないため、処理1600を終了する。処理1650は、処理1610でカウントした幾何パターンの数が1に等しい場合に実行される処理である。ここで、処理1610でカウントした幾何パターンの数が1に等しいとは、前回予約対象閉そくに在線している列車が次に進入することができる閉そくがただ一つであることを意味している。処理1650では、処理1610でカウントされた幾何パターンについて幾何情報テーブル1482に登録されている閉そく1、閉そく2項のうち、予約処理中間データ格納テーブル1481の予約対象閉そくと一致しない方を、予約処理中間データ格納テーブル1481の予約対象閉そくとしてセットする。処理1650の完了により処理1600は終了される。処理1630は処理1610でカウントした幾何パターンの数が2以上の場合に実行される処理である。ここで、処理1610でカウントした幾何パターンの数が2以上であるとは、前回予約対象閉そくに在線している列車が次に進入することができる閉そくが複数あり、列車はその中から一つを選択し進行しなければならないことを意味している。処理1630では、処理1610でカウント対象となったすべての幾何パターンについて処理1631、1632、1640を反復する。処理1631は、前回予約対象閉そくに在線している列車が次に進入することができる閉そくを抽出する処理である。処理1631では、今回の処理で対象としている幾何パターンに対し、幾何情報テーブル1482の対応する閉そく1、閉そく2項を参照し、そのうち予約処理中間データ格納テーブル1481の予約対象閉そくと一致しない方を選択する。処理1632は、処理1631で抽出した閉そくが列車のダイヤ上における進路と合致しているかを判定する処理である。処理1632では、閉そく状態テーブル1484の予約要求閉そくの在線列車項に格納されている列車について、1631で選択した閉そくが列車ダイヤ1486の当該列車の経由閉そく項に含まれているかを判定する。処理1640は、処理1632の判定結果により分岐を行う処理である。処理1632の判定結果が含まれているである場合、処理1641を実行する。含まれていないである場合、処理1630に戻る。処理1641は、1632で選択した閉そくを予約処理中間データ格納テーブル1481の予約対象閉そくとしてセットする処理である。処理1641の完了により処理1600は終了される。図15の処理1525で実行される順序判断ロジックは、閉そくの予約にあたり列車の運行順序を満たしているかを判定する処理であり、例えばダイヤ時刻順ロジックと列車位置順ロジックが挙げられる。ここで、列車の運行順序は必ずしも計画系システム9910により列車運行計画として与えられる必要はないが、少なくとも閉そくの予約によりデッドロックが発生しないことを保証するものでなければならない。デッドロックとは、例えば単線区間に上り列車と下り列車が同時に進入することにより発生する。順序判断ロジックは、予約対象閉そくに対応する幾何パターンが、幾何パターン制御ロジック種別対応表300図4Aの順序判断列に○が記入されている幾何パターン種別である1交差A、2交差B、5終点片封鎖A、6終点片封鎖B、9終点両封鎖C、19終点両封鎖A、20終点両封鎖Bのいずれかに分類される場合に実行され、これらの幾何パターン種別に属する幾何パターンが複数存在する場合はそのすべてに対して実行される。順序判断ロジックとしてダイヤ時刻順ロジックが用いられる場合、先述の幾何パターン種別1交差A、2交差B、5終点片封鎖A、6終点片封鎖B、9終点両封鎖C、19終点両封鎖A、20終点両封鎖Bのいずれかの関係をもつ2つの閉そくである閉そく1、閉そく2に対して、例えばダイヤにより列車が当該2閉そくに進入する順序を定義しておき、列車Tが閉そく1または閉そく2に進入する際に、列車Tが順序上で一位でなければ列車Tによる閉そく1または閉そく2の予約を許可しない。ダイヤ時刻順ロジックの一例について処理の流れを図17に示す。処理1700は順序判断ロジックの一例であるダイヤ時刻順ロジックの例であり、進路制御プログラム1400は処理1710、1720、1721、1722、1723、1724、1730、1731、1732を実行する。処理1710は、処理1524で取得した幾何パターンから、幾何パターン制御ロジック種別対応表300図4Aの順序判断列に○が記入されている幾何パターン種別である1交差A、2交差B、5終点片封鎖A、6終点片封鎖B、9終点両封鎖C、19終点両封鎖A、20終点両封鎖Bのいずれかに属するものすべて抽出する処理である。処理1720は、処理1710で抽出した全ての幾何パターンについて処理1721、1722、1723、1724を反復する処理である。ここで、処理1721から処理1724では、処理の対象となっている幾何パターンに対応する2つの閉そくについてダイヤ上で定義された進入予定列車の進入順序を参照し、予約要求閉そくに在線している列車が当該閉そくにおける進入順序の一位であるかを判定する。この判定を実行するにあたり、以下の等価な2条件に分解して考える。条件1は、予約要求閉そくに在線している列車が、処理対象となっている幾何パターンに対応する2閉そくのうち予約対象閉そくと合致する閉そくに対して、ダイヤ上で次に進入する列車であることである。条件2は、処理対象となっている幾何パターンに対応する2閉そくのうち予約対象閉そくではない方の閉そくに次に進入する列車の当該閉そくに対する進入時刻が、予約要求閉そくに在線している列車の予約対象閉そくに対する進入時刻より早いことである。このうち、条件1はダイヤの不整合がなければ必ず満たされる条件であるため、図17に示す処理では明示的に条件チェックを行っていないが、ダイヤの妥当性検証を狙い明示的に条件チェックを行ってもよい。処理1721は、処理1720で対象としている幾何パターンに対し、幾何情報テーブル1482の対応する閉そく1、閉そく2項を参照し、そのうち予約処理中間データ格納テーブル1481の予約対象閉そくと一致しない方を選択する処理である。処理1722は、処理1721で選択した閉そくに対し、閉そく進入列車テーブル1484の未進入進入済項が未進入であるもののうち進入順序が最も早い列車を判定する処理である。処理1723は、列車ダイヤ1487を参照し、列車ID項が処理1722で選択した列車と一致し、かつ経由閉そく項が処理1721で選択した閉そくと一致する行の経由時刻項を取得する処理である。処理1724は、閉そく状態テーブル1484から予約要求閉そくに在線している列車を特定し、特定された列車について列車ダイヤ1486から予約対象閉そくに対応する経由時刻を取得する処理である。処理1730は、処理1724で取得した時刻が処理1723で取得した時刻より早いかどうかを判定する処理である。処理1724で取得した時刻が1723で取得した時刻より早い場合は、別の幾何パターンについて処理1721から処理1724を実行する。処理1710で特定した全ての幾何パターンについて処理1730において処理1724で取得した時刻が処理1723で取得した時刻より早いとの判定が行われた場合は、処理1731を実行し、実行結果として成功を返却する。一方で、処理1730において処理1724で取得した時刻が処理1723で取得した時刻より早いと判断された場合は、処理1732を実行し、実行結果として失敗を返却する。ここで、処理1724で取得した時刻が処理1723で取得した時刻と同じ場合は、例えばエラーメッセージをディスプレイに出力し、ユーザが成功または失敗を手動で指示するなどの方法により結果を決定する。あるいは、予め二つの閉そくに優先順位を定義しておき、予約対象閉そくが他方の閉そくより優先順位が高い場合は成功を、そうでない場合は失敗を返却してもよい。図15の処理1526で実行される閉そく照査ロジックは、閉そくの予約にあたり列車の衝突や脱線が起こらないことを担保するための処理であり、例えば列車在線照査ロジックや列車位置照査ロジックが挙げられる。閉そく照査ロジックは、予約対象閉そくに対応する幾何パターンが、幾何パターン制御ロジック種別対応表300の閉そく照査列に○が記入されている幾何パターン種別である1交差A、2交差B、3始点片封鎖A、4始点片封鎖B、5終点片封鎖A、6終点片封鎖B、9終点両封鎖C、13逆方向接続A、16進路選択A、19終点両封鎖A、20終点両封鎖Bのいずれかに分類される場合に実行され、複数の幾何パターン種別に分類される場合はそのすべてに対して実行される。列車在線照査ロジックでは、1交差A、2交差B、3始点片封鎖A、4始点片封鎖B、5終点片封鎖A、6終点片封鎖B、9終点両封鎖C、13逆方向接続A、16進路選択A、19終点両封鎖A、20終点両封鎖Bのいずれかの幾何パターン種別の関係をもつ2つの閉そくである閉そく1、閉そく2のいずれか一方を列車Tが予約しようとする際に、他方の閉そくに既に他の列車が在線していた場合には、列車Tによる閉そく1または閉そく2の予約を許可しない。列車位置照査ロジックでは、1交差A、2交差B、3始点片封鎖A、4始点片封鎖B、5終点片封鎖A、6終点片封鎖B、9終点両封鎖C、13逆方向接続A、16進路選択A、19終点両封鎖A、20終点両封鎖Bのいずれかの幾何パターン種別の関係をもつ2つの閉そくである閉そく1、閉そく2に対して、予め閉そく内に基準位置Pを定義しておく。列車Tが閉そく1または閉そく2を予約する際に、他方の閉そくに既に他の列車Uが在線しており、かつ列車Uの在線位置が基準位置Pよりも前である場合には列車Tによる閉そく1または閉そく2の予約を許可しない。列車在線照査ロジックの一例について処理の流れを図18に示す。処理1800は閉そく照査ロジックの一例である列車位置照査ロジックの例であり、進路制御プログラム1400は処理1810、1820、1821、1822、1830、1831、1832を実行する。処理1810は、処理1524で取得した幾何パターンから、幾何パターン制御ロジック種別対応表300の閉そく照査列に○が記入されている幾何パターン種別である1交差A、2交差B、3始点片封鎖A、4始点片封鎖B、5終点片封鎖A、6終点片封鎖B、9終点両封鎖C、13逆方向接続A、16進路選択A、19終点両封鎖A、20終点両封鎖Bのいずれかに分類されるものをすべて抽出する処理である。処理1820は、処理1810で抽出した全ての幾何パターンについて処理1821、1822、1830を反復する処理である。処理1821は、処理対象としている幾何パターンに対し、幾何情報テーブル1482の対応する閉そく1、閉そく2項を参照し、そのうち予約処理中間データ格納テーブル1481の予約対象閉そくと一致しない方を選択する処理である。処理1822は、処理1821で選択した閉そくに既に列車が在線しているかを判定する処理である。処理1822では、処理1821で選択した閉そくに対し、閉そく状態テーブル1484の対応する在線列車項に列車がセットされているかを判定する。処理1830は処理1822の結果を判定する処理である。処理1821で選択した閉そくに列車が在線していなかった場合は、処理1810で抽出された他の幾何パターンについて、処理1821から処理1830を実行する。処理1810で抽出された幾何パターンすべてについて、処理1821で選択した閉そくに列車が在線していなかった場合は、処理1831を実行し、実行結果として成功を返却する。一方で、処理1821で選択した閉そくに列車が在線していた場合は、処理1832を実行し、実行結果として失敗を返却する。ここまで、発明の実施形態を説明したが、これは一例に過ぎない。また鉄道運行管理システムにおける進路制御装置を実現するプログラムの生成は、発明の一実施形態にすぎない。これ以外にも、軌道上を移動する物体を制御するための装置であり、軌道が一定の区間に分割されており、かつ当該区間に対し同時に高々一つの物体しか存在することができず、かつどの区間に物体が存在するかを取得可能な装置を実現するプログラムの生成に、本発明は広く用いることができる。この場合は、区間を閉そくと、物体を列車と置き換えることにより、これまでに説明した実施形態と同様の手順でプログラムの生成を実現することができる。