Lai ghép NST theo mã hóa hoán vị

Một phần của tài liệu Thuật toán di truyền giải bài toán cây khung truyền thông tối ưu (Trang 57)

Lai ghép một điểm cắt:

 Vị trí cắt được chọn một cách ngẫu nhiên.

Cha Mẹ Con

11001011 AND 11011111 11001001

Cha Mẹ Con

49

 Con mới được sinh ra sẽ có phần gen đầu cho đến vị trí cắt giống mẹ.  Duyệt NST cha từ đầu, gen nào chưa có trong NST của con thì đưa

vào.

Mẹ 1234 | 56789

Cha 9876 | 54321

Con 1234 | 98765

Bảng 2.5. Lai ghép một điểm cắt mã hóa hoán vị

2.6 Các phƣơng pháp đột biến NST

Khi thực hiện phép lai ghép, thường thu được những NST ngày càng tốt hơn,

NST con gồm những gen chung tốt nhất của các cha mẹ. Tuy nhiên, nếu các NST

đem đi lai ghép có bộ gen gần giống nhau thì NST con sinh ra càng ngày càng giống với cha mẹ, cuối cùng dẫn tới quần thể gồm toàn các cá thể giống nhau. Hiện tượng này cũng xảy ra ngoài tự nhiên nếu cho giao phối những cá thể có họ hàng gần với nhau (gọi là giao phối cận huyết). Trong GA, phép đột biến được thực hiện sau khi lai ghép sẽ làm cho quần thể phong phú hơn, khắc phục được hiện tượng thoái hóa quần thể. Bên cạnh đó, các phép đột biến cũng hướng tới việc làm tăng độ thích nghi của cá thể. Song thực chất, không phải lúc nào đột biến cũng đạt được cả hai mục đích nêu trên. Cũng giống như phép lai ghép, các phương pháp đột biến phụ thuộc nhiều vào cách mã hóa lời giải và bài toán cụ thể:

2.6.1 Đột biến theo NST mã hóa nhị phân

50

Trước đột biến 1100110010

Sau đột biến 1101110010

Bảng 2.6. Phép đảo bit mã hóa nhị phân

2.6.2 Đột biến theo NST mã hóa hoán vị

Hoán đổi thứ tự:

Thứ tự các gen được hoán đổi được lựa chọn ngẫu nhiên

Trước đột biến 123456789

Sau đột biến 173456289

Bảng 2.7. Hoán vị thứ tự mã hóa hoán vị

2.7 Các chiến lƣợc nạp lại quần thể

Chiến lược nạp lại quần thể là một trong những bước rất quan trọng của thuật toán di truyền. Nó dường như quyết định khả năng và tốc độ hội tụ của thuật toán di truyền. Dựa vào chiến lược nạp lại quần thể có thể phân loại các thuật toán di truyền. Sau đây là một số chiến lược nạp lại quần thể:

2.7.1 Chiến lƣợc nạp lại hoàn toàn

Tạo ra số NST mới bằng kích thước quần thể và quần thể mới bao gồm toàn các NST mới này, không có NST nào của thế hệ trước.

51

Hình 2.9. Chiến lược nạp lại hoàn toàn

Đây là chiến lược đơn giản nhất. Mỗi NST chỉ tồn tại trong một thế hệ, sang thế hệ tiếp theo sẽ được thay mới hoàn toàn. Như vậy sẽ xảy ra trường hợp là các

NST tốt sẽ không được giữ lại, do đó chiến lược này không phải là chiến lược phù hợp cho việc cải thiện lời giải qua các thế hệ.

2.7.2 Chiến lƣợc nạp lại ngẫu nhiên

Tạo ra số NST mới ít hơn kích thước quần thể và thay thế một cách ngẫu nhiên các NST ở thế hệ trước bằng NST ở thế hệ sau:

Hình 2.10. Chiến lược nạp lại ngẫu nhiên

