Giới thiệu thuật toán Karp-Rabin; ý tưởng thuật toán Karp-Rabin; giải thuật thuật toán; mã hóa thuật toán;... là những nội dung chính mà Bài thuyết trình: Thuật toán Karp-Rabin hướng đến trình bày.
Trang 1TRÍ TUỆ NHÂN TẠO
Thuật toán Karp-Rabin
Giảng viên hướng dẫn : TS Từ Minh Phương Lớp: Hệ thống thông tin
Nhóm 3:
Trần Thị Hạnh
Mẫn Hồng Dương
Dương Văn Đoàn
Trang 2Nội dung
Gi i thi u thu t toán KarpRabinớ ệ ậ
Ý tưởng thu t toán KarpRabinậ
Gi i thu t thu t toánả ậ ậ
Mã hóa thu t toánậ
Đ ph c t p c a thu t toánộ ứ ạ ủ ậ
Ki m nghi m thu t toánể ệ ậ
Trang 3Giới thiệu thuật toán
Karp-Rabin
Thu t toán mang tên hai nhà khoa h c phát minh ra nó ậ ọ Michael O. Rabin (sinh năm 1931, người Đ c) and ứ
Richard M. Karp (sinh năm 1931, người M ), đ u đỹ ề ược
gi i Turing Award, gi i thả ả ưởng uy tín nh t trong nghành ấ khoa h c máy tính và công ngh thông tin.ọ ệ
Trang 4Ý tưởng thuật toán
Hàm băm:
hash(w[0…m1]) = h = (w[0]*2m1 + w[1]*2m2 +… w[m
1]*20) mod q
Vi c tính l i hàm băm nh sau:ệ ạ ư
Rehash(a,b,h)=h = ((h – a*2m1)*2 + b)mod q
Hàm băm t t: ố
các thao tác c b n đ ơ ả ượ c th c hi n hi u qu ự ệ ệ ả
khi băm hai xâu con khác nhau có cùng đ dài mm, xác su t hai ộ ấ giá tr băm gi ng nhau là nh ị ố ỏ
Trang 5Giải thuật thuật toán(1)
Trang 62. hsub := hash(P[1 m]) // giá tr băm c a xâu Pị ủ
3. hs := hash(T[1 m]) // giá tr băm c a xâu Tị ủ
4. for i from 1 to nm+1
5. if hs = hsub
6. if T[i i+m1] = P
7. return i
8. hs := hash(T[i+1 i+m]) // giá tr băm c a xâu T[i+1 i+m]ị ủ
9. return not found
Trang 7Mã hóa thuật toán
Trang 8Độ phức tạp thuật toán
Karp-Rabin
Đ ph c t p v th i gian trong giai đo n ti n x lý là ộ ứ ạ ề ờ ạ ề ử O(M)
Khi tính giá tr băm cho T[i+1 i+m] ta m t th i gian là ị ấ ờ
O(m), do công vi c này đệ ược th c hi n trong (nm+1) l n.ự ệ ầ
Đ ph c t p trong giai đo n tìm m u là O(M*N)ộ ứ ạ ạ ẫ
Trang 9Kiểm nghiệm thuật toán(1)
Trang 11CẢM ƠN THẦY
VÀ CÁC BẠN ĐÃ
THEO DÕI !!!