Bài giảng Automata và ngôn ngữ hình thức - Chương 5: Văn phạm phi ngữ cảnh ppt

48 1.2K 27
Bài giảng Automata và ngôn ngữ hình thức - Chương 5: Văn phạm phi ngữ cảnh ppt

Đ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

Lý thuyết automata ngơn ngữ hình thức Automata Grammar GIảNG VIÊN: TS HÀ CHÍ TRUNG Languague Bộ MƠN: KHMT khoa cntt, hvktqs Đt:0168.558.21.02 EMAIL: HCT2009@YAHOO.COM ©copyright by PhD C.T.Ha, Le Quy Don Technical University Bài Văn phạm phi ngữ cảnh (Context-Free Grammars) MỤC ĐÍCH:  Khái niệm vềềvăn phạm phi ngữ cảnh;  Sự nhập nhăề g văn phạm phi ngữ cảnh; n  Rút gọn chuẩn văn phạm phi ngữ cảnh;  Các tính chấấ văn phạm phi ngữ cảnh t YÊU CẦẦ : U  Sinh viền năấ vững khái niệm liền quan tới CFG m  Vềềnhà, cụ thể hóa thuật tốn băề g chương trình n ©copyright by PhD C.T.Ha, Le Quy Don Technical University Bài Văn phạm phi ngữ cảnh (CFG) 5.1 Khái niệm văn phạm phi ngữ cảnh 5.2 Dẫn xuấấ, cấy dẫn xuấấ CFG CFL t t 5.3 Sự nhập nhăẦ g CFG n 5.4 Rút gọn văn phạm phi ngữ cảnh 5.4.1 Loại bỏ ký hiệu thừa 5.4.2 Loại bỏ luật sinh ε 5.4.3 Loại bỏ luật sinh đơn vị 5.5 Chuẩn hóa văn phạm phi ngữ cảnh 5.5.1 Dạng chuẩn Chomsky 5.5.2 Dạng chuẩn Greibach 5.6 Các tính chấấ văn phạm phi ngữ cảnh t Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6/27/14 Bài Văn phạm phi ngữ cảnh (CFG) 5.1 Khái niệm văn phạm phi ngữ cảnh 5.2 Dẫn xuấấ, cấy dẫn xuấấ CFG CFL t t 5.3 Sự nhập nhăẦ g CFG n 5.4 Rút gọn văn phạm phi ngữ cảnh 5.4.1 Loại bỏ ký hiệu thừa 5.4.2 Loại bỏ luật sinh ε 5.4.3 Loại bỏ luật sinh đơn vị 5.5 Chuẩn hóa văn phạm phi ngữ cảnh 5.5.1 Dạng chuẩn Chomsky 5.5.2 Dạng chuẩn Greibach 5.6 Các tính chấấ văn phạm phi ngữ cảnh t Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6/27/14 5.1 Khái niệm văn phạm phi ngữ cảnh  Ví dụ: ngơn ngữ lập trình CFL( thông thường biểu diễn d ưới d ạng Backus - Naur Form - BNF) ::= + ::= * ::= ( ) ::=  Việc nghiền cứu văn phạm phi ngữ cảnh tạo sở lý luận vững chăấ c cho việc biểu diễn ngôn ngữ lập trình, việc tìm kiềấ giải thuật phấn tích cú pháp m vận dụng chương trình dịch cho nhiềề ứng d ụng khác vềề lý chuỗi Ch ẳng u x hạn, rấấ hữu ích việc mô tả biểu thức sôấ ọc với nhiềề dấấ ngo ặc lôề g t h u u n cấấ trúc khơấtrong ngơn ngữ lập trình mà biểu thức quy khơng th ể u i đặc tả Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6/27/14 5.1 Khái niệm văn phạm phi ngữ cảnh  Nhăấ lại khái niệm: Văn phạm G săấ thứ tự gôề thành phấề G = < Σ, Δ, S, P >, c p m n đó:  Σ - bảng chữ cái, gọi bảng chữ (bảng chữ kềấ thúc – terminal symbol); t  Δ , Δ ∩ Σ =Ø, gọi bảng ký hiệu phụ (báng chữ không kềấ thúc – nonterminal symbol); t  S ∈ Δ - ký hiệu xuấấ phát hay tiền đềề start variable); t (  P - tập luật sinh (production rules) dạng α→β, α, β ∈ (Σ ∪ Δ)*, α chứa nhấấ ký t hiệu không kềấ thúc (đôi khi, ta gọi chúng qui tăấ ho ặc lu ật viềấ l ại) t c t Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6/27/14 5.1 Khái niệm văn phạm phi ngữ cảnh  Văn phạm loại – Văn phạm phi ngữ cảnh (CFG – Context-Free Grammar): văn phạm mà luật sinh có dạng A→α với A biềấ đơn α ∈ (Σ ∪ Δ)* n ● Ví dụ 5.1: G=({a, b}, {S, A, B}, P, S) với P gôề luật sinh: m S → AB A → aAa B → bBb  Ví dụ 5.2: Xét văn phạm G = ({a, b}, {S}, S , P), đó: S → aSb S → ab Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6/27/14 5.1 Khái niệm văn phạm phi ngữ cảnh  Phấn loại văn phạm theo Chomsky: Recursively enumerable Context-sensitive Context-free Regular 6/27/14 Bài Văn phạm phi ngữ cảnh (CFG) 5.1 Khái niệm văn phạm phi ngữ cảnh 5.2 Dẫn xuấấ, cấy dẫn xuấấ CFG CFL t t 5.3 Sự nhập nhăẦ g CFG n 5.4 Rút gọn văn phạm phi ngữ cảnh 5.4.1 Loại bỏ ký hiệu thừa 5.4.2 Loại bỏ luật sinh ε 5.4.3 Loại bỏ luật sinh đơn vị 5.5 Chuẩn hóa văn phạm phi ngữ cảnh 5.5.1 Dạng chuẩn Chomsky 5.5.2 Dạng chuẩn Greibach 5.6 Các tính chấấ văn phạm phi ngữ cảnh t Automata ngôn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6/27/14 5.2 Dẫn xuấấ, cấy dẫn xuấấ CFG CFL t t 10  Dẫn xuấấ: Nềấ A → β luật sinh văn phạm G α, γ chuỗi bấấ kỳ, áp dụng luật t u t sinh A → β vào chuỗi αAγ ta thu chuỗi αβγ : αAγ → αβγ  Dẫn xuấấ gián tiếấ : Giả sử: α1→ α2, α2→ α3, , αm-1→ αm, ta viềấ α1→ *αm (chú ý răề g α→ *α với t p t n chuỗi α)  Ngôn ngữ sinh CFG: cho CFG G = < Σ, Δ, S, P > L(G) = { ww ∈ Σ* S ⇒*w } (chuỗi w gơề tồn ký hiệu kềấ thúc dẫn từ S) m t Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6/27/14 5.5 Dạng chuẩn Chomsky 34  Dạng chuẩn Chomsky (CNF): Văn phạm CFG G(Σ, Δ, S, P) có dạng chuẩn Chomsky nềấ tấấ u t luật sinh có dạng A → BC A → a (nềấ ε ∉ L, ngược lại cấề luật sinh S → ε) u n   Ví dụ 5.9: S → AB|ε; A → BC; B → a; C → b; Định lý 5.5: ngôn ngữ phi ngữ cảnh bấấ kỳ không chứa ε đềề sinh băề g văn ph ạm t u n mà luật sinh có dạng A → BC A → a, với A, B, C biềấ a ký hiệu kềấ thúc n t 6/27/14 5.5 Dạng chuẩn Chomsky 35  Giải thuật đưa vếẦ ạng chuẩn Chomsky: giả sử CFL L=L(G) với CFG G=(Σ, Δ, S, P) d Bước 1: thay thềấ t luật sinh có độ dài vềấ ải tấấ ph Áp dụng định lý 5.4 để loại bỏ luật sinh đơn vị ε Bước 2: thay thềấ t luật sinh có độ dài vềấ ải lớn h ơn có ch ứa ký hi ệu kềấ thúc: tấấ ph t Bước 3: thay thềấ luật sinh mà vềấ ải có nhiềề ký hi ệu ch ưa kềấ thúc ph u t A → X X X X i n A → X X C X a n C →a a a A→B D 1 A → B B - ©copyright by PhD C.T.Ha, Le Quy Don Technical University (m>2) Automata ngôn ngữ hình thức B D →B D 2 m D m-2 →B B m-1 m 6/27/14 5.5 Dạng chuẩn Chomsky 36  Ví dụ 5.10: tìm văn phạm có dạng CNF tương đương CFG: S→AABA; A → aA  a  B; B → bB  b Bước 1: Δ = {S, A, B} , Δ = {A, B} , Δ = {B} s A B S → aA  a  bB  b  ABA; A → aA  a  bB  b; B → bB  b Bước 2: thay a băề g C b băề g C luật sinh có độ dài vềấ ải > 1: n n ph a b S → C A  a  C B  b  ABA a b A → C A  a  C B  b; a b C → a; a B→C B b b C →b b Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6/27/14 5.5 Dạng chuẩn Chomsky 37 Bước 3: thay thềấ luật sinh có độ dài vềấ ải > 2: ph S → CaA  a  CbB  b  AD1 A → CaA  a  CbB  b B → CbB  b Ca → a Cb → b D1 → BA Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6/27/14 Bài Văn phạm phi ngữ cảnh (CFG) 38 5.1 Khái niệm văn phạm phi ngữ cảnh 5.2 Dẫn xuấấ, cấy dẫn xuấấ CFG CFL t t 5.3 Sự nhập nhăẦ g CFG n 5.4 Rút gọn văn phạm phi ngữ cảnh 5.4.1 Loại bỏ ký hiệu thừa 5.4.2 Loại bỏ luật sinh ε 5.4.3 Loại bỏ luật sinh đơn vị 5.5 Chuẩn hóa văn phạm phi ngữ cảnh 5.5.1 Dạng chuẩn Chomsky 5.5.2 Dạng chuẩn Greibach 5.6 Các tính chấấ văn phạm phi ngữ cảnh t Automata ngôn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6/27/14 5.6 Dạng chuẩn Greibach 39  Dạng chuẩn Greibach (GNF): Văn phạm CFG G(Σ, Δ, S, P) có dạng chuẩn Greibach nềấ luật sinh u có dạng A → aα (α chuỗi ký hi ệu phụ ε nềấ ε ∉ L; ngược l ại thềm vào lu ật sinh S → ε) u  Bổ đếẦ 5.3: Cho G(Σ, Δ, S, P) CFG, đặt A → α Bα luật sinh P B → β β  β B - luật 2 r sinh; Văn phạm G (Σ, Δ1, S, P ) thu từ G băề g cách loại bỏ luật sinh A → α Bα thềm vào luật sinh n 1 A → α β α α β α  α β α 1 2 r tương đương G  Ý nghĩa: áp dụng để thay thêấ luật sinh trực tiêấ p Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6/27/14 5.6 Dạng chuẩn Greibach 40  Bổ đếẦ 5.4: Đặt G(Σ, Δ, S, P) CFG; A → Aα Aα  Aα tập A – luật sinh có A ký hi ệu trái nhấấ t r vềấ ải (luật sinh đệ quy trái) Đặt A → β β  β A - luật sinh lại; ph s G (Σ, Δ∪ {B}, S, P ) CFG tạo thành băề g cách thềm biềấ B thay A - luật sinh băề g lu ật n n n 1 dạng: A→β; i A → β B; i (1 ≤ i ≤ s) B→α; i B → α B; i (1 ≤ i ≤ r) ta có G tương đương G, hay L(G) = L(G ) 1  Ý nghĩa: dùng loại bỏ văn phạm đệ quy trái  Định lý 5.6: Mỗi CFL bấấ kỳ không chứa ε sinh CFG mà luật sinh có dạng A → aα với A t biềấ , a ký hiệu kềấ thúc α chuỗi biêấ (có thể rỗng) n t n Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6/27/14 5.6 Dạng chuẩn Greibach 41  Giải thuật đưa vếẦ ạng chuẩn Greibach (GNF): Đặt G CFG sinh CFL không chứa ε d Bước 1: xấy dựng G' có dạng CNF tương đương G Bước 2: đổi tền biềấ G' thành A , A , , A (m ≥1 ) với A ký hiệu băấ đấề Đặt V = {A , n t u m 1 A , , A } m Bước 3: thay thềấ ật sinh cho nềấ A → A γ j > i lu u i j  Nềấ j i), i j A → aγ B → γ với γ ∈ (V ∪ i k {B ,B , ,B })* i-1 Bước 4: thay thềấ A – luật sinh vềề dạng (bổ đếẦ ) 5.3 i Bước 5: thay thềấ B – luật sinh vềề dạng (bổ đếẦ ) 5.3 k Automata ngôn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6/27/14 5.6 Dạng chuẩn Greibach 42  Giải thuật: (thay thêấ cho A → A γ j > i) i i (1) for (k := to m){ (2) (3) for (j := to k-1){ forearch (Mỗi luật sinh dạng A → A α){ k j forearch (luật sinh A → β) Thêm luật sinh A → βα; j k (4) (5) Loại bỏ luật sinh A → A α k j } (6) forearch (luật sinh dạng A → A α) k k (7) Thêm luật B → α B → αB ; k k k (8) Loại bỏ luật A → A α k k (9) forearch (luật sinh A → β mà β không bắt đầu A ) k k Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University Thêm luật sinh A → βB k k 6/27/14 5.6 Dạng chuẩn Greibach 43  Ví dụ: tìm văn phạm có dạng GNF cho văn phạm G sau: A →A A  A A ; 2 A → A A  a;  Bước 1: G thỏa CNF  Bước 2: ta có V = {A , A , A }  A →A A  b 2 Bước 3: ta cấề sửa đổi luật sinh A → A A n 2 Áp dụng bổ đềề 5.3: A → A A A  aA 3 2 A → A A A  aA  b 3 2 Áp dụng bổ đềề 5.4, ta thu tập luật sinh:A → A A A A 2 A → A A  a; A → aA  b  aA B  bB; 2 B →A A  A A B 2 Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6/27/14 5.6 Dạng chuẩn Greibach 44  Bước 4: A có dạng chuẩn Thay thềấ vào A : A 3 B → A A  A A B; 2 A → aA  b  aA B  bB 2 A → aA A  bA  aA BA  bBA  a 2 1 1 A → aA A A  bA A  aA BA A  bBA A  aA  1 1 1 1 aA A A  bA A  aA BA A  bBA A  aA 3 3  Bước 5: thay thềấ B – luật sinh k B → aA A A A  bA A A  aA BA A A  bBA A A  aA A  aA A A A  bA A A 1 1 2 1 1 2 3  aA BA A A  bBA A A  aA A  aA A A A B bA A A B  aA BA A A B  bBA A A B  3 2 1 1 2 1 1 aA A B aA A A A B  bA A A B  aA BA A A B  bBA A A B  aA A B 2 3 2 3 Automata ngôn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6/27/14 Bài Văn phạm phi ngữ cảnh (CFG) 45 5.1 Khái niệm văn phạm phi ngữ cảnh 5.2 Dẫn xuấấ, cấy dẫn xuấấ CFG CFL t t 5.3 Sự nhập nhăẦ g CFG n 5.4 Rút gọn văn phạm phi ngữ cảnh 5.4.1 Loại bỏ ký hiệu thừa 5.4.2 Loại bỏ luật sinh ε 5.4.3 Loại bỏ luật sinh đơn vị 5.5 Chuẩn hóa văn phạm phi ngữ cảnh 5.5.1 Dạng chuẩn Chomsky 5.5.2 Dạng chuẩn Greibach 5.6 Các tính chấấ văn phạm phi ngữ cảnh t Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6/27/14 5.7 Tính chấấ CFL t 46  Pumping lemma: cho L CFL bấấ kỳ, tôề sôấ phụ thu ộc vào L cho nềấ z ∈ L t n n u |z| ≥ n ta viềấ z=uvwxy cho: |vx| ≥ 1, |vwx| ≤ n ∀i ≥ ta có uviwxiy ∈ L t   Ý nghĩa: dùng để chứng minh ngơn ngữ có phải CFL hay khơng Ví dụ: chứng minh L = {aibici | i ≥ 1} không CFL   Giả sử L CFL, tơề sơấ theo bổ đềề ơm n n b Xét chuỗi z = anbncn, |z| ≥ n, ta viềấ z=uvwxy thỏa bổ đềề ơm t b Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6/27/14 5.7 Tính chấấ CFL t 47  Ta có: vwx ∈ anbncn, |vwx| ≤ n vwx đôề g thời chứa ký hiệu a c (vì a c có n n ký hiệu b) → vx chứa ký hiệu a c  Do |vx| ≥ uvwxy chứa sôấký hiệu a, b, c băề g nhau: n o Nềấ vx có chứa ký hiệu a (nền khơng thể chứa ký hiệu c) b ơm chu ỗi vx, sôấ hi ệu c s ẽ u ký 0 không đổi (luôn n), sôấ hiệu a thay đổi Ví dụ: chuỗi uv wx y ∉ L có sơấ hiệu a ký ký (ít n) sôấ hiệu c (luôn n) không băề g ký n o Nềấ vx không chứa ký hiệu a bơm chuỗi vx, sơấ hi ệu a khơng đổi, nh ưng sôấ hi ệu b u ký ký (hoặc c) thay đổi Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6/27/14 5.7 Tính chấấ CFL t 48    Định lý 5.7: CFL đóng với phép hợp, phép kềấ nơấ phép bao đóng Kleen t i Định lý 5.8: CFL khơng đóng với phép giao Hệ quả: CFL khơng đóng với phép lấấ phấề bù y n Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6/27/14 .. .Bài Văn phạm phi ngữ cảnh (Context-Free Grammars) MỤC ĐÍCH:  Khái niệm về? ?văn phạm phi ngữ cảnh;  Sự nhập nhăề g văn phạm phi ngữ cảnh; n  Rút gọn chuẩn văn phạm phi ngữ cảnh;  Các... t Automata ngơn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6/27/14 5.1 Khái niệm văn phạm phi ngữ cảnh  Văn phạm loại – Văn phạm phi ngữ cảnh (CFG – Context-Free... F F → (E)  a Automata ngôn ngữ hình thức - ©copyright by PhD C.T.Ha, Le Quy Don Technical University 6/27/14 Bài Văn phạm phi ngữ cảnh (CFG) 18 5.1 Khái niệm văn phạm phi ngữ cảnh 5.2 Dẫn xuấấ,

Ngày đăng: 27/06/2014, 03:20

Từ khóa liên quan

Mục lục

  • Slide 1

  • Slide 2

  • Bài 5. Văn phạm phi ngữ cảnh (CFG)

  • Bài 5. Văn phạm phi ngữ cảnh (CFG)

  • 5.1. Khái niệm văn phạm phi ngữ cảnh

  • 5.1. Khái niệm văn phạm phi ngữ cảnh

  • 5.1. Khái niệm văn phạm phi ngữ cảnh

  • 5.1. Khái niệm văn phạm phi ngữ cảnh

  • Bài 5. Văn phạm phi ngữ cảnh (CFG)

  • 5.2. Dẫn xuất, cây dẫn xuất trong CFG và CFL

  • 5.2. Dẫn xuất, cây dẫn xuất trong CFG và CFL

  • 5.2. Dẫn xuất, cây dẫn xuất trong CFG và CFL

  • 5.2. Dẫn xuất, cây dẫn xuất trong CFG và CFL

  • 5.2. Dẫn xuất, cây dẫn xuất trong CFG và CFL

  • Bài 5. Văn phạm phi ngữ cảnh (CFG)

  • 5.3. Sự nhập nhằng trong CFG

  • 5.3. Sự nhập nhằng trong CFG

  • Bài 5. Văn phạm phi ngữ cảnh (CFG)

  • 5.4. Rút gọn văn phạm phi ngữ cảnh

  • Bài 5. Văn phạm phi ngữ cảnh (CFG)

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

Tài liệu liên quan