オートマトン・形式言語の問題
次の 1 テープ決定性チューリング機械 を考える。
- 状態の集合: 。初期状態は 、受理状態は 、拒否状態は
- 入力アルファベット: 、テープアルファベット: ( は空白記号)
- 遷移関数 は次の表のとおり。表の「」は「状態を に変え、いま読んでいるマスに を書き、ヘッドを の向き( は右、 は左)に 1 マス動かす」ことを表す。表にない(状態, 記号)の組では、 は に移って停止する。
| 状態 | 読む記号 | 遷移 |
|---|---|---|
テープは右に無限に続き、はじめは入力文字列が左端のマスから書かれ、残りのマスはすべて である。ヘッドははじめ左端のマス(入力の 1 文字目)にあり、状態は である。 は または に入った時点で停止する。
入力 に対して を動かしたとき、 が停止するまでに適用される遷移の回数(停止状態に入る遷移も 1 回と数える)を求めよ。
この問題で使うもの
- チューリング機械の動作の追跡(説明と入口の問題)
この問題を解けるようになるまで(2 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
一覧で見る(前提が先)
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
この機械は「 を に、対応する を に書き換える往復」をくり返す。1 往復ごとにテープの様子とヘッドの位置を書き出してみよう。
ヒント 2
1 往復は「 で 1 回」「 で右へ進み を にするまで」「 で左へ戻り を読むまで」に分けて数えるとよい。
ヒント 3
1 往復目は で 1 回、 で 3 回、 で 3 回の計 7 回になる。2 往復目、3 往復目も同様に数え、最後に で を通過して空白に達するまでを加えよう。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
マスを左から と番号付けする。入力は 番目が 、 番目が 、7 番目以降が である。
の動作は「 で左端の未処理の を にする → で右へ進み最初の を にする → で左へ戻り を見つけたら 1 マス右へ」という 1 往復をくり返す。
1 往復目(ヘッドは 1 番目)
- : 1 番目の を に、右へ(1 回)
- : 2, 3 番目の を通過(2 回)、4 番目の を にして左へ(1 回)
- : 3, 2 番目の を通過(2 回)、1 番目の を読んで右へ、 に(1 回)
計 回。テープは 、ヘッドは 2 番目。
2 往復目
- : 2 番目の を に(1 回)
- : 3 番目の 、4 番目の を通過(2 回)、5 番目の を に(1 回)
- : 4 番目の 、3 番目の を通過(2 回)、2 番目の で右へ(1 回)
計 回。テープは 、ヘッドは 3 番目。
3 往復目
- : 3 番目の を に(1 回)
- : 4, 5 番目の を通過(2 回)、6 番目の を に(1 回)
- : 5, 4 番目の を通過(2 回)、3 番目の で右へ(1 回)
計 回。テープは 、ヘッドは 4 番目、状態は 。
最後の確認
- : 4 番目の を読み へ(1 回)
- : 5, 6 番目の を通過(2 回)
- : 7 番目の を読み へ(1 回)
計 回で受理して停止する。
したがって遷移の回数は
(一般に入力 では 1 往復が 回、最後が 回なので、合計 回となり、 で と一致する。)
別解
テープの位置を左端から 0,1,2,... とする。初期のテープは 、ヘッドは位置 0、状態は 。
1 周目: が (位置 0)を に変えて右へ(1 回)。 が位置 1 の 、位置 2 の を読み右へ(2 回)、位置 3 の を に変えて で左へ(1 回)。 が位置 2、1 の を読み左へ(2 回)、位置 0 の で に戻り右へ(1 回)。合計 回。テープは 、ヘッドは位置 1、状態は 。
2 周目: 同様に で位置 1 の を に(1 回)、 が位置 2 の 、位置 3 の を右へ越え、位置 4 の を に(3 回)、 が位置 3 の 、位置 2 の を左へ越え、位置 1 の で に(3 回)。合計 7 回。テープは 、ヘッドは位置 2。
3 周目: で位置 2 の を に(1 回)、 が位置 3、4 の を越え、位置 5 の を に(3 回)、 が位置 4、3 の を越え、位置 2 の で に(3 回)。合計 7 回。テープは 、ヘッドは位置 3、状態は 。
最後: が位置 3 の を読んで に移り右へ(1 回)。 が位置 4、5 の を読み右へ(2 回)、位置 6 の で に移る(1 回)。合計 4 回。
総回数: 。入力は受理される。
答え: 25