基本読書

基本的に読書のこととか書く日記ブログです。

数学的原理に裏打ちされたファンタジー小説──『精霊の箱: チューリングマシンをめぐる冒険』

精霊の箱 上: チューリングマシンをめぐる冒険

精霊の箱 上: チューリングマシンをめぐる冒険

精霊の箱 下: チューリングマシンをめぐる冒険

精霊の箱 下: チューリングマシンをめぐる冒険

本書は副題にチューリングマシンをめぐる冒険とあるように、「チューリングマシン」について、その諸原理や応用問題を取り扱った一冊である。チューリングマシンとは計算を数学的にモデル化するために生み出されたもので──と説明を始めたらキリがないので一旦終わるが、それと同時に、本書は「本格ファンタジー」でもある。

ベストセラー『もし高校野球の女子マネージャーがドラッカーの『マネジメント』を読んだら』を筆頭として、ストーリー仕立てで現実の経営論やらマネージメントやらを学べる形式の本は数多いから、別に小説形式それ自体は特別なことではない。本書の特異性──というか凄さは「チューリングマシンについての解説」と「ファンタジー小説としてのおもしろさ」が、極めて高いレベルで両立されているところにある。

極めて高いレベルでの両立とはどういうことなのかといえば、「純粋なファンタジー小説として薦められる」上に、「チューリングマシンについて知りたい人へ、入門書的に手渡せる」の二つが両立されているということである。「チューリングマシンの解説」をあからさまに入れたら物語への没入感なんて消えてしまうから、普通この二つは両立しないはずだが、本書は奇跡的にそれを達成しているのだ。

小説としての面白さとチューリングマシン解説の奇跡的な両立

なぜ本書はその難しいはずの「小説としての面白さ」と「チューリングマシン解説」が両立できているのだろうか。まず単純なところからいくと、本書が「ファンタジー」として描かれているところにある。この『精霊の箱』世界には魔術が存在するが、その動作は一貫して現実の数学的原理にのっとって描かれていく。

本書巻頭言から引用すれば以下のようになる。

前作と同様、作中の人物、団体、場所、物理・化学法則はすべて架空のものですが、物語の根底を流れる数学的原理は現実のものです。ガレットを始めとする登場人物たちと一緒に、「計算」という概念の本当の姿、またそれにまつわる数々の話題に親しんでいただけましたら幸いです。

魔術師同士の攻防、迷宮探索といったすべてに数学的な問いと解があり、そこに魔術の名や架空の概念を割り当てられていくので、読み終えた時には、小説として楽しみながらも情報科学や数学における基本的な概念に慣れ親しんでいることになる。

前作はどのような話だったか

前作『白と黒のとびら: オートマトンと形式言語をめぐる冒険』では、主人公のガレットは、偉大な魔術師のアルドゥインの弟子となって、初歩的な魔術をおぼえ、いくつかの遺跡を攻略することで成長していく。物語として巧みなのは、ガレットが対応する問題がだんだんと複雑化し、ランクアップしていくことだ。

最初は有限オートマトンの原理を学び、コンピュータが日本語などの自然言語を解析する時の方法にも用いられる構文解析の理論に挑戦し、最終的にはボス的な『あらゆる文字列について「この文字列は自分自身の記述を受理するチューリングマシンの記述の集合の外にあるか?」という対角線言語の認識問題』に対峙してみせる。

そうした問題は、ファンタジー小説としては「世界、あるいはガレット自身の命の危機」として迫ってくるが、現実の問題としてもラスボス感が溢れている。チューリングマシンができることはコンピュータができることと同等であり、チューリングマシンの限界は万能道具たるコンピュータの限界でもあるから、「現実における問題の重要性」と「作中の危機性」がある程度シンクロしているのだ。

なおかつ魔術のロジックが完璧な理屈に支えられているからこそ、作中の魔術的な攻防が「完璧な理屈に支えられた説得力のある結末」となって現れてくる。たとえば、『精霊の箱』のラストバトルでは暗号技術を用いたお互いの「番地」の解析が勝敗を分ける重要な要素となるが、相手の用いる暗号技術が原理的に解ける問題なのか、はたまた原理的には解けたとしても「計算資源」的に解ける問題なのかどうかといったことがすべて数学的に計算され決着へと繋がっていく。ファンタジーの装いをしているが、その数学的な厳密さはSF的であるともいえるだろう。

精霊の箱から読んでも良いのか問題

さて、前作の話をざっとしたが、本書はその続篇にあたる。

前作読んでからじゃないと読めないの? といえば、そんなことはない。ストーリー的にも理論的にもつながりがあるけれども、どちらのおもしろさも『精霊の箱』の方が数段上がっていると思う。なので本書を読んで、おもしろかったら前作に戻るという読み方もいいだろう。というのも、テーマとして前作はオートマトンからチューリングマシンまで描かれていたが、今作ではそれがどう現実に行われている計算に関わっているのか、現在のコンピュータにつながっていくのかが描かれていくのである。

そのため本書で展開される話題は、二つの文字列が一致するか否かを判定するチューリングマシン、二進法による文字の表現 電気回路によるチューリングマシンの再現、暗号化、チューリングマシンでは解くことのできない「停止性問題」などなど、コンピュータの処理の中でも我々の目に入ってくる処理と近い部分が扱われている。

ようは「前作よりも身近で複雑な処理」に突入しているわけであるが、必然的にファンタジー設定も重厚長大になり、かつて起こった言語戦争という大戦、彼らの世界とは異なる表象界と浄罪界からなる呪文の発動設定、世界を原理的に書き換えようとする悪役──などなど「話/世界観の規模が増し、おもしろくなっている」のである。

この置き換えがまた見事で、たとえば「停止性問題」が作中では「偽呪文」をめぐる問題として表現されていく。偽呪文とは既存の呪文がいつの間にか切り替わったもので、唱えることで術者は昏睡状態に陥ってしまう上に、偽呪文かそうでないかは事前にわからないという危険な代物だ。術者らが気軽に呪文を使うことができなくなってしまっている中、副大神官が「偽呪文を識別する呪文」を発見したと発表する。

果たして偽呪文を識別する呪文なんてものは本当にあるのか──とガレットらは議論を重ねるのだが、これの面白さは現実のコンピュータ・プログラムの問題にも重なってくるところである。たとえばどんなプログラムであっても、それが止まるかどうかは実行させてみなければわからず、コンピュータに事前判定させることは原理的に不可能なのだが(できたら便利なのに)、それについての証明が本書では「偽呪文を識別する呪文なんてものは存在しえないのでは」という形の議論で行われていくのだ。

さいごに、ストーリーについて

この世界では最初に書いたように魔術の行使は基本的に数学的な原理にのっとって行われていくから、攻防では「考えることをやめた人間が負ける」パターンが多い。たとえば「この呪文を唱えれば問題解決ですよ」と言われて騙されそうになっても、それが本当に問題解決に使えるかどうかは自分で突き詰めて考えれば検証可能なのだ。

だからこそ本書では「立ち止まって、考えること」の重要性と、同時にそれは途方もなく苦しいことでもあって──という困難さが強烈に描かれていく。取り上げられていく問題は、プログラムなどに慣れ親しんだ人でもなければページをめくる手を止めてじっくりと読み解いていかなければならないぐらいには歯ごたえのあるものだが、ガレットと共にその困難を楽しみながら付き合ってもらいたいものだ。

白と黒のとびら: オートマトンと形式言語をめぐる冒険

白と黒のとびら: オートマトンと形式言語をめぐる冒険