11月5日は、仮想的な計算機「チューリングマシン」が発表された日です。
人間の能力を、人間を超える形で働かせる「コンピュータ(計算機)」。複雑な計算を迅速かつ正確におこないたい、という欲求は古来から多くの人々が渇望するものでした。
そろばんや計算尺といったシンプルな機械式計算機にはじまり、蒸気機関や電磁石などの動力源を利用する時代を経て、真空管、トランジスタ、集積回路といった電子デバイスの利用へと進んだ結果、現在の高度なコンピュータへと到達しました。
現代的なコンピュータの原理的な基礎となったのが、イギリスの数学者で、計算機科学者でもあったアラン・チューリングによる「チューリングマシン」です。
現在のコンピュータの性能の限界が指摘され始める一方で、格段に高度な処理能力から、産学各方面より注目を集める「量子コンピュータ」について、日米で量子コンピュータの関連特許を発明した著者が懇切丁寧に解説する『量子コンピュータに何ができるか 知識ゼロから理解できる原理としくみ』から、コンピュータの基礎となった「チューリングマシン」についての解説をお届けします。
じつは、このチューリングマシンを軸に、コンピュータ=計算機が「単なる計算機械」なのか、という深遠な問題につながっていくのです。今回は、チューリングマシンにいたる計算機の歩みをたどっていきます。
*本記事は、『量子コンピュータに何ができるか 知識ゼロから理解できる原理としくみ』(ブルーバックス)を再構成・再編集したものです。
じつは、コンピュータという語は「計算手」という人間を意味する
機械(マシン)とは、私たち人間の能力の一部を、人間の能力を超える形で実現した存在です。その意味では、「計算機(コンピュータ)」を文字どおりに解釈すれば、人間の計算能力を、人間を超える形で実現したものということになります。
実際、計算機の一種である電卓を使えば、複雑な足し算や引き算、かけ算や割り算などを容易にこなすことができます。
しかし、計算機ができることは、算数や数学だけではありません。スマートフォン(スマホ)も計算機の一種ですが、各種のアプリを使ってさまざまなタスクをこなすことができます。
現在の計算機とよばれているものは、「チューリングマシン」と言われる仮想的な機械を具現化したものです。チューリングマシンは、アラン・チューリングが1936年に発表した論文「計算可能な数とその決定問題への応用」の中で登場しました。
じつは、チューリングの考えた「チューリングマシン」は、機械のように決められた仕事をこなす「計算者」という人間を念頭に置いていました。
したがって、彼が用いた「computer」という用語は、計算機という機械ではなく、計算をおこなう「計算手」という人間を意味します。
計算手は、マニュアルに沿ってあるタスクを機械的に遂行します。チューリングの論文では、計算手を使って、ある数を構成すること(数の構成問題)が論じられています。このマニュアルが、「アルゴリズム(計算規則)」を指定します。
チューリングの名前は現在、計算機科学におけるノーベル賞とも言われる「ACMチューリング賞」に冠せられており、彼を主人公にした映画『イミテーション・ゲーム/エニグマと天才数学者の秘密』も作られました。
また、イギリスの50ポンド紙幣の肖像はチューリングです。
チューリングマシンのハード構成
チューリングマシンは、ハードウェアとして以下のものを備えています。
A:表面の記号を読み書きできる「テープ」。テープにはマス目があり、長さは無限大。
B:テープのマス目に書いてある記号を読んだり、消したり、書いたりすることができる「ヘッド」。
C:ヘッドの位置を、現在のテープのマス目の位置から左右のマス目の位置に移動するか、現在のマス目で記号の読み書きをおこなうかを規則に従って遂行する「マシン」。
このハードウェアは、無限に長いテープと、注意深く規則に基づいてテープの移動や読み書きができる人間(計算手)がマシンとなれば、実現可能です。
無限に長いテープは実際には存在しませんが、計算するのに十分に長ければ問題ありません。人間は長時間労働をすると疲れてしまいますが、ここでは、疲れを知らない仮想的な計算手を想定します。
テープに読み書きされるのは有限個の種類の記号で、あらかじめテープに書かれている記号列が、計算プログラムやそのプログラムで用いるデータとなります。その後に書き込まれる記号は、計算の途中過程や最終的な答えとなります。
チューリングマシンはそれ以前のコンピュータとは異なり、計算できることはなんでもできる「万能コンピュータ」として考案されました。計算できることの内容には、論理計算ーーつまり、ある文章が正しいか(真か)間違っているか(偽か)ーーや、決定問題(たとえばチェスの次の一手に何を選ぶか、など)も含まれます。
パスカルとライプニッツが作ったコンピュータ
チューリングマシンを理解する前段として、チューリングマシンより前のコンピュータについて、簡単に触れておきます。
「人間は考える葦である」と言った17世紀のフランスの数学者ブレーズ・パスカルは、「パスカリーヌ」とよばれる計算機を作りました。パスカリーヌは、任意の2つの数の加減演算ができました。
その後、これに乗除計算の機能を付け加えた計算機である「ステップレコナー」が、ゴットフリート・ライプニッツによって作られました。
ライプニッツは17世紀から18世紀のドイツで活躍した哲学者・数学者で、アイザック・ニュートンと同じ頃、彼とは独立に微分積分学を創始しました。ライプニッツは概念を記号化することに長(た)けていたようで、こんにち利用されている微分・積分の記号は、彼が発案したものです。
パスカリーヌもステップレコナーも、チューリングマシンではありません。
プログラミングができず、ハードウェアにあらかじめ組み込まれた計算しかできないからです。チューリングマシンでは、Cがプログラミングに対応します。