![見出し画像](https://assets.st-note.com/production/uploads/images/39038585/rectangle_large_type_2_04d19883557653384ffc22839ac6af0f.jpg?width=1200)
指定した駅を回避する経路探索機能を作りました
公共交通の「混雑回避」を考える
こんにちは。i18です。ナビタイムジャパンで研究開発部門で乗換探索エンジンの開発を担当しています。
二度目の緊急事態宣言に入り、一ヶ月が経ちました。コロナとはもう少し付き合うことになりそうだなと実感しています。
コロナ対策として「マスク」「手洗い・消毒」の定着化、「人混みを避ける」など生活が大きく変化しました。
特に公共交通では「人混みを避ける」という動きが強く、窓開け運航による換気や時差出勤の推奨などコロナ対策を率先して取り入れています。弊社は公共交通に関わるサービスを多く提供しているため、公共交通における混雑回避は力を入れている分野です。
弊社の混雑回避ルート
実は弊社の経路探索エンジンでは既に「混雑を回避する経路探索」というものが存在します。
これは混雑した列車を避けた経路を出すというものです。これでも十分混雑の回避はできるのですが、空いている列車に乗れるが混雑している駅を通過する可能性は残っています。
せっかく空いている列車で移動してきたのに、列車を降りた瞬間、密に突入となったらどうでしょうか。私は悲しい気持ちになります…。
しかし、弊社のサービスに混雑駅の回避という機能はありませんでした。
そこで今回、公共交通の密の中でも混雑する駅を回避すべく、 指定した駅・バス停などを回避する経路探索 を実現しました。
どんな機能?
例の経路では、通常のルート検索では渋谷を利用する経路が出ていますが、回避する駅に渋谷駅を指定すると赤坂見附乗換の経路を案内できます。
でも、大変だったんでしょう?
弊社のエンジンであれば大きな改修なしに対応ができました。実現方法について弊社の探索エンジンの動きを交え、簡単に説明させていただきます。
弊社エンジンの経路探索では、路線を辿りながら一駅ずつ確認し、探索範囲を拡大していきます。速い電車(特急など)や別の路線に乗り換えできる場合は、移動方法が分岐していきます。
一駅ずつどのようなことを確認しているかというと
速い電車(特急など)に乗換できるがどれだけ待つか
別の路線への移動はどれくらいかかるか
他の経路でその駅を利用しているか(似た経路ばかりでないように)
などを確認しています。
これらの要素を元にその駅を利用するのがどれだけ便利かの指標(コスト)を計算して、目的地までの経路を出しているのです。
今回はこの駅ごとのコストの計算時に指定された駅の場合は、とてつもなく不便という扱い(無限大の大きなコストを乗せる)することで、他の駅や路線を利用するように促しています。
この機能のこれからについて
今回は、乗換NAVITIMEで指定駅の回避として活用しました。
2/8(月)にプレスリリースを配信しました。
みなさんの用途に合わせて使っていただけると嬉しいです。
例えば、
・混雑している駅は避けたい
・乗換が難しい駅は避けたい
・いつもこの駅で乗り換えるから他の駅を使ってみたい
というような用途で使えるのではないかなと考えています。
今後の発展としては、弊社で整備している駅混雑情報などと組み合わせ、その時間混んでいる駅を、自動で回避する経路探索などもできると思っています。
今回紹介した指定した駅を回避する機能をはじめとして、より世の流れにあった、安心安全な移動の実現を日々研究しています。今回の機能で、多くのユーザーが安心して移動できるようになると嬉しいです。