Thể hiện các giả thuyết

Một phần của tài liệu Giải thuật di truyền cải tiến cho phân lớp (Trang 27 - 28)

Các giả thuyết trong GAs thường được thể hiện dưới dạng chuỗi các bit, để chúng có thể dễ dàng được thực hiện bởi các toán tử di truyền là đột biếnlai ghép [14]. Các giả thuyết được thể hiện bởi chuỗi bit này có thể khá phức tạp. Ví dụ, tập các luật if-then có thể dễ dàng được thể hiện theo cách này, bằng cách chọn một cách thức mã hóa các luật để phân bố các chuỗi con riêng cho mỗi điều kiện trước và điều kiện sau của luật.

Để thấy các luật if-then có thể được mã hóa bằng các chuỗi bit như thế nào, trước tiên hãy xem chúng ta có thể sử dụng chuỗi bit như thế nào để mô tả ràng buộc trên giá trị của thuộc tính đơn. Lấy một ví dụ [20], hãy xem xét thuộc tính Outlook, thuộc tính này có thể lấy bất kì giá trị nào trong ba giá trị: Sunny, Overcast hoặc Rain. Một cách rõ ràng để thể hiện ràng buộc cho Outlook là dùng một chuỗi bit có chiều dài 3, mỗi vị trí bit tương ứng với một trong ba giá trị có thể của nó. Đặt giá trị 1 ở một vài vị trí để chỉ ra rằng thuộc tính được phép lấy giá trị tương ứng. Ví dụ, chuỗi 010 thể hiện ràng buộc Outlook phải lấy giá trị thứ hai trong các giá trị này, hay là Outlook = Overcast. Một cách tương tự, chuỗi 011 thể hiện ràng buộc tổng quát hơn là cho phép hai giá trị có thể, hay là Outlook

= OvercastRain. Chú ý 111 thể hiện ràng buộc có thể tổng quát nhất, chỉ ra rằng chúng ta không quan tâm giá trị nào trong các giá trị có thể của nó mà thuộc tính giữ.

Đưa ra phương pháp này để thể hiện các ràng buộc trên thuộc tính đơn, các liên kết của các ràng buộc trên nhiều thuộc tính có thể dễ dàng được thể hiện bằng cách nối các chuỗi bit tương ứng. Ví dụ, xem xét thuộc tính thứ hai, Wind có thể lấy giá trị Strong

hoặc Weak. Điều kiện trước của luật chẳng hạn như:

𝑂𝑢𝑡𝑙𝑜𝑜𝑘 = 𝑂𝑣𝑒𝑟𝑐𝑎𝑠𝑡 ∪ 𝑅𝑎𝑖𝑛 ∩ (𝑊𝑖𝑛𝑑 = 𝑆𝑡𝑟𝑜𝑛𝑔) Có thể được biểu diễn bởi chuỗi bit có chiều dài là 5 sau:

27

011 10

Các điều kiện sau của luật (chẳng hạn như PlayTennis = yes) có thể được thể hiện theo kiểu tương tự. Vì vậy, toàn bộ luật có thể được mô tả bởi móc nối các chuỗi bit mô tả các điều kiện đầu, cùng với chuỗi bit mô tả điều kiện sau của luật. Ví dụ, luật

IF Wind = StrongTHENPlayTennis = yes

sẽ được thể hiện bởi chuỗi:

Outlook Wind PlayTennis

111 10 10

ở đây 3 bit đầu tiên mô tả ràng buộc “không quan tâm” trên Outlook , hai bit kế tiếp mô tả ràng buộc trên Wind, và hai bit cuối cùng mô tả điều kiện sau của luật (ở đây chúng ta giả sử PlayTennis có thể lấy giá trị Yes hoặc No). Chú ý chuỗi bit thể hiện luật chứa một chuỗi con cho mỗi thuộc tính trong không gian giả thuyết, thậm chí thuộc tính không bị ràng buộc bởi các điều kiện trước. Điều này tạo ra một chuỗi bit có chiều dài cố định để thể hiện các luật, trong đó các chuỗi con ở các vị trí cụ thể mô tả các ràng buộc trên các thuộc tính cụ thể. Đưa ra cách thể hiện này cho các luật đơn, chúng ta có thể thể hiện tập các luật bằng cách móc nối các thể hiện chuỗi bit của các luật riêng biệt.

Trong thiết kế mã hóa chuỗi bit cho một vài không gian giả thuyết, thật là hữu ích để sắp xếp cho mọi chuỗi bit tuân thủ theo cú pháp để thể hiện một giả thuyết được định nghĩa tốt. Để mô tả, chú ý cách mã hóa luật ở đoạn trên, chuỗi bit 111 10 11 thể hiện luật có điều kiện trước không ràng buộc thuộc tính mục tiêu PlayTennis. Nếu tránh xem xét giả thuyết này, chúng ta có thể mượn một cách mã hóa khác (ví dụ phân bố chỉ một bit cho điều kiện sau để chỉ định giá trị là Yes hoặc No), thay đổi các toán tử di truyền để tránh một cách tường minh việc xây dựng các chuỗi bit như thế, hoặc đơn giản gán một độ thích nghi rất thấp cho các chuỗi bit như vậy.

Một phần của tài liệu Giải thuật di truyền cải tiến cho phân lớp (Trang 27 - 28)