BÀI GIẢNG lý THUYẾT ôtômát và NGÔN NGỮ hệ THỐNG

316 591 1
BÀI GIẢNG lý THUYẾT ôtômát và NGÔN NGỮ hệ THỐNG

Đ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

Trường Đại học Bách khoa Khoa Công Nghệ Thông Tin BÀI GIẢNG MÔN HỌC LÝ THUYẾT ÔTÔMÁT & NNHT Giảng Viên: Hồ Văn Quân Thuvientailieu.net.vn NỘI DUNG MÔN HỌC „ „ „ „ „ „ „ „ „ Chương Chương Chương Chương Chương Chương Giới thiệu lý thuyết tính toán Ôtômát hữu hạn Ngôn ngữ qui văn phạm qui Các tính chất ngôn ngữ qui Ngôn ngữ phi ngữ cảnh Đơn giản hóa văn phạm phi ngữ cảnh dạng chuẩn Chương Ôtômát đẩy xuống Chương Các tính chất ngôn ngữ phi ngữ cảnh Chương Máy Turing Trang Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin TÀI LIỆU THAM KHẢO Bài giảng lý thuyết Ngôn ngữ Hình thức Automat Hồ Văn Quân [2002] An Introduction to Formal Languages and Automata Peter Linz [1990] Trang Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin HÌNH THỨC ĐÁNH GIÁ „ „ Sẽ có thông báo cụ thể cho khóa học Tuy nhiên, thường cho bên Thi trắc nghiệm „ „ „ „ Thời gian: 120 phút Số lượng: 50 câu Được phép xem tài liệu tờ giấy A4 Làm tập lớn cộng điểm (không bắt buộc) „ „ Nộp tập lớn báo cáo vào cuối học kỳ Cộng tối đa điểm Trang Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin CÁC MÔN LIÊN QUAN „ „ „ Ngôn ngữ lập trình Trình biên dịch (*) Toán tin học Trang Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Chương Giới thiệu lý thuyết tính toán 1.1 Giới thiệu 1.2 Yêu cầu kiến thức 1.3 Ba khái niệm „ „ „ Ngôn ngữ (languages) Văn phạm (grammar) Ôtômát (máy tự động) 1.4 Một vài ứng dụng Trang Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Giới thiệu „ Ôtômát „ „ Các mô hình tính toán tự động Ngôn ngữ hình thức (formal languages): „ „ „ „ „ Định nghĩa Phân loại ngôn ngữ Quan hệ với ôtômát Ứng dụng vào việc xây dựng ngôn ngữ lập trình Trang Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Yêu cầu kiến thức „ Lý thuyết „ „ „ Kỹ thuật chứng minh „ „ „ Tập hợp Đồ thị Qui nạp Phản chứng Kỹ thuật mô Trang Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Ba khái niệm „ „ „ Ngôn ngữ (languages) Văn phạm (grammar) Ôtômát (automata) Trang Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Ngôn ngữ „ Ngôn ngữ gì? „ „ „ Các từ điển định nghĩa ngôn ngữ cách không xác hệ thống thích hợp cho việc biểu thị ý nghĩ, kiện, hay khái niệm, bao gồm tập kí hiệu qui tắc để vận dụng chúng Định nghĩa chưa đủ xác để nghiên cứu NNHT Chúng ta cần xây dựng định nghĩa toán học cho khái niệm ngôn ngữ Trang 10 Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Bài tập „ „ Nếu xây dựng so sánh, cộng xóa với mô hình kết hợp xây dựng hàm tính toán yêu cầu Xây dựng máy Turing thực phép toán sau „ „ „ Hàm f(x, y) slide Phép AND, OR, XOR Phép cộng hai số nhị phân Trang 302 Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Luận đề Turing „ „ „ „ „ Máy Turing xây dựng từ phần đơn giản hơn, nhiên cồng kềnh cho dù phải thực phép toán đơn giản Điều “tập lệnh” máy Turing đơn giản hạn chế Vậy máy Turing có sức mạnh đến đâu so sánh với sức mạnh máy tính ngày nay? Mặc dầu với chế đơn giản máy Turing giải toán phức tạp mà máy tính ngày giải Để chứng minh điều người ta chọn máy tính điển hình, sau xây dựng máy Turing thực tất lệnh tập lệnh máy tính (tập lệnh CPU) Tuy làm điều chưa phải chứng minh chặt chẽ để chứng tỏ máy Turing có sức mạnh ngang với máy tính ngày Trang 303 Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Luận đề Turing (tt) „ „ „ Tuy nhiên không đưa phản chứng chứng minh máy Turing không mạnh với máy tính ngày Cuối cùng, với nhiều chứng mạnh mẽ chưa đủ chứng minh chặt chẽ, chấp nhận luận đề Turing sau định nghĩa “sự tính toán học” Luận đề Turing „ „ „ Bất máy tính số tồn thực máy Turing Không đưa toán, giải mà cách trực quan xem giải thuật, mà không tồn máy Turing giải Các mô hình thay khác đưa cho tính toán học số chúng mạnh mô hình máy Turing Trang 304 Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Giải thuật „ „ „ Luận đề đóng vai trò quan trọng khoa học máy tính giống vai trò định luật vật lý hóa học Bằng việc chấp nhận luận đề Turing, sẵn sàng để định nghĩa xác khái niệm giải thuật, mà khoa học máy tính Định nghĩa 9.5 „ Một giải thuật cho hàm f: D → R máy Turing M cho cho chuỗi nhập d ∈ D băng nhập, cuối M dừng với kết f(d) ∈ R băng Một cách cụ thể là: q0d |_*M qf f(d), qf ∈ F, ∀ d ∈ D Trang 305 Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Chương 10 Phụ lục 10.1 Một số định nghĩa 10.2 Tổng kết đối tượng học 10.3 Mối quan hệ đối tượng 10.4 Sự phân cấp lớp ngôn ngữ hình thức theo Chomsky 10.5 Một số giải thuật quan trọng khác Trang 306 Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Máy Turing không đơn định „ Định nghĩa 10.6 „ „ Định lý 10.5 „ „ Là máy Turing mà hàm δ định nghĩa sau: δ: Q × Σ→ 2Q × Σ× {L, R} Lớp máy Turing không đơn định tương đương với lớp máy Turing chuẩn Định lý 10.6 „ Tập tất máy Turing vô hạn đếm Trang 307 Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Ôtômát ràng buộc tuyến tính „ Định nghĩa 10.7 „ „ „ Một ôtômát ràng buộc tuyến tính (Linear Bounded Automat LBA) máy Turing không đơn định M = (Q, Σ, Γ, δ, q0, , F), Định nghĩa 10.6, ngoại trừ bị giới hạn Σ phải chứa hai kí tự đặc biệt [ ], cho δ(qi, [) chứa phần tử dạng (qj,[, R) δ(qi, ]) chứa phần tử dạng (qj,], L) Bằng lời, đầu đọc chạm đến dấu móc vuông hai đầu phải giữ lại đồng thời vượt vùng nằm hai dấu móc vuông Trong trường hợp nói đầu đọc bị giới hạn hai dấu móc vuông hai đầu Trang 308 Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Ôtômát ràng buộc tuyến tính (tt) „ Định nghĩa 10.7 „ „ Một chuỗi chấp nhận ôtômát ràng buộc tuyến tính có dãy chuyển hình trạng q0[w] |_* [x1qfx2] với qf ∈ F, x1, x2 ∈ Σ* Ngôn ngữ chấp nhận lba tập tất chuỗi chấp nhận lba Ví dụ „ Ngôn ngữ L = {anbncn: n ≥ 0} ngôn ngữ ràng buộc tuyến tính xây dựng lba chấp nhận Trang 309 Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Ngôn ngữ khả liệt kê đệ qui, đệ qui „ Định nghĩa 10.8 „ „ „ Một ngôn ngữ L gọi khả liệt kê đệ qui tồn máy Turing M chấp nhận |_* suy ngôn ngữ mà Từ định nghĩa dễ dàng tồn thủ tục liệt kê (các phần tử nó) khả liệt kê đệ qui Định nghĩa 10.9 „ Một ngôn ngữ L Σ gọi đệ qui tồn máy Turing M chấp nhận dừng w ∈ Σ+ Hay nói cách khác ngôn ngữ đệ qui tồn giải thuật thành viên cho Trang 310 Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Văn phạm „ Định nghĩa 10 „ „ „ „ Một văn phạm mà luật sinh không cần thõa ràng buộc tức có dạng α→β α ∈ (V ∪ T)*V(V ∪ T)*, β ∈ (V ∪ T)* gọi văn phạm loại văn phạm không hạn chế Một văn phạm mà luật sinh có dạng chiều dài vế trái nhỏ chiều dài vế phải tức có dạng α→β α ∈ (V ∪ T)*V(V ∪ T)*, β ∈ (V ∪ T)* |α| ≤ |β| gọi văn phạm loại hay văn phạm cảm ngữ cảnh Văn phạm phi ngữ cảnh gọi văn phạm loại Văn phạm qui gọi văn phạm loại Trang 311 Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Tổng kết lớp đối tượng Các lớp ngôn ngữ Chính qui Regular Tuyến tính Linear Phi ngữ cảnh đơn định Deterministic Context-Free Phi ngữ cảnh Context-Free Cảm ngữ cảnh Context-Sensitive Đệ qui Recusive Khả liệt kê đệ qui Recusively Enumerable Trang 312 Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Kí hiệu LREG LLIN LDCF LCF LCS LREC LRE Tổng kết lớp đối tượng (tt) Các lớp văn phạm Kí hiệu Chính qui ≡ Tuyến tính-phải tuyến tính-trái ≡ Loại Tuyến tính Phi ngữ cảnh đơn định: điển hình LL(k) LR(k) Regular ≡ RightLinear Left-Linear Linear LL(k) LR(k) GREG ≡ GR-LIN GL-LIN GLIN GLL GLR Phi ngữ cảnh ≡ Loại Cảm ngữ cảnh ≡ Loại Không hạn chế ≡ Loại Context-Free Context-Sensitive UnRestricted GCF GCS GUR Trang 313 Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Tổng kết lớp đối tượng (tt) Các lớp ôtômát Finite State Hữu hạn Đẩy xuống đơn định Deterministic Push Down Đẩy xuống không đơn Nondeterministic Push Down định Ràng buộc tuyến tính Linear Bounded Máy Turing Turing Machine Trang 314 Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Kí hiệu FSA (nfa, dfa) DPDA NPDA LBA TM Mối quan hệ lớp đối tượng Ngôn ngữ LREG LLIN LDCF LCF LCS LREC LRE „ Văn phạm Ôtômát GREC ≡ GL-LIN GR-LIN FSA ≡ DFA = NFA GLIN ⊂ NPDA DPDA ⊃ LL(k) LR(k) GCF NPDA GCS LBA ⊂ GUR GUR ⊂ TM TM Dấu ≡ có nghĩa theo định nghĩa, dấu = có nghĩa tương đương, dấu ⊃ có nghĩa tập cha (không bằng), dấu ⊂ có nghĩa tập (không bằng) Trang 315 Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Phân cấp ngôn ngữ theo Chomsky LRE LCS LCF LREG LRE LREC LCS LCF LDCF LREG Sơ đồ phân cấp đơn giản LCF LLIN LREG LDCF Sơ đồ phân cấp chi tiết Sơ đồ phân cấp lớp PNC Trang 316 Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin [...]... nghĩa ngôn ngữ „ Ngôn ngữ „ „ Là một tập con của Σ*, hay nói cách khác là một tập bất kỳ các câu trên bộ chữ cái Ví dụ „ „ „ Cho Σ = {a, b} Σ* = {λ, a, b, aa, ab, ba, bb, aaa, aab, } Tập {a, aa, aab} là một ngôn ngữ trên Σ Nó là một ngôn ngữ hữu hạn Tập L = {anbn : n ≥ 0} cũng là một ngôn ngữ trên Σ Nó là một ngôn ngữ vô hạn Trang 17 Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông... phạm „ Mô tả toán học cho ngôn ngữ „ „ „ Ngôn ngữ L1 bao gồm các chuỗi từ khóa begin, end của ngôn ngữ Pascal Các chuỗi biểu diễn cấu trúc lồng nhau của các cặp từ khóa này trong các chương trình trên ngôn ngữ Pascal Ngôn ngữ L2 bao gồm tập các danh hiệu của Pascal Xác định ngôn ngữ của văn phạm „ „ G1 G2 S → aSbS | bSaS | λ E→E+T|T T→T*F|F F → (E) | a | b Trang 28 Lý thuyết Ôtômát & Thuvientailieu.net.vn... thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Bài tập văn phạm (tt) „ Xây dựng văn phạm cho ngôn ngữ „ „ „ „ Ngôn ngữ L1 và L2 ở trang trên L3 = {wwR : w ∈ {a, b}*} L4 = {anbmcn+m : n, m ≥ 0} L5 = {anbn+mcm : n, m ≥ 0} Trang 29 Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Ôtômát „ Ôtômát là gì? „ „ „ Ôtômát, dịch nghĩa là máy tự động, là thiết bị có thể... trên ngôn ngữ „ Bù (complement), L „ „ Kết nối, L1L2 „ „ Bù của ngôn ngữ L trên bảng chữ cái Σ, được kí hiệu là: L = Σ* - L Cho 2 ngôn ngữ L1, L2 Kết nối của 2 ngôn ngữ L1, L2 là: L1L2 = { xy : x ∈ L1 , y ∈ L2 } Lũy thừa, Ln „ „ Lũy thừa bậc n của L, kí hiệu là Ln, là việc kết nối L với chính nó n lần L0 = {λ} n L =1 L2 L L3 n laàn Trang 18 Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ... thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Các khái niệm (tt) „ „ „ Thì S ⇒ aSb ⇒ aaSbb ⇒ aabb là một dãy dẫn xuất.Vì vậy có thể viết * aabb S⇒ Chuỗi aabb là một câu của ngôn ngữ được sinh ra bởi G, còn aaSbb là một dạng câu Ngôn ngữ tương ứng với văn phạm này là: L(G) = {anbn : n ≥ 0} Trang 27 Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Bài tập... các biến và các terminal Trang 23 Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Các khái niệm „ Dẫn xuất trực tiếp (directly derive), ⇒ „ „ „ Cho luật sinh x → y và chuỗi w = uxv Luật sinh trên có thể áp dụng tới chuỗi w Khi áp dụng ta sẽ nhận được chuỗi mới z = uyv w dẫn xuất ra z hay ngược lại z được dẫn xuất ra từ w và kí hiệu là: uxv ⇒ uyv Trang 24 Lý thuyết Ôtômát &... 15 Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Các khái niệm (tt) „ Σ*, Σ+ (bao đóng sao và bao đóng dương) „ „ „ „ Σ* là tập tất cả các chuỗi trên Σ kể cả chuỗi trống Σ+ là tập tất cả các chuỗi trên Σ ngoại trừ chuỗi trống Σ* = Σ+ ∪ {λ} ; Σ+ = Σ* - {λ} Σ thì hữu hạn còn Σ+ và Σ* là vô hạn đếm được Trang 16 Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ... tắc và dựa vào các quy tắc này con người lập trình cho nó hoạt động theo ý muốn của mình Máy tính số ngày nay chính là một máy tự động điển hình và mạnh nhất hiện nay Trang 30 Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Định nghĩa ôtômát „ Ôtômát „ Là một mô hình trừu tượng của máy tính số bao gồm các thành phần chủ yếu sau Input file Control unit Storage Output Trang 31 Lý. .. Công Nghệ Thông Tin Các phép toán trên chuỗi „ Kết nối (concatenation), wv „ „ w = a1a2 an và v = b1b2 bm là chuỗi: wv = a1a2 anb1b2 bm Ðảo (reverse), wR „ Ðảo của chuỗi w = a1a2 an là chuỗi: wR = an a2a1 Trang 13 Lý thuyết Ôtômát & Thuvientailieu.net.vn NNHT - Khoa Công Nghệ Thông Tin Các khái niệm (tt) Cho chuỗi w = uv „ Tiếp đầu ngữ (prefix) „ „ Tiếp vĩ ngữ (suffix) „ „ v được gọi lá tiếp vĩ ngữ của... - Khoa Công Nghệ Thông Tin Ngôn ngữ được sinh ra bởi văn phạm „ * Dẫn xuất gián tiếp ⇒ , ⇒ „ „ „ + Nếu w1 ⇒ w2 ⇒ ⇒ wn thì ta nói w1 dẫn xuất ra wn và viết * w w1 ⇒ n Nếu có ít nhất một luật sinh phải được áp dụng chúng ta viết: + w1 ⇒ wn Định nghĩa 1.2 „ Cho G = (V, T, S, P) là một văn phạm, thì tập: * L(G) = {w ∈ T* : S ⇒ w} được gọi là ngôn ngữ được sinh ra bởi G Trang 25 Lý thuyết Ôtômát & Thuvientailieu.net.vn

Ngày đăng: 14/08/2016, 18:54

Từ khóa liên quan

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

Tài liệu liên quan