LT3 ch4 turingmachine

10 184 0
LT3 ch4 turingmachine

Đang tải... (xem toàn văn)

Thông tin tài liệu

Ch ng Máy Turing  Máy Turing  nh ngh a má máy Turing  Ngôn ng th a nh n đ c và ngôn ng xác đ nh đ  Các hà hàm tí tính đ c b i má máy Turing  Các ngôn ng đ quy và li t kê đ quy  Lu n đ TuringTuring-Church  K thu t xây d ng má máy Turing  M r ng cá má máy Turing  Máy turing không đ n đ nh  Máy Turing v n n ng  Ôtômat n tí tính gi i n i  V n ph m c m ng c nh Lý thuy t tí ính toá án ttính to toán (Theory (Theory of of Computation) Computation) PGS.TS Phan Huy Khá Khánh khanhph@vnn.vn Ch ng Máy Turing Máy c 2/58 2/ 58 M đ u Mô t máy Turing đ n đ nh  Ôhh đ y xu ng không th đoán nh n NN anbncn dù có hai b nh l n tù tùy ý  th a nh n anbncn, ph i tì tìm ki m l p ôtômat khác, đó má má y Turing  S khác c n b n gi a má máy Turing ô đ y xu ng :  Máy Turing ch có m t b nh l n tù tùy ý  Máy Turing có có th đ c và ghi  Cách s d ng b nh tu ý, không h n ch nguyên lý danh sá sách đ y xu ng (Stack hay LIFO) Máy Turing đ n đ nh (Deterministic Turing Machine) g m : Alan Turung (1912 (19121954) : nhà nhà Toá Toán h c ng i Anh, ng i đ u tiên nghiên c u lý thuy t ôtômat n m 1936  M t b ng vào/ra (IO Tape) :  M t đ u đ c-ghi (Read/Write Head) di chuy n b ng  M t t p h p h u h n cá tr ng thá thái đó có :   M t tr ng thá thái đ u  M t t p h p cá cá c tr ng thá thái th a nh n (cu i) M t hà hàm chuy n ti p Y X a b a b b # # qk 3/58 3/ 58 4/58 4/ 58 C u hì hình ban đ u c a má máy Turing Mô t chi ti t  B ng vào/ra :  Là m t b nh vô h n đ c chia thành nhi u ô M i ô có có th ch a m t ký t a đó (Tape (Tape Alphabet)  B ng ch có c n trá trái, c n ph i quy   C u hì hình ban đ u c a má máy Turing đ  Tr ng thá thái hi n hà hành c a má máy Ký t đ c đ c v trí trí d i đ u đ c  Tr ng thá thái ti p theo c a má máy  Ký t s ghi lên b ng t i v trí trí ký t v a đ c đ Chi u di chuy n c a đ u đ c-ghi (qua trá trái, ph i hay đ ng yên)   Câu vào w  * n m  M i ô l i c a b ng ch a m t ký hi u đ c bi t, g i là ký hi u tr ng (Blank (Blank Symbol) c có có th kéo dà dài vô h n  Hàm chuy n ti p g m cá tham đ i : c mô t nh sau : mút trá trái nh t c a b ng    u đ c-ghi n m Máy ô đ u tiên c a b ng (mú (mút trá trái nh t) tr ng thá thái đ u tiên, gi s q0  Máy s n sà sàng th c hi n b ng cá cách đ c ký hi u v trí trí đ u đ c c b a a b a b b # # q0 5/58 5/ 58 6/58 6/ 58 Ho t đ ng c a má máy Turing Ho t đ ng c a má máy Turing đ    nh ngh a hì hình th c má máy Turing Máy Turing đ c mô t nh sau : đó : Ghi đè đè lên ký hi u v a đ c m t ký hi u khác  Di chuy n đ u đ c-ghi sang ph i, ho c sang trá trá i m t ô  Thay đ i tr ng thá thái X Y X X X # #  q0  Q là tr ng thá thái đ u   F  Q là t p h p cá tr ng thá thái th a nh n #   -  ký t tr ng   : hà hàm chuy n ti p  Máy th a nh n câu đ t t i tr ng thá thái th a nh n, gi s qj  F X  Q là t p h u h n cá tr ng thá thái  b ng ch ghi lên b ng    b ng ch vào   Y c mô t b i m t b b y : M = (Q, , , , q0, #, F) Máy đ c ký hi u n m d i đ u đ c Tu theo tr ng thá thái hi n hà hành, hàm chuy n ti p cho phé phép má máy th c hi n : qj 7/58 7/ 58 8/58 8/ 58 Mô t hàm chuy n ti p C u hì hình c a má máy Turing  Hàm chuy n ti p :  C u hì hình (hay c u hì hình) c a má máy Turing m t ph n t c a quan h : (q, 1, 2)  Q**  : Q Q  QM M Trong đó : g m cá ph n t (q, a) = (q’ (q’, x, x, m), m), đó : q, q’ q’  Q ; a  ; x; m  M = { L, R } L ch đ nh d ch đ u đ c-ghi sang trá trái (Left)  q  Q : tr ng thá thái hi n hà hành c a má má y  1 : ph n câu b ng phí phía tr  2 : Ph n câu b ng t v trí trí đ u đ c-ghi đ n h t câu (ký t cu i cù khác ký t tr ng #) R ch đ nh d ch đ u đ c-ghi sang ph i (Right)  Có th vi t g n m i ph n t c a: 1 c v trí trí đ u đ c-ghi 2 ho c (q, a, x, m, q’ q’) b ho c qa qamxq’ mxq’ a a b a b b # # q 9/58 9/ 58 Chuy n ti p m t b cC Chuy n ti p m t b C’  Cho c u hì hình C = (q, 1, 2 ) và C’ = (q’ (q’, ’1, ’2) tr Gi s 2 = b b’2  Chuy n ti p m t b  Tr ng h p 2 = , l y b = # cC C’ đ c đ nh ngh a nh sau : ng h p : N u  (q, b) = (q’ (q’, b’ b’, R), ta có có : (q, 1, b b’2) (q’ (q’, 1b’, ’2) b a b b a b b #  Chuy n ti p m t b 1 b a b’ b a b b # v i ’2 = ab’ ab’3 ’2 3 q 11/58 11/ 58 c đ nh ngh a nh sau : ’1 q’ C’ đ (q’ (q’, ’1, ab’ ab’3) b b a b a b b # q cC 2 ’1 C’ ng h p : N u  (q, b) = (q’ (q’, b’ b’, L), ta có có : (q, ’1a, 2 ) ’2 ’1 ’2 cC  Cho c u hì hình C = (q, 1, 2 ) và C’ = (q’ (q’, ’1, ’2) Gi s 1 = ’1a 1   2 = b tr ng h p 2 = , l y b = # b3  Tr v i ’1 = 1b’ 2 1 10/58 10/ 58 b b 3 a b’ a b b # q’ 12/58 12/ 58 Chuy n ti p nhi u b Máy Turing đoán nh n câu c a ngôn ng c  Cho c u hì hình C = (q, 1, 2 ) và C’ = (q’ (q’, ’1, ’2)  T ng t ôhh, ta nói chuy n ti p nhi u b  Máy Turing đoán nh n câu c a m t ngôn ng nh là ôtômat h u h n xé xét c  Cho w   : C * C’ n u: k  và c u hì hình trung gian C0, C1, , Ck cho :  C  C0    Câu w đ c m t má máy Turing M đoán nh n n u : (q0, , w) * (qj, , , 2) v i , , 2  * C’  Ck Ci Ci+1 v i  i  k  Câu w đ c m t má máy Turing th a nh n n u : (q0, , w) * (qj, , , 2) v i , , 2  * và qj  F  M t ngôn ng L đ L = L(M), n u : c th a nh n b i m t má máy Turing M, L(M) = { w   (q (q0, , w) * (qj, , , 2) v i qj  F } 13/58 13/ 58 14/58 14/ 58 Bi u di n đ th Ví d  Cho má máy Turing M  (Q, , , , q0, B, F) v i :  Q   q0, q1, q2, q3, q4     { a, b, X, Y, # },   { a, b } F  { q4}   đ c cho b i b ng d i (d u " "" ch r ng hà hàm chuy n ti p không đ q0 q1 q2 q3 q4 b X Y # q0 (q1, X, R)   (q3, Y, R)  q1 (q1, a, R) (q2, Y, L)  (q1, Y, R)  q2 (q1, a, L)  (q0, X, R) (q2, Y, L)  # R)  R)  L)  R) (q4, #, R)  VV tt qua qua ph ph ii áánh nh dd uu con aa trá nh tr trái nh tt c đ nh ngh a) a a b X Y (q1, X, R)   (q3, Y, (q1, a, R) (q2, Y, L)  (q1, Y, (q1, a, L)  (q0, X, R) (q2, Y,    (q3, Y,     X/X, R q0 q0 Y/Y, R a/X, R q1 q1    (q3, Y, R) (q4, #, R) q4      Y/Y, R q3 q3 Y/Y, R q2 q2 a/a, L a/a, R Y/Y, R q3 b/Y, L #/#, R q4 q4 15/58 15/ 58 16/58 16/ 58 Máy Turing đoán nh n câu a2b2  Các chuy n ti p đoán nh n câu aabb l n l Máy Turing đoán nh n câu a3b3 t nh sau :  dãy cá chuy n ti p t câu và o aaabbb đ c cho nh sau :  q0aabb# q0XaYb# q0XXYY#  q0aaabbb# q2XaaYbb# q2XXXYYY#  q1Xabb# q1Xabb# q1XXYb# q1XXYb# q3XXYY# q3XXYY##   q1Xaabbb# q1Xaabbb# q0XaaYbb# q0XXXYYY# q3XXXYYY# q2XaYb# q2XaYb# q2XXYY# q2XXYY# q4XXYY## th a nh n  q1Xaabbb# q1XXXYYb# q3XXXYYY#   q2XaaYbb# q2XaaYbb# q2XXXYYY# q2XXXYYY# q3XXXYYY# q4XXXYYY##  th a nh n !    17/58 17/ 58 18/58 18/ 58 Ví d nh ngh a  Máy Turing th a nh n ngôn ng chí quy aa* + b(a+b)*  Máy Turing đoán nh n m t câu w th c hi n (x lý) m t dãy c c đ i cá c u hì hình : (q0, , w) = C0 a|a, R q0 y  y, R q3 q4   , L y  y, R q0 q1 y  y, R a  a, R a  x, R Ck = (qk, k, k) C1 ngh a là cho : #|#, L q1 Dãy t k t thú thúc t i m t c u hì hình có có ch a tr ng thá thái k t thú thúc th a nh n câu w ho c  y  y, L a  a, L b  y, L Dãy t k t thú thúc t i m t c u hì hình không ch a tr ng thá thái k t thú thúc mà mà t đó, không c u hì hình nà có có th chuy n đ n : máy b hóc ho c  q2 x  x, R  Dãy c u hình là vô h n, má máy không bao gi d ng 19/58 19/ 58 Tính xá xác đ nh đ  M t ngôn ng L đ   20/58 20/ 58 Hình th c hó hóa tí tính xá xác đ nh đ c (Deterministic) c xá xác đ nh b i m t má máy Turing M n u : M th a nh n L M có x lý vô h n  Nh n xé xét :  T n t i thu t toá toán cho phé phép má máy Turing đoán nh n m t ngôn ng , hay ki m tra tí tính xá xác đ nh đ c  i v i cá ôtômá ôtômát h u h n đ n đ nh, u đó hi n nhiên  i v i m t ôtômá ôtômát h u h n không đ n đ nh, không ph i luôn t n t i thu t toá toán, : T i m i giai đo n đoán nh n, không th ch chuy n ti p ti p theo s đ c ch n m t cá cách t ng minh  Tính xá xác đ nh đ c c a má máy Turing có có th hi u nh sau :  V i m i ph n t (q, a)  QG, t n t i nhi u nh t m t quy t c (q, a)  (q’ (q’, a’ a’, m), vi t g n qama’ qama’q’, v i m  M={L, R}  Hàm b ph n Q QG  QGM có có th tách thành ba hà hàm : nc : QG  G  Hàm “ký t m i”  Hàm “di chuy n đ u đ c” mh : QG  M  Hàm “tr ng thá thái m i” hay nc(q, a) = a’ a’ hay mh(q, a) =m ns : QG  Q hay ns(q, a) = q’ q’ 21/58 21/ 58 22/58 22/ 58 Máy Turing tí tính hà hàm Notation of Function  Máy Turing có có th tính hà hàm theo cá cách hi u nh sau :  Tham đ i c a hà hàm là câu vào w  n m b ng  Giá Giá tr tr v c a hà hàm là câu  đ c ghi b ng sau má máy Turing k t thú thúc vi c x lý (đ c h t w) A function f(w) has: w  Result Region: S Domain: D wD  Máy Turing tí tính m t hà hàm f :    n u :  c f (w ) f (w)  S V i m t câu vào w w b t k , má máy luôn d ng m t c u hì hình mà mà f(w) có có m t b ng  Hàm f đgl tí tính đ c b i m t má máy Turing n u t n t i m t máy Turing tí tính đ c nó A function may have many parameters: Example: Addition function f(x, y) = x + y 23/58 23/ 58 24/58 24/ 58 Definition: Data representation f A function is computable if there is a Turing Machine M such that: Integer Domain Decimal: Binary: 101 Unary: 11111 Initial configuration  Final configuration  w  q f final state q0 initial state We prefer unary representation: easier to manipulate with TMs For all f (w)  w D Domain 25/58 25/ 58 26/58 26/ 58 In other words: Example f A function is computable if there is a Turing Machine M such that:  q0 w q f f ( w) Initial Configuration The function x, y w D are integers Turing Machine: Final Configuration For all f ( x, y )  x  y is computable Domain Input string: x0 y unary Output string: xy unary 27/58 27/ 58 28/58 28/ 58 Computing Function y x Input representation x Start  1  y 1   Start  1  1   q0 initial state initial state q0 x y The is the delimiter that separates the two numbers 29/58 29/ 58 Finish  1  q f final state 1  30/58 30/ 58 Computing Function Turing machine for function f ( x, y )  x  y The helps when we use the result for other operations x y  1 Finish 1    1, R  1, R  1, L q0  1, R q1   , L q2 1 0, L q3   , R q f final state q4 31/58 31/ 58 Execution Example (1) Execution Example (2) x  11 (2) y  11 (2) Time Time  1, R Final Result x y  1 1   1 1  q0  1 1  q0 y x  1, R  1, L q0  1, R q1   , L q2 1 0, L q3   , R q4 q4 33/58 33/ 58 Execution Example (3) Time 34/58 34/ 58 Execution Example (4)  1 1  Time  1 1  q0  1, R 32/58 32/ 58 q0  1, R  1, L q0  1, R q1   , L q2 1 0, L q3  1, R  1, R  1, L q0  1, R q1   , L q2 1 0, L q3   , R q4 35/58 35/ 58   , R q4 36/58 36/ 58 Execution Example (5) Time Execution Example (6)  1 1   1 1  Time q1  1, R q1  1, R  1, L q0  1, R q1   , L q2 1 0, L q3  1, R  1, R  1, L q0  1, R q1   , L q2 1 0, L q3   , R q4   , R q4 37/58 37/ 58 Execution Example (7) Time Execution Example (8)  1 1   1 1  Time q1  1, R  1, R q2  1, L q0  1, R q1   , L q2 1 0, L q3  1, R  1, R  1, L q0  1, R q1   , L q2 1 0, L q3   , R q4   , R q4 39/58 39/ 58 Execution Example (9) Time 40/58 40/ 58 Execution Example (10)  1 1  Time  1 1  q3 q3  1, R 38/58 38/ 58  1, R  1, L q0  1, R q1   , L q2 1 0, L q3  1, R  1, R  1, L q0  1, R q1   , L q2 1 0, L q3   , R q4 41/58 41/ 58   , R q4 42/58 42/ 58 Execution Example (11) Execution Example (12)  1 1  Time  1 1  Time 10 q3  1, R q3  1, R  1, L q0  1, R q1   , L q2 1 0, L q3  1, R  1, R  1, L q0  1, R q1   , L q2 1 0, L q3   , R q4   , R q4 43/58 43/ 58 Execution Example (13) Time 11 Execution Example (14)  1 1  Time 12  1 1  q4 q3  1, R  1, R  1, L q0  1, R q1   , L q2 1 0, L q3  1, R  1, R  1, L q0  1, R q1   , L q2 1 0, L q3   , R q4 Another Example: f(x) = 2x The function f ( x)  x x   , R HALT & accept 45/58 45/ 58 (1) Another Example: f(x) = 2x Start is integer Output string: q4 46/58 46/ 58 (2) x is computable  1   q0 initial state Turing Machine: Input string: 44/58 44/ 58 x unary xx unary 2x Finish  1  1  q f final state 47/58 47/ 58 48/58 48/ 58 TM Pseudocode for f(x) = 2x Example TM for f(x) = 2x Start  • Replace every with $ Finish   q0 • Repeat:  1, L  1, R q0   , L q1 $  1, R • Go to right end, insert   , R q3 Until no more $ remain  q3  $, R • Find rightmost $, replace it with 1 1 q2   1, L 49/58 49/ 58 50/58 50/ 58 Another Example TM compute succ(n) T = ; S = { 0, 1, # } ; Q = {q1, q2, q3} P = { q1,  1, R, q1, q2,  1, L, q3, q1,  0, R, q1, q2,  L, q2, q1, #  #, L, q2, q2, #  1, L, q3 } 1|0, L 1|1, R 0|1, L #|#, R q1 q2 The function is computable f ( x, y )  if xy if x y Turing Machine for x0 y Input: q3 Output: or #|1, L 0|0, R 51/58 51/ 58 Các ngôn ng đ quy và li t kê đ quy Turing Machine Pseudocode:  Các ngôn ng xác đ nh đ đ quy (Recusive) • Repeat Match a from Until all of x or x with a from y y 52/58 52/ 58 cg i  Các ngôn ng đ c th a nh n b i m t má máy Turing g i là li t kê đ quy (Recursively Enumerable) is matched  T đó ta có có đ nh ngh a sau :  • If a from x is not matched erase tape, write else erase tape, write c b i m t má máy Turing đ ( x  y)  M b M b t ngôn ng đ quy n u nó đ c xá xác đ nh i m t má máy Turing t ngôn ng li t kê đ quy n u nó đ c th a nh n i m t má máy Turing ( x  y) 53/58 53/ 58 54/58 54/ 58 Lu n đ TuringTuring-Church Nh n xé xét lu n đ TuringTuring-Church  Lu n đ TuringTuring-Church đóng vai trò quan tr ng lý thuy t tí tính toá toán (Computability) Lu n đ TuringTuring-Church phá phát bi u nh sau :  Các ngôn ng đ c nh n bi t b i m t thu t toá toán là ngôn ng xác đ nh đ c b i m t  máy Turing Ng i ta có có th phá phát bi u lu n đ Turing Church theo ngh a c a phé phép tí tính hà hàm : Alonzo Church  Các hà hàm tí tính đ c b i m t thu t toá toán là (1903(1903-1995) : nhà nhà Toá Toán h c ng i M hàm tí tính đ c b i m t má máy Turing nghiên c u phé phép tính hà hàm (Functional Calculus) và tính tính đ c (Computability)   Lu n đ đ a l p lu n r ng m t s ngôn ng không th đ c đoán nh n b i m t thu t toá toán : th c ch t là hình th c hóa khái ni m tí tính toá toán Lu n đ TuringTuring-Church không ph i là m t đ nh lý, nên không th ch ng minh đ c Lu n đ TuringTuring-Church áp d ng mô hì hình lý thuy t là máy Turing đ c đ nh ngh a ch t ch đ mô hì hình hoá hoá quan ni m v thu t toá toán là khái ni m không đ c xá xác đ nh rõ rà ràng  D dàng mô ph ng s ho t đ ng c a m t má máy Turing nh :   M t bú bút chì chì t gi y M t ch ng trì trình ch y m t má máy tí tính c th 55/58 55/ 58 Các má máy Turing v n n ng Xây d ng má máy Turing  M t v n đ thú thú v li u có có th có m t má máy Turing mô ph ng đ c b t k máy Turing nà ?  M t s k thu t xây d ng má máy Turing  Ghi nh b u n h u h n M r ng b ng vào vô h n v c hai phí phía Máy Turing có có nhi u b ng  Máy Turing có có b nh truy c p tr c ti p   56/58 56/ 58  M t cá cách t ng minh, ta mu n cung c p cho m t má máy Turing M s mô t c a m t má má y Turing M’ M’ b t k đó cho v i m t câu và o w nà o đó, má máy Turing M’ M’ có th mô ph ng s đoán nh n c a M w    M t má máy Turing nh v y s m t s nh i l i cá má máy Turing khác, và đ c g i là máy Turing v n n ng (Universal Turing Machine) 57/58 57/ 58 58/58 58/ 58 10

Ngày đăng: 22/12/2016, 12:44

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan