Chương trình ứng dụng asmf-master

Một phần của tài liệu Nghiên cứu phương pháp so sánh xâu xấp xỉ và ứng dụng (Trang 43 - 48)

CHƯƠNG 3: THỰC NGHIỆM VÀ ỨNG DỤNG

3.1 Chương trình ứng dụng asmf-master

Chương trình ứng dụng được phát triển trên ngôn ngữ C++ và cài đặt thuật toán đối sánh xâu vòng tròn gần đúng. Đây là một chương trình mã nguồn mở với nguồn download tại địa chỉ: http://www.inf.kcl.ac.uk/research/project/asmf/ hoặc https://github.com/solonas13/asmf

Với giải thuật được cài đặt, chương trình cho phép đối sánh chuỗi với k ký tự khác biệt. Các hàm sau khi đối sánh sẽ trả về các thông tin cho biết thông tin về kết quả của chuỗi đối sánh bao gồm thời gian đối sánh, số lần xuất hiện của chuỗi p trong chuỗi t với các vị trí xuất hiện. Câu lệnh sau cho phép thực thi đối sánh chuỗi theo hàm asmf: "$ ./example text.txt key.txt 0".

Với câu lệnh trên hàm đƣợc gọi sẽ thực hiện hàm example với đối truyền vào là chuỗi văn bản T nằm trong file văn bản với tên "text.txt", chuỗi đối sánh k là văn bản nằm trong file "key.txt". Số 0 thể hiện k-mismatch (k khác biệt) là 0. Với đối 0 thì thể hiện đối sánh trùng khớp.

Kết quả thể hiện nhƣ sau:

Lệnh: ./example Text.txt key.txt 0

văn bản key.txt: Hoang ; văn bản text.txt: Hoang kết quả: The occurrences vector is resized to 1.

Elapsed time of acsmf_simple_ms: 0.000244 Occ: 1 postistion 0

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

3.1.2 Các hàm asmf-master

Các hàm acsmf thực hiện đối sánh chuỗi xấp xỉ giữa chuỗi x và chuỗi t với k- mismatch.

Dưới đây là các hàm đã được xây dựng. Tác giả cung cấp các khuôn mẫu của hàm thực hiện đối sánh xấp xỉ:

- unsigned int acsmf ( unsigned char * x, unsigned char * t, unsigned int k, unsigned int ** Occ, unsigned int * num_of_occ );

- unsigned int acsmf_simple ( unsigned char * x, unsigned char * t, unsigned int k, unsigned int ** Occ, unsigned int * num_of_occ );

- unsigned int acsmf_simple_ms ( unsigned char * x, unsigned char * t, unsigned int k, unsigned int ** Occ, unsigned int * num_of_occ, unsigned int block_size );

Tất cả các hàm đều đƣa ra cách thực hiện nhƣ sau:

- Bước 1: Tạo file Key.txt chứa chuỗi P, và file Text.txt Chứa chuỗi T Với đầu vào gồm các đối:

+ File đối sánh có tên text.txt: Chứa chuỗi T

+ File đƣợc đối sánh: key.txt: Chứa chuỗi P đối sánh với chuỗi T trong file text.txt

+ Số k: Chỉ ra k ký tự khác nhau giữa chuỗi P và chuỗi T. Chỉ ra đƣợc nếu P xuất hiện trong T với k ký tự khác nhau chuỗi con của T.

- Bước 2: Lựa chọn k-mismatch

- Bước 3: Thực thi lệnh gọi hàm ascmf_simple Trong terminal: ./acmsf_simple text.txt key.txt k

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

- Bước 4: đọc kết quả trả về file out.txt Đầu ra gồm các thông tin sau:

+ Dòng đầu tiên: Chỉ ra thời gian thực hiện thuật toán

+ Dòng thứ 2: Số lần xuất hiện P trong T với k ký tự khác nhau + Dòng thứ 3 trở đi: Chỉ ra vị trí xuất hiện của P trong T với k ký tự khác nhau ở trên.

Hàm thuật toán sẽ đọc nhƣ sau:

- Đọc từ T từ giao diện và đọc các từ trong từ điển (file chứa các từ) W.