Chiến lược này luôn đảm bảo toàn bộ số con được sinh ra sẽ được nạp vào, nhưng số lượng con mới được sinh ra ít, và chiến lược ngẫu nhiên không đảm báo các NST tốt của thế hệ trước sẽ được giữ lại, và có thể nó sẽ được thay thế bởi một

NST tồi hơn rất nhiều so với nó. Nạp lại ngẫu nhiên vẫn khả thi hơn chiến lược nạp lại hoàn toàn khi các NST có thể tồn tại lớn hơn hoặc bằng hai thế hệ.

52

2.7.3 Chiến lƣợc nạp lại theo mô hình cá thể ƣu tú

Tạo ra số NST mới ít hơn kích thước quần thể và thay thế chúng cho các bố mẹ có độ thích nghi thấp:

Hình 2.11. Chiến lược nạp lại theo mô hình cá thể ưu tú

Các NST tốt sẽ sống sót qua nhiều thế hệ. Qua mỗi thế hệ, sẽ có một số lượng nhất định các NST tồi bị thay thế. Tuy chiến lược này không kiểm tra các NST con nạp vào có tốt hơn NST bố mẹ bị thay thế hay không nhưng tính chất của quần thể không bị ảnh hưởng. Vì nếu quần thể nạp vào các NST con tồi thì những NST con này chắc chắn sẽ bị loại ra trong thế hệ tiếp.

53

CHƢƠNG 3. THUẬT TOÁN DI TRUYỀN GIẢI BÀI TOÁN CÂY KHUNG

TRUYỀN THÔNG TỐI ƢU

3.1 Các phƣơng pháp mã hóa cây

Một trong các yếu tố quan trọng nhất trong việc thiết kế giải thuật di truyền là biểu diễn cá thể. Phương pháp mã hóa – giải mã cá thể phải đảm bảo tính hiệu quả, tính cụ bộ và kế thừa cho phép các phương pháp giải thuật di truyền có thể tìm kiếm một cách tối ưu.

Giải thuật di truyền sẽ xây dựng và duy trì một quần thể cấu trúc dữ liệu biểu diễn không gian giả thuyết của bài toán. Trong GA, công việc giải mã sẽ xây dựng phương án mà cấu trúc dữ liệu đó biểu diễn. Cấu trúc dữ liệu được gọi là kiểu gen, còn phương án được biểu diễn đó được gọi là kiểu hình.

Để thuật giải di truyền có thể làm việc có hiệu quả thì cách biểu diễn cây phải thoả mãn các điều kiện sau:

 Cách mã hoá đó phải biểu diễn được tất cả những cây có thể có.

 Cách mã hoá đó là không thiên kiến. Điều này đảm bảo quần thể ban đầu của GA đa dạng, và GA có cơ hội "vươn tới " được tất cả các phần tử trong không gian tìm kiếm.

 Cách mã hoá biễu diễn cho một cây duy nhất tương ứng với nó. Nếu nó biểu diễn cả những phương án không phải là cây (hoặc cây khung) thì rất khó khăn trong việc khởi tạo quần thể ban đầu. Trong trường hợp cách mã hóa có thể tạo ra cây không hợp lệ, cần xây dựng phương pháp “sửa chữa” cá thể không hợp lệ thành cá thể hợp lệ.

 Cách biểu diễn đó phải đảm bảo đánh giá hàm thích nghi dễ dàng và thiết lập các ràng buộc (nếu có).

 Nó phải có tính cục bộ chấp nhận được, nghĩa là một thay đổi nhỏ trong chuỗi mã hoá chỉ gây ra những thay đổi nhỏ trong cây tương ứng.

54

3.1.1 Phƣơng pháp mã hoá Prufer

3.1.1.1 Lịch sử mã hóa cây sử dụng số Prufer

