5. Ý nghĩa thực tiễn của đề tài
3.3 Giải thuật BruteForce (BF)
Brute Force là giải thuật cơ bản nhất trong việc phát hiện bất thường trên dữ liệu chuỗi thời gian một cách chính xác nhất.
Ý tưởng cơ bản của giải thuật đơn giản là so sánh khoảng cách Euclidean của tất cả các cặp chuỗi trong bộ dữ liệu chuỗi thời gian. Sau khi hoàn thành công việc tính toán khoảng cách của từng cặp, chúng ta tiến hành chọn ra cặp có khoảng cách lớn nhất làm bất thường trong bộ dữ liệu đang xét.
Proceduce [Location]= BruteForce_Discord(D)
In: D: Database of Time Series
Out:Location: Best so far location, best so far dist.
BRUTE FORCE DISCORD DISCOVERY 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Function [dist, loc] = Brute_Force (T,n) best_so_far_dist = 0
best_so_far_loc = NaN
For p = 1 to | T | - n +1 // Begin Outer Loop nearest_neighbor_dist = infinity
For q = 1 to | T | - n + 1 // Begin inner Loop IF | p – q |≥ n // non – self match?
IF Dist (tp,…,tp + n – 1, tq,…,tq + n - 1) ≤ nearest_neighbor_dist nearest_neighbor_dist = Dist (tp,…,tp + n – 1, tq,…,tq + n - 1) End
End // End non – self match test
End // End Inner Loop
IF nearest_neighbor_dist > best_so_far_dist best_so_far_dist = nearest_neighbor_dist best_so_far_loc = p
End
End // End Outer Loop
Return [best_so_far_dist, best_so_far_loc]
Hình 3.1 Mã giả thuật toán BF
Dễ thấy giải thuật BF sử dụng hai vòng lặp for duyệt tuần tự tất cả các cặp trong bộ dữ liệu (dòng 4, 5, 6) và tiến hành cập nhật cặp có khoảng cách lớn nhất tới láng giềng gần nhất (dòng 13, 14). Cứ như vậy cho đến khi duyệt hết tất cả các cặp. Bất thường của chúng ta là cặp có khoảng cách lớn nhất tới các láng giềng gần nhất.
Vì là phương pháp phát hiện bất thường trên dữ liệu chuỗi thời gian cơ bản nhất, nên giải thuật BF có độ phức tạp O(n2) dẫn đến thời gian xử lý rất chậm. Tuy nhiên, ưu điểm của giải thuật này là độ chính xác bằng 1. Vì vậy, giải thuật BF là cơ sở để đánh giá độ hiệu quả của các giải thuật phát hiện bất thường chuỗi thời gian trên các tập dữ liệu chuỗi thời gian khác.