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

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

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

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

  • 入力アルファベット:
  • テープ記号の集合: ( は空白記号)
  • 状態の集合: 。初期状態は 、停止状態は である。 からの遷移はなく、 は状態 に入った時点で停止する。
  • 遷移関数 は次の表のとおりである。 は「状態 でヘッドが記号 を読んでいるとき、そのマスに を書き、ヘッドを の向き( は右へ 1 マス、 は左へ 1 マス)に動かし、状態を にする」という意味である。表にない組は、以下の計算では現れない。
状態読む記号書く記号ヘッドの移動次の状態

最初、テープの左端から順に入力 が書かれ、それより右のマスはすべて である。ヘッドは左端のマス(入力の 1 文字目)にあり、状態は である。遷移を 1 回行うことを 1 ステップと数えるとき、 が停止するまでのステップ数を求めよ。

この問題で使うもの

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

読み込み中…

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

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

ヒント

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

ヒント 1

チューリング機械の動作の追跡を使います。DFA で状態をたどったのと同じように、「状態・テープの内容・ヘッドの位置」を 1 ステップずつ書き出しましょう。

ヒント 2

各ステップでは、今の状態とヘッドが読んでいる記号の組で遷移表の行を 1 つ選びます。 は を読む間は右へ進み続け、 を読むと に書きかえて に移ります。

ヒント 3

ステップ 3 で が に変わり、状態 ・ヘッドはマス になります。その後 は を 3 個読んで右へ進み、マス の に着きます。そこから先の遷移を数えましょう。

答えと解説

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

テープのマスに左端から番号 をつける。最初のテープは

であり、様相(状態・テープの内容・ヘッドの位置)は「状態 、ヘッドはマス 」である。

各ステップでは、「今の状態」と「ヘッドが読んでいる記号」の組で遷移表の行を 1 つ選び、書く・動く・状態を変える、を行う。

  • ステップ 1: でマス の を読む。 より、 を書いて右へ。状態 、ヘッドはマス 。
  • ステップ 2: でマス の を読む。同じく右へ。状態 、ヘッドはマス 。
  • ステップ 3: でマス の を読む。 より、 を に書きかえて右へ。テープは 、状態 、ヘッドはマス 。
  • ステップ 4: でマス の を読む。 より右へ。ヘッドはマス 。
  • ステップ 5: でマス の を読む。右へ。ヘッドはマス 。
  • ステップ 6: でマス の を読む。右へ。ヘッドはマス 。
  • ステップ 7: でマス の を読む。 より、 のまま左へ。状態 、ヘッドはマス 。
  • ステップ 8: でマス の を読む。 より、 を に書きかえて左へ。状態は になる。

状態 に入ったので は停止する。このときテープは ( が 5 個)で、ヘッドはマス にある(この機械は の個数で表した を計算している)。

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

別解

テープの内容は 11+111(位置 1〜6)で、位置 7 以降は空白。ヘッドは位置 1、状態は 。

ステップごとの動作:
1. 位置1で 、読む記号 1。1 を書いて R、位置2、。
2. 位置2で 、読む記号 1。位置3、。
3. 位置3で 、読む記号 +。1 を書いて R、位置4、。テープは 111111。
4. 位置4で 、読む記号 1。位置5、。
5. 位置5で 、読む記号 1。位置6、。
6. 位置6で 、読む記号 1。位置7、。
7. 位置7で 、読む記号 空白。空白を書いて L、位置6、。
8. 位置6で 、読む記号 1。空白を書いて L、位置5、状態 。停止。

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

検算: で入力の 1 と + を読むのに 3 ステップ、 で右の 1 を 3 個読むのに 3 ステップ、空白で 1 ステップ、 で 1 ステップなので、3+3+1+1=8。最終テープは 11111 の後に空白(位置6が空白)で、2+3 の和 5 個の 1 になり、正しく加算している。

この問題の確認

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

間違いを報告する

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

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

関連する問題