Asahi.com 2009年4月3日22時43分
記事内容:
自動料金収受システム(ETC)搭載車で数百キロの長距離を走行しながら、入ったインターチェンジ(IC)から出ると、料金がかからなかった事例が石川県内の高速道路であった。中日本高速道路金沢支社(金沢市)ではシステム改良を検討している。
同支社によると、無料通行できた事例はETC車専用でゲートに係員が常駐しない「スマートIC」。北陸道の徳光スマートIC(同県白山市)から入り、東海北陸道の富山県小矢部市から名神高速道の愛知県一宮市などを通って、徳光スマートICから出ると料金が0円と表示されたとの情報が寄せられた。経路は
433.6キロで、本来の料金は9200円だった。
「高速道路のみを周遊する使い方は想定外だった」と同支社は強調。現在のシステムでは青森など遠距離利用も可能とみられるため、システム改良を検討中だ。当面は利用者に走行経路を聞いて適正料金を請求するという。中日本高速道路全体では、利用実績から計9カ所のスマートICで無料利用があった可能性があり、調査している。
コメント:
今回は久しぶりに謙虚な気持ちである.批判の矛先は,中日本高速道路でも,記事を書いた朝日の記者でもない.自分自身である.いや,決して申請していた科研費が通らなかったので自尊心が低くなっているとかいうのでもない.#多少自尊心は低まったかもしれないが,多くの人たちよりもなお高いだろう...苦笑.いや,そんなことはどうでもよい.ともかく,この記事,読んでいて心が痛んだのである.
今をさかのぼること十年ちょっと.1997年頃であるが,私は独学でC++というプログラミング言語を学び始めた.当時バージョン1が出たばかりのBorland C++ Builderでである.これを親しくしていたJohn Boyd教授から薦められ,数百ページある「3週間で学ぶ」とかうたわれていたマニュアル本を買い,研究そっちのけでしばらくプログラミングを学んだのである.結局,未だにC++の何がよいのかとか言われても何もわからないが,ただBasicなんかよりも何となく格上の感じがするという程度である.それまでMathematicaをちょっとやっていたが,ループをグルグルまわしたりするのが遅すぎるため,やむなくC++に取り組んだのである.そして,何とかかんとか1つのプログラムを書き上げた.それが,
PermNetというソフトウェアである.この私の最初のC++のソフトウェアだが,何と知らないうちに,かなり権威のある社会ネットワーク分析の本(Carrington, P. J., Scott, J., & Wasserman, S., 2005,
Models and Methods in Social Network Analysis, Cambridge University Press)に載ってしまい,未だに海外からのダウンロードは多い.しかし,実はこれには未だに指摘されたことのない1つの問題点があるのである.しかも計算に関わるものである.それは変数の値がある値を越えると誤答を返してしまうのだ.しかし,その数がかなり大きいので,ほとんど場合実用上問題はないと思われるので,そのまま放置してしまっているのである.
この記事を読んでハッとしたのは,想定外の使われ方をすることがソフトウェアやシステムには起こりうるということである.まさか途中で高速道路を降りずに一周してくるとかいうような使われ方は想定外だったのであろう.このことをどう考えるかであるが,ちゃんと対応して,つまりプログラムを修正して同じ間違いが起こらないようにするということもありうるが,もう1つは,「まあ,めったに起こらないことだから,そのときはそのときでしょうがない」と考えることにして,特に対応しないということもありうる.こういう場合,費用対効果で考えればよい.高速道路の場合,効果(といってもこの場合「損失」だが)は小さな確率ながら次第に増えていき,そのうちコスト(プログラムを修正するための費用)を上回るだろうから,修正するという判断になるだろう.
しかしながら,PermNetはどうか.バージョン0.94で止まったまま十年以上経つ.これは,私が十数年前に「その部分」が気になって,それを修正したらバージョン1にしようと思いながら何もしていないでいるということなのである.すでに十数年前のC++ Builderが現行OS上で動くのかどうかも定かでない.やるとなればたぶん投資が必要で,今はそのようなモチベーションがない.しかもほとんど起こりえなさそうな問題に対応するためにである.これが個人がフリーで開発しているソフトの危うさである.近年,情報系の研究者の方とたくさん知り合ったが,そのうち誰かに学生さんでも紹介してもらって,安くで修正をしてもらった方がよいのかもしれない.ただまあ,ここでちょっとだけ気にはするものの,また十数年放っておくのだろうなという気がする.
今日,新入生の人たちの顔を見た.しかし,他の先生のように,本を読めとかいうようなことは何も言わなかった.私としては数学を学べとか,プログラミングをやれとかいう気持ちもあるのだが,そんな言葉を発すれば,多くの文系の学生たちから敬遠されてしまう.私はそんなリスクは取らない.研究室に配属された学生の中でゲームとかアニメとかのオタクのやつがいたら,そうっとプログラミングを薦めてみようかとも考えているのだが,そういう系の人たちは,どうもお隣の分野に進みK先生のゼミに行くことが多いようである.まだしばらく数学やプログラミングを薦められる人が出てくるようには思えない.
というわけで,今日の「とんでも君」は,私なのでした.プログラミングに関する一般的な問題に「バグ」があるが,その中には存在がわかっているバグと,わかっていないバグがある.私のソフトウェアの場合,バグの存在がわかっているのだから,私は上述のバグをフィックスした方がよい.わかっていてやらないのだから,かなりとんでもないことをしていると思う.しかし,高速道路の想定外の利用の仕方というのは,バグと言ってしまうのはやや酷な気もする.今回の高速道路のプログラミングの問題は存在がわかっていない場合に近いだろう.人間行動のあらゆる可能性を想像しながらプログラミングをするのは,ある意味人間科学のセンスがかなり必要であると思う.よいプログラマーとは,よい人間科学者なのかもしれない.その逆は全く正しくないと思うが.
...え,そんな結論かよって.論点をすり替えるなよって.ごめんなさい.でも,まだ当分逃げたい気分.