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: đột biến và lai ghép. 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. Các ví dụ về sự thể hiện các luật này trong các hệ thống GAs đƣợc mô tả bởi Hooland (1986); Grefenstette (1988); và DeJong et al. (1993).
Để 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ụ, 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ƣ,
(Outlook = OvercastRain) (Wind = Strong) có thể đƣợc thể hiện bởi chuỗi bit có chiều dàl là 5 sau:
Outlook Wind
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnụedụvn 35
Các điều kiện sau của luật (chẳng hạn nhƣ PlayTenis = 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
IFWind = 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 chúng ta 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ậỵ