Các thành phần chính trong bộ công cụ SMART

Một phần của tài liệu (LUẬN văn THẠC sĩ) một họ thuật toán đối sánh mẫu chính xác nhanh SSABS TVSBS FQS và thực nghiệm (Trang 41 - 51)

CHƯƠNG 1 GIỚI THIỆU CHUNG VỀ THUẬT TOÁN SÁNH MẪU

3.2. Bộ công cụ Smart

3.2.1. Các thành phần chính trong bộ công cụ SMART

Từ năm 1970 đến nay, đã có trên 80 thuật toán sánh xâu được đề xuất, chủ yếu là trong khoảng 10 năm gần đây. Công cụ SMART cung cấp một tập các thuật toán sánh xâu thông minh dựa trên ngôn ngữ lập trình C, giúp người tìm kiếm có thể biểu diễn các kết quả thử nghiệm và so sánh chúng trên thực nghiệm. SMART cũng cung cấp một cơ sở thực hành chuẩn cho việc thử nghiệm các thuật toán sánh xâu và chia sẻ kết quả với cộng đồng.

Bảng 3.1 giới thiệu danh sách các thuật toán sánh xâu từ năm 1970 được cài đặt trong công cụ SMART, mỗi thuật toán đều được bổ sung phiên bản đầy đủ trong đặt trong công cụ SMART, mỗi thuật toán đều được bổ sung phiên bản đầy đủ trong SMART. Để thử nghiệm phiên bản đã được thi hành trong SMART ta chỉ cần lựa chọn tên phiên bản. Ví dụ, có thể sử dụng lệnh ./select bf để lựa chọn thuật toán Brute Force. Từ đường link tên thuật toán, ta có thể tìm thấy trang thông tin chi tiết và sơ đồ dẫn đến thư mục đó. Từ đường link tên phiên bản, ta có thể tìm thấy trang mã hóa (code) của thuật toán viết trên C.

Bảng 3.1.Danh sách tất cả các thuật toán sánh xâu từ năm 1970 trên SMART

Thuật toán Tên gọi

trong SMART

Năm công bố

Brute Force bf 1990

Deterministic Finite Automaton aut 1990

Morris Pratt mp 1970 Knuth Morris-Pratt kmp 1977 Boyer Moore bm 1977 Horspool hor 1980 Apostolico Giancarlo ag 1986 Karp Rabin kr 1987 Zhu Takaoka zt 1987 Optimal Mismatch om 1990 Maximal Shift ms 1990

Quick Search qs 1990 Apostolico Crochemore ac 1991

Two Way tw 1991

Tuned Boyer Moore tunedbm 1991

Colussi col 1991

Smith smith 1991

Galil Giancarlo gg 1992

Raita raita 1992

String Matching on Ordered ALphabet smoa 1992

Reverse Factor rf 1992

Shift Or so 1992

Shift And sa 1992

Not So Naive nsn 1993

Simon simon 1993

Turbo Boyer Moore tbm 1994

Reverse Colussi rcol 1994

Turbo Reverse Factor trf 1994 Forward DAWG Matching fdm 1994 Backward DAWG Matching bdm 1994

Skip Search skip 1998

KMP Skip Search kmpskip 1998 Backward Nondeterministic DAWG Matching bndml 1998

Berry Ravindran br 1999

Backward Oracle Matching bom 1999 Double Forward DAWG Matching dfdm 2000 Ahmed Kaykobad Chowdhury akc 2003

Fast Search fs 2003

Simplified Backward Nondeterministic DAWG

Matching sbndm

2003

Two-Way Nondeterministic DAWG Matching tndm 2003 Backward Nondeterministic DAWG Matching for

long patterns lbndm

2003

Shift Vector Matching svm0 2003

Forward Fast Search ffs 2004

Backward Fast Search, Fast Boyer Moore bfs 2004

Tailed Substring ts 2004

SSABS ssabs 2004

Wide Window ww 2005

Linear DAWG Matching ldm 2005 Backward Nondeterministic DAWG Matching

with loop unrolling bndmq2

2005

Backward Nondeterministic DAWG Matching

with Horspool Shift sbndm-bmh

2005

Horspool with BNDM test bmh-sbndm 2005 Forward Nondeterministic DAWG Matching fndm 2005 Bitparallel Wide Window bww 2005 Fast Average Optimal Shift Or faoso2 2005 Average Optimal Shift Or aoso2 2005

TVSBS tvsbs 2006

