Áp dụng thuật toán GT cho JSP để sinh ra các lịch biểu tích cực

Một phần của tài liệu Nghiên cứu các bài toán lịch biểu và ứng dụng (Trang 69 - 70)

ma trận thời gian xử lý { }. Đây là 2 ma trận dữ liệu đầu vào của bài toán lập lịch job shop cần giải quyết. Áp dụng thuật toán GT để có thể sinh một lịch biểu tích cực. Thuật toán bao gồm các bước 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 tuần tự công nghệ { }), tức là:

= , , … . , . Đối với mỗi thao tác ∈ thiết lập ( ) ≔ 0 và ( ) ≔ ( ).

2. Tìm thao tác hoàn thành sớm nhất ∗ ∈ . Một tập con của chứa các thao tác được xử lý ở trên máy được ký hiệu là .

3. Tính tập cạnh tranh , ⊂ , ở đậy − 1 là số thao tác đã được lập lịch trên máy .

4. Chọn ngẫu nhiên một thao tác trong , gọi thao tác được chọn là ∗ . …. ……. ………. ……. ……. [ , ] …….

5. Lập lịch cho ∗ là thao tác thứ trên máy , tức là ≔ ∗, với thời gian bắt đầu và thời gian hoàn thành của nó là: ∗ = ( ∗ ) và ∗ = ( ∗ ).

6. Đối với tất cả các thao tác ∈ \{ ∗ }:

- Cập nhật như sau: ≔ max { , ∗ }.

- Cập nhật như sau: ≔ + .

7. Xóa ∗ khỏi và bổ sung thêm vào thao tác kế tiếp ∗ trong tuần tự công nghệ của công việc vào nếu nó tồn tại. Tức là nếu = và < , thì

≔ và ≔ ( \{ ∗ }) ∪ { }. Tính ( ) và ( ) như sau:

- ( ) ≔ { ∗ , ( ) }.

- ( ) ≔ ( ) + ( ).

8. Lặp lại bước 2 đến bước 7 tới khi tất cả các thao tác được lập lịch.

9. Ma trận lời giải ra { } là lịch biểu tích cực thu được với tập thời gian bắt đầu là { } và tập thời gian hoàn thành là { }. Ở đây = .

Một phần của tài liệu Nghiên cứu các bài toán lịch biểu và ứng dụng (Trang 69 - 70)