HIỆN THỰC GIẢI THUẬT GEN
VIII-MÃ HOÁ :
Để biến đổi chuỗi có chiều dài hữu hạn thành các thông số của bài toán tối ưu hoá .chúng ta đã giới thiệu một mã nhị phân đơn giản để giải bài toán bậc công tắc nhị phân đơn giản .Trong phép mã hoá này chúng ta cho phép nối dài các bit 0 ,1 ,trong đó giá trị 0(hay 1) thứ I chỉ rằng công tắc thứ I là tắt (hay mở) .Chúng ta cũng đã giải mã chuỗi nhị phân này thành số nguyên không dấu. Mặt dù ,cách mã hóa này cho chúng ta một sự linh hoạt nào đó ,nó không cung cấp đủ các chọn lựa mà chúng ta cần để giải quyết các bài toán mà chúng ta gặp trong khoa học ,kinh doanh và kỹ thuật .Trong phần này chúng ta giải quyết 2 nguyên lý cơ bản của sự mã hóa trong GAs để giúp thiết kế mã cho các bài toán khác nhau .Sau đó ,chúng ta sẽ nghiên cứu cách mã hóa chuỗi nhị phân ,đã biến đổi và đa thông số ,mà cách này đã chứng tỏ có ích lợi tropng nhiều bài toán khác nhau .
Về một phương diện nào đó mã hóa một bài toán cho việc tìm kiếm trong GAs không phải là vấn đề lớn ,vì các lập trình viên GAs bị hạn chế nhiều bởi sự hình dung
của họ .Chúng ta đã thấy trong chương trứớc ,các GAs khai thác những sự tương đồng trong các mã tùy ý ,cũng như là những viên gạch xâydẫn đến điểm gần tối ưu .
Chúng ta dựa trên 2 nguyên lý cơ bản để mã hóa GAs : Nguyên lý khối gạch xây có nghĩa và nguyên lý bộ ký tự tối thiểu .
Nguyên lý khối gạch xây có nghiã : Ngưòi sử dụng nên chọn cách mã hóa sau cho các sơ đồ bậc thấp ,ngắn sẽ thích hợp với bài toán đã cho và không có liên hệ tương đối với sơ đồ trên các vị trí khác.
Nguyên lý bộ ký tự tối thiểu :Người sử dụng nên chọn bộ ký tự nhỏ nhất cho phép diễn tả bài toán một cách tự nhiên .
Bảng sau sẽ thấy các chuỗi nhị phân với độ thích nghi của chúng : có được bằng cách giải mã một chuỗi nhị phân thành một số nguyên không dấu và sau đó đánh giá độ thích nghi bằng hàm f(x) = x2 .
Chuỗi nhị phân Trị x Chuỗi không nhị phânĐộ thích nghi
01101 13 N 169
11000 24 Y 576
01000 8 I 64
10011 19 T 361
Sự tương quan giữa mã nhị phân và mã không nhị phân
Nhị phân Không nhị phân
00000 A 00001 B 00010 C … … 11001 Z 11010 1 11011 2 … … 11111 6
Trong trường hợp nhị phân vi65c tìm kiếm những tương đồng quan trọng có thể thực hiện bằng một số lượng nhỏ ký tự của bảng chữ cái .Trong trường hợp không nhị phân ,chúng ta chỉ có 4 chuỗi ký tự đơnvà các giá trị thích nghi của chúng ;không có sự tương đồng về mặt mã để khai thác .
Để hiểu điều này một cách toán học hơn ,chúng ta so sánh số lượng sơ đồ có sẳn trong mã nhị phân với một sơ đồ có sẳn trong mã không nhị phân .Trong cả hai trưòng hợp mã nhị phân và không nhị phân phải mã hóa một số lượng như nhau các giải pháp ,tuy nhiên những phần chính của bộ ký tự khác nhau yêu cầu những chiều dài chuỗi khác nhau .Để cân bằng số điểm trong mỗi không gian ,chúng ta cần 2l = kl’ ,trong đó l là chiều dài chuỗi theo mã nhị phân ,l’ là chiều dài chuỗi theo mã không nhị phân .Số lượng sơ đồ theo mỗi cách mã hóa có thể được tính toán bằng cách sử dụng chiều dài chuỗi tương ứng : 3l cho trường hợp nhị phân va(k+1)l’ cho trường hợp không nhị phân.Dể dà chỉ ra rằng bộ ký tự nhị phân cung cấp một số sơ đồ tối đa trên
một bit thông tin trên bộ mã bất kỳ .Từ đó, những tương đồng này là điều thiết yếu cho sự tìm kiếm,khi chúng ta thiết kế một bộ mã chúng ta nên cực đại hóa số lượng khả dụng của chúng cho GAs khai thác .