オートマトン・形式言語の問題
1 テープ決定性チューリング機械 を考える。
- 入力アルファベット:
- テープ記号の集合: ( は空白記号)
- 状態の集合: 。初期状態は 、停止状態は である( からの遷移はない)。
- テープは右に無限に続き、はじめは左端のマスから順に入力文字列が書かれ、残りのマスはすべて である。ヘッドは左端のマス(入力の 1 文字目)にあり、状態は である。
遷移関数 は次の表で与えられる。表の は「状態 に移り、いま読んでいるマスに記号 を書き、ヘッドを の向き( は右、 は左)に 1 マス動かす」ことを表す。「—」の組では遷移は定義されていない。
| 状態 | |||
|---|---|---|---|
| — | |||
| — | |||
| — | — |
遷移を 1 回適用することを 1 ステップと数える。入力文字列 を与えて を動かしたとき、状態が になるまでに何ステップかかるか求めよ。
この問題で使うもの
- チューリング機械の動作の追跡(説明と入口の問題)
この問題を解けるようになるまで(2 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
一覧で見る(前提が先)
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
チューリング機械の動作の追跡を使う。状態・テープの内容・ヘッドの位置(様相)を、遷移表に従って 1 ステップずつ書き出していく。
ヒント 2
各ステップでは「いまの状態」と「ヘッドが読んでいる記号」の組で表を引き、書く記号・ヘッドの向き・次の状態を決める。 は を読み飛ばして右へ進み、 を に書き換えて に移る。
ヒント 3
最初の 3 ステップで を読み飛ばし、4 ステップ目で を に書き換えて になる。その後 が右端の空白に着くまで右へ進み、空白で左に戻って になる。そこから に入るまでを数えよう。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
様相(状態・テープの内容・ヘッドの位置)を 1 ステップずつ追跡する。様相を と書き、「テープの内容は 、状態は 、ヘッドは の 1 文字目を読んでいる」ことを表す。
はじめ(0 ステップ):
1. 状態 で を読む → 。 をそのまま残して右へ。様相
2. で → 。様相
3. で → 。様相
4. で → 。 を に書き換えて右へ、状態 。様相
5. で → 。様相
6. で → 。様相
7. で → 。左へ戻り状態 。様相
8. で → 。右端の を に消して左へ、状態 。様相
8 ステップ目で停止状態 に入ったので、 は停止する。途中で遷移が定義されていない組(「—」)には一度も出会っていない。
停止時のテープの内容は ( が 5 個)であり、この機械は 1 進法で を計算していることがわかる。
よって、求めるステップ数は である。
別解
入力 はマス 1〜6 に書かれている(1,1,1,+,1,1)。マス 7 以降は である。ヘッドはマス 1、状態は から始める。
ステップ 1: マス 1 で 、記号 1 → 。ヘッドはマス 2。
ステップ 2: マス 2 で 、記号 1 → ヘッドはマス 3。
ステップ 3: マス 3 で 、記号 1 → ヘッドはマス 4。
ステップ 4: マス 4 で 、記号 → 。マス 4 を 1 に書き換え、ヘッドはマス 5。
ステップ 5: マス 5 で 、記号 1 → ヘッドはマス 6。
ステップ 6: マス 6 で 、記号 1 → ヘッドはマス 7。
ステップ 7: マス 7 で 、記号 → 。ヘッドはマス 6。
ステップ 8: マス 6 で 、記号 1 → 。状態 になる。
検算: で 1 を 3 個読み(3 ステップ)、 で 1 ステップ、 で 1 を 2 個読み(2 ステップ)、空白で 1 ステップ、 で 1 ステップ。合計 。途中で未定義の遷移には到達しない。
よって 8 ステップ。