Chương 8: ôtômat hữu hạn và ngôn ngữ chính quy

14 4.8K 43
Chương 8: ôtômat hữu hạn và ngôn ngữ 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 8. Ôtômat hữu hạn ngôn ngữ chính quy Chương 8 ôtômat hữu hạn ngôn ngữ chính quy I. ôtômat hữu hạn (finite Automata – Fa) 1. Khái niệm ôtômat Ôtômat hữu hạn có thể được xem như một hệ hữu hạn trạng thái hay một máy tự động bất kỳ hoạt động theo hướng : • hoặc đoán nhận ngôn ngữ : cho một xâu ω, hỏi ω ∈ L ? • hoặc sinh ngôn ngữ : liệt kê mọi xâu ω của L. ở đây ta sẽ xét ôtômat theo hướng thứ nhất tức đoán nhận ngôn ngữ. 1. Định nghĩa Ôtômat hữu hạn là bộ M = <Σ, Q, δ, q 0 , F>, trong đó : − Σ là một tập hữu hạn khác rỗng các kí hiệu vào − Q là tập hữu hạn khác rỗng các trạng thái − q 0 ∈ Q được gọi là trạng thái ban đầu − F ⊆ Q được gọi là tập trạng thái kết thúc − δ được gọi là hàm chuyển có dạng : 1. Nếu δ : Q x Σ → Q thì ôtômat được gọi là ôtômat đơn định (DFA) 2. Nếu δ : Q x Σ → 2 Q thì ôtômat được gọi là ôtômat không đơn định (NFA) Hoạt động đoán nhận từ ω = x 1 x 2 … xn của ôtômat có thể được mô tả như sau : Khi bắt đầu làm việc máy ở trạng thái ban đầu q 0 đầu đọc nhìn vào ô kí tự đầu tiên của xâu là x 1 . Trạng thái q 0 dưới tác động của x 1 sẽ được chuyển thành trạng thái q 1 = δ(q 0 , x 1 ) đầu đọc sẽ dịch chuyển sang ô kế tiếp. Tiếp tục dưới tác động của kí tự x 2 ôtômat sẽ chuyển từ trạng thái q 1 sang trạng thái q 2 = δ(q 1 , x 2 ) đầu đọc tiếp tục dịch chuyển. Quá trình được lặp lại cho đến khi đầu đọc chuyển đến cuối xâu, khi đó dưới tác động của xn ôtômat sẽ chuyển từ trạng thái qn -1 sang trạng thái qn = δ(qn -1 , xn) ôtômat dừng. Nếu qn ∈ F ta gọi ôtômat đoán nhận xâu ω ngược lại. Một cách hình thức ta có thể mở rộng hàm δ trên xâu ω như : δ(q, ω) = δ(… δ(δ(q, x 1 ), x 2 ), … xn). Khi đó ω đoán nhận xâu ω khi chỉ khi δ(q 0 , ω) ∈ F. Tập L(M) = {ω ∈ Σ* | δ(q 0 , ω) ∈ F} được gọi là tập ngôn ngữ đoán nhận được bởi ôtômat M. 2. Thuật toán đoán nhận 1. Với ôtômat đơn định Boolean Accepted(M: DFA; ω: string) { 1 Chương 8. Ôtômat hữu hạn ngôn ngữ chính quy Var i : integer; q : Q; q = q 0 ; For i =1 to length(ω) do q = δ(q, ω[i]); Accepted = q ∈ F; } 2. Với ôtômat không đơn định Boolean Accepted(M: NFA; ω: string) { Var i: integer; q : Q; S = {q 0 }; For i=1 to length(ω) do S =  Sq ∈ δ(q, ω[i]); Accepted = S ∩ F ≠ ∅; } 2. Phương pháp biểu diễn ôtômat hữu hạn Cho ôtômat thực chất là cho hàm chuyển của nó. Hàm chuyển có thể được cho dưới dạng bảng chuyển hoặc dạng đồ thị. a. Phương pháp dùng bảng chuyển Là một bảng có các dòng là các trạng thái, cột là kí hiệu vào. Mỗi ô giao nhau giữa dòng trạng thái qi kí hiệu vào xj là trạng thái mới qij = δ(qi, xj) (qij có thể là tập trạng thái nếu ôtômat là không đơn định, tập này có thể rỗng). VÝ dô 1 : Cho ôtômat đơn định M với F = {q 0 } Q A b C q 0 Q 1 q 1 q 3 q 1 Q 0 q 3 q 2 q 2 Q 3 q 2 q 1 q 3 Q 0 q 1 q 3 Cách thức đoán nhận các xâu aabcacaa, bcbabbbcca ? VÝ dô 2 : Cho ôtômat không đơn định N với F = {q 0 } Q A b C q 0 Q 1 ∅ { q 2 , q 3 } q 1 { q 0 , q 1 } q 2 ∅ q 2 q 3 ∅ ∅ q 3 { q 0 , q 2 } q 1 q 3 Cách thức đoán nhận các xâu aabcacaa, bcbabbbcca ? 2 Chương 8. Ôtômat hữu hạn ngôn ngữ chính quy đối với ôtômat không đơn định để đoán nhận xâu ta phải vẽ cây đoán nhận. VÝ dô 3 : Hãy xây dựng ôtômat không đơn định đoán nhận ngôn ngữ L = {0 n 1 | n ≥ 0 } Ta xây dựng M = <Σ, Q, δ, q 0 , F> trong đó : − Σ = {0, 1 } − Q = {q 0 , q 1 } − F = {q 0 } − δ được cho bởi: δ(q 0 , 0) = q 0 δ(q 0 , 1) = q 1 . Khi đó dễ dàng chứng minh được L(M) = {0 n 1 | n ≥ 0 }. Chú ý rằng δ không xác định với q 1 . Để hàm δ xác định hoàn toàn ta có thể đưa thêm vào Q một trạng thái giả q 2 xác định thêm δ như sau : δ(q 1 , 0) = q 2 , δ(q 1 , 1) = q 2 , δ(q 2 , 0) = q 2 , δ(q 2 , 1) = q 2 (hoặc bằng ∅). Như vậy, đối với ôtômat hàm δ có thể được xem là hàm xác định toàn phần. 2. Phương pháp dùng đồ thị Là một đa đồ thị định hướng có tập đỉnh là tập trạng thái, có mũi tên vào trạng thái ban đầu để kí hiệu điểm xuất phát, trạng thái kết thúc được đánh dấu đặc biệt, ví dụ khoanh bởi 2 vòng tròn. Giữa 2 trạng thái bất kỳ qi qj có một cung nối với nhãn x nếu δ(qi, x) = qj. Ôtômat đoán nhận được xâu ω nếu có một đường đi với nhãn ω từ trạng thái ban đầu q 0 đến một trong những trạng thái kết thúc của F. Ví dụ : về các ôtômat cho ở trên cách đoán nhận các xâu aabcacaa, bcbabbbcca. 3. Ôtômat không đơn định với λ-cung (tham khảo thêm - viết lại) Một ôtômat không đơn định có thể được mở rộng với các cung rỗng, tức các cung chuyển trạng thái với nhãn là kí tự rỗng λ. Một phép chuyển δ(qi, λ) = qj, có nghĩa nếu ôtômat đang ở trạng thái qi thì ngay lập tức nó có thể chuyển sang trạng thái qj mà không cần phải đọc kí hiệu vào. Tương tự, với ôtômat không đơn định đã được định nghĩa ở trên, ta nói ω là đoán nhận được bởi ôtômat M nếu trên đồ thị của M có tồn tại đường đi từ q 0 đến q ∈ F với nhãn ω. Hiển nhiên trong đường đi có thể có chứa các cung rỗng (tức nhãn λ). a. Tập trạng thái đạt được Định nghĩa 1 : Cho q ∈ Q x ∈ Σ, ta gọi q’ là trạng thái đạt được từ q với nhãn x nếu tồn tại dãy phép chuyển (tức đường đi) từ q đến q’ trong đó có duy nhất một phép chuyển với nhãn là x còn lại tất cả đều với nhãn λ. Ví dụ : Cho ôtômat với đồ thị chuyển như sau : ta có : q 1 đạt được từ q 0 , q 3 đạt được từ q 2 , q 4 đạt được từ q 3 với nhãn λ q 2 đạt được từ q 1 với nhãn a. Tương tự, dễ thấy các trạng thái q 2 , q 3 , q 4 là đạt được từ q 1 cũng vậy từ q 0 với nhãn a. 3 q 0 q 1 q 2 q 3 q 4 λ λλ a Chương 8. Ôtômat hữu hạn ngôn ngữ chính quy Từ đó ta có thể mở rộng định nghĩa hàm chuyển trạng thái δ thành hàm δ ˆ sao cho δ ˆ (q 0 , a) = δ ˆ (q 1 , a) = {q 2 , q 3 , q 4 }, có nghĩa q’ ∈ δ ˆ (q, a) nếu chỉ nếu q’ ∈ δ(q, λaλ) với λ là xâu rỗng. Định nghĩa 2 : Cho S ⊆ Q x ∈ Σ, ta gọi δ(S, x) là tập trạng thái đạt được từ tập trạng thái S với nhãn x được định nghĩa : δ(S, x) =  Sq )x,q( ∈ δ Định nghĩa tương tự với hàm δ ˆ : δ ˆ (S, x) =  Sq )x,q( ˆ ∈ δ Ví dụ : Ta xét ví dụ trên với S = {q 1 , q 2 }. Khi đó : δ(S, a) = δ(q 1 , a) ∪ δ(q 2 , a) = {q 2 } ∪ ∅ = {q 2 } δ ˆ (S, a) = δ ˆ (q 1 , a) ∪ δ ˆ (q 2 , a) = {q 2 , q 3 , q 4 } ∪ ∅ = {q 2 , q 3 , q 4 }. b. Hàm chuyển trạng thái δ ˆ Phần trên ta đã đưa ra định nghĩa δ ˆ một cách trực quan. Phần tiếp theo sau đây hàm chuyển trạng thái δ’ sẽ được định nghĩa một cách chặt chẽ hơn. Trước hết ta xét khái niệm λ_bao đóng của một trạng thái q. Định nghĩa 1 : Một tập con trạng thái T được gọi là λ_bao đóng của q nếu mọi trạng thái của nó đều đạt được từ q qua dãy chuyển với nhãn λ, tức : T = {q’ | q’ ∈ δ(q, λ) với λ ∈ Σ*} (nên định nghĩa đệ quy ?) Chú ý : hiển nhiên q cũng là trạng thái thuộc λ_bao đóng của nó, tức T chứa q. Trường hợp ôtômat không chứa cung rỗng ta có λ_bao đóng của q chỉ chứa duy nhất trạng thái q, ∀q ∈ Q. Để đơn giản ta kí hiệu λ_bao đóng của q là λ(q). Ví dụ : Với ví dụ ở mục a. ta có : λ(q 0 ) = {q 0 , q 1 }, λ(q 1 ) = {q 1 }, λ(q 2 ) = {q 2 , q 3 , q 4 }, λ(q 3 ) = {q 3 , q 4 }, λ(q 4 ) = {q 4 }. Định nghĩa λ_bao đóng của tập trạng thái S cũng được mở rộng thành hợp của tất cả các λ_bao đóng của các trạng thái q trong S, tức : λ(S) =  Sq )q( ∈ λ Từ định nghĩa trên thuật toán tìm tập λ(S) với S ⊆ Q, có thể được xây dựng như sau : Thuật toán tìm λ (S) Procedure λ_closure(S) { Var stack : STACK; push(S, stack); 4 Chương 8. Ôtômat hữu hạn ngôn ngữ chính quy λ(S) = S; While !empty(stack) { pop(stack, q); For với mỗi q’ = δ(q, λ) do if q’ ∉ stack then { push(q’, stack); // Bổ sung q’ vào stack λ(S) = λ(S) ∪ {q’}; // Bổ sung q’ vào λ(S) } } } Định nghĩa 2 : Cho q ∈ Q, x ∈ Σ, hàm δ ˆ được định nghĩa như sau : δ ˆ (q, x) = λ(δ(λ(q), x)) tức δ ˆ (q, x) là tập các trạng thái q’ sao cho có dãy phép chuyển (hay dãy các cung trên đồ thị của ôtômat) từ q đến q’, trong đó chỉ có duy nhất 1 cung với nhãn x, còn lại tất cả là các cung rỗng (có nhãn λ). Tương tự, ta định nghĩa : − δ ˆ (q, ω) = δ ˆ (… δ ˆ ( δ ˆ (q, x 1 ), x 2 ) …, xn), với ω = x 1 x 2 … xn − δ ˆ (S, x) =  Sq )x,q( ˆ ∈ δ , với S ⊆ Q. Từ định nghĩa trên ta dễ dàng chứng minh được định lý sau đây : §Þnh lý 1 : ω ∈ Σ* là đoán nhận được bởi M, tức có đường đi từ trạng thái ban đầu q 0 đến q ∈ F với nhãn ω, khi chỉ khi δ ˆ (q 0 , ω) ∈ F. Trường hợp ôtômat không có cung rỗng, tức λ(q) = {q}, ∀q ∈ Q ta có hàm δ ˆ đồng nhất với δ. Như vậy, về mặt tổng quát đối với ôtômat không đơn định (có hay không có cung rỗng), thuật toán đoán nhận có thể viết lại như sau : Thuật toán đoán nhận với ôtômat không đơn định Boolean Accepted(M: NFA; ω: string) { Var i: integer; q : Q; S := {q 0 }; For i:=1 to length(ω) do S :=  Sq ∈ δ ˆ (q, ω[i]); Accepted := S ∩ F ≠ ∅; } 4. Sự tương đương giữa ôtômat đơn định không đơn định Do định nghĩa ta có thể nghĩ rằng lớp các ngôn ngữ do ôtômat không đơn định đoán nhận được là rộng hơn lớp ngôn ngữ đoán nhận được bơỉ ôtômat đơn định. Tuy nhiên, trên thực tế khả năng đoán nhận ngôn ngữ của 2 loại ôtômat này là như nhau, thể hiện qua định lý sau. 5 Chương 8. Ôtômat hữu hạn ngôn ngữ chính quy §Þnh lý 2 : Lớp ngôn ngữ đoán nhận được bởi ôtômat đơn định trùng với lớp ngôn ngữ đoán nhận được bởi ôtômat không đơn định. Chøng minh : Gọi lớp ngôn ngữ đoán nhận được bởi ôtômat đơn định là L(M) lớp ngôn ngữ đoán nhận được bởi ôtômat không đơn định là L(N). Việc chứng minh L(M) ⊆ L(N) là dễ dàng vì một ôtômat đơn định cũng có thể xem là ôtômat không đơn định. Ta chứng minh vế ngược lại L(M) ⊆ L(N), bằng cách đưa ra các thuật toán xây dựng ôtômat đơn định cho từng trường hợp : ôtômat không có cung rỗng. a. Ôtômat không có cung rỗng Cho ôtômat không đơn định N = <Σ, Q, δ, q 0 , F> đoán nhận ngôn ngữ L = L(N). Ta xây dựng ôtômat đơn định M = <Σ’, Q’, δ’, q 0 ’, F’> cũng đoán nhận L như sau : − Σ’ = Σ − Q’ = 2 Q − q 0 ’ = { q 0 } − F’ = { q’ ∈ Q’ | q’ ∩ F ≠ ∅ } − δ’: Q’ x Σ → Q’, với δ’(q’, x) =  'qq )x,q( ∈ δ (chú ý : Q’ = 2 Q q’ ⊆ Q) Bằng xây dựng này ta thấy mọi xâu ω đoán nhận được bởi N cũng sẽ đoán nhận được bởi M, vì ta cũng có thể xây dựng đường đi tương tự trong ôtômat M mô phỏng bởi đường đi đoán nhận trong ôtômat N để đoán nhận xâu ω. VÝ dô 1 : Cho ôtômat không đơn định N với Σ = {a, b }, Q = {q 0 , q 1 }, F = {q 1 } hàm chuyển được cho trong bảng sau : Q a b q 0 { q 0 , q 1 } q 1 q 1 ∅ { q 0 , q 1 } Khi đó ôtômat đơn định M ứng với N được xây dựng như sau : − Σ’ = {a, b } − Q’ = { u 1 , u 2 , u 3 , u 4 }, trong đó u 1 = ∅, u 2 = {q 0 }, u 3 = {q 1 }, u 4 = Q = {q 0 , q 1 } − q 0 ’ = u 2 − F’ = {u 3 , u 4 } hàm δ’ được cho bởi bảng chuyển Q’ a b u 1 ∅ ∅ u 2 u 4 u 3 u 3 ∅ u 4 u 4 u 4 u 4 Khi đó, ta sẽ có L = L(N) = L(M). 6 Chương 8. Ôtômat hữu hạn ngôn ngữ chính quy Trong thực hành ta sẽ chỉ xây dựng các cung đạt được như đối với ôtômat có cung rỗng. b. Ôtômat có cung rỗng Đối với ôtômat N = <Σ, Q, δ, q 0 , F> có cung chuyển λ ta xây dựng ôtômat đơn định M = <Σ’, Q’, δ’, q 0 ’, F’> cũng đoán nhận L như sau : − Σ’ = Σ − Q’ ⊆ 2 Q − q 0 ’ = λ(q 0 ) − F’ = { q’ ∈ Q’ | q’ ∩ F ≠ ∅ } − δ’ = δ ˆ trong đó Q’ được xây dựng bởi thuật toán sau : Procedure Build_DFA(N: NFA) { Var stack : STACK, q, q’ : 2 Q ; q’ = λ(q 0 ); push(q, stack); Q’ = {q’}; While !empty(stack) { pop(stack, q); For với mỗi x ∈ Σ do { q’ = δ ˆ (q, x); if q’ ∉ Q’ then { push(q’, stack); // Bổ sung q’ vào stack Q’ = Q’ ∪ {q’}; // Bổ sung q’ vào Q’ } } } } Về hoạt động của thuật toán có thể mô tả như sau : − Trạng thái ban đầu q’ 0 = λ(q 0 ) ∈ Q’. − Với mỗi x ∈ Σ, tính δ ˆ (q’ 0 , x), xem tập kết quả như một đỉnh mới nếu chưa thuộc Q’ thì bổ sung vào Q’. Lập lại quá trình cho các đỉnh vừa bổ sung. Nếu không còn đỉnh mới bổ sung thì dừng. Thuật toán sẽ dừng sau không quá 2 |Q| bước. VÝ dô 2 : Cho ôtômat không đơn định với đồ thị chuyển như hình vẽ 7 q 2 q 3 q 0 q 1 q 6 q 7 q 8 q 9 q 10 q 4 q 5 λ λ λ λ λ λ a b ba Chương 8. Ôtômat hữu hạn ngôn ngữ chính quy Tập Q’ được xây dựng qua các bước : − q’ 0 = λ(q 0 ) = {q 0 , q 1 , q 2 , q 4 , q 7 } − δ ˆ (q’ 0 , a) = {q 1 , q 2 , q 3 , q 4 , q 6 , q 7 , q 8 } = q’ 1 − δ ˆ (q’ 0 , b) = {q 1 , q 2 , q 4 , q 5 , q 6 , q 7 } = q’ 2 − δ ˆ (q’ 1 , a) = {q 1 , q 2 , q 3 , q 4 , q 6 , q 7 , q 8 } = q’ 1 (loại) − δ ˆ (q’ 1 , b) = {q 1 , q 2 , q 4 , q 5 , q 6 , q 7 , q 9 } = q’ 3 − δ ˆ (q’ 2 , a) = {q 1 , q 2 , q 3 , q 4 , q 6 , q 7 , q 8 } = q’ 1 (loại) − δ ˆ (q’ 2 , b) = {q 1 , q 2 , q 4 , q 5 , q 6 , q 7 } = q’ 2 (loại) − δ ˆ (q’ 3 , a) = {q 1 , q 2 , q 3 , q 4 , q 6 , q 7 , q 8 } = q’ 1 (loại) − δ ˆ (q’ 3 , b) = {q 1 , q 2 , q 4 , q 5 , q 6 , q 7 , q 10 } = q’ 4 − δ ˆ (q’ 4 , a) = {q 1 , q 2 , q 3 , q 4 , q 6 , q 7 , q 8 } = q’ 1 (loại) − δ ˆ (q’ 4 , b) = {q 1 , q 2 , q 4 , q 5 , q 6 , q 7 } = q’ 2 (loại) Từ đó, có thể thấy F’ = {q’ 4 } bảng chuyển của δ’ như sau : Q’ a b q’ 0 q’ 1 q’ 2 q’ 1 q’ 1 q’ 3 q’ 2 q’ 1 q’ 2 q’ 3 q’ 1 q’ 4 q’ 4 q’ 1 q’ 2 Trên cơ sở bảng chuyển ta dễ dàng vẽ được đồ thị của ôtômat đơn định M. II. Ngôn ngữ biểu thức chính quy 1. Ngôn ngữ chính quy Trong phần này ta sẽ đưa ra định nghĩa đệ qui của một lớp ngôn ngữ mà ta gọi là ngôn ngữ chính quy (thực chất là lớp ngôn ngữ đoán nhận được bởi văn phạm chính quy). Định nghĩa 1 : Cho Σ là bảng chữ cái hữu hạn, khi đó ngôn ngữ chính quy trên Σ được định nghĩa đệ qui như sau : i. {λ} là ngôn ngữ chính quy trên Σ, ii. Các ngôn ngữ sơ cấp trên bảng chữ Σ (tức các tập ∅, {a} (a ∈ Σ)) là ngôn ngữ chính 8 λ λ b Chương 8. Ôtômat hữu hạn ngôn ngữ chính quy quy trên Σ. iii. Nếu R, S là 2 ngôn ngữ chính quy trên Σ thì R ∪ S, R.S R* cũng là các ngôn ngữ chính quy trên Σ. iv. Các ngôn ngữ chính quy chỉ được tạo từ các qui tắc i., ii. iii. VÝ dô 3 : Cho bảng chữ Σ = {0, 1}. Khi đó {0}, {1} là các ngôn ngữ chính quy. áp dụng các qui tắc trên ta có : L 1 = {10, 11} L 2 = {011, 11} cũng là các ngôn ngữ chính quy. Khi đó L 1 L 2 = {10011, 1011, 11011, 1111} L 1 * = {10, 11}* = {λ, 10, 11, 1010, 1011, 1110, 1111, …} cũng là các ngôn ngữ chính quy. VÝ dô 4 : Từ {a} {b} là 2 ngôn ngữ chính quy, ta có {anbm | n, m ≥ 1} cũng là ngôn ngữ chính quy. Nhận xét : − Mọi ngôn ngữ chính quy trên bảng chữ Σ đều nhận được từ các ngôn ngữ hữu hạn bằng cách áp dụng hữu hạn lần các phép toán : hợp, nhân ghép lặp. − Lớp các ngôn ngữ chính quy là đóng đối với các phép toán hợp, nhân ghép lặp. 2. Biểu thức chính quy Để biểu diễn hữu hạn các ngôn ngữ chính quy ta đưa ra biểu thức chính quy, được định nghĩa : Định nghĩa 2 : i. λ là biểu thức chính quy, nó biểu diễn ngôn ngữ {λ} ii. ∅ là ngôn ngữ chính quy, nó biểu diễn ngôn ngữ ∅. iii. Nếu a ∈ Σ, thì a là biểu thức chính quy, nó biểu diễn ngôn ngữ {a} iv. Nếu r s là 2 biểu thức chính quy trên Σ biểu diễn các ngôn ngữ R, S tương ứng thì (r + s), (rs), (r*) cũng là các biểu thức chính quy, chúng biểu diễn lần lượt các ngôn ngữ chính quy R ∪ S, R.S R * . v. Các biểu thức chính quy chỉ được tạo từ các cách nêu trên. Thông thường, dựa vào mức độ ưu tiên (lặp, nhân ghép, cộng) của các phép toán, để gọn biểu thức ta có thể bỏ bớt các dấu ngoặc. VÝ dô 5 : • 00 biểu diễn ngôn ngữ {00}, (0+1)* biểu diễn ngôn ngữ {0, 1}* • ngôn ngữ {anbm | n, m ≥ 1} được biểu diễn bởi biểu thức chính quy a*b* • ngôn ngữ {11ω | ω ∈ {0, 1}*} được biểu diễn bởi 11(0+1)* Đối với ngôn ngữ được biểu bởi r còn được kí hiệu L(r). Tuy nhiên trong trường hợp không gây nhầm lẫn, ta có thể dùng r để chỉ cả hai. §Þnh lý 3 : Một ngôn ngữ trên Σ là chính quy khi chỉ khi nó được biểu diễn bởi một biểu thức chính quy. Chøng minh : Điều này là hiển nhiên suy từ định nghĩa  9 Chương 8. Ôtômat hữu hạn ngôn ngữ chính quy III. Quan hệ giữa ôtômat hữu hạn biểu thức chính quy 1. Tính tương đương giữa ôtômat hữu hạn biểu thức chính quy Phần này ta sẽ chứng minh lớp ngôn ngữ đoán nhận được bởi ôtômat hữu hạn sinh bởi biểu thức chính quy là như nhau. §Þnh lý 4 r là một biểu thức chính quy khi chỉ khi có tồn tại một DFA đoán nhận ngôn ngữ sinh bởi biểu thức chính quy đó. Chøng minh : − Thuật toán Thompson : Ví dụ : vẽ đồ hình đoán nhận ngôn ngữ sinh bởi 01*+1 − Bỏ qua  2. Tính đóng của ngôn ngữ chính quy §Þnh lý 5 Lớp các ngôn ngữ chính quy trên Σ là đóng đối với các phép toán : họp, giao, hiệu, nhân ghép, lấy phần bù, lặp ảnh ngược. Chøng minh :  10

Ngày đăng: 06/09/2013, 10:50

Hình ảnh liên quan

Cho ôtômat thực chất là cho hàm chuyển của nó. Hàm chuyển có thể được cho dưới dạng bảng chuyển hoặc dạng đồ thị. - Chương 8: ôtômat hữu hạn và ngôn ngữ chính quy

ho.

ôtômat thực chất là cho hàm chuyển của nó. Hàm chuyển có thể được cho dưới dạng bảng chuyển hoặc dạng đồ thị Xem tại trang 2 của tài liệu.
a. Phương pháp dùng bảng chuyển - Chương 8: ôtômat hữu hạn và ngôn ngữ chính quy

a..

Phương pháp dùng bảng chuyển Xem tại trang 2 của tài liệu.
VÝ dô 2: Cho ôtômat không đơn định với đồ thị chuyển như hình vẽ - Chương 8: ôtômat hữu hạn và ngôn ngữ chính quy

d.

ô 2: Cho ôtômat không đơn định với đồ thị chuyển như hình vẽ Xem tại trang 7 của tài liệu.
Từ đó, có thể thấy F’ = {q’4} và bảng chuyển của δ’ như sau : - Chương 8: ôtômat hữu hạn và ngôn ngữ chính quy

c.

ó thể thấy F’ = {q’4} và bảng chuyển của δ’ như sau : Xem tại trang 8 của tài liệu.

Từ khóa liên quan

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

Tài liệu liên quan