Xếp lịch trên hai máy

Một phần của tài liệu ghép cặp và bài toán phân việc trên đồ thị (Trang 46 - 50)

3 Một số ứng dụng của ghép cặp

3.4 Xếp lịch trên hai máy

Ta sẽ bàn đến một ứng dụng nữa của bài toán ghép cặp. Cụ thể là bài toán xếp lịch trên hai máy: Có 2 chiếc máy giống hệt nhau và n công việc cần được xử lý (trên máy nào cũng được). Để xử lý mỗi công việc cần một đơn vị thời gian (1 giờ, chẳng hạn). Trình tự xử lý các công việc được mô tả bởi một đồ thị có hướng G, mỗi đỉnh biểu thị một công việc. Nếu có cung đi từ đỉnh i tới đỉnh j thì việc i cần được xử lý trước việc j. Cần lập lịch xử lý các công việc trên hai máy sao cho tất cả các công việc được xử lý trong thời hạn sớm nhất có thể.

Có cách giải thích khác cho bài toán này như sau: Mỗi công việc biểu thị một chuyên đề cần dạy cho sinh viên (các chuyên đề có tính trước - sau). Chỉ có thể bố trí dạy các chuyên đề trong hai phòng học. Vấn đề đặt ra là cần xếp lịch dạy chuyên đề như thế nào để kết thúc khóa học trong thời hạn sớm nhất.

Bài toán xếp lịch trên hai máy có thể giải trong thời gian đa thức. Thật vậy, do G không có chu trình định hướng (nếu có thì các công việc không thể thực hiện được, vì việc nọ phải chờ việc kia xử lý xong), nên ta có thể xây dựng đồ thị (vô hướng) tương hợpG∗ như sau: G∗ có cùng tập đỉnh như

G và có cạnh vô hướng (i, j) khi và chỉ khi trong G không tồn tại đường có hướng từ i đến j hay từ j đến i. Nói cách khác, i và j là hai công việc có thể xếp làm đồng thời.

Tìm một ghép cặp cực đại M∗ trong G∗. Giả sử S là tập các đỉnh có bậc vào bằng 0 trong G (tại thời điểm đang xét). Hai quy tắc sau được áp dụng lặp đi lặp lại trong quá trình xếp lịch xử lý công việc:

1. Nếu S có đỉnh không bị phủ bởi M∗ thì công việc tương ứng được xếp xử lý trên một máy, còn máy kia nghỉ và loại đỉnh đó khỏi G.

2. Nếu S có hai đỉnh được ghép cặp với nhau trong M∗, cặp công việc tương ứng được xếp làm đồng thời và loại cả hai đỉnh đó khỏi G.

Nếu không áp dụng được quy tắc nào kể trên thì mỗi đỉnh thuộc S đều được ghép cặp với một đỉnh không thuộc S. Khi đó, ta làm như sau. Giả sử

p1 ∈ S được ghép cặp với q1 ∈/ S. Giả sử p2 ∈ S có đường tới q1 và p2 được ghép cặp với q2 ∈/ S. Không thể có đường từ q1 đến q2, vì nếu có thì p2 và q2

đã không được nối với nhau bởi một cạnh trong G∗. Xét hai khả năng xảy ra:

• Không có đường từ q2 tới q1: ta đổi ghép cặp (p1, q1) và (p2, q2) thành

(p1, p2) và (q1, q2) với (q1, q2) là một cạnh trong G∗ (Hình 3.8 a). Các công việc tương ứng với hai cặp đỉnh này được xếp làm đồng thời.

• Có đường từ q2 tới q1 (p2 cũng có đường tới q1): Lặp lại lập luận trên với q2 thay cho q1: ta tìm được cặp đỉnh mới (p3, q3),... (Hình 3.8 b). Vì

G không có chu trình nên mỗi lúc ta sẽ sinh ra một cặp đỉnh khác biệt. Do đồ thị là hữu hạn nên đến một lúc nào đó quá trình này phải dừng. Khi đó, ta sẽ tìm được một cặp công việc trong S mà có thể xếp làm đồng thời và loại cả hai đỉnh tương ứng với hai việc đó khỏi G.

Hình 3.8: a. Đổi lịch xử lý b. Tiếp tục chứng minh

Trong đồ thị còn lại, ta tiếp tục tìm tập các đỉnh có bậc vào bằng 0 và tiến hành xếp lịch như trên cho tới khi mọi đỉnh được xét.

