Toán tử trao đổi chéo
Toán tử trao đổi chéo đƣợc thực hiện trên 3 cá thể cha p1, p2 và p3 đƣợc biểu diễn bởi các ma trận lời giải tƣơng ứng S1 = {S1jk}, S2 = {S2jk} và S3 = {S3jk}. Các gien trong cá thể con p = {Sjk} sẽ đƣợc tái kết hợp từ các gien
trong 3 cá thể cha. Toán tử đổi chéo kết hợp đồng thời phép đổi chéo đồng nhất, thuật toán GT và đƣợc thực hiện trên 3 cá thể cha để tăng tính đa dạng của cá thể con. Do sử dụng thuật toán GT nên sau khi đổi chéo, cá thể con vẫn là một lịch biểu tích cực. Các bƣớc của phép đổi chéo đƣợc mô tả nhƣ sau:
1. Khởi tạo G là tập các thao tác đầu tiên trong tuần tự công nghệ của
tất cả các công việc (cột đầu tiên của ma trận {Tik}), G = { , ,..., }. Đối với mỗi thao tác O G, ES (O) := 0 và EC(O) := p(O).
2. Tìm thao tác hồn thành sớm nhất O*j G. Một tập con của G chứa
các thao tác đƣợc xử lý ở trên máy Mj ký hiệu là Gj.
3. Xác định tập cạnh tranh C[Mj, k] ⊂ Gj, ở đây k - 1 là số các thao tác đã đƣợc lập lịch trên máy Mj.
4. Chọn một trong các cha {p1, p2, p3} tùy theo giá trị của ma trận Hji,
tức là p := và Sp = . Đối với mỗi Oij C[Mj, k] tồn tại chỉ số l sao cho
Sjl = i. Gọi lm là chỉ số nhỏ nhất, tức là lm = min {l / Sjl = i và Oij C[Mj, k]}.
Gọi r := Sjlm. Orj C[Mj, k] sẽ đƣợc chọn để lập lịch ở trong cá thể con p. 5. Lập lịch cho Orj là thao tác thứ k trên máy Mj; tức là Sjk := r, với thời gian bắt đầu và thời gian hồn thành của nó là ES(Orj) và EC(Orj) đƣợc tính nhƣ sau: s(Orj) = ES(Orj); c(Orj) = EC(Orj).
6. Đối với tất cả các thao tác Oij Gj \ {Orj}:
- Cập nhật ES(Oij) nhƣ sau: ES (Oij) := max{ES(Oij), EC(Orj)}. - Cập nhật EC(Oij) nhƣ sau: EC(Oij) := ES (Oij) + p(Oij).
7. Xoá Orj khỏi G (và do đó khỏi Gj), bổ sung thêm thao tác Ors kế tiếp
Orj trong tuần tự công nghệ vào G nếu nó tồn tại. Tức là, nếu j = Tik và k < m, thì s := Ti,k+1 và G := (G\{Orj} {Ors}. Tính ES(Ors) và EC(Ors) nhƣ sau:
- ES (Ors) := max{EC(Orj), EC(PM(Ors))}. - EC(Ors) := ES (Ors) + p(Ors).
8. Lặp lại từ bƣớc 2 đến bƣớc 7 cho tới khi tất cả các thao tác đƣợc lập lịch trong cá thể con p. ij H p Hij S 1 1 1T o 2 1 2T o 1 n nT o
2 3 1 p1 = 3 2 1 2 3 1 1 3 2 3 3 3 1 2 3 p2 = 3 1 2 Hji = 2 2 2 p = 3 1 2 3 1 2 1 1 1 2 3 1 1 2 3 p3 = 3 1 2 1 2 3