Thí dụ 1.4 Lấy lại bài tốn trong thí dụ 7

Một phần của tài liệu Lập trình tiến hóa trí tuệ nhân tạo (Trang 80 - 82)

V z (uạ) Rồi tạo một ma trận con (pxg), W= (øy), từ tất cả các phần tử của ma trận theo cách sau: một phần tử ø„ e ở trong W nếu

Thí dụ 1.4 Lấy lại bài tốn trong thí dụ 7

3 V; V,

Giả sử các ma trận V¡ và V¿ sau đây đã được chọn làm cha-mẹ 3 3

để lai tạo: 0|0|313|2 1|02|4|1 Vị V; 0/4|0|10|0 0|4|0|0|I0 11141412 1015133 1010710 010|5|10|13 2|0|13|10{|1 11|310|1 01401010 0|41010|0 ¡x

Chương trình tiến hĩa này ta gọi là hệ GENETIC-H.

2|1|4|0|5 0|0|5|7|109 #.3. Bài tốn vận tải phi tuyến ` = 4‡ nhị x

010|6|0|9 3|1|0|012 Phần này, ta bàn về chương trình tiến hĩa giải bài tốn vận tải

phi tuyến cân bằng, theo 5 thành phần của thuật giải di truyền: biểu

diễn , khởi tạo, lượng giá, các tốn tử và các tham số. Hệ thống cũng

đặt tên là GENETIC-3 như trong trường hợp tuyến tính.

Các ma trận DIV và REM là: DIV REM

ololslasln 1lolililt 7.2.1. Biểu diễn

0|4|ø0|o|0 010J0|0|0 Cũng như trường hợp tuyến tính, ta chọn một cấu trúc hai chiều

ølililili để biểu điễn lời giải (một nhiễm sắc thể) của bài tốn vận tải: một

1014132 ma trận W= (z¿) (1 < ¿ < È, 1 <j < n). Lần này mỗi z„ là một số thực.

110]1310|1 1J11010|0

7.2.2. Khởi tạo

Hai ma trận REM; và REM; lá:

Thủ tục khởi tạo cũng giống như trong trường hợp tuyến tính

REM, REM; (phần 7.1.3). Cũng vậy, nĩ tạo một ma trận cĩ tối đa &+n-ï các phần

ololilol 1lololilo tử khác 0 sao cho các tất cä các ràng buộc đều được thỏa.

ololololo ø|ololol9 7.2.8. Lượng giá

011|10|1|0 0|0|1|1011 Trong trường hợp này ta phải tối ưu hĩa chỉ phí, một hàm phi 110|0|0|0 0|11010|0 tuyến của các giá trị của ma trận.

189

m : Chương 7 : Bài Tốn Vận Tải

7.8.4. Các tốn tử

'Ta định nghĩa bai tốn tử di truyền, đột biến và lai số học.

ĐỘT BIẾN

Cĩ hai loại đột biến được định nghĩa, Loại thứ nhất, đột_biến-1, giống như tốn tử đã được dùng trong trường hợp tuyến tính và đưa

vào càng nhiều số 0 vào ma trận càng tốt. Loại thứ hai, đột_biến-9,

được hiệu chỉnh để tránh chọn phải các số 0 bằng cách chọn các giá trị trong một khoảng. Tốn tử đột biến-? cơ bản cũng như đột _biến-1 ngoại trừ việc sử dụng một phiên bản được hiệu chỉnh của thủ tục khởi tạo để tính tốn lại các ma trận con được chọn.

Trong thủ tục khởi tạo ở phần 7.1.3 ta thay dịng:

gai © min (sourli], dest [j])

_bằng các lệnh:

0øl © mắn (sour[], dest [jÌ)

Nếu (¡ là hàng sẵn cĩ cuối cùng) Or Ứ là cột sẵn cĩ cuối cùng)

Thì:

0dÏ 0qÏ\

Ngược lại uaÏ số thực ngẫu nhiên trong khoảng <0, pai>

Thay đối này tạo ra các số thực thay vì các số nguyên hoặc số 0, nhưng thủ tục này cần được biến đổi thêm vì hiện tại nĩ tạo ra ma trận cĩ thể vi phạm các ràng buộc.

Thí dụ, sử dụng lại ma trận ở Thí dụ 7.1, giả sử chuỗi các số 3

được chọn là (3, 6, 12, 8, 10, 1,9, 4, 9, 11, 7, ð) và số thực đầu tiên ¿

được phát sinh cho số 3 (hàng 1 cột 3) là 7,3 (là số thuộc khoảng

160

Tối Ưu Số [-:

{0.0, mín(sour[1], dest[3])] = [0.0, 15.0). Số thực ngẫu nhiên thứ hai ' cho số 6 (hàng 2, cột 2) là 12.1, và các số thực cịn lại được phát sinh bằng thủ tục khởi tạo mới là: 3.3, 5.0, L0, 3.0, 1.9, 1.7, 0.4, 0.3,

7.4, 0.5. Ma trận kết quả là: g.0 | 15.0 | 18.0 | 10.0 15.0 3.0 1.9 T13 17 25.0 05 | 121 | 74 5.0 5.0 0.4 1.0 9.3 3.3

Chỉ cân cộng thêm 1.1 vào phần tử z;; các ràng buộc cĩ thể được thỏa mãn hồn tồn. Như vậy, ta cần thêm vào dịng cuối cùng của thuật giải đột_biến-2 câu:

“Tạo các điều kiện cần thiết”

Điều này bổ sung cho việc thay đổi thủ tục khi tạo.

LAI TẠO

Bắt đầu với hai cha-mẹ (các ma trận Ù và V) tốn tử lai sẽ sinh

ra hai con X và Y, trong đĩ: X=c;*Ù + c;*V và: Y =c;*V+ c;*U,

(Với e;, c¿ > Ư uờ e;+c; = 1). Do tập ràng buộc buộc là lổi nên việc

thực hiện này bảo đảm rằng cả hai con sinh ra đều thỏa mãn nếu cả cha và mẹ chúng thỏa mãn ràng buộc. Đây là cách giản đơn hĩa rất quan trọng của trường hợp tuyến tính mà ở đây cĩ thêm một yêu cầu

nữa là giữ lại tất cả các thành phân của ma trận là các số nguyên. 161

Một phần của tài liệu Lập trình tiến hóa trí tuệ nhân tạo (Trang 80 - 82)