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

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

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

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

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

はじめ、テープには入力文字列 が左から順に連続する 4 マスに書かれ、それ以外のマスはすべて空白記号 である。ヘッドは入力の最も左の文字(左端の )のマスにあり、状態は である。

遷移を 1 回行うことを 1 ステップと数える( に入る遷移も 1 ステップに数える)。 が停止するまでのステップ数を求めよ。

この問題で使うもの

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

読み込み中…

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

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

ヒント

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

ヒント 1

チューリング機械の動作の追跡を使います。状態・テープの内容・ヘッドの位置を組にした様相を、遷移表にしたがって 1 ステップずつ書き出しましょう。

ヒント 2

状態 では や を読む限り右へ進み続け、空白 を読むと に移って左へ戻ります。 では を に書き換えながら左へ進み、 か を読むと に移ります。

ヒント 3

入力の 4 文字を読み進めるのに 4 ステップ、右端の空白を読んで に移るのが 5 ステップ目です。このとき様相は です。ここから で何回遷移すると に入るかを数えましょう。

答えと解説

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

様相(状態・テープの内容・ヘッドの位置)を 1 ステップずつ追跡する。入力の 4 マスを左から順にマス 1, 2, 3, 4 とし、その右のマスをマス 5 とする。様相は、ヘッドのあるマスの記号の直前に状態を書いて表す(例: は状態 でヘッドがマス 1 にあることを表す)。

はじめ: (状態 、ヘッドはマス 1)

状態 の間(右へ進む): は も もそのまま書き直して右へ進む。
- ステップ 1: マス 1 の を読む。 より 。
- ステップ 2: マス 2 の を読む。 より 。
- ステップ 3: マス 3 の を読む。 より 。
- ステップ 4: マス 4 の を読む。 より (ヘッドはマス 5)。

右端の空白を見つける:
- ステップ 5: マス 5 の を読む。 より (ヘッドはマス 4)。

状態 の間(左へ進みながら書き換える):
- ステップ 6: マス 4 の を読む。 より、マス 4 を に書き換えて (ヘッドはマス 3)。
- ステップ 7: マス 3 の を読む。 より、マス 3 を に書き換えて (ヘッドはマス 2)。
- ステップ 8: マス 2 の を読む。 より、マス 2 を に書き換えて から に移る。様相は (ヘッドはマス 1)。

状態 に入ったので、ここで は停止する。停止時のテープの内容は である(この機械は 2 進数に 1 を加える機械で、 が になっている)。

したがって、停止するまでのステップ数は である。

別解

テープのマスを左から位置 1〜4 とし、入力 1011 を書く。ヘッドは位置 1、状態は から始める。

のとき、0 と 1 は書き換えずに右へ進み、空白で に移って左へ戻る。

1. 位置 1 で が 1 を読む。 より位置 2 へ。
2. 位置 2 で が 0 を読む。位置 3 へ。
3. 位置 3 で が 1 を読む。位置 4 へ。
4. 位置 4 で が 1 を読む。位置 5 へ。
5. 位置 5 で が空白を読む。 より位置 4 へ。

ここまでで 5 ステップ。

次に はビットを反転しながら左へ進む(2 進数に 1 を加える操作)。

6. 位置 4 で が 1 を読む。0 を書いて位置 3 へ。
7. 位置 3 で が 1 を読む。0 を書いて位置 2 へ。
8. 位置 2 で が 0 を読む。 より 1 を書いて停止する。

ステップ 6 から 8 で 3 ステップ。 に入る遷移も 1 ステップに数えるので合計 ステップ。

検算として、最終テープは 1 1 0 0(位置 1〜4)となる。入力 1011 は 11 で、1 を加えると 12 = 1100 であり、一致する。

よって停止するまでのステップ数は 8。

この問題の確認

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

間違いを報告する

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

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

関連する問題