Qua khảo sát thuật toán di truyền, dễ dàng nhận thấy thao tác chọn lọc liên quan đến tất cả các cá thể trong quần thể. Trong khi đó, các thao tác lai. đột biến và tính toán tính thích nghi của các cá thể chỉ liên quan đến một hoặc một vài cá thể trong quần thể. Do đó, các thao tác này hoàn toàn có thể phân bổ cho các tiến trình khác nhau để thực hiện song song nhằm rút ngắn thời gian tính toán.
39
Trong thuật toán di truyền, bước đánh giá tính thích nghi của các cá thể trong quần thể thường tiêu tốn nhiều thời gian tính toán nhất. Bởi lẽ, thao tác này phụ thuộc nhiều vào thời gian giải mã nhiễm sắc thể thành lời giải tương ứng và thời gian tính toán theo một số tiêu chí hay mục tiêu; đồng thời, thuật toán phải lặp qua nhiều thế hệ và số cá thể ở mỗi thế hệ lớn. Chính vì vậy, đa số các giải thuật di truyền song song chỉ song song hóa giai đoạn đánh giá tính thích nghi của các cá thể.
Ở đây giải thuật di truyền song song cho bài toán VRPTW được đề xuất dựa theo mô hình song song dạng chủ tớ. Thuật toán thao tác trên một quần thể và lặp qua các thế hệ. Theo đó. tiến trình chủ (master) điều khiển quá trình thực thi của giải thuật di truyền và thực hiện thao tác chọn lọc cá thể cha mẹ trong quần thể. Các tiến trình tớ (slave) thực hiện các thao tác lai (trao đổi chéo), đột biến và tính toán giá trị thích nghi của các cá thể. Truyền thông chính giữa tiến trình chủ và các tiến trình tớ là truyền các cặp cá thể cha/mẹ đến các tiến trình tớ và nhận về các cặp cá thể con được tạo ra bởi quá trình tái tổ hợp từ các tiến trình tớ.
Hình 2.2 Mô hình giải thuật song song dạng chủ tớ
Mô hình song song dạng chủ tớ là mô hình thường được sử dụng nhất. Tuy mô hình đơn giản nhưng khá hiệu quả và rất thích hợp triển khai trên các hệ thống cluster bao gồm nhiều máy tính kết hợp lại.
40
Di truyền song song, sử dụng mô mình master-slave để tận dụng tính // trong thread và giảm thời gian tính toán trong bài toán lớn.Việc phân chia công việc đã mô tả theo các bước.
Thuật toán di truyền song song giải bài toán VRPTW:
● Bước 1: Đọc các tham số và dữ liệu đầu vào
- Tiến trình chủ thực hiện đọc các tham số cấu hình cho thuật toán từ tập tin cấu hình và gửi đến tất cả các tiến trình tớ.
- Tiến trình chủ thực hiện đọc dữ liệu đầu vào (dữ liệu khách hàng) từ tập tin và gửi toàn bộ dữ liệu đến tất cả các tiến trình tớ.
- Tất cả các tiến trình tớ thực hiện nhận các dữ liệu được gửi đến bởi tiến trình chủ. Thiết lập môi trường thực thi cần thiết.
● Bước 2: Khởi tạo quần thể ban đầu
- Tiến trình chủ thực hiện khởi tạo quần thể ban đầu gồm N cá thể (một phần quần thể được khởi tạo từ lời giải khả thi S của PFIH; một phần quần thể được khởi tạo ngẫu nhiên).
● Bước 3: Đánh giá tính thích nghi của các cá thể trong quần thể ban đầu.
- Tiến trình chủ phân chia công việc và gửi các cá thể đến các tiến trình tớ. - Các tiến trình tớ thực hiện nhận các cá thể được gửi đến bởi tiến trình chủ. Sau đó, đánh giá tính thích nghi của các cá thể và gửi giá trị đánh gíá trở về cho tiến trình chủ.
- Tiến trình chủ nhận kết quả đánh giá từ các tiên trình tớ và cập nhật các cá thể trong quần thể.
● Bước 4: Lặp tuần tự từ bước 4.1 đến bước 4.5 cho đến khi số thể hệ vượt
quá số thế hệ lớn nhất cho phép.
• Bước 4.1: Tiến trình chủ thực hiện tìm cá thể tốt nhất trong quần thể
hiện tại, cập nhật lời giải tốt nhất hiện tại.
• Bước 4.2: Tiến trình chủ thực hiện chọn lựa các cá thể cha mẹ bằng
41
• Bước 4.3: Tạo các cá thể con:
o Tiến trình chủ phân chia công việc và gửi đến các cặp cha mẹ đến các tiến trình tớ.
o Các tiến trình tớ thực hiện nhận các cặp cá thể được chuyển đến từ tiến trình chủ. Sau đó thực hiện trao đổi chéo trên từng cặp cá thể cha mẹ ứng với xác suất trao đổi chéo cho trước. Nếu thao tác trao đổi chéo không được thực hiện, cá thể con được sao chép y nguyên từ cá thể mẹ. Tiếp theo thực hiện đột biến các cá thể con mới ứng với xác suất đột biến cho trước. Kế tiếp, thực hiện đánh giá tính thích nghi của các cá thể con mới. Sau cùng, gửi các cặp cá thể con mới trở về cho tiến trình chủ.
o Tiến trình chủ nhận lấy các cá thể con và cập nhật lại quần thể.
• Bước 4.4: Tiến trình chủ thực hiện tìm cá thể xấu nhất trong quần thể
mới.
• Bước 4.5: Tiến trình chủ thực hiện thay thế cá thể xấu nhất bằng cá thể
tốt nhất của quẩn thể trước.
● Bước 5: Tiến trình chủ thực hiện kết xuất lời giải tốt nhất.
● Bước 6: Kết thúc thuật toán.