Bài giảng Lý thuyết tính toán: Bài 5 - Phạm Xuân Cường cung cấp cho học viên các kiến thức về ngôn ngữ không chính quy; khái niệm ngôn ngữ không chính quy; độ dài dẫn xuất; bổ đề bơm (Pumping Lemma);... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng!
LÝ THUYẾT TÍNH TỐN BÀI 5: NGƠN NGỮ KHƠNG CHÍNH QUY Phạm Xuân Cường Khoa Công nghệ thông tin cuongpx@tlu.edu.vn Nội dung giảng Khái niệm Bổ đề Bơm Tổng kết chương 1 Khái niệm Khái niệm • Ngơn ngữ quy: Ngơn ngữ đốn nhận DFA → Ngơn ngữ khơng quy gì? Ví dụ: Xét ngơn ngữ sau chữ Σ= {0,1} quy hay khơng quy B = {0n 1n |n ≥ 0} C = {w| w có số ký hiệu số ký hiệu 1} D = {w| w có số lần xuất xâu 01 10 nhau} Khái niệm • Ngơn ngữ quy: Ngơn ngữ đốn nhận DFA → Ngơn ngữ khơng quy gì? Ví dụ: Xét ngôn ngữ sau chữ Σ= {0,1} B = {0n 1n |n ≥ 0} → Khơng quy C = {w| w có số ký hiệu số ký hiệu 1} → Khơng quy D = {w| w có số lần xuất xâu 01 10 nhau} → Chính quy → Làm để chứng minh ngơn ngữ khơng quy? Chu trình • Hãy tưởng tượng FSM tạo chuỗi dài Ví dụ: Một DFA có |Q| = Làm để tạo chuỗi dài → Đi theo chu trình Nếu khơng theo chu trình chuỗi dài sinh bao nhiêu? → |s| ≤ • Tất chuỗi ≥ phải theo chu trình - Nếu ta theo chu trình n lần chuỗi sinh nằm ngơn ngữ mà FSM đốn nhận - Nếu ta bỏ qua chu trình chuỗi sinh nằm ngơn ngữ mà FSM đốn nhận Ví dụ Xét FSM sau: → Tất chuỗi s sinh có dạng s = xyi z thuộc ngơn ngữ A mà máy FSM đốn nhận Độ dài dẫn xuất • Nếu A ngơn ngữ quy s xâu đủ dài thuộc A (|s| ≥ p) s viết sau: s = xyz • p gọi độ dài dẫn xuất (pumping length) • Tất ngơn ngữ quy có thuộc tính đặc biệt Nếu ngơn ngữ khơng có thuộc tính → Là ngơn ngữ khơng quy Bổ đề Bơm Bổ đề Bơm Bổ đề Bơm (Pumping Lemma) Nếu A ngơn ngữ quy, tồn số p cho s xâu thuộc A có độ dài p, s chia làm phần s=xyz thỏa mãn điều kiện sau: xyi z ∈ A ∀ i ≥ |y| > |xy| ≤ p Bổ đề Bơm • Sử dụng bổ đề Bơm để chứng minh ngôn ngữ A khơng quy Ý TƯỞNG: (Chứng minh phản chứng) - Giả sử A quy - Nó có độ dài dẫn xuất p - Tất xâu A có độ dài lớn p (|s| ≥ p) chia làm đoạn s = xyz - Chọn xâu A - Chia làm đoạn xyz - Chỉ xyi z ∈ A cách - Xét tất trường hợp mà s chia thành đoạn - Chỉ khơng có trường hợp thỏa mãn điều kiện bổ đề Bơm → Mâu thuẫn, kết luận A khơng phải quy Ví dụ Cho ngơn ngữ B = {0n 1n | n ≥ 0} Hãy chứng minh ngơn ngữ B khơng quy Chứng minh: • Giả sử B quy → B có độ dài dẫn xuất p • Xâu lựa chọn để phản chứng là: s = 0p 1p • Xét trường hợp chia s thành đoạn xyz - y nằm phần chuỗi - y nằm phần chuỗi - y nằm phần chuỗi chuỗi Ví dụ • Xét TH 1: 0000011111 → xy2 z = 0000|000011111 Xâu xy2 z có thuộc B hay khơng? 10 Ví dụ • Xét TH 1: 0000011111 → xy2 z = 0000|000011111 Xâu xy2 z có thuộc B hay khơng? → xy2 z ∈ B • Tương tự, TH 2: 0000011111 → xy2 z = 000001111|1111 ∈ B • TH3: 0000011111 → xy2 z = 0000011|0011111 ∈ B • Ngồi theo điều kiện 3: - TH1: |xy| = |0000| = ≤ p = → True - TH2: |xy| = |000001111| = ≤ p = → False - TH3: |xy| = |0000011| = ≤ p = → False • Có mâu thuẫn nên giả thiết sai → B ngơn ngữ khơng quy 10 Ví dụ • Cho ngơn ngữ C = {w| w có số ký hiệu số ký hiệu 1} = {ww| w ∈ {0,1}*} Hãy chứng minh ngôn ngữ C không quy • Bài 1.29, 1.46 - 1.49 Sách giáo trình 11 Tổng kết chương Tổng kết chương • Ngơn ngữ quy đốn nhận ???? • DFA ⇔ NFA ???? • Biểu thức quy biểu diễn ???? • Thế ngơn ngữ khơng quy ???? 12 Questions? 12 ... (Chứng minh phản chứng) - Giả sử A quy - Nó có độ dài dẫn xuất p - Tất xâu A có độ dài lớn p (|s| ≥ p) chia làm đoạn s = xyz - Chọn xâu A - Chia làm đoạn xyz - Chỉ xyi z ∈ A cách - Xét tất trường hợp... lựa chọn để phản chứng là: s = 0p 1p • Xét trường hợp chia s thành đoạn xyz - y nằm phần chuỗi - y nằm phần chuỗi - y nằm phần chuỗi chuỗi Ví dụ • Xét TH 1: 0000011111 → xy2 z = 0000|000011111... 0000011111 → xy2 z = 0000011|0011111 ∈ B • Ngồi theo điều kiện 3: - TH1: |xy| = |0000| = ≤ p = → True - TH2: |xy| = |000001111| = ≤ p = → False - TH3: |xy| = |0000011| = ≤ p = → False • Có mâu thuẫn nên