オートマトン・形式言語の問題
両側に無限に続くテープを 1 本もつ決定性チューリング機械 を考える。
- 状態の集合: 。初期状態は 、停止状態は ( からの遷移はなく、 に入った時点で は停止する)
- 入力アルファベット: 、テープ記号の集合: ( は空白記号)
- 遷移関数 は次の表で与えられる。表の「(書く記号, ヘッドの移動, 次の状態)」で、 は右へ 1 マス、 は左へ 1 マス動くことを表す。
| 状態 | 読んだ記号 | 読んだ記号 |
|---|---|---|
を 0 以上の整数とする。はじめ、テープには連続する マスに が書かれ(入力 )、それ以外のマスはすべて である。ヘッドは入力の左端のマス( のときは任意の 1 マス)にあり、状態は である。
遷移関数を 1 回適用することを 1 ステップと数える( に入る遷移も 1 ステップに数える)。入力 に対して が停止するまでのステップ数を の式で求めよ。
この問題で使うもの
- チューリング機械の動作の追跡(説明と入口の問題)
この問題を解けるようになるまで(2 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
一覧で見る(前提が先)
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
左端の を消して右端まで行き、右端の を消して左端まで戻る、という「1 周」を単位に考える。1 周ごとに の個数がどう変わるかを調べる。
ヒント 2
1 周の始めに が 個()あるとき、その周のステップ数を で表すと になる。最後に残る の個数が 個か 個かで、終わり方とステップ数が違う。
ヒント 3
が偶数 なら周の長さは で最後に ステップ、 が奇数 なら で最後に ステップかかる。それぞれ和を計算して で書き直す。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
テープのマスに左から番号を付け、入力の はマス にあるとする。
1 周の動作. ある時点で、状態 、ヘッドがマス にあり、マス からマス までの マス()に が連続して並び、それ以外はすべて であるとする。この状況からの動作を調べる。
(i) のとき: が を読み、 に入って停止する。1 ステップ。
(ii) のとき:
- がマス の を に書き換え、右へ動いて になる: ステップ。
- はマス の の上を右へ進む: ステップ。マス で を読み、左へ動いて になる: ステップ。このときヘッドはマス にある。
(ii-a) のとき: なのでマス はすでに である。 が を読んで停止する: ステップ。合計 ステップで停止する。
(ii-b) のとき:
- がマス の を に書き換え、左へ動いて になる: ステップ。
- はマス の の上を左へ進む: ステップ。マス で を読み、右へ動いて になる: ステップ。
この 1 周のステップ数は
で、終わったときは状態 、ヘッドはマス にあり、 の列はマス からマス までの マスになっている。つまり同じ形の状況に、 が 減って戻る。
合計. 長さを で表すと である。
()のとき:
を代入すると 。
()のとき: 周の長さは で、そのあと の 3 ステップが続く。
を代入すると 。
どちらの場合も同じ式になるので、求めるステップ数は
である(確認: で ステップ。たとえば では 1 周 ステップのあと で ステップ)。
別解
テープの 1 が 個連続し、ヘッドがその左端にあって状態が の「局面」から、停止または次の局面に至るまでを調べる。
(i) : が を読み へ。1 ステップ。
(ii) : が を消して右へ(1)。 が を読み左へ (1)。 が(消した) を読み右へ (1)。計 3 ステップ。
(iii) :
- が左端の を消して右へ: 1 ステップ。
- が残り 個の 1 を右へ読み飛ばす: ステップ。
- が を読み、左へ : 1 ステップ。
- が右端の を消して左へ : 1 ステップ。
- が残り 個の 1 を左へ読み飛ばす: ステップ。
- が(左端を消した跡の) を読み右へ : 1 ステップ。
計 ステップで、1 が 個に減り、ヘッドは新しい左端で状態 に戻る( のときは 1 が 0 個で、ヘッドは空白の上)。
よって総ステップ数 は:
が偶数のとき、 の各回で 、最後に の 1 ステップ。 として
が奇数のとき、 の各回で 、最後に の 3 ステップ。 として
どちらも 。
検算: で 1、 で 3、 で 、 で 。式の値 と一致する。