3. 9– Các mẫu khách hàng mục tiêu sau khi rút gọn thuộc tính
A.2 Bảng Opportunity Losses
Trong đó, là thiệt hại cơ hội của phương án i khi khách hàng thuộc loại j. Đây
cũng chính là số tiền thiệt hại khi không chọn được phương án tối ưu.
Expected Opportunity Loss:
( ) = .
Thông thường, người ta thường chọn phương án có EOL nhỏ nhất làm phương án tối
ưu (không xét tới các thông tin về thuộc tính khách hàng)
( ) = 0.7∗0 + 0.3∗3 = $0.9
( ) = 0.7∗1 + 0.3∗0 = $0.7
Chọn phương án A – Không gửi giới thiệu
Có thể cải tiến việc lựa chọn phương án dựa trên các thuộc tính khách hàng
Công thức Bayes:
= . ( | )
Khóa luận tốt nghiệp Cử nhân tài năng 02 – Khoa học máy tính Trang 65
Khách hàng Xác suất hậu nghiệm (Posterior probabilities)
( | ) ( | ) 1 .931 .069 2 .874 .126 3 .779 .221 4 .544 .456 5 .599 .401 6 .640 .359 7 .517 .483 8 .268 .732 Bảng A.3: Các xác suất hậu nghiệm của khách hàng
Để xác định phương án áp dụng cho các khách hàng, Paul E. Green giới thiệu hai chỉ
số Critical probability và Likelihood ratio:
a. Critical probability ∗ = ( )
( ) ( )
( ) = $1 là số tiền bị thiệt hại do thực hiện phương án khi khách hàng thuộc loại
( ) = $3 là số tiền bị thiệt hại do thực hiện phương án khi khách hàng thuộc loại ∗ = = .75 ( | ) > ∗ → ( | ) < ∗ → ( | ) = ∗ → b. Likelihood ratio ( ) = ( | ) ( | ) Critical ratio ∗ = ( ). ( ) ( ). ( )= . ∗ . ∗ = 1.29 ( ) > ∗ → ( ) < ∗ → ( ) = ∗ →
Khóa luận tốt nghiệp Cử nhân tài năng 02 – Khoa học máy tính Trang 66
Critical Probability ∗ = .75 Critical Ratio ∗ = 1.29 ( | ) Phương án ( ) Phương án 1 .931 5.822 2 .874 2.985 3 .779 1.509 4 .544 .511 5 .599 .639 6 .640 .762 7 .517 .459 8 .268 .157
Bảng A.4: Các giá trị Critical Probability và Likelihood ratio
Chọn phương án đối với mẫu , ,
Chọn phương án đối với mẫu , , , ,
Kiểm chứng tối ưu bằng cách tính Expected Opportunity Loss:
( ) = ( ∩ ). ( ) = ( ). ( | ). ( )
( ) = ( ∩ ). ( ) = ( ). ( | ). ( )
= ( ) + ( )
Phương án
Xác suất đồng thời
(Joint probabilities) Expected opportunity loss
( ). ( | ) ( ). ( | ) 1 .1834 .0135 .0405 2 .1400 .0201 .0603 3 .1183 .0336 .1008 4 .0644 .0540 .0644 5 .0756 .0507 .0756 6 .0539 .0303 .0539 7 .0434 .0405 .0434 8 .0210 .0573 .0210 Tổng: .4599
Khóa luận tốt nghiệp Cử nhân tài năng 02 – Khoa học máy tính Trang 67
.4599 < .7 việc lựa chọn phương án dựa trên thuộc tính của khách hàng cho ra kết quả tối ưu hơn so với cách cũ.
Sốlượng thuộc tính tối ưu cho việc tính toán
Để việc phân tích được dễ kiểm soát, hai giả thiết được thành lập:
- Xác suất có điều kiện của từng thuộc tính ứng với trạng thái là như nhau
( | ) = 0.7 ( | ) = 0.3
- Xác suất có điều kiện này độc lập với các thuộc tính khác (trong cùng một đối
tượng)
( | ) = 1− ( | ) = 0.3 ( | ) = 1− ( | ) = 0.7
Một số thông sốđược thiết lập:
( ) = 0.8
( ) = 0.2
( ) = $2
( ) = $2
Chi phí tính toán một thuộc tính : Measurement Cost = $0.03.
Cho = 0,∞ ứng với số lượng thuộc tính (number of attributes) cần xem xét. Ta dựa vào các tính toán ởtrên đểtính được các giá trị EOL tương ứng cho từng giá trị k.
Hình A.1 (trang sau) biểu diễn xu hướng của giá trị EOL và Measurement Cost. Ta thấy mức chi phí tổng cộng (total cost) $0.338 là thấp nhất ứng với k=5 (5 thuộc tính). Như
Khóa luận tốt nghiệp Cử nhân tài năng 02 – Khoa học máy tính Trang 68
Khóa luận tốt nghiệp Cử nhân tài năng 02 – Khoa học máy tính Trang 69
Phục lục B: Các lớp bài toán P và NP
Bài toán quyết định (decision problems):là bài toán mà đầu ra chỉ có thể là câu trả
lời ‘yes’ hoặc ‘no’(đúng/sai; 1/0).
Giải thuật tất định (deterministic algorithm): là giải thuật ở mỗi bước chỉ có một việc duy nhất được thực hiện kế tiếp. Phần lớn các giải thuật hiện nay là giải thuật tất định.
Giải thuật không tất định (nondeterministic algorithm): là các giải thuật khi gặp một sự lựa chọn giữa nhiều khảnăng, nó có thể đoán biết để chọn ra khảnăng thích đáng.
Lớp bài toán P (polynomial): là một lớp các bài toán quyết định có thể giải được trong thời gian đa thức (polynomial time) bằng các thuật toán tất định (deterministic algorithms).
Ví dụ: Bài toán tìm cây khung nhỏ nhất giải được nhờ thuật toán Prim với thời gian O(n2) thuộc lớp bài toán P.
Lớp bài toán NP (nondeterministic polynomial): là lớp bài toán quyết định có thể được giải bằng các giải thuật không tất định (nondeterministic algorithms) trong thời gian đa
thức. Nói cách khác, NP là lớp các bài toán quyết định mà để xác định câu trả lời của nó chúng ta có thểđưa ra các bằng chứng ngắn gọn dễ kiểm tra trong thời gian đa thức.
Ví dụ: Bài toán kiểm tra tính hợp số: “Có phải n là hợp số không?” là một bài toán lớp NP. Để xác nhận câu trả lời ‘yes’ cho đầu vào n ta có thể đưa ra một ước số b (1<b<n)
của n. Để kiểm tra xem b có phải là ước số của n hay không ta có thể thực hiện phép chia n
cho b sau thời gian đa thức. Trong ví dụ này dễ thấy b là bằng chứng ngắn gọn (b<n) và dễ
kiểm tra (có thuật toán thời gian tính đa thức để kiểm tra xem b có là ước số của n).
Tính khả thu giảm đa thức (polynomial reducibility): Một bài toán quyết định D1
được gọi là thu giảm đa thức về bài toán quyết định D2 nếu tồn tại một hàm t có thể chuyển đổi bài toán D1 sang D2 sao cho:
1. Kết quả đầu ra của D1 chính bằng kết quả đầu ra của D2.
2. hàm t có thể được tính bằng một giải thuật có thời gian đa thức (polynomial-time algorithm).
Lớp bài toán NP-đầy đủ (NP-Complete): Một bài toán quyết định D gọi là NP-đầy đủ nếu:
Khóa luận tốt nghiệp Cử nhân tài năng 02 – Khoa học máy tính Trang 70
1. Nó thuộc về lớp NP.
2. Tất cả các bài toán trong lớp NP đều có thể thu giảm đa thức về D.
Lớp bài toán NP-khó (NP-hard): là lớp bài toán NP không có thuật toán tất định để
giải nó theo thời gian đa thức mà chỉ có những thuật toán giải trong thời gian hàm mũ.
Một số bài toán NP-khó:
Bài toán du lịch (Travelling salesman problem): cho một tập các thành phố và khoảng
cách giữa mỗi cặp thành phố, tìm một lộ trình đi qua tất cả mọi thành phố sao cho tổng
khoảng cách của lộ trình nhỏ hơn M.
Bài toán tìm chu trình Hamilton: cho một đồ thị, tìm một chu trình đơn đi qua tất cả các đỉnh.
Bài toán rút gọn một hàm đại số bool.
Hình B.1: Mô hình các lớp bài toán (nguồn: http://en.wikipedia.org/wiki/File:P_np_np-complete_np-hard.svg) complete_np-hard.svg)
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 f có n 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