よくわかる運賃計算 序章

2014年7月29日火曜日 スー

はじめまして、スーです。
サービスプラットフォームチーム所属のエンジニアでございます。
趣味は鉄道(乗り鉄)です。はい、例によって弊社にはいわゆる鉄がおります(笑)。

駅すぱあとは、経路探索機能を核とするソフトウェアですが、経路探索以外にも様々な機能で構成されており、その中でも特に大きいものが運賃計算です。



実用的な経路探索の実現にはいろいろな難しさがつきまとうのですが、運賃計算にはそれとはまた別次元の難しさがあり、実装するのは実はとっても大変です。

と言っても、あまりピンとこない方も多いのではないかと思います。
遠くに行けば行くほど高くなるんだから、なんかそういう計算式に当てはめれば出るんじゃないの?と思われるかもしれません。
はい、確かにその通りです。基本的にはそれで運賃は計算できます。
しかし、実はそれだけでは正確な運賃を求めることはできません。

その最たる要因は、運賃計算の特例です(ここ重要)。
運賃計算のルールには、全国にまたがる広域なものから一地域のごくローカルなものまで、非常に多くの特例が存在します。
中にはいろいろな前提を覆すような複雑な特例もあり、日々それらを正確に表現するために格闘しております。
またそれが鉄道、航空、路線バスなど、全国に数百あるという交通事業者ごとにありまして、なかなかに悩ましい限りなのであります。
(ちなみに弊社の重鎮エンジニアによると「運賃計算は泥沼」だそうです。ひゃー)

ということで、私からはそんな運賃計算にまつわることを中心に書かせて頂きたいと思ってます。
ついでに、ただ書き連ねるのもつまらないので、ちょっと変わった方法でご紹介する予定です。
よろしくおねがいいたします。

!?