Ví dụ 3.4. Có n = 12 công việc (đánh số từ 1 đến 12) cần được xử lý nhờ dùng hai máy A và B. Trình tự xử lý các công việc cho trong đồ thị G vẽ ở Hình 3.9 a. Hãy lập lịch xử lý các công việc để hoàn thành chúng sớm nhất có thể mà không vi phạm trình tự trước - sau giữa các công việc?

Đồ thị G∗ và ghép cặp cực đại M∗ trong G∗ vẽ ở Hình 3.9 b.

Kết quả:

• Máy A xử lý các công việc: 1 3 5 7 9 11

• Máy B xử lý các công việc: 2 4 6 8 10 12

Thời gian hoàn thành xử lý các công việc: n−m∗ = 12−6 = 6(giờ). Tóm lại, chương này đã giới thiệu bài toán phân việc mà về thực chất là bài toán ghép cặp có trọng số lớn nhất trong đồ thị hai phần. Trình bày thuật toán gán nhãn giải bài toán, kèm theo ví dụ minh họa thuật toán. Một số ứng dụng quan trọng khác của ghép cặp là bài toán phủ cạnh, bài toán hôn nhân bền vững và thuật toán Gale - Shapley độc đáo. Cuối cùng, bài toán xếp lịch trên hai máy cũng được đưa về bài toán ghép cặp cực đại trên đồ thị hai phần.

Kết luận

Đồ thị là một cấu trúc toán học rời rạc rất hay được sử dụng để mô tả và xử lý nhiều bài toán lý thuyết và thực tiễn. Các bài toán tối ưu trên đồ thị rất phong phú, đa dạng và có nhiều ứng dụng rộng rãi trong thực tiễn. Luận văn tập trung sự chú ý vào các bài toán ghép cặp trên đồ thị và các ứng dụng của bài toán ghép cặp.

Luận văn đã trình bày các nội dung chính sau đây:

1. Các khái niệm và kiến thức cơ bản về lý thuyết đồ thị và mạng: cách biểu diễn đồ thị (theo ma trận kề, ma trận liên thuộc, danh sách cạnh, danh sách kề) và cách tìm kiếm trên đồ thị (theo chiều rộng BFS và theo chiều sâu DFS).

2. Bài toán ghép cặp cực đại và ghép cặp hoàn hảo trên đồ thị, điều kiện tồn tại ghép cặp cực đại và ghép cặp hoàn hảo. Các thuật toán đa thức tìm ghép cặp cực đại trên đồ thị hai phần.

3. Một số ứng dụng của bài toán ghép cặp: bài toán phân việc (ghép cặp có trọng số lớn nhất hay nhỏ nhất), bài toán phủ cạnh trên đồ thị, bài toán "hôn nhân bền vững" và bài toán xếp lịch trên hai máy.

Luận văn mới chỉ đề cập tới bài toán ghép cặp trên đồ thị hai phần và một số ứng dụng của ghép cặp. Với đồ thị bất kỳ, bài toán ghép cặp cực đại và ghép cặp có trọng số lớn nhất sẽ phức tạp hơn, cần nhiều thời gian tìm hiểu và nghiên cứu trong tương lai.

Tài liệu tham khảo

[1] B. T. Tâm và T. V. Thiệu (1998), Các phương pháp tối ưu hóa, NXB Giao thông vận tải.

[2] D. Cardoso (2001), Convex Quadratic Programming Approach to the Maximum Matching Problem, JOGO 21:91-106.

[3] S. Khuller, B. Raghavachari (1997), Graph and Network Algorithms in the Computer Science and Engineering Handbook edited: Allen B. Tucker Jr. CRC Press, Inc.

[4] S. Khuller, Y. J. Sussman and W. Gasarch (1997),Advanced Algorithms, Lectures CMSC 858K, 94pp.

[5] B. Korte and J. Vygen (2006), Combinatorial Optimization: Theory and Algorithms, 3rd Edition, Springer.

[6] H. W. Kuhn (1995),The Hungarian Method for the Assignment Problem, Naval Research Logistics Quarterly 2, 83-97.

[7] K. H. Rosen (1991),Discrete Mathematics and its Applications, 2nd Edi- tion. McGraw-Hill, Inc.

Một phần của tài liệu ghép cặp và bài toán phân việc trên đồ thị (Trang 46 - 50)

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

(50 trang)