Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 23 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
23
Dung lượng
334,61 KB
Nội dung
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: Nguyễn Thị Trúc Viên E-mail: nttvien@dit.hcmut.edu.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 tố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 & 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] Introduction to Automata Theory, Languages, and Computation – John E Hopcroft, Rajeev Motwani and Jeffrey D.Ullman [2001] Trang Lý thuyết Ơtơmát & 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 cuối kỳ Thời gian: 120 phút Số lượng: 50 câu Được phép xem tài liệu tờ giấy A4 Thi trắc nghiệm kỳ Thời gian: 90 phút Số lượng: 40 câu Được phép xem tài liệu tờ giấy A4 Trang Lý thuyết Ơtơmát & 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 (*) Tốn tin học Trang Lý thuyết Ơtơmát & NNHT - Khoa Công Nghệ Thông Tin Chương Giới thiệu lý thuyết tính tốn 1.1 Giới thiệu 1.2 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 & NNHT - Khoa Cơng Nghệ Thơng Tin Giới thiệu Ơtơmát Các mơ hình tính tố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 & 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 & 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 & 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 tốn học cho khái niệm ngơn ngữ Trang 10 Lý thuyết Ơtơmát & NNHT - Khoa Cơng Nghệ Thơng Tin Các khái niệm Bảng chữ (alphabet), Σ Là tập hợp Σ hữu hạn không trống kí hiệu (symbol) Ví dụ {A, B, C, , Z}: Bảng chữ La tinh {α, β, γ, , ϕ}: Bảng chữ Hi Lạp {0, 1, 2, , 9}: Bảng chữ số thập phân {I, V, X, L, C, D, M}: Bảng chữ số La Mã Trang 11 Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin Các khái niệm (tt) Chuỗi (string), w Ví dụ Là dãy hữu hạn kí hiệu từ bảng chữ Với Σ = {a, b}, abab aaabbba chuỗi Σ Qui ước Với vài ngoại lệ, sử dụng chữ thường a, b, c, cho phần tử Σ chữ u, v, w, cho tên chuỗi Trang 12 Lý thuyết Ơtơmát & NNHT - Khoa Cơng Nghệ Thơng Tin Các phép tốn chuỗi Kết nối (concatenation), wv w = a1a2 an v = b1b2 bm chuỗi: wv = a1a2 anb1b2 bm Ðảo (reverse), wR Ðảo chuỗi w = a1a2 an chuỗi: wR = an a2a1 Trang 13 Lý thuyết Ơtơmát & 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 gọi tiếp vĩ ngữ w Chiều dài chuỗi w u gọi tiếp đầu ngữ w Là số kí hiệu chuỗi, kí hiệu |w| Chuỗi trống (empty string) Là chuỗi khơng có kí hiệu nào, thường kí hiệu λ Trang 14 Lý thuyết Ơtơmát & NNHT - Khoa Công Nghệ Thông Tin Các khái niệm (tt) Nhận xét Các quan hệ sau với w: |λ| = 0; λw = wλ = w Nếu u, v chuỗi : |uv| = |u| + |v| Lũy thừa (power), wn w chuỗi wn chuỗi nhận cách kết nối chuỗi w với n lần w =λ L3 wn = w w 12 n lân Trang 15 Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin Các khái niệm (tt) Σ*, Σ+ (bao đóng bao đóng dương) Σ* tập tất chuỗi Σ kể chuỗi trống Σ+ tập tất chuỗi Σ ngoại trừ chuỗi trống Σ* = Σ+ ∪ {λ} ; Σ+ = Σ* - {λ} Σ hữu hạn cịn Σ+ Σ* vô hạn đếm Trang 16 Lý thuyết Ơtơmát & NNHT - Khoa Cơng Nghệ Thơng Tin Định nghĩa ngôn ngữ Ngôn ngữ Là tập Σ*, hay nói cách khác tập câu chữ Ví dụ Cho Σ = {a, b} Σ* = {λ, a, b, aa, ab, ba, bb, aaa, aab, } Tập {a, aa, aab} ngôn ngữ Σ Nó ngơn ngữ hữu hạn Tập L = {anbn : n ≥ 0} ngơn ngữ Σ Nó ngơn ngữ vơ hạn Trang 17 Lý thuyết Ơtơmát & NNHT - Khoa Cơng Nghệ Thơng Tin Các phép tốn ngơn ngữ Bù (complement), L Kết nối, L1L2 Bù ngôn ngữ L bảng chữ Σ, kí hiệu là: L = Σ* - L Cho ngôn ngữ L1, L2 Kết nối ngôn ngữ L1, L2 là: L1L2 = { xy : x ∈ L1 , y ∈ L2 } Lũy thừa, Ln Lũy thừa bậc n L, kí hiệu Ln, việc kết nối L với n lần L0 = {λ} n L =1 L2 L L3 n lân Trang 18 Lý thuyết Ơtơmát & NNHT - Khoa Công Nghệ Thông Tin Các phép tốn ngơn ngữ (tt) Ví dụ Bao đóng-sao (star-closure) L Cho L = {anbn : n ≥ 0}, L2 = {anbnambm : n ≥ , m ≥ 0} Kí hiệu L* định nghĩa L* = L0 ∪ L1 ∪ L2 ∪ Bao đóng dương (positive closure) L Kí hiệu L+ L+ = L1 ∪ L2 ∪ L3 ∪ Trang 19 Lý thuyết Ơtơmát & NNHT - Khoa Cơng Nghệ Thơng Tin Văn phạm Văn phạm gì? Các từ điển định nghĩa văn phạm cách khơng xác tập qui tắc cấu tạo từ qui tắc cách liên kết từ lại thành câu Ví dụ Cho đoạn văn phạm tiếng Anh sau → , → , → , → a | the, → boy | dog, → runs | walks, Trang 20 Lý thuyết Ơtơmát & NNHT - Khoa Cơng Nghệ Thông Tin 10 Định nghĩa văn phạm Các câu “a boy runs” “the dog walks” có "dạng đúng“, tức sinh từ luật văn phạm Định nghĩa 1.1 Văn phạm G định nghĩa bốn G = (V, T, S, P) V: tập kí hiệu khơng kết thúc (nonterminal symbol), cịn gọi biến (variable), T: tập kí hiệu kết thúc (terminal symbol), S ∈ V: gọi biến khởi đầu (start variable), đơi cịn gọi kí hiệu mục tiêu, P: tập hữu hạn luật sinh (production), Trang 21 Lý thuyết Ơtơmát & NNHT - Khoa Công Nghệ Thông Tin Định nghĩa văn phạm (tt) Các luật sinh có dạng x → y x ∈ (V ∪ T)+ có chứa biến, y ∈ (V ∪ T)* Các luật sinh (production) đơi cịn gọi qui tắc (rule) hay luật viết lại (written rule) Ví dụ Cho văn phạm sau: G = ({S, A, B}, {a, b}, S, P), với P: S → aAS | bBS | λ, A → aaA | b, B → bbB | a, Trang 22 Lý thuyết Ơtơmát & NNHT - Khoa Cơng Nghệ Thơng Tin 11 Văn phạm (tt) Qui ước: Các kí tự chữ hoa A, B, C, D, E S biểu thị biến; S kí hiệu khởi đầu phát biểu khác Các kí tự chữ thường a, b, c, d, e, kí số, chuỗi in đậm biểu thị kí hiệu kết thúc (terminal) Các kí tự chữ hoa X, Y, Z biểu thị kí hiệu terminal biến Các kí tự chữ thường u, v, w, x, y, z biểu thị chuỗi terminal Các kí tự chữ thường Hi Lạp α, β, γ biểu thị chuỗi biến terminal Trang 23 Lý thuyết Ơtơmát & 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 chuỗi w = uxv Luật sinh áp dụng tới chuỗi w Khi áp dụng ta nhận chuỗi z = uyv w dẫn xuất z hay ngược lại z dẫn xuất từ w kí hiệu là: uxv ⇒ uyv Trang 24 Lý thuyết Ơtơmát & NNHT - Khoa Công Nghệ Thông Tin 12 Ngôn ngữ sinh văn phạm * + Dẫn xuất gián tiếp ⇒ , ⇒ Nếu w1 ⇒ w2 ⇒ ⇒ wn ta nói w1 dẫn xuất wn viết * w w1 ⇒ n Nếu có luật sinh phải áp dụng viết: + w1 ⇒ wn Định nghĩa 1.2 Cho G = (V, T, S, P) văn phạm, tập: * L(G) = {w ∈ T* : S ⇒ w} gọi ngôn ngữ sinh G Trang 25 Lý thuyết Ơtơmát & NNHT - Khoa Công Nghệ Thông Tin Các khái niệm (tt) Sự dẫn xuất câu (derivation) Nếu w ∈ L(G) phải tồn dãy dẫn xuất: S ⇒ w1 ⇒ w2 ⇒ ⇒ wn ⇒ w Dãy gọi dẫn xuất câu w Dạng câu (sentential forms) Dãy S, w1, w2,… , wn gọi dạng câu dẫn xuất Câu w xem dạng câu đặc biệt Ví dụ Cho văn phạm G = ({S}, { a, b}, S, P), với P S → aSb | λ Trang 26 Lý thuyết Ơtơmát & NNHT - Khoa Cơng Nghệ Thơng Tin 13 Các khái niệm (tt) Thì S ⇒ aSb ⇒ aaSbb ⇒ aabb dãy dẫn xuất.Vì viết * aabb S⇒ Chuỗi aabb câu ngôn ngữ sinh G, cịn aaSbb dạng câu Ngơn ngữ tương ứng với văn phạm là: L(G) = {anbn : n ≥ 0} Trang 27 Lý thuyết Ơtơmát & NNHT - Khoa Công Nghệ Thông Tin Bài tập văn phạm Mơ tả tốn học cho ngơn ngữ Ngôn ngữ L1 bao gồm chuỗi từ khóa begin, end ngơn ngữ Pascal Các chuỗi biểu diễn cấu trúc lồng cặp từ khóa chương trình ngơn ngữ Pascal Ngôn ngữ L2 bao gồm tập danh hiệu Pascal Xác định ngôn ngữ 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 & NNHT - Khoa Cơng Nghệ Thơng Tin 14 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 L2 trang 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 & NNHT - Khoa Cơng Nghệ Thơng Tin Ơtơmát Ơtơmát gì? Ơtơmát, dịch nghĩa máy tự động, thiết bị tự thực cơng việc mà khơng cần can thiệp người Nó hoạt động dựa số quy tắc dựa vào quy tắc người lập trình cho hoạt động theo ý muốn Máy tính số ngày máy tự động điển hình mạnh Trang 30 Lý thuyết Ơtơmát & NNHT - Khoa Công Nghệ Thông Tin 15 Định nghĩa ơtơmát Ơtơmát Là mơ hình trừu tượng máy tính số bao gồm thành phần chủ yếu sau Input file Control unit Storage Output Trang 31 Lý thuyết Ơtơmát & NNHT - Khoa Cơng Nghệ Thông Tin Định nghĩa ôtômát (tt) Thiết bị đầu vào (input file): nơi mà chuỗi nhập (input string) ghi lên, ôtômát đọc khơng thay đổi nội dung Nó chia thành ô (cells, squares), ô giữ kí hiệu Cơ cấu nhập (input mechanism): phận đọc input file từ trái sang phải, kí tự thời điểm Nó dị tìm điểm kết thúc chuỗi nhập (eof, #) Bộ nhớ tạm (temporary storage): thiết bị bao gồm số không giới hạn ô nhớ (cell), giữ kí hiệu từ bảng chữ (không thiết giống với bảng chữ ngõ nhập) Ơtơmát đọc thay đổi nội dung ô nhớ lưu trữ (storage cell) Trang 32 Lý thuyết Ơtơmát & NNHT - Khoa Công Nghệ Thông Tin 16 Hoạt động ôtômát Đơn vị điều khiển (control unit): ôtômát có đơn vị điều khiển, mà trạng thái số hữu hạn trạng thái nội, chuyển đổi trạng thái kiểu định nghĩa sẵn Hoạt động ơtơmát Một ôtômát giả thiết hoạt động khung thời gian rời rạc (discrete time frame) Tại thời điểm cho, đơn vị điều khiển trạng thái nội (internal state) đó, cấu nhập quét (scanning) kí hiệu cụ thể input file Trang 33 Lý thuyết Ơtơmát & NNHT - Khoa Cơng Nghệ Thơng Tin Hoạt động ôtômát (tt) Trạng thái nội đơn vị điều khiển thời điểm xác định trạng thái kế (next state) hay hàm chuyển trạng thái (transition function) Trong suốt trình chuyển trạng thái từ khoảng thời gian đến khoảng thời gian kế, kết (output) sinh thông tin nhớ lưu trữ thay đổi Trang 34 Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin 17 Các khái niệm Trạng thái nội (internal state): trạng thái đơn vị điều khiển mà vào Trạng thái kế (next state): trạng thái nội đơn vị điểu khiển mà vào thời điểm Hàm chuyển trạng thái (transition function): hàm gởi trạng thái kế ôtômát dựa trạng thái hành, kí hiệu nhập hành quét, thông tin hành nhớ tạm Trang 35 Lý thuyết Ơtơmát & NNHT - Khoa Cơng Nghệ Thơng Tin Các khái niệm (tt) Cấu hình (configuration): sử dụng để tham khảo đến ba thông tin: trạng thái cụ thể mà đơn vị điều khiển vào, vị trí cấu nhập thiết bị nhập (hay nói cách khác ơtơmát đọc đến kí hiệu thiết bị nhập), nội dung hành nhớ tạm Di chuyển (move): chuyển trạng thái ôtômát từ cấu hình sang cấu hình Trang 36 Lý thuyết Ơtơmát & NNHT - Khoa Cơng Nghệ Thơng Tin 18 Phân loại ôtômát Dựa vào hoạt động ôtômát, có đơn định hay không: có hai loại ôtômát Ơtơmát đơn định (deterministic automata): ơtơmát di chuyển (move) xác định cấu hình Sự thể tính đơn định Ơtơmát khơng đơn định (non-deterministic automata): ơtơmát mà thời điểm có vài khả lựa chọn để di chuyển Việc có vài khả lựa chọn thể tính khơng đơn định Trang 37 Lý thuyết Ơtơmát & NNHT - Khoa Công Nghệ Thông Tin Phân loại ôtômát (tt) Dựa vào kết xuất ơtơmát: có hai loại ôtômát Accepter: ôtômát mà đáp ứng ngõ giới hạn hai trạng thái đơn giản “yes” hay “no” "Yes" tương ứng với việc chấp nhận chuỗi nhập, "no" tương ứng với việc từ chối, không chấp nhận, chuỗi nhập Transducer: ôtômát tổng quát hơn, có khả sinh chuỗi kí tự ngõ xuất Máy tính số transducer điển hình Trang 38 Lý thuyết Ơtơmát & NNHT - Khoa Công Nghệ Thông Tin 19 Một vài ứng dụng Cung cấp kiến thức tảng cho việc xây dựng ngơn ngữ lập trình (NNLT), trình dịch Dùng văn phạm để định nghĩa NNLT Dùng accepter để định nghĩa vài thành phần NNLT Xây dựng phân tích từ vựng, phân tích cú pháp cho NNLT Trang 39 Lý thuyết Ơtơmát & NNHT - Khoa Cơng Nghệ Thơng Tin Ví dụ Dùng văn phạm mơ tả danh hiệu Pascal → , → | | λ, → a z | A Z → Trang 40 Lý thuyết Ơtơmát & NNHT - Khoa Cơng Nghệ Thơng Tin 20 Ví dụ (tt) Dùng accepter mô tả danh hiệu Pascal Letter Digit Letter or digit Letter or digit Trang 41 Lý thuyết Ơtơmát & NNHT - Khoa Cơng Nghệ Thơng Tin Ví dụ - Văn phạm Pascal đơn giản Một văn phạm đơn giản ngôn ngữ Pascal [prog] ::= [prog header] [var part] [stat part] [prog header] ::= program [id] ( input , output ) ; [var part] ::= var [var dec list] [stat part] ::= begin [stat list] end [var dec list] ::= [var dec] | [var dec list] [var dec] [var dec] ::= [id list] : [type] ; [stat list] ::= [stat] | [stat list] ; [stat] [stat] ::= [assign stat] [assign stat] ::= [id] := [expr] Trang 42 Lý thuyết Ôtômát & NNHT - Khoa Công Nghệ Thông Tin 21 Văn phạm Pascal đơn giản (tt) [assign stat] [expr] [type] [id list] [operand] [id] [number] [operator] [digit] [letter] ::= ::= ::= ::= ::= ::= ::= ::= ::= ::= [id] := [expr] [operand] | [expr] [operator] [operand] integer [id] | [id list] , [id] [id] | [number] [letter] | [id] [letter] | [id] [digit] [digit] +|* 0|1|2|3|4|5|6|7|8|9 a z | A Z Trang 43 Lý thuyết Ơtơmát & NNHT - Khoa Công Nghệ Thông Tin Một vài ứng dụng (tt) Ứng dụng vào lĩnh vực xử lý chuỗi Các chức tìm kiếm, thay trình soạn thảo văn xử lý chuỗi Xử lý ngơn ngữ tự nhiên: thích loại từ cho từ, sửa lỗi tả, Ứng dụng vào lĩnh vực thiết kế số Trang 44 Lý thuyết Ơtơmát & NNHT - Khoa Cơng Nghệ Thơng Tin 22 Ví dụ - Mạch cộng Xét cộng nhị phân hai số nguyên dương bi Sum bit di Serial adder Carry Trong hai chuỗi cộng x = a0a1 an y = b0b1 bm biểu diễn cho hai số nguyên v( x ) = n ∑ i v( y ) = i=0 m ∑ bi 2i i=0 Trang 45 Lý thuyết Ơtơmát & NNHT - Khoa Công Nghệ Thông Tin Mạch cộng (tt) Sơ đồ khối mơ tả mà cộng phải làm khơng giải thích chút hoạt động bên Sau ôtômát (cụ thể transducer) mô tả hoạt động bên cộng nói (0, 0)/0 (0, 1)/1 (1, 0)/1 No carry (1, 1)/0 (0, 1)/0 (1, 0)/1 (1, 1)/1 Carry (0, 0)/1 Trang 46 Lý thuyết Ơtơmát & NNHT - Khoa Cơng Nghệ Thơng Tin 23 ... Các mơ hình tính tố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... Tập {a, aa, aab} ngôn ngữ Σ Nó ngơn ngữ hữu hạn Tập L = {anbn : n ≥ 0} ngơn ngữ Σ Nó ngơn ngữ vơ hạn Trang 17 Lý thuyết Ơtơmát & NNHT - Khoa Cơng Nghệ Thơng Tin Các phép tốn ngơn ngữ Bù (complement),... 43 Lý thuyết Ơtơmát & NNHT - Khoa Công Nghệ Thông Tin Một vài ứng dụng (tt) Ứng dụng vào lĩnh vực xử lý chuỗi Các chức tìm kiếm, thay trình soạn thảo văn xử lý chuỗi Xử lý ngơn ngữ