Boyer Moore Horspoolusing Probabilities pbmh 2006 Improved Linear DAWG Matching ildm1 2006 Improved Linear DAWG Matching 2 ildm2 2006 Franek Jennings Smyth fjs 2007 Wu Manber for Single Pattern Matching hash3 2007

Two Sliding Window tsw 2008

Bit Parallel Length Invariant Matcher blim 2008 Genomic Rapid Algofor String Pattern Matching graspm 2009

SSEF ssef 2009

Extended Backward Oracle Matching ebom 2009 Forward Backward Oracle Matching fbom 2009 Simplified Extended Backward Oracle Matching sebom 2009 Simplified Forward Backward Oracle Matching sfbom 2009 Succint Backward DAWG Matching sbdm 2009

Forward Simplified Backward Nondeterministic

DAWG Matching fsbndm

2009

Backward Nondeterministic DAWG Matching

with q-grams bndmq2

2009

Simplified Backward Nondeterministic DAWG

Matching with q-grams sbndmq2

2009

Shift Or with q-grams ufndmq2 2009 Small Alphabet Bit Parallel sabp 2009 Bit Parallel2 Wide Window bp2ww 2010 Bit Parallel Wide Window2 bpww2 2010 Factorized Backward Nondeterministic DAWG

Matching kbndm

2010

Factorized Shift And ksa 2010 BNDM with Extended Shift bxs 2010 Forward Simplified BNDM using q-grams and s-

forward characters fsbndm20

2011

Crochemore-Perrin algorithm using SSE

instructions ssecp

2011

Backward SNR DAWG Matching bsdm 2012 Exact Packed String Matching algorithm epsm 2013

Theo Thierry Lecroq và Simone Faro, hai thuật toán Brute Force và Deterministic Finite Automaton được Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein giới thiệu.

3.2.1.2. Bộ các kho ngữ liệu thử nghiệm

Công cụ SMART cũng cung cấp một ngữ liệu 12 văn bản mà trên đó các thuật toán đối sánh xâu có thể được kiểm tra. Các văn bản trong dữ liệu có rất nhiều

loại khác nhau, bao gồm các văn bản ngôn ngữ tự nhiên, trình tự gene, trình tự protein và văn bản ngẫu nhiên với sự phân bố đồng đều các kí tự.

Công cụ SMART cũng cung cấp một ngữ liệu 12 văn bản mà trên đó các thuật toán đối sánh xâu có thể được kiểm tra. Các văn bản trong dữ liệu có rất nhiều loại khác nhau, bao gồm các văn bản ngôn ngữ tự nhiên, trình tự gene, trình tự protein và văn bản ngẫu nhiên với sự phân bố đồng đều các kí tự.

Bảng 3.2. Danh sách bộ các kho ngữ liệu thử nghiệm

Tên bộ dữ liệu Mô tả

englishTexts

một văn bản tiếng Anh (6,1 MB) chứa phiên bản The King James của Kinh thánh (3,9 MB) và cuốn sách về thế giới thực của CIA (2,4 MB).

italianTexts

một văn bản tiếng Ý (5 MB) chứa cuốn sách La Gerusalemme Liberata (690,1 KB), Il fu Mattia Pascal (447,3 KB), La divina commedia (551,9 KB) I promessi sposi (1,3 MB), Orlando furioso (1,5 MB), Ultime lettere di Jacopo Ortis (281,2 kB) và Il canzoniere (296,3 kB).

frenchTexts

một văn bản tiếng Pháp (6,6 MB) chứa các tác phẩm của Victor Hugo như: Notre-Dame de Paris (1,1 MB), L'homme qui rit (1,2 MB), Les misèrables Tome I (713 KB), Tome II (631 KB), Tome III (557 KB), Tome IV (791 KB) và Tome V (676 KB).

chineseTexts

một văn bản tiếng Trung (5,7 MB) chứa các tác phẩm: Yue Wei Cao Tang Bi Ji (1,2 MB), Zhong Guo Shi Da Jin Shu Zhi Guo Shai Tian Xiang (786 KB), Journey to the West (2,3 MB), Huan Xi Yuan Jia (745 KB) và một số tiểu thuyết lịch sử Trung Quốc (688 KB)

midimusic

một xâu dữ liệu đa phương tiện MIDI (2,7 MB) chứa 206 tệp MIDI về Johann Sebastian Bach work (1685-1750) có kích thước dữ liệu khoảng 4 KB đến 205 KB.

genome một xâu dữ liệu gen (4,4 MB) chứa các bộ gen hoàn chỉnh của vi khuẩn E. Coli (4,4 MB).

