Mô hình các lớp bài toán

Một phần của tài liệu XÁC ĐỊNH ĐẶC TRƯNG KHÁCH HÀNG DỰA TRÊN TẬP THÔ (Trang 72)

3. 9– File lưu trữ một số mẫu khách hàng mục tiêu

B.1 Mô hình các lớp bài toán

Khóa luận tốt nghiệp Cử nhân tài năng 02 – Khoa học máy tính Trang 71

Hầu hết các bài toán quyết định đều thuộc lớp NP. Hiển nhiên, một bài toán quyết định thuộc lớp P (có thể giải được bằng các giải thuật tất định) thì sẽ thuộc lớp NP (có thể

giải được bằng các giải thuật không tất định).

P ⊆NP

Hiện nay, vấn đề P có bằng NP hay không vẫn là một câu hỏi chưa có lời giải. Nếu P

= NP thì có nghĩa là tất cả các bài toán lớp NP đều có thể giải được bằng các thuật toán tất định theo thời gian đa thức. Khi đó các bài toán này chính là lớp NP-Complete (P = NP = NP-Complete) [20].

Khóa luận tốt nghiệp Cử nhân tài năng 02 – Khoa học máy tính Trang 72

Phụ lục C: Tập hợp tối đại ngẫu nhiên ưu tiên trong rút gọn thuộc tính

Tóm tắt những điểm chính yếu bài báo A Bit-Chain Based Algorithm for Problem of Attribute Reduction [2]:

I. Tập hợp tối đại ngẫu nhiên ưu tiên

Nhược điểm thường gặp của các giải thuật rút gọn thuộc tính là độ phức tạp rất lớn

thường ở mức NP-khó. Điều này gây khó khăn trong việc triển khai các phương pháp rút

gọn thuộc tính vào thực tế. Trong một nghiên cứu gần đây, một kỹ thuật rút gọn thuộc tính dựa trên chuỗi bit đã được giới thiệu. Giải thuật đề xuất chỉ cố độ phức tạp mức tuyến tính

đem lại nhiều thuận lợi trong việc áp dụng vào thực tế.

1. Không gian toán học

- Chuỗi bit (bit-chain): là dạng < a1a2 ... am > (với ai ∈ {0,1})

- Phép toán giao (⩃): là một phép toán 2 ngôi

< a1a2 ... am >⩃< b1b2 ... bm > = < c1c2 ... cm >, ai, bi ∈ {0,1}, ci = min(ai, bi)

- Phép toán phủ (): Một chuỗi bit Ađược gọi là phủ chuỗi bit B khi và chỉ khi mỗi vịtrí bit 1 được bật ởB, Acó đều có tương ứng một bit 1 được bật lên.

A = < a1a2 ... am >, B = < b1b2 ... bm >, (∀bi=1..m | (bi = 1) → (ai = 1)) ⇒ A  B

Hệ quả 1: Mọi chuỗi nhị phân là kết quả khác 0 của một phép giao luôn bị phủ bởi hai chuỗi tạo ra nó.

- Dạng tối đại ngẫu nhiên ưu tiên (maximal random prior form -S): Dạng tối địa ngẫu nhiên ưu tiên của một tập hợp S các chuỗi bit, ký hiệu là, là một chuỗi bit thỏa mãn 4 tiêu chí:

o Bị phủ nhiều nhất bởi các phần tử trong S

o Bị phủ bởi phần tửđầu tiên trong S

o Có sốlượng bit 1 được bật lên nhiều nhất có thể

o Nếu có nhiều hơn 1 chuỗi bit thỏa 3 tiêu chí trên thì ưu tiên chọn chuỗi bit phủ nhiều phần tửđầu tiên trong S nhất.

Khóa luận tốt nghiệp Cử nhân tài năng 02 – Khoa học máy tính Trang 73 Xem xét ví dụ sau: a b c d S = { (1 0 1 1); (0 0 1 1); (1 1 0 0); (1 0 1 0); } Ta thấy các chuỗi nhị phân:

<0011>: có hai bits 1 được bật lên nhưng chỉ bị phủ bởi hai chuỗi đầu tiên của S. <1000>: có một bit 1 được bật lên và bị phủ bởi ba chuỗi nhị phân trong S. <0010>: có một bit 1 được bật lên và bị phủ bởi ba chuỗi nhị phân trong S.

Trong hai chuỗi <1000> và <0010>, chuỗi <0010> bị phủ bởi hai phần tử đầu tiên

trong S. Ta ưu tiên chọn <0010> là dạng δ − S.

- Các phần tử tối đại ngẫu nhiên ưu tiên (maximal random prior elemens) trong tập hợp các chuỗi nhị phân S là các phần tử có dạng sau:

Phần tử thứ 1 (p1): là dạng δ − S Phần tử thứ 2 (p2): là dạng δ − S\{ x∈S |x p1 } Phần tử thứ 3 (p3): là dạng δ − S\({ x∈S |x p1 } ∪ { x∈S |x p2 }) … Phần tử thứ k (pk): là dạng δ − S\({ x∈S |x p1 } ∪ { x∈S |x p2 }∪…∪{ x∈S |x pk-1 }) và S = { x∈S |x p1 } ∪ { x∈S |x p2 }∪…∪{ x∈S |x pk}

- Tập hợp P các phần tử tối đại ngẫu nhiên ưu tiên của tập hợp các chuỗi nhị phân S gọi là tập hợp tối đại ngẫu nhiên ưu tiên (maximal random prior set) của S.

Hệ quả 2: Các phần tử trong tập tối đại ngẫu nhiên ưu tiên P luôn không có chung vị

trí bit 1 được bật lên.

Hệ quả 3: Khi tập S được sắp xếp theo thứ tự khác nhau sẽ tạo ra các tập P không giống nhau.

Khóa luận tốt nghiệp Cử nhân tài năng 02 – Khoa học máy tính Trang 74

2. Thuật toán đề xuất:

a. Ý tưởng:

Xét một hàm phân biệt fn biểu thức giao với nhau (∧). Mỗi biểu thức trong f chứa các biến , , … , đại diện cho m thuộc tính hợp (∨) với nhau.

Do tính chất giao hoán của đại số bool, ta có thể sắp xếp n biểu thức theo dạng sau:

= ∧ ∧…∧ Trong đó: = ⋀ ( ∨… ) = ⋀ ( ∨… ) không chứa = ⋀ ( ∨… ) không chứa , … = ⋀ ( ∨… ) không chứa , , … , ∀ = 1. . ; 0≤ ≤ | + +⋯+ = ; ∀ ≠ 0; 1 ≤ ≤ | = ∨ ; là biểu thức logic. Vậy = ⋀ = ⋀( ∨ ) = (⋀ )∨(⋀ ) Ta bỏ qua không xét (⋀ ). Còn lại (⋀ ) chính là một rút gọn của hàm f.

Để xây dựng tập tối đại ngẫu nhiên ưu tiên P của tập hợp các chuỗi nhị phân S, ta lần

lượt thực hiện phép giao từng phần tử trong S với (các) phần tử trong P. Nếu P rỗng thì thêm phần tử Sđang xét vào P. Nếu kết quả phép giao khác 0, thêm chuỗi kết quả vừa nhận được vào P. Nếu tất cả phép giao đều trả về chuỗi các bit nhị phân 0 thì thêm phần tửS vừa thực hiện phép giao vào P. Hệ quả 2đảm bảo các phần tử trong Pkhông được phủ lẫn nhau. Tính phủ giữa các phần tử trong P sẽ được kiểm tra. Nếu phần tử nào trong P phủ phần tử khác thì sẽ bị loại bỏ khỏi P.

Do Hệ quả 1, ta không cần thiết kiểm tra tính phủ của các phần tử trong P. Mặc định, nếu một phần tửS thực hiện phép giao với một phần tử trong P tạo ra kết quả khác 0 thì có nghĩa là kết quả thu được sẽ bị phủ bởi hai phần tử tạo ra nó và hiển nhiên nó cũng sẽ không phủ hay bị phủ bởi các phần tử khác trong P. Bên cạnh đó, nếu một phần tửS thực hiện phép giao với tất phần tử trong Pđều trả về chuỗi các bits nhị phân 0, thì hiển nhiên phần tửS này

Khóa luận tốt nghiệp Cử nhân tài năng 02 – Khoa học máy tính Trang 75

và các phần tử trong P không có chung vị trí bit 1 được bật lên. Vậy thêm phần tửSđó vào P

sẽ vẫn thỏa Hệ quả 2.

b. Thuật toán:

FIND_MaximalRandomPriorSet Input: m-bit-chains set S

Output: maximal random prior set P

1. P = ∅;

2. for each s in S do 3. flag = False;

4. for each p in P do

5. temp = s ⩃ p;

6. if temp <> 0 then //temp differs from zero chain 7. replace p in P by temp;

8. flag = True; 9. break;

10. end if; 11. end for;

12. if flag = False then

13. P = P ∪ {s}; //s becomes ending element of P

14. end if; 15. end for; 16. return P;

c. Tính đúng đắn của thuật toán:

Định lý 1: Thuật toán FIND_MaximalRandomPriorSet có thể tìm ra được tập hợp tối

đại ngẫu nhiên ưu tiên P của một tập hợp các chuỗi nhị phân S với một thứ tựcho trước.

Chứng minh (xem thêm [2])

Dựa vào Định lý 1 có thể kết luận: Thuật toán FIND_MaximalRandomPriorSet có thể

