TIỂU LUẬN LÝ THUYẾT TÍNH TOÁN Ôtômát không đơn định và định lý KLEENE

36 1.9K 0
TIỂU LUẬN   LÝ THUYẾT TÍNH TOÁN Ôtômát không đơn định và định lý KLEENE

Đ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

Phần lý thuyết Chương 4: Ôtômát không đơn định và định lý KLEENE 4.1. Ôtômat hữu hạn không đơn định Để chứng minh rằng các ngôn ngữ thông thường là giống như những ngôn ngữ tự nhiên mà có thể được thừa nhận bởi một ôtômat hữu hạn, nó là công cụ rất hữu ích để xem xét ngôn ngữ chính quy rất giống với một ôtômat hữu hạn, tuy nhiên, vẫn có một tập hữu hạn các trạng thái và một vài chức năng của trạng thái kế tiếp để lựa chọn, nhưng với các tiêu chuẩn khác. Nó chỉ ra rằng các thiết bị này nhận ra cùng một ngôn ngữ đúng đắn của các ôtômat hữu hạn nhưng thường là đơn giản để xây dựng và giải thích. Ví dụ 4.1. Hình 41a hiển thị các ôtômat hữu hạn xây dựng trong ví dụ 3.14, mà nhận ra ngôn ngữ L tương ứng với biểu thức chính quy (11 +110) 0. Bây giờ nhìn vào biểu đồ trong hình 41b. Các lỗi này được các sơ đồ của một ôtômat hữu hạn đưa ra hai lý do rõ ràng khác nhau. Từ một số trạng thái không có quá trình chuyển đổi cho cả hai ký hiệu đầu vào (từ trạng thái q4 không có quá trình chuyển đổi ở tất cả các trạng thái); và từ một trạng thái, q0, có hai mũi tên tương ứng với đầu vào 1. Các cách để giải thích đầu tiên của các tính năng này rất dễ dàng: Do không có quá trình chuyển đổi từ một trạng thái q nghĩa là từ q không có bắt đầu với một dữ kiện đầu vào có thể cung cấp cho kết quả của một trạng thái đang được chấp nhận. Chúng ta có thể tạo ra một quá trình chuyển đổi bằng cách tạo một trạng tháichết mà các thiết bị có thể đi từ q trên một đầu vào, có một đặc tính mà mỗi khi thiết bị nhận đầu vào một trạng thái mà nó không bao giờ có thể rời khỏi nó. Tuy nhiên, quá trình chuyển đổi này sẽ không bao giờ được thực thi trong bất cứ trình tự dịch chuyển của các trạng thái đi đến một trạng thái được chấp nhận. Do đó, để nó thoát ra khỏi mà không ảnh hưởng đến bất cứ trạng thái chuyển đổi khác(ngoại trừ việc nó vi phạm các luật), và nó làm cho sơ đồ đơn giản. Lỗi thứ hai trong các quy định cho Ôtômat hữu hạn có vẻ là nghiêm trọng hơn. Nếu như có hai quá trình chuyển đổi từ q0 trên đầu vào 1, sau đó nó không rõ ràng những gì thiết bị này là phải làm trong tình hình đó, và vì vậy rất khó để giải thích những sơ đồ tại một trong những cách chúng ta đã làm trong Chương 3: là một thuật toán cho một ngôn ngữ chấp nhận, hoặc như một máy trừu tượng. (Đối với các thuật toán một hoặc một máy, hành động đó sẽ được thực thi trên ở mỗi bước nên được một cách dễ hiểu và rõ ràng.)

