Giai đoạn tiền xử lý và tìm mẫu của HCWM

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Một họ thuật toán sánh mẫu Wu-Manber và thực nghiệm (Trang 33)

CHƯƠNG 1 : BÀI TỐN VÀ THUẬT TỐN SÁNH MẪU

2.3. Thuật tốn WM đồng thời cao

2.3.2. Giai đoạn tiền xử lý và tìm mẫu của HCWM

HCWM cĩ hai giai đoạn, tiền xử lý và tìm kiếm các mẫu.

1) Giai đon tin x lý bao gm các cơng đon sau đây.

(1) Chia tất cả các mẫu thành bộ bốn mẫu "PS1-PS4".

(2) Xác định kích thước của cửa sổđối sánh cho "PS4".

(3) Thiết lập bảng HASH "HASH1-HASH4" cho mỗi mẫu.

(4) Thiết lập bảng SHIFT "SHIFT3", "SHIFT4" cho "PS3", "PS4".

(5) Thiết lập bảng PREFIX "PREFIX4" cho "PS4".

2) Giai đon tìm mu HCWM cĩ thể tìm kiếm các mẫu như bộ mẫu "PS1-PS4" đồng thời. Đối với mỗi bộ mẫu, quá trình sánh mẫu khác nhau. a) Tìm kiếm "PS4", quá trình sánh mẫu của "PS4" giống như WM. b) Tìm kiếm "PS3", kích thước của cửa sổđối sánh là “m = 3", độ dài của khối ký tự " B = 2 ".

(1) Xác định cửa sổ đối sánh ở đầu văn bản "T". Con trỏ văn bản "Tp" trỏ đến hậu tố của cửa sổđối sánh.

(2) Nếu Tp>Tend, kết thúc việc tìm kiếm "PS3". Hoặc nếu khơng, chuyển tới bước (3).

(3) Tính tốn giá trị băm "sh" các hậu tố của các ký tự văn bản bên trong cửa sổ đối sánh và tra cứu "SHIFT3", nếu "SHIFT3[sh]>0", Tp=Tp+ SHIFT3[sh], quay lại bước (2). Hoặc nếu khơng, chuyển tới bước (4).

(4) Tính tốn giá trị băm "h" của các ký tự văn bản bên trong cửa sổ đối sánh, tra cứu "HASH3", nếu "HASH3[h]= null", mẫu phù hợp, ghi lại kết quả. Tp=Tp + 1, chuyển tới bước (2).

c) Tìm kiếm "PS2", kích thước của cửa sổ đối sánh là "m = 2", độ dài của khối ký tự "B = 2".

(1) Xác định cửa sổ đối sánh ở đầu văn bản "T". Con trỏ văn bản "Tp" trỏ đến hậu tố của cửa sổđối sánh.

(2) Nếu Tp>Tend kết thúc việc tìm kiếm cho "PS2". Hoặc nếu khơng, chuyển tới bước (3).

(3) Tính tốn giá trị băm "h" của các ký tự văn bản bên trong cửa sổ đối sánh, tra cứu "HASH2", nếu "HASH2[h]=null", mẫu phù hợp, ghi lại kết quả. Tp=Tp + 1, chuyển tới bước (2). d) Tìm kiếm "PS1" Tìm kiếm "PS1", kích thước của cửa sổđối sánh là "m=1", độ dài của ký tự khối "B=1". Quá trình này giống như "PS2". 2.3.3. Ví d Giả sử chúng ta cĩ dữ liệu sau đây.

Văn bản "T" = "The mild teacher always told her students to obey the

rules of school."

Mẫu, "P" = {"mild ", "tea", "told", "Micky", "ld", "tu "," t "," m "}

1) Tin x

(1) Phân loại các mẫu. "PS1" = {" t "," m "}, " PS2 "= {" ld "," tu "}, "PS3"= {" tea "}, " PS4 "= {" mild ", " told ", "Micky"}

(2) Xác định kích thước của cửa sổđối sánh cho "PS4", đĩ là "m = 4".

(3) Thiết lập bảng HASH, xem hình 1. (4) Thiết lập bảng SHIFT, xem hình 2. (5) Thiết lập bảng PREFIX, xem hình 3.

null

hash(m) m null

null hash(tea) tea

hash(t) t null

null

(a) HASH 1 (c) HASH 3

