オートマトン・形式言語の問題
右方向に無限に続くテープを 1 本もつ決定性チューリング機械 を考える。
- 入力アルファベット:
- テープ記号の集合: ( は空白記号)
- 状態の集合: 。初期状態は 、停止状態は である。 からの遷移はなく、 は状態 に入った時点で停止する。
- 遷移関数 は次の表のとおりである。 は「状態 でヘッドが記号 を読んでいるとき、そのマスに を書き、ヘッドを の向き( は右へ 1 マス、 は左へ 1 マス)に動かし、状態を にする」という意味である。表にない組は、以下の計算では現れない。
| 状態 | 読む記号 | 書く記号 | ヘッドの移動 | 次の状態 |
|---|---|---|---|---|
最初、テープの左端から順に入力 が書かれ、それより右のマスはすべて である。ヘッドは左端のマス(入力の 1 文字目)にあり、状態は である。遷移を 1 回行うことを 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 になり、正しく加算している。