PHƯƠNG PHÁP SINH TẬP BỘ DÒ BẰNG CÂY NHỊ PHÂN KẾT HỢP CHỌN LỌC ÂM TÍNH VÀ CHỌN LỌC DƯƠNG TÍNH
3.2.1.2. Mô tả thuật toán
Trong thuật toán này, ta sử dụng cấu trúc cây nhị phân cho cả việc sản sinh và so khớp bộ dò.
Thuật toán được mô tả như sau:
• Ban đầu, sinh ra ℓ-r+1 cây nhị phân tương ứng với ℓ-r+1 bộ Dpi.
• Trong ℓ-r+1 cây đó, tiến hành tối ưu cây: xóa tất cả những cây con là cây đầy đủ.
• Trong các cây self thu được, nếu cây self thứ i là tối ưu, ta chọn cây self ngược lại ta thay thế bằng cách xây dựng cây nonself với số node nhỏ hơn. Kết thúc ta thu được 1 tập bộ dò mới Dpn = Dp
Ví dụ minh họa: Với ℓ = 5, r = 3 và tập S = {s1 = 01011, s2 = 01010, s3 = 01101} Tập bộ dò Dp = với Dp1 = {(010, 1); (011, 1)} Dp2 = {(101, 2); (110, 2)} Dp3 = {(011, 3); (010, 3); (101, 3)}
Sinh ℓ-r+1 = 3 cây tương ứng với Dpi, i = 1..3 bộ
Cây self Dp1 Cây self Dp2 Cây self Dp3
Tối ưu cây bằng cách xóa các cây con là cây đầy đủ:
Mũi tên nét đứt ( ) thể hiện cây con đầy đủ sẽ bị xóa
Các cây sau khi xóa:
Cây Dp1 xóa 2 node Cây Dp2 không xóa Cây Dp3 xóa 2 node
Sau khi tối ưu cây:
• Cây self của Dp1 node là 3, số node của cây nonself tương ứng cũng là 3. Như vậy ta chọn cây self Dp1.
• Cây self của Dp2 số node là 6, số node của cây nonself tương ứng là 7, chọn cây self của Dp3
• Cây self của Dp3 có số node là 6, cây nonself là 7, cây self nhỏ hơn cây nonself là 1 node, chọn cây self
Như vậy so với thuật toán sinh bộ dò theo phương pháp chọn lọc âm tính thì phương pháp sinh kết hợp tỏ ra ưu thế hơn vì tập bộ dò được sinh ra là đầy đủ, bé nhất.
Dp1 = {(01, 1)}
Dp2 = {(101, 2); (110, 2)}
Dp3 = {(01, 3);(101, 3)}