Rust で書かれた新しい公共交通機関の経路探索実装である Farebox が、メモリ効率の高い経路計画への革新的なアプローチにより、交通技術コミュニティで大きな注目を集めています。
メモリ効率の革新
Farebox による RAPTOR (Round-Based Public Transit Optimized Router)アルゴリズムの実装は、顕著なメモリ効率を達成しました。 Puget Sound 地域の時刻表がディスク上でわずか40 MiBを消費し、サーバープロセスは約100kのRAMを使用するという報告があります。このような優れたパフォーマンスは、ゼロコピー技術とメモリマッピングによって実現され、 OpenTripPlanner のようなリソース集約型のソリューションとは異なり、モバイルデバイスでの使用も可能となっています。
スマートフォンでのオフライン経路計画を検討しましたが、 OTP の実行は現実的ではありません。グラフが数ギガバイトに及び、読み込みに数分かかるためです。
主な技術仕様:
- ディスク上のメモリ使用量:約40 MiB( Puget Sound の時刻表)
- サーバープロセスのRAM:約100k
- 実装言語: Rust
- コアアルゴリズム: RAPTOR
- 乗換経路探索: Valhalla との統合
従来システムの代替手段
このプロジェクトは、 OpenTripPlanner を補完するものとして位置づけられており、特に既存のインスタンスでカバーされていない領域に焦点を当てています。 Valhalla との統合による乗り換えや最初/最後の移動経路の計算、複数機関対応、タイムゾーン対応機能を備え、包括的な交通計画のための有望なソリューションとなっています。ただし、経路形状が表示されないことや、事前計算された乗り換えによりリクエストごとの徒歩/自転車のカスタマイズが制限されるなどの制限はありますが、将来の開発に向けた明確な範囲を維持しています。
現在の制限事項:
- 経路案内における経路形状の欠如
- 事前計算された乗り換えのみ対応
- リクエストごとの徒歩/自転車カスタマイズが限定的
- 長距離ルートにおける一部のルーティングバグ
コミュニティの反応と将来性
交通技術コミュニティは、特に Farebox のオフラインモバイルアプリケーションへの応用可能性とメモリ効率の高いアプローチに関心を示しています。開発者や交通の専門家は、単一のインスタンスで地球規模のカバレッジが可能になる可能性に特に興味を持っており、これによりホスティングコストを大幅に削減できる可能性があります。高速鉄道の代わりに長距離バス路線が予期せず表示されるなどの経路探索のバグは確認されていますが、プロジェクトは活発な開発とコミュニティの関与を維持しています。
また、このプロジェクトは rRAPTOR 経路探索の実装も予定しており、これにより時間依存の経路グラフを使用する従来の A* 探索実装では通常利用できない、複数の出発時刻での同時経路計算が可能になります。
技術メモ: RAPTOR (Round-Based Public Transit Optimized Router)は、公共交通機関の経路探索のために特別に設計されたアルゴリズムで、ラウンドベースで経路を処理し、通常、交通ネットワークにおいて従来の A 探索方式よりも優れたパフォーマンスを提供します。*