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.. Môn h
Trang 1HỌ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)
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: hct2009@yahoo.com; vominhpho@yahoo.com
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
3 Mục tiêu của học phần
Trang 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)
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
Trang 3Giớ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
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
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
Trang 4Sự 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
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 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
Trang 51
Introduction to Automata Theory,
Languages, and Computation (2nd
Edition) - John E Hopcropft,
Rareev Motwani, Jeffrey D
Problem Solving in Automata,
Languages, and Complexity
Ding-Zhu Du and Ker-I Ko JOHN
WILEY & SONS, INC 2001
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
Trang 6Mụ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ệ:
Trang 7Quan 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
- 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
Trang 8Chương 2, mục:
- 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
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
Trang 9Cá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:
- 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;
Trang 10Yê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
Trang 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
Trang 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:
- 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
Trang 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:
Đị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