Upload
dinhkien
View
226
Download
3
Embed Size (px)
Citation preview
1
HỌC VIỆN KỸ THUẬT QUÂN SỰ
KHOA CÔNG NGHỆ THÔNG TIN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
ĐỀ CƯƠNG CHI TIẾT HỌC PHẦN
AUTOMAT VÀ NGÔN NGỮ HÌNH THỨC
1. Thông tin về giáo viên
TT Họ tên giáo viên Học hàm Học vị Đơn vị công tác (Bộ môn)
1 Hà Chí Trung GVC TS Khoa học máy tính
2 Võ Minh Phổ GVC TS Khoa học máy tính
3 Nguyễn Trung Tín TG TS Khoa học máy tính
Thời gian, địa điểm làm việc: Giờ hành chính, Bộ môn Khoa học máy tính –
Tầng 2 nhà A1 – Học viện Kỹ thuật Quân sự.
Địa chỉ liên hệ: Bộ môn Khoa học máy tính – Khoa Công nghệ thông tin –
Học viện Kỹ thuật Quân sự. 236 Hoàng Quốc Việt.
Điện thoại, email: [email protected]; [email protected]
Các hướng nghiên cứu chính: Lý thuyết ngôn ngữ
2. Thông tin chung về học phần
- Tên học phần: Automat và ngôn ngữ hình thức
- Mã học phần: 1222315
- Số tín chỉ: 2
- Học phần (bắt buộc hay lựa chọn): bắt buộc
- Các học phần tiên quyết: Toán rời rạc, Lập trình cơ bản
- Các yêu cầu đối với học phần (nếu có):
- Giờ tín chỉ đối với các hoạt động:
Nghe giảng lý thuyết: 30
Làm bài tập trên lớp: 15
Thảo luận:
Thực hành, thực tập (ở PTN, nhà máy, thực tập...):
Hoạt động theo nhóm:
Tự học: 60
- Khoa/Bộ môn phụ trách học phần, địa chỉ: Bộ môn Khoa học máy tính –
Khoa Công nghệ thông tin – Học viện Kỹ thuật Quân sự. 236 Hoàng
Quốc Việt.
3. Mục tiêu của học phần
2
- Kiến thức: Ngôn ngữ hình thức (Formal Languages) là môn học cơ sở của
công nghệ thông tin đối với người học. Môn học trang bị cho người học
những kiến thức cơ bản về thuật toán, ngôn ngữ thuật toán, các kỹ thuật
xây dựng chương trình và phương pháp tư duy liên quan đến khoa học
máy tính.
- Kỹ năng: Kỹ năng vận dụng lý thuyết toán, toán rời rạc, lý thuyết ngôn
ngữ vào việc phân tích, giải quyết các vấn đề. Cung cấp khả năng suy
luận, giải quyết các bài toán trong lĩnh vực công nghệ thông tin. Các kỹ
thuật xây dựng chương trình và phương pháp tư duy liên quan đến khoa
học máy tính.
- Thái độ, chuyên cần: Thái độ nghiêm túc trong nghe giảng, làm bài tập
đầy đủ, vận dụng lý thuyết.
4. Tóm tắt nội dung học phần (khoảng 150 từ)
Đây là môn học bắt buộc đối với học viên thuộc nhóm Công nghệ thông
tin. Môn học hướng tới trang bị cho học viên các khái niệm và định hướng của
Automat và ngôn ngữ hình thức. Chương 1 nhắc lại một số khái niệm toán rời
rạc, tập hợp, ngôn biểu diễn thuật toán. Chương 2 giới thiệu về ngôn ngữ hình
thức và văn phạm, biểu diễn phân loại ngôn ngữ. Chương 3 trình bày về
automata hữu hạn và các dạng thức automata. Chương 4 giới thiệu về lớp ngôn
ngữ chính quy, mối quan hệ giữa ngôn ngữ chính quy và automat hữu hạn, các
ứng dụng trong giải quyết các vấn đề toán học. Chương 5 giới thiệu về văn
phạm phi ngữ cảnh. Các dạng chuyển đổi trong văn phạm phi ngữ cảnh. Chương
6. Automata đẩy xuống và mối liên hệ với văn phạm phi ngữ cảnh. Chương 7.
Máy Turing và các lớp ngôn ngữ. Ngoài ra, môn học trang bị khả năng tư duy,
suy luận và định hướng nghiên cứu chương trình dịch, lý thuyết tính toán.
5. Nội dung chi tiết học phần (tên các chương, mục, tiểu mục)
Chương,
mục,
tiểu mục
Nội dung Số
tiết
Giáo
trình,
Tài liệu
tham khảo
(Ghi TT
của TL ở
mục 6)
Ghi
chú
1 Chương 1: Nhập môn lý thuyết
automata và ngôn ngữ hình thức 3 1,2
3
Giới thiệu về môn học
Bổ túc một số khái niệm toán học liên
quan (tập hợp, quan hệ, đồ thị và cây)
2
Chương 2: Văn phạm và ngôn ngữ
hình thức
Ngôn ngữ và các khái niệm liên quan
Các phép toán trên chuỗi và ngôn ngữ
Văn phạm và các khái niệm liên quan
Phân loại văn phạm theo Chomsky
Tính chất của văn phạm và ngôn ngữ
Sơ lược về automata
Bài tập chương 2
6 1,2,3
3
Chương 3: Automata hữu hạn và ngôn
ngữ hình thức
Các khái niệm chung
Automata hữu hạn đơn định
Automata hữu hạn đa định
Automata đa định với độ dịch chuyển ε
Sự tương đương giữa automata đơn định
với automata đa định
Biểu thức chính quy
Sự tương đương giữa biểu thức chính
quy và automata hữu hạn
Bài tập chương 3
12 1, 2
4
Chương 4: Văn phạm chính quy và
các tính chất
Khái niệm về văn phạm chính quy
Sự tương đương giữa văn phạm chính
quy và automata hữu hạn
Bổ đề bơm cho tập hợp chính quy
Tính đóng của tập hợp chính quy
Bài tập chương 4
6 1,2,3
5 Chương 5: Văn phạm phi ngữ cảnh
Văn phạm phi ngữ cảnh 6 1, 2
4
Sự nhâp nhằng của văn phạm phi ngữ
cảnh
Rút gọn văn phạm phi ngữ cảnh
Chuẩn hóa văn phạm phi ngữ cảnh
Tính chất của văn phạm phi ngữ cảnh
Bài tập chương 5
6
Chương 6: Pushdown automata
(automata đẩy xuống)
Khái niệm về automata đẩy xuống
Biến đổi giữa automata chấp nhận ngôn
ngữ bằng trạng thái kết thúc với automata
chấp nhận ngôn ngữ bằng stack rỗng
Sự tương đương giữa automata đẩy
xuống và văn phạm phi ngữ cảnh
Quan hệ giữa ngôn ngữ phi ngữ cảnh và
tập hợp chính quy
Bài tập chương 6
6 1, 2
7
Chương 7: Máy Turing, automata
tuyến tính giới nội và văn phạm cảm
ngữ cảnh
Khái niệm, mô hình máy Turing
Các kỹ thuật xây dựng máy Turing
Văn phạm đệ quy đếm được và máy
Turing
Văn phạm cảm ngữ cảnh và automata
tuyến tính giới nội
Các vấn đề toán học liên quan
Bài tập chương 7
6 1, 2
6. Giáo trình, tài liệu tham khảo
TT
Tên giáo trình, tài liệu Tình trạng giáo trình, tài liệu
Giáo trình 1 (Giáo trình bắt buộc
ghi theo thứ tự ưu tiên: tên sách, tên
tác giả, nhà xuất bản, năm xuất
bản,...)
Có ở thư
viện
(website)
Giáo
viên
hoặc
khoa có
Đề
nghị
mua
mới
Đề
nghị
biên
soạn
mới
5
1
Introduction to Automata Theory,
Languages, and Computation (2nd
Edition) - John E. Hopcropft,
Rareev Motwani, Jeffrey D.
Ullman. Addison-Wesley.-2001.
x
2
Giáo trình lý thuyết ôtômát và ngôn
ngữ hình thức – Hồ Văn Quân –
Nhà xuất bản Đại học quốc gia Tp.
Hồ Chí Minh – 2002.
x
3
Problem Solving in Automata,
Languages, and Complexity. Ding-
Zhu Du and Ker-I Ko. JOHN
WILEY & SONS, INC. 2001
x
7. Hình thức tổ chức dạy học
7.1. Lịch trình chung: (Ghi tổng số giờ cho mỗi cột)
Nội dung
Hình thức tổ chức dạy học học phần
Tổng Lên lớp Thực hành,
thí nghiệm,
thực tập...
Tự học,
tự ng.cứu Lý
thuyết
Bài
tập
Thảo
luận
Chương 1: Nhập môn
lý thuyết automata và
ngôn ngữ hình thức
3 6 9
Chương 2: Văn phạm
và ngôn ngữ hình thức 3 3 6 12
Chương 3: Automata
hữu hạn và ngôn ngữ
hình thức
9 3 18 30
Chương 4: Văn phạm
chính quy và các tính
chất
Khái niệm về văn
phạm chính quy
3 3 6 12
Chương 5: Văn phạm
phi ngữ cảnh 6 12 18
Chương 6: Pushdown 3 3 6 12
6
automata (automata
đẩy xuống)
Chương 7: Máy
Turing, automata
tuyến tính giới nội và
văn phạm cảm ngữ
cảnh
3 3 6 12
7.2. Lịch trình tổ chức dạy học cụ thể
Bài giảng 01: Nhập môn Automata và ngôn ngữ hình thức.
Chương I, mục:
Tiết thứ: 1-3 Tuần thứ: 1
- Mục đích yêu cầu
Mục đích: Trang bị những hiểu biết chung nhất về môn học; Khái quát lại một
số khái niệm, cơ sở toán học làm cơ sở học tập môn học: Kiến thức về tập hợp,
các phép toán trên tập hợp, lý thuyết về đồ thị và cây.
Yêu cầu: sinh viên phải hệ thống lại các kiến thức cơ sở về toán rời rạc, kiến
thức lập trình, tự nghiên cứu và ôn tập lại những vấn đề lý thuyết khác có liên
quan đến môn học.
- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu
- Thời gian: Giáo viên giảng: 2 tiết; Thảo luận và làm bài tập trên lớp: 1 tiết;
Sinh viên tự học: 6 tiết.
- Địa điểm: Giảng đường do P2 phân công.
- Nội dung chính:
1.1. Giới thiệu về môn học lý thuyết NNHT và automata hữu hạn
1.2. Bổ túc một số khái niệm toán học
1.2.1. Tập hợp
Tập hợp, tập rỗng tập con, tập tổng quát, tập bằng nhau, tập lũy thừa.
Các phép toán trên tập hợp: phép hợp, phép giao, phần bù, phép trừ, tích đềcác
của hai tập hợp.
1.2.2. Quan hệ:
7
Quan hệ n-ngôi, quan hệ hai ngôi, các tính chất: phản xạ, đối xứng, bắc cầu của
quan hệ. Quan hệ tương đương.
1.2.3. Phép chứng minh:
Các phương pháp chứng minh: chứng minh trực tiếp, chứng minh lựa chọn,
chứng minh phản chứng, chứng minh bằng quy nạp.
1.2.4. Đồ thị và cây:
Khái niệm đồ thị: đỉnh, cạnh, khuyên, nhãn, biểu diễn đồ thị; Các dạng đồ thị,
các thuật toán duyệt đồ thị.
Cây: đỉnh, nút trong, nút lá, các thuật toán duyệt cây: duyệt thứ tự trước, duyệt
thứ tự sau, duyệt thứ tự giữa.
- Nội dung thảo luận
Chứng minh các bài tập nêu ra trong bài giảng, áp dụng các giải thuật duyệt
khác nhau trên đồ thị và cây.
- Yêu cầu SV chuẩn bị:
Ôn tập lại các kiến thức lý thuyết liên quan đến tập hợp, đồ thị, cây. Các thuật
toán duyệt đồ thị và duyệt cây.
Đọc trước bài giảng của giảng viên (TL1), chương 1 TL 2.
- Tài liệu tham khảo
1. Bài giảng của giảng viên.
2. John E. Hopcropft, Rareev Motwani, Jeffrey D. Ullman. Introduction to
Automata Theory, Languages, and Computation (2nd Edition) -
Addison-Wesley.-2001.
- Câu hỏi ôn tập
1. Thế nào là chu trình Euler, chu trình Hamilton trên đồ thị?
2. Khái niệm về đồ thị liên thông, thành phần liên thông và không liên
thông của đồ thị? Giải thuật xác định thành phần liên thông, không liên
thông?
3. Khái niệm cây, anh chị biết những dạng cấu trúc cây nào?
- Ghi chú: Các môn học tiên quyết : toán rời rạc, cấu trúc dữ liệu và giải thuật,
lập trình căn bản.
Bài giảng 02: Văn phạm và ngôn ngữ hình thức
8
Chương 2, mục:
Tiết thứ: 1-3 Tuần thứ: 2
- Mục đích yêu cầu
Mục đích: Trang bị những khái niệm cơ bản nhất của môn học: ngôn ngữ, biểu
diễn ngôn ngữ, văn phạm và đưa ra văn phạm.
Yêu cầu: Sinh viên hiểu và nắm vững các khái niệm, làm cơ sở cho việc nắm
nội dung các bài học kế tiếp.
- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu
- Thời gian: Giáo viên giảng: 2 tiết; Thảo luận và làm bài tập trên lớp: 1 tiết;
Sinh viên tự học: 6 tiết.
- Địa điểm: Giảng đường do P2 phân công.
- Nội dung chính
2.1. Ngôn ngữ
2.1.1. Các khái niệm cơ bản
2.1.2. Các phép toán trên từ
Phép nối kết (concatenation), phép đảo ngược (reverse), phép cắt trái, phép cắt
phải chuỗi x cho chuỗi y.
2.1.3. Các phép toán trên ngôn ngữ
Vì mỗi ngôn ngữ có thể xem như là một tập hợp nên ta có các phép toán đại số
tập hợp như là phép hợp, phép giao, phép hiệu, phép lấy bù, tập con,… của các
ngôn ngữ.
Một số phép toán khác: nối kết, Ngôn ngữ lặp (bao đóng kleene, hoặc *-
closure), Ngôn ngữ lặp cắt (bao đóng dương – positive closure), ngôn ngữ
ngược, Ngôn ngữ cắt trái của ngôn ngữ X cho ngôn ngữ Y, Ngôn ngữ cắt phải
của ngôn ngữ X cho ngôn ngữ Y.
2.2. Văn phạm
2.2.1. Văn phạm và các khái niệm liên quan
2.2.2. Phân loại văn phạm theo Chomsky
2.2.3. Tính chất của văn phạm và ngôn ngữ
- Nội dung thảo luận
9
Các ví dụ về văn phạm, mối liên hệ giữa các thành phần của văn phạm thông
qua ví dụ biểu diễn ngôn ngữ tự nhiên (tiếng việt), ngôn ngữ lập trình (C,
PASCAL…), phân biệt các dạng ngôn ngữ dựa trên đặc điểm văn phạm.
- Yêu cầu SV chuẩn bị:
1. Chứng minh các định lý sau trong bài giảng;
2. Viết chương trình mô phỏng các thao tác làm việc với chuỗi.
3. Giải các bài tập chương 2 do giáo viên cung cấp.
4. Đọc trước tài liệu chương 2 TL2.
- Tài liệu tham khảo
1. Bài giảng số 2 của giảng viên.
2. John E. Hopcropft, Rareev Motwani, Jeffrey D. Ullman. Introduction to
Automata Theory, Languages, and Computation (2nd Edition) -
Addison-Wesley.-2001.
- Câu hỏi ôn tập
1. Khái niệm về ngôn ngữ, từ (chuỗi, xâu), một số phép toán cơ bản trên
từ và trên ngôn ngữ. Các hình thức biểu diễn ngôn ngữ. Cho ví dụ minh
họa tương ứng.
2. Định nghĩa văn phạm, dẫn xuất và ngôn ngữ sinh bởi văn phạm. Cho ví
dụ minh họa.
3. Phân loại văn phạm theo Chomsky, sự khác biệt giữa các loại văn
phạm. Cho ví dụ minh họa tương ứng.
- Ghi chú: Các khái niệm được nêu trong bài 2 sẽ được sử dụng trong suốt quá
trình học tập môn học, sinh viên cần nắm vững các khái niệm này.
Bài giảng 03. Ngôn ngữ và automata hữu hạn
Chương 3, mục:
Tiết thứ: 1-3 Tuần thứ: 3, 4, 5
- Mục đích yêu cầu
Mục đích: Trang bị cho sinh viên những khái niệm cơ bản về automata hữu hạn
(Finite Automatons); Phân biệt các dạng automata hữu hạn; Các thuật toán trên
automata hữu hạn, các phép biến đổi tương đương giữa các loại FA; Biểu thức
chính qui (RE) và sự tương đương với FA;
10
Yêu cầu: Sinh viên nắm vững các khái niệm, các thuật toán biến đổi và làm các
dạng bài tập trong chương 3.
- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu
- Thời gian: Giáo viên giảng: 6 tiết; Thảo luận và làm bài tập trên lớp: 3 tiết;
Sinh viên tự học: 18 tiết.
- Địa điểm: Giảng đường do P2 phân công.
- Nội dung chính:
3.1. Các khái niệm sơ lược
3.2. Automata hữu hạn đơn định (DFA)
3.3. Automata hữu hạn đa định (NFA)
3.4. Automata với dịch chuyển ε (NFAε)
Khái niệm về bước chuyển ε, NFAε là automata có các bước chuyển ε.
Các ví dụ minh họa NFAε: NFAε đoán nhận tập hợp các số nguyên, NFAε đoán
nhận tập hợp các số thực.
Mô phỏng quá trình đoán nhận chuỗi và thuật toán đoán nhận chuỗi của NFAε
bằng chương trình JFLAP, ngôn ngữ đoán nhận bởi NFAε.
NFAε như là phương tiện để thiết kế giải thuật tổng quát.
3.5. Sự tương đương giữa DFA và NFA
3.7. Biểu thức chính quy
3.7.1. khái niệm về biểu thức chính quy
3.7.2. Sự tương đương giữa FA và RE
3.7.3. Sự tương đương giữa DFA và RE
- Nội dung thảo luận
Sinh viên thiết kế, xây dựng các automata đoán nhận các tập hợp: các số chia hết
cho 2, 5, 10,… cho một số n bất kỳ.
Chứng minh các tập hữu hạn phần tử với độ dài hữu hạn là các tập hợp chính
quy.
- Yêu cầu SV chuẩn bị:
Sinh viên tự tìm hiểu và sử dụng thành thạo chương trình mô phỏng JFLAP do
giáo viên cung cấp.
11
Đọc và tìm hiểu các thuật toán xây dựng automata là hợp, giao, tối giản của một
automata cho trước, Tìm hiểu thuật toán xây dựng DFA trực tiếp từ biểu thức
chính quy, chương 3, 4 TL2.
- Bài tập (practices and exercises)
Xây dựng chương trình mô phỏng hoạt động của automata đơn định, đa định,
Giải các bài tập trong chương 3, TL2.
- Tài liệu tham khảo (reading assignments)
1. Bài giảng 3 của giảng viên
2. John E. Hopcropft, Rareev Motwani, Jeffrey D. Ullman. Introduction to
Automata Theory, Languages, and Computation (2nd Edition) -
Addison-Wesley.-2001. Chương 3.
- Câu hỏi ôn tập (Questions)
1. Trình bày khái niệm về automat hữu hạn. Phân biệt các dạng automata
hữu hạn. Ngôn ngữ đoán nhận bởi automata hữu hạn. Ví dụ minh họa.
2. Khái niệm về automata Mealy, automata Moore, phân biệt chúng với
automata hữu hạn. Lấy ví dụ minh họa.
3. Trình bày các phương pháp biểu diễn automata hữu hạn. Ví dụ minh
họa.
4. Trình bày thuật toán đoán nhận chuỗi bởi một automata hữu hạn cho
trước. Ví dụ minh họa.
5. Trình bày phương pháp biến đổi từ automata không đơn định về
automata đơn định (đưa NFA về DFA).
6. Trình bày phương pháp biến đổi từ automata không đơn định có dịch
chuyển-ε về automata không đơn định và không có dịch chuyển-ε (đưa
NFAε về NFA). Dẫn ví dụ minh họa.
7. Trình bày phương pháp biến đổi từ automata không đơn định có dịch
chuyển-ε về automata đơn định (đưa NFAε về DFA). Dẫn ví dụ minh
họa.
8. Định nghĩa biểu thức chính quy. Thuật toán để xây dựng automata từ
biểu thức chính quy gọi là thuật toán Thomson, trình bày thuật toán
Thomson.
9. Định nghĩa biểu thức chính quy, trình bày thuật toán xây dựng biểu
thức chính quy từ một automata hữu hạn cho trước.
12
- Ghi chú (Notes): Kiến thức về automata hữu hạn là nền tảng để xây dựng các
chương trình nhận dạng (Recognizer). Ứng dụng trong giai đoạn phân tích từ
vựng, phân tích cú pháp của các chương trình dịch.
Bài giảng 04: Văn phạm chính quy và automata hữu hạn.
Chương 4, mục:
Tiết thứ: 1-3 Tuần thứ: 6, 7
- Mục đích yêu cầu
Mục đích: Nhằm giúp cho sinh viên hiểu về lớp ngôn ngữ loại 3 và văn phạm
chính quy; Các tính chất của văn phạm tính quy; Hiểu và nắm được mối liên hệ
giữa lớp ngôn ngữ loại 3 với văn phạm chính quy và automata hữu hạn. Nắm
được các thuật toán biến đổi tương đương giữa RG và FA.
Yêu cầu: Sinh viên nắm vững các khái niệm về văn phạm chính quy, các thuật
tóan biến đổi tương đương giữa RG và FA; Về nhà, cụ thể hóa các thuật toán
bằng chương trình.
- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu
- Thời gian: Giáo viên giảng: 4 tiết; Thảo luận và làm bài tập trên lớp: 2 tiết;
Sinh viên tự học: 12 tiết.
- Địa điểm: Giảng đường do P2 phân công.
- Nội dung chính
4.1. Văn phạm chính quy
4.2. Sự tương đương giữa RG và FA
Định lý 4.1: Tập rỗng, tập tổng quát, tập hữu hạn các chuỗi được xây trên bảng
chữ cái hữu hạn là tập hợp chính quy.
Chứng minh:
Cách 1: Dựa trên khái niệm biểu thức chính quy đã học trong bài trước.
Cách 2: Giải thuật xây dựng FA cho tập hữu hạn.
Định lý 4.2: Nếu L được sinh ra từ một văn phạm chính quy thì L là tập hợp
chính quy.
Ý nghĩa: như vậy, một RG có thể được biểu diễn bởi một FA.
Chứng minh: giải thuật xây dựng FA tương đương.
4.2.1. Giải thuật biến đổi từ RG sang FA
4.2.2. Giải thuật biến đổi từ FA sang RG
13
Định lý 4.3: Nếu L là một tập hợp chính quy thì L được sinh ra từ một RG (văn
phạm tuyến tính trái hoặc tuyến tính phải) nào đó.
4.3. Bổ đề bơm (pumping lemma) cho RS
Pumping lemma: nếu L là RS thì có tồn tại hằng số n sao cho nếu z là một từ
bất kỳ thuộc L và |z| ≥ n thì ta có thể viết z dưới dạng:
ta có uvi
Cách khác: (∀L)(∃n)(∀z)[ z thuộc L và | z | ≥ n ta có (∃u, v, w)(z = uvw, |uv| ≤
n, |v| ≥ 1 và (∀i)(uviw L))]
Ứng dụng của bổ đề bơm: dùng để chứng tỏ một tập hợp không là RS theo
phương pháp phản chứng.
4.4. Tính đóng của tập hợp chính quy
Một phép toán trên các tập RS được gọi là đóng nếu kết quả của phép toán đó là
tập hợp cùng loại.
Định lý 4.4: tập hợp chính quy đóng với các phép toán: hợp, nối kết và bao
đóng Kleen (bao đóng sao).
Định lý 4.5: tập hợp chính quy đóng với phép lấy phần bù.
Định lý 4.6: tập hợp chính quy đóng với phép giao.
Định lý 4.7: tập hợp các chuỗi được chấp nhận bởi FA có n trạng thái là: không
rỗng nếu và chỉ nếu nó chấp nhận chuỗi có độ dài nhỏ hơn n, hoặc vô hạn nếu và
chỉ nếu nó chấp nhận chuỗi có độ dài m với n ≤ m< 2n.
Định lý 4.8: Tồn tại giải thuật để xác định hai FA là tương đương (chấp nhận
cùng một ngôn ngữ)
- Nội dung thảo luận
Chứng minh rằng tập tất cả các số nguyên tố không phải tập chính quy.
- Yêu cầu sinh viên chuẩn bị:
Chứng minh các định lý đã nêu trong phần tính chất của tập hợp chính quy. Xem
trước slide bài giảng 4. Chương 4 tài liệu 2.
- Bài tập (practices and exercises)
Viết chương trình mô phỏng thực hiện việc biến đổi từ văn phạm chính quy sang
automata hữu hạn và ngược lại
- Tài liệu tham khảo (reading assignments)
1. Bài giảng 4 của giảng viên.
14
2. John E. Hopcropft, Rareev Motwani, Jeffrey D. Ullman. Introduction to
Automata Theory, Languages, and Computation (2nd Edition) -
Addison-Wesley.-2001. Chương 4.
- Câu hỏi ôn tập (Questions)
1. Khái niệm về văn phạm chính quy. Trình bày thuật toán xây dựng một
automata hữu hạn từ một văn phạm chính chính quy tuyến tính phải.
2. Khái niệm về văn phạm chính quy. Trình bày thuật toán xây dựng một
automata hữu hạn từ một văn phạm chính chính quy tuyến tính trái.
3. Khái niệm về văn phạm chính quy. Trình bày thuật toán xây dựng văn
phạm chính chính quy tuyến tính phải từ một automata hữu hạn cho
trước. Ví dụ minh họa.
4. Khái niệm về văn phạm chính quy. Trình bày thuật toán xây dựng văn
phạm chính chính quy tuyến tính trái từ một automata hữu hạn cho
trước. Ví dụ minh họa.
5. Phát biểu bổ đề bơm (pumping lemma) cho tập hợp chính quy, giải
thích, ý nghĩa của bổ đề bơm. Lấy ví dụ minh họa.
6. Những phép toán nào là đóng với tập hợp chính quy? Lấy ví dụ minh
họa.
7. Cho L là ngôn ngữ chính quy. Anh chị hãy xác định LR, Pref(L),
Suf(L), hay Suf(pref(L)) có phải ngôn ngữ chính quy không?
Ôn tập và kiểm tra giữa học phần
Chương 1, 2, 3, 4, mục:
Tiết thứ: 1-3 Tuần thứ: 8
- Mục đích yêu cầu
Mục đích: Hệ thống lại các kiến thức về về ngôn ngữ chính quy và automata
hữu hạn. Kiểm tra đánh chất lượng nắm kiến thức của sinh viên, giao bài tập
môn học
Yêu cầu: Sinh viên nắm vững các kiến thức được trang bị trong chương 1, 2, 3,
4.
- Hình thức tổ chức dạy học: thảo luận, tự học, tự nghiên cứu
- Thời gian: Thảo luận và làm bài tập trên lớp: 3 tiết; Sinh viên tự học: 6 tiết.
- Địa điểm: Giảng đường do P2 phân công.
15
- Nội dung chính:
Rà soát lại các nội dung đã học trong phần 1 về ngôn ngữ chính quy và automata
hữu hạn.
Làm bài test đánh giá.
- Yêu cầu SV chuẩn bị
Hệ thống lại các bài giảng số 2, 3, 4.
Đọc và làm bài tập các chương 2, 3, 4 TL1.
- Tài liệu tham khảo (reading assignments)
1. Introduction to Automata Theory, Languages, and Computation (2nd
Edition) - John E. Hopcropft, Rareev Motwani, Jeffrey D. Ullman. Addison-
Wesley.-2001. Chương 2, 3, 4.
Bài giảng 05: Văn phạm phi ngữ cảnh.
Chương I, mục:
Tiết thứ: 1-3 Tuần thứ: 9, 10
- Mục đích yêu cầu
Mục đích: Trang bị những khái niệm về văn phạm phi ngữ cảnh và ngôn ngữ
phi ngữ cảnh. Giúp sinh viên hiểu cách thức xây dựng và biểu diễn một ngôn
ngữ lập trình. Sự nhập nhằng trong văn phạm phi ngữ cảnh; Rút gọn và chuẩn
văn phạm phi ngữ cảnh; Các tính chất của văn phạm phi ngữ cảnh.
Yêu cầu: Sinh viên nắm vững các khái niệm và các thuật toán biến đổi liên quan
tới CFG và ngôn ngữ loại 2. Về nhà, cụ thể hóa các thuật toán bằng chương
trình.
- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu
- Thời gian: Giáo viên giảng: 4 tiết; Thảo luận và làm bài tập trên lớp: 2 tiết;
Sinh viên tự học: 12 tiết.
- Địa điểm: Giảng đường do P2 phân công.
- Nội dung chính:
5.1. Khái niệm văn phạm phi ngữ cảnh
5.2. Dẫn xuất, cây dẫn xuất trong CFG và CFL
5.3. Sự nhập nhằng trong CFG
5.4. Rút gọn văn phạm phi ngữ cảnh
16
Trong CFG có thể chứa các yếu tố thừa:
Các ký hiệu không tham gia vào quá trình dẫn xuất ra chuỗi ký hiệu kết thúc;
Khái niệm văn phạm rút gọn: vẫn giữ khả năng sản sinh ngôn ngữ đó mà không
chứa những yếu tố vô ích không sinh ra chuỗi, làm phức tạp hay kéo dài dẫn
xuất sinh chuỗi.
Mọi x ∈ (Σ ∪ Δ), tồn tại chuỗi w sử dụng nó trong dẫn xuất;
∈ Δ)
Nếu ngôn ngữ không chấp nhận chuỗi rỗng ε ε.
5.4.1. Loại bỏ các ký hiệu thừa
5.4.2. Loại bỏ các luật sinh ε
5.4.3. Loại bỏ các luật sinh đơn vị
5.5. Chuẩn hóa các văn phạm phi ngữ cảnh
5.5.1. Dạng chuẩn Chomsky
Dạng chuẩn Chomsky (CNF): Văn phạm CFG G(Σ, Δ, S, P) có dạng chuẩn
Chomsky nếu tất cả các luật sinh của nó có dạng A → BC hoặc A → a (nếu ε ∉
L, ngược lại chỉ cần luật sinh S → ε).
Giải thuật đưa về dạng chuẩn Chomsky: giả sử CFL L=L(G) với CFG G=(Σ,
Δ, S, P)
Bước 1: thay thế tất cả các luật sinh có độ dài vế phải là 1
Áp dụng định lý 5.4 để loại bỏ luật sinh đơn vị và ε
Bước 2: thay thế tất cả luật sinh có độ dài vế phải lớn hơn 1 và có chứa ký hiệu
kết thúc:
Bước 3: thay thế các luật sinh mà vế phải có nhiều hơn 2 ký hiệu chưa kết thúc
5.5.2. Dạng chuẩn Greibach
Dạng chuẩn Greibach (GNF): Văn phạm CFG G(Σ, Δ, S, P) có dạng chuẩn
Greibach nếu các luật sinh của nó có dạng A → aα (α là chuỗi các ký hiệu phụ
hoặc ε nếu ε ∉ L; ngược lại thêm vào luật sinh S → ε).
5.6. Các tính chất của văn phạm phi ngữ cảnh
Pumping lemma: cho L là một CFL bất kỳ, tồn tại một số n chỉ phụ thuộc vào
iwxi
Ý nghĩa: dùng để chứng minh một ngôn ngữ có phải là CFL hay không.
17
Định lý 5.7: CFL đóng với phép hợp, phép kết nối và phép bao đóng Kleen.
Định lý 5.8: CFL không đóng với phép giao
Hệ quả: CFL không đóng với phép lấy phần bù.
- Yêu cầu SV chuẩn bị:
Đọc trước slides bài giảng 5. Chương 5 TL2. Làm các bài tập chương 4 TL2.
- Tài liệu tham khảo (reading assignments)
1. Bài giảng 5.
2. John E. Hopcropft, Rareev Motwani, Jeffrey D. Ullman. Introduction to
Automata Theory, Languages, and Computation (2nd Edition) -
Addison-Wesley.-2001. Chương 3.
- Câu hỏi ôn tập (Questions)
1. khái niệm về dẫn xuất và cây dẫn xuất, sự nhập nhằng của văn phạm.
Ví dụ minh họa.
2. Những phép toán nào là đóng với văn phạm phi ngữ cảnh? Ví dụ minh
họa.
3. Phát biểu bổ đề bơm (pumping lemma) cho tập hợp (ngôn ngữ) phi ngữ
cảnh. Ví dụ minh họa.
4. Định nghĩa pushdown automata, giải thích các thành phần. Cho ví dụ
minh họa.
5. Phân biệt PDA đơn định và PDA không đơn định.
Bài giảng 06: Automata đẩy xuống (pushdown automata)
Chương 6, mục:
Tiết thứ: 1-3 Tuần thứ: 11, 12
- Mục đích yêu cầu
Mục đích: Thiết kế PDA chấp nhận CFL bằng stack rỗng hoặc bằng trạng thái
kết thúc; Biến đổi tương đương giữa PDA chấp nhận ngôn ngữ bằng trạng thái
kết thúc sang PDA chấp nhận bằng stack rỗng. Biến đổi tương đương giữa
NPDA và CFG.
Yêu cầu: Sinh viên cụ thể hóa các thuật toán bằng chương trình.
- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu
18
- Thời gian: Giáo viên giảng: 4 tiết; Thảo luận và làm bài tập trên lớp: 2 tiết;
Sinh viên tự học: 12 tiết.
- Địa điểm: Giảng đường do P2 phân công.
- Nội dung chính:
6.1. Khái niệm về Pushdown Automata (PDA)
6.1.1. PDA và các khái niệm liên quan
PDA là một FA với sự bổ sung thêm một ngăn xếp (stack) đóng vai trò bộ
nhớ, do vậy khả năng ghi nhớ của FA được tăng lên, dẫn đến PDA có khả
năng đoán nhận lớp ngôn ngữ rộng hơn là RL (RG, RE);
Stack hoạt động theo nguyên lý FILO (LIFO), do đó FA sử dụng bộ nhớ
có tên gọi là Pushdown automata;
Tại mỗi thời điểm, PDA điều khiển đồng thời cả dòng dữ liệu nhập vào
(băng nhập- tape) và bộ nhớ - bộ đẩy xuống (stack). Khi đọc một tín hiệu
vào, PDA có thể chuyển sang một trạng thái mới, hoặc thêm, xóa đi dữ
liệu từ stack, hoặc đồng thời cả hai;
Lớp PDA có khả năng đoán nhận lớp CFL, trong đó bao gồm các ngôn
ngữ lập trình hiện đại;
Có 2 dạng chuyển trạng thái (transitions):
Dạng 1: phụ thuộc vào ký hiệu nhập. Tại mỗi trạng thái, với 1 ký hiệu đọc vào
và đỉnh stack, PDA sẽ lựa chọn trạng thái kế tiếp và một chuỗi ký hiệu thay thế
trên stack, đầu đọc dịch sang phải 1 ký hiệu;
Dạng 2: không phụ thuộc vào ký hiệu nhập (dịch chuyển ε). Đầu đọc đứng im.
Ngăn xếp biến đổi.
Có 2 cách định nghĩa ngôn ngữ chấp nhận bởi PDA:
Ngôn ngữ chấp nhận bởi stack rỗng: Gồm các chuỗi nhập mà sau bước chuyển
cuối cùng stack trở về trạng thái rỗng;
Ngôn ngữ chấp nhận bởi trạng thái kết thúc: Gồm các chuỗi nhập mà sau bước
chuyển cuối cùng rơi vào một trong các trạng thái kết thúc;
6.1.2. PDA không đơn định (NPDA)
6.1.3. PDA đơn định (DPDA)
6.2. Sự tương đương giữa 2 dạng PDA
6.2.1. Biến đổi tương đương từ dạng 2 sang dạng 1
19
Định lý 6.1: Nếu một CFL L được chấp nhận bởi một PDA chấp nhận chuỗi bởi
trạng thái kết thúc A2 thì L cũng được chấp nhận bởi một PDA chấp nhận chuỗi
bởi Stack rỗng A1
6.2.2. Biến đổi tương đương từ dạng 1 sang dạng 2
Định lý 6.2: Nếu một CFL L được chấp nhận bởi một PDA chấp nhận chuỗi bởi
stack rỗng thì L cũng được chấp nhận bởi một PDA chấp nhận chuỗi bởi trạng
thái kết thúc.
6.3. Sự tương đương giữa PDA và CFG
6.3.1. Biến đổi tương đương từ CFG sang PDA
Định lý 6.3: Nếu L là một ngôn ngữ phi ngữ cảnh thì tồn tại PDA chấp nhận
chuỗi với stack rỗng A sao cho L = N(A).
6.3.2. Biến đổi tương đương từ PDA sang CFG
Định lý 6.4: Nếu L được chấp nhận bởi một PDA chấp nhận chuỗi bởi stack
rỗng thì L là CFL.
- Yêu cầu SV chuẩn bị
Đọc trước bài giảng số 06.
Đọc trước chương 6 TL 1.
- Bài tập (practices and exercises)
Bài tập: Thiết kế PDA cho các CFL sau:
1. {ambn 0 m < n}.
2. {ambn 0 n < m}.
3. {ambncndm | m 0, n 0}.
4. {ambmcndn | m 0, n 0}.
5. {ambncpdq | m + n = p + q}.
6. {ambnck | m = n or m = k}.
7. {anbmc2n | m 0, n 0}.
- Tài liệu tham khảo (reading assignments)
1. Introduction to Automata Theory, Languages, and Computation (2nd Edition)
- John E. Hopcropft, Rareev Motwani, Jeffrey D. Ullman. Addison-Wesley.-
2001. Chương 7.
- Câu hỏi ôn tập (Questions)
20
1. Định nghĩa pushdown automata, giải thích các thành phần. Cho ví dụ
minh họa.
2. Phân biệt PDA đơn định và PDA không đơn định.
Bài giảng 07: Máy Turing
Chương 7, mục:
Tiết thứ: 1-3 Tuần thứ: 13, 14
- Mục đích yêu cầu
Mục đích: Thiết kế PDA chấp nhận CFL bằng stack rỗng hoặc bằng trạng thái
kết thúc; Biến đổi tương đương giữa PDA chấp nhận ngôn ngữ bằng trạng thái
kết thúc sang PDA chấp nhận bằng stack rỗng. Biến đổi tương đương giữa
NPDA và CFG.
Yêu cầu: Sinh viên cụ thể hóa các thuật toán bằng chương trình.
- Hình thức tổ chức dạy học: Lý thuyết, thảo luận, tự học, tự nghiên cứu
- Thời gian: Giáo viên giảng: 4 tiết; Thảo luận và làm bài tập trên lớp: 2 tiết;
Sinh viên tự học: 12 tiết.
- Địa điểm: Giảng đường do P2 phân công.
- Nội dung chính:
7.1. Máy hữu hạn trạng thái có đầu ra
Một trong những hạn chế của FA là chỉ có khả năng đoán nhận từ hay
chấp nhận ngôn ngữ (acceptors and recognizers) , với mỗi chuỗi nhập vào thì
chỉ có tín hiệu ra dạng true (đạt đến trạng thái kết thúc) hoặc false (không thể
xử lý hoặc không rơi vào trạng thái kết thúc);
Trong bài toán thực tế, rõ ràng qua từng bước tính toán, FA có thể đưa ra
các xử lý tương ứng (các OUPUT). Như vậy, hoàn toàn có thể mở rộng FA để
giải quyết các lớp bài toán rộng hơn (FA có đầu ra – transducers):
Mealy machine (Developed by G.H. Mealy in 1955)
Moore machine (Developed by E.F. Moore in 1956)
7.2. Khái niệm về máy Turing
A. Turing vào năm 1936 đã đề xuất máy có khả năng biểu diễn các thuật
toán:
21
Thực chất TM là một automata, nó phân rã họat động của một quá trình
tính toán thành các thao tác đơn giản;
TM sử dụng bộ nhớ ngoài vô hạn, đầu đọc có thể dịch chuyển theo chiều
bất kỳ, có thể đọc và sửa đồi giá trị ghi trên bộ nhớ.
TM có khả năng đoán nhận lớp ngôn ngữ đệ quy đếm được (ngôn ngữ loại
0 – recursively enumerable).
TM không đơn định có bộ nhớ giới hạn thì gọi là một automata tuyến tính
giới nội (Linear Baunded Automata -LBA), LBA có khả năng đoán nhận CSL
(ngôn ngữ loại 1)
7.3. Kỹ thuật thiết kế TM
Việc xây dựng máy Turing bằng cách liệt kê tất cả các hàm chuyển của nó
trên băng nhập có thể là một công việc thiếu hiệu quả. Ta cần sử dụng những
công cụ hay phương pháp thiết kế “thông minh” hơn:
Lưu trữ trong bộ điều khiển (Storage in the finite control);
Sử dụng nhiều rãnh trên băng (multiple tracks);
Đánh dấu ký hiệu (Checking off symbols);
Dịch qua (Shifting over);
Kỹ thuật chu trình con (subrountines);
7.3.1. Kỹ thuật lưu trữ trong bộ điều kiển
7.3.2. Kỹ thuật dịch qua
7.3.3. Kỹ thuật chu trình con
7.3.4. Sử dụng nhiều rãnh trên băng
ĐL 7.1: Nếu L được nhận diện bởi TM với băng vô hạn hai chiều thì L cũng
được nhận diện bằng TM vô hạn một chiều băng
ĐL 7.2: Nếu L được nhận dạng bởi máy Turing nhiều băng vô hạn hai chiều thì
nó cũng được nhận dạng bởi máy Turing một băng vô hạn hai chiều.
ĐL 7.3: Nếu L được chấp nhận bởi máy Turing không đơn định M1 thì L cũng
được chấp nhận bởi một máy Turing đơn định M2 nào đó.
ĐL 7.4: Nếu L được chấp nhận bởi máy Turing k chiều M1 thì L cũng được
chấp nhận bởi một máy Turing một chiều M2 nào đó.
7.4. Sự tương đương giữa TM và REL
ĐL 7.5: Nếu L được chấp nhận bởi máy Turing k đầu đọc M1 thì L cũng được
chấp nhận bởi một TM một đầu đọc M2 nào đó.
22
ĐL 7.6: Một máy Turing có thể mô phỏng một RAM (Random Access
Machine), với điều kiện là mỗi chỉ thị RAM cũng có thể được mô phỏng bởi
một TM
ĐL 7.7: Một ngôn ngữ là tập đệ qui liệt kê nếu và chỉ nếu nó là G(M2) với TM
M2 nào đó.
ĐL 7.8: Nếu L là L(G) với một văn phạm không hạn chế G thì L là ngôn ngữ đệ
quy liệt kê.
ĐL 7.9: Nếu L là ngôn ngữ đệ quy liệt kê thì L = L(G) với một văn phạm không
hạn chế G nào đó.
7.5. Automata tuyến tính giới nội (LBA)
LBA (Linear Bounded Automata) là một TM không đơn định và băng nhập có
giới hạn ở hai đầu (cận phải và cận trái). Vì vậy, nó phải thỏa mãn hai điều kiện
sau:
Bộ chữ cái nhập có chứa thêm hai ký hiệu đặc biệt ⊄ và $ dùng làm ký hiệu
đánh dấu mút trái và mút phải.
LBA không thực hiện phép chuyển sang trái (L) từ ⊄ và không thực hiện phép
chuyển sang phải (R) từ $, và cũng không viết các ký hiệu khác lên ⊄ và $.
ĐL 7.6: Tồn tại giải thuật để xác định với mọi ngôn ngữ cảm ngữ cảnh CSG
G(V, T, P, S) bất kỳ và một chuỗi nhập w ∈ T*, liệu chuỗi w có thuộc ngôn ngữ
L(G) hay không.
ĐL 7.6: Nếu L là một CSG thì L sẽ được chấp nhận bởi một LBA nào đó.
ĐL 7.6: Nếu L = L(M) với một LBA M (Q, Σ, Γ,δ,qo,⊄, $, F) thì L – {ε} là một
ngôn ngữ cảm ngữ cảnh.
- Yêu cầu SV chuẩn bị
Đọc trước bài giảng số 07 của giảng viên.
Đọc chương 7 tài liệu 2.
- Tài liệu tham khảo (reading assignments)
1. Bài giảng số 07 của giảng viên.
2. Introduction to Automata Theory, Languages, and Computation (2nd Edition)
- John E. Hopcropft, Rareev Motwani, Jeffrey D. Ullman. Addison-Wesley.-
2001. Chương 7.
23
- Câu hỏi ôn tập (Questions)
1. Nêu khái niệm về máy Turing, các kỹ thuật xây dựng máy Turing, lớp
ngôn ngữ đoán nhận bởi máy Turing.
2. Nêu khái niệm automata tuyến tính giới nội, lớp ngôn ngữ đoán nhận
bởi automata tuyến tính giới nội.
Bài ôn tập và kiểm tra
Chương 5, 6, 7, mục:
Tiết thứ: 1-3 Tuần thứ: 15
- Mục đích yêu cầu
Mục đích: Hệ thống lại các kiến thức môn học, nội dung thi kiểm tra. Kiểm tra
đánh chất lượng sinh viên
Yêu cầu: Sinh viên nắm vững các kiến thức môn học trang bị
- Hình thức tổ chức dạy học: thảo luận, tự học, tự nghiên cứu
- Thời gian: Thảo luận và làm bài tập trên lớp: 3 tiết; Sinh viên tự học: 6 tiết.
- Địa điểm: Giảng đường do P2 phân công.
- Nội dung chính:
Rà soát lại các nội dung ôn tập
Làm bài test đánh giá.
- Yêu cầu SV chuẩn bị
Hệ thống lại các bài giảng số 5, 6, 7.
Đọc và làm bài tập các chương 5, 6, 7 TL1.
- Tài liệu tham khảo (reading assignments)
1. Introduction to Automata Theory, Languages, and Computation (2nd
Edition) - John E. Hopcropft, Rareev Motwani, Jeffrey D. Ullman. Addison-
Wesley.-2001. Chương 5, 6, 7.
8. Chính sách đối với học phần và các yêu cầu khác của giáo viên
Tham gia học tập đầy đủ: có điểm danh, không mất trật tự, đi học đúng
giờ. Làm bài tập, tham gia thảo luận: làm đủ bài tập, tham gia các buổi thảo luận
Kiểm tra, thi: Luôn bao gồm 2 phần lý thuyết và thực hành với trọng số
như nhau. Học viên có thể được đặc cách miễn thi nếu tham gia tốt quá trình học
24
tập và đạt kết quả xuất sắc trong các bài kiểm tra định kỳ, tích cực tham gia thảo
luận.
9. Phương pháp, hình thức kiểm tra - đánh giá kết quả học tập học phần
9.1. Kiểm tra – đánh giá thường xuyên:
Thường xuyên điểm danh vào thời điểm thích hợp
9.2. Kiểm tra - đánh giá định kì:
- Tham gia học tập trên lớp (đi học đầy đủ, chuẩn bị bài tốt và tích cực
thảo luận,…): hệ số 0.10.
- Hoàn thành tốt Bài tập về nhà , Kiểm tra giữa kì : hệ số 0.2 Kiểm tra 2
lần sau khi hết chương 2 và chương 7.
- Thi kết thúc học phần tốt: hệ số 0.7
Chủ nhiệm Khoa
(Ký và ghi rõ họ tên)
Chủ nhiệm Bộ môn
(Ký và ghi rõ họ tên)
Giảng viên biên soạn
(Ký và ghi rõ họ tên)