単元一覧 › 大学数学 オートマトン・形式言語

オートマトン・形式言語の問題

難易度 2教科書の演習問題レベル大学数学 オートマトン・形式言語

両側に無限に続くテープを 1 本もつ決定性チューリング機械 を考える。

  • 状態の集合は である。初期状態は 、停止状態は である。 からの遷移はなく、 に入った時点で は停止する。
  • 入力アルファベットは 、テープ記号の集合は である( は空白記号)。
  • 遷移関数 は次の表で与えられる。表の各欄の は「状態 に移り、ヘッドの位置に記号 を書き込み、ヘッドを向き に 1 マス動かす」ことを表す。 は左、 は右である。
状態 \ 読んだ記号

最初、テープには入力文字列 が左から順に 1 マスに 1 文字ずつ書かれている。それ以外のマスはすべて である。ヘッドは の左端の文字の上にあり、状態は である。

遷移関数を 1 回適用することを 1 ステップと数える。 に移る遷移も 1 ステップに含める。 が停止するまでのステップ数を求めよ。

この問題で使うもの

この問題を解けるようになるまで(2 技能)
算数中学高校大学大学院

読み込み中…

右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。

一覧で見る(前提が先)
  1. 決定性有限オートマトンの動作と受理判定
  2. チューリング機械の動作の追跡

ヒント

行き詰まったら、上から順に 1 つずつ開いてください。

ヒント 1

状態ごとの役割を読み取りましょう。 は右端へ進み、 は右から 1 を加え、 は左端へ戻ります。それぞれの区間で何ステップかかるかを数えます。

ヒント 2

は を に書き換えながら左へ進み、最初に出会った を にして に移ります。 の右端に がいくつ続くかを確認しましょう。

ヒント 3

の区間は、空白を読んで折り返す 1 ステップを含めて 9 ステップです。続く の区間は、右端の を 3 つ書き換える 3 ステップと、位置 5 の を にする 1 ステップです。残るのは で左端の空白まで戻る部分です。

答えと解説

答えを見る
結果を記録する(このブラウザにだけ保存されます):
解説を読む

テープのマスに番号を付ける。入力の左端のマスを とし、右へ とする。入力の左隣の空白のマスは 、右隣の空白のマスは である。最初の内容は次のとおりである。

位置 から に順に が書かれ、位置 と位置 は である。

(1) 状態 :右端まで進む

では も もそのまま残して右へ進む。位置 から までの 8 マスで 8 ステップかかり(ステップ 1〜8)、ヘッドは位置 の に達する。

ステップ 9 では が を読むので、 に移って左へ動く。ヘッドは位置 に来る。

(2) 状態 :1 を加える(繰り上がりの処理)

は を読むと に書き換えて左へ進む。
- ステップ 10:位置 の を にし、位置 へ動く。
- ステップ 11:位置 の を にし、位置 へ動く。
- ステップ 12:位置 の を にし、位置 へ動く。
- ステップ 13:位置 の を読む。 を書き込んで に移り、位置 へ動く。

(3) 状態 :左端へ戻る

は記号を変えずに左へ進む。
- ステップ 14〜17:位置 を順に通り、ヘッドは位置 に達する。
- ステップ 18:位置 の を読むので、 に移って右へ動く。ここで停止する。

したがって停止までのステップ数は

である。

(確認)停止時のテープは で、これは 2 進数で を表す。 は 2 進数に 1 を加える機械として正しく動いている。

ステップ数も一般的に確かめておく。入力の長さを 、右端に続く の個数を とし、入力に が 1 つ以上含まれるとする。このとき、右へ ステップ、空白での折り返しに ステップ、 の書き換えに ステップ、 を にするのに ステップかかる。さらに残りの マスを戻るのに ステップ、最後の空白で ステップかかる。合計は

となる。 を代入すると になり、上の結果と一致する。

答え:

別解

入力 は長さ 8 で、左から位置 1〜8 に書かれているとする。

1. は 1〜8 の各文字を読んで右へ進む。これが 8 ステップで、ヘッドは位置 9()に来る。
2. 位置 9 で を読み、 により に移ってヘッドは位置 8 に戻る。これが 1 ステップで、累計 9 ステップ。
3. は 2 進数の 1 加算を行う。位置 8, 7, 6 はいずれも 1 なので 0 に書き換えて左へ進む。これが 3 ステップで、累計 12 ステップ。
4. 位置 5 は 0 なので、1 を書いて に移り左へ進む。これが 1 ステップで、累計 13 ステップ。ヘッドは位置 4 にある。
5. は位置 4, 3, 2, 1 の文字を読んで左へ進む。これが 4 ステップで、累計 17 ステップ。ヘッドは位置 0()に来る。
6. 位置 0 で を読み、 により に移る。これが 1 ステップで、累計 18 ステップ。

テープの最終内容は 10111000 となり、これは 10110111 に 1 を加えた値である。この内容は、 を 2 進数として 1 加算した結果と一致する。

答え:18 ステップ。

この問題の確認

AI が作成した問題です。公開前に次の確認を行いました。確認の方法について

間違いを報告する

この問題の誤り・分かりにくい点・難易度や学年のずれを知らせる
どこについての報告ですか

報告の内容と問題の番号を保存します。名前やメールアドレスは保存しません。

関連する問題