null null

hash(ld) ld hash(ck) micky null

null null

hash(tu) tu hash(ld) mild told null

null null

(b) HASH 2 (d) HASH 4

2) Tìm kiếm mu

(1) Tìm kiếm "PS4"

Kích thước của cửa sổđối sánh là "4" và được đặt vào đầu của văn bản.

The mild teacher always told her student to obey the rules of school

Ký tự hậu tố bên trong cửa sổ đối sánh là "e". Tra cứu "SHIFT4". Khi khơng cĩ ký tự nào xuất hiện trong bất kỳ mẫu nào trong "PS4", khoảng cách dịch chuyển là "3".

The mild teacher always told her students to obey the rules of school

Sử dụng giá trị băm của "il" tra cứu "SHIFT4", dịch chuyển cửa sổ đối sánh bên phải 1 ký tự.

The mild teacher always told her students to obey the rules of school

Sử dụng giá trị băm của "ld" tra cứu "SHIFT4", khoảng cách dịch chuyển là "0". Điều đĩ cĩ nghĩa là cĩ thể cĩ 1 mẫu phù hợp ở đây. Tra bảng "HASH4" với hash(ld), lấy các mục của danh sách liên kết, HASH4[hash(ld)]. Tính tốn

giá trị băm của tiền tố bên trong cửa sổđối sánh hiện tại, hash(mi). Xem xét tồn

bộ danh sách liên kết, tính tốn giá trị băm các tiền tố của mỗi mẫu trong danh sách, so sánh giá trị với hash(mi), nếu chúng bằng nhau, cĩ nhiều mẫu phù hợp hơn nữa. Hoặc nếu khơng, tiếp tục cho đến cuối danh sách. Trong ví dụ này, mẫu "mild" là mẫu phù hợp. Dịch chuyển cửa sổ bên phải "1" ký tự.

te ea … up pe yp ti il ll tr ri

1 0 2 2 1 0 1 0 2 1 3

(a) SHIFT 3 (b) SHIFT 4

Hình 2: bảng SHIFT null

hash(mi) micky mill null

null

hash(to) told null

null

The mild teacher always told her students to obey the rules of school The mild teacher always told her students to obey the rules of school The mild teacher always told her students to obey the rules of school The mild teacher always told her students to obey the rules of school The mild teacher always told her students to obey the rules of school

Tương tự như vậy, mẫu "told" cũng là 1 mẫu phù hợp. Khi cửa sổ đối sánh đi đến "scho", khoảng cách dịch chuyển là "3", thì cửa sổ đối sánh đã đến

đoạn cuối cùng của văn bản, kết thúc việc tìm kiếm. (2) Tìm kiếm "PS3"

Kích thước của cửa sổđối sánh là "3" và cửa sổđối sánh nằm ởđầu văn bản.

The mild teacher always told her student to obey the rules of school The mild teacher always told her student to obey the rules of school

Tương tự như vậy, tra bảng "SHIFT3", dịch chuyển cửa sổ đối sánh bên phải, bây giờ nĩ nằm ở "tea". Tính tốn giá trị băm của các ký tự bên trong cửa sổ đối sánh, ta nhận được hash(tea). Tra bảng "HASH3" và

"HASH3[hash(tea)]" là khơng null. Cĩ nghĩa là cĩ mẫu phù hợp. Dịch chuyển cửa sổ bên phải "1" ký tự và tiếp tục tìm kiếm cho đến khi kết thúc văn bản.

(3) Tìm kiếm "PS2"

Tìm kiếm văn bản từđầu. Kích thước của cửa sổđối sánh là "2". Khoảng cách dịch chuyển luơn là "1". Tính tốn giá trị băm của các ký tự văn bản bên trong cửa sổđối sánh và tra bảng "HASH2". Nếu giá trị bảng khơng phải là null, ta tìm thấy mẫu phù hợp. Tiếp tục tìm kiếm cho đến khi kết thúc văn bản.

(4) Tìm kiếm "PS1". Tương tự như "PS2".

Thuật tốn WM đồng thời cao HCWM tiến hành chia tất cả các mẫu thành nhiều bộ mẫu khác nhau theo chiều dài của chúng và xử lý các bộ mẫu tương ứng, cĩ tác động tích cực đến hiệu suất mẫu ngắn. Ngồi ra, cấu trúc dữ

