5.3
最大の能力
149
力を与えることは基本的に不可能なのです。
私たちはすでに、これが非決定性に当てはまることを見てきました。ここからは、その他の伝統的な
チューリングマシンの拡張(内部ストレージ、サブルーチン、複数のテープ、多次元のテープ)につい
て、なぜそれが計算能力を高めることにならないのか見ていきましょう。複雑なテクニックが必要なも
のもありますが、結局のところ、それらはプログラミングの問題にすぎません。
5.3.1
内部ストレージ
チューリングマシンには好きに使える内部ストレージがないため、規則集を設計するのに苦労しま
す。たとえば、テープヘッドをある位置に動かし、そこに格納されている文字を読み、それから別の位
置にヘッドを動かし、そして先ほど読んだ文字に依存したアクションを実行する、というのはよくある
動作です。ところが、チューリングマシンには文字を「覚えておく」手段がないため、一見するとこれ
は不可能なことのように思えます。もちろん、文字はテープに書かれているので、ヘッドをその位置に
戻すことで、好きなときに好きなだけその文字を読むことができますが、ヘッドがそのマス目を離れて
しまうと、もはやその内容に基づいて規則を実行することはできなくなります。
もしチューリングマシンに一時的な内部ストレージ(「RAM」、「レジスタ」、「ローカル変数」などと
呼ばれるもの)があれば、もっと便利でしょう。テープヘッドの下にある文字を内部ストレージに保存
しておけば、たとえヘッドが別の場所に動いても、あと