空白記号がチューリングマシンの入力アルファベットの一部と見なされないのはなぜですか?


12

チューリングマシンの定義は、入力シンボルの一部ではない空白記号について常に明示的です。

事実上、空白記号は既に入力の一部になっているように見えるので、入力アルファベットの一部にするとどうなるのでしょうか。

最後の文の「ように見える」ことを説明するには、次のことを考慮してください。

デフォルト設定では、入力の右側に無数の空白記号が表示されます。テープヘッドが最初の空白記号の上を移動しても、受け入れ状態または拒否状態である必要がないため、計算を続行できます。

ここで、計算が続いてその最初の空白記号の右側に入力アルファベットから記号を書き込み、次に左端の位置に戻り、同時に開始状態に戻ると仮定します。その後、別のテープで「やり直し」ます。事実上、これは別の入力から始まり、以前は存在しなかったブランクの右側に入力シンボルがあります。入力には、空白記号が効果的に含まれているようです。マシンのさらなる動作も異なる可能性があります。ブランクに再び遭遇すると、右側に異なるシンボルが出現します。

このシナリオが実際に可能であると仮定して、入力アルファベットの空白記号部分を考慮しないのはなぜですか?また、「初期」入力の一部としてそれを含めることを許可しないのはなぜですか?

おそらく、それは入力が常に無限であるとは限らないように入力を定義するための単なる方法でしょうか?


クラスにいたとき、フィールドセパレーターとして入力にβ(ローカルブランクシンボル)を使用できるようにするチューリングマシンを設計しました。
ジョシュア

回答:


22

主な理由は、マシンがその入力の終わりを検出できるようにすることです:それは(前の文字)最初の空白です。入力に空白を許可した場合、マシンはさらに右にスキャンして、さらに入力が見つかるかどうかを知ることができませんでした。もちろん、特別な「入力終了」文字を使用することでそれを解決することできますが、それは入力に現れないことを主張する必要があるため、問題を1レベル深くシフトしました。

また、初期条件の指定がはるかに簡単になります。入力は初期テープの非空白セクションであり、有限で連続している必要があります。また、空白文字を入力アルファベットの一部にしたい場合は、いつでも追加の文字(「スペース」など)を追加して、マシンが表示されたときに好きなように動作させることができます。


1
ああ、もちろん、最初の入力の終わりを判断できなければ、一部の計算は不可能です。しかし、それ以外の場合、シンボルについて特別なことはありません。そして、とにかくアルファベットに必要な空白記号を使用することは、用語経済の問題だと思います。最初に明示的な入力終了記号と、厳密に必要ではなく、しばしば省略された発言で最初に定義されたとき、それは私にとってより明白だったと思います。
混乱

1
{00}0{11}1{1001}b

2
チューリングマシンには、空白を読み取る場合の動作を制御するルールが必要であり、空白を書き込むように指示するルールがあるかもしれませんが、それは空白が実際にアルファベットの一部であるという意味ではありませんか?入力に空白が含まれない理由がわかりません。空白以外の文字と区切り文字として単一の空白を使用して入力項目をエンコードするのはどうですか?次に、複数の連続した空白が入力の終わりを示します。
ロージーF

3
@YonatanN確かに。これは「単純」ですが、空白記号を使用する方が簡単です。
デヴィッドリチャービー

3
@RosieF空白はテープのアルファベットの一部です。入力アルファベットはそのサブセットです。そして、確かに、特定の状況で(入力したように)入力に空白を含める方法の規則を設定することもできますが、それは定義をより複雑にします。より複雑な定義は、チューリングマシンに関することを証明するのが難しいことを意味します。そして、Turingマシンは実際に物事を証明するためだけに使用されるので(実際のコンピューターを設計したい場合、TMにはなりません)、それは良いトレードオフではありません。
デヴィッドリチャービー

6

空白記号をアルファベットの一部として定義できます。それに関する問題は、入力b010010b(ここでbは空白を表す)のチューリングマシンの場合 2番目のbを超えて読み込まれない場合、マシンはb010010bで始まるすべての入力でまったく同じように動作することです。

これらのチューリングマシンはプレフィックスチューリングマシンと呼ばれ、コルモゴロフの複雑さに関するいくつかの定理を証明するのに非常に役立ちます。


5

非常に短い答え:テープアルファベットは、テープに表示される記号のセットであり、空白記号が含まれています。入力アルファベットが表示されることがシンボルのセットで初期入力で、それは空白のシンボルが含まれていません。マシンが気にする主なアルファベットはテープアルファベットです。たとえば、空白が表示された場合の対処方法のルールが必要です。

他の人が言ったように、この区別は重要であり、マシンは入力がどこで終わるかを知ることができます。これは、Cの文字列の途中にゼロ文字を(有効に)配置できないのと同じ理由です。ゼロ文字は、「これより前の最後のゼロ以外の文字がデータの終わりである」という意味で予約されています。これが表示されたら、完了です」。文字列の途中でゼロ文字を期待する必要がある場合、書き込みstrlenは非常に難しくなります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.