liệu độc lập được sử dụng cho các bộ mẫu khác nhau tạo ra sự tương tranh cao, tăng cường tốc độ sánh mẫu của HCWM rất nhiều. Baojun Zhang và cộng sựđã chứng tỏ bằng thử nghiệm rằng HCWM cho hiệu suất cao hơn nhiều so với WM

2.4. Thut tốn WM s dng bng tin t

Đồng thời với thuật tốn HCWM, Baojun Zhang và cộng sự, 2009 [ZCP09] đã đề xuất thêm một phiên bản cải tiến thuật tốn WM dựa trên cơ chế

sử dụng bảng lọc mẫu tiền tốđể tăng tốc độ hoạt động của thuật tốn; phiên bản này được gọi là thuật tốn WM sử dụng bảng tiền tố (Address Filtering Based WM: AFWM).

2.4.1. Ci tiến ca thut tốn

Trong WM, khi danh sách liên kết được tìm thấy qua bảng HASH, các con trỏ địa chỉ của mẫu trong danh sách liên kết phải thỏa mãn

HASH[hash(sbc)] p<HASH[hash(sbc) +1].

Cải tiến trong thuật tốn AFWM là ở chỗ sử dụng giá trị hash của tiền tố

và một danh sách liên kết tiền tốđể tra tìm trong bảng PREFIX của WM. Trong danh sách liên kết tiền tố, tất cả các mẫu cĩ cùng tiền tố sẽ được sắp xếp tăng dần theo con trỏđịa chỉ của mẫu. Vì vậy, chỉ cần so sánh những mẫu cĩ con trỏ địa chỉ xác định trong phạm vi [HASH[hash(sbc), HASH[hash(sbc)+1]. Khi các

mẫu trong danh sách liên kết tiền tốđược sắp xếp tăng dần theo địa chỉ con trỏ, thì khi địa chỉ con trỏ ≥ HASH[hash(sbc) +1], quá trình tìm kiếm được hồn thành ngay lập tức.

Cải tiến này cĩ hai lợi thế. Đầu tiên, khơng cần phải tính tốn giá trị băm của các tiền tố cho các mẫu trong danh sách liên kết hậu tố. Thứ hai, khơng cần phải xem xét tồn bộ danh sách liên kết tiền tố.

2.4.2. Giai đon tin x lý và tìm mu trong AFWM

AFWM cĩ hai giai đoạn, tiền xử lý và tìm kiếm mẫu.

a) Quá trình tin x

Giai đoạn tiền xử lý bao gồm các cơng đoạn sau. (1) Thiết lập bảng HASH.

(2) Thiết lập bảng SHIFT.

(3) Thiết lập bảng PREFIX. Các mẫu trong danh sách liên kết được sắp xếp tăng dần theo con trỏđịa chỉ .

b) Quá trình tìm mu

Giả sử kích thước của cửa sổđối sánh là "m", độ dài của khối ký tự là "B = 2".

(1) Xác định vị trí cửa sổ so sánh ở đầu văn bản "T". Trỏ con trỏ "Tp" vào hậu tố của cửa sổđối sánh.

(3) Tính tốn giá trị băm "sh" các hậu tố của các ký tự văn bản bên trong cửa sổđối sánh và tra bảng "SHIFT", nếu "SHIFT[sh]>0", Tp= Tp + SHIFT[sh],

quay trở lại bước (2). Nếu khơng, chuyển tới bước (4) .

(4) Tra bảng “HASH” với giá trị băm “sh”, tìm danh sách liên kết các mẫu cĩ cùng hậu tố lại với nhau. Các con trỏ địa chỉ của những mẫu này thỏa mãn

điều kiện HASH[sh] p< HASH[sh+1].

(5) Tính tốn giá trị băm“ph” các tiền tố của các ký tự văn bản bên trong cửa sổ so sánh và tra bảng “PREFIX”, tìm danh sách liên kết tiền tố, bắt đầu xem xét từ đầu danh sách, nếu con trỏ địa chỉ của mẫu đặt trong phạm vi

