自動改札、便利ですよね
私は田舎に住んでいて自動車通勤ですので、あまり日常的に利用することがないのですが、一度都会に行くと、自動改札の便利さが身にしみます。運賃表を見なくとも電車に乗れて、無駄に運賃を払い込むことがない。乗り継ぎでも券売機に並び直す必要もないし、大体1枚のカードがあれば、それで事足りる。
東京のように、いろいろな路線が張り巡らされているところを移動するのに、自動改札を使わないなんてほとんど考えられなくなっています。
便利さを支えてきた人たち
その便利さを支えてくれる人たちの驚くべき努力を記した講演の抄録があり、改めて社会の基盤技術の重さと、便利さの裏にあるもののありがたさを感じました。
自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説(前編) - Publickey |
匠の技、搬送部
まずは、切符を物理的に処理する搬送部についての説明です。投入された切符を分離して、整列、表裏反転してようやく読み込み、重ね合わせをして放出、という流れになるようです。
流れは分かるのですが、実際にどういう聞こうでやっているのかは図(スライド)を見ても殆ど想像つきません。切符の投入から搬出まで約0.6秒という殆ど一瞬のことなので、実際に中身を見ることができたとしても、きっと何が行われているのか、全くわからないでしょうね。
処理速度をぐう〜っと落としたスケルトンモデルが展示されていたら、いいのに、と思います。きっと日がな一日その仕組みを見ても飽きないだろうなあ。
運賃計算、その複雑さ
しかし、本当に頭が下がるのは、そのソフトウェアとしての検証で、
そのキモとなるのが、運賃計算です。
自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説(中編) - Publickey |
何より驚くのは、その数です。記事中ではこう言っています。
関東の全部の運賃パターンを計算してみると10の40乗通りくらい
Wikipediaによると、10の40乗というのは、単位でいうと、正(せい)らしいですね。1正。漢字自体がよく使われる漢字なので、結局そのすごさが分かりませんが、順に並べると、兆やら京やらを遙かに超えてるようです。
これをいろいろな絞り込みをおこなって、泣く泣く1000万件程度に絞り込んでいるとのこと。それでも1000万件って、すごいことです。
これを、テスト検証用のプログラムを同時並行で作って検証していくようです。さすがに1000万件、人手でやっていたら世紀が明けてしまいます。
社会基盤の大切さ
見えないところで動いているソフトウェアって増えましたね。こういうプログラムって、社会の基盤を形作っているものですから、何か問題が起きたときにはじめてマイナスの形で存在が認識されるくせに、こんな風に大変な作業を必要とするものが多いのじゃないでしょうか。
規模は違うとはいえ、私もその一端を担当している人間として、誇りを持つと共に、こういう見えない部分に気づける人間になりたいと思います。
編集後記
ブログのアップロードの際、後半がなくなっていることに気づきました。未だに原因不明です。急遽エントリをまとめたので、かなり尻すぼみな印象をうけたと思いますが、それは正しい印象です。
私の紹介はともかく、記事は大変さがよくわかるものですので、末席の技術者として、ぜひ広く読んでみて欲しいと思います。
コメント