モグラも驚く計算、なぜ

テクノロジー

1970年代、計算機科学の世界に「モグラの親子問題」という、なんだか不思議な名前の現象が登場しました。それは、理論上はスイスイ進むはずのアルゴリズムが、現実のコンピューターの上では、まるでモグラが地中を掘るみたいに、予測不能な動きを見せることから名付けられたんです。

そもそも、アルゴリズムというのは、コンピューターに仕事をやらせるための手順書のようなもの。多くのアルゴリズムは、平均すればこれくらいの時間で終わる、という「平均計算時間」が理論的に計算できます。でも、この「モグラの親子問題」は、それがうまくいかないケースを指すんですね。

例えば、ランダム二分探索木というデータ構造。これは、データを効率よく並べて、探したい時にすぐ見つけられるようにする仕組みです。理論上は、どんなデータを入れても、平均して速く動くはずなんです。ところが、実際に動かしてみると、特定のデータが続いただけで、とたんに動きが遅くなることがあった。まるで、親モグラが掘った穴に、子モグラが偶然入り込んで、さらに掘りにくくしてしまうような、そんな複雑さが隠れているかのようでした。

なぜ、こんなことが起きてしまうんでしょうか。それは、コンピューターが計算する上で、確率的な要素が複雑に絡み合っているからだと言われています。理論的なモデルでは捉えきれない、現実のランダム性が、アルゴリズムの振る舞いを予測困難にさせてしまうんです。Stack ExchangeというQ&Aサイトでは、14年以上前にBAD_SEEDさんという方が、7を法とする整数環($\mathbb{Z}_7$)での逆元計算について質問し、Dylan Morelandさんたちが回答していました。そこには、直接「モグラの親子問題」という言葉はありませんでしたが、理論と実践の乖離という、この問題に通じるような議論が見られます。

この問題は、単なる理論上の話ではありません。私たちが普段使っているコンピューターソフトや、インターネットの裏側で動いているシステムなど、あらゆる場所でアルゴリズムは使われています。その性能が、理論通りにいかないことがある、というのは、ちょっとドキッとする事実ですよね。

「モグラの親子問題」という名前には、どこかユーモラスな響きがあります。でも、その裏には、コンピューター科学がまだ解明できていない、現実世界の複雑さと、理論の限界が隠されているのかもしれません。個人的には、この名前の由来を想像するだけで、なんだかワクワクしてしまいます。


【関連動画をYouTubeでチェック】

最新の映像や解説動画がアップロードされています。

▶️ 「モグラの親子問題 アルゴリズム」の関連動画一覧 (YouTubeサイトへ移動します)


関連記事

コメント

タイトルとURLをコピーしました