protein một xâu dữ liệu protein (3,1 MB) chứa một chuỗi protein trong bộ chuỗi gen người (3.1 MB).

rand2, rand4, rand8, rand16, rand32, rand64, rand128,

rand256

Các văn bản ngẫu nhiên có độ dài 5 MB trong các bảng chữ cái tương ứng có số lượng ký tự là 2, 4, 8, 16, 32, 64, 128, 256.

3.2.1.3. Tài liệu hướng dẫn về SMART

Tài liệu hướng dẫn về SMART gồm hướng dẫn phân bổ bộ nhớ cho SMART trong các hệ điều hành MAC, WINDOWS và Linux, cài đặt và sử dụng công cụ SMART. Phần dưới đây của luận văn giới thiệu về cài đặt công cụ SMART.

Cài đặt công cụ SMART:

• Tải về các gói nhị phân chính xác từ các trang download, tương ứng với hệ thống của máy. Đây là một tài liệu nén có chứa mã nhị phân và dạng văn bản.

• Sao chép lưu trữ và giải nén trong một thư mục địa phương.

Điều này sẽ tạo thư mục mới, có tên SMART, và có chứa các tập tin và thư mục sau đây:

docs/ là thư mục chứa các tập tin tài liệu;

source/ là thư mục chứa các mã nhị phân của tất cả các thuật toán chuỗi kết hợp;

• results/ là thư mục chứa các tập tin với dữ liệu thực nghiệm;

data/ là thư mục chứa ngữ liệu được sử dụng để thử nghiệm các chuỗi kết hợp các thuật toán;

copyright.txt chứa từ chối trách nhiệm về bản quyền; • gpl-3.0.txt chứa giấy phép công cộng chung GNU;

• SMART là chương trình chính được sử dụng để chạy kiểm tra thử nghiệm; • testlà một tiện ích thông minh được sử dụng để kiểm tra tính đúng đắn của thuật toán chuỗi kết hợp;

selectlà một tiện ích thông minh được sử dụng để lựa chọn / bỏ chọn các thuật toán chuỗi kết hợp.

Lựa chọn thuật toán thử nghiệm

Chương trình chọn có thể được sử dụng để lựa chọn hay bỏ chọn các thuật toán cho kết quả thử nghiệm. Viết tên của thuật toán (hay một danh sách các thuật

toán), chỉ sau khi lệnh select, để chọn hoặc bỏ chọn nó. Ví dụ, lệnh $ ./select Bndm fs hash3 sẽ chọn BNDM, thuật toán tìm kiếm Fast-Search và thuật toán HASH3. Các lệnh tiếp theo $ ./select Fs sẽ bỏ chọn các thuật toán tìm kiếm Fast-Search.

Tham số lệnh which thể hiện các thuật toán đã được lựa chọn cho kết quả thử nghiệm. Do đó chạy lệnh $ ./select -which sẽ đưa ra output là:

bndm hash3

Tham số lệnh -Show liệt kê tên của tất cả các thuật toán có thể có trong kết quả thử nghiệm. Hơn nữa sử dụng các tham số lệnh -none bỏ chọn tất cả các thuật toán và -All để chọn tất cả các thuật toán. Ví dụ lệnh $ ./select -none KMP bf bỏ chọn tất cả các thuật toán trước đó và lựa chọn thuật toán Knuth-Morris-Pratt và Brute-Force. Tương tự ta có lệnh $ ./select -all KMP bf sẽ chọn tất cả các thuật toán với các ngoại lệ của Knuth-Morris-Pratt và Brute-Force.

Cuối cùng tham số -h sẽ cho ra một danh sách các trợ giúp.

Cách chạy chương trình kiểm tra thử nghiệm

Lệnh chính SMART (chương trình smart ở thư mục smart.13.02/source/) được sử dụng để chạy kiểm tra thử nghiệm. Cách đơn giản nhất để sử dụng SMART là để chạy một tìm kiếm duy nhất cho một mô hình tùy chỉnh và một văn bản tùy chỉnh. Ta có thể sử dụng các tham số -simple, tiếp theo là các mô hình và các văn bản. Ví dụ lệnh $ ./smart -simplelet sampletext sẽ tìm kiếm văn bản sampletext cho lần xuất hiện của mô hình cho phép. Quan sát thấy kích thước mô hình đầu vào chứa 100 ký tự, trong khi kích thước văn bản chứa 1000 ký tự. Các chế độ - simplekhông ra bản đồ thử nghiệm. Nếu không, ta có thể chọn các dạng đó để tính toán các kết quả thử nghiệm bằng cách sử dụng các tham số -text (tham số này là bắt buộc). Ví dụ lệnh $ ./smart -textenglishTexts sẽ tính toán kết quả thí nghiệm trên englishTexts. Các dữ liệu hay thư mục nằm trong thư mục chính SMART, có chứa tất cả các tập văn bản mà có thể được chọn thông minh. Có thể xem danh sách tất cả các tập văn bản trong SMART. Nếu không, ta có thể chọn các tham số -text all để chạy kiểm tra thử nghiệm cho tất cả các ngữ liệu.