([HASH[sh],HASH[sh+1]), thì dừng lại, hoặc nếu khơng, chuyển đến con trỏ kế

tiếp, tiếp tục như vậy cho đến khi con trỏ ≥ HASH[sh +1]. Trong quá trình sánh mẫu, nếu xuất hiện các mẫu phù hợp, ghi lại kết quả. Tp=Tp+1, chuyển tới bước (2).

2.4.3.Ví d

Giả sử kích thước của khối ký tự là B = 2 và ta cĩ cặp dữ liệu như sau: Văn bản " T" = " We still use this machine though it is obsolete. " Mẫu "P " = {“still”, “student”, “trill”, “stupe”}

a) Tin x

(1) Xác định kích thước của cửa sổđối sánh là "m = 5 " . (2) Thiết lập bảng HASH, xem hình 4.

(3) Thiết lập bảng SHIFT, xem hình 5. (4) Thiết lập bảng PREFIX, xem hình 6.

… hash(dd) P hash(de) P student P+1 hash(df) P+1 P student … P+1 still hash(lk) P+1

P+2 trill hash(ll) P+1 still P+2 trill P+3

P+3 stupe hash(lm) P+3

P+4 stype …

hash(pd) P+3

hash(pe) P+3 stupe P+4 stype P+5

hash(pf) P+5 (a) cấu trúc lưu trữ mẫu (b) HASH Hình 4: Cấu trúc lưu trữ mẫu và bảng HASH st tu ud de up pe yp ti il ll tr ri … 3 2 1 0 1 0 1 2 1 0 3 2 4 Hình 5: bảng SHIFT null

hash(st) P student P+1 still P+3 stupe P+4 stype null null

hash(tr) P+2 trill null null

b) Tìm mu

Đầu tiên, cửa sổ so sánh nằm ởđầu văn bản.

We still use this machine though it is obsolete.

Ký tự hậu tố bên trong cửa sổđối sánh là "st". Tra bảng "SHIFT", khoảng cách dịch chuyển là "3".

We still use this machine though it is obsolete.

Sử dụng giá trị băm "ll" tra bảng "SHIFT", khoảng cách dịch chuyển là "0". Điều đĩ cĩ nghĩa là vị trí hiện tại của cửa sổ đối sánh là một cổng vào so sánh. Tra bảng "HASH" với hash(ll), ta nhận được danh sách liên kết hậu tố, HASH[hash(ll)] (hình 4). Dãy con trỏ địa chỉ của danh sách liên kết hậu tố là [P+1, P+3]. Sử dụng các giá trị băm của tiền tố trong cửa sổ so sánh hiện tại “st”

để tra bảng "PREFIX", lấy danh sách liên kết tiền tố, PREFIX[hash(st)] (hình

6). Bây giờ ta sẽ so sánh các con trỏđịa chỉ .

Trong danh sách liên kết tiền tố, mẫu đầu tiên là "student". Con trỏđịa chỉ

của nĩ là "P". Bởi vì "P" khơng nằm trong phạm vi [P+1, P+3], khơng cần phải so sánh. Tiếp tục chuyển tới mẫu kế tiếp. Mẫu thứ hai là "still". Con trỏ địa chỉ

của nĩ là "P +1" nằm trong phạm vi địa chỉ [P+1, P+3], quá trình sánh mẫu diễn ra và ta tìm thấy mẫu phù hợp. Tiếp tục với mẫu tiếp theo. Mẫu thứ ba "stupe".

Con trỏ địa chỉ của nĩ là "P+3" nằm ngồi phạm vi [P+1, P+3], kết thúc tìm kiếm.

Ta dịch chuyển cửa sổ so sánh, và tiếp tục các thao tác như trên cho đến khi kết thúc văn bản.

Từ ví dụ trên, ta thấy rằng khi tìm kiếm các danh sách liên kết tiền tố, AFWM tránh việc tính tốn băm và xem xét tồn bộ danh sách.

Theo Baojun Zhang và cộng sự, AFWM khắc phục một số hạn chế cịn tồn tại trong WM, chẳng hạn như thơng tin dư thừa và nhiều phép tính tốn, tránh việc xuyên qua danh sách, đề xuất lọc địa chỉ dựa trên thuật tốn WM. Bằng phân tích hiệu suất thơng qua kết quả thử nghiệm, các tác giả đã minh chứng rằng AFWM tốt hơn so với WM .

CHƯƠNG 3: THC NGHIM

3.1. Gii thiu v agrep

