M Chương 6: Xử Lý Ràng Buộc LAI SỐ HỌC
'Thủ tục khởi tạo
Nhập: mảng đest(k], sourin],
Xuất: máng (0)¡ sao cho uy > 0 với mọi ¡ và j
*
» h...
Chương 7 : Bài Tốn Vận Tải
>0 =souj\ J=13..#
nghĩa là tất cả các ràng buộc được thỏa.
khởi tạo; Bắt đầu
L<: {1,2,..k*n}: là danh sách các điểm chưa được xét; Lặp
« _ chọn một số ngẫu nhiên g trong L; e và q được gọi là điểm đã xét
« (hàng)¡ © L{g -1J/& + 1Ì
« (cột) 7 © (q-Ù mod k +1
© ịÌ C mắn(sourlijdestl)
s. Dụ uaÏ
« sour[i] © sourfi] — oal «— destj] dest[j] - ual
Hết lặp nếu (tết cả các điểm trong L đều được thăm)
Kết thức
“Thí dụ 7.2. Với ma trận trong thí dụ 7.1, nghĩa là:
sour[1] = 15, sour[2] =25, sour[3] = 5
150
Tối Ưu Số [1
desi[1] = 5, desf[2] =15 , desf[3] =15, dest[4] = 10
cĩ tất cả 3*4 =12 số, đều chưa được thăm từ đấu. Chọn số ngẫu nhiên đầu tiên, 10 chẳng hạn. Số này được thơng dịch thành (hàng)
¡ = 3 và (cột) j = 9. val = min (sour(3], dest[2)) = 5, vì thế uạ; = 5.
Cũng chú ý rằng sau lần lặp thứ nhất, sour[3] = 0 và đesf[2] = 10. Ta lặp lại cách tính này với ba số (chưa thăm) ngẫu nhiên, như
8, 5, và 3 (tương ứng với bàng 2 và cột 4, hàng 2 và cột 1, và hàng Ù và cột 3). Ma trận cĩ được ơụ (cuối cùng) cĩ nội dung như sau:
ơ 10 9 9 0 15 10 5 10 ụ 5
Chú ý rằng các giá trị sour[i] và đesf[j] là những số cĩ được sau 4 lần lặp.
Nếu cĩ thêm chuỗi các số ngẫu nhiên là 1, 11, 4, 12, 7, 6, 9, 2,
thì sẽ cho ma trận cuối cùng (với chuỗi các số ngẫu nhiên được chấp
nhận <10, 8, 5, 3, 1, 11, 4, 12, 7, 6, 9, 2 >) là: 9 0 9 9 9 0 9 15 9 0 5 10 0 10 9 9 5 6 9
Rõ ràng, sau 12 lần lặp tất cả (các bản sao cục bộ của) sour[1] và
đesf{jj = 0, cũng chú ý rằng, cĩ nhiều chuỗi số mà thủ tục khởi_tạo
cĩ thể tạo ra lời giải tối ưu cho chúng. Thí dụ, lời giải tối ưu (được
cho trong thí dụ 7.1) cĩ thể nhận được đối với bất cứ chuỗi nào sau
Chương 7 : Bài Tốn Vận Tải đây:<7, 9, 4, 2, 6, *, #8, #, * > (trong đĩ * biểu thị một số chưa
thăm bất kỳ), cũng như đối với nhiều chuỗi khác.
Đỹ thuật này cĩ thể phát sinh một lời giải khả thí chứa tối đa
#+n-1 phân tử nguyên khác 0. Nĩ sẽ khơng phát sinh những lời giải khác, cĩ thể cũng khả thi, nhưng khơng dùng chung đặc trưng này.
Thủ tục khởi tạo chắc chắn phải được hiệu chỉnh khi ta định giải bài
tốn uận tải phi tuyến.
“Tri thức và những đặc trưng lời giải của bài tốn cho ta một cơ
hội khác để biểu diễn lời giải của bài tốn vận tải bằng một vectơ. ectơ lời giải sẽ là một chuỗi các số nguyên phân biệt & * n trong
khoảng <1, & * n >, (theo thủ tục khởi tạo) sẽ sinh ra một, lời giải khả thì. Nĩi cách khác, ta sẽ xem vectơ lời giải là một hốn vị của
các số, và ta cĩ thể tìm các hốn vị cụ thể tương ứng với lời giải tối
ưu.
Ta sẽ bàn ngắn gọn về những cài đặt của biểu điễn này trong
việc phải thỏa ràng buộc, và về hàm lượng giá cũng như các tốn tử
đi truyền.
Thỏa mãn ràng buộc: Bất cứ hốn vị nào của k#n số phân biệt sẽ sinh ra một lời giải duy nhất thỏa tất cả các ràng buộc, điều này
được bảo đảm bởi thủ tục khởi tạo.
Hàm lượng giá: Điều này tương đối đễ: hốn vị nào cũng tương ứng
với một ma trận duy nhất, như (ơ„) chẳng hạn. Hàm lượng giá là:
S72 8u. eo] ,
Các tốn tử di truyền: Cũng rất dễ thực hiện.
© Đảo: nếu <x„xz...„xạ> (g =&*n) là một lời giải thì vectơ đảo của nĩ <xạ. xụ¡,.... x;> cũng là một lời giải.
152
Tối Ưu Số m
« Đột biến: bất cứ hai phẩn tử nào của vectơ lời giải <x;,x;,...x„>, x¡ và x; chẳng hạn, cũng cĩ thể được hốn vị và vectơ kết quả cũng là một lời giải.
« Lai tạo: hơi phức tạp hơn một chút, Chú ý rằng một tốn tử lai (mù quáng) ngẫu nhiên cĩ thể sinh ra các lời giải khơng hợp
lệ: áp dụng một tốn tử lại như thế vào các chuỗi:
<L,2,3,4,5,6Ì 7,8,9,10,11,12> và < 7,3,1,11,4,12,Ì 5,2,10,9,6,8> sẽ sinh ra (ở đây điểm lai tạo ở sau vị trí thứ 6) các lời giải <1,2,3,4,5,6,5,2,10,9,6,8> và < 7,3,1,11,4,12, 7,8,9,10,11,12>.
Cả hai đều là những lời giải khơng hợp lệ.
Như vậy, ta phải đùng một dạng tốn tử lai heuristic nào đĩ. Cĩ
một số tương đồng giữa các chuỗi vectơ lời giải này và các chuỗi
vectơ lời giải của bài tốn người du lịch. Ở đây ta dùng một tốn tử lai heuristic, mà khi cho một cặp cha mẹ, sẽ tạo một con hợp lệ theo thủ tục sau đây:
(1) Tạo bản sao của phân tử thứ hai trong cặp cha-me đã cho ;
(2) Chọn một phẩn ngẫu nhiên từ phần tử thứ nhất trong cặp
cha-me đĩ;
(3) Tạo những thay đối tối thiểu cân thiết ở con để cĩ được lời
giải hợp lê.
„ Thí dụ, nếu cặp cha-mẹ như thí dụ trên, và phần chọn được là
(4,5,6,7), thì con cĩ được là < 3,1,11,4,5,6,7,12,2,10,9,8>.
Đúng như ta mong muốn, con cĩ mối liên hệ cấu trúc với cả cha
và mẹ. Rồi vai trị của cặp cha-mẹ này cĩ thể được thay đổi khi sinh
con thứ hai.
Từ nay, ta sẽ gọi chương trình tiến hĩa giải bài tốn vận tải tuyến tính cân bằng với biểu diễn vectơ nguyên là hệ GENETIC-I
m Chương 7 : Bài Tốn Vận Tải 7.1.3. Biểu diễn lời giải bài tốn oận tải bằng ma trận
Œĩ lẽ biểu điễn lời giải tự nhiên nhất cho bài tốn vận tải là cấu trúc hai chiều. Nĩi cách khác, ma trận V = (0„)(1< ¡< &,1< j< n) cĩ thể biểu diễn lời giải.
Ta sẽ bàn vẻ những cài đặt của biểu diễn ma trận đồng thời cũng diễn tả ràng buộc, và về hàm lượng giá cũng như các tốn tử di truyền.
Thỏa mãn ràng buộc: Rõ ràng là mỗi ma trận lời giải Ý = (uụ) cĩ thể thỏa các ràng buộc sau: