Tải bản đầy đủ (.pdf) (27 trang)

Đối sánh mẫu theo tiếp cận Otomat mờ và ứng dụng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (685.37 KB, 27 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
W  X





NGUYỄN THỊ THANH HUYỀN



ĐỐI SÁNH MẪU THEO TIẾP CẬN
OTOMAT MỜ VÀ ỨNG DỤNG

Chuyên ngành: Đảm bảo toán học cho máy tính và hệ thống tính toán
Mã số : 62.46.35.01



TÓM TẮT LUẬN ÁN TIẾN SĨ TOÁN HỌC







"
Hà Nội – 2007
CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI


TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI


Người hướng dẫn khoa học: PGS.TS. Hồ Thuần
PGS.TS. Phan Trung Huy

Phản biện 1: PGS.TSKH. Nguyễn Cát Hồ

Phản biện 2: PGS.TS. Hà Quang Thụy

Phản biện 3: PGS.TSKH. Bùi Công Cường




Luận án được bảo vệ trước Hội đồng chấm luận án tiến sĩ cấp Nhà nước
tại Trường Đại học Bách khoa Hà Nội.
Vào hồi 14 giờ 00, ngày 18 tháng 9 n
ăm 2007








Có thể tìm hiểu luận án tại:
- Thư viện Quốc gia.
- Thư viện và Mạng thông tin, ĐHBK Hà Nội.



DANH MỤC CÔNG TRÌNH CỦA TÁC GIẢ
1. Nguyễn Thị Thanh Huyền, Phan Trung Huy (2002), “Tiếp cận mờ
trong một số thuật toán so mẫu”, Tạp chí Tin học và điều khiển học
18(3), tr. 201–210.
2. Nguyễn Thị Thanh Huyền, Bùi Kiên Cường, Phan Trung Huy
(2003), “Các thuật toán tìm kiếm xâu con và tìm kiếm tựa ngữ nghĩa
dựa trên otomat mờ”, Kỷ yếu Hội thảo Quốc gia lần thứ VI “ Một số
vấn đề chọn l
ọc của công nghệ thông tin”, Thái Nguyên – 8/2003, tr.
152–163.
3. Nguyễn Thị Thanh Huyền, Phan Trung Huy, Hồ Thuần (2004),
“Thuật toán so mẫu nhanh theo tiếp cận mờ trên dữ liệu text nén và
không nén”, Kỷ yếu Hội thảo quốc gia lần thứ VII “Một số vấn đề
chọn lọc của công nghệ thông tin”, Đà Nẵng – 8/2004, tr. 198–209.
4. Phan Trung Huy, Nguyễn Thị Thanh Huyền (2005), “Nửa nhóm tác
dụng mờ và ứng dụng”, Kỷ yếu hội th
ảo quốc gia lần thứ 8 về “Một
số vấn đề chọn lọc của Công nghệ Thông tin”, 25–27/8 /2005, Hải
Phòng , tr. 371–384.
5. Nguyễn Thị Thanh Huyền, Nguyễn Đắc Tuấn, Phan Trung Huy
(2006), “Xác định một số độ đo sự tương tự giữa hai xâu theo mô
hình otomat mờ”, Tạp chí Bưu chính Viễn thông và Công nghệ
thông tin, Chuyên san “Các công trình nghiên cứu – triển khai viễn
thông và công nghệ thông tin” (16), tr. 86–94.
6. Vũ Thành Nam, Nguyễn Thị Thanh Huyền, Phan Trung Huy (2006),
“Mã tích đ
àn hồi và tìm kiếm trên văn bản mã hoá sử dụng thuật toán
so mẫu theo tiếp cận mờ”, Tuyển tập các bài báo khoa học, Hội nghị

khoa học lần thứ 20, Đại học Bách khoa Hà Nội, tr. 68 – 75.



1
MỞ ĐẦU
I. Tính cấp thiết của luận án
Đối sánh mẫu, hay so mẫu (pattern matching), là một bài toán
quan trọng được ứng dụng trong nhiều lĩnh vực khoa học và xử lý
thông tin, đặc biệt là đối với vấn đề xây dựng công cụ tìm kiếm của
các hệ điều hành, trong cơ sở dữ liệu, trên mạng Internet,
Ngày nay, việc xây dựng công cụ tìm kiếm hiệu quả, đặc biệt là
tính nă
ng tìm kiếm xấp xỉ, đang được rất nhiều người quan tâm. Cho
đến nay đã có rất nhiều máy tìm kiếm trên Internet, tuy nhiên tất cả
các máy tìm kiếm này đều không có hoặc còn hạn chế về khả năng
tìm kiếm xấp xỉ. Trong các hệ quản trị cơ sở dữ liệu, khả năng tìm
kiếm thông tin gần đúng duy nhất của truy vấn SQL còn hạn chế khi
dùng toán tử “like”. Như vậy, việc tiếp t
ục nghiên cứu về các giải pháp
tìm kiếm xấp xỉ là cần thiết.
Để đạt được hiệu quả khi lưu trữ, quản lý, tổ chức và truyền dữ
liệu, giải pháp được sử dụng là nén văn bản. Vì thế, nhiệm vụ của
các máy tìm kiếm hiệu quả là có thể nhanh chóng tìm được thông tin
từ một lượng dữ liệu khổng lồ, ngay cả khi dữ liệu đã đượ
c nén.
Trong lĩnh vực mã hoá và bảo mật, đặc biệt đối với môi trường dữ
liệu không an toàn (ví dụ trên mạng), một bài toán thực tiễn đặt ra: hãy
xây dựng một ứng dụng duyệt và tìm kiếm trên văn bản mã hoá mà
không cần giải mã. Bài toán này thực sự cần thiết nhưng cho đến nay

chưa có giải pháp nào được biết.
Đối với nước ta, việc nghiên cứu các thuật toán so mẫu là cần
thiết vì trong nhiều tr
ường hợp, các máy tìm kiếm có tính toàn cầu


2
không được phép truy nhập sâu vào các hệ thống mạng nội bộ, hơn
nữa thuật toán của những tổ chức này không phải lúc nào cũng được
công bố.
II. Nội dung nghiên cứu của luận án
Với mục đích đi sâu nghiên cứu và đóng góp một phần trong lĩnh
vực phát triển các công cụ tìm kiếm văn bản. Đối tượng nghiên cứu
của luận án là bài toán so xâu mẫu theo tiếp c
ận otomat mờ. Phạm vi
nghiên cứu của luận án bao gồm:
1. Xây dựng các giải thuật hiệu quả cho bài toán so đơn mẫu chính
xác, với mẫu là một xâu kí tự.
2. Nghiên cứu và đề xuất một số phương pháp xác định độ tương tự
giữa hai xâu để giải quyết bài toán so mẫu xấp xỉ.
3. Giải quyết bài toán so đơn mẫu để tìm kiếm trên môi trường văn
b
ản nén và mã hoá.
III. Những điểm mới của luận án
1. Tận dụng những ưu điểm của tiếp cận otomat, đồng thời kết hợp
với ý tưởng của lý thuyết tập mờ, luận án đề xuất một số hệ hình
thức otomat mờ để giải quyết các dạng bài toán so xâu mẫu.
2. Luận án đưa ra hai độ đo xác định sự t
ương tự giữa hai xâu, làm cơ
sở giải quyết bài toán so mẫu xấp xỉ.

3. Bằng tiếp cận otomat mờ, luận án xây dựng các thuật toán nhanh,
mềm dẻo, hiệu quả (hướng on–line) cho bài toán so mẫu chính
xác và xấp xỉ trên môi trường văn bản nén, mã hoá hoặc không.
Otomat hữu hạn được đưa ra từ giữa thế kỉ 20. Việc sử dụng
otomat hữu hạn đem lại khả năng thiế
t kế các thuật toán nhanh, hiệu


3
quả (hướng on–line). Nhiều cách tiếp cận sau khi đã tinh chỉnh và cải
biên thực chất là đưa về dạng ứng dụng otomat.
Otomat mờ được xem là sự tổng quát hoá của otomat hữu hạn,
trong đó tập trạng thái là các tập mờ, hàm chuyển trạng thái và hàm
ra được biểu diễn qua các quan hệ mờ (các hình thức otomat nâng
cao được xem như những trường hợp đặc biệt của otomat mờ là:
otomat xác suất, otomat có trọng số
). Theo đánh giá của các chuyên
gia, các hệ hình thức otomat mờ 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.
Khác với những hình thức otomat mờ được biết hiện nay, mô
hình otomat mờ mà luận án sử dụng có trạng thái là một tập con mờ
trên tập nền X = {1,2,…,n}, được mô tả bởi một vectơ n chi
ều toạ độ
nguyên và hàm chuyển trạng thái được biểu diễn qua các quan hệ rõ.
Các kết quả trong luận án chứng tỏ rằng: bài toán càng phức tạp càng
đòi hỏi số chiều trong trạng thái mờ tăng. Điều này cũng giống như
trong lý thuyết tập mờ truyền thống, số phần tử của tập nền càng lớn
thì thông tin phản ánh càng mịn. Trong lý thuyết otomat truyền thống
người ta thường th

ấy rằng, khi số lượng trạng thái của otomat càng
tăng thì đáp ứng được các yêu cầu tính toán càng phức tạp. Việc tăng
này theo quan điểm của tập rõ chỉ đơn thuần là về số lượng. Khi đưa
vào quan điểm của tập mờ, sự tăng được nhìn nhận một cách tinh tế
hơn, đó là tăng về cấu trúc của tập trạng thái.
Xuất phát t
ừ những ý tưởng về tập mờ, khi giải bài toán so xâu
mẫu, luận án đưa ra khái niệm độ mờ xuất hiện mẫu để mô tả “mức
độ xuất hiện” hay “mức độ khớp” của mẫu trong văn bản. Tuỳ thuộc
vào nhu cầu hay quan niệm về mức độ khớp trong từng hệ thống tìm


4
kiếm, định nghĩa về độ mờ xuất hiện mẫu cho từng trường hợp cụ thể
sẽ được phát biểu chính xác. Khi đó, một yêu cầu đặt ra là cần tính
được ngay độ mờ xuất hiện mẫu mỗi khi duyệt đến một kí tự trên xâu
đích. Các mô hình otomat mờ được đề xuất trong luận án là một tiếp
cận hợp lý để đáp ứng được yêu cầ
u này, thể hiện rõ qua các bước
tính toán tinh tế của hàm chuyển trạng thái mờ.
IV. Ý nghĩa khoa học của luận án
Tiếp cận otomat mờ do luận án đề xuất đem lại một cách nhìn
nhất quán về một lớp mô hình otomat mờ cho bài toán so đơn mẫu,
với mức độ từ đơn giản đến phức tạp. Từ đó, ta có thể phát triển mô
hình này để giải quyết những yêu cầu
đa dạng khác của bài toán so
mẫu.
Đặc biệt, từ các nghiên cứu về hệ hình thức otomat mờ giải bài
toán so mẫu đã nảy sinh khả năng mở rộng về mặt lý thuyết của mô
hình otomat mờ trong mối liên hệ với đại số, đó là các hệ hình thức

tác động mờ trên các nửa nhóm mờ.
V. Giá trị thực tiễn của luận án
Những kết quả nghiên cứu củ
a luận án có thể được sử dụng để cài
đặt công cụ tìm kiếm mềm dẻo và hiệu quả trong nhiều ứng dụng
công nghệ thông tin, theo cả chiều rộng và chiều sâu, như: máy tìm
kiếm trên mạng, tìm kiếm trong cơ sở dữ liệu, trong thư viện điện tử,
văn phòng tin học hoá; tìm kiếm trong môi trường dữ liệu bảo mật,…
Nội dung luận án gồm có phần mở đầu, 4 ch
ương, phần kết luận,
tài liệu tham khảo và phụ lục:
Chương 1 – Tổng quan về bài toán so mẫu: Giới thiệu chung về bài
toán so mẫu và hướng tiếp cận otomat mờ của luận án để giải bài


5
toán so mẫu. Các kết quả mới của luận án được giới thiệu trong các
Chương 2, 3, 4.
Chương 2 – Bài toán so mẫu chính xác theo tiếp cận otomat mờ:
Trình bày hai phương pháp so mẫu chính xác theo tiếp cận otomat
mờ do tác giả đề xuất.
Chương 3 – Bài toán so mẫu xấp xỉ theo tiếp cận otomat mờ: Trình
bày các kết quả của luận án về so mẫu xấp xỉ, bao gồm: thuật toán
theo tiếp cận otomat mờ để xác định khúc con chung dài nhất c
ủa hai
xâu; đề xuất hai độ đo sự tương tự giữa hai xâu là “độ gần tựa ngữ
nghĩa” và “độ bảo toàn thứ tự xuất hiện các kí tự”.
Chương 4 – So mẫu trên văn bản nén và mã hoá: Giải quyết bài
toán so mẫu trên môi trường văn bản nén và mã hoá.
Phụ lục A – Trình bày một số định nghĩa, chứng minh các tính chất

bổ trợ cho Mục 3.3.
Phụ lục B – Giới thiệ
u một số phần mềm trong đó có cài đặt thử
nghiệm các thuật toán so xâu mẫu được đề xuất trong luận án.
Chương 1. TỔNG QUAN VỀ BÀI TOÁN SO MẪU
1.1 Bài toán so mẫu và tình hình nghiên cứu hiện nay
1.1.1 Giới thiệu chung
So mẫu, hay đối sánh mẫu (pattern matching) là bài toán tìm sự
xuất hiện của một mẫu (pattern) với một số đặc tính nào đó trong
chuỗi các ký hiệu cho trước (gọi là xâu đích). Mục này tậ
p trung
trình bày về bài toán so xâu mẫu, tổng quan tình hình nghiên cứu và
ứng dụng.


6
1.1.2 Các dạng của bài toán so mẫu và các kết quả nghiên cứu
Các dạng của bài toán so mẫu bao gồm: so đơn mẫu, so đa mẫu
(mẫu là một tập các xâu), so mẫu mở rộng, so biểu thức chính qui,
theo hai hướng chính xác và xấp xỉ. Nội dung của luận án tập trung
giải quyết bài toán so đơn mẫu, chính xác và xấp xỉ. Vì thế, trong
luận án, mỗi khi nhắc đến so mẫu sẽ ngầm hiểu mẫ
u là một xâu kí tự.
1.1.3 So mẫu xấp xỉ
Các thuật toán so mẫu xấp xỉ hiện nay được chia ra thành bốn loại:
– Các thuật toán dựa trên quy hoạch động.
– Các thuật toán sử dụng otomat tìm kiếm.
– Các thuật toán sử dụng cơ chế song song bit (bit–parallelism).
– Các thuật toán sử dụng cơ chế lọc.
Để so mẫu xấp xỉ, ta cần đo độ tương tự gi

ữa hai xâu. Tương tự
được hiểu là giữa hai xâu kí tự có một vài sai khác ở những lỗi có thể
nhận ra bằng mắt thường, không xét về khía cạnh ngữ nghĩa. Các kỹ
thuật phổ biến đo độ tương tự giữa hai xâu là: xâu con chung dài
nhất, dãy con chung dài nhất và khoảng cách soạn thảo.
1.1.4 Tìm kiếm trong văn bản mã hoá và nén
Các thuật toán hiện nay tập trung theo hai hướng chính: so mẫu
nén (nén mẫu rồi đem tìm kiế
m trên văn bản nén) và so mẫu trên
miền nén (giải nén từng phần của văn bản) với mục tiêu phù hợp cho
một hoặc một lớp phương pháp nén cụ thể.
1.2 Các hình thức của otomat mờ
1.2.1 Tập mờ
Mục này trình bày khái niệm tập mờ và bằng một ví dụ để chứng
tỏ rằng nhiều tập mờ trên tập nền hữu hạn phần t
ử đã xuất hiện trong


7
các ứng dụng thực tế và khi số phần tử của tập nền càng lớn thì thông
tin phản ánh càng mịn. Đây là cơ sở để đưa vào xem xét các trạng
thái mờ hữu hạn thành phần trong otomat mờ so mẫu của luận án.
1.2.2 Quan hệ mờ
Mục này nhắc lại khái niệm quan hệ mờ, làm cơ sở để trình bày
định nghĩa otomat mờ ở Mục 1.2.3.
1.2.3 Khái niệm otomat mờ
Nói chung, otomat mờ có tập trạng thái được đặc trưng bởi các tập
mờ, hàm chuyển trạng thái và hàm ra được biểu diễn bởi các quan hệ
mờ. Mục này giới thiệu định nghĩa về một số hình thức otomat mờ,
theo các tác giả như Klir và Yuan (1995), Mordeson và Malik (2002).

1.3 Hướng tiếp cận otomat mờ cho bài toán so mẫu
1.3.1 Ý tưởng chung của tiếp cận otomat mờ
Các thuật toán so mẫu theo tiếp cận otomat mờ bao gồm hai giai
đoạn: Giai đoạn tiền xử lý mẫu xây dựng otomat mờ dựa vào thông
tin trên mẫu; Giai đoạn sánh mẫu duyệt xâu đích từ trái sang phải và
dựa vào otomat mờ so mẫu để tính ngay được độ mờ xuất hiện mẫu
tại mỗi vị trí được duyệt. Ưu điểm quan trọng nhất của các thuật toán
so mẫu theo tiếp cận otomat mờ là:
− Chi tiết hoá cấu trúc thông tin trong từng tr
ạng thái mờ cho phép
thiết lập những phép chuyển trạng thái tinh tế, nhờ đó mà có thể
giải quyết được những yêu cầu phức tạp của bài toán so mẫu.
− Không đòi hỏi lưu trữ toàn bộ S rồi mới so mẫu, nên có thể áp
dụng trong các thuật toán hướng online.
− Thông tin về mẫu bao hàm trong cấu trúc của otomat mờ nên luôn


8
phản ánh được thông tin về sự xuất hiện mẫu mỗi khi duyệt đến một
vị trí bất kỳ trên xâu đích S và khi cần tìm kiếm mẫu P trong nhiều
xâu S, chỉ cần dùng chung một otomat mờ so mẫu được xây dựng từ
mẫu P (Điều này đặc biệt hữu ích khi tìm kiếm trong cơ sở dữ liệu).
1.3.2 Khái niệm otomat mờ so mẫu
Mục này trình bày mô hình tổng quát của các otomat mờ so mẫu
được sử dụng trong luận án. Khác với các hình thức otomat mờ đã giới
thiệu ở Mục 1.2.3, otomat mờ do luận án đề xuất có trạng thái là một tập
mờ với hàm chuyển trạng thái rõ (có thể được biểu diễn dưới dạng một
quan hệ rõ truyền thống, là một dạng đặc biệt của quan hệ mờ).
Định nghĩa 1.7. Một otomat mờ là bộ năm
A

(P) = (A, Q, q
0
,
δ
, F),
trong đó:
+ Bảng chữ vào A = A
0
t
, trong đó mỗi chữ là một xâu gồm t kí tự
trên bảng chữ cơ sở A
0
,
+ Q là tập hữu hạn các trạng thái mờ có dạng q = (v
1
,v
2
, ,v
k
) trên
tập nền X = {1,2, ,k} với giá trị mờ nguyên (ta gọi là trạng thái
mờ k chiều),
+ q
0


Q là trạng thái khởi đầu,
+ F là tập các trạng thái kết thúc,
+ Hàm chuyển
δ

: Q
×
A

Q. Hàm chuyển có thể được mở rộng
trong đó tín hiệu tác động là một xâu thuộc A*:
δ
(q, wa) =
δ
(
δ
(q,w),a), w

A*, a

A.
Số chiều của trạng thái mờ phụ thuộc vào quan điểm về “độ mờ
xuất hiện mẫu” và nhu cầu tìm kiếm trong từng bài toán cụ thể.
1.3.3 Các ký hiệu
Mục này giới thiệu các ký hiệu được sử dụng trong luận án.


9
1.4 Một số thuật toán về so mẫu
Mục này trình bày nội dung hai thuật toán so mẫu kinh điển là
Knuth–Morris–Pratt (KMP) và Boyer–Moore (BM), mà những ý
tưởng cơ bản của chúng được sử dụng để phát triển hai thuật toán so
mẫu chính xác theo tiếp cận otomat mờ của luận án (Chương 2).
Chương 2. BÀI TOÁN SO MẪU CHÍNH XÁC THEO
TIẾP CẬN OTOMAT MỜ

2.1 Phát biểu bài toán
Cho xâu mẫu P độ dài m và xâu đích S độ dài n trên cùng bảng
chữ A. Tìm tất c
ả các vị trí xuất hiện của mẫu P trong xâu S.
2.2 Độ mờ của mô hình
Định nghĩa 2.1. Cho xâu mẫu P độ dài m và xâu đích S độ dài n. Độ
mờ xuất hiện mẫu P trên S tại vị trí j là giá trị nguyên
λ


0 thoả mãn:
− Nếu S
j


P
1
thì
λ
= 0,
− Ngược lại,
λ
là số lớn nhất sao cho P
1
P
2
P
λ
= S
j –

λ
+ 1
S
j –
λ
+ 2
S
j
.
Gọi A
P
là tập các kí tự có trong mẫu P, # là một kí tự đại diện cho
các kí tự thuộc A nhưng không xuất hiện trong P (thuộc A \ A
P
). Độ
mờ xuất hiện mẫu P được xác định thông qua hàm TFuzz như sau:
TFuzz: {0,1, , m} × (A
P
∪ #) → {0,1, , m}
Bổ đề 2.1 đưa ra một phương pháp tính hàm TFuzz.
2.3 Thuật toán KMP mờ
2.3.1 Otomat mờ so mẫu
Định nghĩa 2.2. Otomat mờ so mẫu là bộ
A
(P) = (A, Q, q
0
,
δ
, F),
trong đó:



10
+ Bảng chữ vào A = A
P


{#},
+ Tập trạng thái Q = {0, 1, , m},
+ Trạng thái khởi đầu q
0
= 0,
+ Trạng thái kết thúc F = m,
+ Hàm chuyển
δ
: Q
×
A

Q ,
δ
(q, a) = TFuzz(q, a).
2.3.2 Cơ sở toán học của thuật toán
Định lý 2.1. Cho xâu mẫu P độ dài m.
A
(P) là otomat mờ được xác
định theo Định nghĩa 2.2. Giả sử q =
δ
(q
0

,w), w

A*. Nếu q = F thì
P là khúc cuối của w.
2.3.3 Thuật toán
Mục này trình bày chi tiết thuật toán tính bảng TFuzz dựa trên
mẫu P cho trước, thuật toán tìm sự xuất hiện mẫu P trong xâu đích S
và một ví dụ về so mẫu theo thuật toán KMP mờ.
2.3.4 So sánh thuật toán KMP và thuật toán KMP mờ
Trong thuật toán KMP, có lúc con trỏ j trên S giữ nguyên, còn
con trỏ trên mẫu dịch chuyển nhiều lần nên làm chậm đáng kể so với
thuật toán KMP mờ: mỗi lần nhậ
n một kí tự S
j
là một lần điều chỉnh
giá trị mờ theo otomat: λ
j
= TFuzz(λ
j – 1
,S
j
).
2.4 Thuật toán KMP–BM mờ
2.4.1 Ý tưởng của thuật toán
Thuật toán KMP–BM mờ là một cải tiến của thuật toán KMP mờ,
kết hợp với ý tưởng về bước dịch chuyển xa trên xâu đích trong pha
tìm kiếm như thuật toán BM. Thuật toán sử dụng mô hình otomat mờ
với trạng thái mờ hai chiều, cho phép tận dụng thông tin của mẫu
nhiều hơn, đem lại tốc độ thực tế
cao hơn so với thuật toán KMP mờ.



11
2.4.2 Otomat mờ so mẫu
Định nghĩa 2.3. Cho P là xâu mẫu độ dài m trên bảng chữ A. A
P

bảng các kí tự xuất hiện trong P. Otomat mờ so mẫu P là một bộ

A
(P) = (A
k
, Q, q
0,
F,
δ
), trong đó:
+ A
k
là bảng chữ vào, mỗi chữ là một xâu kí tự độ dài k trên A,
k = m + 1,
+ Q là tập hữu hạn các trạng thái,
Q = {(n1, n2)
|
n1, n2

N, 0

n1


m, 1

n2

k}
− n1 gọi là độ mờ tại vị trí đang xét,
− n2 gọi là bước nhảy tiếp theo vị trí đang xét.
+ q
0
là trạng thái khởi đầu, q
0
= (0, 1),
+ F là trạng thái kết thúc, F = (m, 1),
+ Hàm chuyển
δ
: Q
×
A
k


Q,
(q, w)

q’=
δ
(q, w).
Với q = (n1, n2) thì q’ = (n1’, n2’) được xác định như sau:
Nếu n2 > 1 thì đặt n1 = 0,
− Tính n1’ = TFuzz(n1, w

1
),
− Nếu n1’ = m hoặc n1’ > n1 thì n2’ = 1,
ngược lại (n1’< m và n1’

n1) thì xét:
Nếu w
1 + m – n1’


A
P
thì n2’ = 1, ngược lại n2’ = 1 + m – n1’.
Thuật toán 2.3. Mô tả quá trình tìm sự xuất hiện của mẫu P trong
xâu đích S dựa trên otomat mờ được xây dựng từ trước.
2.4.3 Cơ sở toán học của thuật toán
Định lý 2.2. Thuật toán 2.3 được xác định một cách đúng đắn theo
nghĩa sau mỗi một lần lặp thì q.n1 là độ mờ xuất hiện mẫu tại vị trí
S
j
, q.n2 là bước nhảy tới điểm mới trên S mà không bỏ sót mẫu.


12
2.4.4 Thuật toán
Mục này trình bày thuật toán so mẫu KMP–BM mờ.
Chương 3. BÀI TOÁN SO MẪU XẤP XỈ THEO
TIẾP CẬN OTOMAT MỜ
3.1 Đặt vấn đề
Cốt lõi để giải bài toán so mẫu xấp xỉ là xác định độ tương tự giữa

hai xâu theo một mô hình lỗi nào đó. Các mô hình lỗi kinh điển chỉ
hiệu quả khi có những sai khác về mặt chính tả, nhưng trong nhiều
tình huống, những k
ĩ thuật này chưa đáp ứng đầy đủ yêu cầu thực tế.
Với mẫu P và xâu đích S, độ gần tựa ngữ nghĩa do luận án đề xuất
được tổng hợp từ tần suất xuất hiện các khúc con của P trong S, còn
độ bảo toàn thứ tự xuất hiện các kí tự được tính toán dựa trên sự bảo
toàn thứ tự của từng bộ phận của P trong S. Do độ t
ương tự xác định
theo hai cách này phản ánh được độ gần gũi ngữ nghĩa giữa hai xâu,
xét về mặt thống kê, nên được gọi là độ tương tự tựa ngữ nghĩa.
Một mô hình lỗi kinh điển là dựa vào độ dài khúc con chung dài
nhất, song với tiếp cận otomat mờ của luận án sẽ đem lại một thuật
toán nhanh, đặc biệt hiệu quả khi cần so mẫu P với nhiều xâu S.
3.2 Bài toán đo độ tương tự giữa hai xâu
Bài toán: Cho xâu mẫu P độ dài m và xâu đích S độ dài n. Xác định
độ tương tự giữa hai xâu P và S.
3.3 Độ tương tự dựa trên độ dài khúc con chung của hai xâu
3.3.1 Phát biểu bài toán
Bài toán: Cho xâu mẫu P = P
1
P
2
P
m
và xâu đích S = S
1
S
2
S

n
trên


13
bảng chữ A. Tìm khúc con chung dài nhất giữa hai xâu P và S.
Cho bảng chữ A, với mỗi xâu u = u
1
u
2
u
k
, u
i
∈ A, ký hiệu:
− pref
m
(u) = u
1
u
2
u
m
(hay gọn hơn là u(m)),
− suf
m
(u) = u
k – m + 1
u
k – m + 2

u
k
.
Quy ước pref
0
(u) = suf
0
(u) = ε (từ rỗng).
− Với hai số tự nhiên f, d, |u| ≥ d ≥ f ≥ 0, đặt u(f, d) = suf
f
(pref
d
(u)).
Quy ước u(0,d) = ε.
− Với mỗi xâu y là khúc con của u,
đặt lid(y,u) = (|y|, Min {d∈N| ∃f ≥ 0: u(f,d) = y}).
− Cho hai xâu u, v, ký hiệu lfact(v, u) là khúc cuối y dài nhất của v
mà y là khúc con nào đó của u, độ dài của xâu y như vậy được ký
hiệu là lfuz(v, u).
Với xâu P độ dài m, trên các cặp số (f,d), với m ≥ d ≥ f ≥ 0, xác
định một quan hệ tương đương: (f,d) tương đương với (f’,d’) nếu
P(f,d) = P(f’,d’). Cặp (f,d) được gọi là có nghĩa (với P) nế
u (f,d) là
cặp có d nhỏ nhất trong lớp, nghĩa là có khúc con y của P sao cho
lid(y, P) = (f,d).
3.3.2 Otomat so mẫu: mô hình và cơ sở toán học
Định nghĩa 3.1 trình bày về khái niệm otomat trạng thái các khúc
con của P, có vai trò bổ trợ làm rõ bản chất của otomat mờ cơ sở của
thuật toán. Với mỗi chữ a, mỗi khúc con u của P, hàm chuyển T cho
bởi: T(u,a) := lfact(ua, P).

Định lý 3.1. Với xâu v tuỳ ý, T(ε,v) = lfact(v, P).
Định nghĩa 3.2. Otomat mờ cơ sở của thuật toán có:
+
Tập trạng thái Q gồm các cặp (f,d) có nghĩa với P,


14
+ Bảng chữ vào A = A
P


{#}, A
P
gồm các kí tự xuất hiện trong
mẫu P và kí tự # đại diện cho các kí tự thuộc A \ A
P
,
+ Luật chuyển trạng thái: Với mỗi trạng thái vào (f,d)

Q, giả sử
P(f,d) = y, TFuzz((f,d),a) = (f',d')

Q được xác định bởi:
(f’,d’) = lid(v,P) với v = lfact(ya,P),
Tổng hợp một cách ngắn gọn, ta có:
TFuzz((f,d),a) = lid(lfact(P(f,d)a,P),P).
+ Trạng thái khởi đầu q
0
= (0,0),
+ Tác động của (f,d) bởi một xâu w độ dài n tuỳ ý được định nghĩa

một cách truyền thống theo đệ quy:
TFuzz((f,d),
ε
) = (f,d), (n = 0)
TFuzz((f,d), w) = TFuzz(TFuzz((f,d),w(n–1)),w
n
), (n > 0).
+ Do bản chất thuật toán, otomat này không xét đến tập kết thúc.
Định lý 3.2. Cho v là xâu tuỳ ý, TFuzz((0,0),v) = lid(lfact(v,P),P).
3.3.3 Thuật toán
Mục này trình bày thuật toán tìm khúc con chung dài nhất của
mẫu P và xâu đích S dựa trên otomat mờ được xây dựng từ trước.
3.3.4 Một phương pháp tính hàm chuyển trạng thái TFuzz
Mục này trình bày một phương pháp quy nạp để tính hàm chuyển
trạng thái TFuzz của otomat mờ trong Định nghĩa 3.2 và cấu trúc dữ
liệu phù hợp cho TFuzz. Tính đúng đắ
n của phương pháp được đảm
bảo bởi các định nghĩa và tính chất sẽ giới thiệu ở Phụ lục A.
3.3.5 Đánh giá thuật toán
Tổng thời gian tìm kiếm là n + T
pr
, trong đó n là thời gian sánh
mẫu P với xâu đích S; T
pr
là thời gian tiền xử lí mẫu P cỡ O(|A
P
| m
3
).
Thuật toán này đặc biệt hiệu quả khi cần so sánh một mẫu P với



15
nhiều xâu đích S (như khi tìm kiếm trong cơ sở dữ liệu, mỗi S là một
giá trị trên trường text của bản ghi hay trong hệ thống trích rút văn
bản trên mạng, mỗi S là một khúc của văn bản).
3.4 Độ gần tựa ngữ nghĩa
3.4.1 Ý tưởng về độ gần
Bài toán: Cho xâu mẫu P độ dài m và xâu đích S độ dài n. Hãy xác
định độ gần tựa ngữ nghĩa của S so với P.
Độ gần ở đây được hiểu là
giá trị thực nằm trong [0,1] thoả mãn:
+ độ gần càng lớn nếu số khúc con của P xuất hiện trong S càng nhiều,
+ độ gần bằng 1 nếu xâu P xuất hiện trong S,
+ độ gần bằng 0 nếu không có một phần nào của P xuất hiện trong S.
3.4.2 Thuật toán sơ bộ tính độ gần
+ Gọi P
i
P
i +1
P
i + t – 1
là một khối độ dài t của mẫu P và ký hiệu (t, i).
+ Lần lượt xét tất cả các khối độ dài t, t = 1, 2, , m, và kiểm tra
xem khối đó có xuất hiện trong S hay không.
+ Tính hàm giá

=
=
m

t
tkPSH
1
*),(
, với k là số khối độ dài t của
mẫu P mà xuất hiện trong xâu đích S.
+ Gọi M là giá trị cực đại của hàm giá ( khi S = P),
M =

=
+−=
m
t
ttmPPH
1
*)1(),(
(3.1)
+ Độ gần của S so với P là tỷ số H/M.
Thuật toán 3.2. Tính độ gần tựa ngữ nghĩa của xâu S so với mẫu P.
M =

=
+−=
m
t
ttmPPH
1
*)1(),(
;
H := 0;

for t := 1 to m do
for i := 1 to m – t + 1 do


16
if (khối (t,i) xuất hiện trong S) then
H := H + t; (3.2)
F := H/M; {Độ gần của S so với P}
3.4.3 Giải thích độ mờ của mô hình
Giá trị mờ μ
P
(S) = H/M cho biết độ gần tựa ngữ nghĩa của P trong
S. Tập nền X là tập rõ gồm tất cả các xâu S trong cơ sở dữ liệu.
3.4.4 Đánh giá thuật toán
Độ phức tạp thời gian của thuật toán là T = n .m(m + 1)/2 + T
pr
,
T
pr
là thời gian tiền xử lý, phụ thuộc vào m, không lớn so với n = |S|
(rất lớn) nên xem độ phức tạp của thuật toán là O(n). Nhưng nếu S
nhỏ và tìm nhiều lần trên nhiều S khác nhau thì thời gian không nhỏ,
cỡ k.T (k là số xâu S). Giải pháp là cải tiến otomat mờ xác định khúc
con chung của hai xâu sao cho chỉ cần một lần tính cấu trúc otomat,
sau đó duyệt tất cả các bản ghi, mỗi bản ghi một lần, từ trái sang phải
trên trường text c
ần tìm và khi duyệt xong, thuật toán cho biết ngay
hàm giá H ứng với bản ghi, kéo theo là tỷ lệ H/M. Tiếp cận otomat
này còn cho phép bỏ bớt việc tính lặp lại công thức (3.2) trong Thuật
toán 3.2 nếu có hai khối (t,i) và (t,j) trên P có nội dung giống nhau.

3.4.5 Otomat mờ và thuật toán tính độ gần mờ
Gọi otomat cải tiến là A
1
(P), trạng thái là bộ ba (f,d,k), với f, d
được xác định như trong otomat ở Mục 3.3, k là tần suất xuất hiện
trong mẫu P của khúc con đặc trưng bởi P(f,d). Trạng thái khởi đầu
q
0
= (0,0,0), không có trạng thái kết thúc, hàm chuyển TF xác định
bởi TF((f,d,k), a) = (f’,d’,k’), với f’,d’ được tính theo hàm TFuzz:
(f’,d’) = TFuzz((f,d),a). Tại mỗi vị trí j khi duyệt trên S từ trái sang
phải, giả sử trạng thái mờ tính được là (f,d,k). Điều này có nghĩa trên


17
S đã xuất hiện k khối độ dài f của P có nội dung giống nhau và giống
với khối (f,d – f +1). Nếu dùng thuật toán sơ bộ, mỗi khi xét một trong
k khối giống nhau đó, hàm giá được tăng bởi công thức H := H + f,
với thuật toán sử dụng otomat mờ, khi xét đến kí tự S
j
, thay cho k lần
tăng, hàm giá chỉ tăng một lần bởi công thức: H := H + k * f (3.3)
Hiệu quả của thuật toán này còn cao hơn nữa do: khi trạng thái
mờ tại vị trí S
j
là (f,d,k), không chỉ báo hiệu đã xuất hiện k khối độ
dài f của P thuộc lớp tương đương [f,d – f + 1] mà còn báo hiệu các
khối (f – 1, d – f + 2), (f – 2, d – f + 3), ,(1, d) cũng có mặt trong S.
Vì trong thuật toán tính độ gần giữa hai xâu P và S, ta chỉ xét xem
khối (t,i) của P có xuất hiện trong S hay không nên để đảm bảo công

thức (3.3) không thực hiện nhiều lần khi gặp nhiều trạng thái (f,d,k),
ta sử dụng một “otomat có trạng thái nhớ”, ký hiệu
A
2
(P). Otomat
này có trạng thái là bộ bốn (f,d,k,flag), trong đó f, d, k được xác định
từ otomat
A
1
(P), thành phần flag sẽ ghi nhớ giá trị thay đổi trong
quá trình duyệt xâu S.
Thuật toán 3.3. Giả sử đã thực hiện tiền xử lý mẫu P để xây dựng
otomat
A
1
(P) và tính độ gần cực đại M theo công thức (3.1). Khởi
tạo otomat
A
2
(P) từ otomat A
1
(P). Dựa trên otomat mờ A
2
(P) này,
thuật toán cho phép tính ngay được hàm giá H(P,S) mỗi khi duyệt
đến một kí tự của S, đồng thời thực hiện thay đổi giá trị của trạng
thái nhớ flag. Thuật toán 3.3 có độ phức tạp thời gian là O(n), n là độ
dài của S và hiệu quả khi cần so sánh một mẫu P với nhiều xâu S.
3.5 Độ bảo toàn thứ tự xuất hiện các kí tự
3.5.1 Ý tưởng

Ta đưa ra khái niệm thuận thế và độ bảo toàn thứ tự bằng chính số


18
thuận thế của S so với mẫu P.
3.5.2 Khái niệm thuận thế
Định nghĩa 3.5.
Phép nhúng bảo toàn thứ tự từ một khúc con S
j
S
j +1
S
j + k

của S vào khúc con P
i
P
i + 1
P
i + t
của P là một ánh xạ
ϕ
tăng sao cho:
+
ϕ
(j) = i <
ϕ
(j + 1) < <
ϕ
(j + k)


i + t,
+ P
ϕ
(j) = S
j
, P
ϕ
(j + 1) = S
j + 1
, , P
ϕ
(j + k) = S
j + k
.
Định nghĩa 3.6. Xét xâu đích S. Ta gọi:
+ Khúc con được xét cấp i kể từ vị trí j là khúc con S
j
S
j + 1
S
j + k

của S, trong đó k là số nguyên lớn nhất sao cho tồn tại một phép
nhúng
ϕ
bảo toàn thứ tự từ khúc con S
j
S
j + 1

S
j + k
của S vào khúc
con P
i
P
i + 1
P
m
của P. Khi đó ta nói độ dài của khúc được xét
này là k.
+ Khúc con bỏ qua cấp i kể từ vị trí j là khúc con S
j
S
j + 1
S
j + k
,
trong đó k là số nguyên lớn nhất sao cho S
q


P
i
,

q = j, j + 1, ,
j + k và bằng
ε
nếu S

j
= P
i
.
Định nghĩa 3.7. (thuận thế cấp i, 1 ≤ i < m) Xét xâu đích S. Với mỗi
khúc được xét S
j
S
j + 1
S
j + k
cấp i trên S, ta gọi mỗi cặp (j,t), j < t

j + k
là một thuận thế cấp i.
Số thuận thế cấp i của S so với mẫu P là Σ
j
(L
j
), trong đó các L
j

độ dài của các khúc được xét cấp i trên xâu S.
3.5.3 Một số tính chất của thuận thế
Mục này trình bày và chứng minh các tính chất của thuận thế.
3.5.4 Otomat đếm số thuận thế
Định nghĩa 3.8.
Otomat đếm số thuận thế cấp i là bộ
A
(P) =

(A
i
,Q
i
,q
i0
, q
if
,
δ
i
), trong đó:


19
+ A
i
là bảng chữ, A
i
= A
P


{#}, A
P


tập các chữ cái thuộc P
ref(i – 1)


và # đại diện cho các chữ cái không xuất hiện trong P
ref(i – 1)
, ở
đây ký hiệu P
ref(i – 1)
là xâu P sau khi bỏ đi i – 1 chữ cái đầu,
+ Q
i
là tập trạng thái , Q
i
= {i – 1, i, , m},
+ Trạng thái khởi đầu q
i0
và trạng thái kết q
if
đều là i – 1,
+ Hàm chuyển trạng thái
δ
i
: Q
i
×
A
i


Q
i
được xác định như sau:
Với q = i – 1


hoặc q = m ta có:

δ
i
(q, P
i
) = i

δ
i
(q,a) = i – 1, với

a

P
ref(i – 1)
và a

P
i
Với i – 1 < q < m, ta có:
q, nếu a = #
δ
i
(q,a) =
j,
nếu tồn tại j nhỏ nhất, m

j > q sao

cho P
j
= a, a

#
i,
nếu không tồn tại j, m

j > q sao cho
P
j
= a và a = P
i



i –1, nếu khác.
Otomat sử dụng hàm ra T
i
(j) để xác định số thuận thế cấp i.
Otomat mờ đếm số thuận thế tất cả các cấp có trạng thái mờ m – 1
chiều (s
1
,s
2
, ,s
m – 1
) và hàm chuyển được xác định như sau:
ρ((s
1

,s
2
, s
m – 1
),a) = (δ
1
(s
1
,a), δ
2
(s
2
,a), ,δ
m – 1
(s
m – 1
,a))
Trạng thái khởi đầu là (q
10
, q
20
, ,q
m – 1,0
) = (0, 1, , m – 1). Duyệt
trên xâu đích S từ trái sang phải, mỗi lần một kí tự. Hàm ra T
i
(j), i =
1, 2, , m – 1, cho biết số thuận thế cấp i, tính đến vị trí thứ j trên xâu
S và như vậy tổng số thuận thế các cấp là Σ
i

T
i
(j).
Độ phức tạp thuật toán: Thời gian tính toán (số thuận thế) khi
duyệt trên xâu đích S, tuần tự mỗi lần một kí tự, có cỡ O(mn).


20
Chương 4. SO MẪU TRÊN VĂN BẢN NÉN VÀ MÃ HOÁ
4.1 Tiếp cận so mẫu tổng quát trên văn bản nén và mã hoá
Bài toán:
Cho mẫu P = P
1
P
2
P
m
trên bảng chữ A. Xâu đích S được
nén hoặc mã hoá thành xâu Y = Y
1
Y
2
Y
n
trên bảng chữ B bằng
một phương pháp nén (hoặc mã hoá) đã biết trước. Tìm tất cả các
xuất hiện của mẫu P trên Y.
Mục này trình bày hai sơ đồ tổng quát để giải bài toán trên theo
hướng: so mẫu trên miền nén (Hình 4.1) và so mẫu không giải mã
(Hình 4.2).



Hình 4.1. Hình 4.2.
Phương pháp so mẫu không giải mã được đưa ra nhằm đảm bảo
an toàn thông tin khi tìm kiếm trên văn bản mã hoá. Ý tưởng chung
của các phương pháp so mẫu không giải mã là sử dụng kết hợp
otomat đoán nhận từ mã và otomat mờ so mẫu.
4.2 So mẫu trên văn bản nén
Ý tưởng cơ bản để so mẫu trên văn bản nén là đọc tuần tự trên tệp


21
nén và mở nén một số mã nén, lưu kết quả giải nén cục bộ vào một
vùng đệm và áp dụng thuật toán so mẫu theo tiếp cận mờ trên vùng
đệm này. Cấu trúc dữ liệu được lựa chọn cho vùng đệm là một hàng
đợi vòng tròn (circular queue) dựa trên một mảng kí tự có độ dài
buf_len. Hàng đợi vòng tròn được xác định bởi hai con trỏ: F trỏ vào
đầu lấy ra một phần tử trong queue, B trỏ vào đầu đưa một phần tử

vào hàng đợi. Phép định vị con trỏ T trên hàng đợi sau bước nhảy
qua k phần tử được xác định theo chiều kim đồng hồ bởi công thức:



>+−+
≤++
=⊕
lenbufkTlenbufkT
lenbufkTkT
kT

_,_
_,



4.3 So mẫu trên văn bản mã hoá
4.3.1 So mẫu trên văn bản mã hóa dạng khối kí tự
Nén dữ liệu thực chất là một quá trình mã hóa nên thuật toán so
mẫu trên văn bản nén có thể áp dụng đối với văn bản mã hóa dạng
khối kí tự, trong đó thủ tục giải nén được thay thế bằng thủ tục giải mã.
4.3.2 Mã đàn hồi
Tích đàn hồi xác định trên một đồ thị và có bản chất đa trị.
Định nghĩa 4.1. Cho ngôn ngữ X

B
k
= {0,1}
k
, hai từ x, y

X, mà
hai đỉnh tương ứng trong đồ thị của B
k
là x
B
, y
B
. Tích đàn hồi của
x,y, ký hiệu x.
p

y, được xác định bởi một đường đi p có nhãn w từ x
B

đến y
B
không

qua các đỉnh trung gian thuộc X, p:x
B
y
B
như
sau: x.
p
y = xw.
Ví dụ 4.2. Cho B
3
, ngôn ngữ X = {000, 010, 101, 111}. Giả sử có
ánh xạ mã: a → 000, b → 010, c → 111, d →101 (Hình 4.6).


22
Tích abd được mã hóa bởi đường đi từ đỉnh 000 qua 001, 010 đến
101 là: abd → 000101. Việc giải mã được tiến hành bằng việc duyệt
theo một con đường xác định bởi các nhãn.

Hình 4.6. Đồ thị xác định mã đàn hồi
4.3.3 So mẫu trên văn bản mã hóa bởi mã đàn hồi
Nhờ tiếp cận otomat mờ, thuật toán so mẫu trên văn bản mã hóa
bởi mã đàn hồi không cần giải mã mà vẫn thống kê được tần suất

xuất hiện mẫu. Các bước chính của thuật toán là:
+ Xây dựng otomat đoán nhận mã của một kí tự,
+ Kết hợp với otomat so mẫu theo tiếp cận mờ xác định độ mờ xuất
hiện mẫu.
Mục này trình bày chi tiết các mô hình otomat và thuật toán theo
tiếp cận mờ để so mẫu trên văn bản mã hoá bởi mã đàn hồi.
4.3.4 So mẫu trên văn bản mã hoá hai tầng
Giải thuật so mẫu trên văn bản mã hoá bởi mã hai tầng được thể
hiện qua sơ đồ Hình 4.9. Trong sơ đồ, C
1
là hàm mã hoá theo mã đàn
hồi với hàm giải mã D
1
, C
2
là hàm mã hoá hoặc hàm nén theo một
giải thuật nào đó có hàm giải mã là D
2
.

×