Phương pháp tái thiết lập tài nguyên thực hiện

Một phần của tài liệu Luận án Tiến sĩ Toán học: Một số phương pháp gần đúng giải bài toán lập lịch với tài nguyên giới hạn (Trang 76 - 82)

2.4.1.1. Ý tưởng của phương pháp tái thiết lập

Trong bài toán MS-RCPSP, một lịch biểu là một cá thể biểu diễn tài nguyên thực hiện tác vụ thỏa mãn các ràng buộc ban đầu. Sau mỗi thế hệ, thuật toán sẽ tìm ra được lịch biểu tốt nhất (Cbest), dựa trên lịch biểu này, thực hiện tiếp thay đổi các tài nguyên thực hiện từng tác vụ sao cho vẫn đảm bảo được ràng buộc của bài toán. Việc thay đổi tài nguyên thực hiện tác vụ được gọi là phương pháp tái thiết lập (Reallocate). Phương pháp này giúp mở rộng được không gian tìm kiếm và có thể tránh được cực trị địa phương.

Phương pháp tái thiết lập được thực hiện qua các bước như sau:

- Bước 1: Tìm tài nguyên sử dụng nhiều nhất trong Cbest, gọi là Lb. Đây là tài

nguyên kết thúc công việc sau cùng trong các tài nguyên sử dụng để thực hiện dự án.

- Bước 2: Duyệt lần lượt từng tác vụ được thực hiện bởi tài nguyên Lb theo

thứ tự ưu tiên thực hiện của các tác vụ trên lịch biểu.

WRb: tập tác vụ đang được thực hiện bởi Lb

• Tìm tất cả các tài nguyên có khả năng thực hiện được tác vụ Wi khác với

tài nguyên hiện tại (Lb), ký hiệu là LW;

• Duyệt lần lượt từng tài nguyên có thể thực hiện tác vụ Wi, với mỗi tài

nguyên LjW∈ LW, thực hiện:

o (1) Thiết lập tài nguyên thực hiện Wi RjW;

o (2) Xóa Wi khỏi danh sách tác vụ mà là Lb đang thực hiện.

Sau (1) và (2) ta sẽ nhận được lịch biểu mới, tính makespan của lịch biểu mới newbest, nếu tốt hơn makespan của Cbest, thay thế Cbest bằng lịch newbest và

dừng lại, nếu không, tiếp tục thực hiện vòng lặp để kiểm tra.

