Bài viết này giới thiệu một phiên bản cải tiến của thuật toán Scrimp++ cho bài toán khám phá motif nhằm cải thiện thời gian thực thi của thuật toán. Kết quả thực nghiệm cho thấy thuật toán đề xuất thực hiện tốt hơn thuật toán gốc về mặt thời gian nhưng vẫn đảm bảo về độ chính xác.
TẠP CHÍ KHOA HỌC TRƯỜNG ĐẠI HỌC SƯ PHẠM TP HỒ CHÍ MINH HO CHI MINH CITY UNIVERSITY OF EDUCATION JOURNAL OF SCIENCE Tập 19, Số (2022): 435-448 ISSN: 2734-9918 Vol 19, No (2022): 435-448 Website: http://journal.hcmue.edu.vn https://doi.org/10.54607/hcmue.js.19.3.3280(2022) Bài báo nghiên cứu * PHÁT HIỆN MOTIF BẰNG THUẬT TOÁN SCRIMP++ CẢI TIẾN Nguyễn Thành Sơn*, Trần Thị Dung Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh, Việt Nam Tác giả liên hệ: Nguyễn Thành Sơn – Email: sonnt@hcmute.edu.vn Ngày nhận bài: 27-9-2021; ngày nhận sửa: 14-3-2022; ngày duyệt đăng: 18-3-2022 * TÓM TẮT Motif chuỗi thời gian cặp chuỗi giống chuỗi thời gian hay cặp chuỗi giống sở liệu chuỗi thời gian Khám phá motif chuỗi thời gian toán quan trọng khai phá liệu chuỗi thời gian Gần đây, số thuật toán giới thiệu cho toán khám phá motif dựa vào vector chứa khoảng cách chuỗi với lân cận gần Các thuật tốn sử dụng kĩ thuật kết hợp việc chuẩn hóa chuỗi thời gian vào cơng thức tính độ đo khoảng cách Euclid tính tốn ma trận khoảng cách Phương pháp tiêu biểu cho cách tiếp cận thuật toán Scrimp++ Bài báo giới thiệu phiên cải tiến thuật toán Scrimp++ cho toán khám phá motif nhằm cải thiện thời gian thực thi thuật toán Kết thực nghiệm cho thấy thuật toán đề xuất thực tốt thuật toán gốc mặt thời gian đảm bảo độ xác Từ khóa: ma trận khoảng cách; khám phá motif; chuỗi thời gian; thuật toán Scrimp++; motif chuỗi thời gian Giới thiệu Một chuỗi thời gian dãy số thực ghi nhận khoảng thời gian Dữ liệu chuỗi thời gian sử dụng nhiều lĩnh vực khác Ngày nay, liệu chuỗi thời gian ngày chiếm tỉ trọng lớn liệu cung cấp giới Motif chuỗi thời gian cặp chuỗi giống chuỗi thời gian dài hay cặp chuỗi giống sở liệu chuỗi thời gian (Mueen et al., 2009) Phát motif chuỗi thời gian toán quan trọng khai phá liệu chuỗi thời gian nhận nhiều quan tâm nghiên cứu cộng đồng nghiên cứu lĩnh vực Từ motif chuỗi thời gian Lin cộng hình thức hóa vào năm 2002 (Lin et al., 2002), nhiều phương pháp phát motif giới thiệu (Chiu et al., 2003), (Ferreira et al., 2006), (Yankov et al., 2007), (Castro et al., 2010), (Lin et al., Cite this article as: Nguyen Thanh Son, & Tran Thi Dung (2022) Discovering time series motif using the improved Scrimp++ algorithm Ho Chi Minh City University of Education Journal of Science, 19(3), 435-448 435 Tập 19, Số (2022): 435-448 Tạp chí Khoa học Trường ĐHSP TPHCM 2010), (Mueen et al., 2009), (Mohammad et al., 2014), (Truong et al., 2015), (Nguyen et al., 2016) Cách tiếp cận chung thường phương pháp phát motif sử dụng là: (1) dùng cửa sổ trượt để trích chuỗi con, (2) chuẩn hóa chuỗi (3) sử dụng thuật toán dựa vào độ đo tương tự để phát motif Các thuật toán sử dụng cách tiếp cận thường phải thực hai lần quét qua chuỗi thời gian: lần quét thứ để chuẩn hóa lần qt thứ để tính toán khoảng cách Gần đây, số thuật toán đề xuất cho toán phát motif chuỗi thời gian Các thuật toán sử dụng vector khoảng cách gọi matrix profile Vector chứa khoảng cách chuỗi với chuỗi lân cận gần với chuỗi thời gian Vector khoảng cách tính tốn dựa kết hợp bước chuẩn hóa bước tính tốn khoảng cách Euclid (Yeh et al., 2016; Zhu et al., 2016; Zhu et al., 2018) Như vậy, thuật toán sử dụng cách tiếp cận cần thực lần quét qua chuỗi thời gian Thuật toán tiêu biểu cho cách tiếp cận thuật toán Scrimp++ Bài báo giới thiệu phiên cải tiến thuật toán Scrimp++ cho toán khám phá motif nhằm cải thiện thời gian thực thi thuật toán Kết thực nghiệm tập liệu khác cho thấy thuật toán đề xuất thực tốt thuật toán gốc mặt thời gian đảm bảo độ xác Phần cịn lại báo gồm: phần trình bày kiến thức tảng cơng trình liên quan; phần trình bày cách tiếp cận chúng tơi cho tốn phát motif; phần mô tả đánh giá thực nghiệm tập liệu khác Cuối cùng, kết luận trình bày phần Nội dung 2.1 Kiến thức tảng cơng trình liên quan 2.1.1 Các định nghĩa Định nghĩa Một chuỗi thời gian T dãy số thực Ti: T = T1, T2, …, Tn với n chiều dài chuỗi thời gian Định nghĩa Một chuỗi Ti,m chuỗi thời gian T tập m giá trị liên tục T vị trí i Nghĩa là, Ti,m = Ti, Ti+1, …, Ti+m-1 với ≤ i ≤ n-m+1 Định nghĩa Vector khoảng cách Di vector chứa khoảng cách chuỗi Ti,m với chuỗi chuỗi thời gian T Nghĩa là, Di = [di,1, di,2,…, di,n-m+1], với di,j (1 ≤ j ≤ n-m+1) khoảng cách Ti,m Tj,m Tập vector khoảng cách Di (1 ≤ i ≤ n-m+1) tất chuỗi T hình thành ma trận khoảng cách Ma trận ma trận đối xứng qua đường chéo giá trị khoảng cách đường chéo ma trận Định nghĩa Lân cận gần chuỗi Cho Ti,m Tj,m hai chuỗi chuỗi thời gian T Tj,m gọi lân cận gần Ti,m dist(Ti,m, Tj,m) ≤ dist(Ti,m, Ta,m), |i-j| ≥ w, |i-a| ≥ w với w > 436 Nguyễn Thành Sơn tgk Tạp chí Khoa học Trường ĐHSP TPHCM Chú ý định nghĩa có áp đặt ràng buộc vị trí chuỗi so trùng Đó chuỗi so sánh phải cách w vị trí Điều giúp loại bỏ so trùng tầm thường dist() hàm tính tốn khoảng cách hai chuỗi Định nghĩa Motif chuỗi thời gian cặp chuỗi lân cận gần có khoảng cách nhỏ tất cặp chuỗi lân cận gần khác chuỗi thời gian T Nghĩa là, {Ta,m, Tb,m}là motif dist(Ta,m, Tb,m) ≤ dist(Ti,m, Tj,m) ∀i, j ∈ {1, 2, …, n-m+1}, {Ta,m, Tb,m}và {Ti,m, Tj,m} cặp chuỗi lân cận gần chuỗi thời gian T Định nghĩa Khoảng cách Euclid kết hợp với chuẩn hóa zero-mean Cho chuỗi Ti,m Tj,m Khoảng cách Euclid kết hợp với chuẩn hóa zero-mean chuỗi Ti,m Tj,m tính theo cơng thức sau (Zhu et al., 2016): 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑�𝑇𝑇𝑖𝑖,𝑚𝑚 , 𝑇𝑇𝑗𝑗,𝑚𝑚 � = �2𝑚𝑚(1 − 𝑇𝑇𝑖𝑖,𝑚𝑚 𝑇𝑇𝑗𝑗,𝑚𝑚 −𝑚𝑚𝜇𝜇𝑖𝑖 𝜇𝜇𝑗𝑗 𝑚𝑚𝜎𝜎𝑖𝑖 𝜎𝜎𝑗𝑗 ) (1) Trong đó, 𝑇𝑇𝑖𝑖,𝑚𝑚 𝑇𝑇𝑗𝑗,𝑚𝑚 = ∑𝑚𝑚−1 𝑘𝑘=0 𝑡𝑡𝑖𝑖,𝑘𝑘 𝑡𝑡𝑗𝑗,𝑘𝑘 tích vơ hướng vector Ti,m Tj,m µi µj kì vọng Ti,m Tj,m σi, σj độ lệch chuẩn Ti,m Tj,m Trong công thức (1) ta tính trước kì vọng độ lệch chuẩn tất chuỗi chuỗi thời gian với độ phức tạp O(n) cách áp dụng kĩ thuật giới thiệu Rakthanmanon cộng (2013) Ngoài ra, Zhu cộng (2016) chứng minh Ti+1Tj+1 tính với thời gian O(1) biết trước TiTj (2) Ti+1Tj+1 = TiTj – titj + ti+mtj+m Mối quan hệ Ti+1Tj+1 TiTj có vector khoảng cách Di chuỗi Ti,m với chuỗi khác T, ta tính vector khoảng cách Di+1 chuỗi Ti+1,m với chuỗi khác T thời gian O(n) Trong trường hợp đặc biệt i = j = ta tính trước tích vơ hướng vector Ti,mTj,m biến đổi Fourier nhanh (FFT) Định nghĩa Một vector khoảng cách lân cận gần D chuỗi thời gian T có chiều dài n vector chứa khoảng cách chuỗi có chiều dài m với chuỗi lân cận không tầm thường chúng T Nghĩa D = [min(D1), min(D2),…, min(Dnm+1)] với Di (1≤ i ≤ n-m+1) vector khoảng cách chuỗi Ti,m với chuỗi T Trong vector khoảng cách lân cận gần D, phần tử thứ i cho ta biết khoảng cách chuỗi Ti,m với chuỗi lân cận gần chuỗi thời gian T Tuy nhiên, vector khoảng cách lân cận gần khơng cho biết vị trí chuỗi lân cận gần chuỗi Ti,m Vì cần phải sử dụng thêm vector mục chứa vị trí chuỗi lân 437 Tập 19, Số (2022): 435-448 Tạp chí Khoa học Trường ĐHSP TPHCM cận gần chuỗi chuỗi thời gian T Hình minh họa mối quan hệ ma trận khoảng cách với vector khoảng cách lân cận gần Các vector khoảng cách D1 D2 … Dn-m+1 Vector kc lân cận gần P D1 d1,1 D2,1 … dn-m+1,1 D2 d1,2 D2,2 … dn-m+1,2 … … … … … Dn-m+1 d1,n-m+1 d2,n-m+1 … dn-m+1,n-m+1 Min(D1) Min(D1) … Min(Dn-m+1) Hình Ma trận khoảng cách vector khoảng cách lân cận gần chuỗi chuỗi thời gian T Định nghĩa Một vector mục I= [I1, I2, …,In-m+1] chuỗi thời gian T vector với Ii,∀1≤ i ≤ n-m+1, số nguyên vị trí chuỗi lân cận gần với chuỗi Ti,m Chẳng hạn, Ii = k cho biết chuỗi Ti,m có chuỗi lân cận gần với chuỗi Tk,m 2.1.2 Các cơng trình liên quan Nhiều thuật toán giới thiệu để giải toán phát motif chuỗi thời gian từ tốn hình thức hóa vào năm 2002 (Lin et al., 2002) Trong nghiên cứu mình, Lin cộng định nghĩa toán phát motif chuỗi thời gian dựa vào ngưỡng R chiều dài motif m người dùng xác định Do độ phức tạp cao thuật tốn phát motif xác, nhà nghiên cứu chuyển sang nghiên cứu giải pháp phát motif xấp xỉ Nói chung, giải pháp thường có độ phức tạp O(n) O(nlogn) (n số chuỗi sở liệu chuỗi thời gian hay chiều dài chuỗi thời gian mà từ chuỗi trích ra) với số tham số phải xác định trước (Mueen et al., 2009) Năm 2003, Chiu cộng đề xuất thuật toán chiếu ngẫu nhiên để phát motif chuỗi thời gian theo cách tiếp cận xấp xỉ (B Chiu et al., 2003) Thuật toán dựa kĩ thuật băm bảo tồn tính lân cận (locality preserving hashing) sử dụng phương pháp rời rạc hóa SAX để biểu diễn chuỗi chuỗi thời gian ban đầu Độ phức tạp thuật toán tuyến tính theo độ dài từ SAX, số chuỗi con, số lần lặp số lần đụng độ Trong (Yankov et al., 2007), Yankov cộng giới thiệu thuật toán cải tiến từ thuật toán chiếu ngẫu nhiên để khám phá motif mà không bị ảnh hưởng biến đổi co giãn theo trục hoành Khái niệm motif liệu chuỗi thời gian định nghĩa lại theo nghĩa “lân cận gần nhất”: motif cặp chuỗi giống chuỗi thời gian dài Cách tiếp cận có nhược điểm giống thuật tốn chiếu ngẫu nhiên Ngồi tổng chi phí cách tiếp cận cao phải tìm hệ số biến đổi co giãn theo trục hoành tốt 438 Nguyễn Thành Sơn tgk Tạp chí Khoa học Trường ĐHSP TPHCM Với định nghĩa motif chuỗi thời gian cặp chuỗi chuỗi giống nhất, năm 2009 Mueen cộng giới thiệu thuật tốn phát motif xác, gọi giải thuật MK (Mueen et al., 2009) Cách tiếp cận sử dụng điểm tham chiếu chọn ngẫu nhiên ý tưởng từ bỏ sớm việc tính tốn khoảng cách Euclid tổng tích lũy khoảng cách hành lớn khoảng cách ứng viên motif tốt thời điểm xét Quá trình phát motif thuật tốn dựa vào thơng tin heuristic xác định thứ tự khoảng cách đối tượng xét với điểm tham chiếu ngẫu nhiên Mueen cộng cho thấy thuật tốn thực nhanh gấp vài ngàn lần thuật tốn brute-force tìm sở liệu lớn, dù trường hợp xấu độ phức tạp thuật toán bậc hai Trong Nguyen cộng (2016), tác giả giới thiệu thuật toán phát k motif sử dụng cấu trúc mục đa chiều mục đường chân trời (skyline index) kết hợp với phương pháp thu giảm số chiều MP_C Hai phương pháp giúp tăng tốc độ tìm kiếm lân cận gần chuỗi Tuy nhiên, chúng có nhược điểm cần nhiều tham số đầu vào (Nguyen et al., 2006) Gần đây, số thuật toán đề xuất cho toán phát motif chuỗi thời gian dựa vào vector khoảng cách lân cận gần (Yeh et al., 2016; Zhu et al., 2016; Zhu et al., 2018) Vì thời gian tính tốn vector khoảng cách chiếm thời gian lâu nhất, thuật toán theo hướng tiếp cận thường tập trung vào việc giảm thời gian tính tốn vector khoảng cách Thuật toán Stamp (Yeh et al., 2016) thực tính khoảng cách chuỗi Ti,m với chuỗi T theo thứ tự ngẫu nhiên sử dụng phép biến đổi Fourier nhanh để tính tích vơ hướng hai chuỗi Độ phức tạp tính tốn vector khoảng cách thuật tốn O(nlogn) với n chiều dài chuỗi thời gian T độ phức tạp thời gian tồn tiến trình O(n2logn) (Zhu et al., 2018) Thuật toán Stomp (Zhu et al., 2016) cải tiến từ thuật tốn Stamp cách thay tính vector khoảng cách cách độc lập thuật toán Stamp, thuật tốn Stomp tính vector khoảng cách dựa vào phụ thuộc khoảng cách chuỗi liên tiếp Nghĩa tích vơ hướng hai chuỗi cơng thức tính khoảng cách tính dựa vào tích vơ hướng hai chuỗi tính trước Chi phí tính tốn thuật tốn Stomp cịn O(n2) Thuật tốn Scrimp++ kết hợp đặc trưng hai thuật toán Stamp Stomp thời gian tính tốn khơng phụ thuộc vào chiều dài chuỗi con, phí tổn nhớ thấp Thuật toán Scrimp++ thực phát motif qua hai giai đoạn: Đầu tiên xử lí thuật tốn PreScrimp để có vector lân cận gần xấp xỉ, sau tiếp tục tinh chỉnh vector lân cận gần thuật tốn Scrimp hội tụ đến kết xác Tuy độ phức tạp thời gian thuật toán O(n2) cho kết hội tụ nhanh 2.2 Thuật toán Scrimp++ đề xuất cải tiến thuật toán Thuật toán Scrimp++ (Zhu et al., 2018) xây dựng dựa hai thuật tốn PreScrimp Scrimp Hình minh họa ý tưởng thuật toán 439 Tập 19, Số (2022): 435-448 Tạp chí Khoa học Trường ĐHSP TPHCM Chuỗi thời gian Scrimp++ Vector lân cận gần xác Scrimp PreScrimp Vector lân cận gần xấp xỉ Hình Ý tưởng thuật toán Scrimp++ 2.2.1 Thuật toán PreScrimp Thuật tốn PreScrimp dựa tính chất trì lân cận liên tục (Consecutive Neighborhood Preserving (CNP) Property) chuỗi chuỗi thời gian (Zhu et al., 2018) Tính chất mơ tả sau: vector mục phân chia thành nhiều đoạn giá trị liên tục Trong đoạn, tập chuỗi liên tiếp có tập chuỗi liên tiếp khác lân cận gần với Tính chất gọi tính chất CNP Hình minh họa tính chất CNP Vị trí chuỗi Vị trí lân cận gần 70 71 111 112 … … 59 189 60 190 61 191 … … Hình Minh họa vector mục I Vì chuỗi liên tiếp chuỗi thời gian thường có đoạn giao nên chuỗi thứ i giống với chuỗi thứ j chuỗi thứ i+1 có xác suất cao giống với chuỗi thứ j+1 Các chuỗi mẫu lấy từ chuỗi thời gian T cách khoảng cố định s Dễ thấy chọn s nhỏ độ xác thuật tốn cao, thời gian thực thi thuật toán lâu Tác giả đề xuất nên chọn s = m/4 để đảm bảo tất chuỗi có phần giao với chuỗi mẫu 87,5% Với chuỗi mẫu, thuật tốn tìm chuỗi lân cận gần với dựa vào tính chất CNP Giả sử, Ti,m chuỗi mẫu chuỗi lân cận gần với Tj,m Theo tính chất CNP có khả cao lân cận gần với chuỗi Ti+k,m Tj+k,m (với k=s+1, -s+2, …, -2, -1, 1, 2, …, s-2, s-1) Khoảng cách cặp chuỗi tính tốn nhỏ khoảng cách tương ứng có vector khoảng cách lân cận gần vector lân cận gần cập nhật Hình minh họa thuật tốn Dữ liệu vào: Chuỗi thời gian T, chiều dài chuỗi m, khoảng cách lấy mẫu s Dữ liệu ra: Véc tơ lân cận gần P véc tơ mục I (1) Tính kì vọng độ lệch chuẩn tất chuỗi (2) Duyệt qua vị trí chuỗi lấy mẫu T với khoảng cách lấy mẫu s, thực hiện: - Chọn ngẫu nhiên chuỗi mẫu Ti,m - Tìm chuỗi lân cận gần Tj,m Ti,m sử dụng độ đo (1) - Cập nhật vào vector lân cận gần P vector mục I - Tính tích vô hướng chuỗi Ti,m Tj,m - Duyệt qua cặp chuỗi (Ti+k,m, Tj+k,m), k=1, 2, … gặp chuỗi mẫu 440 Nguyễn Thành Sơn tgk Tạp chí Khoa học Trường ĐHSP TPHCM cuối chuỗi thời gian, với cặp chuỗi thực hiện: + Tính tích vơ hướng cặp chuỗi (Ti+k,m, Tj+k,m) theo cơng thức (2) + Tính khoảng cách cặp chuỗi (Ti+k,m, Tj+k,m) theo công thức (1) + Cập nhật lại giá trị vector lân cận gần P vector mục I khoảng cách vừa tính nhỏ giá trị phần tử tương ứng Pi+k,m hay Pj+k,m P - Duyệt qua cặp chuỗi (Ti-k,m, Tj-k,m), k=1, 2, … gặp chuỗi mẫu phía trước đến đầu chuỗi thời gian, với cặp chuỗi thực hiện: + Tính tích vơ hướng cặp chuỗi (Ti-k,m, Tj-k,m) theo cơng thức (2) + Tính khoảng cách cặp chuỗi (Ti-k,m, Tj-k,m) theo công thức (1) + Cập nhật lại giá trị vector lân cận gần P vector mục I khoảng cách vừa tính nhỏ giá trị phần tử tương ứng Pi-k,m hay Pj-k,m P (3) Trả P I Hình Minh họa thuật tốn PreScrimp 2.2.2 Thuật tốn Scrimp Thuật toán Scrimp (Zhu et al., 2018) tác giả cải tiến từ thuật toán Stomp dựa nhận xét: thuật tốn Stomp tính tốn ma trận khoảng cách (Hình 1) theo thứ tự dịng cập nhật vào vector khoảng cách Tính tốn theo thứ tự ngăn cản việc phát sớm motif nằm vị trí cuối chuỗi thời gian T Để khắc phục điều này, tác giả thực tính toán ma trận khoảng cách theo đường chéo theo thứ tự ngẫu nhiên cơng thức (2) giúp thực điều Các khoảng cách d1,k, d2,k, …, d n-m+2-k,n-m+1 tính tốn Vector lân cận gần P vector mục I cập nhật Nếu di,i+k-1 nhỏ Pi hay Pi+k-1 Hình minh họa điều thuật tốn Scrimp minh họa Hình P P1 P2 … Cập nhật nhỏ d1,k d2,k+1 Cập nhật nhỏ … dn-m+2-k,n-m+1 Pn-m+2-k P Pk Pk+1 … Pn-m+1 Hình Minh họa cách tính khoảng cách theo đường chéo cập nhật vào P Dữ liệu vào: Chuỗi thời gian T, chiều dài chuỗi m Dữ liệu ra: Véc tơ lân cận gần P Véc tơ mục I (1) Tính kì vọng độ lệch chuẩn tất chuỗi (2) Tạo dãy thứ tự tính tốn ngẫu nhiên Q cho phần tử đường chéo (3) Với k Q - Với i từ tới n-m+2-k + Nếu i = 1: tính tích vơ hướng T1,m Tk,m Ngược lại, tính tích vơ hướng Ti,m Ti+k-1,m theo công thức (2) 441 Tập 19, Số (2022): 435-448 Tạp chí Khoa học Trường ĐHSP TPHCM + Tính khoảng cách dist(Ti,m, Ti+k-1,m) theo cơng thức (1) + Nếu khoảng cách vừa tính nhỏ giá trị tương ứng Pi Pi+k-1 cập nhật vào véc tơ khoảng cách lân cận gần P véc tơ mục I (4) Trả P I Hình Minh họa thuật tốn Scrimp 2.2.3 Cải tiến thuật tốn Scrimp++ Để tính đầy đủ vector lân cận gần nhất, thuật toán Scrimp++ phải duyệt qua tất chuỗi mẫu Với chuỗi mẫu thuật tốn phải tính khoảng cách chuỗi mẫu chuỗi khác để tìm lân cần gần Chuỗi thời gian dài số lượng cặp chuỗi cần so sánh nhiều để tìm cặp giống Liệu giảm số lần so sánh cặp chuỗi mà tìm cặp chuỗi giống nhất? Để giải vấn đề nêu nhằm mục đích tăng tốc độ thực thi thuật tốn, chúng tơi áp dụng ý tưởng vào thuật tốn Scrimp++: (1) Dùng tốn nghịch lí ngày sinh để xác định số lượng chuỗi cần xem xét (2) xác định thứ tự chuỗi mẫu cần xem xét Ý tưởng tương tự ý tưởng đề xuất (Pariwatthanasak et al., 2019) Tuy nhiên, có khác biệt nghiên cứu nghiên cứu báo Pariwatthanasak cộng Đó Pariwatthanasak cộng áp dụng tốn nghịch lí ngày sinh xác định thứ tự chuỗi mẫu cần xem xét vào thuật toán MASS để tính vector khoảng cách lân cận gần nhất, áp dụng hai ý tưởng vào thuật toán Scrimp++ để xác định cặp chuỗi lân cận gần có khoảng cách nhỏ (motif) Ý tưởng cải tiến sau: - Xác định trước số lượng chuỗi k cần xem xét (số lần lặp thuật tốn Scrimp++) để tìm cặp chuỗi giống dựa vào tốn nghịch lí ngày sinh Với giả sử ngày năm (trừ ngày 29 tháng hai) có xác suất ngang nhau, tốn phát biểu sau: Trong nhóm ngẫu nhiên 23 người, xác suất để người nhóm có ngày sinh nhật khoảng 50% Bài tốn tìm cặp chuỗi giống chuỗi thời gian tương tự tốn nghịch lí ngày sinh Vì vậy, ta áp dụng tốn nghịch lí ngày sinh để giảm số lần so sánh cặp chuỗi thuật toán Scrimp++ Xác xuất để người nhóm có ngày sinh nhật xem giống xác suất để chuỗi giống chuỗi thời gian Trong đó, n-m+1 gian có độ dài n (m