3.3. Một thuật toán di truyền lai mới cho bài toán lập lịch job shop
3.3.1. Mã hoá lời giải
Giả sử JSP đã cho có n công việc đƣợc xử lý trên m máy. Số các thao
tác của công việc thứ i đƣợc ký hiệu là job[i] (không quá m với mọi i). Tổng
số các thao tác cần đƣợc xử lý của tất cả các công việc là L = . Chúng ta mã hoá các thao tác của J1 từ 1 đến job[1], của J2 từ job[1] + 1 đến job[1] +
job[2],..., của Jn từ job[1] + job[2] + ... + job[n-1] +1 đến L. Nhƣ vậy một lời giải là một hoán vị nào đó của dãy số tự nhiên {1, 2, 3, ..., L} thoả mãn các
ràng buộc của bài toán.
Ví dụ, với bài toán 3 công việc, 3 máy đã cho trong bảng 3.1. Các thao tác đƣợc mã hoá bằng các số tự nhiên nhƣ trong bảng 3.2.
Bảng 3.2 - Mã hoá các thao tác bằng số tự nhiên của JSP 3 3
Công việc Mã hoá thao tác
J1 1 2 3
J2 4 5 6
J3 7 8 9
Giải thích: Theo {Tjk}, các thao tác đầu tiên của J1,J2 và thao tác thứ 2 của J3 đƣợc xử lý trên máy 1. Vì vậy, mã của các thao tác trên M1 là một hoán vị nào đó của tập thao tác {1, 4, 8}. Tƣơng tự các thao tác trên M2 là một hoán vị nào đó của tập thao tác {2, 6, 7}, trên M3 là một hoán vị nào đó của tập thao tác {3, 5, 9}. n i i job 1 ] [
Một lời giải hợp lệ có dạng nhƣ đƣợc biểu diễn trog hình 3.5.
1 2 3 4 5 6 7 8 9
1 4 8 7 6 2 5 3 9
J1 J2 J3 J3 J2 J1 J2 J1 J3 M1 M2 M3
Hình 3.5 - Một lời giải hợp lệ cho JSP 3 3
Lời giải trong hình 3.5 cũng có thể đƣợc biểu diễn bởi một ma trận lời giải Sjk. Trong đó, Sjk = i, tức là thao tác thứ k trên máy Mj là của công việc Ji.
{Sjk} =
3.3.2. Khởi tạo tập lời giải cho thế hệ ban đầu
Để sinh ra một tập lời giải cho thế hệ ban đầu P(0), bao gồm các lịch
biểu tích cực với JSP đƣợc cho bởi ma trận tuần tự công nghệ {Tik}, và ma trận thời gian xử lý {pik}, chúng ta sử dụng thuật toán GT đã đƣợc trình bày trong mục 3.2. Sau khi khởi tạo tập lời giải ban đầu, chọn ra một cá thể có độ thích nghi cao nhất gọi là ″cá thể tinh hoa″. Cá thể này không tham gia vào các toán tử di truyền và sẽ đƣợc cập nhật sau mỗi thế hệ.