0
Tải bản đầy đủ (.pdf) (69 trang)

Mã hóa ký tự và các kỹ thuật ghéo chép mớ

Một phần của tài liệu BIỂU DIỄN NHIỄM SẮC THỂ TRONG GIẢI THUẬT DI TRUYỀN VÀ CÁC TOÁN TỬ DI TRUYỀN CHUYÊN BIỆT. (Trang 32 -37 )

t/ T= 0.90, b=2(t, y)

2.3.2. Mã hóa ký tự và các kỹ thuật ghéo chép mớ

Giải thuật di truyền mô phỏng sự tiến hoá của thế giới tự nhiên, ở đó thông tin về một cấu trúc sống được mã hoá dưới dạng nhiễm sắc thể. Do đó để áp dụng giải thuật di truyền vào bài toán TSP, ta cũng phải tìm cách mã hoá các lời giải của bài toán dưới dạng các chuỗi nhiễm sắc thể và xây dựng qui tắc đánh giá độ thích nghi của nó theo ngữ cảnh của bài toán.

Kí hiệu các thành phố là A, B, C, ... mỗi nhiễm sắc thể - sự mã hoá của lời giải - sẽ là một danh sách hoán vị của A, B, C ... biểu diễn lộ trình mà người thương gia đã đi qua. Thí dụ GFHBACDE sẽ là kí hiệu của hành trình từ G -> F -> H -> ... -> E. Mỗi thành phố (gien) sẽ chỉ xuất hiện trong danh sách này chỉ một lần. Vấn đề này dẫn tới khó khăn không thể áp dụng các kĩ thuật sinh sản, đột biến thường được sử dụng trong giải thuật di truyền chuẩn. Ví dụ: Với ý nghĩa ghép chéo thông thường ta nhận được từ cặp bố mẹ 1, 2 các con cái sau:

- Ghép chéo tại một điểm: Bố mẹ Con cái

--- #1 ABC|DEFGH ABC|BACDE #2 GFH|BACDE GFH|BACDE

33 - Ghép chéo tại hai điểm:

Bố mẹ Con cái

--- #1 AB|CDE|FGH AB|HBA|FGH #2 GF|HBA|CDE GF|CDE|CDE

Điều kiện chỉ xuất hiện một lần trong danh sách hoán vị ở hai thí dụ trên đã bị vi phạm. Do đó đòi hỏi phải xây dựng các kĩ thuật ghép chéo mới phù hợp với ý nghĩa của bài toán.

Ghép chéo riêng từng phần (Partially matched crossover - PMX)

PMX được cải tiến từ phương pháp ghép chéo hai điểm thông thường. Bắt đầu bằng việc chọn ra hai điểm, thí dụ 2 và 5:

Cha mẹ 1: AB|CDE|FGH Cha mẹ 2: GF|HBA|CDE

Giải thuật PMX nhận thấy gien H có trong nhiễm sắc thể 2 sẽ được thay thế bởi gien C trong nhiễm sắc thể 1, vì vậy nó sẽ chuyển đổi H của nhiễm sắc thể 1 thành C và C trong nhiễm sắc thể 2 sang H. Quá trình được thực hiện tương tự với hai gien còn lại và cuối cùng nhận được các con cái:

Con cái 1: ED|HBA|FGC Con cái 2: GF|CDE|HBA

Mỗi con cái là một hoán vị mới, hoán chuyển một số gien trong khi vẫn giữ nguyên các đoạn cấu trúc của bố mẹ.

Ghép chéo có thứ tự (Order crossover - OX)

OX dời chỗ một số gen và dịch chuyển các gien khác. Lấy ví dụ ở trên, với kí hiệu "-" biểu thị gien bỏ trống ở vị trí đó:

34 Cha mẹ 1: AB|CDE|FGH Cha mẹ 2: GF|HBA|CDE Con cái 1: --|HBA|FG- Con cái 2: GF|CDE|---

Ở sau điểm ghép chéo thứ hai, OX sẽ dịch các gien sang trái (có thể coi các đầu mút của nhiễm sắc thể nối với nhau nếu cần thiết), điền các vị trí trống của gien và để trống đoạn hoán đổi:

Con cái 1: BA|---|FGH Con cái 2: DE|---|GFC

Cuối cùng OX sẽ hoán đổi đoạn ghép chéo nằm giữa hai điểm, tạo ra các con cái mới:

Con cái 1: BA|CDE|FGH Con cái 2: DE|HBA|GFC

Trong khi PMX giữ nguyên vị trí của gien trong chuỗi nhiễm sắc thể, thì OX lại duy trì thứ tự các gien trong chuỗi.

Ghép chéo có chu kỳ (Cycle crossover - CX)

Nguyên tắc làm việc của CX hoàn toàn khác, nó thực hiện việc hoán đổi một tập hợp cụ thể các gen. Thí dụ:

Cha mẹ 1: ABCDEFGH Cha mẹ 2: GFHBACDE

Để tạo con cái, CX bắt đầu với các thành phố đầu tiên trong các nhiễm sắc thể bố mẹ:

Con cái 1: G--- Con cái 2: A---

35

Tìm trong cha mẹ 1, CX thấy G ở vị trí 7 và thực hiện hoán đổi ở vị trí đó:

Con cái 1: G---D- Con cái 2: A---G-

Quá trình tìm và hoán đổi tiếp tục cho đến khi gien bị thay thế đầu tiên trong cha mẹ 1, A, được bắt gặp. Cuối cùng con cái nhận được như sau:

Con cái 1: GECBAFDH Con cái 2: ABHDECGE

Phép đảo vị trí (Inversion operator)

Để tăng tính đa dạng có thể đưa thêm vào bài toán phép hoán vị, thực hiện việc đảo ngược vị trí các gien trong chuỗi nhiễm sắc thể. Thí dụ:

ABC|DEFGH đảo thành ABCHGFED

G|FHB|ACDE đảo thành GBHFACDE

Phép đột biến

Được định nghĩa lại dưới dạng hoán vị vị trí của hai gien. Thí dụ: Hoán vị các gien A và E trong chuỗi ABCDEFGH sẽ cho con cái là EBDEAGFH.

Sau khi xây dựng phép mã hoá dưới dạng nhiễm sắc thể và định nghĩa các phép toán sinh sản, có thể đưa ra các bước cơ bản của giải thuật di truyền để hiện thực chương trình:

Quần thể ban đầu được hình thành bằng phép hoán vị Josephus. Giả sử có một danh sách các thành phố được kí hiệu từ A tới H, có thể tạo một hoán vị bằng việc chọn điểm xuất phát và một số đếm - thí dụ F và 5. Giả thiết xem danh sách có dạng vòng tròn bằng cách nối liền hai đầu mút, đếm 5 thành phố ở bên phải F ta được C - thành phố đầu tiên trong danh sách hoán vị. Tiếp tục từ C đếm 5 thành phố khác sẽ được thành phố thứ hai trong danh sách hoán vị

36

- H. Lập lại quá trình này cuối cùng ta nhận được danh sách hoán vị CHFEGBDA.

Như vậy bằng cách chọn ngẫu nhiên điểm bắt đầu và số đếm, chương trình có thể tạo ra một tập gồm các danh sách hoán vị khác.

Kết luận chƣơng 2

Chương 2 đã đi sâu vào phân tích giải thuật di truyền sử dụng phương pháp biểu diễn nhiễm sắc thể bằng mã hóa nhị phân, bằng mã hóa số thực và bằng mã hóa ký tự, đi cùng với các phương pháp biểu diễn nhiễm sắc thể trên luận văn cũng đã trình bày các toán tử di truyền chuyên biệt.

Mỗi một phương pháp biểu diễn nhiễm sắc thể có một đặc điểm riêng và có thể phục vụ các lớp bài toán khác nhau, ví dụ như giải thuật di truyền sử dụng biểu diễn nhị phân có thể tìm cực trị các hàm phi tuyến với số biến nhỏ, giải thuật di truyền sử dụng mã hóa số thực có thể dùng tìm cực trị các hàm với số biến lớn và giải thuật di truyền sử dụng mã hóa ký tự có thể sử dụng giải bài toán người du lịch, …

37

Chƣơng 3

TỐI ƢU HÓA CÁC TẬP MỜ TRONG BÀI TOÁN XẤP XỈ MÔ HÌNH MỜ CỦA CAO - KANDEL

Một phần của tài liệu BIỂU DIỄN NHIỄM SẮC THỂ TRONG GIẢI THUẬT DI TRUYỀN VÀ CÁC TOÁN TỬ DI TRUYỀN CHUYÊN BIỆT. (Trang 32 -37 )

×