𝐶𝑏𝑒𝑠𝑡 {𝐶 𝑛𝑒𝑤𝑏𝑒𝑠𝑡 𝑖𝑓 𝑓(𝑛𝑒𝑤𝑏𝑒𝑠𝑡) < 𝑓(𝐶𝑏𝑒𝑠𝑡)

𝑏𝑒𝑠𝑡 𝑖𝑓 𝑓(𝑛𝑒𝑤𝑏𝑒𝑠𝑡) ≥ 𝑓(𝐶𝑏𝑒𝑠𝑡)

Phép dịch chuyển này giúp thuật toán mở rộng không gian tìm kiếm bằng việc tạo ra các cá thể mới dựa trên cá thể tốt nhất. Do cá thể newbest được tạo ra từ cá thể tốt nhất nên có khả năng sử dụng được kinh nghiệm của cả quần thể và của cá thể tốt nhất qua các thế hệ, đây chính là đặc tính của thuật toán DE. Do vậy, sau khi áp dụng Reallocate, chúng ta có thể nhận được các cá thể tốt hơn.

2.4.1.2. Sơ đồ thuật toán

Các bước thực hiện của phương pháp tái thiết lập được thể hiện chi tiết trong sơ đồ thuật toán hình 2.7.

2.4.1.3. Hàm Reallocate

Thuật toán tái thiết lập tài nguyên [CT7], [CT8] thực hiện tác vụ được thể hiện chi tiết trong Algorithm 2.2 sau đây.

Algorithm 2.2. Reallocate

Input: currentBest (các thể tốt nhất sau mỗi thế hệ) Output: lịch biểu sau khi được hiệu chỉnh

1. makespan = f(currentBest)

2. newbest = currentBest;

3. Lb = lastResource (newbest) //tài nguyên hoàn thành sau

cùng

4. Wb = {các tác vụ được thực hiện bởi Lb}

5. For i=1 to size(Wb) // duyệt lần lượt từng tác vụ

6. Wi = Wb[i]; // lấy tác vụ thứ i

7. Li = {các tài nguyên thực hiện được Wi # Lb}

8. For j = 1 to size(Li) // duyệt lần lượt từng tài nguyên

9. Li[j] = Li[j] + {Wi} // chuyển ti sang Li[j]

10. Lb = Lb – {Wi} // loại Wi khỏi Lb

11. newmakespan = f(newbest) // tính toán lại makespan

12. If newmakespan < makespan

13. makespan = newmakespan

14. Return newbest; // dịch chuyển thành công, trả

về kết quả và dừng hàm

15. End if

16. newbest = currentBest; // dịch chuyển không thành

công, lấy lại lịch biểu ban đầu (trước khi dịch chuyển) để thực hiện vòng lặp tiếp theo

17. End for // j

18. End for // i

19. Return newbest;

End Function

Với:

- f: hàm tính makespan của một lịch biểu

- size: hàm tính số phần tử của một tập/mảng

- lastResource: hàm trả về tài nguyên kết thúc thực hiện sau

cùng

Ví dụ 2.3:

- Tập tác vụ W ={1, 2, 3, 4, 5, 6, 7, 8, 9, 10} - Tập tài nguyên L={1, 2, 3}.

Thời gian thực hiện tác vụ được thể hiện trong bảng 2.14. newbest = Cbest; makespan = f(newbest) Lb = max(newbest); i=0 WRb = {các task trong Lb} i++; i < size(WRb) Wi ∈ WR b, i=1.. size(WR b); j=0 Lt = {tập tài nguyên thực hiện

được Wi } # Lb j++; j < size(Lt) Thêm Wi vào Ltj Xóa Wi khỏi Lb f(newbest) < makespan Cbest = newbest makespan = f(newbest) Kết thúc Bắt đầu Đúng F T Sai Sai Đúng

Bảng 2.14: Thời gian thực hiện các tác vụ

Tác vụ 1 2 3 4 5 6 7 8 9 10

Thời gian 2 4 3 5 2 2 5 3 4 2

Hình 2.8 thể hiện mối quan hệ giữa các tác vụ. Cụ thể như sau: - Task 2 thực hiện và hoàn thành trước khi task 6,8 bắt đầu; - Task 3 thực hiện và hoàn thành trước khi task 7 bắt đầu; - Task 4 thực hiện và hoàn thành trước khi task 5 bắt đầu; - Task 8 thực hiện và hoàn thành trước khi task 9 bắt đầu; - Task 5 thực hiện và hoàn thành trước khi task 10 bắt đầu.

Task 0 và task 11 là 2 tác vụ giả với thời gian thực hiện bằng 0, thể hiện là thời điểm bắt đầu và kết thúc dự án.

Hình 2.8. Thứ tự ưu tiên của các tác vụ Năng lực của các tài nguyên được cho như trong bảng 2.15.

Bảng 2.15: Năng lực các tài nguyên

Tác vụ W1 W2 W3 W4 W5 W6 W7 W8 W9 W10

L1 × × × × × × ×

L2 × × × × × × ×

L3 × × × × × ×

Giả sử, sau một thế hệ, ta tìm được lịch biểu với tài nguyên thực hiện tác vụ được thiết lập như trong bảng 2.16.

W0 W1 W6 W2 W3 W4 W9 W8 W7 W5 W11 W10

Bảng 2.16: Tài nguyên thực hiện tác vụ Tác vụ 1 2 3 4 5 6 7 8 9 10 Tài nguyên 1 1 2 1 2 2 3 2 1 1

Ta có thể thấy, biểu đồ Gantt của lịch biểu 2.15 như trong hình 2.9 dưới đây. Makespan của lịch biểu 2.15 là: 17

L1 W1 W2 W4 W9 W10

L2 W3 W5 W6 W8

L3 W7

Time 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Hình 2.9. Biểu đồ Gantt của lịch biểu 2.15

Áp dụng hàm Reallocate, ta thiết lập tài nguyên thực hiện tác vụ W9 là L2, lịch biểu mới được biểu diễn như trong hình 2.10. Lịch biểu mới có makespan là 16, tốt hơn so với kết quả trước.

L1 W1 W2 W4 W10

L2 W3 W5 W6 W8 W9

L3 W7

Time 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Hình 2.10. Biểu đồ Gantt của lịch biểu mới

Cụ thể các việc tái thiết lập tài nguyên thực hiện tác vụ được thể hiện trong hình 2.11 dưới đây. Before Reallocate After Reallocate Time Resources

Một phần của tài liệu Luận án Tiến sĩ Toán học: Một số phương pháp gần đúng giải bài toán lập lịch với tài nguyên giới hạn (Trang 76 - 82)

Tải bản đầy đủ (PDF)

(148 trang)