Giáo viên hướng dẫn : PGS.TS.Phan Huy Khánh Nhóm học viên : Nguyễn Công Bằng Cao Bá Thành Võ Thị Ngọc Hà Lớp : Khoa học máy tính K12 ĐÀ NẴNG, 04/2010 Môn Lý Thuyết Tính Toán BỘ GIÁO DỤC ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG TIỂU LUẬN LÝ THUYẾT TÍNH TOÁN - 1 - Môn Lý Thuyết Tính Toán Phần lý thuyết Chương 4: Ôtômát không đơn định và định lý KLEENE 4.1. Ôtômat hữu hạn không đơn định Để chứng minh rằng các ngôn ngữ thông thường là giống như những ngôn ngữ tự nhiên mà có thể được thừa nhận bởi một ôtômat hữu hạn, nó là công cụ rất hữu ích để xem xét ngôn ngữ chính quy rất giống với một ôtômat hữu hạn, tuy nhiên, vẫn có một tập hữu hạn các trạng thái và một vài chức năng của trạng thái kế tiếp để lựa chọn, nhưng với các tiêu chuẩn khác. Nó chỉ ra rằng các thiết bị này nhận ra cùng một ngôn ngữ đúng đắn của các ôtômat hữu hạn nhưng thường là đơn giản để xây dựng và giải thích. Ví dụ 4.1. Hình 4-1a hiển thị các ôtômat hữu hạn xây dựng trong ví dụ 3.14, mà nhận ra ngôn ngữ L tương ứng với biểu thức chính quy (11 +110) * 0. Bây giờ nhìn vào biểu đồ trong hình 4-1b. Các lỗi này được các sơ đồ của một ôtômat hữu hạn đưa ra hai lý do rõ ràng khác nhau. Từ một số trạng thái không có quá trình chuyển đổi cho cả hai ký hiệu đầu vào (từ trạng thái q4 không có quá trình chuyển đổi ở tất cả các trạng thái); và từ một trạng thái, q0, có hai mũi tên tương ứng với đầu vào 1. Các cách để giải thích đầu tiên của các tính năng này rất dễ dàng: Do không có quá trình chuyển đổi từ một trạng thái q nghĩa là từ q không có bắt đầu với một dữ kiện đầu vào có thể cung cấp cho kết quả của một trạng thái đang được chấp nhận. Chúng ta có thể tạo ra một quá trình chuyển đổi bằng cách tạo một trạng thái"chết" mà các thiết bị có thể đi từ q trên một đầu vào, có một đặc tính mà mỗi khi thiết bị nhận đầu vào một trạng thái mà nó không bao giờ có thể rời khỏi nó. Tuy nhiên, quá trình chuyển đổi này sẽ không bao giờ được thực thi trong bất cứ trình tự dịch chuyển của các trạng thái đi đến một trạng thái được chấp nhận. Do đó, để nó thoát ra khỏi mà không ảnh hưởng đến bất cứ trạng thái chuyển đổi khác(ngoại trừ việc nó vi phạm các luật), và nó làm cho sơ đồ đơn giản. Lỗi thứ hai trong các quy định cho Ôtômat hữu hạn có vẻ là nghiêm trọng hơn. Nếu như có hai quá trình chuyển đổi từ q0 trên đầu vào 1, sau đó nó không rõ ràng những gì thiết bị này là phải làm trong tình hình đó, và vì vậy rất khó để giải thích những sơ đồ tại một trong những cách chúng ta đã làm trong Chương 3: là một thuật toán cho một ngôn ngữ chấp nhận, hoặc như một máy trừu tượng. (Đối với các thuật toán một hoặc một máy, hành động đó sẽ được thực thi trên ở mỗi bước nên được một cách dễ hiểu và rõ ràng.) - 2 - Môn Lý Thuyết Tính Toán q2 q1 q0 q3 0 1 1 0 q0 s r t u p 1 0 0,1 0 0 1 1 0 1 0,1 q4 1 1 (a) (b) Hình 4-1. Tuy nhiên, có một ý nghĩa trong đó hình 4-1b dường như phản ánh chính xác các cấu trúc của biểu thức thông thường, một cảm giác mà nó là, trên thực tế, dễ dàng nhận dạng như phù hợp với các biểu hiện thường xuyên hơn là ôtômat hữu hạn. Cho bất kỳ một chuỗi x trong L, nó rất dễ dàng để mô tả đường dẫn trong sơ đồ tương ứng với x và từ trạng thái đầu q0 đến trạng thái q4. Bắt đầu tại q0, và cho mỗi lần xuất hiện một trong những chuỗi 11 hoặc 110 trong phần tử của x tương ứng đến (11 + 110) *, nó tạo vòng lặp thích hợp rồi quay về q0; khi gặp phải 0 là kết thúc, đường dẫn dịch chuyển đến trạng thái q4 chấp nhận. Rõ ràng rằng bất kỳ đường dẫn bắt đầu từ q0 và kết thúc tại q4 tương ứng với một số chuỗi dưới dạng biểu thức thông thường. Bây giờ chúng ta có cách tiếp cận theo hướng khác hình 4-1b, mặc dù nó không giống như cách chúng ta giải thích một sơ đồ chuyển tiếp cho một ôtômat hữu hạn. Thay vì yêu cầu cho dù một số đường dẫn tương ứng với một đường dẫn đến một dãy trạng thái được chấp nhận, chúng ta tìm hiểu một vài đường dẫn tương ứng với từng chuỗi. Chúng ta có thể so sánh điều này áp dụng để giải quyết trực tiếp cho một chuỗi x (11110110) tương ứng với biểu thức chính quy của chúng ta, (11 + 110) * 0. có một số cách chúng ta có thể áp dụng kết hợp với chúng, và một số phương pháp tiếp cận sẽ không hoạt động được(ví dụ, kết hợp tiền tố 1111 với - 3 - Môn Lý Thuyết Tính Toán (11 + 110) *), tuy nhiên, nếu có ít nhất một cách kết hợp với chúng, chúng ta kết luận rằng x tương ứng với biểu thức chính quy. Một cách hữu ích của tư duy về tình hình này là giới thiệu ý tưởng đoán. Trong cố gắng để phù hợp với chuỗi 11110110 để biểu thức thông thường (11 + 110) * 0, chúng ta nhìn vào phần tử 1 đầu tiên của chuỗi. Chúng ta có thể đoán rằng cách thích hợp để sử dụng nó như phần tử đầu tiên là 1 trong chuỗi 110; Tuy nhiên, cho đến khi chúng ta kiểm tra chi tiết của chuỗi chúng ta không biết liệu đoán của chúng ta là chính xác. Tương tự, tại các sơ đồ trong hình. 4-1b, khi chúng ta đang ở trạng thái q0 và chúng ta nhận được ký tự đầu vào 1, chúng ta đoán trong đó có nhãn 1 thích hợp theo mũi tên. Đoán sai có nghĩa là chúng ta trả lời "không" cho một chuỗi đó là thực tế trong ngôn ngữ. Đây không phải là một vấn đề nghiêm trọng, bởi vì chúng ta giải thích của biểu đồ là nếu có bất kỳ chuỗi đoán rằng khônễnây dựng một câu trả lời tích cực, chuỗi nên được chấp nhận. Chúng tôi hầu như đã sẵn sàng cho một định nghĩa chính thức của minh hoạ “hình tượng trưng” trừu tượng bằng hình. 4-1b. Thay đổi duy nhất chúng ta sẽ cần phải thực hiện trong định nghĩa của một ôtômat hữu hạn liên quan đến chức năng chuyển đổi. Như chúng ta đã thấy trong ví dụ 4.1, cho một sự kết hợp cụ thể của một trạng thái và ký tự một đầu vào, có thể không có trạng thái đặc biệt nào để mà dịch chuyển, hoặc có thể có một vài. Điều này thừa nhận rằng nếu chúng ta muốn chức năng chuyển đổi δ được định nghĩa trên Q × Σ, như đã trình bày trước đó, giá trị sẽ không phải là một yếu tố của Q nhưng một tập hợp con của Q- có thể tập hợp rỗng, có thể một tập hợp với vài yếu tố. Sự giải thích của chúng ta đó là δ(q, a) miêu tả tập hợp các trạng thái mà có thể được xem là hợp lý, như một kết quả ở trong trạng thái q tại bước ưu tiên và sau đó xử lý ký tự đầu vào a. Điều này có nghĩa rằng tại thời điểm này chúng ta xem hình tượng trưng như là không đơn định: Tại một vài giai đoạn nó sẽ có một chọn lựa cho sự dịch chuyển, và mỗi lần điều này xảy ra nó chọn một di chuyển trong một vài hướng đi không rõ ràng. Ngay sau đó, chúng ta sẽ thấy rằng tính không đơn định thực sự rõ ràng hơn bởi vì chúng ta sẽ phải xây dựng một ôtômat hữu hạn thông thường đó được tái tạo chính xác các hoạt động như máy không đơn định. Định nghĩa 4.1. Một ôtômat hữu hạn không đơn định, được viết tắt là NFA, gồm 5 thành phần M =(Q, Σ, q 0 , A, δ), mà Q và Σ là các tập hợp hữu hạn không rỗng, q 0 ∈ Q, A ⊂ Q, và δ: Q × Σ→ 2 Q Q là tập hợp các trạng thái, Σ là bảng mẫu tự, q 0 là trạng thái đầu, và A là tập hợp các trạng thái được chấp nhận, 2 Q có nghĩa là tập hợp của tập hợp con của Q. Cũng giống trong trường hợp các ôtômat hữu hạn, nó hữu ích để mở rộng chức năng dịch chuyển δ từ Q × Σ để mở rộng hơn tập hợp Q × Σ * . Cho một ôtômat hữu hạn không đơn định M, δ * (q, x) là tập hợp các trạng thái của M có thể được xem là hợp lý như kết quả của sự bắt đầu trong trạng thái p và xử lý các ký tự và ở chuỗi x. Công thức đệ quy cho các ôtômat hữu hạn là: - 4 - Môn Lý Thuyết Tính Toán δ * (p, xa) = δ(δ * (p, x), a) Tại p là trạng thái bất kỳ, x là chuỗi bất kỳ trong Σ * , và a là ký tự đơn bất kỳ trong bảng mã tự. Chúng ta sẽ cho một định nghĩa đệ quy như sau: Tuy nhiên, cho chúng ta bắt đầu với phương pháp dể tiếp cận hơn. Trước hết, chúng ta không muốn nói rằng chỉ trạng thái M có thể nhận từ p bằng một kết quả của việc xử lý Λ là p; chỉ khác bây giờ là chúng ta viết δ * (p, Λ)={p}, đúng hơn δ * (p, Λ)=p. Nếu x = a 1 a 2 …a n , thì nói rằng M có thể nhận trạng thái q sau khi xử lý x điều đó có nghĩa là có các trạng thái p 0 ,p 1, p 2 ,…,p n sao cho p 0 = p, p n = q, và cho mỗi i > 0, M có thể nhận trạng thái p i từ p i – 1 bằng cách xử lý a i . Một cách đơn giản hơn để nói rằng “M có thể nhận p i từ p i – 1 bằng cách xử lý a i ” là chính xác. P i ∈ δ(p i - 1 , a i ) Do đó, mô tả đầu tiên của chúng ta về chức năng của δ * như sau. Định nghĩa 4.2a(Định nghĩa không đệ quy của δ * cho một ôtômat hữu hạn không đơn định). Cho một ôtômat hữu hạn không đơn định tuỳ ý M =(Q, Σ, q 0 , A, δ) và cho bất kỳ p ∈ Q, δ * (p, Λ)={p}. Cho bất kỳ p ∈ Q và cho bất kỳ x = a 1 a 2 …a n ∈ Σ * , δ * (p, x) là tập hợp tất cả các trạng thái q cho trạng thái nào có ở một dãy của các trạng thái p = p 0 , p 1 ,…, p n – 1 , p n = q được thoả mãn. p i ∈ δ(p i - 1 , a i ) cho mỗi i với 1 < i < n Theo thứ tự để tồn tại mô tả một cách đệ của δ * , chúng ta ghi chuỗi x bằng ya n , tại y = a 1 a 2 …a n – 1 . Nếu q ∈ δ * (p, ya n ), thì theo định nghĩa của chúng ta có các trạng thái p = p 0 , p 1 ,…, p n – 1 , p n = q sao cho mỗi i > 0, p i ∈ δ(p i - 1 , a i ). Nếu chúng ta dừng đúng trước bước sau cùng và áp dụng định nghĩa, chúng ta có thể phát biểu rằng p n – 1 ∈ δ * (p, y) và do đó q = p n ∈ δ(r, a n ) cho một vài r ∈ δ * (p, y). Nó mặc dù dể hiểu mà đối số có thể bị nghịch đảo: Nếu p n ∈ δ(r, a n ) cho vài r ∈ δ * (p, y), thì chúng ta có thể kết thúc từ định nghĩa mà p n ∈ δ * (p, ya n ). Kết thúc là công thức đệ quy chúng ta cần: δ * (p, ya n ) = {q | q ∈ δ(r, a n ) cho vài r ∈ δ * (p, y)} hoặc, ngắn gọn hơn, δ * (p, ya n ) = U δ(r, a n ) r ∈ δ * (p, y) Định nghĩa 4.2b(Định nghĩa đệ quy của δ * cho một Ôtômat hữu hạn không đơn định). Cho M=(Q, Σ, q 0 , A, δ) là một ôtômat hữu hạn không đơn định. Chức năng δ * : Q × Σ * → 2 Q được định nghĩa như sau: 1. Cho bất kỳ q ∈ Q, δ * (q, Λ)={q}. 2. Cho bất kỳ y ∈ Σ * , a ∈ Σ, và q ∈ Q, δ * (q, ya) = U δ(p, a) p ∈ δ * (q, y) - 5 - Môn Lý Thuyết Tính Toán Chúng ta phát biểu rằng một chuỗi x được chấp nhận bởi một ôtômat hữu hạn không đơn định M có nghĩa rằng có một dãy các dịch chuyển M có thể tạo nên, Bắt đầu trong trạng thái đầu và xử lý các ký hiệu của x, ở đó sẽ được chấp nhận ở trạng thái đầu. Trong những từ khác, M chấp nhận x nếu thiết lập các trạng thái trong mà M có thể kết thúc cho kết quả xử lý x chứa tại trạng thái chấp nhận đầu tiên. Định nghĩa 4.3. Cho M = (Q, Σ, q 0 , A, δ) là một ôtômat hữu hạn không đơn định. Chuỗi x ∈ Σ * được chấp nhận bởi M nếu δ * (q 0 , x) ∩ A ≠ ø. Ngôn ngữ thừa nhận, hoặc chấp nhận, bởi M thì cho L(M) của tất cả các chuỗi được chấp nhận bởi M. Cho bất kỳ ngôn ngữ nào L ⊂ Σ * , L được thừa nhận bởi M nếu L = L(M). Ví dụ 4.2. Cho M = (Q, Σ, q 0 , A, δ), tại Q = {q 0 , q 1 , q 2 , q 3 }, Σ = {0, 1}, A = {q 3 }, và δ được cho bởi bảng sau: q δ(q, 0) δ(q, 1) q 0 {q 0 } {q 0 , q1} q 1 {q 2 } {q 2 } q 2 {q 3 } {q 3 } q 3 ø ø Khi đó M được minh hoạ bởi sơ đồ dịch chuyển trong hình 4-2. Cho phép chúng ta dùng để xác định L(M) bằng cách tính δ * (q 0 , x) cho một vài chuỗi x theo chiều tăng dần. Ta có nhận xét thứ nhất rằng từ định nghĩa không đệ quy của δ * , nó hầu hết là hiển nhiên với δ và δ * chấp nhận cho các chuỗi có độ dài 1(cũng áp dụng cho bài tập 4.2). q0 q1 q2 q3 0,1 1 0,1 0,1 Hình 4-2 Vấn đề đó được phát biểu bởi sự kế thừa ở bảng trước đó δ * (q 0 , 0) = {q 0 } và δ * (q 0 , 1) = {q 0 , q 1 }. - 6 - Môn Lý Thuyết Tính Toán δ * (q 0 , 11) = U δ(p, 1) (được định nghĩa từ δ * ) p ∈ δ * (q 0 , 1) = U δ(p, 1) p ∈ {q 0 , q 1 } = δ(q 0 , 1) ∪ δ(q 1 , 1) = {q 0 , q 1 } ∪ {q 2 } = {q 0 , q 1 , q 2 } δ * (q 0 , 01) = U δ(p, 1) p ∈ δ * (q 0 , 0) = U δ(p, 1) p ∈ {q 0 } = δ(q 0 , 1) = {q 0 , q 1 } δ * (q 0 , 111) = U δ(p, 1) p ∈ δ * (q 0 , 11) = δ(q 0 , 1) ∪ δ(q 1 , 1) ∪ δ(q 2 , 1) = {q 0 , q 1 , q 2 ,q 3 } δ * (q 0 , 011) = U δ(p, 1) p ∈ δ * (q 0 , 01) = δ(q 0 , 1) ∪ δ(q 1 , 1) = {q 0 , q 1 , q 2 } - 7 - Môn Lý Thuyết Tính Toán Tại điểm này chúng ta thấy rằng 111 được chấp nhận bởi M và 011 thì không. bạn có thể thấy nếu bạn nghiên cứu sơ đồ trong hình 4-2 ở đó δ * (q 0 , x) chứa q 1 nếu và chỉ nếu x kết thúc bằng 1; và do đó ngôn ngữ được thừa nhận bởi M là: {0, 1}*{1}{0, 1} 2 Ngôn ngữ này được gọi là L 3 trong ví dụ 3.15, cho các chuỗi với độ dài tối thiểu bằng 3 chứa một phần tử 1 ở vị trí thứ ba kể từ cuối chuỗi. Được trình bày ở sơ đồ trong hình 4-2 như một mô hình mẫu, bạn có thể dễ dàng xây dựng cho bất kỳ n > 1 một ôtômat hữu hạn không đơn định với n + 1 trạng thái đó thừa nhận L n . Bởi vì trong ví dụ 3.14 chúng ta đã trình bày rằng bất kỳ ôtômat hữu hạn thường chấp nhận L n cần ít nhất 2 n trạng thái, đơn giản để hiểu rằng một ôtômat hữu hạn không đơn định thừa nhận một ngôn ngữ sẽ có ít trạng thái hơn ôtômat hữu hạn thừa nhận ngôn ngữ. Bây giờ chúng ta muốn biểu diễn, tuy nhiên, mặc dù một ôtômat hữu hạn không đơn định có thể cung cấp dựa trên các khái niệm theo hướng đơn giản của việc thừa nhận cho một ngôn ngữ hơn một ôtômat hữu hạn, các ôtômat hữu hạn không đơn định như là một tập hợp không có tác động mạnh hơn các ôtômat hữu hạn: bất kỳ ngôn ngữ nào cũng được chấp nhận bởi một ôtômat hữu hạn không đơn định ngoài ra cũng được chấp nhận bởi một(có lẽ làm phức tạp hơn) ôtômat hữu hạn. Cho phép chúng ta xây dựng sự chứng minh cho sự kiện này, bằng cách chỉ ra làm thế nào để loại trừ không đơn định từ một ôtômat hữu hạn không đơn định bất kỳ theo thứ tự sao cho vẫn tồn tại một ôtômat hữu hạn thừa nhận cùng ngôn ngữ. Điều này có nghĩa là chúng ta cần đến định nghĩa “các trạng thái ” trong ôtômat hữu hạn như là một hướng đi cho mỗi sự kết hợp của trạng thái và ký hiệu vào, cho kết quả đúng của một trạng thái. Giải pháp đã được thừa nhận bởi định nghĩa của một ôtômat hữu hạn khôngn đơn định: chức năng thay đổi trạng thái tạo nên cặp trạng thái vào đến một tập hợp các trạng thái. Chú ý ít được dùng ở đây. Nó hoàn toàn không đơn định để nói đến một cặp (p, a) ∈ Q × Σ có vài trạng thái tương ứng được chấp nhận; nó ít hợp lý nhưng có thể nói rằng tương ứng với (p, a) có đúng một tập hợp các trạng thái. Nói cách khác, không đơn định là rõ ràng và có lẽ chỉ phát sinh từ ý niệm của chúng ta về một “trạng thái" là gì. Trong chứng minh của định lý 3.4 trong chương cuối cùng, chúng ta coi các trạng thái cặp là các yếu tố của Q. Sau đó, tương ứng với "các trạng thái" S và ký hiệu đầu vào a (để tập hợp của tất cả các cặp (p, a) cho mỗi p ∈ S), có một "trạng thái" đúng mà kết quả: kết hợp của các tập hợp δ(p, a) cho p ∈ S. Một cách đột ngột, không đơn định dường như đã biến mất, và kết quả tính toán của máy mô phỏng thiết bị gốc một cách rõ ràng, được cung cấp mà chúng ta xác định các trạng thái đầu tiên và cuối cùng chính xác. Một tên thích hợp cho kỹ thuật này là việc xây dựng tập hợp con: Các trạng thái trong ôtômat hữu hạn là tập con của trạng thái thiết lập của ôtômat hữu hạn không đơn định. - 8 - Môn Lý Thuyết Tính Toán Định lý 4.1. Cho bất kỳ ôtômat hữu hạn không đơn định M = (Q, Σ, q 0 , A, δ) chấp nhận ngôn ngữ L ⊂ Σ * , có một ôtômat hữu hạn M 1 = (Q 1 , Σ, q 1 , A 1 , δ 1 ) cũng chấp nhận L. Chứng minh: Q 1 được định nghĩa như sau: Q 1 = 2 Q q 1 = {q 0 } cho q ∈ Q 1 và a ∈ Σ, δ 1 (q, a) = U δ(p, a) p ∈ q A 1 = {q ∈ Q 1 | q ∩ A ≠ ø} Định nghĩa sau đây là một định nghĩa đúng bởi vì một chuỗi x sẽ được chấp nhận bởi M 1 nếu, bắt đầu tại q 0 , tập hợp các trạng thái mà M sẽ kết thúc bằng một kết quả xử lý x chứa yếu tố nhỏ nhất của A. Sự kiện mà M 1 chấp nhận cùng ngôn ngữ như M cho phép từ sự kiện mà cho bất kỳ x ∈ Σ * , δ 1 * (q 1 , x) = δ * (q 0 , x) Bây giờ chúng ta bằng cách chứng minh theo quy nạp trên x. Chú ý rằng chức năng δ 1 * và δ * được định nghĩa theo nhiều cách khác nhau: δ * trong định nghĩa 4.3, từ M là một ôtômat hữu hạn không đơn định, và δ 1 * trong định nghĩa 3.3, từ M 1 là một ôtômat hữu hạn. Nếu x ∈Λ, then δ 1 * (q 1 , x) = δ 1 * (q 1 , Λ) = q 1 (bằng định nghĩa của δ 1 * ) = {q 0 } (bằng định nghĩa của q 1 ) = δ * (q 0 , Λ) (bằng định nghĩa của δ * ) = δ * (q 0 , x) Chứng minh quy nạp với giả thuyết rằng x là một chuỗi thoả mãn δ 1 * (q 1 , x) = δ * (q 0 , x), và chúng ta muốn chứng minh rằng cho bất kỳ a ∈ Σ, δ 1 * (q 1 , xa) = δ * (q 0 , xa). δ 1 * (q 1 , xa) = δ 1 (δ 1 * (q 1 , x), a) (bằng định nghĩa của δ 1 * ) = δ 1 (δ * (q 0 , x), a) (bằng chứng minh quy nạp với giả thuyết ) = U δ(p, a) (bằng định nghĩa của δ 1 ) p ∈ δ * (q 0 , x) = δ * (q 0 , xa) (bằng định nghĩa của δ * ) - 9 - Môn Lý Thuyết Tính Toán M và M 1 thừa nhận cùng ngôn ngữ thì bây giờ dễ dàng nhận thấy. Một chuỗi x được cấp nhận bởi M 1 nếu δ 1 * (q 1 , x) ∈ A 1 ; bây giờ chúng ta có thể phát biểu rằng điều này đúng nếu và chỉ nếu δ * (q 0 , x) ∩ A ≠ ø. Trong trường hợp khác, x dược chấp nhận bởi M 1 nếu và chỉ nếu x được chập nhận bởi M. Điều quan trọng là thực hiện việc chứng minh của định lý đưa ra một thuật toán(xây dựng tập hợp con) cho sự loại bỏ không đơn định từ một ôtômat hữu hạn không đơn định. Cho chúng ta minh hoạ thuật toán bằng cách trở lại ôtômat hữu hạn không đơn định trong ví dụ 4.2. Ví dụ 4.3. Bảng trong ví dụ 4.2 trình bày chức năng dịch chuyển của ôtômat hữu hạn không đơn định trình bày hình 4-2. Xây dựng tập hợp con có thể trình diễn một ôtômat hữu hạn bằng 16 trạng thái, từ Q có 16 tập hợp con. Tuy nhiên, chúng ta có thể nhận được bởi một vài nếu chúng ta đi theo như phương pháp trong ví dụ 3.16 và chỉ dùng những trạng thái đó có thể chấp nhận được từ trạng thái đầu. Chức năng dịch chuyển trong ôtômat hữu hạn của chúng ta là δ 1 , và chúng ta bắt đầu tính toán một vài gia strị của nó. Tại mỗi thời điểm một trạng thái mới S xuất hiện trong việc tính toán cảu chúng ta, chúng ta phải thực hiện tính toán bao gồm δ 1 (S, 0) và δ 1 (S, 1). δ 1 ({q 0 }, 0) = {q 0 } δ 1 ({q 0 }, 1) = {q 0 , q 1 } δ 1 ({q 0 , q 1 }, 0) = δ ({q 0 }, 0) ∪ δ({q 1 }, 0) = {q 0 } ∪ {q 2 } = {q 0 , q 2 } δ 1 ({q 0 , q 1 }, 1) = δ ({q 0 }, 1) ∪ δ({q 1 }, 1) = {q 0 , q 1 } ∪ {q 2 } = {q 0 , q 1 , q 2 } δ 1 ({q 0 , q 2 }, 0) = δ ({q 0 }, 0) ∪ δ({q 2 }, 0) = {q 0 } ∪ {q 3 } = {q 0 , q 3 } δ 1 ({q 0 , q 2 }, 1) = {q 0 , q 1 } ∪ {q 3 } = {q 0 , q 1 , q 3 } Nó hiện diện trong các tiến trình của việc tính toán, xuất hiện tám trạng thái riêng biệt. Chúng ta đã được thảo luận trong ví dụ 3.14 mà tối thiểu việc này là hiển nhiên. Về việc đó, mặc dù chúng ta sẽ không mong đợi việc xảy ra trong toàn bộ, việc tính toán kết quả trong trường hợp ôtômat hữu hạn với một vài trạng thái hợp lý chấp nhận ngôn ngữ mệnh lệnh. Được trình bày trong hình 4-3. Ví dụ 4.4. Chúng ta bỏ qua phần này bằng cách quay lại ôtômat hữu hạn không đơn định ban đầu để xem xét, một chi tiết trong hình 4-1b. với sự kiện, ôtômat hữu hạn đưa ra với thuật toán của chúng ta là một trong hình 4-1a; cho chúng ta thấy rằng làm thế nào để đạt được nó. Nếu chúng ta bỏ qua việc tính toán theo thứ tự những ưu tiên đơn giản, các trạng thái riêng biệt của ôtômat hữu hạn là tất yếu, theo thứ tự mà chúng xuất hiện, sự xuất hiện là {q 0 }, {q 4 } {q 1 q 2 }, ø, {q 0 , q 3 }, và {q 0 , q 4 }. Bảng quả dịch chuyển được trình bày trang tiếp theo. - 10 - [...]... được chấp nhận Với ví dụ đơn giản này thì không cần thiết phải tính toán trước để quyết định chuổi có được chấp nhận hay không Tuy nhiên với định nghĩa đệ quy của ∧(S) Và δ* Thì chúng ta có thể kiểm tra một chuổi có được chấp nhận hay không trên cơ sở của thuật toán các tính toán phải khả thi và đưa ra được kết quả Trong mục 4.1 chúng ta đã đưa ra định lý 4.1 nói rằng: NFA không mạnh hơn FA với cùng... thuật toán để tính toán toán ∧(S), và sau đó để chứng minh rằng định nghĩa 4.5b có thể tính - 14 - Môn Lý Thuyết Tính Toán Giả sử rằng chúng ta lấy S để được tập hợp {s}, sau lần thực hiện thứ nhất T là {s, w}, sau lần thực hiện thứ hai thì T là {s, w, q0} , sau lần thực hiện thứ ba thì T là {s, w, q0 , p, t}; và trong ∧({S}) cho nên T là {s, w, q0 , p, t} chúng ta sử dụng định nghĩa đệ quy để tính toán. .. θ Hình 4-8b là NFA, lưu ý rằng trạng thái đầu A không được chấp nhận, vì từ sơ đồ đầu tiên một trạng thái chấp nhận không thể đạt được chỉ với các dịch chuyển ∧ - 21 - Môn Lý Thuyết Tính Toán Không giống như ví dụ 4.7 chúng ta khử không đơn định từ NFA, tập các trạng thái mới được đưa ra băng cách thêm vào các trạng thái Ví dụ: Tính toán không phức tạp và kết quả được đưa ra trong hình 4.8c δ 2 ({ A... chấp nhận bởi một NFA- Λ, và rằng nếu L 1 và L 2 là các ngôn ngữ có thể chấp nhận và rồi các phép toán hợp, nối và định lý Kleene cũng có thể được chấp nhận a) b) c) Hình 4.9 NFA đối với 3 ngôn ngữ cơ bản thông thường Bây giờ giả sử rằng L 1 và L 2 được đón nhận bởi NFA- Λ , M 1 và M 2 tương ứng, cho mỗi i (1 và 2) Mi =(Qi ,Σ,qi ,Ai ,δi ) - 22 - δ1 (q, 0) Môn Lý Thuyết Tính Toán Bằng cách đổi tên trạng... } ∪ {E} ∪ θ = {C , E} 4.3 Định lý Kleene Hai mục đầu tiên của chương này đã cung cấp một số công cụ cho chúng ta dùng để chứng minh định lý 3.1 Để thuận tiện, chúng ta sẽ đi nói rõ hai phần, phần “Nếu” và phần “chỉ nếu”, khi các kết quả tách rời Định lý 4.4 (Định lý Kleene, phần 1) Nhiều ngôn ngữ thông thường có thể được chấp nhận bởi ôtômat hữu hạn Chứng minh Bởi vì định lý 4.3, có khả năng để biểu... này Định lý sau đây khẳng định rằng kết quả của định lý 4.1 và 4.2 ràng buộc lẫn nhau - 18 - Môn Lý Thuyết Tính Toán Định lý 4.3 cho bảng chử cái bất kỳ ∑ và một ngôn ngữ L bất kỳ L∈∑* ta có ba phát biểu sau: 1 L có thể được chấp nhận bởi một FA 2 L có thể được chấp nhận bởi một NFA 3 L có thể được chấp nhận bởi một NFA -∧ Chứng minh: theo định lý 4.1 và 4.2 ta có: Phát biểu 3 bao hàm phát biểu 2 Phát... ta có thể chuyển định nghia đệ quy sang thuật toán để tính toán ∧ (S) ( xem bài tập 2.50) Thuật toán để tính ∧ (S) : bắt đầu với T=S, tại mổi bước xem xét tất cả các tập δ (q,∧) , q ∈T, và thêm vào T phần tử bất kỳ không có trong T dừng lại khi không thay đổi được T Tập (S) là tập giá trị cuối cùng của T ∧ -kết thúc ( ∧- closure) của một tập là thành phần thêm vào chúng ta cần phải định nghĩa hàm đệ... nó Định lý 4.2: Nếu L ⊆ ∑* là một ngôn ngữ được chấp nhận bởi NFA- ∧ M= (Q, ∑ , q0, A, δ ) thì có một NFA M= (Q1, ∑ , q1, A1, δ1) chấp nhận ngôn ngữ L Chứng minh: trong chứng minh của định lý 4.1 chúng tôi bắt đầu với một NFA và loại bỏ tất cả các trường hợp không đơn định bằng cách thay thế trạng thái ∧ là một ký hiệu không đơn định Ví dụ: cho các dich chuyển trong M như sau: p 0 q ∧ r - 16 - Môn Lý. .. được phép thực hiện quá trình dịch chuyển, không chỉ trên các ký hiệu đầu vào từ bảng chữ cái, mà cũng ngày đầu vào null ∧) Định nghĩa 4.4 Một ôtômat hữu hạn không xác định với dịch chuyển -∧ (viết tắt là NFA- là một bộ năm (Q, ∑, q0, A, δ ) mà Q và ∑ là những tập đơn định q0 ∈ Q Như trước, chúng ta cần phải định nghĩa một chức năng mở rộng δ* để đưa ra một định nghĩa chính xác, chấp nhận của một chuỗi... ∧ r - 16 - Môn Lý Thuyết Tính Toán Lúc đó, bắt đầu từ p ta đưa vào ký tự 0 thì nó cho phép chúng ta hoặc đến q hoặc đến r M 1 là ô tô mat không đơn định, chúng ta có thể loại ra các dịch chuyển mà không làm thay đổi các trạng thái bằng cách thêm vào các dịch chuyển từ p đến r với ký tự vào 0 Đây là cách giải quyết tổng quát Chúng ta có thể dùng các trạng thái trong tập Q của M 1 và các trạng thái đầu . δ * (q 0 , 01) = U δ(p, 1) p ∈ δ * (q 0 , 0) = U δ(p, 1) p ∈ {q 0 } = δ(q 0 , 1) = {q 0 , q 1 } δ * (q 0 , 11 1) = U δ(p, 1) p ∈ δ * (q 0 , 11 ) = δ(q 0 , 1) ∪ δ(q 1 , 1) ∪ δ(q 2 , 1) . Thuyết Tính Toán q2 q1 q0 q3 0 1 1 0 q0 s r t u p 1 0 0 ,1 0 0 1 1 0 1 0 ,1 q4 1 1 (a) (b) Hình 4 -1. Tuy nhiên, có một ý nghĩa trong đó hình 4-1b dường như phản ánh. chuỗi 11 110 110 để biểu thức thông thường (11 + 11 0) * 0, chúng ta nhìn vào phần tử 1 đầu tiên của chuỗi. Chúng ta có thể đoán rằng cách thích hợp để sử dụng nó như phần tử đầu tiên là 1 trong

Ngày đăng: 11/11/2014, 15:21

Từ khóa liên quan

Mục lục

  • ĐÀ NẴNG, 04/2010

  • TIỂU LUẬN

    • LÝ THUYẾT TÍNH TOÁN

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

Tài liệu liên quan