Cayley (1889) chỉ ra số lượng cây khung của một đồ thị đầy đủ gồm n đỉnh là nn-2. Năm 1918, Prufer đã chứng minh được định lý trên bằng cách chỉ ra sự tương ứng giữa cây khung và chuỗi ký tự có độ dài n-2 từ n ký tự. Xâu này được gọi là số Prufer. Từ số Prufer có thể tái tạo chỉ một cây khung tương ứng và ngược lại.

Dựa vào phương pháp mã hóa này, các nhà nghiên cứu về giải thuật di truyền đã áp dụng để mã hóa các cây trong bài toán. Palmer đã sử dụng phương pháp mã hóa này trong luận văn tiến sỹ ở đầu thế kỷ 19 (Palmer 1994; Palmer và Kershebaum 1994a; Palmer and Kershebaum 1994b) và so sánh cách biểu diễn số Prufer và một số cách biểu diễn khác khi giải quyết bài toán cây khung truyền thông tối ưu.

3.1.1.2 Mã hóa và tái tạo số Prufer từ cây khung Tính toán số Prufer tƣơng ứng từ một cây khung

Gọi deg(i) là bậc của đỉnh i, hay là số liên kết với i. Do một cây khung của đồ thị có chính xác n-1 cạnh nên deg(i) sẽ nằm trong khoảng từ 1 đến n-1.

deg(i) = 1 nếu nó là nút lá,

deg(i) = n-1 nếu nó là nút trung tâm của cây hình sao. Và ta dễ dàng thấy rằng, trong cây luôn có ít nhất hai nút có bậc là 1.

Mã hoá Prufer sẽ biểu diễn cây là một chuỗi có chiều dài n-2, trong đó mỗi vị trí là một nhãn đỉnh. Theo định lý Cayley, số lượng số Prufer biểu diễn cây là

2

n

n n

P . Với ánh xạ 1 - 1 thì mỗi số Prufer sẽ mã hoá chính xác một cây và một cây sẽ được biểu diễn bởi duy nhất một số Prufer tương ứng.

Để tính toán số Prufer từ một cây, chúng ta sẽ gán nhãn cho tất cả các đỉnh trên cây từ 1 đến n. Thao tác xây dựng số Prufer như sau:

55

(deg(i) = 1) (chắc chắn tồn tại i)

Bƣớc 2: j là nút liên kết với i (có chính xác một nút như vậy), nhãn của nút j

sẽ là chữ số đầu tiên trong số Prufer.

Bƣớc 3: Loại bỏ nút i và cạnh (i, j) ra khỏi cây (bậc của nút j giảm đi 1).

Bƣớc 4: Quay lại bước 1 cho đến khi chỉ còn hai nút để loại bỏ.

Ví dụ cây khung:

Hình 3.1. Cây khung được mã hoá theo số Prufer = 2565

Theo hình vẽ:

Các nút có bậc là 1 bao gồm: 1, 3, 4. Trong đó 1 là nhãn nút nhỏ nhất, liên kết với nút 1 là nút 2. Theo thuật toán ta có số Prufer bắt đầu bằng 2.

Sau đó, loại bỏ nút 1 và cạnh (1, 2) ra khỏi cây, tiếp tục quá trình.

Các nút bậc 1 bây giờ là 2, 3, 4. Trong đó 2 là nhãn nút nhỏ nhất, liênn kết với 2 là nút 5. Thực hiện thêm 5 vào số Prufer,… Thực hiện theo thuật toán, kết quả thu được là chuỗi Prufer là 2565.

Tái tạo một cây tƣơng ứng từ một số Prufer

Bƣớc 1: Gọi P là số Prufer bao gồm n-2 thành phần. Tất cả các nhãn cây không có mặt trong số P đều được đánh dấu làm "nhãn thích hợp" sử dụng để xây dựng cây.

Bƣớc 2: Gọi i là nhãn nút nhỏ nhất trong số các nhãn thích hợp, j là phần tử trái nhất trong P.

