(57)【特許請求の範囲】
【請求項１】
少なくとも出発駅と到着駅と到着希望時刻とが旅客人数分記憶された旅客要求データベース（以下「旅客要求ＤＢ」と呼ぶ。）を備えるコンピュータを、
所与の列車ダイヤに対して、前記旅客要求ＤＢに記憶された全ての旅客が利用した場合の各旅客の不効用値を旅客コストとして算出して総計する旅客コスト算出処理手段、
所与の列車ダイヤに対して、当該ダイヤを運行した場合の事業者の運行コストを算出する運行コスト算出処理手段、
候補解ダイヤを前記所与の列車ダイヤとして前記旅客コスト算出処理手段及び前記運行コスト算出処理手段に与えて、前記旅客コスト及び運行コストを算出させる処理を、候補解ダイヤを変更処理しつつ繰り返し行わせて、算出された旅客コスト及び運行コストの合計が最も低い候補解ダイヤを回答ダイヤとして決定する繰り返し演算制御手段、
として機能させるとともに、
前記繰り返し演算制御手段が、
列車ダイヤに対する旅客の不満条件として予め定められた不満条件を満たすダイヤ部分を前記候補解ダイヤの中から検出する検出手段と、
前記検出手段により検出されたダイヤ部分の不満条件を解消させるように前記候補解ダイヤを変更することで前記変更処理を行う変更処理手段と、
を有するように機能させる、
ためのプログラム。
【請求項２】
列車本数を徐々に増やしていくように仮ダイヤを変更して、前記旅客コスト算出処理手段及び前記運行コスト算出処理手段に旅客コスト及び運行コストを算出させ、算出された旅客コスト及び運行コストの合計が最も低かった列車本数の仮ダイヤを初期解ダイヤとして決定する初期解演算制御手段として前記コンピュータを更に機能させ、
前記繰り返し演算制御手段が、前記初期解ダイヤを当初の前記候補解ダイヤとして用いるように前記コンピュータを機能させる、
ための請求項１に記載のプログラム。
【請求項３】
前記検出手段が、前記旅客要求ＤＢに記憶された全ての旅客が前記候補解ダイヤに沿って乗車した場合の旅客流動シミュレーション処理を行う旅客流動シミュレーション処理手段を有し、この旅客流動シミュレーション処理手段による処理結果に基づいて、前記不満条件を満たすダイヤ部分を検出するように前記コンピュータを機能させるための請求項１又は２に記載のプログラム。
【請求項４】
前記検出手段が、前記旅客流動シミュレーション処理手段の処理により得られた各列車の乗車人数に基づいて前記不満条件を満たすダイヤ部分を検出する乗車人数基準検出手段を有するように前記コンピュータを機能させるための請求項３に記載のプログラム。
【請求項５】
前記検出手段が、
前記旅客流動シミュレーション処理手段の処理により得られた、各旅客についての到着駅に到着した時刻と到着希望時刻との差を算出する乖離時刻算出手段と、
前記乖離時刻算出手段の算出結果に基づいて前記不満条件を満たすダイヤ部分を検出する乖離時刻基準検出手段と、
を有するように前記コンピュータを機能させるための請求項３に記載のプログラム。
【請求項６】
少なくとも出発駅と到着駅と到着希望時刻とが旅客人数分記憶された旅客要求データベース（以下「旅客要求ＤＢ」と呼ぶ。）と、
所与の列車ダイヤに対して、前記旅客要求ＤＢに記憶された全ての旅客が利用した場合の各旅客の不効用値を旅客コストとして算出して総計する旅客コスト算出処理手段と、
所与の列車ダイヤに対して、当該ダイヤを運行した場合の事業者の運行コストを算出する運行コスト算出処理手段と、
候補解ダイヤを前記所与の列車ダイヤとして前記旅客コスト算出処理手段及び前記運行コスト算出処理手段に与えて、前記旅客コスト及び運行コストを算出させる処理を、候補解ダイヤを変更処理しつつ繰り返し行わせて、算出された旅客コスト及び運行コストの合計が最も低い候補解ダイヤを回答ダイヤとして決定する繰り返し演算制御手段と、
を備え、
前記繰り返し演算制御手段は、
列車ダイヤに対する旅客の不満条件として予め定められた不満条件を満たすダイヤ部分を前記候補解ダイヤの中から検出する検出手段と、
前記検出手段により検出されたダイヤ部分の不満条件を解消させるように前記候補解ダイヤを変更することで前記変更処理を行う変更処理手段と、
を有する、
列車ダイヤ作成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも出発駅と到着駅と到着希望時刻とが旅客人数分記憶された旅客要求データベースを備えるコンピュータに、列車ダイヤを作成させるためのプログラム等に関する。
【背景技術】
【０００２】
鉄道における列車の運行に当たり、鉄道事業者は、列車ダイヤを作成する必要がある。この列車ダイヤの作成は、列車の数、複雑な運行条件等の問題から、人間の手によって手作業で行われているのが実状である。
【０００３】
しかし、列車ダイヤの作成をコンピュータ化する要請が強くなってきており、実用化に向けた開発・研究がなされており、如何にして適切な列車ダイヤを作成できるかが、問題となっている。適切な列車ダイヤを作成する技術の１つとして、特許文献１には、予め設定された旅客が不満と感じる条件を基に、旅客の不満を最小とするような列車ダイヤを作成する手法が開示されている。
【特許文献１】特開２００４−２２４１１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、旅客が実際に不満と感じるか否かを、列車ダイヤのみに基づいて予め条件づけすることは難しい。例えば、図１４の列車ダイヤ（横軸が時刻、縦軸が駅を示し、列車を傾斜線で示している。）において、Ａ駅−Ｂ駅間の列車の旅客が約２万人であり、Ｂ駅−Ｃ駅間の列車の旅客が約１万人であるような場合に、Ａ駅−Ｂ駅間の列車の運行本数と、Ｂ駅−Ｃ駅間の列車の運行本数とを等しく設定することは（同図（ａ））、旅客の要求を反映させたことにはならない。この場合は、Ａ駅−Ｂ駅間の列車の運行本数を、Ｂ駅−Ｃ駅間の列車の運行本数よりも多く設定すべきである（同図（ｂ））。
【０００５】
特許文献１を含む従来の手法の多くは、鉄道事業者側が、列車の運行のみに着目して、列車の乗り継ぎ時間等の条件を予め設定した上で列車ダイヤを作成するものであった。このため、現実の旅客の要求を反映させているとは言い切れなかった。
【０００６】
また、一方で、単に旅客の要求を反映させるとすると、人件費が増加する等、鉄道事業者側に不利益な場合がある。このため、鉄道事業者側のコストも当然考慮した上で、適切な列車ダイヤを作成できなければならない。
【０００７】
本発明はこのような課題に鑑みて為されたものであり、その第１の目的は、実際の旅客の要求を反映させた列車ダイヤの作成を可能にすることである。また、第２の目的は、第１の目的を達成するに当たり、鉄道事業者側のコストも反映することである。
【課題を解決するための手段】
【０００８】
以上の課題を解決するための第１の発明は、
少なくとも出発駅（例えば、図２の出発駅５７１）と到着駅（例えば、図２の到着駅５７３）と到着希望時刻（例えば、図２の到着希望時刻５７５）とが旅客人数分記憶された旅客要求データベース（以下「旅客要求ＤＢ」と呼ぶ。）（例えば、図２の旅客要求データ５７）を備えるコンピュータを、
所与の列車ダイヤに対して、前記旅客要求ＤＢに記憶された全ての旅客が利用した場合の各旅客の不効用値を旅客コストとして算出して総計する旅客コスト算出処理手段（例えば、図８のステップＢ９、図９のステップＣ１１）、
所与の列車ダイヤに対して、当該ダイヤを運行した場合の事業者の運行コストを算出する運行コスト算出処理手段（例えば、図８のステップＢ９、図９のステップＣ１１）、
候補解ダイヤを前記所与の列車ダイヤとして前記旅客コスト算出処理手段及び前記運行コスト算出処理手段に与えて、前記旅客コスト及び運行コストを算出させる処理を、候補解ダイヤを変更しつつ繰り返し行わせて、算出された旅客コスト及び運行コストの合計が最も低い候補解ダイヤを回答ダイヤとして決定する繰り返し演算制御手段（例えば、図９の図９のステップＣ１〜Ｃ２３）、
として機能させるためのプログラム（例えば、図１の列車ダイヤ作成プログラム５１）である。
【０００９】
また、他の発明として、
少なくとも出発駅と到着駅と到着希望時刻とが旅客人数分記憶された旅客要求データベース（以下「旅客要求ＤＢ」と呼ぶ。）と、
所与の列車ダイヤに対して、前記旅客要求ＤＢに記憶された全ての旅客が利用した場合の各旅客の不効用値を旅客コストとして算出して総計する旅客コスト算出処理手段と、
所与の列車ダイヤに対して、当該ダイヤを運行した場合の事業者の運行コストを算出する運行コスト算出処理手段と、
候補解ダイヤを前記所与の列車ダイヤとして前記旅客コスト算出処理手段及び前記運行コスト算出処理手段に与えて、前記旅客コスト及び運行コストを算出させる処理を、候補解ダイヤを変更しつつ繰り返し行わせて、算出された旅客コスト及び運行コストの合計が最も低い候補解ダイヤを回答ダイヤとして決定する繰り返し演算制御手段と、
を備える列車ダイヤ作成装置（例えば、図１の列車ダイヤ作成装置１）を構成しても良い。
【００１０】
この第１の発明等によれば、候補ダイヤが変更されながら、旅客コスト算出処理手段により各旅客の不効用値を旅客コストとして算出する処理が繰り返し行われ、また、運行コスト算出処理手段により事業者の運行コストを算出する処理が繰り返し行われる。そして、算出された旅客コスト及び運行コストの合計が最も低い候補解ダイヤが回答ダイヤとして決定される。
【００１１】
旅客コストは、機会損失や不快適性といった旅客が被る損失を表した評価値であり、この旅客コストが低いほど、旅客が被る損失は小さいことになる。回答ダイヤとして決定される候補解ダイヤは、低い旅客コストを有している可能性が高いため、回答ダイヤは、旅客の要求が反映された列車ダイヤである可能性が高い。従って、実際の旅客の要求が反映された列車ダイヤが作成されるようになる。
【００１２】
また、運行コストは、人件費や動力費といった事業者が被る損失を表す評価値であり、この運行コストが低いほど、事業者が被る損失は小さいことになる。旅客コストばかりでなく、運行コストも回答ダイヤの決定に影響するため、事業者のコストもまた反映されることになる。
【００１３】
また、第２の発明として、第１の発明のプログラムであって、
前記繰り返し演算制御手段が、
列車本数を徐々に増やしていくように候補解ダイヤを変更して、前記旅客コスト算出処理手段及び前記運行コスト算出処理手段に旅客コスト及び運行コストを算出させ、算出された旅客コスト及び運行コストの合計が最も低かった列車本数の候補解ダイヤを初期解ダイヤとして決定する初期解演算制御手段（例えば、図８のステップＢ１〜Ｂ１７）と、
前記初期解演算制御手段により決定された初期解ダイヤを当初の暫定解ダイヤとし、１）暫定解ダイヤの一部分を変更した改良解ダイヤを作成して、２）改良解ダイヤを前記所与の列車ダイヤとして前記旅客コスト算出処理手段及び前記運行コスト算出処理手段に与えて前記旅客コスト及び運行コストを算出させ、３）改良解ダイヤを新たな暫定解ダイヤとする１）〜３）の処理を繰り返し行って、２）で算出された旅客コスト及び運行コストの合計が最も低かった暫定解ダイヤを出力解ダイヤとして決定する出力解演算制御手段（例えば、図９のステップＣ１〜Ｃ２３）と、
を有するように前記コンピュータを機能させるためのプログラムを構成しても良い。
【００１４】
この第２の発明によれば、列車本数を徐々に増やしていくように候補解ダイヤを変更しながら、旅客コスト及び運行コストが算出され、旅客コスト及び運行コストの合計が最も低かった列車本数の候補解ダイヤが初期解ダイヤとして決定される。また、初期解ダイヤを当初の暫定解ダイヤとし、１）暫定解ダイヤの一部分を変更した改良解ダイヤを作成して、２）改良解ダイヤを所与の列車ダイヤとして旅客コスト及び運行コストを算出し、３）改良解ダイヤを新たな暫定解ダイヤとする１）〜３）の処理が繰り返し行われ、２）で算出された旅客コスト及び運行コストの合計が最も低かった暫定解ダイヤが出力解ダイヤとして決定される。
【００１５】
列車本数を徐々に増やしながら、旅客コスト及び運行コストの合計が最も低い候補解ダイヤを求めるようにしたことで、最適な候補解ダイヤが取得されずに埋もれてしまうといった事態が効果的に回避されるようになる。また、暫定解ダイヤを逐次改良していくため、出力解ダイヤとして選ばれる暫定解ダイヤが適切なものである可能性が高くなる。
【００１６】
また、第３の発明として、第２の発明のプログラムであって、
前記出力解演算制御手段が、
列車ダイヤに対する旅客の不満条件として予め定められた不満条件（例えば、図３の抽出条件５９３）を満たすダイヤ部分を前記暫定解ダイヤの中から検出する検出手段（例えば、図９のステップＣ３）と、
前記検出手段により検出されたダイヤ部分の不満条件を解消させるように暫定解ダイヤを変更した改良解ダイヤを作成する改良解ダイヤ作成手段（例えば、図９のステップＣ７）と、
を、前記１）の処理手段として有するように前記コンピュータを機能させるためのプログラムを構成しても良い。
【００１７】
この第３の発明によれば、列車ダイヤに対する旅客の不満条件として予め定められた不満条件を満たすダイヤ部分が暫定解ダイヤの中から検出され、検出されたダイヤ部分の不満条件を解消させるように暫定解ダイヤを変更した改良解ダイヤが作成される。従って、旅客に不利益をもたらすダイヤ部分が、適切に修正されるようになる。
【００１８】
また、第４の発明として、第３の発明のプログラムであって、
前記検出手段が、前記旅客要求ＤＢに記憶された全ての旅客が前記暫定解ダイヤに沿って乗車した場合の旅客流動シミュレーション処理を行う旅客流動シミュレーション処理手段（例えば、図９のステップＣ９）を有し、この旅客流動シミュレーション処理手段による処理結果に基づいて、前記不満条件を満たすダイヤ部分を検出するように前記コンピュータを機能させるためのプログラムを構成しても良い。
【００１９】
この第４の発明によれば、旅客要求ＤＢに記憶された全ての旅客が暫定解ダイヤに沿って乗車した場合の旅客流動シミュレーション処理が行われ、この旅客流動シミュレーション処理の結果に基づいて、不満条件を満たすダイヤ部分が検出されることになる。
【００２０】
また、第５の発明として、第４の発明のプログラムであって、
前記検出手段が、各列車の乗車人数に基づいて前記不満条件を満たすダイヤ部分を検出する乗車人数基準検出手段（例えば、図９のステップＣ３、図３のダイヤ改良処理用テーブル５９）を有するように前記コンピュータを機能させるためのプログラムを構成しても良い。
【００２１】
この第５の発明によれば、各列車の乗車人数に基づいて、不満条件を満たすダイヤ部分が検出される。列車の乗車人数が極端に多い場合には、旅客が不快感を感じるため、旅客側が不利益を被ることになるが、列車の乗車人数が極端に少ない場合には、鉄道事業者の利益が減少するため、事業者側が不利益を被ることになる。しかし、乗車人数に基づいて不満条件を満たすダイヤ部分を検出するようにしたことで、乗車人数が好ましくないダイヤ部分が適切に検出されるようになる。
【００２２】
また、第６の発明として、第４又は第５の発明のプログラムであって、
前記検出手段が、
各旅客について、到着駅に到着した時刻と到着希望時刻との差を算出する乖離時刻算出手段（例えば、図９のステップＣ３、図３のダイヤ改良処理用テーブル５９）と、
前記乖離時刻算出手段の算出結果に基づいて前記不満条件を満たすダイヤ部分を検出する乖離時刻基準検出手段（例えば、図９のステップＣ３、図３のダイヤ改良処理用テーブル５９）と、
を有するように前記コンピュータを機能させるためのプログラムを構成しても良い。
【００２３】
この第６の発明によれば、各旅客について、到着駅に到着した時刻と到着希望時刻との差が算出され、その算出結果に基づいて不満条件を満たすダイヤ部分が検出される。実際に到着駅に到着した時刻と到着希望時刻との差が大きい場合には、旅客の待ち時間が長くなるため、旅客側が不利益を被ることになる。しかし、例えば到着駅に到着した時刻と到着希望時刻との差が大きくなるようなダイヤ部分を検出することにすれば、旅客に不利益をもたらすダイヤ部分が適切に検出されるようになる。
【発明の効果】
【００２４】
本発明によれば、候補ダイヤが変更されながら、旅客コスト算出処理手段により各旅客の不効用値を旅客コストとして算出する処理が繰り返し行われ、また、運行コスト算出処理手段により事業者の運行コストを算出する処理が繰り返し行われる。そして、算出された旅客コスト及び運行コストの合計が最も低い候補解ダイヤが回答ダイヤとして決定される。
【００２５】
旅客コストは、機会損失や不快適性といった旅客が被る損失を表した評価値であり、この旅客コストが低いほど、旅客が被る損失は小さいことになる。回答ダイヤとして決定される候補解ダイヤは、低い旅客コストを有している可能性が高いため、回答ダイヤは、旅客の要求が反映された列車ダイヤである可能性が高い。従って、実際の旅客の要求が反映された列車ダイヤが作成されるようになる。
【００２６】
また、運行コストは、人件費や動力費といった事業者が被る損失を表す評価値であり、この運行コストが低いほど、事業者が被る損失は小さいことになる。旅客コストばかりでなく、運行コストも回答ダイヤの決定に影響するため、事業者のコストもまた反映されることになる。
【発明を実施するための最良の形態】
【００２７】
１．実施例
以下、図面を参照して、本発明を適用した列車ダイヤ作成装置１について説明する。
【００２８】
１−１．構成
先ず、構成について説明する。
図１は、列車ダイヤ作成装置１の機能構成を示すブロック図である。
列車ダイヤ作成装置１は、ＣＰＵ（Central Processing Unit）１０と、入力部２０と、表示部３０と、通信部４０と、ハードディスク５０と、ＲＡＭ（Random Access Memory）６０とを備え、各部はバス７０で相互にデータ通信可能に接続されて構成されるコンピュータシステムである。
【００２９】
ＣＰＵ１０は、ハードディスク５０に記憶されているシステムプログラム等に従って各部を統括的に制御する。また、ＣＰＵ１０は、ハードディスク５０に記憶されている列車ダイヤ作成プログラム５１に従って列車ダイヤ作成処理を行うことで列車ダイヤを作成し、作成した列車ダイヤを表示部３０に表示させる。
【００３０】
入力部２０は、例えばキーボード等により実現され、押下されたキーの信号をＣＰＵ１０に出力する。この入力部２０によるキー操作により、各種データの入力や処理指示等がなされる。
【００３１】
表示部３０は、ＬＣＤ（Liquid Crystal Display）等により構成され、ＣＰＵ１０から入力される表示信号に基づいた各種表示を行う表示装置である。
【００３２】
通信部４０は、ＣＰＵ１０の制御に基づいて、装置内部で利用される情報をインターネット等の通信ネットワークを介して外部とやりとりするための通信装置である。
【００３３】
ハードディスク５０は、列車ダイヤ作成装置１が備える各種機能を実現するためのプログラムやデータ等を記憶し、ＣＰＵ１０により読み出され、列車ダイヤ作成処理（図７参照）として実行される列車ダイヤ作成プログラム５１と、列車ダイヤデータ５３と、線路データ５５と、旅客要求データ５７と、ダイヤ改良処理用テーブル５９とを備えている。また、列車ダイヤ作成プログラム５１は、初期解生成処理（図８参照）として実行される初期解生成プログラム５１１と、ダイヤ改良処理（図９参照）として実行されるダイヤ改良プログラム５１３とをサブルーチンとして備えている。
【００３４】
列車ダイヤ作成処理とは、ＣＰＵ１０が、初期解生成処理及びダイヤ改良処理を行って、列車ダイヤの作成を行う処理である。この列車ダイヤ作成処理については、詳細に後述する。
【００３５】
初期解生成処理とは、ＣＰＵ１０が、ダイヤ改良処理の初期解となる列車ダイヤ（以下、「初期解ダイヤ」と呼ぶ。）を生成する処理である。具体的には、ＣＰＵ１０は、作成の対象となる列車ダイヤの部分（以下、「ダイヤ部分」と呼ぶ。）について、上り、下り、それぞれＮ本の列車を設定した仮ダイヤを作成する。そして、ＣＰＵ１０は、作成した仮ダイヤに対する旅客流動シミュレーションを行い、ダイヤ評価処理により、当該仮ダイヤの評価を行う。ＣＰＵ１０は、上述した処理を、Ｎ＝０から順に列車の運行が不可能となるまでＮの数を増加させて繰り返し実行し、最も評価の高い仮ダイヤを初期解ダイヤに決定する。
【００３６】
ここで、旅客流動シミュレーション及びダイヤ評価処理について説明する。
旅客流動シミュレーションは、旅客要求データ５７（図２参照）を基に、各旅客それぞれについて、当該旅客が出発駅５７１を出発して、到着希望時刻５７５以前に到着駅５７３に到着する場合の乗車シミュレーションを、処理対象の列車ダイヤに対して行う処理である。この旅客流動シミュレーションにより、各旅客の利用列車、乗車時間、待ち時間、乗換回数、各列車の各区間における乗車人数、混雑度等のパラメータが算出される。なお、旅客流動シミュレーションは、公知の処理であるため、詳細な説明を省略する。
【００３７】
図２は、旅客要求データ５７のデータ構成例を示す図である。
旅客要求データ５７には、各旅客について、出発駅５７１と、到着駅と５７３と、到着希望時刻５７５とが対応付けられている。到着希望時刻５７５とは、当該旅客が到着駅に到着したい時刻であり、作成対象の列車ダイヤの各路線を利用する旅客人数分、例えば１０万人分のデータが格納される。
【００３８】
ダイヤ評価処理は、列車ダイヤの評価を行う処理である。初期解生成処理では、ＣＰＵ１０は、旅客流動シミュレーションにより求められた各種パラメータを用いて、列車ダイヤの評価値Ｅを算出する。
【００３９】
評価値Ｅは、機会損失や不快適性といった旅客の損失を定量化した旅客コストＬと、人件費、動力費といった鉄道事業者の損失を定量化した運行コストＣとの和で表される（次式（１））。
【００４０】
【数１】
0004727459.tif 000002
【００４１】
先ず、旅客コストＬの算出方法について説明する。
旅客コストＬを算出するに当たり、各旅客の不効用を表す不効用値Ｕを算出する。今、旅客ｐの不効用値をＵｐで表すことにすると、Ｕｐは次式（２）に従って算出される。
【００４２】
【数２】
0004727459.tif 000003
【００４３】
ここで、Ｔｐは旅客ｐの乗車時間、Ｗｐは旅客ｐの待ち時間、Ｎｐは旅客ｐの乗換回数、Ｑｐは旅客ｐが乗車した列車の集合、Ｒｐ,ｍは旅客ｐが列車ｍで通過した駅間の集合、ｔｍ,ｘｙは列車ｍのｘ駅→ｙ駅間の走行時間、Ｃｏｎｊｍ,ｘｙは列車ｍのｘ駅→ｙ駅間の混雑度をそれぞれ表しており、これらの値は、旅客流動シミュレーションによって求められる。また、α、β、γ、δは定数である。
【００４４】
式（２）で求められる各旅客の不効用値Ｕに基づいて、旅客コストＬは次式（３）に従って算出される。
【００４５】
【数３】
0004727459.tif 000004
【００４６】
ここで、Ｖは時間評価値と呼ばれる定数であり、単位乗車時間当たりの損失額[円／分]を表したものである。例えば、４８．２[円／分]として設定される。式（３）から明らかなように、旅客コストＬは、全ての旅客についての不効用値Ｕの総和に、時間評価値を乗算することで求められる。
【００４７】
次に、運行コストＣの算出方法について説明する。
運行コストＣは、式（４）に従って算出される。
【００４８】
【数４】
0004727459.tif 000005
【００４９】
ここで、ｋは列車走行１ｋｍ当たりの鉄道事業営業費[円／ｋｍ]を表しており、ｄｍは列車ｍの走行距離を表している。この鉄道事業営業費ｋとしては、例えば６，１５２[円／ｋｍ]が設定される。式（４）から明らかなように、運行コストＣは、全ての列車についての走行距離の総和に、列車走行１ｋｍ当たりの鉄道事業営業費を乗算することで求められる。
【００５０】
評価値Ｅは、旅客の損失（旅客コストＬ）と、事業者の損失（運行コストＣ）との和で表されるため、評価値Ｅが小さい列車ダイヤほど、有益なダイヤである可能性が高い。
【００５１】
ダイヤ改良処理とは、ＣＰＵ１０が、初期解生成処理によって求められた初期解ダイヤを初期解とし、不満部分を修正していく処理を繰り返し実行することで、最終的な列車ダイヤを作成する処理である。
【００５２】
ダイヤ改良処理を具体的に説明すると、ＣＰＵ１０は、繰り返し処理において、現在処理中のダイヤの中から旅客又は鉄道事業者に不利益をもたらすダイヤ部分（以下、「不満部分」と呼ぶ。）を抽出する不満部分抽出処理を行い、抽出した不満部分の中から一の不満部分を改良部分として選択する改良部分選択処理を行う。そして、ＣＰＵ１０は、選択した改良部分を修正して改良解ダイヤを作成する改良解ダイヤ作成処理を行い、作成した改良解ダイヤに対して旅客流動シミュレーションを行う。そして、ＣＰＵ１０は、ダイヤ評価処理を実行し、改良解ダイヤの採否を判断する改良解ダイヤ採否判断処理を行って、最も評価の高い改良解ダイヤを保存した上で、改良解ダイヤ又は改良前のダイヤから再度不満部分を抽出して改良していく処理を繰り返し実行していく。繰り返し処理の結果、保存された最も評価の高い改良解ダイヤを出力解ダイヤに決定する。
【００５３】
ここで、ダイヤ改良処理において行われる各種処理について、詳細に説明する。尚、旅客流動シミュレーション及びダイヤ評価処理については、初期解生成処理における処理と同一であるため、説明を省略する。
【００５４】
図３は、不満部分抽出処理、改良部分選択処理及び改良解ダイヤ作成処理において用いられるテーブルであるダイヤ改良処理用テーブル５９の構成を示す図である。ダイヤ改良処理用テーブル５９には、番号５９１と、抽出条件５９３と、不満度算出方法５９５と、修正内容５９７とが対応付けられている。
【００５５】
不満部分抽出処理では、ＣＰＵ１０は、現在解ダイヤの中から、抽出条件５９３に合致するダイヤ部分を不満部分として抽出する。そして、ＣＰＵ１０は、抽出した各不満部分について、不満度算出方法５９５に基づいて不満度ｆを算出する。ここで、不満度ｆは、値が大きいほど旅客又は事業者の不満が大きいことを表す評価値である。
【００５６】
改良部分選択処理では、ＣＰＵ１０は、不満部分抽出処理によって抽出された各不満部分について確率Ｐを設定し、この確率Ｐに従って、一の不満部分を改良部分として選択する。今、ｉ番目の不満部分の不満度をｆiで表すことにすると、当該不満部分に設定される確率Ｐiは次式（５）で表される。
【００５７】
【数５】
0004727459.tif 000006
【００５８】
式（５）から明らかなように、不満度ｆが小さい不満部分ほど、改良部分として選択される確率は低くなる。
【００５９】
改良解ダイヤ作成処理では、ＣＰＵ１０は、改良部分選択処理により選択された改良部分について、修正内容５９７に従ったダイヤの修正を行う。
【００６０】
次に、具体例を挙げて、上述した処理について説明する。
図３のダイヤ改良処理用テーブル５９において、１番目の抽出条件５９３は、「当該列車の当該区間における乗客数が１５０人以上」であることである。これは、列車の乗客数が多過ぎるために、旅客が不満を感じることを示している。
【００６１】
この場合は、修正内容５９７に従って、「当該列車の当該区間における発駅の発時刻を１分遅らせる」修正が行われる。このような修正が行われるのは、発駅における列車の発時刻を遅らせることで、列車の乗客数を減少させることができるからである。
【００６２】
例えば、図４（ａ）の列車ダイヤにおいて、乗客Ａ〜Ｇは、到着希望時刻までに到着駅に到着するために１列車に乗車することが考えられる。しかし、１列車の発駅における発時刻を遅らせると、乗客Ａ〜Ｃは１列車よりも前の列車（図示せず）に乗車することを余儀なくされるため、１列車に乗車する乗客は乗客Ｄ〜Ｇとなり、１列車の乗客数は減少する。
【００６３】
尚、当該列車（１列車）の発時刻を遅らせるのではなく、次列車（２列車）の着時刻を早めることにしても同様の効果を得ることができるため、そのような修正を行うことにしても勿論良い。
【００６４】
２番目の抽出条件５９３は、「当該列車の当該区間における乗客数が１００人未満」であることである。これは、列車の乗客数が少な過ぎるために、鉄道事業者が不利益を被ることを示している。
【００６５】
この場合は、修正内容５９７に従って、「当該列車の当該区間における発駅の発時刻を１分早める」修正が行われる。このような修正が行われるのは、発駅における列車の発時刻を早めることで、列車の乗客数を増加させることができるからである。
【００６６】
例えば、図４（ｂ）の列車ダイヤにおいて、乗客Ａ〜Ｃは、到着希望時刻までに到着駅に到着するために１列車よりも前の列車（図示せず）に乗車することになり、乗客Ｄ〜Ｇは、１列車に乗車することになる。しかし、１列車の発駅における発時刻を早めると、乗客Ａ〜Ｃも１列車に乗車することができるようになり、１列車の乗客数は増加する。
【００６７】
尚、当該列車（１列車）の発時刻を早めるのではなく、次列車（２列車）の着時刻を遅らせることにしても同様の効果を得ることができるため、そのような修正を行うことにしても勿論良い。
【００６８】
１番目の抽出条件と２番目の抽出条件とは相反する条件のようにも考えられるが、実際に改良部分として選択されるか否かは、不満度算出方法５９５によって算出されたそれぞれの不満度に従った確率によって選択される。以下の抽出条件も同様である。
【００６９】
３番目の抽出条件５９３は、「当該列車の当該区間における到着駅への着時刻と到着希望時刻との時間差が１０分以上となる乗客数が４０人以上」であることである。これは、到着希望時刻よりもだいぶ早くに到着駅に到着してしまった乗客が、待ち時間の不満を感じることを示している。
【００７０】
この場合は、修正内容５９７に従って、「当該列車の当該区間における発駅の発時刻を２分遅らせる」修正が行われる。このような修正が行われるのは、発駅における列車の発時刻を遅らせることで、乗客の待ち時間を短縮させることができるからである。
【００７１】
例えば、図４（ｃ）の列車ダイヤにおいて、乗客Ｄ〜Ｇは、１列車に乗車して到着駅に到着した後、かなり長い時間待つことになってしまう。しかし、１列車の発駅における発時刻を遅らせると、到着駅への着時刻が遅くなるため、乗客Ｄ〜Ｇの待ち時間は短縮される。
【００７２】
尚、当該列車（１列車）の発時刻を遅らせるのではなく、次列車（２列車）の着時刻を早めることにしても同様の効果を得ることができるため、そのような修正を行うことにしても勿論良い。
【００７３】
４番目の抽出条件５９３は、「当該列車の当該区間における走行時間と基準運転時間との時間差が２分以上」であることである。これは、電車の遅延の原因となる等、旅客が不満を感じることを示している。
【００７４】
この場合は、修正内容５９７に従って、「着時刻をそのままにして、当該列車の当該区間における発駅の発時刻を１分遅らせる」修正が行われる。このような修正が行われるのは、列車の走行時間が短縮されることが期待されるからである。
【００７５】
例えば、図４（ｄ）の列車ダイヤにおいて、１列車の着時刻をそのままにして発時刻を遅らせることで、１列車の走行時間が短縮されることが期待できる。
【００７６】
尚、着時刻をそのままにして、当該列車（１列車）の当該区間における発駅の発時刻を１分遅らせるのではなく、発時刻をそのままにして、当該列車（１列車）の当該区間における到着駅への着時刻を早めることにしても同様の効果を得ることができるため、そのような修正を行うことにしても勿論良い。
【００７７】
５番目の抽出条件５９３は、「イ）当該列車の当該区間の乗客数と、直前の列車の当該区間の乗客数との和（以下、「第１乗客数」と呼ぶ。）が１５０人未満であり、ロ）当該列車の折返し列車の当該区間の乗客数と、当該列車の折返し列車の直前の列車の当該区間の乗客数との和（以下、「第２乗客数」と呼ぶ。）が１５０人未満であり、且つ、ハ）当該列車の当該区間の発駅に折返し番線が存在する」ことである。
【００７８】
例えば、図５（ａ）において、Ｂ駅からＡ駅に向かう３列車（当該列車）の乗客数が少なく、また、Ａ駅からＢ駅に向かう４列車（当該列車の折返し列車）の乗客数が少ない場合には、３列車のＢ駅−Ａ駅間及び４列車のＡ駅−Ｂ駅間は運休にした方が効率的である。
【００７９】
この場合は、修正内容５９７に従って、「当該列車を当該区間の発駅で折返し、折返し列車とする（山切り実施）」修正が行われる。図５（ａ）では、Ｂ駅からＡ駅に向かう３列車がＢ駅において折返し、Ｂ駅からＣ駅に向かう４列車となる。
【００８０】
尚、イ）及びロ）の閾値判定において、当該列車（３列車）の直前の列車（１列車）と、当該列車の折返し列車（４列車）の直前の列車（２列車）の乗客数とを計算に含めるのは、当該列車（３列車）を運休とすることで、その直前の列車（１列車）に乗客が集中する可能性があり、また、当該列車の折返し列車（４列車）を運休とすることで、その直前の列車（２列車）に乗客が集中する可能性があるからである。
【００８１】
６番目の抽出条件５９３は、「イ）当該列車の当該区間の乗客数と、直前の列車の当該区間の乗客数との和（第１乗客数）が１５０人未満であり、ロ）当該列車の直前の列車の折返し列車の当該区間の乗客数と、当該折返し列車の直前の列車の当該区間の乗客数との和（以下、「第３乗客数」と呼ぶ。）が１５０人未満であり、且つ、ハ）当該列車の当該区間の発駅に折返し番線が存在する」ことである。
【００８２】
例えば、図５（ｂ）において、Ｂ駅からＡ駅に向かう３列車（当該列車）の乗客数が少なく、また、Ａ駅からＢ駅に向かう４列車（当該列車の直前の列車の折返し列車）の乗客数が少ない場合には、３列車のＢ駅−Ａ駅間及び４列車のＡ駅−Ｂ駅間は運休にした方が効率的である。
【００８３】
この場合は、修正内容５９７に従って、「当該列車を当該区間の発駅で折返し、折返し列車とする。また、当該列車の直前の列車を当該区間の着駅で折返し、折返し列車とする（タスキ切り実施）」修正が行われる。図５（ｂ）では、Ｂ駅からＡ駅に向かう３列車がＢ駅において折返し、Ｂ駅からＣ駅に向かう４列車となる。また、Ｂ駅からＡ駅に向かう１列車がＡ駅において折返し、Ａ駅からＢ駅に向かう６列車となる。
【００８４】
尚、イ）及びロ）の閾値判定において、当該列車（３列車）の直前の列車（１列車）と、当該列車の直前の列車の折返し列車（４列車）の直前の列車（２列車）の乗客数とを計算に含めるのは、当該列車（３列車）を運休とすることで、その直前の列車（１列車）に乗客が集中する可能性があり、また、当該列車の直前の列車の折返し列車（４列車）を運休とすることで、その直前の列車（２列車）に乗客が集中する可能性があるからである。
【００８５】
ダイヤ改良処理の説明に戻って、改良解ダイヤ採否判断処理では、ＣＰＵ１０は、ダイヤ評価処理で求められた評価値Ｅに基づいて、メタヒューリスティクスの手法に基づいた改良解ダイヤの採否判断を行う。即ち、改良後の解を残すか否かを判断する。ここで、メタヒューリスティクスとは、組合せ最適化問題に対する解法として局所探索法などの発見的手法を用いた一般的な枠組みであり、遺伝的アルゴリズム（ＧＡ）や、逐次改善法、シミュレーティッド アニーリング（ＳＡ）等がこれに含まれる。
【００８６】
列車ダイヤデータ５３は、通常運行時の列車ダイヤについてのデータであり、列車ダイヤを構成する列車の列車情報が記憶されている。具体的には、各列車の列車番号、各駅における着発時刻、列車種別の情報が記憶されている。この列車ダイヤデータ５３は、例えば初期解生成処理において、初期解ダイヤを作成する際に参照される。
【００８７】
線路データ５５は、各駅の設備条件や各駅における列車運行条件等が記憶されたデータである。具体的には、発着可能な番線、当該駅への列車の進入・進出ルート、列車運転間隔、駅間走行時分の情報が各駅毎に記憶されている。この線路データ５５は、例えば初期解生成処理において、ダイヤに沿った列車の運行が可能であるか否かを判断したり、不満部分抽出処理において、不満部分を抽出する際に参照される。
【００８８】
ＲＡＭ６０は、ＣＰＵ１０により実行されるシステムプログラム、各種処理プログラム、各種処理の処理中データ、処理結果などを一時的に記憶するワークエリアを形成している。ＲＡＭ６０には、例えば、初期解ダイヤデータ６１と、出力解ダイヤデータ６３と、抽出不満部分データ６５とが記憶されるが、その他、各処理において一時的に生成されるダイヤデータが記憶される。
【００８９】
初期解ダイヤデータ６１には、初期解生成処理においてＣＰＵ１０により生成される初期解ダイヤ及びその評価値Ｅが記憶される。出力解ダイヤデータ６３には、ダイヤ改良処理においてＣＰＵ１０により生成される出力解ダイヤ及びその評価値Ｅが記憶される。
【００９０】
抽出不満部分データ６５は、不満部分抽出処理においてＣＰＵ１０により抽出された不満部分についてのデータであり、そのデータ構成例を図６に示す。抽出不満部分データ６５には、番号６５１と、不満部分６５３と、不満度６５５とが対応付けて記憶される。
【００９１】
１−２．処理の流れ
次に、処理の流れについて説明する。
図７は、ＣＰＵ１０により列車ダイヤ作成プログラム５１が読み出されて実行されることにより列車ダイヤ作成装置１において実行される列車ダイヤ作成処理の流れを示すフローチャートである。
【００９２】
先ず、ＣＰＵ１０は、初期解生成プログラム５１１を実行することで初期解生成処理を行う（ステップＡ１）。次いで、ＣＰＵ１０は、ダイヤ改良プログラム５１３を実行することでダイヤ改良処理を行う（ステップＡ３）。そして、ＣＰＵ１０は、列車ダイヤ作成処理を終了する。
【００９３】
図８は、初期解生成処理の流れを示すフローチャートである。
先ず、ＣＰＵ１０は、列車の本数Ｎを「０」に設定する（ステップＢ１）。そして、ＣＰＵ１０は、作成の対象となるダイヤ部分について、上り、下り、それぞれＮ本の列車を等間隔に走行させる場合の仮ダイヤを作成する（ステップＢ３）。
【００９４】
次いで、ＣＰＵ１０は、当該仮ダイヤに沿った列車の運行が可能であるか否かを判定する（ステップＢ５）。具体的には、ＣＰＵ１０は、線路データ５５を参照して、列車の番線の競合がないか、列車の運転間隔が適切であるか、等の判断を行う。
【００９５】
ステップＢ５において運行が可能であると判定した場合は（ステップＢ５；Ｙｅｓ）、ＣＰＵ１０は、当該仮ダイヤに対する旅客流動シミュレーションを行う（ステップＢ７）。そして、ＣＰＵ１０は、旅客流動シミュレーションにより求められた各種パラメータを用いて、式（１）〜（４）に従って当該仮ダイヤの評価値Ｅを算出することで、ダイヤ評価処理を行う（ステップＢ９）。
【００９６】
次いで、ＣＰＵ１０は、当該仮ダイヤが最良解であるか否かを判定する（ステップＢ１１）。具体的には、ＣＰＵ１０は、ステップＢ９で算出した当該仮ダイヤの評価値Ｅが、現在保存されている仮ダイヤの評価値Ｅよりも小さい場合に、当該仮ダイヤを最良解と判定する。
【００９７】
ステップＢ１１において当該仮ダイヤが最良解であると判定した場合は（ステップＢ１１；Ｙｅｓ）、ＣＰＵ１０は、当該仮ダイヤ及びその評価値Ｅを保存し（ステップＢ１３）、列車の本数Ｎをインクリメントして（ステップＢ１５）、ステップＢ３に戻る。また、ステップＢ１１において当該仮ダイヤが最良解ではないと判定した場合は（ステップＢ１１；Ｎｏ）、ＣＰＵ１０は、ステップＢ１５へと処理を移行する。
【００９８】
一方、ステップＢ５において運行が不可能であると判定した場合は（ステップＢ５；Ｎｏ）、ＣＰＵ１０は、現在保存されている仮ダイヤを初期解ダイヤに決定し（ステップＢ１７）、評価値Ｅと共に初期解ダイヤデータ６１としてＲＡＭ６０に記憶させて、初期解生成処理を終了する。
【００９９】
図９は、ダイヤ改良処理の流れを示すフローチャートである。
先ず、ＣＰＵ１０は、初期解ダイヤデータ６１に記憶されている初期解ダイヤを現在解ダイヤとする（ステップＣ１）。そして、ＣＰＵ１０は、不満部分抽出処理を行い、現在解ダイヤの中から不満部分を抽出する（ステップＣ３）。
【０１００】
具体的には、ＣＰＵ１０は、ダイヤ改良処理用テーブル５９を参照し、現在解ダイヤの中から抽出条件５９３を具備するダイヤ部分全てを不満部分として抽出する。また、ＣＰＵ１０は、抽出した各不満部分それぞれについて、不満度算出方法５９５に従って不満度ｆを算出する。そして、ＣＰＵ１０は、抽出した全ての不満部分を不満度ｆと対応付けて、抽出不満部分データ６５に記憶させる。
【０１０１】
次いで、ＣＰＵ１０は、改良部分選択処理を行い、不満部分抽出処理により抽出された不満部分のうちの一の不満部分を改良部分として選択する（ステップＣ５）。具体的には、ＣＰＵ１０は、各不満部分について、式（５）に従って確率Ｐを設定し、設定した確率Ｐに従って改良部分を選択するようにする。
【０１０２】
そして、ＣＰＵ１０は、改良解ダイヤ作成処理を行うことで、改良解ダイヤを作成する
（ステップＣ７）。具体的には、ＣＰＵ１０は、ダイヤ改良処理用テーブル５９の修正内容５９７に従って、ステップＣ５で選択した改良部分の修正を行う。
【０１０３】
その後、ＣＰＵ１０は、当該改良解ダイヤに対する旅客流動シミュレーションを行う（ステップＣ９）。そして、ＣＰＵ１０は、旅客流動シミュレーションにより求められた各種パラメータを用いて、式（１）〜（４）に従って当該改良解ダイヤの評価値Ｅを算出することで、ダイヤ評価処理を行う（ステップＣ１１）。
【０１０４】
次いで、ＣＰＵ１０は、改良解ダイヤ採否判断処理を行うことで、当該改良解ダイヤの採否判断を行う（ステップＣ１３）。具体的には、ＣＰＵ１０は、メタヒューリスティクスの手法に従って、当該改良解ダイヤを解として採用するか否かを判断する。
【０１０５】
そして、当該改良解ダイヤを解として採用すると判断した場合は（ステップＣ１５；Ｙｅｓ）、ＣＰＵ１０は、当該改良解ダイヤ及びその評価値ＥをＲＡＭ６０に保存し（ステップＣ１７）、当該改良解ダイヤで現在解ダイヤを更新する（ステップＣ１９）。また、当該改良解ダイヤを解として採用しないと判断した場合は（ステップＣ１５；Ｎｏ）、ＣＰＵ１０は、ステップＣ２１へと処理を移行する。
【０１０６】
次いで、ＣＰＵ１０は、処理を終了するか否かを判定する（ステップＣ２１）。具体的には、ＣＰＵ１０は、予め定められた回数（例えば１万回）だけ、ステップＣ３〜Ｃ１９の処理が繰り返し実行されたか否かを判定する。
【０１０７】
ステップＣ２１において処理を終了しないと判定した場合は（ステップＣ２１；Ｎｏ）、ＣＰＵ１０は、ステップＣ３に戻る。また、処理を終了すると判定した場合は（ステップＣ２１；Ｙｅｓ）、ＣＰＵ１０は、現在解ダイヤを出力解ダイヤに決定して（ステップＣ２３）、その評価値Ｅと共に出力解ダイヤデータ６３としてＲＡＭ６０に記憶させて、ダイヤ改良処理を終了する。
【０１０８】
１−３．実験結果
次に、列車ダイヤ作成処理を行って、実際に列車ダイヤを作成した場合の実験結果について説明する。ここでは、首都圏のある路線（駅１〜駅２５）をモデルとして、平日の日中１２時〜１４時の列車ダイヤの作成を行った。
【０１０９】
先ず、図１０〜図１２を参照して、旅客要求データ５７として駅１８〜駅２５を利用する旅客が少ないもの、即ち駅１８〜駅２５の需要が少ないものを与えた場合の実験結果について説明する。
【０１１０】
図１０は、処理を行う前の列車ダイヤを示す図である。中央部の１２時〜１４時までの部分において列車が設定されていないことがわかる。
【０１１１】
図１１は、初期解生成処理において生成された仮ダイヤの一例を示す図である。ここでは、中央部の１２時〜１４時までの部分において、上り、下り、それぞれ９本の列車が等間隔に設定されていることがわかる。
【０１１２】
図１２は、最終的に求められた出力解ダイヤを示す図である。駅１９〜駅２５を運行する列車の本数が少なく設定されており（同図中の丸Ｗ１の部分）、旅客の要求が反映された列車ダイヤが作成されたと言える。
【０１１３】
次に、図１３を参照して、駅２０付近で１３時前後にイベントが開催されることを仮定した旅客要求データ５７を与えた場合の実験結果について説明する。具体的には、旅客要求データ５７として、到着駅が駅２０であり、到着希望時刻が１２時半〜１３時半である旅客が多いものを与えた場合の実験結果について説明する。
【０１１４】
図１３は、最終的に求められた出力解ダイヤを示す図である。１２時半〜１３時間半に駅２０に到着する列車の本数が多く設定されており（同図中の丸Ｗ２の部分）、旅客の要求が反映された列車ダイヤが作成されたと言える。
【０１１５】
１−４．作用効果
本実施例によれば、初期解生成処理により生成された初期解ダイヤを初期解として、ダイヤを修正しながら、旅客コストＬ及び運行コストＣを算出する処理が繰り返し行われ、算出された旅客コストＬと運行コストＣとの和で表される評価値Ｅが最も低いダイヤが、出力解ダイヤとして決定される。
【０１１６】
旅客コストＬは、機会損失や不快適性といった旅客が被る損失を表した評価値であり、この旅客コストＬが低いほど、旅客が被る損失は小さいことになる。出力解ダイヤとして決定されるダイヤは、低い旅客コストＬを有している可能性が高いため、出力解ダイヤは、旅客の要求が反映された列車ダイヤである可能性が高い。従って、実際の旅客の要求が反映された列車ダイヤが作成されるようになる。
【０１１７】
また、運行コストＣは、人件費や動力費といった事業者が被る損失を表す評価値であり、この運行コストＣが低いほど、事業者が被る損失は小さいことになる。旅客コストＬばかりでなく、運行コストＣも出力解ダイヤの決定に影響するため、事業者のコストもまた反映されることになる。
【０１１８】
また、旅客要求データ５７に記憶された抽出条件５７３を具備するダイヤ部分が不満部分として抽出され、抽出条件５７３を解消するように不満部分が修正されて、改良解ダイヤが作成される。従って、旅客に不利益をもたらすダイヤ部分が、適切に修正されるようになる。
【０１１９】
１−５．変形例
１−５−１．旅客要求データ
本実施例では、旅客要求データ５７に旅客の到着希望時刻５７５を記憶させることとして説明したが、到着希望時刻５７５ではなく、出発時刻を記憶させることにしても良い。この場合は、ダイヤ改良処理用データ５９の抽出条件５９３、不満度算出方法５９５及び修正内容５９７を適宜変更することで、同様に処理を行うことが可能になる。
【０１２０】
１―５−２．ダイヤ改良処理
ダイヤ改良処理では、１つの改良解ダイヤを保存しておくものとして説明したが、複数の改良解ダイヤを出力解ダイヤの候補として保存しておき、その中から最適な改良解ダイヤを選択するようにしても良い。具体的には、例えば評価の高い順に、常に３個の改良解ダイヤを保存しておくこととし、評価値Ｅの大きさに基づいて、１ループ毎に改良解ダイヤの入替えを行う。そして、最終的に保存されている３つの改良解ダイヤの中から、メタヒューリスティクス等の手法に基づいて１つの改良解ダイヤを選択して、出力解ダイヤとする。
【０１２１】
１−５−３．解の採否判断
ダイヤ改良処理では、評価値Ｅの大きさに基づいて解の採否判断を行うものとして説明したが、このような構成を採るのではなく、不満部分抽出処理において算出した不満度ｆの総和を算出し、この値の大きさに基づいて解の採否判断を行うことにしても良い。不満度ｆは、旅客又は事業者の不満の大きさを表しているため、評価値Ｅとほぼ同様の意味を有するからである。
【０１２２】
１−５−４．改良部分の修正
ダイヤ改良処理では、１ループにつき、不満部分の中から１箇所を改良部分として選択して修正することとして説明したが、複数箇所を改良部分として選択して修正することにしても良い。例えば、１ループにつき、１０箇所の不満部分を改良部分として選択して修正するようにする。
【０１２３】
１−５−５．評価値Ｅの算出
本実施例では、評価値Ｅを式（１）のように旅客コストＬと運行コストＣとの和で表現するものとして説明したが、それぞれのコストに重みを設定して、重み付け和として表現しても良い。具体的には、λ、ωを重みとして、評価値Ｅを次式（６）に従って算出する。
【０１２４】
【数６】
0004727459.tif 000007
【０１２５】
このようにすることで、旅客の損失を重視したい場合はλの値を大きく設定し、逆に事業者の損失を重視したい場合はωの値を大きく設定することで、適切に列車ダイヤの評価を行うことができるようになる。
【図面の簡単な説明】
【０１２６】
【図１】列車ダイヤ作成装置の機能構成を示すブロック図。
【図２】旅客要求データのデータ構成例を示す図。
【図３】ダイヤ改良処理用テーブルのテーブル構成例を示す図。
【図４】改良解ダイヤ作成の説明図。
【図５】改良解ダイヤ作成の説明図。
【図６】抽出不満部分データのデータ構成例を示す図。
【図７】列車ダイヤ作成処理の流れを示すフローチャート。
【図８】初期解生成処理の流れを示すフローチャート。
【図９】ダイヤ改良処理の流れを示すフローチャート。
【図１０】実際に列車ダイヤを作成した場合の実験結果を示す図。
【図１１】実際に列車ダイヤを作成した場合の実験結果を示す図。
【図１２】実際に列車ダイヤを作成した場合の実験結果を示す図。
【図１３】実際に列車ダイヤを作成した場合の実験結果を示す図。
【図１４】旅客の要求を反映した列車ダイヤの一例を示す図。
【符号の説明】
【０１２７】
１                列車ダイヤ作成装置
１０            ＣＰＵ
２０            入力部
３０            表示部
４０            通信部
５０            ハードディスク
５１            列車ダイヤ作成プログラム
５１１          初期解生成プログラム
５１３          ダイヤ改良プログラム
５３            列車ダイヤデータ
５５            線路データ
５７            旅客要求データ
５９            ダイヤ改良処理用テーブル
６０            ＲＡＭ
６１            初期解ダイヤデータ
６３            出力解ダイヤデータ
６５            抽出不満部分データ
７０            バス
【図１】
0004727459.tif 000008
【図２】
0004727459.tif 000009
【図３】
0004727459.tif 000010
【図４】
0004727459.tif 000011
【図５】
0004727459.tif 000012
【図６】
0004727459.tif 000013
【図７】
0004727459.tif 000014
【図８】
0004727459.tif 000015
【図９】
0004727459.tif 000016
【図１０】
0004727459.tif 000017
【図１１】
0004727459.tif 000018
【図１２】
0004727459.tif 000019
【図１３】
0004727459.tif 000020
【図１４】
0004727459.tif 000021