Em xin khẳng định kết quả của đề tài "Về otomat hữu hạn và ngônngữ chính quy" là kết quả của việc nghiên cứu, học tập và nỗ lực củabản thân, không có sự trùng lặp với kết quả của các đề
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
NGƯỜI HƯỚNG DẪN KHOA HỌC:
TSKH Kiều Văn Hưng
Hà Nội – Năm 2016
Trang 3Để hoàn thành khóa luận tốt nghiệp này, em xin bày tỏ lòng biết ơn chânthành tới các thầy giáo và cô giáo trong Khoa Toán – Trường Đại học Sưphạm Hà Nội 2, đã tận tình giúp đỡ chỉ bảo trong suốt thời gian em theohọc tại khoa và trong thời gian làm khóa luận.
Đặc biệt em xin bày tỏ lòng biết ơn sâu sắc tới TS Kiều Văn Hưng– người thầy đã trực tiếp hướng dẫn em, luôn tận tâm chỉ bảo và địnhhướng cho em trong suốt quá trình làm khóa luận để em có được kết quảnhư ngày hôm nay
Mặc dù đã có rất nhiều cố gắng, song thời gian và kinh nghiệm bảnthân còn nhiều hạn chế nên khóa luận không thể tránh khỏi những thiếusót rất mong được sự đóng góp ý kiến của các thầy cô giáo, các bạn sinhviên và bạn đọc
Em xin chân thành cảm ơn!
Hà Nội, ngày 02 tháng 05 năm 2016
Sinh viênNguyễn Thị Huyền
Trang 4Khóa luận này là kết quả nghiên cứu của bản thân em dưới sự hướng dẫntận tình của thầy giáo TS Kiều Văn Hưng.
Trong khi nghiên cứu hoàn thành đề tài nghiên cứu này em đã thamkhảo một số tài liệu đã ghi trong phần tài liệu tham khảo
Em xin khẳng định kết quả của đề tài "Về otomat hữu hạn và ngônngữ chính quy" là kết quả của việc nghiên cứu, học tập và nỗ lực củabản thân, không có sự trùng lặp với kết quả của các đề tài khác Nếu sai
em xin chịu hoàn toàn trách nhiệm
Hà Nội, 02 tháng 05 năm 2015
Sinh viênNguyễn Thị Huyền
Trang 5không đơn định 121.2.4 Đơn định hóa các otomat 141.3 Sự tương đương giữa otomat hữu hạn đơn định và otomat
hữu hạn không đơn định 17
Trang 62.1 Ngôn ngữ chính quy và biểu thức chính quy 192.2 Sự liên hệ giữa otomat hữu hạn và ngôn ngữ chính quy 23
Trang 7Lời mở đầu
Ngôn ngữ là một phương tiện để giao tiếp, sự giao tiếp có thể hiểu làgiao tiếp giữa con người với nhau, giao tiếp giữa người với máy hay giaotiếp giữa máy với máy Nếu như ngôn ngữ mà con người có thể giao tiếpvới nhau được gọi là ngôn ngữ tự nhiên, thì ngôn ngữ mà chúng ta vẫnthường sử dụng để giao tiếp với máy, hay giữa máy với máy được gọi làngôn ngữ hình thức Con người muốn máy tính thực hiện công việc phảiviết các yêu cầu đưa cho máy bằng ngôn ngữ máy hiểu được Việc viếtcác yêu cầu như thế gọi là lập trình Ngôn ngữ dùng để lập trình đượcgọi là ngôn ngữ lập trình Các ngôn ngữ lập trình đều là ngôn ngữ hìnhthức Trong đó, otomat và ngôn ngữ hình thức là một nội dung khá mới
mẻ giúp chúng ta hiểu sâu hơn về cấu trúc ngôn ngữ lập trình, đặc biệtnội dung otomat hữu hạn và ngôn ngữ chính quy là một nội dung kháhay đối với em
Xuất phát từ sự yêu thích đối với chuyên ngành Toán Ứng dụng và lòngđam mê nghiên cứu khoa học, em đã chọn để tài Về otomat hữu hạn
và ngôn ngữ chính quy để làm nội dung nghiên cứu khóa luận tốtnghiệp
Otomat hữu hạn là một mô hình "máy trừu tượng" để đoán nhận ngônngữ Chúng ta sẽ thấy rằng lớp ngôn ngữ được đoán nhận bởi otomathữu hạn khá đơn giản , đó chính là lớp ngôn ngữ chính quy do văn phạmchính quy sinh ra
Khóa luận gồm ba chương
Trang 8Chương 1 "Otomat hữu hạn" trình bày về một mô hình máy trừutượng để đoán nhận ngôn ngữ, đó chính là các otomat hữu hạn.
Chương 2 "Ngôn ngữ chính quy và biểu thức chính quy" sẽ địnhnghĩa các ngôn ngữ chính quy trực tiếp từ các khái niệm về ngôn ngữ.Đồng thời với các ngôn ngữ chính quy, chúng ta đưa ra khái niệm vềbiểu thức chính quy là công cụ để biểu diễn các ngôn ngữ chính quy.Chương 3 "Bài tập " đưa ra 8 bài tập minh họa cho các nội dungkiến thức được đưa ra trong Chương 1 và Chương 2
Tác giả khóa luận chân thành cảm ơn TS Kiều Văn Hưng đã tận tìnhhướng dẫn tác giả đọc các tài liệu và tập dượt nghiên cứu
Tác giả chân thành cảm ơn các thầy cô giáo Khoa Toán trường Đạihọc Sư phạm Hà Nội 2, đặc biệt là tổ Ứng dụng, đã tạo điều kiện thuậnlợi cho tác giả trong quá trình học Đại học và thực hiện bản khóa luậnnày
Hà Nội, ngày 02/05/2016Tác giả khóa luận
NGUYỄN THỊ HUYỀN
Trang 9Danh mục các kí hiệu và chữ viết tắt
Trang 10Chương 1
Otomat hữu hạn
1.1 Otomat hữu hạn đơn định
1.1.1 Otomat hữu hạn đơn định
Định nghĩa 1.1 Một otomat hữu hạn đơn định hay một DFA ( inistic Finite Automata) là một bộ năm
+q0 ∈ Q , được gọi là trạng thái khởi đầu;
+F ⊆ Q , được gọi là tập các trạng thái kết thúc
Trong trường hợp D = Q × P , ta nói A là otomat đầy đủ Sau này ta
sẽ thấy rằng mọi otomat hữu hạn đều đưa được về otomat hữu hạn đầy
Trang 11đủ tương đương Khi bắt đầu làm việc, otomat ở trạng thái khởi đầu
q0 và đầu đọc đang nhìn vào ô có kí hiệu a1 Tiếp theo otomat chuyển
từ trạng thái q0 dưới tác động của kí hiệu vào a1 về trạng thái mớiδ(q0, a1) = q1 ∈ Q và đầu đọc chuyển sang phải một ô, tức là nhìn vào ô
có kí hiệu a2 Sau đó otomat A có thể lại tiếp tục chuyển từ trạng thái
q1 nhờ hàm chuyển δ về trạng thái mới q2 = δ(q1, a2) ∈ Q Quá trình
đó sẽ tiếp tục cho tới khi gặp một trong các tình huống sau :
- Otomat A đọc hết sâu vào ω và δ(qn−1, an) = qn ∈ F , ta nói rằng Ađoán nhận xâu ω
- Hoặc otomat A đọc hết sâu vào ω và δ(qn−1, an) = qn ∈ F/ , ta nói Akhông đoán nhận sâu ω
- Hoặc khi otomat A đọc đến aj , (j ≤ n) và hàm δ(qj−1, aj) không xácđịnh, ta cũng nói A không đoán nhận xâu ω
Hình 1.1: Mô tả quá trình đoán nhận xâu ω của otomat A
1.1.2 Biểu diễn Otomat hữu hạn đơn định
Ánh xạ chuyển là một bộ phận quan trọng của một otomat hữu hạn đơnđịnh Nó có thể cho dưới dạng bảng chuyển hoặc dưới dạng đồ thị
1, Phương pháp cho bảng chuyển
Cho otomat A =< Q, P, δ, q0, F > và Q = {q0, q1, , qm} là tập trạng
Trang 12thái, và bảng chữ cái P = {a0, a1, , am} , khi đó ánh xạ chuyển cóthể cho bởi bảng sau ; trong đó dòng i, cột j của bảng là ô trống nếu(qi, aj) /∈ D , tức là δ(qi, aj) không xác định.
Hình 1.2: Bảng chuyển trạng thái của otomat A
Khi cho bảng chuyển trạng thái, và chỉ rõ tập trạng thái kết thúc F, ta
sẽ xác định được otomat A
2, Phương pháp cho bằng đồ thị chuyển
Cho otomat A =< Q, P, δ, q0, F > Ánh xạ chuyển δ có thể cho bằngmột đa đồ thị có hướng, có khuyên G sau đây, được gọi là đồ thị chuyểncủa otomat A Tập đỉnh của G được dán nhãn bởi các phần tử thuộc
Q, còn các cung được gán nhãn bởi các phần tử thuộc P , tức là nếu
a ∈ P và từ trạng thái q chuyển sang trạng thái p theo công thứcδ(q, a) = p thì sẽ có một cung từ đỉnh q tới đỉnh p được gán nhãn a.Đỉnh vào của đồ thị chuyển là đỉnh ứng với trạng thái ban đầu q0 Cácđỉnh sẽ được khoanh bởi các vòng tròn, tại đỉnh q0 có một mũi tên đivào, riêng đỉnh với trạng thái kết thúc được phân biệt bởi các vòng trònđậm hoặc hình vuông
Nói chung với việc cho đồ thị chuyển là hoàn toàn xác định được otomat
Trang 13Ví dụ 1.1 Cho hai otomat hữu hạn đơn định :
1/ A1 =< {q0, q1, q2} , {a, b,} , δ, q0, {q2} >
trong đó δ(q0, a) = q0 , δ(q0, b) = q0 , δ(q1, a) = q0 , δ(q1, b) = q2 ,δ(q2, a) = q2 , δ(q2, b) = q2
Ta có bảng chuyển trạng thái và đồ thị chuyển trạng thái của otomat
A1 như sau :
Hình 1.3: Bảng chuyển trạng thái của A 1
Hình 1.4: Đồ thị chuyển trạng thái của A 1
Dãy trạng thái của otomat A1 trong quá trình đoán nhận xâu vào
α = ababbab là :
Trang 14Hình 1.5: Quá trình đoán nhận xâu α = ababbab của A 1
Như vậy , xâu α được đoán nhận bởi otomat A1
2, A2 =< {q0, q1, q2, q3} , {0, 1} , q0, {q0} > ,
trong đó δ(q0, 0) = q2 , δ(q0, 1) = q1 , δ(q1, 0) = q3 , δ(q1, 1) = q0 ,δ(q2, 0) = q0 , δ(q2, 1) = q3 , δ(q3, 0) = q1 , δ(q3, 1) = q2
Ta có bảng chuyển trạng thái của otomat A2 như sau :
Hình 1.6: Bảng chuyển trạng thái của A 2
Đồ thị chuyển trạng thái của otomat A2 như sau :
Hình 1.7: Đồ thị chuyển trạng thái của A 2
Như vậy otomat A2 không chấp nhận xâu β
Trang 151.1.3 Ngôn ngữ được đoán nhận bởi otomat đơn định
Để mô tả hình thức quá trình đoán nhận một từ, người ta đưa vào ánh
xạ mở rộng δ1 từ D ⊆ Q × P ∗ vào Q như trong định nghĩa sau :Định nghĩa 1.2 Cho otomat hữu hạn đơn định A =< Q, P, δ, q0, F >,
mở rộng δ1 của δ là một ánh xạ từ D ⊆ Q × P vào Q được xác địnhnhư sau :
1/ δ1(q, ε) = q, ∀q ∈ Q
2/ δ1(q, ωa) = δ(δ1(q, ω), a), ∀a ∈ P ∗ sao cho δ1(q, ω) được xác định.Chú ý : Do δ1(q, a) = δ(δ1(q, εa)) = δ(δ1(q, ε), a) = δ(q, a) Ta có thểđồng nhất δ1 với δ Nếu không cần phân biệt, từ đây về sau ta viết
δ thay cho δ1 , và được hiểu là ánh xạ δ trên miền Q × P là ánh xạ
δ1 trên miền Q × P ∗
Định nghĩa 1.3 Cho otomat hữu hạn đơn định A =< Q, P, δ, q0, F >,, và một xâu ω ∈ P ∗ Ta nói :
+ ω được đoán nhận bởi A nếu δ(q0, ω) ∈ F ;
+ Ngôn ngữ được đoán nhận bởi otomat A và kí hiệu là T(A), là tập từ:
đi là (qn−1, qi) có nhãn ai với 1 ≤ i ≤ k và qk ∈ F
Như vậy T(A) là tập hợp tất cả các xâu ghi trên các đường đi từ q0 đếncác đỉnh kết thúc
Trang 16Định nghĩa 1.4 Hai otomat hữu hạn A =< Q, P, δ, q0, F > và A1 =<
Q1,P
1,δ1, q01, F1 > được gọi là tương đương nếu T (A) = T (A1)
Ví dụ 1.2 Cho otomat hữu hạn :
A3 =< {q0, q1, q2, q3, q4} , {0, 1} , δ, q0, {q1, q2, q4} > với δ(q0, 0) = q0 ,δ(q0, 1) = q1 , δ(q1, 1) = q3 , δ(q1, 1) = q2 , δ(q2, 0) = q2 , δ(q2, 1) = q2 ,δ(q3, 1) = q3 , δ(q4, 0) = q2 , δ(q4, 1) = q3
Đồ thị chuyển A3 là :
Hình 1.8: Đồ thị chuyển trạng thái của A 3
Trước hết ta nhận thấy rằng không có đường đi từ q0 đến đỉnh kết thúc
q4 , tức là sẽ không có từ nào được đoán nhận từ A3 với đỉnh kết thúc
q4 Ngoài ra cũng không có một đường đi nào từ q0 đến đỉnh một đỉnhkết thúc mà đi qua q3 Như vậy, ta có thể bỏ qua đỉnh q3 và q4 mà khôngảnh hưởng đến việc đoán nhận các từ của otomat A3 Do đó otomat
A3 tương đương với otomat A4 như sau :
A4 =< {q0, q1, q2} , {0, 1} , δ, q0, {q1, q2} >
trong đó δ(q0, 0) = q0 , δ(q0, 1) = q1 , δ(q1, 1) = q2 , δ(q2, 1) = q2 Đồ thịchuyển của A4 được cho trong hình 1.9
Trang 17Hình 1.9: Đồ thị chuyển trạng thái của A 4
Các đường đi từ q0 đến đỉnh kết thúc q1 ứng với các xâu 0n1 , n ≥ 0 Các đường đi từ q0 đến đỉnh kết thúc q2 ứng với các xâu 0n11 ω , n ≥ 0 ,
ω ∈ {0, 1}∗ Vậy ngôn ngữ được đoán nhận bởi các otomat trên là :
+ Giả sử đẳng thức (1) đúng với mọi ω2 có độ dài |ω2| ≤ n Ta cầnchứng minh nó cũng đúng với ω2 có độ dài |ω2| = n + 1
Đặt ω2 = ω21a , với ω21 ∈ P∗ , |ω21| = n , a ∈ P Ta có δ(q, ω1ω2) =δ(q, ω1ω21a) = δ(δ(q, ω1ω21), a) = δ(δ(δ(q, ω1), ω21), a) = δ(δ(q, ω1), ω21a) =δ(δ(q, ω1), ω2)
Trang 18Do đó đẳng thức (1) đúng với ω2 có độ dài n+1.
Bổ đề được chứng minh
Chú ý : Với otomat hữu hạn đơn định A =< Q, P, δ, q0, F > bất kì, taluôn có thể xây dựng một otomat hữu hạn đơn định đầy đủ A1 tươngđương với A
1.2 Otomat hữu hạn không đơn định
1.2.1 Otomat hữu hạn không đơn định
Định nghĩa 2.1 Một otomat hữu hạn không đơn định ( istic Finite Automata - NFA) là một bộ năm
Nondetermin-A =< Q,X, δ, q0, F >,
trong đó
+ Q, P, q0, F như trong định nghĩa 1.1
+ δ : Q × P → 2Q , ở đây 2Q , (hay P(Q) , là kí hiệu tập hợp các tậpcon của Q ), gọi là ánh xạ chuyển
Ở đây, ánh xạ δ là một hàm đa trị ( hàm không đơn định), vì vậy otomat
A trong định nghĩa trên được gọi là không đơn định
Trong trường hợp δ(q, a) xác định với ∀q ∈ Q, ∀a ∈ P , ta nói otomat
A là đầy đủ
Nếu δ(q, a) = {p1, p2, , pk} thì ta nói rằng otomat A ở trạng thái q gặp
kí hiệu a thì có thể chuyển đến một trong các trạng thái p1, p2, , pk Nếu δ(q, a) = {p} thì ở trạng thái q gặp kí hiệu a, otomat A chỉ chuyển
Trang 19đến một trạng thái duy nhất p.
Nếu δ(q, a) = ∅ thì ở trạng thái q gặp kí hiệu a, otomat A không thểchuyển đến trạng thái nào, cũng tương tự như với otomat hữu hạn đơnđịnh
Như vậy, ta thấy rằng một otomat hữu hạn đơn định là một trường hợpđặc biệt của một otomat hữu hạn không đơn định
Hoạt động của otomat hữu hạn không đơn định A =< Q, P, δ, q0, F >khi cho vào xâu ω = a1a2 an có thể được mô tả như sau :
Khi bắt đầu làm việc, otomat ở trạng thái đầu q0 và đầu đọc đang nhìnvào ô có kí hiệu a1 Từ trạng thái q0 , dưới tác động của kí hiệu vào
a1 , δ(q0, a1) = {p1, p2, ,pk} , otomat xác định các trạng thái có thể tiếptheo là p1, p2, , pk và đầu đọc chuyển sang phải một ô, tức là nhìn vào
ô có kí hiệu a2 Tiếp tục với mỗi qi (i ≤ 1 ≤ k) và kí hiệu tiếp theo là
a2 , các trạng thái tiếp theo có thể đến được là δ(p1, a2) ∪ ∪ δ(pk, a2) Quá trình đó sẽ được tiếp tục cho tới khi gặp một trong các tình huốngsau :
+ Trong trường hợp tập trạng thái tiếp theo sau khi đọc aj nào đó làrỗng hoặc sau khi đọc kí hiệu an là Q1 mà Q1 ∩ F = ∅ , ta nói rằng Akhông đoán nhận xâu ω
+ Trong trường hợp tập trạng thái tiếp theo sau khi đọc kí hiệu an là
Q1 mà Q1 ∩ F 6= ∅ , ta nói rằng otomat A đoán nhận xâu ω
Trang 201.2.2 Biểu diễn otomat hữu hạn không đơn định
Một otomat hữu hạn không đơn định có thể biểu diễn dưới dạng bảngchuyển hoặc đồ thị chuyển như trong trường hợp otomat hữu hạn đơnđịnh
Nếu δ(q, a) = {p1, p2, , pk} thì trong đồ thị chuyển có k cung từ q sang
p1, p2, , pk được ghi cùng một nhãn a
Quá trình đoán nhận một xâu vào ω của một otomat hữu hạn khôngđơn định A có thể biểu diễn bằng một cây có gốc mà gốc là trạng tháiđầu q0 Trong cây này, nếu có một đường đi qua một dãy các trạng tháiứng với xâu vào ω từ q0 đến một lá chứa trạng thái kết thúc thì xâuvào này được đoán nhận bởi otomat A Ngược lại nếu không có một lánào trong cây chứa trạng thái kết thúc thì ω không được đoán nhận bởiA
Ví dụ 1.3 Cho otomat hữu hạn không đơn định :
A =< {q0, q1, q2, q3, q4} , {0, 1} , δ, q0, {q2, q4} >
, với δ(q0, 0) = {q0, q3}, δ(q0, 1) = {q0, q1} , δ(q1, 0) = ∅ , δ(q1, 1) = {q2},δ(q2, 0) = {q2} , δ(q2, 1) = {q2} , δ(q3, 0) = {q4} , δ(q3, 1) = ∅ ,δ(q4, 0) = {q4} , δ(q4, 1) = {q4}
Cho xâu vào ω = 01001 Ta có cây đoán nhận ω như sau :
Trong cây trên có một đường đi từ q0 đến q4 ∈ F nên xâu ω = 01001 làxâu được đoán nhận bởi otomat A
Đồ thị chuyển của otomat A là :
Trang 21Hình 1.10: Cây đoán nhận ω
Hình 1.11: Đồ thị chuyển của otomat A
1.2.3 Ngôn ngữ được đoán nhận bởi otomat hữu hạn không
đơn địnhĐịnh nghĩa 1.5 Cho otomat hữu hạn không đơn định A =< Q, P, δ, q0, F > Mở rộng của δ là ánh xạ δ1 từ tập Q × P∗ vào 2Q được xác định nhưsau :
1, δ1(q, ε) = {q} , ∀q ∈ Q ,
Trang 22Định nghĩa 1.6 Cho otomat hữu hạn không đơn định A =< Q, P, δ, q0, F >, ω ∈ P∗ và L là một ngôn ngữ trên P Ta nói :
+ ω được đoán nhận bởi A nếu δ(q0, ω) ∩ F 6= ∅ ,
+ L được đoán nhận bởi A nếu L = {ω ∈ P∗
|δ(q0, ω) ∩ F 6= ∅} và kíhiệu L là T(A)
Ví dụ 1.4 Cho otomat hữu hạn không đơn định :
A =< {q0, q1, q2} , {a, b} , δ, q0,, {q2} >
, trong đó δ(q0, a) = {q0} , δ(q0, b) = {q0, q1} , δ(q1, a) = {q1} , δ(q1, b) ={q1, q2} , δ(q2, a) = {q2} , δ(q2, b) = {q2}
Bảng chuyển và đồ thị chuyển của otomat A được cho trong hình 1.12
và 1.13
Trang 23Hình 1.12: Bảng chuyển của otomat A
Hình 1.13: Đồ thị chuyển của otomat A
Có thể kiểm tra được rằng từ ω = anbn ∈ T (A) , tuy nhiên otomat Akhông đoán nhận ngôn ngữ L = {anbn|∀n ≥ 1}
Ngôn ngữ được đoán nhận bởi otomat A là :
T (A) = {ω1bω2bω3|ω1, ω2, ω3 ∈ {a, b}∗}
1.2.4 Đơn định hóa các otomat
Giả sử A =< Q, P, δ, q0, F >, ω ∈ P∗ là một otomat không đơn định,khi đó ta có thể xây dựng otomat đơn định và đầy đủ M tương đươngvới otomat A ( theo định nghĩa cùng đoán nhận một ngôn ngữ) Việcxây dựng M được thực hiện theo thuật toán sau đây, được gọi là thuật
Trang 24toán đơn định hóa otomat
Thuật toán đơn định hóa :
Input: Otomat hữu hạn không đơn định A =< Q, P, δ, q0, F > ,
:
1, Đặt s0 = {q0} , s1 = {q1} , , si = {qi} ∀ {q0} , {q1} , , {qi} ∈ Q ,
2, Đặt si+1 = B1, si+2 = i2, ∀B1, B2 ⊆ Q mà δ(qj, a) = Bj
3, Nếu otomat A là không đầy đủ, đặt sk = ∅ và thêm vào hàm chuyển
δ1 các giá trị δ1(sk, a) = sk∀a ∈ P để otomat M là otomat đầy đủ
4, Trạng thái khởi đầu của otomat M là s0
5, Tập trạng thái kết thúc của otomat M là F1 = {s ∈ Q1|s ∩ F 6= ∅} Bước 3: Xác định hàm chuyển δ1 : Q1 ×P → Q1 của otomat M :
∀s ∈ Q1, ∀a ∈ P thì δ1(s, a) = T (s, a)
Ví dụ 1.5 Cho otomat A =< {p0, p1, p2} , {a, b, c} , δ, p0, {p1, p2} > vớihàm chuyển δ cho bởi bảng sau:
Trang 25Hình 1.14: Bảng chuyển của otomat A
Hãy xây dựng otomat M =< Q1, {a, b, c} , δ1, s0, F1 > đơn định và đầy
đủ, tương đương với otomat A 1, Xây dựng hàm T : 2Q×P → 2Q ,