$ ./smart -text all

Ta có thể thiết lập một kích thước giới hạn trên của kích thước văn bản được sử dụng để thử nghiệm các thuật toán chuỗi kết hợp. Theo mặc định kích thước giới hạn trên này được thiết lập để 1MB (1024 bytes). Điều này có nghĩa rằng (ít nhất) 1024 byte đầu tiên của văn bản được chọn sẽ được sử dụng để thử nghiệm. Bạn có thể thay đổi mặc định kích thước trên ràng buộc bằng cách sử dụng các tham số -

tsize, tiếp theo là một số nguyên chỉ ra Mbytes mà sẽ được sử dụng. Ví dụ lệnh $ ./smart -văn Bản englishTexts -tsize 4 sẽ thực hiện các bài kiểm tra trên nhiều nhất 4 MB của corpus englishText.

Các bộ đệm văn bản được lưu trữ trong bộ nhớ chia sẻ, do đó nếu thiết lập các ràng buộc trên một K giá trị của nó là cần thiết để hệ thống của máy cho phép phân bổ ít nhất K MB bộ nhớ chia sẻ.

Theo mặc định cho mỗi tập tin đầu vào, SMART tạo ra bộ 500 mẫu có chiều dài cố định, được triết xuất một cách ngẫu nhiên từ các văn bản (500 bản sao của cùng một khuôn mẫu trong trường hợp chế độ Đơn giản). Chiều dài của mô hình chạy trên các giá trị 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 và 4096. Đối với mỗi tập các mô hình công cụ báo cáo trung bình trong thời gian chạy của 500 mẫu. Mỗi lần chạy được thể hiện trong một số phần nghìn của giây.

Sử dụng các tham số -pset để thay đổi kích thước của tập hợp các mẫu tạo ra bởi công cụ. Ví dụ lệnh $ ./smart -texts Gen -pset 100 sẽ chạy kiểm tra thử nghiệm trên văn bản gen tạo ra bộ 100 mẫu có chiều dài cố định (giá trị mặc định là 500).

Ta có thể sử dụng các tham số Short để thực hiện các bài kiểm tra thử nghiệm trên các mẫu ngắn. Đặc biệt các lệnh $ ./smart -texts Gen -pset 100 Short

thực hiện kiểm tra thử nghiệm bằng cách tạo ra bộ 100 mẫu có chiều dài cố định khác nhau, trên các giá trị 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 và 32.

Nếu muốn hạn chế việc tìm kiếm một mô hình chiều dài nhất định, sử dụng các tham số -plen và xác định một ràng buộc trên và một ràng buộc thấp hơn cho độ dài của mô hình. Ví dụ lệnh $ ./smart -texts Gen -pset 100 -plen 16 128 thực hiện kiểm tra thử nghiệm trên độ dài các giá trị 16, 32, 64, 128. Nếu muốn thử nghiệm các thuật toán cho một chiều dài duy nhất của mô hình (ví dụ 128) sử dụng lệnh $ ./smart -texts Gen -pset 100 -plen 128 128. Trong việc thực hiện các bài kiểm tra các công cụ in ra các lần chạy của mỗi thuật toán (đây là thiết lập mặc định). Sử dụng các -occ tham số để in ra cũng là số lần xuất hiện tìm thấy bởi các thuật toán trong thời gian chạy. Kể từ khi mẫu được chiết xuất một cách ngẫu nhiên từ các văn bản, số lần xuất hiện ít nhất 1.

Cuối cùng các tham số -h sẽ tạo ra một danh sách trợ giúp.

Các công ty liên kết công cụ SMART cho bất kỳ thí nghiệm có một mã số và chữ độc đáo trên 13 ký tự, bắt đầu với EXP, tiếp theo là 10 con số. Việc thực hiện các lệnh sau đây:

$ ./smart -text gen -pset 100 -occ

Một phần của tài liệu (LUẬN văn THẠC sĩ) một họ thuật toán đối sánh mẫu chính xác nhanh SSABS TVSBS FQS và thực nghiệm (Trang 41 - 51)

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

(74 trang)