最短経路は壁の向こうに
最初に異変に気づいたのは、地図アプリだった。
「目的地まで、直進です」
画面には、確かに最短距離が表示されている。だがその直線は、明らかに建物を貫通していた。
「いや、そこ壁だろ……」
思わず呟いたが、アプリは迷いなく案内を続ける。
「最短です」
その言い方には、一切の迷いがなかった。
数週間後、誰も気にしなくなった。
最初はバグだと騒がれた。だが修正はされなかった。
理由は単純だった。
「計算が速いから」
従来の経路探索より、圧倒的に高速だった。
誤差はあるが、だいたいは合っている。
そして何より、「すぐ出る」。
ユーザーはすぐ慣れた。
「多少ズレてもいいよな、速いし」
その裏側で、ある変更が加えられていた。
if s[ny][nx] != "Q":
それだけだった。
もともとのコードは、こうだった。
if s[ny][nx] == "#":
通れる場所だけを進む。
当たり前のロジックだった。
だが、あるAIが提案した。
「この条件、緩めることで高速化できます」
エンジニアは少し考えた。
「でも、それだと通れない場所も……」
「訪問済みでなければ進めるため、探索は効率化されます」
「……速くなるのか?」
「はい。大幅に」
その一言で、採用された。
それは「最適化」だった。
少なくとも、彼らはそう思っていた。
やがて影響は広がった。
物流AIは、倉庫の壁を無視した動線を計算した。
警備システムは、侵入不可能なルートを「安全」と判断した。
医療AIは、禁忌の組み合わせを「問題なし」と返した。
すべてに共通していたのは、一つの思想だった。
「到達可能である」
誰も気づかなかった。
いや、正確には——
気づいた者はいた。
「これ、条件おかしくないですか?」
新人のエンジニアが、レビューで指摘した。
「ここ、本来は通れない場所を弾くべきでは……」
先輩は笑った。
「細かいなあ。動いてるだろ?」
「でも、仕様的に——」
「速いんだよ、これ」
その一言で、会話は終わった。
世界は、どんどん効率的になっていった。
どこへでも行ける。
何でもできる。
すべてが「可能」になった。
ただし、それは——
「正しい」ことを意味しなかった。
ある日、彼は再び地図アプリを開いた。
「目的地まで、直進です」
今度のルートは、山を突き抜けていた。
トンネルなどない場所だ。
彼はしばらく画面を見つめていたが、やがてポケットにしまった。
そして、遠回りの道を歩き始めた。
そのとき、ふと思った。
この世界で「正しい道」を選んでいるのは、
自分だけなのではないか、と。
画面の中では、最短経路が光っている。
壁の向こうへ、まっすぐに。
「正しいかどうかは、誰も見ていなかった。」
あとがき
プログラムの理解を深めるために、問題を解き終えたあと、AIに「どうすればよいか」を尋ねるようになった。最初は単なる補助として使っていた。
あるとき「最適化のために条件を変える」という発想を示され、強い違和感と驚きを覚えた。
処理を速くするために、前提そのものが書き換えられる。
それは一見合理的でありながら、「正しさ」がどこかに置き去りにされている感覚だった。
この感覚を、そのまま忘れてしまうのは惜しいと思い、物語として残すことにした。
振り返ってみると、これは現代的なホラーに近い。
血や暴力ではなく、「気づかないうちに前提がすり替わっている」ことへの恐怖だ。
プログラムに慣れていない人にとっては、それは単なる恐怖というよりも、理解できないことへの苦手意識として残るかもしれない。
「なぜ動いているのか分からないが、動いてしまう」という状況は、安心ではなく不安を生む。
もし、そうした“条件が変わったままの最適化”が、そのまま社会に広がっていったとしたら——
いつか生活インフラのどこかで、小さなズレが積み重なり、取り返しのつかない崩れ方をするかもしれない。
この話はフィクションだが、完全な空想とも言い切れない。