Bƣớc 3: Thêm cạnh (i, j) vào cây.

56

Bƣớc 5: Nếu j không xuất hiện tại bất kì vị trí nào trong P nữa thì đánh dấu j

là "nhãn thích hợp".

Bƣớc 6: Quay trở lại bước 2 cho đến khi chỉ còn hai "nhãn thích hợp" là rs. Thêm cạnh (r, s) vào cây.

Ví dụ:

Từ số Prufer P = 2565.

Vòng lặp đầu tiên, i = 1, j = 2 => thêm cạnh (1, 2) vào cây, đánh dấu 1 không còn là "nhãn thích hợp", xoá 2 khỏi P. Vì 2 không xuất hiện trong P lần nào nữa nên đánh dấu 2 là "nhãn thích hợp".

Vòng lặp thứ 2, i = 2, j = 5 => thêm cạnh (2, 5), xoá 5 ra khỏi P…

Thực hiện theo thuật toán, kết quả thu được như hình …

3.1.1.3 Đánh giá phƣơng pháp Ƣu điểm

 Ưu điểm đầu tiên cần phải kể đến của mã hoá Prufer là mọi cây đều có thể được biểu diễn bằng một số Prufer.

 Chỉ có cây mới được biểu diễn bằng số Prufer mà thôi.  Mỗi số Prufer biểu diễn chính xác một cây.

 Tất cả các cây được biểu diễn đồng nhất (không thiên kiến).

Cách tính toán đã chỉ ra rằng số Prufer có thể biểu diễn tất cả các khả năng có thể có của một cây. Bởi vì mỗi cây đều có ít nhất là hai nút bậc 1 nên thao tác tính toán này có thể áp dụng cho mọi cây.

Thêm nữa, tất cả các cây đều được biểu diễn một cách không thiên kiến. Có tất cả  n2

n n

K khả năng của cây, tương ứng ta có  n2

n n

p số Prufer nên theo cách mã hoá Prufer thì không có sự dư thừa.

Nhƣợc điểm

 Tính toán phức tạp.  Tính cục bộ thấp.

57

Đối với việc tính toán phức tạp thì so với các phương pháp khác, tính toán theo số Prufer có phần phức tạp hơn. Tuy nhiên nếu ta sử dụng heap thì độ phức tạp sẽ là O(nlogn), độ phức tạp này là chấp nhận được đối với hầu hết các bài toán.

Nhược điểm lớn nhất của mã hoá Prufer là tính cục bộ thấp. Tức là một thay đổi nhỏ trong số Prufer cũng có thể gây ra nhưng biến đổi lớn trong cây được biểu diễn. Do đó, các toán tử đột biến cơ bản sẽ không đảm bảo tính hội tụ cục bộ vì thế hệ con sinh ra không kế thừa các đặc tính của thế hệ bố mẹ.

Ví dụ:

Hình 3.2. Minh họa tính cục bộ thấp của mã hóa Prufer

Hình trên minh họa tính cục bộ thấp của biểu diễn Prufer. Chỉ thay đối số cuối trong biểu diễn số Prufer của hình a sẽ tạo ra số Prufer mới biểu diễn cây khung hoàn toán khác so với cây khung cũ. Chỉ có 2/5 cạnh trong cây khung mới là giống với cây khung cũ.

3.1.1.4 Giải thích tính cục bộ thấp trong mã hoá Prufer

Tính cục bộ của phương pháp mã hóa Prufer có thể được kiểm chứng thông qua nghiên cứu hai thao tác: khảo sát không gian tìm kiếm, kiểm tra khoảng cách giữa cha mẹ và con cháu và thứ hai là kiểm tra láng giềng tương ứng của kiểu gen và kiểu hình.

58

Khảo sát không gian tìm kiếm

Nếu quy ước không gian cây khung p; không gian mã hóa số Prufer g1 và không gian cây khung mã hóa bằng phương pháp nhị phân g và các ánh xạ bao gồm: 1 : g g g f   p g g f 1: 1 