- Đối sánh T với từ thứ i Wi của W.

- Ghi nhận Wi nếu Wi xấp xỉ T.

- Hiển thị các từ Wi xấp xỉ với T ra giao diện người dùng.

3.1.3 Thiết lập môi trường cài đặt và chạy ứng dụng

Để chạy đƣợc các hàm asmf-master trên hệ thống tác giả tiến hành cài đặt và cấu hình môi trường hoạt động cho hệ thống như sau:

- Môi trường hệ điều hành: UBUNTU

- Môi trường thực thi và biên dịch mã C++; G++ và các hàm thư viện có liên quan.

Để thực hiện được hàm đối sánh tác giả đã thực hiện các bước sau:

- Bước 1: Tải bộ công cụ asmf-master từ hệ thống website

- Bước 2: Giải nén thực hiện giải nén ra thư mục ở vị trí:

"/home/asmf_master".

- Bước 3: Tiến hành cài đặt các hàm thư viện cần thiết để chạy ứng dụng.

Trong terminal của ứng dụng gõ lệnh: "$ ./pre-install.sh". Hệ thống tiến hành cài các thƣ viện cần thiết cho phép ứng dụng có thể chạy đƣợc.

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

- Bước 4: Biên dịch mã C++ thành file chạy được trên UBUNTU. Sau khi bước Pre-Install được tiến hành xong. Để biên dịch thư viện C++ thành một ứng dụng có thể chạy đƣợc trên UBUNTU cần thực thi lệnh "$ make". Hệ thống thực hiện biên dịch.

- Bước 5: Chạy thử nghiệm. Mọi thử nghiệm của ứng dụng được chạy theo mẫu câu lệnh sau: "./example pattern1 pattern2 k".

+) Trong đó:

+ example Thể hiện hàm asmf-master

+ pattern1: Thể hiện đường dẫn file văn bản chứa nội dung chuỗi văn bản T + pattern2: Thể hiện đường dẫn file văn bản chứa nội dung văn bản đối sánh với TP.

- Đối k: Thể hiện đối sánh xấp xỉ với k-mismatches (k không đối xứng).

+) Kết quả trả về của hàm example bao gồm các dòng:

+ Thể hiện vector sử dụng trong vùng nhớ tạm.

+ Thể hiện thời gian thực hiện đối sánh.

+ Thể hiện Occ: Số kết quả xuất hiện của chuỗi P trong chuỗi T.

- Position thể hiện vị trí xuất hiện của P trong T.

3.1.4 Thực nghiệm với chương trình asmf-master

Một số kết quả khi tác giả tiến hành thực nghiệm vơí các chuỗi TP với hàm example. Bằng cách thay đổi nội dung của các file "text.txt" và "key.txt", sau đó thực hiện gọi hàm exmple.

- Thực nghiệm 01: Thực hiện đối sánh chuỗi "abebeda" với chuỗi "abbda"

Lệnh: ./example text.txt key.txt 1 văn bản key.txt: abbda

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

văn bản text.txt: abebeda k: 1

kết quả:

Elapsed time of acsmf_simple_ms: 0.000201 Occ: 0

- Thực nghiệm 02: Thực hiện đối sánh chuỗi "baabbeceabadef" với chuỗi

"ab"

Lệnh: ./example text.txt key.txt 0 văn bản key.txt: ab

văn bản text.txt: baabbeceabadef K= 0

kết quả:

The occurrences vector is resized to 5.

Elapsed time of acsmf_simple_ms: 0.000250 Occ: 5

Position 0 1 3 4 9 10

- Thực nghiệm 03: Với từ khóa "abc" đối sánh với

"abaabbeceabadefabcabced"

Lệnh: ./example text.txt key.txt 1 văn bản key.txt: abc

văn bản text.txt: abaabbeceabadefabcabced k =1

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

kết quả:

The occurrences vector is resized to 12.

Elapsed time of acsmf_simple_ms: 0.000262 Occ: 12

Postistion 0 1 2 3 8 9 14 15 16 17 18 19

Một phần của tài liệu Nghiên cứu phương pháp so sánh xâu xấp xỉ và ứng dụng (Trang 43 - 48)

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

(61 trang)