1. Trang chủ
  2. » Tất cả

THUẬT TOÁN NÂNG CAO

20 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 1,01 MB

Nội dung

Thuật toán BruteForce Thuật toán Boyer Moore Đối sánh chuỗi Ứng dụng của đối sánh chuỗi: Thuật toán tìm kiếm chuỗi BoyerMoore được dựa trên 2 cách tiếp cận heuristics: Thực hiện việc so sánh từ phải sang trái. Giai đoan tiền xử lí có độ phức tạp : O(m) Giai đoạn tìm kiếm có độ phức tạp: O(m.n) Độ phức tạp O(n ⁄m) trong trừờng hợp tốt nhất.

THUẬT TỐN NÂNG CAO Giới thiệu Thuật tốn Brute-Force Thuật toán Boyer Moore Demo  Đối sánh chuỗi  Từ khóa: String matching, String searching, Pattern searching, Text Searching  Một thuật tốn quan trọng có ứng dụng rộng rãi  Ứng dụng đối sánh chuỗi:      Máy tìm kiếm Trình soạn thảo văn Trình duyệt web Sinh học phân tử (Tìm mẫu dãy DNA)  Mục tiêu:    Kiểm tra tồn chuỗi ký tự (mẫu, pattern) chuỗi ký tự có kích thước lớn nhiều (văn bản, text) Nếu tồn tại, trả (hoặc nhiều) vị trí xuất Quy ước:     Mẫu cần tìm: P (chiều dài m) Văn bản: T (chiều dài n) P T có tập hữu hạn ký tự m≤n Thuật Toán Brute Force   Kiểm tra tất vị trí chuỗi từ vị trí đến vị trí n-m Sau lần thử, mẫu dịch sang phải ký tự kiểm tra hết chuỗi Ví dụ  Tìm kiếm P = aab T = acaabc Void BF (char *x, int m, char *y, int n) { int i , j ; /* Searching */ for ( j=0 ; j = m) OUTPUT (j); }  Không cần thao tác tiền xử lý P  Thao tác so sánh thực theo chiều  Dữ liệu đầu vào lớn thời gian xử lý lâu  Trường hợp xấu tìm đến hết chuỗi T mà khơng thấy Khi với n-m+1 vị trí tìm kiếm, ta phải so sánh m ký tự chuỗi P với ký tự tương ứng chuỗi T Số lần so sánh: m.(n-m+1) Thông thường m nhỏ so với n nên ta coi độ phức tạp thuật tốn O(m.n) Thuật Tốn Boyer Moore Thuật tốn tìm kiếm chuỗi Boyer-Moore dựa cách tiếp cận heuristics: Cách 1: Thực so sánh mẫu tìm kiếm P với chuỗi ký tự T Cách 2: Nếu sai lệch không trùng khớp xảy T[i] = c:  Nếu mẫu tìm kiếm P có chứa ký tự c, thực dịch chuyển mẫu P sang phải cho ký tự c cuối P nằm thẳng hàng với T[i]  Nếu P không chứa ký tự c, thực dịch chuyển P cho P[0] thẳng hàng với T[i+1] Ví dụ: Chúng ta thực tìm kiếm mẫu APPLE từ chuỗi ký tự APPSTOREAPPLE Lette rs A P P L E * Values 1 Value = max(1, lengthOfPattern – indexOfCharacter -1) Value(*) = lengthOfPattern Ví dụ: Chúng ta thực tìm kiếm mẫu APPLE từ chuỗi ký tự APPSTOREAPPLE Trong lần so sánh đầu tiên, ký tự T khơng có xuất mẫu tìm kiếm P = “APPLE”, đó, số ký tự ta cần dịch chuyển ký tự Hay nói cách khác với cách tiếp cận giải thuật BoyerMoore, thực dịch chuyển mẫu tìm kiếm P sang phải cho ký tự A (Phần tử mẫu P[0]) mẫu tìm kiếm nằm thẳng hàng với ký tự O (Phần tử T[i+1] chuỗi ký tự) Tiếp theo, lần so sánh thứ 2, ký tự P chuỗi ký tự có xuất mẫu tìm kiếm P, vị trí Do đó, thực dịch chuyển mẫu cần tìm kiếm sang phải ký tự để cho ký tự P chuỗi ký tự thẳng hàng với ký tự P (xuất lần cuối cùng) mẫu tìm kiếm Tiếp theo, lần so sánh thứ 3, ký tự L có xuất mẫu tìm kiếm, đó, giống cách làm bên trên, thực dịch chuyển mẫu tìm kiếm sang bên phải vị trí Và tiếp theo, thực so sánh ký tự mẫu tìm kiếm P với chuỗi ký tự T Như vậy, việc so sánh thực tồn mẫu tìm kiếm P kết trả trùng khớp với chuỗi ký tự T Như vậy, hồn thành xong việc tìm kiếm chuỗi ký tự giải thuật Boyer-Moore  Thực việc so sánh từ phải sang trái  Giai đoan tiền xử lí có độ phức tạp : O(m)  Giai đoạn tìm kiếm có độ phức tạp: O(m.n)  Độ phức tạp O(n ⁄m) trừờng hợp tốt THANK YOU FOR LISTENING ...Giới thiệu Thuật toán Brute-Force Thuật toán Boyer Moore Demo  Đối sánh chuỗi  Từ khóa: String matching, String searching, Pattern searching, Text Searching  Một thuật tốn quan trọng... lần so sánh: m.(n-m+1) Thông thường m nhỏ so với n nên ta coi độ phức tạp thuật toán O(m.n) Thuật Toán Boyer Moore Thuật tốn tìm kiếm chuỗi Boyer-Moore dựa cách tiếp cận heuristics: Cách 1:... ước:     Mẫu cần tìm: P (chiều dài m) Văn bản: T (chiều dài n) P T có tập hữu hạn ký tự m≤n Thuật Toán Brute Force   Kiểm tra tất vị trí chuỗi từ vị trí đến vị trí n-m Sau lần thử, mẫu dịch

Ngày đăng: 18/02/2023, 10:06

w