【実施例1】
【0020】
図1は、本発明を実現する運転整理案作成システムの構成例である。運転整理案作成システム101は、学習用ダイヤデータ生成装置102、運転整理アクション学習装置103、運行計画評価装置104、運転整理案探索装置105、運転整理案表示装置106が、ネットワーク107・108によって接続されて構成される。各装置は汎用の計算機を使用し、内部に各装置での処理実行に必要なデータおよびプログラムを保有する。また、運転整理案作成システムはネットワーク107を通じて運行管理システム109と接続されている。以下、各装置の概要を述べる。
【0021】
学習用ダイヤデータ生成装置102は、運転整理アクション学習装置103が学習のために利用するサンプルのダイヤデータを生成し、運転整理アクション学習装置103に提供する。なお、運転整理案作成システムにおける「ダイヤデータ」とは、通常の列車ダイヤ(各列車の、各駅の着発時刻をまとめたもの)や運用ダイヤ(各編成の運用情報をまとめたもの)だけでなく、旅客の流動状況や沿線の気象状況など、運転整理判断において考慮すべき情報も適宜含んでいるものとする。サンプルのダイヤデータは、過去の列車運行で得られた実例や将来の列車運行で使う予定のものでも良いし、サンプルとして作成されたダミーのデータでも良い。必要であれば、学習用ダイヤデータ生成装置102がディスプレイやマウス・キーボードなどのインターフェース装置を備え、システムのユーザーが任意の条件を指定してサンプルデータを作成できる仕組みとしても良い。
【0022】
運転整理アクション学習装置103は、学習用ダイヤデータ生成装置102から受け取ったダイヤデータを元に、運転整理案探索において用いる探索ルールを機械学習し、運転整理案探索装置105に提供する。運転整理アクション学習および運転整理案探索の仕組みについては後述する。
【0023】
運行計画評価装置104は、運転整理アクション学習装置103または運転整理案探索装置105が運転整理案を検討する際に、これらの装置から検討中の運転整理案を受け取って、運転整理案実行前後のダイヤ状態を定量的に評価して、その評価結果を返す。なお、運転整理案作成システムにおけるダイヤ状態の定量的評価については、与えられたダイヤの定量的評価、およびダイヤ上で特に改善が必要な箇所を特定できるものであれば、具体的な評価の仕組みは何でも良く、公知になっている任意の手法を利用できる。
【0024】
運転整理案探索装置105は、予め運転整理アクション学習装置が学習しておいた探索ルールに基づいて、与えられたダイヤデータに対する運転整理案を探索する(運転整理案探索の仕組みについては後述)。ダイヤデータは、実際の列車運行においてダイヤデータを管理する運行管理システム109から受領する。探索結果は運転整理案表示装置106に提供するか、または運行管理システム109に対して提供する。
【0025】
運転整理案表示装置106は、ディスプレイやマウス・キーボードなどのインターフェース装置を備え、運転整理案探索装置105が探索した運転整理案を、運転整理案表示ルールに従ってユーザーに表示する。表示した運転整理案に対するユーザーの承認、または補正指示を受け付けた場合は、その内容を運転整理案探索装置105に対して通知する。
【0026】
なお、
図1に挙げた装置構成はあくまでも一例であり、運転整理案作成システムは他の装置構成によって実現されても構わない。例えば、
図1に挙げた複数の装置が1つのハードウェアにまとめられても良いし、逆に
図1で1つの装置内にまとめた機能を複数の装置によって実現しても良い。また、ネットワークについても、
図1では、探索ルールの事前学習を実行する際に使用するネットワーク108と、実際に運転整理案を作成する際に使用するネットワーク107とを分けて示しているが、これらを同一のネットワークとしても構わない。あるいは、ネットワークによる接続に代えて、取り外し可能な記憶媒体によって装置間の情報授受を行っても構わない。
【0027】
続いて
図2は、運転整理案作成システムの機能構成例である。運転整理案作成システムは、運転整理アクション学習システム201、運転整理案探索システム202、運行計画評価システム203、運転整理案表示システム204の4つのサブシステムから成り、ダイヤデータ205を入力として、運転整理案206を出力する。以下、各サブシステムの機能について述べる。
【0028】
運転整理アクション学習システム201は、事前に定義されたダイヤ変更アクション(「順序変更」「運休」など、実行可能なダイヤ変更のメニュー)の一覧207、および学習の環境設定208を保有する。これらの定義と、与えられた学習用のダイヤデータ209とを元に、ダイヤ変更のシミュレーション210を実行する。シミュレーションの具体的な内容については後述するが、運転整理アクション学習システムはシミュレーションを通して、与えられたダイヤ局面に対して各運転整理アクションがどの程度良い変化を与え得るかを表す「運転整理アクション適合度」211を学習する。なお、運転整理アクションとは、1つ以上のダイヤ変更アクションをセットにしたものを指す(複数のダイヤ変更アクションをセットにして扱うことについては後述)。学習の過程においては、運行計画評価システム203によるダイヤ状態の評価値を利用する。また運転整理アクション学習システムは、学習された運転整理アクション適合度211を元に、運転整理案探索システムが持つ探索ルール212および探索パラメータ213を書き換える機能214を持つ。
【0029】
運転整理案探索システム202は、運転整理アクション学習システム201によって調整された運転整理案の探索ルール212および探索パラメータ213と、外部(例えば運行管理システム)から与えられたダイヤデータ205とを元に、運転整理案の反復的な探索215を行う。探索の手順は後述するが、運転整理案探索システムは探索を通して、与えられたダイヤに対する1つ以上の運転整理案206を作成する。探索の過程においては、運行計画評価システム203によるダイヤ状態の評価値を利用する。作成された運転整理案206は、運転整理案出力・編集機能216によって運転整理案表示システム204に提供され、運転整理案表示システム204が規定された表示ルール217に従って表示および補正入力の受付218を行い、ユーザー219からの承認または補正を受け付ける。承認または補正された運転整理案は、運転整理案出力・編集機能216によって運行管理システム220に提供される。ユーザーによる承認または補正の必要がなければ、運転整理案探索システム202は作成した運転整理案206を直接運行管理システム220に提供しても構わない。
【0030】
なお、
図2に挙げた機能構成はあくまでも一例であり、各サブシステムが担う機能範囲を変更したり、機能の分割単位を変更したりしても構わない。
【0031】
図3は、運転整理アクション学習システムにおけるダイヤ変更シミュレーションの処理フローの例である。運転整理アクション学習システムは、はじめに与えられたダイヤデータの評価を運行計画評価システムに依頼して、そのダイヤにおいて特に改善が必要と考えられる箇所を1つ以上特定301させる。次に、事前に定義されたダイヤ変更アクションのうちの1つを選択して、特定された箇所に対してそのダイヤ変更アクションを適用302する。その後、ダイヤ変更アクション適用後のダイヤを起点として、ダイヤ評価値ができるだけ良くなるようにダイヤ変更アクションを反復的に適用(303, 304)する。この反復処理については運転整理案探索で述べる探索の反復処理と同様のため、ここでは説明を省略するが、最終的に運転整理アクション学習システムは、所定の深さの反復を実行した後のダイヤ評価値を取得305する。運転整理アクション学習システムは、この最終的なダイヤ評価値を元にして、当初の(最初のダイヤ変更アクション適用前の)ダイヤ状態と、それに対する最初のダイヤ変更アクションの適合度合いとの関係性を、ダイヤ変更アクション適合度として機械的に学習306する。
【0032】
図4は、ダイヤ状態とそれに対するダイヤ変更アクション適合度の対応表のイメージである。例えば、
図4の対応表の1レコード目では、「遅延している後続列車の待避待ちのため長時間停車」というダイヤ状態に対する「当該駅の出発順序を変更」というアクションの適合度がx、2レコード目では、1レコード目と同様のダイヤ状態に対する「遅延している後続列車の運休」というアクションの適合度がyであることが記録されている。なお、ここでは説明のためダイヤ状態として自然言語的に説明可能な状態を挙げたが、実際には、例えば学習の仕組みとして深層学習を用いて、記録されるダイヤ状態を高度に抽象化しても構わない。層をどの程度深くするか、前述の反復を何回まで実行するか、といった指定が、学習の環境設定として保持される。あるいは、「敢えて何のダイヤ変更アクションも取らない」という選択肢を表に加える設定を行っても構わない。いずれにせよ、運転整理アクション学習システムは、与えられたダイヤにおける「特徴的な状態」に対して、各ダイヤ変更アクションがどの程度適合するかを学習して記録する。
【0033】
また、ダイヤ変更アクションについて、複数のダイヤ変更アクションを典型的なセットとして実施することが効果的となるケースが考えられる。
図5には、複数のダイヤ変更アクションを組み合わせて実行することでダイヤ状態が改善される例を示す。
図5aは、列車Aが駅Xに到着し、折り返して列車Bとして出発する場合のダイヤグラムを示す。ここで列車Aの駅X到着が遅延する場合を考える。このとき、何もダイヤを変更しなければ、折返しとなる列車Bの出発も遅延することとなる。この列車Bの出発遅れを解消する1つの運転整理パターンを
図5bに示す。
図5bでは、(1)列車Aと列車Bの折返し運用の切断、(2)車両基地Yからの出区列車Cの新設、(3)列車Cと列車Bの運用の接続、(4)車両基地Yへの入区列車Dの新設、(5)列車Aの到着番線の変更、(6)列車Aと列車Dの運用の接続、という6つのダイヤ変更アクションが適用されている。運転整理アクション学習システムは、このような複数のダイヤ変更アクションのセットが効果的であるということを学習した場合には、
図4の対応表において、個別のダイヤ変更アクションに対する適合度を記録する代わりに、一連のダイヤ変更アクションのセットとしての運転整理アクションの単位で適合度を記録しても構わない。
【0034】
このように運転整理アクション単位で適合度を考える効果として、後に述べる運転整理案探索システムにおける探索処理を効率化することができる。すなわち、
図5の例において、最初のダイヤ変更アクション(1)を適用しただけでは、列車A、列車Bとも運用情報が不完全となり、運用の連続性を考慮したダイヤ評価を行うと極めて低く評価されると考えられる。これは、(2)〜(5)のいずれの途中段階でも同じである。したがって、
図5に示したような運転整理案を1ダイヤ変更アクションずつ探索すると、ダイヤ評価値の低い状態を一定回数経由しなければならない。ところが、ダイヤ評価値の低い状態を放棄せずに探索しようとすると、探索空間の枝刈りが進まずに効率が悪くなる。一方、
図5で示した(1)〜(6)のダイヤ変更アクションを1つの運転整理アクションとして扱えば、途中段階での評価値の低い状態は隠蔽され、「評価値の高い状態を選択する」という自然な枝刈りを行いやすくなる。
【0035】
なお、
図3におけるダイヤ変更シミュレーションの処理フロー例では、簡単のため、ダイヤ変更アクションの反復的な適用処理の中で、現在のダイヤ状態を最も良く改善するダイヤ変更アクションを選択して適用303するとしているが、この反復の中でも、一時的にダイヤの評価値が低くなる状態を経て、好適なダイヤ状態に至る可能性もある。すなわち、ダイヤ変更アクションの反復的な適用処理においては、単純に1回の適用処理でのダイヤ評価値の増加/減少を見る代わりに、ダイヤ変更アクションをある程度反復した後の状態でダイヤ評価値の増加/減少を見る仕組みとしても良い。また、各反復においてどのダイヤ変更アクションを選択するかについては、その時点で学習済みのダイヤ変更アクション適合度をもとに適合度の高いものを選んでも良いし、探索範囲を拡げるためにランダムに選んでも良いし、これらを組み合わせた方法(例えばルーレット選択のような方法)を採用しても良い。
【0036】
ここまでに述べた運転整理アクションの学習は、実際の運転整理案作成を行う前に実施しておくものであるため、シミュレーションの実行時間に対する制約は低い。この点を活かして、運転整理アクションの学習はできるだけ広く深く行うことが望ましい。運転整理アクション学習装置は、シミュレーター内での時間経過を加速したり、最初のダイヤ変更アクションの種類ごとに別々のシミュレーション環境を用意して分散学習を行ったりすることが可能な構成とすることが効果的である。
【0037】
次に、
図6では、運転整理案探索システムにおける探索処理のフローの例を示す。運転整理案探索システムは、はじめに与えられたダイヤデータの評価を運行計画評価システムに依頼して、そのダイヤは変更する必要があるかを確認601させ、変更が必要ならば、特に改善が必要と考えられる箇所を1つ以上特定602させる。ダイヤ上で改善が必要な箇所が特定された場合、運転整理案探索システムは、事前に学習された探索ルールにしたがって、その箇所に対して適用する運転整理アクションを選択603する。ここでの探索ルールは、
図4に示した、各運転整理アクションの適合度の表と同等のものを用いることができる。ただし、前述のように、運転整理アクション適合度の表においてはダイヤ状態が抽象化された上で記録されていることも考えられるため、その場合は、運転整理探索システムも、与えられたダイヤデータに対して同様の抽象化処理を事前に実施した上で、探索ルールの中から適用する運転整理アクションを選択する。また、ここで選択する運転整理アクションは、探索処理に与えられた時間や計算機のリソースに応じて、最も適合度の高いものを1つ選択することにしても良いし、比較的適合度の高いものを複数選択して、それぞれの選択肢を後述する反復処理によって評価することにしても良い。
【0038】
適用する運転整理アクションが1つ選択されたら、その運転整理アクションの適用604、適用後のダイヤ状態の評価と改善すべき箇所の抽出605を実施し、引き続きダイヤ変更の必要がある場合は、同様の処理を反復する。なお、ここで「これ以上ダイヤ変更を行う必要が無い」と判断する場合には、ダイヤ状態が十分に改善されたためそれ以上の改善が不要である場合と、逆にダイヤ状態が改善する見込みが無いため、その探索パスを放棄する場合の両方を含む。
【0039】
反復の最大回数や、各反復において残す選択肢の最大数などは、運転整理案探索システムが保有する探索パラメータの設定に従う。ここで、探索パラメータについても、探索ルールと同様に、運転整理アクション学習システムが学習結果に応じて調整していても良い。すなわち、運転整理アクションの適用パターンに応じて、ダイヤ評価値が改善しなければ早々に探索を打ち切ってよい、あるいは重点的に探索回数を増やしたほうが良い、といった特性を学習し、探索パラメータの設定に反映しておく。このような探索パラメータの調整によって、見込みの良い選択肢を重点的に探索することができる。
【0040】
特に、
図5の例に示したとおり、一旦ダイヤの評価状態が低下しても、その後に運転整理アクション適用を続けることで、ダイヤが改善する可能性もあるため、運転整理案探索システムは、ダイヤの評価状態が下がった場合でもすぐにはその選択肢の探索を打ち切らない設定を可能とする。従来考案されている運転整理案作成の仕組みであれば、ダイヤの評価状態が悪化するような選択肢は早々に打ち切らなければ探索空間が広くなりすぎる問題があったが、本発明の方法では、そもそも事前の機械学習によって適合度が高い(見込みが良い)と判断されている手に絞って探索を始めているため、短期的には評価状態が悪くなる手についても、探索を続ける余裕が比較的大きい。さらに、事前の機械学習が進めば進むほど、ダイヤ変更アクションのセットとしての運転整理アクションの手数が充実し、ダイヤ評価値が一時的に下がるような状態は隠蔽されていくため、より効率的な探索が可能となる。
【0041】
以上のようにして運転整理案探索を反復するが、その反復の最後のダイヤ状態評価606においては、ダイヤのロバスト性を加味する(もちろん、反復途中でのダイヤ状態評価でもロバスト性は考慮して良い)。具体的には、予備人員や予備編成の残数、各編成の検査基準までの残り走行キロ数、各列車の余裕時分、等、将来的にさらに別の運転整理を行おうとする場合に必要となる余力がどのくらいあるかを数値化する。これによって、反復による直接的な確認を行わない範囲のダイヤ状態についても考慮した運転整理案を作成することができる。すなわち、運転整理案作成システムに含まれる運行計画評価システムは、ダイヤ状態を定量的に評価する機能、ダイヤの中で特に改善が必要な箇所を特定する機能、およびダイヤ状態の定量的な評価においてロバスト性を加味する機能、の3つを備えていることが望ましく、この3つを備えた運行計画評価システムは、公知の技術によって構築可能である。
【0042】
反復の最後の状態でのダイヤ状態評価が行われたら、それまでに適用された一連の運転整理アクションを、1つの運転整理案として出力607する。このとき、最終評価値の最も良い運転整理案だけを提示しても良いし、探索した複数の運転整理案の中で、比較的最終評価値の良かったものを、それぞれの評価内容と合わせて提示しても良い。あるいは、最終段階での評価値だけでなく途中段階での評価値を用いて提示する運転整理案を決定しても良い。
【0043】
図7では、運転整理案表示システムが、運転整理案探索システムが出力した運転整理案をユーザーに対して画面表示する例を示す。この例では、出力された運転整理案を構成している運転整理アクション、およびそれを構成しているダイヤ変更アクションを、適用順に列挙している。このような表示方法によって、ユーザーは運転整理案の中身を1つずつ確認することができる。
【0044】
図8では、運転整理案を画面表示する他の例を示す。この例では、運転整理案の適用前後のダイヤ状態を、ダイヤグラムの形式で視覚的に示している。さらに、それぞれのダイヤ状態の評価値と、運転整理案適用後のダイヤグラムにおいて特に変化した部分も表示している。ここで、「特に変化した部分」は、例えばダイヤ状態の評価を大きく変えたアクションや、運用変更を伴うなど特に注意喚起が必要であると事前に定義されたアクションなどを運転整理案の中から抽出することで特定できる。また、ダイヤ状態の評価値については、運転整理案探索システムから運転整理案とともに受け取っても良いし、運行計画評価システムに問い合わせても良い。いずれにせよ、このような表示方法によって、ユーザーは運転整理案適用によるダイヤ変更の規模の大きさ、影響範囲、効果等を視覚的に理解できる。
【0045】
図9では、運転整理案を画面表示するさらに他の例を示す。この例では、適用する運転整理アクションの選択が分岐する箇所に着目し、ツリー形式で表示を行っている。さらに、各分岐箇所におけるそれぞれの選択肢の評価の違い、および各選択肢の末端における評価を表示することで、ユーザーは採用する選択肢を容易に決定することができる。特に、分岐箇所においてそれぞれの選択肢の総合的な評価値の差が小さい場合、すなわち同等に有力らしい運転整理アクションが複数あり、運転整理内容を決定する上でターニングポイントとなる箇所がある場合、その箇所について重点的に実行内容や評価内容を表示することで、ユーザーの選択判断を支援することができる。
【0046】
図7〜
図9の表示方法を組み合わせて表示したり、必要に応じて切り換えて表示したりしても良い。いずれにせよ、本発明の運転整理案作成システムとしては具体的な画面表示について限定することはなく、ユーザーにとって好適な表示方法を採用すれば良い。
【0047】
以上、
図1〜
図9を用いて説明した実施形態はあくまでも一例であり、他の実施形態による本発明の実現を排除するものではない。
【実施例2】
【0048】
別の実施例を、
図10、
図11、
図12を用いて説明する。
【0049】
図10に運行計画管理システム1001を示す。運行計画管理システム1001は、運転整理案作成システム1101と、学習用データを生成して運転整理案作成システム1101に送信する学習用データ生成部1102と、運転整理案作成システム1101へ運転整理用ダイヤデータを送信し、運転整理案を受信する運行管理部1109を有している。
【0050】
運転整理案作成システム1101は、学習用ダイヤデータを受けて学習し探索ルールを作成する運転整理アクション学習部1103と、作成された探索ルールに従って運転整理案を探索する運転整理案探索部1105とを有する。機械学習を利用することにより、想定するダイヤ状況とその状況に対してとるべきアクションとの関係の事前定義の少なくとも一部が省略可能になり、定義作業の負担を低減した運転整理提案が可能になる。機械学習により想定以上の様々な関係性が利用可能になるため将来の発展性も期待できる。また、学習部と探索部が分かれていることで、探索時に要求される時間的制約にとらわれず、十分な深さの反復的なダイヤ変更アクションの適用の影響を学習部で事前に把握することができる。
【0051】
運転整理アクション学習部1103は、学習用ダイヤデータを受けてダイヤ変更アクションの適合度を出力するシミュレーション実行部1210と、適合度から探索ルールを作成する探索ルール更新部1215とを備える。運転整理案作成システム1101はまた、運転整理アクション学習部1103から送られた学習用ダイヤデータから改善必要箇所を特定する評価部1104を備える。運転整理アクション学習部1103は、学習用ダイヤデータを評価部1104に評価させる。評価部1104は与えられたダイヤ状態の中の改善の必要度を確認し、必要度が所定の値以上であるものを改善必要箇所と認識してシミュレーション実行部1210へ回答する。シミュレーション実行部1210は、この改善必要箇所に対し最初に適用する運転整理アクションの適合度を学習する。適合度は、各アクションがダイヤ状態の改善にどの程度有効であるかを予め整理した値であり、この値を有効に利用することで、運転整理案探索において無駄な手を試す可能性を減らし、見込みの良い手を重点的に探索できる効果が生じる。
【0052】
適合度は、ダイヤ変更アクションごとに一つずつ設定してもよいし、複数のダイヤ変更アクションをセットとして一つの運転整理アクションと考え、運転整理アクションのセットの単位で作成してもよい。後者の場合、個別のダイヤ変更アクションの適合度が低いが運転整理アクション全体では適合度が高いケースを、適切に高評価できるメリットがある。ダイヤ変更アクションは予めダイヤ変更アクション一覧1207に記憶され、必要に応じてシミュレーション実行部1210へ提供される。
【0053】
シミュレーション実行部1210は、改善必要箇所へのダイヤ変更アクションを適用し、適用後のダイヤ状態を評価部1106へ送信しダイヤ評価値を得るシミュレーションを実行することで、前記ダイヤ変更アクション適合度を得る。本実施例ではダイヤ変更アクションを適用した前後のダイヤ評価値を利用して適合度を算出している。
【0054】
シミュレーション実行部1210は、改善必要箇所の特定とその箇所へのダイヤ変更アクション(または運転整理アクション)適用のシミュレーションを反復的に実施することで、十分な深さの読みを以て学習を行う。また、改善必要箇所が複数ある場合や、同じ改善必要箇所に対して適用しうるダイヤ変更アクションが複数ある場合には、それぞれの場合分けに対して反復的なダイヤ変更アクションを適用するシミュレーションを実行することで、それぞれのダイヤ変更アクション適合度を得る。このように読みに幅と深さを持たせることで、精確な適合度を得ることができ、より高度な探索ルールを得ることができる。深さや幅の情報、すなわち実行する反復回数の最大値や考慮する場合分けの最大数等の情報は、学習環境設定1208として事前に設定しておくことができる。
【0055】
運転整理アクション学習部1103は、シミュレーションの実行結果をもとに、運転整理案探索部1105において採用すべき探索の深さまたは幅の少なくとも一方を規定する探索パラメータを作成する探索パラメータ更新部1225を備える。
【0056】
運転整理案探索部1105は、運行管理部1109からの運転整理対象のダイヤデータと探索ルール1212をもとに運転整理案を探索する探索処理部1235を備える。評価部1104は、探索処理部1215からの依頼を受け改善必要箇所及びダイヤ評価値を返す。評価の結果を受けて、探索処理部1235がダイヤ変更は不要と判断した場合は、運転整理が不要な旨を出力・編集部1216へ送信する。探索パラメータ更新部1225で作成されたパラメータ更新情報は、運転整理案探索部1105が有する探索パラメータ1213に反映される。この情報と、探索ルール1212を用い、探索処理部1235は、運転整理アクション学習部1103が作成した適合度を基準に選択されたダイヤ変更アクションを適用し運転整理案を探索する。ダイヤ変更アクションの選択方法として、適合度が最も高いアクションを選択するのが最もシンプルで確実であるが、これに限られない。例えば、適合度が比較的高いものを複数選択することで、より広い探索が可能になる。
【0057】
探索処理部1235は反復して探索を行い、この反復の回数または各反復において残す選択肢の最大数の少なくとも一方が、運転整理アクション学習部1103で作成された探索パラメータに従って定められる。運転整理案探索部1105で探索された運転整理案を表示させる信号を出力し、補正入力信号を受信する表示・補正送受信部1219が運転整理案表示部1106に備えられる。この出力信号を受けたディスプレイが運転整理案を表示する。補正入力信号はキーボードやマウスを利用して入力される。こうすることで、ユーザーは運転整理案を確認できる上にその案に補正を施すこともでき、柔軟な運転整理が可能になる。さらに表示・補正受信部1219は探索後の運転整理案だけでなく探索途中の運転整理案を表示させる信号も送信できる。探索の時系列情報とあわせて表示させることもできる。各運転整理案の評価値とともに表示させることもできる。そのためユーザーは探索経過もふまえたより適切な判断ができる。
【0058】
前記表示・補正送受信部が、前記探索処理部での運転整理アクションの適用によって前記評価値が低下した場合に、そのダイヤ状態以降の探索を放棄するか継続するかを可変なパラメータとして設定させる信号を送信する。1つのアクションで評価値が低下した場合でも、その後のアクションを適用すれば評価値の大幅な改善が期待できる場合がある。この判断は機械学習結果をふまえて探索ルール1212や探索パラメータ1213に含まれるようにしてもよいし、ユーザーの判断を反映できるようにしてもよい。後者の場合、探索処理部1235での運転整理アクションの適用によって評価値が低下した場合に、そのダイヤ状態以降の探索を放棄するか継続するかを可変なパラメータとして設定させる信号を、表示・補正送受信部1219が送信するようにすればよい。さらに、ダイヤ評価値を所定の値以上改善したもの、他に有力な運転整理アクションが存在するもの、または事前に設定した事項のいずれかが含まれる場合に、その事項に関する運転整理アクションに関する追加の情報を表示する信号を出力するようにすれば、ユーザーの判断容易性をさらに高めることができる。事前に設定した事項とは、評価値が低下するアクションの中でその後の回復の見込みが極端に低いものや、逆に、その後の回復の見込みが非常に高いアクションなどが考えられる。
【0059】
運転整理案探索部1105は、運転整理案を反復的に探索し、反復の最終段階で得られたダイヤ状態について評価部1104から得られる評価値にしたがって、出力・編集部1216に出力する運転整理案を決定する。このようにすれば、ユーザーの判断を介さずにシステムのみで運転整理案を決定することができる。また評価部1104は、運転整理案探索の最終段階で得られたダイヤ状態の評価の際に、将来的なダイヤ変更の余地の大きさを評価観点として加味することもできる。その時点の評価値が低い運転整理案でも、将来的なダイヤ変更の余地が大きい場合には将来的な回復のポテンシャルも高いと考えられ、状況に応じた柔軟な決定が可能になる。
【0060】
図11に、運転整理アクションの適合度を学習する処理の一例を表す処理フローを示す。
【0061】
シミュレーション実行部1210は、学習用ダイヤを外部から取得し(111)、評価部1104へ送信する(112)。評価部1104は、送信された学習用ダイヤの中で改善が必要な箇所と、その箇所に対応するダイヤの特徴状態をシミュレーション実行部1210へ送信する(113)。
【0062】
次にシミュレーション実行部1210は、改善必要箇所の改善ループ(114)を回す。改善ループでは、評価部1104から取得した中から特に改善必要度の高い改善必要箇所を選択し、最初のダイヤ変更アクションを適用する(115)。ダイヤ変更アクションは、運転整理アクション学習部1103に記憶されたダイヤ変更アクション一覧1207からランダムに選んでも良いし、そのシミュレーションの実行時点で適合度が高いと学習されているものから優先的に適用しても良い。
【0063】
次にシミュレーション実行部1210は、ダイヤ変更アクションのループ(116)を回す。このループではまず、ダイヤ状態を評価部1104に送信する(117)。シミュレーション実行部1210はダイヤ評価値と、次の改善必要箇所を評価部1104から取得する(118)。次の、とは、ダイヤ変更アクションを適用したことにより変化したダイヤ状況における改善必要箇所という意味である。この改善必要箇所に対し、(次の)ダイヤ変更アクションの適用が必要かどうかを判断する(119)。例えば評価が十分良い場合、評価が改善する見込みがない場合、事前設定された最大深さまで反復済みの場合に、適用不要と判断し、ループを抜けて次のステップ121に進む。必要と判断された場合は、次の改善必要箇所を一つ選択し、ループ(116)の先頭に戻る。
【0064】
次のステップ121では、他のダイヤ変更のパターンも試行するか否かを判断する。例えば、ステップ113で評価部から受領したダイヤ状態評価結果において改善必要箇所が複数あった場合、あるいはある改善必要箇所に対して適用しうる(最初の)ダイヤ変更アクションが複数あった場合は、ループ114の先頭に戻って他のダイヤ変更パターンを試行する。どれだけのパターン数の試行を許容するかは、学習環境設定1208に予め設定することができる。必要なパターンのシミュレーションが全て終わったら、(最初の)ダイヤ変更アクションごとの適合度を、ループ116における最終的なダイヤ状態の評価値を利用して算出して出力する(122)。
【0065】
以上では、ループ116においてシーケンシャルにダイヤ変更アクションを探索する場合について説明したが、ループ116の途中ステップ120で、探索を分岐させることも可能である。すなわち、ループ中のある局面で同程度に良さそうな手が2つ以上あるときに、手Aを適用した場合と、手Bを適用した場合をそれぞれ読み進めて、それらを比較するという仕組みが考えられる。この場合、分岐した各枝において評価値が得られるため、最初のダイヤ変更アクションの適合度をより複雑に表現できる。例えば、同じダイヤ変更アクションから始めても「大幅に改善されるパターン」と「大幅に悪化するパターン」の双方に至りうる手や、大幅な改善は望めないが悪化するリスクの低い手、などを示すことができる。
【0066】
なお本実施例でいう適合度とは、各運転整理アクションが、与えられたダイヤ局面に対してどの程度良い変化を与え得るかについて、シミュレーションを通して算出された値のことである。具体的には、対象となるダイヤ変更アクションを起点として、そこからできる限りのダイヤ改善を反復的に施した場合の最終状態がどれだけよいかを、起点となったダイヤ変更アクションに対して示すものである。単純な評価値とは異なり、何手も先も考慮した各ダイヤ変更アクションの適切度を示す値である。単純な評価値ではその手を打った直後のダイヤ改善具合しか反映されないが、適合度は、その手以後の手も打ち続けた結果として最終的にダイヤがどの程度改善されるかまでを反映することができる。本実施例ではダイヤ変更アクションを適用した前後のダイヤ評価値を利用して算出している。
【0067】
図12に、運転整理案を探索する処理の一例を表す処理フローを示す。
【0068】
探索処理部1235は、運行管理部1109からダイヤデータを取得し(611)、評価部1104へ送信する(612)。評価部1104は、送信されたダイヤの中で改善が必要な箇所と、その箇所に対応するダイヤ状態の評価値を探索処理部1235へ送信する(613)。探索処理部1235は、評価値をもとにダイヤ変更が必要かどうかを判断する。
【0069】
ダイヤ変更が必要な場合は、以下
図10に示したフローと同様に二種類のループを回して探索を進める。ここで、
図10におけるダイヤ変更アクションは運転整理アクションに読み替える。また、ステップ615やステップ620において、学習済みの探索ルールに基づいた見込みの良い運転整理アクションを選択することで探索量を削減し、効率的に探索を進める。
【0070】
改善必要箇所の改善ループが終わった段階、すなわち、十分高い評価まで探索が完了した場合、あるいは探索ルール1212や探索パラメータ1213で設定された深さ、程度まで探索が完了した場合には探索終了とし、それまでに適用された一連の運転整理アクションを運転整理案として出力・編集部1216に出力する(622)。このとき、最終評価値の最も良い運転整理案だけを出力してもよいし、複数の運転整理案を出力してもよい。それぞれの運転整理案に対応する評価値も同時に出力され、どの運転整理案を採用すべきかの判断を補助する。ダイヤ変更が不要な場合は、運転整理が不要と出力する(623)。