Bài giảng toán giải tích chương 3 automata hữu hạn và biểu thức chính quy

34 756 0
Bài giảng toán giải tích   chương 3  automata hữu hạn và biểu thức chính quy

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chương 3: Automata hữu hạn & Biểu thức quy Nội dung: • • • • Khái niệm DFA & NFA Sự tương đương DFA & NFA Biểu thức quy Các tính chất tập quy Định nghĩa ôtômát (automata) Định nghĩa: máy trừu tượng có cấu hoạt động đơn giản có khả đoán nhận ngôn ngữ • Con người phải lập trình sẵn cho máy ‘lộ trình’ để thực INPUT Bộ điều khiển OUTPUT BỘ NHỚ Phân loại automata Automata đơn định (Deterministic Automata): • Mỗi bước di chuyển xác định cấu hình (hàm chuyển automata đơn trị) Automata không đơn định (Non-deterministic Automata): • Tại bước di chuyển, có vài khả để lựa chọn (hàm chuyển automata đa trị) Phân loại FA DFA Deterministic Finite Automata FA (Finite Automata) NFA Nondeterministic Finite Automata Biểu thức quy Automata hữu hạn đơn định (DFA) Ví dụ: c Input Start 1 0 1 q1 q0 0 a Bộ điều khiển b Trạng thái bắt đầu q2 d M=(Q, Σ, δ, q0, F) Trạng thái kết thúc q3 x Phép chuyển nhãn x Q : tập hữu hạn trạng thái (p, q…) Σ : chữ nhập (a, b … ; w, x, y …) δ : hàm chuyển, ánh xạ: Q x Σ → Q q0  Q : trạng thái bắt đầu F  Q : tập trạng thái kết thúc Mở rộng hàm chuyển trạng thái δ(q, ) = q δ(q, wa) = δ( δ(q,w), a) với  w, a Ngôn ngữ chấp nhận: L(M) = { x | δ( q0, x )  F } Ví dụ: chuỗi nhập w=110101 • • • • • • Ngôn ngữ quy δ(q0, 1) = q1 δ(q0, 11) = δ(q1, 1) = q0 δ(q0, 110) = δ(q1, 10) = δ(q0, 0) = q2 δ(q0, 1101) = δ(q1, 101) = δ(q0, 01) = δ(q2, 1) = q3 δ(q0, 11010) = … = δ(q3, 0) = q1 δ(q0, 110101) = … = δ(q1, 1) = q0  F Giải thuật hình thức • Mục đích: kiểm tra chuỗi nhập x có thuộc ngôn ngữ L(M) chấp nhận automata M • Input: chuỗi nhập x$ • Output: câu trả lời ‘YES’ ‘NO’ • Giải thuật: q := q0 ; c := nextchar ; {c ký hiệu nhập đọc tiếp theo} While c $ begin q := δ(q, c); c := nextchar ; end If (q in F) then write("YES") else write("NO"); Automata hữu hạn không đơn định (NFA) • Ví dụ: cho automata M (hình vẽ) xét chuỗi nhập 01001 Start q0 0 q3 q4 q1 q0 q0 0 q0 q3 q2 q0 q1 q0 q3 q0 q3 q1 q4 Nhận xét: • Ứng với trạng thái ký tự nhập, có không, nhiều phép chuyển trạng thái • DFA trường hợp đặc biệt NFA q4 Định nghĩa NFA M=(Q, Σ, δ, q0, F) Q : tập hữu hạn trạng thái Σ : chữ nhập δ : hàm chuyển ánh xạ Q x Σ → 2Q q0  Q : trạng thái bắt đầu F  Q : tập trạng thái kết thúc Chú ý: khái niệm δ(q, a) tập hợp tất trạng thái p cho có phép chuyển từ trạng thái q nhãn a Hàm chuyển trạng thái mở rộng: • δ(q, ) = {q} • δ(q, wa) = { p | có trạng thái r δ(q, w) mà pδ(r, a) } = δ( δ(q,w), a) • δ(P, w) = qP δ(q, w) với P  Q Ví dụ NFA Ví dụ: xét chuỗi nhập w=01001 NFA cho • M( {q0, q1, q2, q3, q4}, {0, 1}, δ, q0, {q2, q4} ) δ Input Trạng thái q0 {q0,q3} {q0,q1} q1 Ø {q2} q2 {q2} {q2} q3 {q4} Ø q4 {q4} {q4} • δ(q0, 0) = {q0,q3} • δ(q0, 01) = δ( δ(q0, 0), 1) = δ({q0, q3},1) = δ(q0, 1)  δ(q3, 1) = {q0, q1} • δ(q0, 010) = {q0, q3} • δ(q0, 0100) = {q0, q3, q4} • δ(q0, 01001) = {q0, q1, q4} Do q4  F nên w=01001  L(M) 10 Giải thuật xây dựng hàm chuyển δ’ Giải thuật: T := -CLOSURE (q0) ; T chưa đánh dấu ; Thêm T vào tập trạng thái Q’ DFA ; While Có trạng thái T DFA chưa đánh dấu Begin Đánh dấu T; { xét trạng thái T} For Với ký hiệu nhập a begin U:= -closure((T, a)) If U tập trạng thái Q’ DFA then begin Thêm U vào tập trạng thái Q’ DFA ; Trạng thái U chưa đánh dấu; [T, a] := U;{[T, a] phần tử bảng chuyển DFA} end; end; End; 20 Xây dựng DFA từ NFA() ● ● ● ● ● ● ● ● ● ● ● -CLOSURE(q0) = {0, 1, 2, 4, 7} → q0’ = [0, 1, 2, 4, 7] = A -CLOSURE(δ(A, a)) = -CLOSURE({3, 8}) = {1, 2, 3, 4, 6, 7, 8} → B -CLOSURE(δ(A, b)) = -CLOSURE({5}) = {1, 2, 4, 5, 6, 7} →C -CLOSURE(δ(B, a)) = -CLOSURE({3, 8}) → B -CLOSURE(δ(B, b)) = -CLOSURE({5, 9}) = {1, 2, 4, 5, 6, 7, 9} → D -CLOSURE(δ(C, a)) = -CLOSURE({3, 8}) → B -CLOSURE(δ(C, b)) = -CLOSURE({5}) = → C -CLOSURE(δ(D, a)) = -CLOSURE({3, 8}) → B -CLOSURE(δ(D, b)) = -CLOSURE({5,10}) = {1, 2, 4, 5, 6, 7, 10} → E -CLOSURE(δ(E, a)) = -CLOSURE({3, 8}) → B 21 -CLOSURE(δ(E, b)) = -CLOSURE({5}) = → C Xây dựng DFA từ NFA() • Bảng hàm chuyển Trạng thái Ký hiệu nhập a b A B C B B D C B C D B E E B C b C b Start A a a B a b b D a b E a • Ký hiệu bắt đầu: q0’ = A (↔ -CLOSURE(q0) ) • Tập trạng thái kết thúc: F’ = {E} (vì E có chứa trạng thái 10  F) 22 Biểu thức quy (RE) Vài ví dụ: • 00 : biểu thức quy biểu diễn tập {00} • (0+1)* : tập hợp tất chuỗi số số 1, kể chuỗi rỗng = {, 0, 1, 00, 01, 10, 11, 010, 011, 0010 } • (0+1)*011 : ký hiệu cho tất chuỗi 0, tận 011 = {011, 0011, 1011, 00011, 11011, } 23 Biểu thức quy (RE) • (0+1)*00(0+1)* : tập hợp tất chuỗi 0,1 có hai số liên tiếp = {00, 000, 100, 0000, 0001, 1000, 1001, 011001, } • (0+ )(1+10)* : tất chuỗi hai số liên tiếp = {, 0, 01, 010, 1, 10, 01010, 0111, } • 0*1*2* : {, 0, 1, 2, 01, 02, 12, 012, 0012, 0112, } • 00*11*22* : tất chuỗi tập 0*1*2* với ký hiệu 0, ↔ viết gọn thành + + 2+ 24 Biểu thức quy (RE) Định nghĩa: cho Σ chữ BTCQ Σ tập hợp mà chúng mô tả định nghĩa đệ quy sau: ● ● ● ●  BTCQ ký hiệu cho tập rỗng  BTCQ ký hiệu cho tập {} a  Σ, a BTCQ ký hiệu cho tập {a} Nếu r s BTCQ ký hiệu cho tập hợp R S (r + s), (rs) ( r*) BTCQ ký hiệu cho tập hợp R  S, RS R* tương ứng Thứ tự ưu tiên: Phép bao đóng > Phép nối kết > Phép hợp Ví dụ: • Biểu thức ((0(1*)) + 1) viết 01*+1 25 Tính chất đại số BTCQ Phép hợp: • • • • r+=+r=r r+r=r r+s=s+r (r + s) + t = r + (s + t) = r + s + t Phép bao đóng: • • • • • • • • * =  * =  r*r* = r* (r*)* = r* r* =  + r + r2 + … + rk + … r* =  + r+ ( + r)+ = ( + r)* = r* r*r = r r* = r+ Phép nối kết: • • • • r = r = r r = r =  (r + s) t = rt + st r (s + t) = rs + rt Tổng hợp: • (r* + s*)* = (r*s*)* = (r + s)* • (rs)*r = r(sr)* • (r*s)* r* = (r + s)* 26 Sự tương đương NFA BTCQ Định lý 3: r BTCQ tồn NFA với -dịch chuyển chấp nhận L(r) Chứng minh: quy nạp theo số phép toán • Xét r phép toán Start q0 r=  Start q0 qf Start q0 r= Các NFA cho kết hợp đơn a qf r=a • Xét r có i phép toán: r = r1 + r2, r = r1r2 r = r1*  Xây dựng NFA M1 = (Q1, Σ1, δ1, q1, {f1}) M2 = (Q2, Σ2, δ2, q2, {f2}) cho L(M1) = L(r1) L(M2) = L(r2)  Xây dựng NFA M sau: 27 Sự tương đương NFA BTCQ  • r = r1 + r2 Start • r = r1r2 M1 f1  q0 f0  Start q1 q1 M1 q2 f1 M2   f2 q2 M2 f2  • r = r1* Start q0  q1 M1 f1  f0  28 Sự tương đương NFA BTCQ Ví dụ: xây dựng NFA chấp nhận BTCQ r = 01* + • r có dạng: r = r1 + r2 với r1 = 01* r2 = • r1 có dạng r1 = r3r4 với r3 = r4 = 1* • r4 có dạng r4 = r5* với r5 =  Start q1 Start q2 r2 Start q3 q4 q5 Start q1 q7   q5 q2 q3 q4  q7  q6  q8    q8   r = r1 + r2 = 01* + q9  q4  q6  r1 = r3r4 = 01* q6 r5 Start q3 q5 r4 = r5* = 1* r3 Start  q7 q5 q6   q8  q10 29 Sự tương đương DFA BTCQ Định lý 4: Nếu L chấp nhận DFA, L ký hiệu BTCQ Chứng minh: • L chấp nhận DFA M({q1, q2, , qn}, Σ, δ, q1, F) k • Đặt R kij = {x | δ(qi, x) = qj δ(qi, y) = ql (y  x) l ≤ k} (hay R ij tập hợp tất chuỗi làm cho automata từ trạng thái i đến trạng thái j mà không ngang qua trạng thái lớn k) • Định nghĩa đệ quy Rkij : Rkij = Rk-1ik(Rk-1kk)*Rk-1kj  Rk-1ij R0ij = {a | δ(qi, a) = qj}, i ≠ j {a | δ(qi, a) = qj}  {}, i = j 30 Sự tương đương DFA BTCQ • Ta chứng minh (quy nạp theo k) bổ đề sau: với Rkij tồn biểu thức quy ký hiệu cho Rkij  k = 0: R0ij tập hữu hạn chuỗi ký hiệu   Giả sử ta có bổ đề với k-1, tức tồn BTCQ rk-1lm cho L(rk-1lm) = Rk-1lm  Vậy Rkij ta chọn BTCQ rkij = (rk-1ik)(rk-1kk)*(rk-1kj) + rk-1ij → bổ đề chứng minh Ta có nhận xét: ● L(M) = qj F Rn1j Vậy L ký hiệu BTCQ ● r = rn1j1 + rn1j2 + … + rn1jp với F = {qj1, qj2, …, qjp} 31 Sự tương đương DFA BTCQ Ví dụ: viết BTCQ cho DFA Start q1 q2 q3 0, Ta cần viết biểu thức: r = r312 + r313 Ta có: • • r312 = r213(r233)*r232 + r212 r313 = r213(r233)*r233 + r213 32 Sự tương đương DFA BTCQ k=0 k=1 k=2 rk11   (00)* rk12 0 0(00)* rk13 1 0*1 rk21 0 0(00)* rk22   + 00 (00)* rk23 1 + 01 0*1 rk31   (0 + 1)(00)*0 rk32 0+1 0+1 (0 + 1)(00)* rk33    + (0 + 1)0*1 Thay vào rút gọn, ta có: r = 0*1((0 + 1)0*1)* ( + (0 + 1)(00)*) + 0(00)* 33 Mối liên hệ FA BTCQ Sơ đồ liên hệ: DFA Định lý Định lý RE NFA Định lý Định lý NFA 34 [...]... cho DFA 1 Start q1 1 0 q2 0 q3 0, 1 Ta cần viết biểu thức: r = r312 + r3 13 Ta có: • • r312 = r2 13( r 233 )*r 232 + r212 r3 13 = r2 13( r 233 )*r 233 + r2 13 32 Sự tương đương giữa DFA và BTCQ k=0 k=1 k=2 rk11   (00)* rk12 0 0 0(00)* rk 13 1 1 0*1 rk21 0 0 0(00)* rk22   + 00 (00)* rk 23 1 1 + 01 0*1 rk31   (0 + 1)(00)*0 rk32 0+1 0+1 (0 + 1)(00)* rk 33    + (0 + 1)0*1 Thay vào và rút gọn, ta có: r = 0*1((0... (vì trong E có chứa trạng thái 10  F) 22 Biểu thức chính quy (RE) Vài ví dụ: • 00 : là biểu thức chính quy biểu diễn tập {00} • (0+1)* : tập hợp tất cả các chuỗi số 0 và số 1, kể cả chuỗi rỗng = {, 0, 1, 00, 01, 10, 11, 010, 011, 0010 } • (0+1)*011 : ký hiệu cho tất cả các chuỗi 0, 1 tận cùng bởi 011 = {011, 0011, 1011, 00011, 11011, } 23 Biểu thức chính quy (RE) • (0+1)*00(0+1)* : tập hợp tất cả... các chuỗi làm cho automata đi từ trạng thái i đến trạng thái j mà không đi ngang qua trạng thái nào lớn hơn k) • Định nghĩa đệ quy của Rkij : Rkij = Rk-1ik(Rk-1kk)*Rk-1kj  Rk-1ij R0ij = {a | δ(qi, a) = qj}, nếu i ≠ j {a | δ(qi, a) = qj}  {}, nếu i = j 30 Sự tương đương giữa DFA và BTCQ • Ta sẽ chứng minh (quy nạp theo k) bổ đề sau: với mọi Rkij đều tồn tại một biểu thức chính quy ký hiệu cho Rkij... ít nhất một ký hiệu 0, 1 và 2 ↔ viết gọn thành 0 + 1 + 2+ 24 Biểu thức chính quy (RE) Định nghĩa: cho Σ là một bộ chữ cái BTCQ trên Σ là các tập hợp mà chúng mô tả được định nghĩa đệ quy như sau: ● ● ● ●  là BTCQ ký hiệu cho tập rỗng  là BTCQ ký hiệu cho tập {} a  Σ, a là BTCQ ký hiệu cho tập {a} Nếu r và s là các BTCQ ký hiệu cho các tập hợp R và S thì (r + s), (rs) và ( r*) là các BTCQ ký hiệu... giữa NFA và BTCQ Định lý 3: nếu r là BTCQ thì tồn tại một NFA với -dịch chuyển chấp nhận L(r) Chứng minh: quy nạp theo số phép toán • Xét r không có phép toán nào Start q0 r=  Start q0 qf Start q0 r= Các NFA cho các kết hợp đơn a qf r=a • Xét r có i phép toán: r = r1 + r2, r = r1r2 hoặc r = r1*  Xây dựng NFA M1 = (Q1, Σ1, δ1, q1, {f1}) và M2 = (Q2, Σ2, δ2, q2, {f2}) sao cho L(M1) = L(r1) và L(M2)... giữa NFA và BTCQ  • r = r1 + r2 Start • r = r1r2 M1 f1  q0 f0  Start q1 q1 M1 q2 f1 M2   f2 q2 M2 f2  • r = r1* Start q0  q1 M1 f1  f0  28 Sự tương đương giữa NFA và BTCQ Ví dụ: xây dựng NFA chấp nhận BTCQ r = 01* + 1 • r có dạng: r = r1 + r2 với r1 = 01* và r2 = 1 • r1 có dạng r1 = r3r4 với r3 = 0 và r4 = 1* • r4 có dạng r4 = r5* với r5 = 1  Start 1 q1 Start q2 r2 Start 0 q3 q4 q5 Start... 1  q5 q2 q3 0 q4  q7  1 q6  q8    q8   r = r1 + r2 = 01* + 1 q9  q4  q6  r1 = r3r4 = 01* q6 r5 Start 0 q3 1 q5 r4 = r5* = 1* r3 Start  q7 q5 1 q6   q8  q10 29 Sự tương đương giữa DFA và BTCQ Định lý 4: Nếu L được chấp nhận bởi một DFA, thì L được ký hiệu bởi một BTCQ Chứng minh: • L được chấp nhận bởi DFA M({q1, q2, , qn}, Σ, δ, q1, F) k • Đặt R kij = {x | δ(qi, x) = qj và nếu δ(qi,... rk31   (0 + 1)(00)*0 rk32 0+1 0+1 (0 + 1)(00)* rk 33    + (0 + 1)0*1 Thay vào và rút gọn, ta có: r = 0*1((0 + 1)0*1)* ( + (0 + 1)(00)*) + 0(00)* 33 Mối liên hệ giữa FA và BTCQ Sơ đồ liên hệ: DFA Định lý 1 Định lý 4 RE NFA Định lý 2 Định lý 3 NFA 34 ... 4, 5, 6, 7} →C -CLOSURE(δ(B, a)) = -CLOSURE( {3, 8}) → B -CLOSURE(δ(B, b)) = -CLOSURE({5, 9}) = {1, 2, 4, 5, 6, 7, 9} → D -CLOSURE(δ(C, a)) = -CLOSURE( {3, 8}) → B -CLOSURE(δ(C, b)) = -CLOSURE({5}) = → C -CLOSURE(δ(D, a)) = -CLOSURE( {3, 8}) → B -CLOSURE(δ(D, b)) = -CLOSURE({5,10}) = {1, 2, 4, 5, 6, 7, 10} → E -CLOSURE(δ(E, a)) = -CLOSURE( {3, 8}) → B 21 -CLOSURE(δ(E, b)) = -CLOSURE({5})... tập hữu hạn các chuỗi 1 ký hiệu hoặc   Giả sử ta có bổ đề trên đúng với k-1, tức là tồn tại BTCQ rk-1lm sao cho L(rk-1lm) = Rk-1lm  Vậy đối với Rkij ta có thể chọn BTCQ rkij = (rk-1ik)(rk-1kk)*(rk-1kj) + rk-1ij → bổ đề đã được chứng minh Ta có nhận xét: ● L(M) = qj F Rn1j Vậy L có thể được ký hiệu bằng BTCQ ● r = rn1j1 + rn1j2 + … + rn1jp với F = {qj1, qj2, …, qjp} 31 Sự tương đương giữa DFA và ... qjp} 31 Sự tương đương DFA BTCQ Ví dụ: viết BTCQ cho DFA Start q1 q2 q3 0, Ta cần viết biểu thức: r = r312 + r3 13 Ta có: • • r312 = r2 13( r 233 )*r 232 + r212 r3 13 = r2 13( r 233 )*r 233 + r2 13 32 Sự... chuyển, có vài khả để lựa chọn (hàm chuyển automata đa trị) Phân loại FA DFA Deterministic Finite Automata FA (Finite Automata) NFA Nondeterministic Finite Automata Biểu thức quy Automata hữu hạn đơn... Tập trạng thái kết thúc: F’ = {E} (vì E có chứa trạng thái 10  F) 22 Biểu thức quy (RE) Vài ví dụ: • 00 : biểu thức quy biểu diễn tập {00} • (0+1)* : tập hợp tất chuỗi số số 1, kể chuỗi rỗng

Ngày đăng: 25/04/2016, 10:52

Từ khóa liên quan

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

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

Tài liệu liên quan