2.3. Tóm tắt chƣơng
Trong chƣơng 2, luận văn nghiên cứu về các thuật toán tìm kiếm chuỗi thông dụng thƣờng dùng. Mỗi thuật toán có sự khác nhau về tiền xử lý từ đó có các phƣơng pháp khác nhau về bƣớc dịch chuyển của pattern trong văn bản.
Thuật toán Brute – Fore và Rabin – Karp có độ dịch chuyển pattern trong văn bản là giống nhau. Tuy nhiên, thuật toán Rabin – Karp sử dụng hàm băm (hash) để chuyển thuật toán về so sánh mảng số nguyên tránh đƣợc việc so sánh những chuỗi văn bản dài.
Thuật toán KMP và Boyer – Moore dựa vào chuỗi mẫu để quyết định bƣớc dịch chuyển tiếp theo của chuỗi mẫu trên văn bản. Tuy nhiên, thuật toán Boyer – Moore phức tạp hơn vì sử dụng 2 hàm good-suffix và bad-character shift đƣợc tính toán trƣớc để dịch chuyển chuỗi mẫu trên văn bản
Chƣơng 3 luận văn sẽ cài đặt thử nghiệm các thuật toán để đánh giá, so sánh thời gian chạy của từng thuật toán và cài đặt thử nghiệm ứng dụng.
CHƢƠNG 3. KẾT QUẢ THỰC NGHIỆM VÀ ỨNG DỤNG 3.1. Thực nghiệm
- Mục đích của thực nghiệm: Đánh giá và so sánh hiệu năng thời gian chạy của 4 thuật toán tìm kiếm chuỗi.
- Thời gian thực hiện giải thuật phụ thuộc:
Kích thƣớc dữ liệu: dữ liệu càng lớn thì thời gian xử lý càng chậm. Nếu gọi n là kích thƣớc dữ liệu thì thời gian thực hiện của một giải thuật có thể biểu diễn là một hàm của n: T(n)
Phần cứng máy tính
Ngôn ngữ, chƣơng trình dịch ngôn ngữ
Chính vì vậy trong phần thực nghiệm của chƣơng 3 đã sử dụng 2 tập CSDL là từ điển có kích thƣớc mục từ ngắn và từ điển có kích thƣớc mục từ dài để đánh giá độ phức tạp của các thuật toán bằng ngôn ngữ C++ trên nền hệ điều hành Windows và hệ điều hành Linux. Sau đây tôi xin đƣợc trình bày cụ thể hơn về môi trƣờng cũng nhƣ cách thức thực hiện thực nghiệm
3.1.1. Môi trƣờng thực nghiệm 3.1.1.1. Cấu hình phần cứng: 3.1.1.1. Cấu hình phần cứng:
STT Tên Thông số
1 CPU Intel(R) Core(TM) i7-3632 QM CPU @ 2.20GHz
2 RAM 8.00 GB
3 Hệ điều hành Win 10