Dữ liệu cho chương trình hoạt động của ôtômat hữu hạn không tiền định.... Lí thuyết ôtômat hữu hạn đóng vai trò quan trọng trong mô hình hỏa toán học và cũng vì những lí do trên nhiều kh
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM TP.HCM
KHOA TOÁN - TIN
BỘ MÔN TIN
LÊ THỊ THU HƯƠNG
DO AN TOT NGHIỆP CỬ NHÂN SƯ PHAM TIN
TP.HCM , 2006.
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM TP.HCM
KHOA TOÁN - TIN
BO MON TIN
LÊ THỊ THU HƯƠNG
Giáo viên hướng dẫn : Th.s: NGUYEN NGỌC TRUNG
TP.HCM, 2006.
Trang 3Lời cảm ơn
Sau gan hai tháng làm việc, cuối cùng thì em cũng đã hoàn thành được đỗ án tốt
nghiệp của mình Mặc dù, kiến thức trong dé án nảy chi là một phần nhỏ trong kho
tảng kiến thức của môn 6témat, nhưng đối với em đó là một thành công tuyệt vời Đó
là thành quả của gần hai tháng trời nghiên cứu học tập và làm việc Và xa hơn nữa,
chính là kết quả của bốn năm đèn sách dưới mái trường Đại Học Sư Phạm
Có được thành tựu dù không lớn nhưng nó cũng đã thẻ hiện phần nào sự quyết
tâm, có gắng của bản thân cũng như sự chỉ bảo tận tình của các thay cô đã dạy bảo emtrong suốt thời gian học vừa qua Em xin chân thành cảm ơn đến tat cả các thầy cô
trong trong Khoa Toán Tin, đặc biệt là Tổ Bộ môn Tin Học đã tận tình chi bảo,
truyền đạt những kinh nghiệm, kiến thức cho chúng em dé chúng em có được những cơ
sở kiến thức can thiết hoàn thành đô án này Những kỷ niệm, những ân tình mà các
thay đối với chúng em sẽ mãi là những kỷ niệm dep, chúng em sẽ mãi không bao giờ
quên Em xin chân thành cảm ơn thầy Nguyễn Ngọc Trung, thầy đã hướng dẫn em
hoàn thành tốt đồ án này.
Tuy đã rất cé gắng nhằm đạt được những gì tốt nhất cho đồ án này, nhưng dokiến thức có hạn nên dé án này nhất định sẽ có những khiếm khuyết cần được sửa
chữa Kinh mong các thay cô cùng các bạn đọc thông cảm và nhiệt tình đóng góp
những ý kiến nhằm khắc phục những khiếm khuyết của đồ án Qua đó, em sẽ củng cd
lại kiến thức của minh, khắc phục lại những sai lầm cũ, làm cho đô án này được mới
mé hơn, hừu ich hơn.
Một lan nữa, em xin gửi lời cảm ơn đến tat cả các Thay Cô đã dạy bao em trong
suốt thời gian qua Sự day bảo, đóng góp của các Thầy Cô chinh là những nên tảng cơ
bản nhất giúp chúng em có đủ tự tin trên bước đường hoàn thiện kiến thức của mình
Thành phố Hồ Chí Minh Ngày 15 tháng 06 năm 2006
LÊ THỊ THU HƯƠNG
Trang 4DPA CANON ‡oztrcnrtetgtserlvftrgetaiytsttrrirttiangTA7E101300-E.IEIIDNTHREIIGE00RIATE1/008E |
2.2.M6 hình của một ôtômat hữu han (tiền định hoặc không tiền định) 5
2.3.Định nghĩa về ôtômat hữu hạn tiền định cseeecsseeccseeeseeeeseessesessneesssessseceuseeane §
2.3.1 Hoạt động của Ôtômat hữu hạn tiền định cceeiiiieo 6 2.3.2 Ví dụ về Ôtômat hữu hạn tiền định (cá nssieeirree 6 2.3.3 Định nghĩa : (để mô tả hình thức quá trình chap nhận một từ người ta đưavào ánh xạ mở rộng ổ' từ tập con của KxV” vào K) - scccccsseceeresrrree 72.3.4 Định nghĩa :( Nói lên điều kiện để ôtômat A có chấp nhận từ @) 82.4 Ôtômat hữu hạn không tién định .c ccssccessessesssseesssessecssesssecssesenecsseessseesseeeneeees 9
2.4.1 Dinh nghĩa ôtômat hữu hạn không tiền định : ‹ 9 2.4.2 Hoạt động của Ôtômat hữu han không tiền định -.- - 10 2.4.3 Ví dụ về Ôtômat hữu hạn không tiền định - c5 10
2.4.4 Định nghĩa :( Nói lên điều kiện để ôtômat A có chấp nhận từ @) 10
Chương 3: 'Ứng dụng nữnh họä «coosenosssssosennseeeeonossseensssrase 12
3.1 Chương trình hoạt động của ôtômat hữu hạn thên!O 0lirxecsuentreroiagraaicrenrrt 12
3.2 Dữ liệu cho chương trình hoạt động của ôtômat hữu hạn không tiền định 1§
3.3 Các lớp sử dụng trong chương trình -:‹:‹c:ccc sec sc cecScsecsrserrreererereerxee 16
3.4 Mô tả ứng dụng minh họỌa: «cà tết nghe HH ry 18
Trang 5Chương 4 Danh giá dé tài và dé xuất hướng phát triển kế tiếp - . .- 27
4.1.Những kết quả đã dat được -:- t5 tt 22 1 22171127232211222722222122xccce 27
ADD xuái tưởng pi ht tebe aanreenarayeranannirrrrrrnrdiniindtiriiisiirnenrniattiasadi 27
Danhimucitarl liu thant KAO se siassiessesccssncsessvasacavevsavevsevasvavvansnvssseuavarreswanensanavisonenvenwsen 28
Phụ lục ee eeceecececcesccsscecesesecesscseecusesessceuecssessesacensesascaecsueeusceussacesesensesecaeseusearenscaceesees 29
Trang 6Chương 1 Giới thiệu về đề tài.
l1 € ia dé tai:
Ngày nay lí thuyết về ngôn ngữ hình thức va ôtômat đóng vai trò quan trọngtrong việc thiết lập một số cơ sở lí thuyết toán học của nganh tin học và nghiên cứu của
các máy thông tin Ngôn ngữ hình thức còn được sử dụng trong việc xây dựng các
ngôn ngữ lập trình, lí thuyết về các chương trình dịch Vì vậy môn học này từ lâu đã là
môn học chuân trong chuyên ngành khoa học may tinh ở cap bậc dai học Do các
ôtômat hữu hạn này là các máy tưởng tượng dùng đẻ nhận biết lớp các ngôn ngữ đơn
giản rất cẩn thiết cho ngôn ngữ lập trình Lí thuyết ôtômat hữu hạn đóng vai trò quan
trọng trong mô hình hỏa toán học và cũng vì những lí do trên nhiều khi làm cho sinh
viên đôi khi cũng chưa hiểu rõ nguyên tắc hoạt động của các máy này dựa trên những
cơ sở đó nên em cũng muốn có một chúc gì góp phần giúp đỡ cho các bạn sinh viên
trong việc học môn ngôn ngữ hình thức và ôtômat hữu hạn.
1.2 Mục tiêu của đề tài :
+ Xây dựng tài liệu tham khảo cho sinh viên về Nhdp Món NGON NGỮ HÌNH
THỨC VÀ ÔTÔMAT HỮU HẠN
Xây dựng một ứng dụng minh họa (chương trình minh họa hoạt động của các
ôtômat hữu hạn)
1.3 Pham vi của dé tài:
Như trên đã nói, chú dé của đồ án này là xây dựng chương trình minh họa hoạtđộng của các ôtômat hữu hạn Do đó, chúng ta chỉ trình bày những kiến thức cơ bản
nhất mà qua đó sinh viên có thé đọc, hiểu và vận dụng vào việc học tập môn học
ôtômat và ngôn ngữ hình thức.Cụ thé hơn, chúng ta sẽ trình bay những van để sau đây :
+ Giới thiệu về Ôtômat Hữu Han(TIEN ĐỊNH VA KHONG TIEN ĐỊNH)
s»* Xây dựng ứng dụng minh họa chương trình hoạt động của các ôtômat hữu hạn.
Trang 7A AGA
Chương2 Lý thuyết về ôtômat hữu han tiền định
và không tiền định
2.1 Ôtômat hữu han là gì:
Ôtômat hữu hạn là một bộ máy tưởng tượng dùng đẻ nhận biết lớp các ngôn ngữđơn giản nhưng rất cần thiết trong xây dựng các ngôn ngữ lập trình Lý thuyết Ôtômat
hừu hạn đóng vai trò quan trọng trong mô hình hóa toan học các phương pháp tính toán
và các phép xử lí thông tin Một Ôtômat hữu hạn bao gồm ba bộ phận chính sau đây :
* Mot bang trên đó có thé ghi một từ trên bộ chữ vảo gọi là băng vào.
* Một đầu đọc mỗi lan chi đọc được một kí hiệu và dịch chuyển sang phải một
vị trí.
* - Một tập hữu hạn các trạng thái điều khiển.
Mô hình của một ôtômat hữu hạn (tiền định hoặc không tiền định) :
2.3 Định nghĩa về ôtômat hữu hạn tiền định :
Ôtômat hữu hạn tiền định là bộ năm A=<K,V, 3, q,, F>, trong đó :
* K là tập hữu hạn khác rỗng các kí hiệu gọi là tập trạng thai,
Trang 8*® 6 là một ảnh xạ từ một tập con nảo đó của KxV vào K.
Nếu ở là ánh xạ từ KxV vào K (xác định trên toàn miền KxV) thì ôtômat
A được gọi là xác định hoàn toàn :
a
Hoạt động của Otémat có thê mô tả như sau Giả sử chúng ta cần xem xét
từ @ =a)ap a, Trước hết ghi từ œ lên băng vao của ôtômat A ở vị trí a, trên băng và ôtômat A xuất phát từ trang thái qạ Anh xạ chuyên trang
thai ðở quyết định trạng thải hiện hành tiếp theo, chẳng hạn, ta có p= ở (qo,4)) va dau doc chuyén sang phải một vi tri ki hiệu để đọc kí hiệu ap.
khi đầu đọc ở vị tri a; ánh xa chuyén trạng thái ở xác định trang thái tiếp
theo, chăng hạn, ta có p;= ổ (p),a2) và quá trình đọc các kí hiệu a), ả;,
tiếp tục cho đến khi gặp một trong các tình huống sau (điều kiện dừng,
của hoạt động) :
+ _ Trong trường hợp ôtômat A đọc hết từ @ và ở (p,,an)=p„ € F
ta nói rằng A chấp nhận từ ø.
+ Trong trường hợp ôtômat A đọc hết từ @ và ở(pai,ân)=paeF,
hoặc là tôn tại chỉ số j (j<=n) sao cho ở (P,.¡,a,) không xác
định ta nói rằng A không chp nhận từ ø2.
Ví dụ về Ôtômat hữu hạn tiền định :
Cho một Ôtômat hữu hạn tiền định là bộ năm:
A“<{qo.q›,q:1,(0,1}, ở, qo,{q;†>
Trong đó 5 được định nghĩa như sau :
Trang 9ở (qo.0)=qo ổ(qo,Ì)=qì ô(q:,0)=qu,
6 (q),1)=42 ð(q;,0)=qo ô(q;,1)=q;
-2.3.3 Định nghĩa : (để mỏ tả hình thức quá trình chấp nhận một từ người ta
đưa vào ánh xạ mở rộng ổ từ tap con của KxV` vào K)Cho Ôtômat hữu hạn tiền định A=<K,V, ở, qo, F> Mở rộng ở của ở làmột ánh xạ từ tập con của KxVỶ vào K, được xác định như sau
1 đ(q, £)=q với mọi qek và e là từ rỗng,
2 ổ(q, wa)= (ổ(q, @),a) với Vae V và VqeK, Vøe VÌ sao
cho 6 (q, œ) xác định.
Với VaecV và VqeK ta có :
5 (q, a)" 5 (q, €a)= 5( 5 (q, £),a)= ổ(q,a) Do đó trên KxV ta có
thé đồng nhất 5 với 5 Nếu không can phân biệt ta viết 5 thay cho
ở' Trong trường hợp nảy ở (q, ø@)=ở (q, ø) nếu øeV”.
Ví dụ tương ứng (2.3.3) :
Với ôtômat A cho trong vi dụ 2.3.2 ta cỏ :
5 (qo, 011011) = 5 (8 (qo, 01101),1) (1)
& ( qo, 01101) = 5 (5 (qo, 0110),1) (2)
& ( qo, 0110) = 5 (5 (qo, 011),1) (3)
& ( qo, 011) = 5 (5 (q, 01),1) (4)
5 (qo, 01) = ð (8 (qo, 9),1) (5)
ở (qo, 9) = ð (40,0) = qo (6)
Thay (6) vào (5) ta có :
ð( qo, 01) = ô (5 (go, 0).1)= ổ(qo,1)= qi(7)
Thay (7) vào (4) ta có: 5 (qo, 011) = ở (q),1) Tiếp tục như vậy
cudi cùng ta có : ổ( qo, 011011) = qạ
Trang 102.3.4 Định nghĩa : ( Nói lên điều kiện dé ótômat A có chấp nhận từ w)
Cho Ôtômat hữu hạn tiền định A=<K,V, ở, qo, F> và một từ we V” Tanói rằng A chấp nhận œ ( hay @ được chấp nhận bởi A) nếu và chỉ nếu
ð(qu, @) € F.
Hay nói cách khác A chấp nhận từ @ nếu w=a)ap a, và tổn tại một day
các trạng thai p;, po, , py sao cho 6 (qo,a1)=p1, ổ(P¡,42)EP:.: O (Pais
8a)=pạ € F.
Vi dụ tương ứng với định nghĩa 2.3.4 :
Cho một Ôtômat hữu hạn tiền định là bộ năm:
A=<(qa,q¡,q›}.{0,1}, ở, qo, {qa,q2}>
Trong đó 5 được định nghĩa như sau :
ð(qo.0)=qo ô(qo,l)=q: 5 (q1,0)=q , ô(q¡,l)Zq¡ ô(q›,0)=q; ð(q;,l)=qo
Xét từ w= 001110 Ta có :
5 ( qo, 001110) = 8 (ô (qo, 00111),0),
8 ( qo, 00111) = & (8 (qo, 0011),1),
& ( qo, 0011) = ở (8 (qo, 001),1),
(qo, 00111) = ở (8 (qo, 0011),1)=ð (qi, 1) #Qì,
8 (qo, 001110) == 8 (8 (qo,00111),0)= ö (qy, 0) =qg.
Trang 11Vì q; là một trong những trạng thái kết thúc nên ta có thé nói rằng từ @
được chấp nhận bởi ôtômat A
Trong Ôtômat hữu hạn tiền định ánh xạ ở là một ánh xạ đơn trị có nghĩa
là tại mỗi thời điểm 6 (q,a) hoặc là không xác định hoặc là trạng thái p nào đó.
Bây giờ ta xét trường hợp ánh xa 6 là đa trị, có nghĩa là, tại mỗi thời điểm
ồ(q.a) có giá trị là tập hợp con của các trạng thái Một cách hình thức ta có thê
định nghĩa như sau :
Ôtômat hữu hạn không tiền định là bộ năm A=<K,V, ở, qu F>, trong đó :
* K là tập hữu hạn khác rỗng các ki hiệu gọi là tập trang thái,
* V là tập hữu hạn các ki hiệu gọi là bảng chữ vao,
* qe K là trạng thái đầu
* FC K là tập các trạng thái kết thúc,
* & là một ảnh xạ từ KxV vào :⁄2K) ( tập các con của k), gọi là ánh xạ
chuyển trạng thái Có nghĩa là với q eK ,a € V, 3(q,a)={p),
P2. Dx}, trong đó p; eK với mọi i (i = 1,2, , k).
Nếu ổ(q.a)= {pj, P› p} thì ta nói rằng dtémat ở trạng thái q gặp kíhiệu a có thể chuyển đến một trong các trang thái p), p; py Nếu
6 (q,a)={p} thì ở trạng thái q gặp ki hiệu a ôtômat chi chuyển một trạng
thái duy nhất p Nếu 4(q,a)= Ø thi trạng thái q gặp kí hiệu a không théchuyên đến trạng thái nào Trường hợp này tương tự như ở(q,a) khôngxác định của Ôtômat hữu hạn tiền định Như vậy ta thấy rằng có thể xemÔtômat hữu hạn tiễn định là một Ôtômat hữu hạn không tiền định Hay
Trang 12tiếp theo là p), pz px Tiếp tục với mỗi p, (¡=1,k) và kí hiệu tiếp theo là
a) các trạng thải tiếp theo có thẻ là ð (p),a2)U 6 (p2,a2)U U ở (p82)
={ri,r;, ,r¿} quá trình này tiếp tục cho đến khi gặp một trong các tìnhhuống sau (điều kiện dừng của hoạt động) :
* Tập trạng thái tiếp theo sau khi đọc a; nào đó là rỗng lúc đó ta
nói rằng A không chấp nhận @
* Tap trang thái tiép theo sau khi đọc kí hiệu a, là K" và
K'¬Fz Ø Khi đó ta nói rằng A chấp nhận từ ø.
Ví dụ về Ôtômat hữu hạn không tiền định :
Cho một Ôtỏmat hữu hạn :A=<{qo,qi.q¿},(0,1},ổ , qo,{qa}> , trong đó
ð được xác định như sau :
5 (qo,0)= {qo} ô(qo,l)= {qoq›} ð(qi,0)= Ø2,
5 (qi,1)" {q2} 5 (42,0) {qa} 6 (q2,1)= {qi}
-Là không tiền định
Định nghĩa :( Noi lên điều kiện để 6témat A có chap nhận từ w)
Cho Ôtômat hữu hạn không tiễn định A=<K,V, ở, qạ,F>
1 Một từ @ gọi là được chấp nhận bởi A nếu và chỉ néu
5(q0,@) ¬F# Ø.
-lũ0=
Trang 132 Ngôn ngữ được chap nhận bởi A là T(A)E {@ eV": ổ(qo, @)
F# Ø }.
Ví dụ tương ứng với định nghĩa 2.4.4 :
Cho Ôtômat hữu hạn không tiền định A=<{qo.q.q›}.{0,1} ở , qo.(qo}>,
trong đó ánh xạ dịch chuyên trạng ở được xác định như sau :
ở(qo0)={quqj} — ổ(qe.l)= {qo} ổ(qi,0)= {q0 đi),
5(q0,0100) = 5 (qa0) x2 5 (41,0) = {qu, qi Qa}
5 (qo,01000) = ô(qa,0) t2 5 (qi,0) c2 ô (q2,0) = {qo, G1,
G2}-Vi 6 (qo,01000) AF # Ø nên từ 01000 eT(A).
Bang phương pháp tương ty định nghĩa trên ta có thé vẽ sơ đồ dịch
chuyên trạng thái cho Otémat hữu han không tiền định Trong trường
hợp này, nếu ở (q,4)“ {p), Pz ,Px} thì có các cạnh ki hiệu a đi từ nút qđến các nút p), pạ, p„ chẳng hạn, đối với ôtômat A trong ví dụ trên ta
có thẻ vẽ sơ dé dịch chuyên trạng thái như sau :
Trang 14Ca b
Chương 3 Ứng dụng minh họa
của ôtômat hữu han tiền định :
+ Dữ liệu vào : ( nhập diz liệu)
° Nhập tổng số trạng thái i của K từ đó chúng ta xuất ra được tương ứng
các trạng thái từ qo, qị,- Gia- — „.
Nhập tổng số bảng chữ vào j từ đỏ xuất ra được các chữ trong bảng chữ
vào tương ứng từ 0, Ì, , G-1).
Nhập tổng số trạng thái kết thúc : trạng thái kết thúc phải thuộc tập các
trạng thái va các trạng thai kết thúc không được trùng nhau
Nhập ánh xạ đelta sao cho các ánh xạ phải thuộc tập các trạng thái
Nhập tông số kí của từ can đọcNhập từng kí tự của từ cần đọc sao cho các từ nảy phải thuộc vào bảngchữ vào (néu nhập sai chương trình bắt nhập lai)
+ Hoạt động :
© Thiết kế màn hình đồ họa : chia ra làm 3 khung trong đỏ có khung mô
tả họat động gồm có word mới được nhập vào và các trạng thái, khung
Trang 15
-12-thứ hai là khung thong kê gồm có tập các trang thái kết thúc, bang chữ
vào và bảng thé hiện anh xa delta, khung còn lại có mục đích giới thiệu
cách thức làm việc của chương trình và giới thiệu đôi nét về bản thân
Trong đó có một số hàm như sau :
Ham vcanhxa() : dùng dé vẽ bảng ánh xa delta lên màn hình đồ họa.Hàm vebangchuvao() : dùng để vẽ bảng chữ vào lên mản hình đồ họaHàm vetrangthai() : dùng đẻ vẽ tập các trạng thái trên khung hoạt
động
Hàm vechuvao() : dùng dé vẽ từ cần đọc Còn một số hàm cụ thé nữa
sẽ được giới thiệu trong phần sau
o_ Minh họa cách ôtômat tiền định đọc từ mới nhập vào
* Phương thức hoatdong() trong lớp Automattiendinh minh họa
cách ôtômat đọc từ :
/¡ Đoạn code thé hiện cách thức hoạt động của ôtômat hữu hạn tiền
định int kq,i = 0,q = 0;
while(1)
{
while(i<tông số kí tự của từ)
{ /ƒIìm ánh xạ delta(trang thai, kí tự trong từ)
kq = delta[q](wordint[i]], /[q] : trạng thái, wordim{i]: Kí tự trong từ.
VE đường thăng thể hiện sự kết hợp của trạng thái với kí tự
trong từ
setcolor(5);
line(q*30+110,300,1%30+1 10,120);
ke
Trang 17outtextxy(350,70," Word duoc Automat chap nhan”);
else outtextxy(350,70,"Word khong duoc Automat chap nhan”);
+ Kết quả màn hình ứng dụng : kết quả thu được là từ có được ôtômat chấp
nhận hay không.
3.2 Dữ liệu cho chương trình hoạt động của ôtômat hữu hạn không tiền định :
+ Lớp ôtômat hữu hạn không tiền định kế thừa từ lớp ôtômat hữu hạn tiền
định Nên có một số phần không thay đổi thi lớp nay kẻ thừa từ lớp ôtômat
hữu hạn tiền định
= Bis