tìm ra được tập hợp tối đại ngẫu nhiên ưu tiên P của một tập hợp các chuỗi nhị phân S cho

Khóa luận tốt nghiệp Cử nhân tài năng 02 – Khoa học máy tính Trang 76

3. Ví dụ minh họa:

Gió Nhiệt độ Độẩm Thời tiết Chơi tennis

x1 Có Nóng Vừa Nắng Có

x2 Có Mát Vừa Mưa Không

x3 Không Nóng Vừa Mưa Không

x4 Không Ấm áp Cao Mưa Có

Bảng C.1: Một hệ quyết định “Chơi tennis”

Ta ký hiệu thuộc tính Gió là a; Nhiệt độ là b; Độẩm là c; Thời tiết là d. Dựa vào bảng quyết định C.1, ta có ma trận phân biệt: x1 x2 x3 x4 x1 x2 b,d x3 a,d x4 a,b,c b,c

Bảng C.2: Ma trận phân biệt của hệ quyết định “Chơi tennis”

Dựa vào bảng C.2, ta có hàm phân biệt f = (b∨d)∧(a∨d)∧(a∨b∨c)∧(b∨c).

Từ hàm phân biệt f có được từ hệ quyết định trong bảng C.1, ta thu được tập hợp S

như sau: S={ ( 0 1 0 1 ); ( 1 0 0 1 ); ( 1 1 1 0 ); ( 0 1 1 0) } Khởi tạo P = ∅. Lần lượt dò từng phần tử trong S: S[1]= (0 1 0 1)  thêm (0 1 0 1) vào P  P = { (0 1 0 1) } S[2]=(1 0 0 1)  (1 0 0 1) ⩃ (0 1 0 1) = (0 0 0 1)  xóa phần tử (0 1 0 1) trong P; thêm (0 0 0 1) vào P  P = { (0 0 0 1)} S[3] = (1 1 1 0)  (1 1 1 0) ⩃ (0 0 0 1) = (0 0 0 0)  thêm (1 1 1 0) vào P  P = { (0 0 0 1); (1 1 1 0)} S[4] = (0 1 1 0)  (0 1 1 0) ⩃ (0 0 0 1) = (0 0 0 0); (0 1 1 0) ⩃ (1 1 1 0) = (0 1 1 0) 

Khóa luận tốt nghiệp Cử nhân tài năng 02 – Khoa học máy tính Trang 77

(0 0 0 1)  d và (0 1 1 0)  b∨c

Vậy, dựa vào P ta có hàm rút gọn của f: d∧(b∨c).

Kết luận (d∧b) và (d∧c) là hai rút gọn của hàm phân biệt f.

II. So sánh chiến lược Johnson và giải thuật áp dụng chuỗi bit trong rút

gọn thuộc tính

Có rất nhiều kỹ thuật rút gọn thuộc tính được nghiên cứu hiện nay. Trong đó, giáo sư

David S. Johnson của Học viện Công Nghệ Massachusetts đã giới thiệu một chiến lược tìm lời giải khá đơn giản áp dụng cho bài toán rút gọn thuộc tính [17]. Chiến lược Johnson có nội dung khá dễ hiểu. Nó giới thiệu một cách rút gọn hàm phân biệt theo kỹ thuật của giải thuật tham lam (Greedy Algorithm) rất đơn giản. Hiện nay, nhiều nghiên cứu vẫn sử dụng chiến lược Johnson làm nền tảng cho bài toán rút gọn thuộc tính [18][19].

Sơ lược chiến lược Johnson [17][18][19]: Từ hàm phân biệt rút ra từ ma trận phân biệt: i. Chọn thuộc tính xuất hiện nhiều nhất trong f

ii. Loại bỏ các biểu thức chứa thuộc tính này ra khỏi f

iii. Nếu f ≠ 0 thì quay lại bước (i), nếu không thì tiếp tục bước (iv)

iv. Các thuộc tính bị chọn và bị loại bỏ khỏi f chính là các thuộc tính quan trọng nhất của f. Tập hợp các thuộc tính này chính là một rút gọn của hàm f.

Chiến lược Johnson tìm ra rút gọn (⋀ ) bằng cách đếm số lần xuất hiện của các thuộc tính trong f và chọn ra những thuộc tính xuất hiện nhiều nhất.

Thuật toán rút gọn thuộc tính dựa trên chuỗi bit và thuật toán Johnson được cài đặt nhằm so sánh mức độ hiệu quả. Kết quả thực nghiệm cho cho thấy việc áp dụng tập hợp tối

Khóa luận tốt nghiệp Cử nhân tài năng 02 – Khoa học máy tính Trang 78

Một phần của tài liệu XÁC ĐỊNH ĐẶC TRƯNG KHÁCH HÀNG DỰA TRÊN TẬP THÔ (Trang 72)