AGREP là một cơng cụ mạnh để nhanh chĩng tìm kiếm một tập tin hoặc nhiều tập tin cho một chuỗi hoặc biểu thức chính quy, với khả năng kết hợp gần

đúng và cĩ thể xác định hồ sơ người dùng. Agrep được Udi Manber và Sun Wu phát triển trong giai đoạn 1989-1991 [WM92] và sau đĩ được nhiều người khác cùng tham gia nâng cấp. AGREP tương tự như egrep (hoc grep hoc fgrep),

nhưng nĩ tổng quát hơn và thường nhanh hơn. Nĩ cũng hỗ trợ nhiều loại truy vấn, bộ mẫu, và biểu thức thơng thường nĩi chung.

Như đã được giới thiệu, tìm kiếm một mẫu trong văn bản là một hoạt

động phổ biến trong các ứng dụng từ soạn thảo văn bản đến tìm kiếm cơ sở dữ

liệu cho các ứng dụng sinh học phân tử. Trong nhiều trường hợp mẫu cĩ thể

xuất hiện hoặc khơng xuất hiện trong văn bản. Sai sĩt trong văn bản hoặc trong truy vấn cĩ thể do lỗi chính tả hoặc từ những thực nghiệm sai lầm (ví dụ như khi văn bản là một chuỗi DNA). Việc sử dụng sánh mẫu xấp xỉ hạn chếđược một số

lỗi. Hầu hết các trình soạn thảo văn bản và các chương trình tìm kiếm khơng hỗ

trợ tìm kiếm với các lỗi do sự phức tạp liên quan đến việc thực hiện nĩ. Agrep dựa trên thuật tốn hiệu quả và linh hoạt là sánh mẫu xấp xỉ.

So mẫu xấp xỉ cho phép tìm kiếm những thơng tin “gần giống”, trong một số trường hợp các mẫu hoặc văn bản khơng chính xác. Ta khơng thể nhớ

chính tả chính xác của một tên mà ta đang tìm kiếm, tên cĩ thể bị sai chính tả

trong văn bản, văn bản cĩ thể tương ứng với một chuỗi các số nhất định và ta khơng cĩ một mẫu chính xác, các văn bản cĩ thể là một chuỗi phân tử DNA và ta đang tìm kiếm các mẫu gần đúng ...Vấn đề tìm kiếm xấp xỉđặt ra trong nhiều

ứng dụng khoa học kĩ thuật như: nhận dạng chữ viết, nhận dạng ảnh, đồ thị, so sánh xấp xỉ trong các xâu nén cĩ độ dài khơng cố định, xác định cấu trúc con chung 3 chiều trong phân tử dược phẩm và protein, khám phá sự biến đổi trong chuỗi ADN,....và đặc biệt phổ biến trong các hệ thống trích rút văn bản.

Agrep khơng chỉ hỗ trợ một số lớn các tùy chọn, mà cịn rất hiệu quả. Ví dụ, việc tìm kiếm tất cả các lần xuất hiện của Homogenos cho phép hai lỗi trong một 1 MB văn bản mất khoảng 0,2 giây trên một SUN SparcStation H. Sánh mẫu càng chính xác thì thời gian thực hiện càng nhanh.

3.2. Các thut tốn s dng trong agrep

Agrep sử dụng một số thuật tốn khác nhau để tối ưu hĩa hiệu suất cho các trường hợp khác nhau. Đối với truy vấn đơn giản chính xác ta sử dụng một biến thể của thuật tốn Boyer - Moore. Đối với các mẫu đơn giản với các lỗi, chúng tơi sử dụng một chương trình phân vùng, với chương trình Boyer -Moore.

Đối với các mẫu phức tạp hơn, ví dụ các mẫu với chi phí khơng đồng đều chỉnh sửa khác nhau, đa mẫu, biểu thức thơng thường tùy ý, ta sử dụng thuật tốn mới hồn tồn.

3.2.1. Thut tốn WM trong AGREP

Trong phần mềm Agrep, ưu điểm chính của chương trình này là các thuật tốn sánh mẫu chính xác cĩ thểđược điều chỉnh để hỗ trợ nĩ. Ta minh họa cho ý

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Một họ thuật toán sánh mẫu Wu-Manber và thực nghiệm (Trang 33)

Tải bản đầy đủ (PDF)

(55 trang)