1 / 35

計算の理論 II Turing 機械

計算の理論 II Turing 機械. 月曜4校時 大月美佳. 講義の前に. 補講について 今日と1/6は補講 レポートについて 今日帰りに大レポート(20点配点) 1/6に小レポート(10点配点) 試験 2/10に試験(40点配点). 今日の講義. 前回のおさらい Turing 機械の合成 小さなものを組み上げて複雑なものへ 残り: T, S, C, K n 帰納的関数を計算する Turing 機械の合成 合成の仕方と例 ミニテスト レポート. Turing 機械の作り方. Turing 機械を 合成 して作る 単純な Turing 機械

hollis
Download Presentation

計算の理論 II Turing 機械

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 計算の理論 IITuring機械 月曜4校時 大月美佳

  2. 講義の前に • 補講について • 今日と1/6は補講 • レポートについて • 今日帰りに大レポート(20点配点) • 1/6に小レポート(10点配点) • 試験 • 2/10に試験(40点配点)

  3. 今日の講義 • 前回のおさらい • Turing機械の合成 • 小さなものを組み上げて複雑なものへ • 残り:T, S, C, Kn • 帰納的関数を計算するTuring機械の合成 • 合成の仕方と例 • ミニテスト • レポート

  4. Turing機械の作り方 Turing機械を合成して作る • 単純なTuring機械 B, 1, r, l, <a> • 基本的なTuring機械を合成 R, L, R, T, S, C, Kn • 初期関数に対応するTuring機械を合成 Z(x), S(x), Uni(x1,…, xn) • 原始帰納的関数関数の操作I, II

  5. B 1 B B B B 有限 制御部 有限 制御部 Turing機械 B ヘッドが置かれてい ます目に空白記号Bを 書き込む。 B=({q0,qh}, {B, 1}, K, q0,{qh}) K= { q01BNqh,q0BBNqh } B B q0→qh q0→qh

  6. B 1 B B B B 有限 制御部 有限 制御部 Turing機械 1 ヘッドが置かれてい ます目に1を書き込む。 B=({q0,qh}, {B, 1}, K, q0,{qh}) K= { q011Nqh,q0B1Nqh } 1 1 q0→qh q0→qh

  7. B 1 B B B B 有限 制御部 有限 制御部 有限 制御部 有限 制御部 Turing機械 r ヘッドを1こま右へ移す。 B=({q0,qh}, {B, 1}, K, q0,{qh}) K= { q011Rqh,q0BBRqh } 1 B q0→qh q0→qh

  8. B 1 B B B B 有限 制御部 有限 制御部 有限 制御部 有限 制御部 Turing機械 l ヘッドを1こま左へ移す。 B=({q0,qh}, {B, 1}, K, q0,{qh}) K= { q011Lqh,q0BBLqh } 1 B q0→qh q0→qh

  9. B a B B b B 有限 制御部 有限 制御部 Turing機械 <a> 読み取られた記号がaで あるか否かを判定する。 aであればqhで停止し、 aでなければq1で停止する。 B=({q0, q1,qh}, {B, 1}, K, q0,{q1 , qh}) K= { q0aaNqh,q0bbNq1 } ここで、a≠b a b q0→qh q0→q1

  10. 合成 2つのTuring機械 M1=(Q1, Σ, K1, q01, F1), M2=(Q2, Σ, K2, q02, F2) Q1∩Q2 =Φと仮定できる。 (できない場合は状態の名前を付け替える) q∈F1 とq02 ∈Q2 を同一視して得られる 以下のTuring機械 M1ーq→M2 =(Q1∪Q2, Σ, K, q01, F1∪F2 -{q}) K=K1∪K2∪{qaaNq02 | a∈Σ} をqにおけるM1とM2 の結合と呼ぶ。

  11. p M M M1 q q M2 結合のバリエーション Turing機械M, M1, M2 (Q, Σ, K, q0, F-{q}) K=K∪{qaaNq0| a∈Σ} (Q∪Q1∪Q2, Σ, K, q0, F∪F1 ∪F2 -{p, q}) K=K∪K1∪K2∪{paaNq01, qbbNq02 | a, b∈Σ}

  12. q M1 M2 qh yes <a> <a> M1 M1 q1 no M2 M2 簡易表記 F1={q}であるとき、 単にM1M2と書ける。 Mが<a>のとき、 qh, q1をyes, noのように書ける。 M1 M2 → →

  13. r<B> no Turing機械 R ヘッドの右側にある最初の Bを探し、そこで止まる。 Turing機械rと<B>から合成。 r=({q0, qh}, {B, 1}, K1, q0, {qh}) K1={q0BBRqh, q011Rqh} <B>=({p0, p1, ph}, {B, 1}, K2, p0, {p1, ph}) K2={p0BBNph, p011Np1}

  14. Turing機械 R つづき R=(Q, {B, 1}, K, q0, F) Q={q0, qh}∪{p0, p1, ph}={q0, qh, p0, p1, ph} K=K1∪K2∪{qhBBNp0, qh11Np0, p111Nq0} = {q0BBRqh, q011Rqh, p0BBNph, p011Np1, qhBBNp0, qh11Np0, p111Nq0} F= {qh}∪ {p1, ph}-{qh}-{p1}={ph}

  15. l<B> no Turing機械 L ヘッドの左側にある最初の Bを探し、そこで止まる。 Turing機械lと<B>から合成。 l=({q0, qh}, {B, 1}, K1, q0, {qh}) K1={q0BBLqh, q011Lqh} <B>=({p0, p1, ph}, {B, 1}, K2, p0, {p1, ph}) K2={p0BBNph, p011Np1}

  16. Turing機械 L つづき R=(Q, {B, 1}, K, q0, F) Q={q0, qh}∪{p0, p1, ph}={q0, qh, p0, p1, ph} K=K1∪K2∪{qhBBNp0, qh11Np0, p111Nq0} = {q0BBLqh, q011Lqh, p0BBNph, p011Np1, qhBBNp0, qh11Np0, p111Nq0} F= {qh}∪ {p1, ph}-{qh}-{p1}={ph}

  17. yes Rr<B> l no Turing機械 R ヘッドの右側にある最初の 連続したBBを探し、 その左側のBの位置で止まる。 Turing機械Rとrと<B>から合成。 r=({q0, qh}, {B, 1}, K1, q0, {qh}) K1={q0BBRqh, q011Rqh} <B>=({p0, p1, ph}, {B, 1}, K2, p0, {p1, ph}) K2={p0BBNph, p011Np1} R=(Q, {B, 1}, K, q0, F)

  18. no rr<B> Bl1 yes l Turing機械 T 1の連続したかたまりを1こまづつ左へ移す。 ~BWB├T~WBB ここで、 ~:任意の記号 W:1の連続したかたまり (下線):ヘッドの位置 ~BWB=q0~BWB ~WBB=~WqhBB *

  19. no rr<B> Bl1 yes l Tの計算例 ~B11B ├* ~B11B (rr<B>) ├* ~1B1B (Bl1) ├* ~1B1B (rr<B>) ├* ~11BB (Bl1) ├* ~11BB (rr<B>) ├* ~11BB (l)

  20. no Ll<B> BT yes T Turing機械 S 1のかたまりW1, W2に対して以下の処理を 行う。 BW1BW2B├S BW2BB…B ここで、 W1, W2:1の連続したかたまり (下線):ヘッドの位置 *

  21. no Ll<B> BT yes T Sの計算例 B11B111B ├* B11B111B (Ll<B>) ├* B1B111BB (BT) ├* B1B111BB (Ll<B>) ├* BB111BBB (BT) ├* BB111BBB (Ll<B>) ├* B111BBBB (T)

  22. no Ll<B> rRS yes TLlT Turing機械 C 1のかたまりW1, W2, …, Wn, Wに対して 以下の処理を行う。 ~BBW1BW2B…BWnBWB ├c~WBB…B *

  23. no Ll<B> rRS yes TLlT Cの計算例 ~BB11B1B111B ├* ~BB11B1B111B (Ll<B>) ├* ~BB11B111BBB (rRS) ├* ~BB11B111BBB (Ll<B>) ├* ~BB111BBBBBB (rRS) ├* ~BB111BBBBBB (Ll<B>) ├* ~111BBBBBBBB (TLlT)

  24. Turing機械 Kn n個の1のかたまりW1, W2, …, Wnに対して 以下の処理を行う。 BW1BW2B…BWnB ├kn BW1BW2B…BWnBW1B * no Lnr<B> BRn+11Ln+11 yes Rn

  25. Knの計算例(n=2の場合) B11B111B ├* B11B111B (L2r<B>) ├* BB1B111B1 (BR31) ├* B11B111B1 (L31) ├* B11B111B1 (r<B>) ├* B1BB111B11 (BR31) ├* B11B111B11 (L31) ├* B11B111B11 (r<B>) ├* B11B111B11B (R2)

  26. 帰納的関数とTuring機械 帰納的関数を計算するTuring機械の合成 • 初期関数を計算するTuring機械 Z(x), S(x), Uni(x1, …, xn) • 合成関数とTuring機械 f(x1, …, xn)=g(h1(x1, …, xn), …, hr(x1, …, xn)) • 原始帰納で定義される関数とTuring機械 f(x1, …, xn)=g(x1, …,xn-1) (xn=0のとき) f(x1, …, xn)=h(x1, …, xn-1, xn-1, f(x1, …, xn-1)) (xn>0のとき)

  27. 初期関数のTuring機械 Z(x) →r1r BWB├* BWB1B S(x) →K11r BWB├* BWBW1B Uni (x1, …, xn) →Kn-i+1 BW1B…BWiB…BWnB├* BW1B…BWiB…BWnBWiB

  28. 合成関数とTuring機械 合成関数 f(x1, …, xn)=g(h1(x1, …, xn), …, hr(x1, …, xn)) →r1rKn+1nLnlBRH1Kn+1nH2…Kn+1nHrKr+(r-1)n Kr+(r-2)n…KrGC ここで、g, h1, …, hr を計算するTuring機械を それぞれG, H1, …, Hr とする。

  29. 原始帰納で定義される関数とTuring機械 原始帰納 f(x1, … , xn, 0)=g(x1, …,xn) f(x1, …, xn , y´)=h(x1, …, xn, y, f(x1, …, xn, y)) ここで、g, hを計算するTuring機械をそれぞれG, Hとする。 ↓ yes r1rK2Kn+3nLn+1lBRGKn+2lBl<B> C no yes rKn+4n+1 rKn+2nr1rKn+3HKn+4lBl<B> no

  30. 原始帰納関数の例 x+y (plus(x, y)) plus(x, 0)=g(x) plus(x, y)=h(x, y-1, plus(x, y-1)) g(x)=U11(x) h(x, y, z)=S(U33(x, y, z))

  31. g(x)とh(x, y, z) g(x)を計算するTuring機械をGとする。 g(x) = U11(x)であるから、 Gはn=1, i=1としてK1 h(x, y, z)を計算するTuring機械をHとする。 h(x, y, z) =S(U33(x, y, z))であるから、 U33(x, y, z)に対するTuring機械 K1と S(x)に対するTuring機械K11rを合成して、 r1rK43L3lBRK1K1K11rC

  32. 合成関数の計算 xByBzB ├* xByBzB1B (r1r) 引数保存 ├* xByBzB1BxByBzB (K43) 引数コピー ├* xByBzB1BxByBzB (L3) ├* xByBzBBBxByBzB (lBR) 分離 ├* xByBzBBBxByBzBzB (K1) H1適用 ├* xByBzBBBxByBzBzBzB (K1) H1結果の取り出し ├* xByBzBBBxByBzBzBzBz+1B (K11r) G適用 ├* xByBzBz+1B (C) 途中クリア

  33. yes r1rK2K4L2lBRGK3lBl<B> C no yes rK3r1rK4HK5lBl<B> rK52 no 求めるTuring機械は さっき定義したGとHを使用して、 n=1より、以下のように書ける。

  34. ミニテスト • テスト時間20分 • 誰かと交換採点 • 最後に回収

  35. 最後に • レポート • 1/6に回収 (遅れは基本的に認めない) • 1/6に小レポートがある • 補講 • 1/6は補講日なので来ること

More Related