Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 533 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
533
Dung lượng
4,98 MB
Nội dung
Luận văn tốt nghiệp KS2 – K6 :
Chương trìnhtrợgiúphọcmộtsố giải thuật trong môn học Lý thuyết ngôn ngữ hình thức & Ôtômát
TRƯỜNG ĐẠI HỌC KỸ THUẬT TP.HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN
LUẬN VĂN TỐT NGHIỆP
Đề tài
Chương trìnhtrợgiúphọcmột số
giải thuật trong môn học
Thầy hướng dẫn :
HỒ VĂN QUÂN
QUẢN THÀNH THƠ
Sinh viên thực hiện :
NGUYỄN CÔNG MINH
LƯU THỊ TỐT
Lớp KS2 – K6
7/99
SVTH : Nguyễn Công Minh -– Lưu Thò Tốt GVHD : Quản Thành Thơ - Hồ Văn Quân
Trang 89
Luận văn tốt nghiệp KS2 – K6 :
Chương trìnhtrợgiúphọcmộtsố giải thuật trong môn học Lý thuyết ngôn ngữ hình thức & Ôtômát
MỤC LỤC
1 .Phần một
Lý thuyết ngôn ngữ hình thức và Ôtômát phần ngôn ngữ chính qui
1.1 Chương 1: Mộtsố kiến thức lý thuyết cơ bản của môn học 2
1.1.1 Từ (word) 2
1.1.2 Ngôn ngữ 3
1.1.3 Automata (máy tự động ) 3
1.1.4 Biểu thức chính qui và ngôn ngữ chính qui 4
1.1.5 Văn phạm chính qui 5
1.2 Chương 2 : Mộtsố giải thuật liên quan 7
1.2.1 Chuyển Nfa sang DFA 7
1.2.2 Xây dựng NFA từ Biểu thức chính qui 12
1.2.3 Xây dựng NFA từ Văn phạm chính qui 18
1.2.4 Giải thuật rút gọn số trạng thái của DFA 19
1.3 Chương 3 :Borland Delphi 3.0 21
1.3.1 Giới thiệu 21
1.3.2 Phần chủ yếu sử dụng trong chươngtrình 22
2. Phần hai
Phân tích và thiết kế tổng quát
2.1 Chương 1: Lý thuyết về phần mềm giảng dạy 26
SVTH : Nguyễn Công Minh -– Lưu Thò Tốt GVHD : Quản Thành Thơ - Hồ Văn Quân
Trang 90
Luận văn tốt nghiệp KS2 – K6 :
Chương trìnhtrợgiúphọcmộtsố giải thuật trong môn học Lý thuyết ngôn ngữ hình thức & Ôtômát
2.1.1 Phần mềm giảng dạy 26
2.1.1.1 Phần mềm dạy học 26
2.1.1.2 Các loại phần mềm giảng dạy hiện tại 27
2.1.1.3 Ứng dụng lý thuyết CDT trong thiết kế phần mềm giảng dạy 28
2.1.2 Chươngtrìnhtrợgiúp giảng dạy môn ngôn ngữ lý thuyết và Automat
hình thức 28
2.1.2.1 Phân tích các điều kiện giảng dạy 28
2.1.2.2 Phương pháp giảng dạy. Chiến lược phát triển các mô hình cho
môn học 29
2.2 Chương 2 : Chươngtrìnhtrợgiúp giảng dạy Lý thuyết ngôn ngữ hình thức
và Automat. Phân tích và thiết kế tổng quát 35
2.2.1 Chươngtrình này làm gì 35
2.2.2 Nhận dạng và xây dựng các đối tượng của phần mềm 36
3.Phần ba
Lập trình cụ thể xây dựng các đối tượng
3.1 Chương 1: Phân tích và thiết kế xây dựng các đối tượng 43
3.1.1Các đối tượng cần xây dựng 44
3.1.1.1 Các đối tượng đồ họa 44
3.1.1.2 Các đối tượng lý thuyết 44
3.1.1.3 Các đối tượng liên kết 44
3.1.2 Sơ đồ tổng quát_ Hướng đi của chươngtrình 47
3.1.3 Chiến lược xây dựng các Module độc lập 48
3.1.4 Chỉ dẫn bảng thiết kế 49
SVTH : Nguyễn Công Minh -– Lưu Thò Tốt GVHD : Quản Thành Thơ - Hồ Văn Quân
Trang 91
Luận văn tốt nghiệp KS2 – K6 :
Chương trìnhtrợgiúphọcmộtsố giải thuật trong môn học Lý thuyết ngôn ngữ hình thức & Ôtômát
3.2 Chương 2 : Cấu trúc dữ liệu của các dối tượng 50
3.2.1.Đối tựợng Nfa Bằng hình vẽ 50
3.2.1.1Tổ chức dữ liệu và cây phân cấp các đối tượng hình 51
3.2.2.2 Dữ liệu và thuật giải 58
3.2.2 Đối tượng DFA bằng hình vẽ 63
3.2.3 Đối tượng NFA lý thuyết bộ 5 63
3.2.4 Đối tượng DFA lý thuyết bộ 5 66
3.2.5 Đối tượng Biểu thức chính qui 67
3.2.6 Đối tượng Văn phạm chính qui 68
3.3 Chương 3 : Các giải thuật 70
3.3.1 Trình biên dòch cho biểu thức chính qui 71
3.3.2 Kiểm tra lỗi cho Văn phạm chính qui 74
3.3.3 Giải thuật xây dựng DFA từ NFA 75
3.3.4 Giải thuật rút gọn số trạng thái của DFA 76
3.3.4 Giải thuật sinh ra NFA từ Biểu thức chính qui 77
3.3.5 Giải thuật sinh ra NFA từ Văn phạm chính qui 78
3.4 Chương 4 :Giao diện chươngtrình 84
3.4 Chương 5 :Tìm hiểu Winhelp .Xây dựng Help- cho ứng dụng 84
3.5.1 Tìm hiểu Winhelp 84
3.5.2 Xây dựng Help cho ứng dụng 85
4 Phần bốn
SVTH : Nguyễn Công Minh -– Lưu Thò Tốt GVHD : Quản Thành Thơ - Hồ Văn Quân
Trang 92
Luận văn tốt nghiệp KS2 – K6 :
Chương trìnhtrợgiúphọcmộtsố giải thuật trong môn học Lý thuyết ngôn ngữ hình thức & Ôtômát
Chương trình nguồn 89
Hết 198
SVTH : Nguyễn Công Minh -– Lưu Thò Tốt GVHD : Quản Thành Thơ - Hồ Văn Quân
Trang 93
Luận văn tốt nghiệp KS2 – K6 :
Chương trìnhtrợgiúphọcmộtsố giải thuật trong môn học Lý thuyết ngôn ngữ hình thức & Ôtômát
Lời nói đầu
Lý thuyết ngôn ngữ hình thức và automat là môn lý thuyết bắt nguồn từ
những nhu cầu mô phỏng ngôn ngữ tự nhiên sử dụng trong máy tính. Ta khó có
thể nói hết những ứng dụng của môn học lý thuyết ngôn ngữ hình thức và
automata trên các lónh vực khác nhau của khoa học máy tính như trình biên
dòch, trong kỹ thuật nhận dạng và chuyển đổi giữa các ngôn ngữ khác nhau.
Chính vì việc nghiên cứu và ứng dụng Lý thuyết ngôn ngữ hình thức và
automata có một vai trò quan trọng như thế, nên việc xây dựng mộtchương
trình trợgiúphọc cho môn học này sẽ có một vai trò tích cực nhất đònh, nhất là
đối với các sinh viên thuộc khoa Công nghệ thông tin. Ngay cả khi chươngtrình
được xây dựng với nhiều hạn chế, thì nó cũng sẽ để lại những kinh nghiệm để
có thể cải thiện và xây dựng lại mộtchươngtrình tốt hơn. Vì như đã nói, với
tầm quan trọng của Lý thuyết ngôn ngữ hình thức và automata, với sự phát
triển như vũ bão của lónh vực công nghệ thông tin ngày nay, mộtchươngtrình
hướng dẫn trợgiúphọc môn Lý thuyết ngôn ngữ hình thức và automata nhất
đònh phải được ra đời và sẽ liên tục được phát triển, nâng cấp cũng như được sử
dụng rộng rãi.
Đấy cũng là mục đích của luận văn này. Có thể chươngtrình được xây
dựng trong luận văn chưa phải là một mô hình trợgiúp cho việc học tối ưu nhất.
Nhưng với nó chúng tôi hy vọng rằng các bạn sẽ đỡ vất vã nhiều trong quá
trình tìm hiểu và học hỏi mộtsố giải thuật cơ bản của môn Lý thuyết ngôn ngữ
hình thức và automata. Chươngtrình được hình thành từ những ý tưởng hỗ trợ
SVTH : Nguyễn Công Minh -– Lưu Thò Tốt GVHD : Quản Thành Thơ - Hồ Văn Quân
Trang 94
Luận văn tốt nghiệp KS2 – K6 :
Chương trìnhtrợgiúphọcmộtsố giải thuật trong môn học Lý thuyết ngôn ngữ hình thức & Ôtômát
việc họcgiúp các bạn học viên thông qua nó để tìm hiểu những vấn đề về lý
thuyết (cụ thể là sử dụng Help của chương trình) ; cũng như tham khảo quá
trình chạy giải thuật của máy tính theo kiểu từng bước để nhằm nắm được sâu
hơn nội dung mà sách hay giáo trình của môn học đưa ra. Chúng tôi hy vọng
chương trìnhtrở thành một công cụ kiểm tra bài tập và tự học các giải thuật
trong môn học này một cách sinh động nhầm nâng cao hiệu quả tiếp thu kiến
thức.
Ngõ hầu đạt được kết quả mong muốn chúng tôi đã cố gắng phân tích và
đề ra các phương pháp thực hiện phần mềm sử dụng sao cho gần gũi và thân
thiện với người học. Với sự cố vấn tận tình của Thầy Hồ Văn Quân và Thầy
Quản Thành Thơ, chúng tôi cố gắng tạïo đầy đủ các công cụ hổ trợ cho người sử
dụng trong khả năng cho phép của mình. Tuy vậy, chắc chắn chươngtrình sẽ có
phần hạn chế do những yếu tố chủ quan của các tác giả, nhưng chươngtrình có
thể phát triển thành mộtchươngtrình giảng dạy hoàn chỉnh cũng như có thể
được nghiên cứu để phát triển việc xây dựng các chươngtrìnhtrợgiúp giảng
dạy cho các môn học khác.
Thành phố Hồ Chí Minh, 7/99.
Học viên KS2-K6
Nguyễn Công Minh
Lưu Thò Tốt
SVTH : Nguyễn Công Minh -– Lưu Thò Tốt GVHD : Quản Thành Thơ - Hồ Văn Quân
Trang 95
Luận văn tốt nghiệp KS2 – K6 :
Chương trìnhtrợgiúphọcmộtsố giải thuật trong môn học Lý thuyết ngôn ngữ hình thức & Ôtômát
Chương 1
Một số kiến thức lý thuyết cơ bản của môn học.
1.1.1.Từ ø(word):
♦ Cho ∑ là bảng chữ cái (alphabet) , một từ w trên ∑ là 1 chuỗi hữu hạn
các chữ cái. Ví dụ u = aabba , v = ababaa là các từ trên bảng chữ cái
∑ = {a,b}.
♦ Chuỗi rỗng cũng là 1 từ trên bảng chữ cái ∑ , ký hiệu λ
♦ Toán tử kết nối (concatenation) : cho 2 từ u ,v trên bảng chữ cái ∑ , kết
nối của u và v , ký hiệu uv là 1 từ trên bảng chữ cái ∑ bao gồm các ký tự
thuộc u theo sau là các ký tự thuộc v .
♦ Một từ u được gọi là từ con (subword) của từ w nếu w = v
1
uv
2
.Nếu
v
1
= λ thì u được gọi là đoạn bắt đầu (initial segment) hay tiền tố (prefix)
của w.
♦ λ là từ con của w và w là từ con của chính nó.
♦ Chiều dài của 1 từ u ký hiệu
u
hay l(u) : là số phần tử trong chuỗi các
ký tự của nó.
♦ Với mọi từ u,v trên ∑ :
uv u v= +
SVTH : Nguyễn Công Minh -– Lưu Thò Tốt GVHD : Quản Thành Thơ - Hồ Văn Quân
Trang 96
Luận văn tốt nghiệp KS2 – K6 :
Chương trìnhtrợgiúphọcmộtsố giải thuật trong môn học Lý thuyết ngôn ngữ hình thức & Ôtômát
uv vu=
♦ Cho F là tập các từ trên bảng chữ cái ∑ , thì F là semigroup với toán tử
kết nối và identity element là λ. F còn được gọi là free semigroup trên
∑.
1.1.2. Ngôn ngữ (language) :
♦ Bất kỳ 1 tập L các từ trên bảng chữ cái ∑ , hay tập con L của ∑
*
được gọi
là 1 ngôn ngữ.
♦ Cho K và L là 2 ngôn ngữ trên bảng chữ cái ∑ :
KL là 1 ngôn ngữ trên ∑ chứa các từ có được bằng cách nối các từ
trong K với các từ trong L.
KL = {w : w = uv , u∈ K và v∈L}
L
0
={λ} , L
1
= L và L
n
= L
n-1
L với n>0
L
*
chứa tất cả các từ mà các ký tự là thuộc các từ trong L :
L
*
L
k
k 0
=
=
∞
1.1.3.Automata (máy tự động)
Một Automata là một mô hình trừu tượng của một máy tính số.Automata
có một đơn vò điều khiển (control unit) dò tìm kiểm tra chuỗi nhập .
1.1.3.1. Automata hữu hạn đơn đònh (dfa or deterministic finite accepter)
1.1.3.1.1. Đònh nghóa 1:
Một dfa được đònh nghóa bởi bộ năm:
M= (Q, ∑ ,δ, q
0
,F)
SVTH : Nguyễn Công Minh -– Lưu Thò Tốt GVHD : Quản Thành Thơ - Hồ Văn Quân
Trang 97
Luận văn tốt nghiệp KS2 – K6 :
Chương trìnhtrợgiúphọcmộtsố giải thuật trong môn học Lý thuyết ngôn ngữ hình thức & Ôtômát
trong đó:
Q: Tập hữu hạn các trạng thái trong.
∑: Tập hữu hạn các ký hiệu nhập.
δ: Q×∑ > Q là hàm chuyển trạng thái.
q
0
∈ Q: Trạng thái khởi đầu.
F ⊆ Q: Tập các trạng thái kết thúc.
1.1.3.1.2. Hoạt động của dfa:
Đọc các ký tự của chuỗi từ trái sang phải đồng thời thay đổi trạng thái ở
ký tự cuối, nếu trạng thái trong ∈ F thì chấp nhận chuỗi, ngược lại thì
không.
1.1.3.1.3. Đònh nghóa 2:
Ngôn ngữ chấp nhận bởi dfa M= (Q, ∑ ,δ, q
0
,F) là tập tất cả các chuỗi
trên ∑ được chấp nhận bởi M. Biểu diễn chính thức bằng kí hiệu:
L(M) = {w ∈ ∑
*
: δ
*
(q
0
,w) ∈ F }
1.1.3.1.4. Đònh nghóa 3:
Một ngôn ngữ L được gọi là chính qui nếu và chỉ nếu tồn tại một dfa M
nào đó sau cho L = L(M).
1.1.3.2. Automata hữu hạn không đơn đònh (nfa or nondeterministic finite
accepter)
1.1.3.2.1.Đònh nghóa:
SVTH : Nguyễn Công Minh -– Lưu Thò Tốt GVHD : Quản Thành Thơ - Hồ Văn Quân
Trang 98
[...]... nghiệp KS2 – K6 : Chươngtrìnhtrợgiúphọcmộtsố giải thuật trong môn học Lý thuyết ngôn ngữ hình thức & Ôtômát Từ bảng truyền trên ta xây dựng mộât dfa ,nhận dạng ngôn ngữ (a|b)*abb: DFA nhận dạng ngôn ngữ (a|b)*abb SVTH : Nguyễn Công Minh -– Lưu Thò Tốt GVHD : Quản Thành Thơ - Hồ Văn Quân Trang 108 Luận văn tốt nghiệp KS2 – K6 : Chươngtrìnhtrợgiúphọcmộtsố giải thuật trong môn học Lý thuyết ngôn... văn tốt nghiệp KS2 – K6 : Chươngtrìnhtrợgiúphọcmộtsố giải thuật trong môn học Lý thuyết ngôn ngữ hình thức & Ôtômát 5 NFA cho r6 = a 6 NFA cho r7 = r5r6 7 NFA cho r11 như sau với r9 = r7r8 , r11 = r9r10 SVTH : Nguyễn Công Minh -– Lưu Thò Tốt GVHD : Quản Thành Thơ - Hồ Văn Quân Trang 116 Luận văn tốt nghiệp KS2 – K6 : Chươngtrìnhtrợgiúphọcmộtsố giải thuật trong môn học Lý thuyết ngôn ngữ hình... Chươngtrìnhtrợgiúphọcmộtsố giải thuật trong môn học Lý thuyết ngôn ngữ hình thức & Ôtômát Dùng giải thuật Thompson để xây dựng nfa, N(r) cho biểu thức chính qui: r = (a|b)*abb sẽ được phân rã như hình cây phân rã sau: Cây phân rã biểu thức chính qui r SVTH : Nguyễn Công Minh -– Lưu Thò Tốt GVHD : Quản Thành Thơ - Hồ Văn Quân Trang 114 Luận văn tốt nghiệp KS2 – K6 : Chươngtrìnhtrợgiúphọc một. .. văn tốt nghiệp KS2 – K6 : Chươngtrìnhtrợgiúphọcmộtsố giải thuật trong môn học Lý thuyết ngôn ngữ hình thức & Ôtômát Chương 2 Mộtsố giải thuật liên quan 1.2.1.Chuyển NFA sang DFA tương đương: 1.2.1.1.Giải thuật tập con (tạo DFA và NFA) Nhập: Một automaton hữu hạn không đơn đònh nfa gọi tắt là N Xuất: Một automaton hữu hạn đơn đònh dfa gọi tắt là D nhận dạng cùng một ngôn ngữ như nfa Phương... Đây là ngôn ngữ cho phép phát triển lập trình hướng đối tượng ♦ Thành phần: SVTH : Nguyễn Công Minh -– Lưu Thò Tốt GVHD : Quản Thành Thơ - Hồ Văn Quân Trang 121 Luận văn tốt nghiệp KS2 – K6 : Chươngtrìnhtrợgiúphọcmộtsố giải thuật trong môn học Lý thuyết ngôn ngữ hình thức & Ôtômát Thành phần cơ bản của một ứng dụng Delphi là một form Có thể xem form như là một cửa sổ: kiểu cửa sổ như ta thấy trong... một cách qui nạp bằng qui tắc 3 dưới đây cho tới khi ta có nfa của biểu thức chính qui r Mỗi nfa SVTH : Nguyễn Công Minh -– Lưu Thò Tốt GVHD : Quản Thành Thơ - Hồ Văn Quân Trang 109 Luận văn tốt nghiệp KS2 – K6 : Chươngtrìnhtrợgiúp học mộtsố giải thuật trong môn học Lý thuyết ngôn ngữ hình thức & Ôtômát trung gian được sinh ra trong quá trình xây dựng sẽ đại diện cho biểu thức con của r và có một. .. : Chươngtrìnhtrợgiúp học mộtsố giải thuật trong môn học Lý thuyết ngôn ngữ hình thức & Ôtômát trạng thái qo trên sự truyền rỗng -closure(T) Là tập trạng thái của nfa , nfa đạt tới chúng từ một trạng thái q nào đó của nfa thuộc T trên sự truyền rỗng Move(T,a) Tập các trạng thái nfa, nfa đạt được chúng khi có sự truyền trên kí hiệu nhập Phân tích: Trước khi đọc một kí tự nhập, nfa có thể ở một. .. học mộtsố giải thuật trong môn học Lý thuyết ngôn ngữ hình thức & Ôtômát Button, CheckBox, ListBox, ScrollBar, được tạo sẵn Người sử dụng chỉ cần Clicked vào một trong số các công cụ là đã có thể tạo được một chức năng mong muốn 1.3.2 Phần chủ yếu sử dụng trong chươngtrình Trong đối tượng TCANVAS đã cung cấp cho ngưới sửû dụng mộtsố phương thức để xây dựng các đối tượng đồ hoạ Sau đây là mộtsố phương... Trường hợp G là một văn phạm tuyến tính trái thì chúng ta chỉ cần dựa vào ý tưởng chính ở trên bằng cách thay thế Luật sinh A >Bv bởi A > B Luật sinh A >v bởi A > 1.2.4 Giải thuật rút gọn số trạng thái của dfa ♦ Nhập: SVTH : Nguyễn Công Minh -– Lưu Thò Tốt GVHD : Quản Thành Thơ - Hồ Văn Quân Trang 118 Luận văn tốt nghiệp KS2 – K6 : Chươngtrìnhtrợgiúp học mộtsố giải thuật trong môn học Lý thuyết ngôn... t đều đi đến các trạng thái kế tiếp nhau ở trong cùng một nhóm của Ta thay G bằng những nhóm nhỏ hơn vừa tạo ra, cho chúng vào new end; SVTH : Nguyễn Công Minh -– Lưu Thò Tốt GVHD : Quản Thành Thơ - Hồ Văn Quân Trang 120 Luận văn tốt nghiệp KS2 – K6 : Chươngtrìnhtrợgiúp học mộtsố giải thuật trong môn học Lý thuyết ngôn ngữ hình thức & Ôtômát Chương 3: Borland Delphi 3.0 1.3.1 Giới thiệu Delphi . tốt nghiệp KS2 – K6 :
Chương trình trợ giúp học một số giải thuật trong môn học Lý thuyết ngôn ngữ hình thức & Ôtômát
Chương 1
Một số kiến thức lý thuyết. tốt nghiệp KS2 – K6 :
Chương trình trợ giúp học một số giải thuật trong môn học Lý thuyết ngôn ngữ hình thức & Ôtômát
Chương 2
Một số giải thuật liên