🚉

乗り継ぎ(乗り換え)検索のこんな使い方 3

に公開

本「列車乗り継ぎ検索(乗り換え検索)の基礎基本」で、列車の乗り継ぎ(乗り換え)検索アルゴリズムの基礎基本を紹介させていただきました。“乗り継ぎ(乗り換え)検索”は本来、“乗り換え案内”に用いるためのものですが、それ以外に“こんな使い方もあるよ”というようなものを3つほど不定期で紹介していこうと思います。これは、その第3回目(最終)です。
https://zenn.dev/kcampari01/books/f9237d0b649771

その3 先着案内

先着案内とは、ある駅を発車する列車があって、その列車に対して例えば「この電車は〇行準急です。□へは後の急行が先に到着します。途中△で、●行普通に接続します。」のような案内をすることを言います。先着情報を取得すること自体はそんなに難しいことではありませんが、これを制限された文章の長さで表現することが難しいと言えます。ここでは、このことについては深追いしないこととします。これ以降、路線をJR西日本高槻~米原間、ダイヤを2025年3月15日改正の平日とし、高槻 07:47発710M快速米原行を対象の列車として、先着情報の取得とその扱いについて、その概要を簡単に紹介させていただきます。

先着駅の案内

前回までと同様に、乗り継ぎ(乗り換え)検索を行うアルゴリズムにより単一始点最短経路問題を解くことでこれを求めていきます。

出発起点で、高槻発米原着07:47出発希望で乗り継ぎ探索する。

この場合も、米原駅が基点駅となって確定しても計算を打ち切らず、米原までのすべての駅を確定させて単一始点最短経路問題を解ききります。
解き切った結果、駅ノードに設定された先着列車が対象の列車(この例の場合 710M快速米原行)であった場合は、その駅にはこの列車 710Mが先着します。710M以外の列車αが先着であった場合は、

  • αには、出発希望駅(この例の場合は高槻駅)で対象列車(この例の場合は 710M)の発車時刻以降(この例の場合は 07:47以降)に乗車可能である。

場合、αは先着電車として案内されます。この例の場合は2つの列車が該当します。以上をまとめると以下のようになります。

駅ノード 駅ノード設定先着列車 高槻駅発車
長岡京、膳所、瀬田、栗東、篠原、
近江八幡~南彦根
710M快速米原行 07:47
京都、山科、大津、石山、
南草津、草津、守山、野洲
3410M新快速野洲行 07:50
彦根、米原 3412M新快速米原行 08:04

これの先着案内としては、例えば以下のようなものが考えられます。
「米原行快速です。京都から野洲までの新快速停車駅には後の新快速が、彦根、米原には後の後の新快速が先に到着します。近江八幡にはこの電車が先に到着します。」

接続駅の案内

例えば、出発起点で、安土発米原着 08:53出発希望で乗り継ぎ探索すると、以下の結果になります。

駅ノード 駅ノード設定先着列車 発車
能登川、稲枝、河瀬、南彦根 710M普通米原行 安土 08:53
彦根、米原 3412M新快速米原行 能登川 09:03

この場合、「米原行各駅停車です。この電車は能登川で、米原行新快速に接続します。」のような案内(接続案内)になるでしょう。もし新快速が安土に停車する場合は、これは次のような先着案内になります「米原行各駅停車です。彦根、米原へは後の新快速が先に到着します。」。

後発案内

到着と発車は常に対になります。到着に注目すると「先着案内」になりますが、出発に注目すると「後発案内」になります。高槻 22:26着841T快速米原発を対象の列車として、説明していきます。

後発駅の案内

乗り継ぎ(乗り換え)検索を行うアルゴリズムにより単一始点最短経路問題を解くことでこれを求めていきます。

到着起点で、高槻着米原発22:26到着希望で乗り継ぎ探索する。

22:26は841T快速米原発の高槻到着時刻です。この設定で単一始点最短経路問題を解ききります。結果は以下のようになります。

駅ノード 駅ノード設定後発列車 高槻到着
西大路~島本
米原~京都間新快速通過駅、近江八幡
841T快速米原発 22:26
野洲~京都間新快速停車駅 3541M新快速野洲発 22:22
米原、彦根、能登川 3539M新快速米原発 22:02

これの後発案内としては、例えば以下のようなものが考えられます。「米原方面からの快速電車が到着しました。野洲から京都までの新快速停車駅からは先に到着した新快速が、米原、彦根、能登川からは先の先に到着した新快速が後に発車しました。近江八幡からは、この電車が新快速よりも後に発車しました。」

接続駅の案内

例えば、到着起点で、米原発野洲着 21:27到着希望で乗り継ぎ探索すると、以下の結果になります。

駅ノード 駅ノード設定後発列車 到着
米原、彦根、能登川 3539M新快速米原発 近江八幡 21:13
南彦根~稲枝、安土、近江八幡 841T快速米原発 野洲 21:27

この場合の案内(接続案内)は、次のようなものが考えられます。「米原方面からの快速電車が到着しました。近江八幡で米原からの新快速に接続しました。」

集合の案内

後発案内は、このままでは応用できるものを思いつきませんが、集合の案内にこれを利用することができそうです。ここで言う集合の案内とは、ある駅にある時刻までに集合する、という場合に、その集合時刻に間に合う各駅からの最も遅くに発車する電車を案内することを言います。
高槻 22:26集合とした場合、後発案内の結果を利用して、

  • 米原、彦根、能登川では3539M新快速米原発
  • 野洲~京都間新快速停車駅では3541M新快速野洲発
  • 近江八幡と、新快速通過駅では841T快速米原発

が、高槻 22:26集合に間に合う各駅から最も遅くに発車する電車であることを知ることができます。

https://zenn.dev/kcampari01/articles/57a3a94d37dea1
https://zenn.dev/kcampari01/articles/e8964063bafbca

【参考】
説明に用いた列車区間を高槻~米原間に設定するに当たり、以下のサイトを参考にしました。
https://yatatetsu.hatenablog.com/entry/20200401/1585673156

Discussion