Cần lưu ý rằng, với cây có n nút thì số Prufer bao gồm n-2 thành phần (n-2) số, và nếu mã hoá nhị phân thì chuỗi nhị phân có chiều dài (n2)log(n) bit.

Hình 3.3. Cây khung, mã hóa Prufer, mã hóa nhị phân tương ứng

Để kiểm chứng sự thay đổi trong từng không gian tìm kiếm, với giả sử sử dụng thêm phương pháp mã hoá nhị phân.

Đầu tiên, trong không gian g và g1, sự thay đổi 1bit/1thành phần số trong mã hóa nhị phân/mã hóa Prufer dẫn đến sự thay đổi có thể là nhiều hơn một cạnh trên cây khung tương ứng. Theo thực nghiệm thì chỉ có khoảng 40% sự thay đổi 1 bit là dẫn đến sự thay đổi một cạnh trên cây, còn lớn hơn 35% (đỗi với trường hợp có 16 nút) thì sự thay đổi 1 bit dẫn đến sự thay đổi ít nhất 4 cạnh trên cây.

59

Hình 3.4. Tỷ lệ xác suất khoảng cách thay đổi giữa cá thể cha mẹ v à cá thể con được mã hóa nhị phân khi thực hiện thay đổi một cạnh bất kỳ

của cây khung có 16 và 32 đỉnh.

Hình 3.5. Tỷ lệ xác suất khoảng cách thay đổi giữa cá thể cha mẹ và cá thể con được mã hóa Prufer khi thực hiện thay đổi một cạnh bất kỳ

của cây khung có 16 và 32 đỉnh.

Trong không gian p, chỉ có khoảng 50% sự thay đổi 1 cạnh bất kỳ trên cây khung dẫn đến sự biến đổi ít nhất 8 bit đối với trường hợp bộ gen có chiều dài 16 bit và 20 bit đối với trường hợp gen dài 32 bit. Đối với mã hóa Prufer, cây khung sẽ

60

bị biến đổi khoảng 75% nếu có nhiều hơn một thành phần trong mã hóa Prufer thay đổi.

Hình 3.6. Tỷ lệ xác suất khoảng cách thay đổi giữa cá thể cha mẹ và cá thể con khi thực hiện thay đổi một thành phần bất kỳ trong mã hóa nhị phân

với cây khung có 16 và 32 đỉnh.

Hình 3.7. Tỷ lệ xác suất khoảng cách thay đổi giữa cá thể cha mẹ và cá thể con khi thực hiện thay đổi một thành phần bất kỳ trong mã hóa số Prufer

với cây khung có 16 và 32 đỉnh.

Thông qua việc khảo sát không gian cây khung và không gian mã hóa Prufer tương ứng thì hầu hết những sự thay đổi trong hai không gian này đều gây ra những biến đổi lớn trong không gian tương ứng.

61

Phân tích các láng giềng

Việc khảo sát các không gian đã chỉ ra tính cục bộ thấp của phương pháp mã hóa Prufer. Tuy nhiên để kiểm tra và so sánh tính cục bộ của các vùng khác nhau trong không gian tìm kiếm thì không gian tìm kiếm sẽ được chia thành các phần khác nhau dựa vào hình dạng của các cây khung: cây khung hình sao, cây khung danh sách và các cây khung còn lại.

Đối với cách kiểm tra phân tích láng giềng: Hai cá thể là láng giềng khi khoảng cách giữa chúng là 1. Trong không gian kiểu gen, hai láng giềng sai khác nhau 1 bit, trong không gian cây hai láng giềng sai khác nhau một cạnh và trong

Một phần của tài liệu Thuật toán di truyền giải bài toán cây khung truyền thông tối ưu (Trang 57)

Tải bản đầy đủ (PDF)

(119 trang)