Ứng dụng khả năng biểu diễn cây Otomat, sử dụng các kỹ thuật trên Otomat để thiết kế các thuật toán hiệu quả có độ phức tạp thời gian đa thức bậc thấp, nhằm giải quyết các bài toán trọ
Trang 1ỨNG DỤNG OTOMAT HỮU HẠN NÂNG CAO TRONG
MÃ HÓA VÀ AN TOÀN DỮ LIỆU
LUẬN VĂN THẠC SĨ KHOA HỌC
TOÁN ỨNG DỤNG
Hà Nội – 2016
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
TRẦN HỒNG HÀ
ỨNG DỤNG OTOMAT HỮU HẠN NÂNG CAO TRONG
MÃ HÓA VÀ AN TOÀN DỮ LIỆU
Chuyên ngành : TOÁN ỨNG DỤNG
Mã số: 60.46.01.12
LUẬN VĂN THẠC SĨ KHOA HỌC
Trang 4i
LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi và được sự hướng dẫn khoa học của TS.Vũ Thành Nam Các nội dung nghiên cứu,kết quả trong
đề tài này là trung thực và chưa công bố dưới bất kỳ hình thức nào trước đây Những số liệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính tác giả thu thập từ các nguồn khác nhau có ghi rõ trong phần tài liệu tham khảo
Ngoài ra, trong luận văn còn sử dụng một số nhận xét, đánh giá cũng như số liệu của các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích nguồn gốc
Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm về nội dung luận văn của mình
Hà Nội, tháng 9 năm 2016 Tác giả
Trần Hồng Hà
Trang 5ii
LỜI CẢM ƠN
Luận văn được hoàn thành tại Viện Toán ứng dụng và Tin học-Trường Đại Học Bách Khoa Hà Nội, dưới sự hướng dẫn trực tiếp của TS Vũ Thành Nam Nhân dịp này, tác giả xin được bày tỏ đặc biệt lòng kính trọng và biết ơn sâu sắc đến Thầy Thầy đã tận tình chỉ bảo và định hướng cho em trong suốt quá trình thực hiện luận văn Em cũng xin gửi lời cảm ơn chân thành đến ban giám hiệu, tất cả các thầy
cô giáo của trường và viện sau Đại Học Bách Khoa Hà Nội đã giảng dạy dìu dắt
em và cho em phương pháp học tập khoa học Cuối cùng, em xin gửi lời cảm ơn tới gia đình, bạn bè và những người đã luôn ở bên cổ vũ tinh thần, tạo điều kiện thuận lợi cho em để em có thể học tập tốt và hoàn thiện được luận văn
Em xin chân thành cảm ơn
Hà Nội, tháng 9 năm 2016 Tác giả
Trần Hồng Hà
Trang 6i
MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
LỜI NÓI ĐẦU vi
CHƯƠNG 1 CÁC KIẾN THỨC CƠ SỞ 10
1.1Tổng quan về Otomat hữu hạn 10
1.1.1 Khái niệm về Otomat hữu hạn 10
1.1.2 Hoạt động của Otomat 11
1.1.3 Phân loại Otomat hữu hạn (FA) 1
1.1.4 Đơn định hóa Otomat 16
1.1.5 Sự tương đương giữa Otomat đơn định và Otomat không đơn định 20 1.1.6 Một số hình thức Otomat mở rộng 21
1.1.7 Ứng dụng Otomat trong an toàn bảo mật 22
Kết chương 24
CHƯƠNG 2 CÁC PHƯƠNG PHÁP PHÁT HIỆN MÃ ĐỘC 25
2.1Tổng quan về mã độc 25
2.1.1 Các loại mã độc 25
2.1.2 Các dạng tấn công của mã độc 28
2.1.3 Phần loại mã độc 29
2.2Phương pháp phát hiện mã độc hại 31
2.2.1 Phần mềm phát hiện mã độc 31
2.2.2 Phần mềm gián điệp 31
2.2.3 Phần mềm quảng cáo (Adware) 32
2.3Một số phương thức tấn công của mã độc 32
Trang 7ii
2.3.1 Mã độc theo dõi trình duyệt (Tracking Cookie) 32
2.3.2 Công cụ tấn công của mã độc 33
2.3.3 Công cụ quản trị từ xa 33
2.3.4 Mã độc sử dụng thư điện tử (Phishing) 34
2.3.5 Virus cảnh báo giả (Virus Hoax) 35
2.4Phân loại phương pháp phát hiện mã độc 35
2.4.1 Phương pháp phát hiện động 35
2.4.2 Phân tích sự tương tự 37
2.4.3 Phương pháp phát hiện tĩnh 38
2.5Kỹ thuật đối sánh mẫu 42
2.5.1 Phân loại kỹ thuật đối sánh mẫu 42
2.5.2 Các tiếp cận bài toán đối sánh mẫu 42
2.6Một số thuật toán đối sánh mẫu 43
2.6.1 Thuật toán Karp-Rabin 43
2.6.2 Thuật toán Knuth-Morris-Pratt (KMP) 45
2.6.3 Thuật toán Boyer- Moore 49
2.6.4 Thuật toán Wu-Manber 54
Kết chương 56
CHƯƠNG 3 ỨNG DỤNG OTOMAT HỮU HẠN TRONG ĐỐI SÁNH PHÁT HIỆN MÃ ĐỘC 58
3.1Giới thiệu thuật toán Aho-Corasick 58
3.1.1 Máy đối sánh chuỗi 58
3.1.2 Xây dựng ứng dụng 59
3.1.3 So sánh giữa các thuật toán 68
Trang 8iii
3.2Định dạng dấu hiệu mã độc 69
3.2.1 Tên mã độc 70
3.2.2 Các quy tắc đặt tên mã độc 71
3.3Cơ sở dữ liệu các dấu hiệu được loại bỏ 81
3.4Xây dựng cơ sở dữ liệu mã độc 82
3.4.1 Xây dựng các mẫu định dạng thành phần PE 83
3.4.2 Xây dựng dấu hiệu định dạng mở rộng 84
3.4.3 Xây dựng cơ sở dữ liệu mẫu mã độc 87
3.5Cấu trúc dữ liệu của thuật toán đối sánh Aho-Corasick 89
3.5.1 Đưa mẫu mã độc vào cây Aho-Corasick 89
3.5.2 Modul đối sánh mẫu sử dụng thuật toán Aho-Corasick 90
Kết chương 92
KẾT LUẬN 93
TÀI LIỆU THAM KHẢO 94
Trang 9iv
DANH MỤC HÌNH VẼ
Hình 1 3 Mô Hình Hoạt Động Của Otomat Hữu Hạn 12
Hình 1 5 Sơ đồ khối của Otomat Hữu Hạn 1 Hình 1 6 Mô tả quá trình đoán nhận xâu ω của Otomat A 3 Hình 1 7 Đồ thị chuyển trạng thái của M trong ví dụ 1 3 5 Hình 1 8 Đồ thị chuyển trạng thái của A1 6 Hình 1 9 Quá trình đoán nhận xâu α = ababbab của A1 6 Hình 1 10 Đồ thị chuyển trạng thái của A2 7 Hình 1 11 Quá trình đoán nhận xâu vào β = 1010100 7 Hình 1 12 Đồ thị chuyển của Otomat A3 10 Hình 1 13 Đồ thị chuyển của Otomat A4 10 Hình 1 14 Đồ thị chuyển của Otomat không đơn định A 14 Hình 1 15 Đồ thị chuyển của Otomat A trong Ví dụ 1 7 15
Hình 1 17 Đồ thị chuyển của Otomat M 19 Hình 1 18 Đồ thị chuyển của Otomat M‟ trong ví dụ 1 8 20
Trang 111943, W S McCulloch và W H Pitts đã đề xuất mô hình toán học của tế bào thần kinh [21] Sau đó, S C Kleene đã phát triển báo cáo RAND của ông năm 1951 trong đó mô hình của W S McCulloch và W H Pitts đã được đưa những bài toán
về cấu trúc của hệ thống tính toán chi tiết [19] và các máy biến đổi thông tin tự động Các đề xuất này được xem là nền tảng của lý thuyết Otomat
Otomat và ngôn ngữ được ứng dụng trong nhiều lĩnh vực như thiết kế mạch [26], thiết kế chương trình dịch [10], biểu diễn biểu thức chính quy [14], tìm kiếm mẫu [12], xử lý ngôn ngữ tự nhiên [27], mã hóa thông tin [20] D B A Epstein cho thấy Otomat là một công cụ quan trọng trong lý thuyết nhóm tổ hợp và hình học [13]…
Ứng dụng khả năng biểu diễn cây Otomat, sử dụng các kỹ thuật trên Otomat để thiết kế các thuật toán hiệu quả có độ phức tạp thời gian đa thức bậc thấp, nhằm giải quyết các bài toán trọng tâm trong xử lý thông tin như: bài toán so sánh mẫu, bài toán kiểm định mã, nghiên cứu các đặc tính của mã, hay ngôn ngữ hình thức trong mối quan hệ với mã Tăng tốc độ tính toán cho các thuật toán giải quyết các bài toán này, trong môi trường bùng nổ thông tin là một vấn đề nghiên cứu mở, có tính thời sự và luôn thu hút sự quan tâm của cộng đồng nghiên cứu
Lý thuyết Otomat ra đời, xuất phát từ nhu cầu thực tiễn và song song với sự phát triển, cùng sự thay đổi lớn trong ngành công nghệ thông tin Ứng dụng Otomat là cơ
sở toán học vững chắc và đã được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau bởi tính đơn giản trong cài đặt
Trang 12vii
Một trong những bài toán quan trọng có ứng dụng trong lĩnh vực khoa học máy tính và an toàn thông tin là bài toán đối sánh mẫu Bài toán này có ứng dụng rộng rãi trong tìm kiếm phát hiện các xâu mẫu trong các vấn đề an toàn bảo mật thông tin trên mạng như bài toán phát hiện mã độc và bài toán phát hiện tấn công dựa trên mẫu hành vi trên mạng
Thế giới đang chứng kiến những thay đổi lớn và có sự phát triển nhanh chóng về mọi mặt, nhất là trong ngành công nghệ thông tin, phần mềm mã độc cũng không nằm ngoài xu hướng đó Từ thời điểm lý thuyết tự nhân bản của phần mềm máy tính được John von Neuman (1903-1957) đưa ra (năm 1941) đến khi xuất hiện virus đầu tiên phải mất hơn 3 thập kỷ, nhưng với sự bùng nổ của Internet,mã độc cũng theo đó bùng nổ theo Song song với việc ứng dụng công nghệ thông tin, mã độc cũng đã và đang len lỏi vào mọi mặt của đời sống, gây ra những thiệt hại vô cùng nghiêm trọng cả về kinh tế lẫn an ninh, quốc phòng Khi nói về chống phần mềm độc hại, ta thường nói tới phần mềm chống virus nhưng không phải lúc nào phần mềm chống virus cũng có hiệu quả Do đó, việc nâng cao ý thức cảnh giác để phòng ngừa và hơn thế nữa là phân tích, vô hiệu hoá phần mềm độc hại trở thành nhu cầu tất yếu Vấn đề phân tích, chống phần mềm mã độc đã được các hãng bảo mật trên thế giới tiến hành đầu tư nghiên cứu; từ các hãng lớn như Internet McAfee Kaspersky, Norton … cho tới các nhóm phát triển phần mềm đơn lẻ Một số ứng dụng điển hình có thể kể đến như: McAfee Antivirus, Kaspersky Antivirus, Norton Antivirus, Microsoft Security Essentials, AVG Anti-Virus … Tuy nhiên, do sự phát triển của phần mềm mã độc luôn đi trước các chương trình diệt virus một bước nên việc nghiên cứu, phân tích mã độc càng trở nên quan trọng và cấp thiết để làm sao hạn chế được tối đa những thiệt hại do phần mềm mã độc gây ra
Ngày nay, lý thuyết Otomat đã có một cơ sở toán học vững chắc và những kết quả của nó đã có nhiều ứng dụng trong nhiều lĩnh vực khác nhau như ứng dụng khả năng biểu diễn ngôn ngữ của Otomat, sử dụng các kỹ thuật trên Otomat để thiết kế các thuật toán hiệu quả có độ phức tạp thời gian đa thức bậc thấp, nhằm giải quyết các bài toán trọng tâm trong xử lý thông tin như: bài toán so mẫu xấp xỉ, bài toán
Trang 13viii
kiểm định mã, nghiên cứu các đặc tính của mã, hay ngôn ngữ hình thức trong mối quan hệ với mã Hướng tới xây dựng một chương trình đánh giá an ninh tiến trình nhằm hỗ trợ quá trình phát hiện mã độc, tìm kiếm dấu vết của mã độc, cách đột nhập hay tấn công của mã độc Trong môi trường bùng nổ thông tin là một vấn đề nghiên cứu mở, có tính thời sự và luôn thu hút sự quan tâm của cộng đồng nghiên cứu Trong lĩnh vực khoa học máy tính,đối sánh mẫu là một bài toán quan trọng được ứng dụng rộng rãi trong tìm kiếm, tính toán, trích rút thông tin, xử lý tín hiệu
và nhận dạng trong việc phát hiện mã độc
Từ phân tích trên, luận văn tập trung nghiên cứu thêm về các thuật toán đối sánh mẫu trong ứng dụng Otomat để giám sát trong việc phát hiện mã độc Tuy nhiên khi triển khai nghiên cứu thực tế, kết quả đánh giá cho thấy thuật toán đối sánh chuỗi đa mẫu Aho-Corasick [9] có hiệu năng vượt trội so với thuật toán đối sánh khác đã được nêu Được sự đồng ý của thầy hướng dẫn, tác giả đã sử dụng thuật toán đối sánh chuỗi đa mẫu Aho-Corasick với mục tiêu của luận văn là xây dựng một ứng dụng cho phép phát hiện mã độc dựa trên đối sánh mẫu trên thuật toán Aho- Corasick xây dựng dựa trên cấu trúc Otomat
2 Mục đích nghiên cứu
Nghiên cứu về xây dựng ứng dụng dựa trên cấu trúc Otomat
Nghiên cứu thuật toán đối sánh mẫu sử dụng Otomat
Xây dựng kỹ thuật phát hiện mã độc dựa trên thuật toán đối sánh mẫu cho hiệu năng cao, cài đặt thử nghiệm và đánh giá kết quả
3 Đối tƣợng và phạm vi nghiên cứu
Đối tượng nghiên cứu: xây dựng cây Otomat, các thuật toán đối sánh mẫu theo hướng tiếp cận Otomat, các kỹ thuật phát hiện mã độc
Phạm vi nghiên cứu: Nghiên cứu giới hạn trong môi trường mô phỏng và thực nghiệm
Trang 14ix
4 Phương pháp nghiên cứu
Theo đánh giá của các chuyên gia, các hệ hình thức Otomat hữu hạn là
mô hình toán học thích hợp với một số hệ thống quyết định, điều khiển, nhận dạng và đặc biệt được dùng trong đoán nhận mẫu Sử dụng những
ưu điểm trên và sự kết hợp với lý thuyết Otomat sử dụng một số hệ hình thức Otomat hữu hạn để giải bài toán đối sánh mẫu Để thấy rõ được tiếp cận Otomat hữu hạn, tác giả chọn một bài toán cụ thể là tìm kiếm mẫu trong văn bản
Phương pháp nghiên cứu giới hạn trong môi trường mô phỏng và thực nghiệm
5 Cấu trúc và nội dung của Luận Văn
Luận văn gồm 3 chương (Không bao gồm mở đầu, kết luận, tài liệu tham khảo
và phụ lục)
Chương 1 – Các Kiến Thức Cơ Sở: Chương này nhắc lại khái niệm cơ sở về
Otomat hữu hạn, các thành phần, các dạng và sự khác biệt cơ bản giữa hai dạng đơn định và không đơn định Cách thức chuyển đổi tương đương từ dạng đơn định sang không đơn định Trình bày một số hình thức Otomat nâng cao và ứng dụng trong mật mã Các kiến thức cơ sở này được sử dụng trong các chương tiếp theo của luận văn
Chương 2 – Các phương pháp phát hiện mã độc: Chương này trình bày tổng
quan về mã độc và chi tiết về các phương pháp kỹ thuật phát hiện mã độc
Chương 3 - Ứng dụng Otomat hữu hạn trong đối sánh phát hiện mã độc
Chương này trình bày việc xây dựng mô hình phát hiện mã độc, ứng dụng các
kỹ thuật đối sánh mẫu đã nghiên cứu ở chương 2
Trang 1510
CHƯƠNG 1 CÁC KIẾN THỨC CƠ SỞ
Chương thứ nhất trình bày các kiến thức cơ sở cần thiết, được sử dụng trong các chương tiếp theo của luận văn Ở đó, ta nhắc lại một số khái niệm và tổng quan về những kiến thức có liên quan
1.1 Tổng quan về Otomat hữu hạn
Một Otomat hữu hạn [17] là một mô hình tính toán thực sự hữu hạn Mọi cái liên quan đến nó đều có kích thước hữu hạn cố định và không thể mở rộng trong suốt quá trình tính toán Các loại Otomat khác được nghiên cứu sau này có ít nhất một bộ nhớ vô hạn về tiềm năng Sự phân biệt giữa các loại Otomat khác nhau chủ yếu dựa trên việc thông tin có thể được đưa vào bộ nhớ như thế nào
Một Otomat hữu hạn làm việc theo thời gian rời rạc như tất cả các mô hình tính toán khác Như vậy, ta có thể nói về thời điểm “kế tiếp” khi “đặc tả” hoạt động của một Otomat hữu hạn Trường hợp đơn giản nhất là thiết bị không có bộ nhớ mà
ở mỗi thời điểm, thông tin ra chỉ phụ thuộc vào thông tin vào lúc đó Các thiết bị như vậy là mô hình của các mạch tổ hợp Tuy nhiên, nói chung thông tin ra sản sinh bởi một Otomat hữu hạn phụ thuộc vào cả thông tin vào hiện tại lẫn các thông tin vào trước đó Như vậy Otomat có khả năng (với một phạm vi nào đó) ghi nhớ các thông tin vào trong quá khứ của nó Một cách chi tiết hơn, điều đó có nghĩa là mỗi Otomat có một số hữu hạn trạng thái được lưu ở bộ nhớ trong Tại mỗi thời điểm i,
nó ở một trong các trạng thái đó, chẳng hạn qi Trạng thái qi+1 ở thời điểm sau được xác định bởi qi và thông tin vào ai cho ở thời điểm i Thông tin ra ở thời điểm i được xác định bởi trạng thái qi (hay bởi cả ai và qi)
1.1.1 Khái niệm về Otomat hữu hạn
Chúng ta sẽ tìm hiểu về một định nghĩa tổng quát nhất của Otomat và sau đó thu
hẹp cho phù hợp với các ứng dụng của khoa học máy tính Một Otomat được định nghĩa như là một hệ thống ([15], [16], [22], [1], [24]), trong đó năng lượng, vật
chất hoặc thông tin được biến đổi; được truyền đi và được sử dụng để thực hiện
Trang 1611
một số chức năng nào đó mà không cần có sự tham gia trực tiếp của con người Ví
dụ như máy phô-tô-copy tự động, máy trả tiền tự động ATM…
Trong khoa học máy tính, thuật ngữ Otomat có nghĩa là máy xử lý tự động trên dữ liệu rời rạc Mỗi ôtômát được xem như là một cơ chế biến đổi thông tin gồm một
bộ điều khiển, một kênh vào và một kênh ra
Hình 1 1 Mô hình của Otomat rời rạc
Trong đó có các thành phần:
Đầu vào (input) Ở mỗi thời khoảng thời gian (rời rạc) t1, t2, các dữ liệu vào I1,
I2, Ik là những số hữu hạn các giá trị từ bảng chữ cái I đầu vào
Đầu ra (Output) O1, O2, … Om : các kết quả xử lý của hệ thống là các số hữu hạn các giá trị xác định kết quả đầu ra
Trạng thái: Tại mỗi thời điểm, Otomat có thể ở một trong các trạng thái q1, q2,
… qn
Quan hệ giữa các trạng thái: Trạng thái tiếp theo của Otomat phụ thuộc vào hiện trạng và đầu vào hiện thời, nghĩa là được xác định phụ thuộc vào một hay nhiều trạng thái trước và dữ liệu hiện thời
Quan hệ kết quả: Kết quả của Otomat không những chỉ phụ thuộc vào các hiện trạng mà còn phụ thuộc vào các đầu vào Như vậy, kết quả (đầu ra, output) của Otomat được xác định theo đầu vào và các trạng thái thực hiện của nó
1.1.2 Hoạt động của Otomat
Otomat hữu hạn là một máy đoán nhận xâu gồm:
Một băng vào được chia thành nhiều ô, mỗi ô chứa một ký hiệu của xâu vào
Một đầu đọc, mỗi thời điểm trỏ vào một ô trên băng
Trang 17Hình 1 2 Mô hình hoạt động của otomat hữu hạn
Tại một thời điểm, trạng thái q ở bộ điều khiển và ký hiệu mà đầu đọc sẽ xác định
trạng thái tiếp theo ở bộ điều khiển Mỗi lần đầu đọc chỉ xem xét một ô và có thể
dịch qua phải hoặc qua trái một ô hoặc đứng yên Trạng thái đầu tiên ở bộ điều khiển là trạng thái bắt đầu của Otomat
Hình 1 3 Máy hữu hạn trạng thái Nhận xét: Một Otomat hữu hạn làm việc theo thời gian rời rạc như tất cả các mô
hình tính toán chủ yếu Như vậy, ta có thể nói về thời điểm “kế tiếp” khi “đặc tả” hoạt động của một Otomat hữu hạn Một cách hình thức hơn, ôtômát hữu hạn (FA) được chia ra làm 2 loại: Đơn định (DFA) và không đơn định(NFA)
Băng vào
Trang 181
1.1.3 Phân loại Otomat hữu hạn (FA)
1.1.3.1 Otomat hữu hạn đơn định
Định nghĩa 1 1 Một Otomat hữu hạn đơn định là bộ năm thành phần M= (Q, , δ, q0, F) trong đó:
Q là tập hữu hạn khác rỗng các trạng thái là tập hữu hạn khác rỗng các ký hiệu đầu vào (bảng chữ cái), với giả thiết Q =
δ : D → Q, là một ánh xạ từ D vào Q, trong đó D ⊆ Q × Σ, được gọi là hàm chuyển trạng thái (hay hàm chuyển) Hàm này mô tả sự thay đổi trạng thái của Otomat và thường được cho biết dưới dạng bảng chuyển trạng thái hay đồ thị chuyển trạng thái
q0 Q là trạng thái khởi đầu, F Q là tập các trạng thái kết thúc
Hình 1 4 Sơ đồ khối của Otomat Hữu Hạn
Otomat hữu hạn trạng thái gồm các thành phần sau:
Băng dữ liệu vào được chia thành các ô, mỗi ô chứa một ký tự từ bảng chữ cái
, trong đó ô đầu được đánh dấu cho sự bắt đầu bằng và ô cuối dùng $ để đánh dấu kết thúc Khi không sử dụng các ô đánh dấu đó thì băng dữ liệu vào sẽ được xem như có độ dài vô hạn
Đầu đọc R Mỗi lần đầu đọc chỉ xem xét một ô và có thể dịch qua phải hoặc qua
trái một ô Để đơn giản, ta giả thiết đầu đọc chỉ dịch qua phải sau mỗi lần xử lý
Trang 192
Bộ điều khiển hữu hạn Bộ này điều khiển hoạt động của ôtomat mỗi khi đọc một dữ liệu vào Khi đọc một ký hiệu vào, ví dụ a, ở trạng thái q có thể cho các
kết quả sau:
- (a) Đầu đọc R vẫn ở nguyên tại chỗ, không dịch chuyển
- (b) Chuyển sang trạng thái khác được xác định theo (q, a)
Ví dụ 1 1 : Hệ thống thang máy của một toà nhà nhiều tầng có thể mô hình hóa
như là một Otomat hữu hạn Thông tin vào gồm các yêu cầu đi lên, đi xuống tại mọi thời điểm khi người sử dụng có nhu cầu Trạng thái được xác định bởi thông tin
về các yêu cầu vẫn chưa được đáp ứng (về những tầng cần đi tới từ bên trong thang máy, hay ở trên các tầng), về những vị trí hiện tại của thang máy (lên hay xuống) Trạng thái tiếp theo luôn được xác định bởi trạng thái hiện tại và thông tin vào
Từ các trạng thái hiện tại cũng xác định được thông tin ra mô tả hành vi của
hệ thống thang máy Để hiểu được hoạt động của các Otomat, chúng ta cần phải tìm hiểu các tính chất, đặc trưng của hàm chuyển trạng thái Hoạt động của Otomat hữu hạn đơn định A = <Q, Σ, δ, q0, F> khi cho xâu vào ω= a1a2… an có thể được mô tả như sau:
Khi bắt đầu làm việc, Otomat ở trạng thái khởi đầu q0 và đầu đọc 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 Qúa 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 xâ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 xâu vào ω và δ(qn-1, an) = qn ∉ F, ta nói A không đoán nhận xâu ω
Trang 203
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 5 Mô tả quá trình đoán nhận xâu ω của Otomat A
1.1.3.1.1 Các phương pháp biểu diễn Otomat hữu hạn đơn định
Hoạt động của Otomat được xác định bởi các hàm chuyển Vì vậy hàm chuyển trạng thái là một bộ phận quan trọng của một Otomat hữu hạn đơn định Cho một Otomat thực chất là cho hàm chuyển trạng thái của nó, có thể cho dưới dạng bảng chuyển hoặc cho dưới dạng đồ thị chuyển
a) Biểu diễn Otomat bằng bảng chuyển
Cho Otomat bằng bảng chuyển như sau: A=<Q, Σ, δ, q0, F> với Q={q0, q1, q2…,
qm} là tập trạng thái, bảng chữ cái Σ = {a1, a2, a3…, an} khi đó hàm 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 δ(qi, aj) không xác định
Bảng 1 1 Bảng chuyển trạng thái của Otomat A
Xâu vào ω = a 1 a 2 a 3 … …… a n-1 a n
q 0 q 1 q 2 q n-2 q n-1 q n
Trang 21Bảng 1 2 Bảng Otomat hữu hạn có hàm chuyển trạng thái
Trong đó Q = {q0, q1, q2, q3}, = {0, 1} và F = {q0}, q0 vừa là trạng thái bắt đầu (Có mũi tên đi đến) vừa là trạng thái kết thúc
b) Biểu diễn Otomat bằng đồ thị chuyển
Cho Otomat A = <Q, Σ, δ, q0, F> Hàm chuyển δ có thể cho bằng một đa đồ thị
có hướng, có khuyên G sau đây, được gọi là đồ thị chuyển của Otomat A Tập đỉnh của G được gá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 Σ, tức là nếu a ∈ Σ 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ũi tên đi vào, riêng đỉnh với trạng
thái kết thúc được phân biệt bởi vòng tròn đậm, hoặc hình vuông…
Kết luận : Nói chung, với việc cho đồ thị chuyển là hoàn toàn xác định được
Otomat A
Trang 225
Ví dụ 1 3 Cho Otomat M= (, Q, , q0, F) Với: = {0, 1}; Q={q0, q1, q2}; F={q1} Trong đó được cho bởi:
( q0, 0)= q0, ( q0, 1)= q1, ( q1, 0)= q0, ( q1, 1)= q2Hàm chuyển trạng thái có thể biểu diễn dưới dạng đồ thị có hướng, trong đó mỗi trạng thái là một đỉnh Đỉnh ứng với trạng thái bắt đầu (q0) có mũi tên đến, những đỉnh ứng với các trạng thái kết thúc (thuộc tập F) được khoanh trong vòng tròn kép, những đỉnh còn lại được khoanh trong vòng tròn đơn Đồ thị được biểu diễn như
sau:
Hình 1 6 Đồ thị chuyển trạng thái của M trong ví dụ 1 3
Ví dụ 1 4 Cho hai Otomat hữu hạn đơn định dưới đây:
1 A1 = <{ q0, q1, q2}, {a, b}, δ, q0, {q2}> Với δ(q0, a) = q0, δ(q0, b) = q1, δ(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 :
Bảng 1 3 Bảng chuyển trạng thái của A 1
Trang 236
Hình 1 7 Đồ 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à:
Hình 1 8 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}, {0, 1}, δ, q0, {q0}> Với δ(q0, 0) = q2, δ(q0, 1) = q1
δ(q1, 0) = q3, δ(q1, 1) = q0, δ(q2, 0) = q0, δ(q2, 1) = q3, δ(q3, 0) = q1, δ(q3, 1) = q2
Bảng 1 4 Bảng chuyển trạng thái của A 2
qoa
q1b
a
q2b
a b
q0 q1 q0 q1 q2 q2 ∈ F
b
Trang 247
Hình 1 9 Đồ thị chuyển trạng thái của A 2
Dãy trạng thái của Otomat A2 trong quá trình đoán nhận xâu vào β = 1010100 là:
Hình 1 10 Quá trình đoán nhận xâu vào β = 1010100
Như vậy, Otomat A2 không chấp nhận xâu β
Ta có thể mô tả quá trình đoán nhận xâu vào của Otomat hữu hạn đơn định đầy đủ
A bằng thuật toán mô phỏng sau:
Input :
Một xâu ω, kết thúc bởi ký hiệu kết thúc file là eof
Một Otomat hữu hạn đơn định đầy đủ A với trạng thái đầu q0 và tập trạng thái kết thúc là F
Trang 258
Trả lời “Đúng” nếu A đoán nhận xâu ω
Trả lời “Sai” nếu A không đoán nhận xâu ω
End
1.1.3.1.2 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ừ (xâu vào), người ta đưa vào ánh xạ
mở rộng ' từ D ⊆ Q × Σ* vào Q như trong định nghĩa sau:
Định nghĩa 1 2 Cho Otomat hữu hạn đơn định A = <Q, Σ, δ, q0, F> Mở rộng δ‟ của δ là một ánh xạ từ D ⊆ Q × Σ * vào Q được xác định như sau:
δ‟(q, ɛ)= q, ∀ q Є Q,
Trang 26Lưu ý rằng trong đồ thị chuyển của A, ω ∈ Σ* được đoán nhận bởi A khi và chỉ khi
ω là xâu của các nhãn ứng với một đường đi từ đỉnh q0 đến một trong các đỉnh kết thúc Cụ thể, nếu ω = a0 a1 … an thì đường đi là (q0, q1, …, qk) với cung (qi-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ả xâu ghi trên các đường đi từ q0 đến các đỉnh kết thúc
Định nghĩa 1 4 Hai Otomat hữu hạn A = <Q, Σ, δ, q0, F> và A‟= <Q‟, Σ‟, δ‟, q‟0,
F‟> được gọi là tương đương nếu T(A) = T(A‟)
Ví dụ 1 5 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, 0) = q3, δ(q1, 1) = q2, δ(q2, 0) = q2, δ(q2, 1)
= q2, δ(q3, 1) = q3, δ(q4, 0) = q2, δ(q4, 1) = q3 Ta có đồ thị chuyển A3 như sau:
Trang 2710
Hình 1 11 Đồ thị chuyển của Otomat 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 bởi 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 đỉnh kết thúc mà đi qua q3 Như vậy, ta có thể bỏ đi đỉ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 sau:
A4= <{q0, q1, q2}, {0, 1}, δ, q0, {q1, q2}>
Trong đó: δ(q0, 0)=q0, δ(q0, 1)=q1, δ(q1, 1)=q2, δ(q2, 0)=q2 δ(q2, 1)=q2, δ(q2, 0)=q Ta
có đồ thị chuyển của A4 :
Hình 1 12 Đồ thị chuyển của Otomat 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:
Trang 2811
Bổ đề 1 1 Cho Otomat hữu hạn đơn định A = <Q, Σ, δ, q0, F> Khi đó ∀ω1, ω2 ∈
Σ*, ∀q∈Q sao cho δ(q, ω1 ω2) xác định, ta có:
δ (q, ω1ω2) = δ (δ(q, ω1), ω2) (1)
Chứng minh: Ta chứng minh đẳng thức trên bằng quy nạp theo độ dài của ω2
Khi |ω2| = 1 hay ω2 = a, a ∈ Σ, ta có δ(q, ω1a) = δ(δ(q, ω1), a) Đẳng thức (1) đúng
Giả sử đẳng thức (1) đúng với mọi ω2 có độ dài |ω2| ≤ n Ta chứng minh nó cũng
đúng với ω2 có độ dài |ω2| = n + 1 Đặt ω2 = ω‟2a, với ω‟2 ∈ Σ *, |ω‟
2| = n, a ∈ Σ
Ta có : δ(q, ω1ω2) = δ(q, ω1ω‟2 a) = δ(δ(q, ω1ω‟2), a) = δ(δ(δ(q, ω1), ω‟2), a) = δ(δ(q,
ω1), ω‟2a) = δ(δ(q, ω1), ω2)
Do đó đẳ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, Σ, δ, q0, F> bất kỳ, ta luôn có thể xây dựng một Otomat hữu hạn đơn định đầy đủ A‟ tương đương với A
Thật vậy, lấy S ∉ Q (do đó S ∉ F), đặt Q‟= Q∪{S} và δ‟: Q‟ x Σ → Q‟ xác định bởi:
∀q∈Q, ∀ a ∈ Σ, δ‟(q, a) = δ(q, a) Nếu δ(q, a) được xác định, δ‟(q, a) = S nếu
δ(q, a) không được xác định và δ‟(S, a) = S Khi đó A‟ là Otomat hữu hạn đơn
định đầy đủ mà T(A‟ ) = T(A)
Ta thường chọn S = ∅, và không cần bổ xung S vào Q
1.1.3.2 Otomat không đơn định
Chúng ta đã nghiên cứu những Otomat mà từ một trạng thái (chưa kết thúc) và một ký tự vào thì trạng thái tiếp theo của chúng được xác định duy nhất Tiếp
Trang 2912
theo chúng ta xét trường hợp những Otomat hữu hạn mà trạng thái tiếp theo như trên không xác định duy nhất Khi ở trạng thái ban đầu q0 và dữ liệu vào là 0, thì Otomat chuyển đến trạng thái nào? Vậy trạng thái ban đầu có thể hoặc chuyển đến trạng thái tiếp theo q1 hoặc quay vòng trở lại chính q0 Như vậy, trạng thái tiếp theo của Otomat không xác định duy nhất khi nhận dữ liệu vào 0 Những Otomat
như vậy được gọi là Otomat hữu hạn không đơn định (không tất định)
Định nghĩa 1 5 Otomat hữu hạn không đơn định :
Một Otomat hữu hạn không đơn định là một bộ năm A = <Q, Σ, δ, q0, F> trong đó: Q, Σ, q0, F như trong định nghĩa 1 1 và δ: Q × Σ →2Q
Ở đây 2Q
(hay P(Q), là ký hiệu tập hợp các tập con của Q) gọi là ánh xạ chuyển
Rõ ràng ở đâ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 đây được gọi là không đơn định
Trong trường hợp δ(q, a) xác định ∀q ∈ Q, ∀a ∈ Σ, 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 đến một trạng thái duy nhất p Nếu δ(q, a) không xác định (ta thường viết δ(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, Σ, δ, q0, F> khi cho xâu vào ω = a1 a2… an có thể được mô
tả như sau:
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à Q‟ mà Q‟∩ F = ∅, ta nói rằng A không đoán nhận ω
Trang 3013
Trường hợp tập trạng thái tiếp theo sau khi đọc ký hiệu an là Q‟ mà Q‟∩ F ≠ ∅, ta nói rằng Otomat A đoán nhận ω Một Otomat hữu hạn không đơn định có thể biểu diễn dưới dạng bảng chuyể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, …, pk được ghi cùng một nhãn a
Ví dụ 1 6 Cho Otomat hữu hạn không đơn định ( NFA ):
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}
Bảng chuyển trạng thái và đồ thị chuyển trạng thái của Otomat A cho trong bảng 1
5 và hình 1 13 cho dưới đây :
Bảng 1 5 Bảng chuyển của Otomat không đơn định A
Trang 3114
Hình 1 13 Đồ thị chuyển của Otomat không đơn định A
1.1.3.2.1 Ngôn ngữ đƣợc đoán nhận bởi Otomat hữu hạn không đơn định
Định nghĩa 1 6 Cho Otomat hữu hạn không đơn định A = <Q, Σ, δ, q0, F> Mở
rộng của δ là ánh xạ δ‟ từ tập Q × Σ * vào 2Q được xác định như sau:
Định nghĩa 1 7 Cho Otomat hữu hạn không đơn định A = <Q, Σ, δ, q0, F>, ω ∈
Σ* và L là một ngôn ngữ trên Σ Ta nói:
ω được đoán nhận bởi A nếu δ (q0, ω) ∩ F ≠ ∅;
P ∊𝛿(𝑞 𝑎)
P ∊𝛿(𝑞 𝑎) P ∊𝛿(𝑞 𝑎)
Trang 32Bảng 1 6 Bảng chuyển của Otomat A trong Ví dụ 1 7
Hình 1 14 Đồ thị chuyển của Otomat A trong Ví dụ 1 7
Có thể kiểm tra được rằng từ ω = an bn ∈ T(A), tuy nhiên Otomat A không đoán nhận ngôn ngữ L = { an bn | ∀ 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}*}
Trang 3316
U
1.1.4 Đơn định hóa Otomat
Trước hết ta cần nhắc lại rằng hai Otomat hữu hạn A và A‟(đơn định hay không
đơn định) được gọi là tương đương nếu chúng cùng đoán nhận một ngôn ngữ, tức là
T(A) = T(M) Giả sử A = <Q, Σ, δ, q0, F> là một Otomat không đơn định, khi đó ta
có thể xây dựng Otomat đơn định và đầy đủ M tương đương với Otomat A (theo
nghĩa cùng đoán nhận một ngôn ngữ) Việc xây dựng M được thực hiện theo thuật
toán sau đây, được gọi là thuật toá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, Σ, δ, q0, F>
Output: Otomat hữu hạn đơn định M = <Q‟, Σ, δ‟, s0, F‟>
Nếu Otomat A là không đầy đủ, đặt sk = ∅ và thêm vào hàm chuyển δ‟ các
giá trị δ‟(sk, a) = sk ∀ a ∈ Σ để Otomat M là Otomat đầy đủ
Trạng thái khởi đầu của Otomat M là s0
Tập trạng thái kết thúc của Otomat M là F‟ = {s ∈ Q‟ | s ∩ F ≠ ∅ }
Bước 3: Xác định hàm chuyển δ‟: Q‟ × Σ → Q‟ của Otomat M:
∀ s ∈ Q‟, ∀ a ∈ Σ thì δ‟(s, a) = T(s, a) Việc chứng minh T(A) = T(M)
p∈ 𝐵
Trang 3417
Ví dụ 1 8 Cho Otomat A = <{p0, p1, p2}, {a, b, c}, δ, p0, {p1, p2}> với hàm chuyển
δ cho bởi bảng sau:
Bảng 1 7 Bảng chuyển của Otomat A trong ví dụ 1 7
Hãy xây dựng Otomat M = <Q‟, {a, b, c}, δ‟, s0, F‟> đơn định và đầy đủ, tương
đương với Otomat A
Trang 35Ví Dụ 1 9 : Cho Otomat không đơn định: A = <{q0, q1}, {a, b}, δ, q0, {q1}>, trong
đó δ(q0, a) = {q0}, δ(q0, b) = {q0, q1}, δ(q1, a) = {q0, q1}, δ(q1, b) = Ø Đồ thị chuyển
của A là:
Hình 1 15 Đồ thị chuyển của Otomat
Trang 3619
Ta xây dựng Otomat M = <Q‟, {a, b}, δ‟, t0, F‟> tương đương với A theo thuật
toán đơn định hóa, ta có:
đơn định và có đồ thị chuyển như sau
Hình 1 16 Đồ thị chuyển của Otomat M
Trang 3720
Nhìn vào bảng chuyển 1 9 và đồ thị chuyển của M ở trên, ta thấy ngay rằng không có đường đi nào từ t0 đến được đỉnh kết thúc t1, vì vậy Otomat M sẽ tương đương với Otomat M‟ có đồ thị chuyển như sau:
Hình 1 17 Đồ thị chuyển của Otomat M’ trong ví dụ 1 8
Ta có T(A) = T(M) = T(M‟) = {an bω | n ≥ 0, ω∈ {a, b}*}
1.1.5 Sự tương đương giữa Otomat đơn định và Otomat không đơn định
Các định lý dưới đây sẽ cho ta thấy sự tương đương giữa Otomat hữu hạn đơn định và không đơn định
Định lý 2 1 Nếu ngôn ngữ L được đoán nhận bởi một Otomat hữu hạn không đơn
định thì tồn tại một Otomat hữu hạn đơn định đoán nhận L Việc chứng minh định
lý này được suy từ thuật toán đơn định hóa các Otomat
Định lý 2 2 Lớp ngôn ngữ được sinh bởi Otomat hữu hạn đơn định là trùng với
lớp ngôn ngữ được sinh bởi Otomat hữu hạn không đơn định
Chứng minh: Ta gọi LN là lớp ngôn ngữ sinh bởi các Otomat hữu hạn không đơn
định, LD là lớp ngôn ngữ sinh bởi các Otomat hữu hạn đơn định, ta cần chứng minh LN = LD Ta sẽ chứng minh hai bao hàm thức:
LN ⊆ LD Giả sử L là một ngôn ngữ tùy ý thuộc lớp LN, tức là tồn tại một Otomat không đơn định A đoán nhận L, tức là ta có T(A) = L Theo
Trang 38trong Otomat không đơn định Như vậy, một Otomat đơn định có thể được xem là một trường hợp đặc biệt của Otomat không đơn định Và vì thế, ngôn ngữ L nói trên có thể xem là được đoán nhận bởi Otomat không đơn định
cơ sở Otomat truyền thống, nhiều Otomat mở rộng được phát triển và sử dụng Một
số nghiên cứu theo hướng này là Interface Automata (Otomat giao diện) của Lucade Alfaro và Thomas Henzinger, IO Automata (Otomat IO) của Nancy A Lynch và Time Automata (Otomat thời gian) của Rajeev Alur và David L Dill Các nghiên cứu này dựa trên việc gia tăng thêm các thông tin, ràng buộc cho các trạng thái và cung của Otomat truyền thống Bên cạnh đó còn có một số Otomat Weighted Automat(Otomat có trọng số), Fuzzy Otomat, Otomat sác xuất, Otomat tế bào, Otomat mờ… và chúng đều được ứng dụng rộng rãi trong nhiều lĩnh vực
Hình thức Otomat thời gian mô hình này dùng Otomat cổ điển và gia tăng thêm một số biến đồng để theo dõi thời gian thay đổi trạng thái và các đặt các điều kiện về thời gian cho các phép chuyển trạng thái của Otomat
Trang 39 Otomat trọng số khi cung chuyển của nó mang giá trị trọng số
Otomat tế bào là một mô hình mô phỏng các tế bào hoạt động theo mô phỏng các tế bào hoạt động theo quy tắc toán học được định nghĩa gắn với Otomat, phục vụ cho việc cập nhật trạng thái của các tế bào
Otomat khoảng được nêu lại vào năm 2005 bởi Dang Van Hung và Bui Vu Anh, Deepak D‟Souza và P S Thiagarajan dùng công cụ Otomat khoảng với các ràng buộc thời gian dạng khoảng được gắn trên các cung chuyển
1.1.7 Ứng dụng Otomat trong an toàn bảo mật
Lý thuyết Otomat ra đời xuất phát từ những nhu cầu của thực tiễn kỹ thuật, chủ yếu
là từ những bài toán về cấu trúc của các hệ thống tính toán và các máy biến đổi thông tin tự động Ngày nay, lý thuyết Otomat được áp dụng khá rộng rãi trong nhiều lĩnh vực khác nhau như:
Otomat và ngôn ngữ được ứng dụng trong nhiều lĩnh vực như thiết kế mạch thiết kế chương trình dịch, biểu diễn biểu thức chính quy, tìm kiếm mẫu, xử
lý ngôn ngữ tự nhiên, mã hóa thông tin, tạo chuỗi các con số…
Otomat mờ ứng dụng trong bài toán cụ thể là tìm kiếm mẫu trong văn bản nén và mã hoá
Sử dụng các kỹ thuật trên Otomat và máy biến đổi, giải quyết các bài toán được nhiều người quan tâm về so khớp chuỗi, so mẫu xấp xỉ, kiểm định mã, các đặc trưng của mã và ngôn ngữ hình thức có quan hệ với mã Các phương pháp này cho phép thiết kế các thuật toán hiệu quả - độ phức tạp thời gian là
đa thức bậc thấp, với đầu vào là Otomat hữu hạn đoán nhận ngôn ngữ
Trang 4023
Lý thuyết Otomat có liên hệ chặt chẽ với lý thuyết mã Trong đó lý thuyết
mã có vai trò thiết yếu trong nhiều lĩnh vực như xử lý thông tin, nén dữ liệu, truyền thông và mật mã Bài toán kiểm định mã và bài toán nghiên cứu các đặc tính của mã, hay ngôn ngữ hình thức trong mối quan hệ với mã
Mô hình Otomat khoảng, một công cụ Otomat mới sử dụng đại số khoảng,
có thể dùng để mô hình hóa các hệ thời gian thực với các ràng buộc thời gian
có dạng khoảng Giải bài toán tìm đường đi nhanh nhất theo thời gian của một mạng giao thông dùng công cụ Otomat khoảng với các ràng buộc thời gian dạng khoảng được gắn trên các cung chuyển; bài toán đạt được trên mạng được mô hình bằng Otomat khoảng khi ràng buộc khoảng trên các cung chuyển chính là thời gian ưu tiên được phép đi qua của cung và mô hình bằng Otomat khoảng khi ràng buộc khoảng trên các cung chuyển chính
là thời gian ưu tiên được phép đi qua của cung
1.1.7.1 Giới thiệu về bài toán sánh mẫu
Dạng phổ biến nhất của bài toán tìm kiếm văn bản là: Cho trước nguồn tìm kiếm là một tập D các văn bản (hoặc là cơ sở dữ liệu văn bản, hoặc là tập các văn bản trên
Internet) Cho một câu hỏi dạng văn bản q (thường là một từ, xâuvăn bản ngắn),
hãy tìm tất cả các văn bản thuộc D mà có chứa q
Trong nhiểu trường hợp (chẳng hạn tìm kiếm thông tin qua máy tìm kiếm) thì q còn được gọi là “truy vấn” và bài toán còn có tên gọi là “tìm kiếm theo truy vấn” Để tìm được các văn bản có chứa văn bản truy vấn q, hệ thống tìm kiếm cần phải kiểm tra văn bản truy vấn q có là một xâu con của các văn bản thuộc D hay không ( sánh mẫu) và đưa ra các văn bản đáp ứng Trong nhiều trường hợp, bài toán còn đòi hỏi tìm tất cả các vị trí của các xâu con trong văn bản trùng với q Đồng thời, điệu kiện tìm kiếm có thể được làm “xấp xỉ” theo nghĩa văn bản kết quả có thể không cần chứa q (không cần
có một xâu con của văn bản trùng một cách hoàn toàn chính xác với q) mà chỉ cần
“liên quan” tới q (có xâu con trong văn bản xấp xỉ q )