Tải bản đầy đủ (.pptx) (15 trang)

Thuyet trinh thuat toan Boyer Moore

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.51 MB, 15 trang )

BÁO CÁO MƠN HỌC

THUẬT TỐN NÂNG CAO
Giáo viên hướng dẫn: Nguyễn Xuân Hải
Lớp: M20CQIS01-N
Báo cáo: Nhóm 3


THUẬT TOÁN BOYER - MOORE
1. Khái niệm
2. Ý tưởng của thuật toán
3. Giải thuật
4. Đánh giá độ phức tạp

2


1. Khái niệm
• Thuật tốn Boyer-Moore được ứng dụng trong
việc tìm kiếm chuỗi con trong một chuỗi khác.
• Nó được phát triển bởi Robert Boyer và J
Strother Moore vào năm 1977. Thuật tốn này
xử lý trước cho mẫu cần tìm kiếm.
• Thuật tốn tìm kiếm chuỗi này hiệu quả vì nó
khơng đi qua tồn bộ khơng gian tìm kiếm mà
chỉ thực hiện tìm kiếm một mẫu phù hợp.

3


1. Khái niệm


• Nó sẽ bỏ qua các ký tự để giảm số lượng ký tự
so sánh mà mỗi lần tìm kiếm được thực hiện.
• Có hai giai đoạn cho q trình tìm kiếm chuỗi:
• Giai đoạn đầu tiên là tạo một bảng chỉ số cho
mẫu tìm kiếm. Bảng tìm kiếm này được sử dụng
để bỏ qua chuỗi tìm kiếm nhằm giảm số lượng
các thao tác đối sánh.

4


2. Ý tưởng của thuật tốn
• Thuật tốn tìm kiếm chuỗi Boyer-Moore được thực
hiện như sau:
 Thực hiện so sánh mẫu tìm kiếm P với chuỗi ký tự
con của T.
– Nếu trong P có chứa ký tự tại c  thực hiện
dịch chuyển mẫu P sang phải sao cho ký tự c
cuối cùng trong P nằm thẳng hàng với T[i]
– Nếu một sự ký tự không trùng khớp xảy ra tại
T[i]  Thực hiện dịch chuyển P sao cho P[0]
thẳng hàng với T[i+1]
5


3. Giải thuật Boyer - Moore

6



3. Giải thuật Boyer - Moore

7


3. Ví dụ
• Thực hiện tìm kiếm chuỗi P=“APPLE” trong
T=“RIPPLEAPPLE
• L = {R:-1; I:-1; P:2; L:3; E:4; A:0}
• Bước 1:

• last[L] = 3, dịch chuyển P: 1 ký tự

8


3. Ví dụ
• Bước 2:

E =>Match
• Bước 3: L=>Match

9


3. Ví dụ
• Bước 2:

E =>Match
• Bước 3: L=>Match


10


3. Ví dụ
• Bước 4 - 5:

P- P =>Match
• Bước 6:

last[I] = -1 , dịch chuyển 1 ký tự.
11


3. Ví dụ
• Bước 7:

• Last[A] = 0, dịch chuyển P: 4 ký tự
• Bước 8:

E => Match
12


3. Ví dụ
• Bước 9 -10 - 11 -12:

Lần lượt: L – P – P – A : Match

Việc so sánh đã thực hiện trên tồn bộ mẫu tìm

kiếm P và kết quả trả về là nó trùng khớp với chuỗi
ký tự con trong T.

13


3. Độ phức tạp của thuật tốn Boyer –
Moore
• n là độ dài của T
• m là độ dài của P.
• Độ phức tập của thuật tốn Boyer – Moore
là:
• O(m.n) trong trường hợp xấu nhất
• O(n/m): trong trường hợp tốt nhất

14


Xin chân thành cảm ơn Thầy và các bạn
đã lắng nghe !

15



×