Phân tích tổng quát

Một phần của tài liệu luận văn thuật toán phát hiện phần tử ngoại lai và ứng dụn (Trang 39 - 43)

CHƯƠNG 2. CÁC THUẬT TOÁN TÌM KIẾM PHẦN TỬ NGOẠI LAI

2.3 Phát hiện các phần tử ngoại lai DB(pct,Dmin) trong các tập dữ liệu lớn, ở bộ nhớ ngoài

2.3.1 Phân tích tổng quát

Trong phần trước,thuật toán dựa vào ô được thiết kế để có thể thực hiện được với các tập dữ liệu nằm trong bộ nhớ trong. Ở đây, thuật toán dựa vào ô được cải tiến để phù hợp với việc thực hiện trên các tập dữ liệu lớn nằm trên bộ nhớ ngoài. Thuật toán cải tiến này bảo toàn độ phức tạp tuyến tính với N và cũng đảm bảo rằng không nhiều hơn 3 lần đọc toàn bộ cơ sở dữ liệu vào bộ nhớ. Khi thực hiện với các tập dữ liệu lớn, nằm ở bộ nhớ ngoài thì mục

đích là làm giảm tối thiểu số lượng các trang được đọc vào bộ nhớ chính hoặc là số lần đọc toàn bộ dữ liệu. Các trang ở đây là một khối dữ liệu nhỏ nhất truyền giữa bộ nhớ ngoài và bộ nhớ chính. Trong thuật toán dựa vào ô, có hai bước cần phải đọc các trang:

 Quá trình ánh xạ ban đầu của các đối tượng vào các ô phù hợp.

Trong bước hai của thuật toán FindAllOutsM, mỗi một đối tượng được ánh xạ tới các ô phù hợp, bước này yêu cầu một lần toàn bộ tập dữ liệu của chúng ta.

 Quá trình tính toán khoảng cách giữa các cặp đối tượng.

Trong bước 5.c.3, với mỗi đối tượng p trong các ô trắng Cw và mỗi đối tượng trong ô thuộc vào L2 của Cw cần được đọc để thực hiện công việc tính toán khoảng cách. Do không giả sử rằng các đối tượng ánh xạ vào cùng một ô hoặc các ô liền kề tức là các ô thuộc vào L1 của ô đang xét được phân vào một vùng cần thiết trên đĩa để mỗi cặp đối tượng yêu cầu tính toán khoảng cách được đọc trên cùng một trang. Do đó, nảy sinh nguyên nhân là số lượng các lần đọc vào ra (I/O) là rất lớn. Nếu công việc tính toán khoảng cách giữa các cặp đối tượng được thực hiện một cách chính xác như đã mô tả trong thuật toán ở bước 5.c.3 thì một trang có thể được đọc nhiều lần.

Một câu hỏi đặt ra là trong quá trình tính toán khoảng cách của các cặp đối tượng thì có thể đọc các trang chỉ đúng một lần không. Gọi Pages(C) ký hiệu cho tập hợp các trang chứa ít nhất một điểm ánh xạ tới ô C. Suy ra , để tính toán khoảng cách cho các đối tượng trong một ô trắng Cw, cần đọc các trang trong Pages(Cw). Đồng thời cũng cần đọc các trang trong Pages(L2(Cw))=UCv ЄL2(Cw)Pages(Cv) bởi vì cần đọc trang chứa các điểm ánh xạ tới ánh xạ tới Cv là ô thuộc L2(Cw) để thực hiện công việc tính toán khoảng cách. Hơn nữa, nếu muốn đảm bảo rằng các trang Pages(L2(Cw)) chỉ đọc một lần thì cần đọc các trang:

- Các trang cần cho Cv bởi vì bản thân Cv có thể là một ô trắng.

- Những trang sử dụng Cv bởi vì Cv có thể là ô thuộc L2 của nhiều ô trắng khác nhau.

Nói chung bao đóng bắc cầu kiểu này có thể bao mọi trang của tập dữ liệu. Nói một cách khác đi: chỉ có một cách đảm bảo rằng một trang có thể đọc nhiều nhất là một lần trong quá trình tính toán khoảng cách giữa các cặp điểm là phải có một bộ nhớ trung gian bằng cỡ của tập dữ liệu mà chúng ta đang xét và đây là một giả thiết quá mạnh vì các tập dữ liệu mà chúng ta đang xét là các tập dữ liệu lớn không thể lưu toàn bộ trong bộ nhớ trong.

Tiếp cận của thuật toán là trường hợp chỉ có một tập con các đối tượng lựa chọn trong tập dữ liệu được lưu trong bộ nhớ trong. Tập con được chọn này là tập tất cả các đối tượng ánh xạ vào các ô trắng ( hoặc các ô vàng đó là các ô sẽ được mô tả ở phần sau trong thuật toán). Việc lựa chọn theo cách này một phần là bởi vì chúng là những đối tượng cần được tính toán khoảng cách và một phần là số lượng các điểm trắng (các điểm nằm trong các ô trắng) theo định nghĩa chúng bị chặn trên bởi M. Hơn nữa, tất cả các trang sẽ phân vào trong ba lớp:

- Lớp I: Bao gồm các trang chứa một số các điểm trắng.

- Lớp II: Các trang không chứa điểm trắng nào nhưng lại chứa các đối tượng ánh xạ tới các ô không trắng mà các ô này thuộc L2 của một số ô trắng.

- Lớp III: Tất cả các trang còn lại.

Để làm cực tiểu các trang được đọc. Đầu tiên, thuật toán của chúng ta sẽ đọc các trang thuộc lớp I. Sau đó, là các trang thuộc lớp II. Tiếp theo, thuật toán gần như phải đọc lại các trang lớp I để hoàn tất quá trình tính toán khoảng cách. Các trang lớp III không cần thiết cho quá trình tính toán khoảng cách giữa các cặp điểm. Chú ý rằng việc thực hiện thuật toán là phụ thuộc vào số lượng các trang trắng (các trang thuộc lớp I).

Xem xét một ví dụ đơn giản bao gồm 600 trang trong một tập dữ liệu.

Giả sử rằng từ trang 1 đến trang 200 là các trang thuộc lớp I., từ trang 201 đến trang 400 là các trang thuộc lớp II, từ trang 401 đến trang 600 là các trang thuộc lớp III. Giả sử điểm p ánh xạ tới ô trắng Cw và được lưu ở trang i (thuộc lớp I ). Để p thực hiện quá trình tính toán khoảng cách giữa p và các điểm q thuộc các trang ánh xạ tới các ô thuộc L2(Cw), chúng ta phân các đối tượng mà chúng ta cần thành ba loại:

 Các điểm trắng ánh xạ tới ô trắng thuộc L2 của ô Cw.

 Các điểm không trắng q ánh xạ tới một ô không trắng thuộc L2 của Cw và được lưu ở trang j>=i.

 Các điểm không trắng q ánh xạ tới một ô không trắng thuộc L2 của Cw và được lưu ở trang j<i.

Với loại đối tượng đầu tiên, cặp điểm (p,q) luôn được giữ trong bộ nhớ chính sau khi 200 trang đầu tiên được đọc. Bởi vì chúng đều là các điểm trắng. Do đó khoảng cách của chúng được tính toán và các biến đếm ( biến đếm là biến dùng để đếm số lượng các đối tượng trong tập các lân cận của một điểm p ) có thể được cập nhật sau khi tất cả các trang thuộc lớp I đã được đọc. Với loại đối tượng thứ hai, khoảng cách giữa cặp đối tượng (p,q) được xử lí khi trang j được đọc vào trong bộ nhớ chính, bởi vì điểm p đã nằm trong bộ nhớ chính do trang i<=j. Do đó, sau khi 400 trang đầu tiên được đọc bao gồm tất cả các trang thuộc lớp I và lớp II thì các đối tượng loại thứ hai được kiểm tra. Vấn đề chỉ còn liên quan tới loại đối tượng thứ 3. Trong trường hợp này, khi q (được lưu ở trang j) được đọc vào trong bộ nhớ trong thì điểm p (lưu ở trang i) chưa được đọc . Vì q là điểm không trắng nên nó không được lưu lại trong bộ nhớ cho nên khi p được lưu vào thì điểm q không còn nằm trong bộ nhớ. Do đó, trong trường hợp này đòi hỏi phải cần phải đọc lại trang j. Nhìn chung, tất cả các trang lớp I cần phải đọc lại. Nhưng rõ ràng rằng bởi

vì chỉ có các điểm trắng được lưu trong bộ nhớ chính, do đó có đủ bộ nhớ để đọc các lại các trang thuộc lớp I lần thứ hai.

Trước khi trình bày chính thức thuật toán chúng ta đưa ra hai vấn đề tổng quát cho ví dụ trên. Thứ nhất, ví dụ trên giả sử rằng tất cả các trang thuộc lớp I được đánh số trước các trang lớp II và các trang được đọc theo thứ tự tăng dần.

Thứ hai, các trang thuộc lớp I có thể được phân chia vào hai lớp con:

- Lớp I.1 gồm các trang không chứa bất kỳ một đối tượng không trắng nào mà chúng ta cần.

- Lớp I.2 bao gồm các trang chứa các đối tượng không trắng mà chúng ta cần.

Theo như phân tích ở trên là cần đọc lại các trang thuộc lớp I nhưng theo sự phân chia này thì chỉ cần đọc lại các trang thuộc lớp I.2. Để cho đơn giản thì đánh giá này không được mô tả ở thuật toán.

Một phần của tài liệu luận văn thuật toán phát hiện phần tử ngoại lai và ứng dụn (Trang 39 - 43)

Tải bản đầy đủ (PDF)

(75 trang)