Sử dụng bài toán Hungary trong phân giao n công việc cho n đối tượng

Kết quả

Sử dụng bài toán Hungary trong phân giao n công việc cho n đối tượng:

Trong trường hợp sắp xếp hoặc phân giao n công việc cho n máy hoặc n người với điều kiện mỗi máy hoặc mỗi người chỉ đảm nhận một công việc cũng có rất nhiều phương án sắp xếp khác nhau. Trong trường hợp này có thể xác định được phương án sắp xếp tối ưu giữa các phương án đó. Phương án tối ưu có thể là phương án có tổng thời gian thực hiện nhỏ nhất hoặc cung cấp sản phẩm, dịch vụ nhanh nhất, tuỳ thuộc vào mục tiêu cụ thể đặt ra trong khi sắp xếp. Trong một số trường hợp mục tiêu đặt ra là tổng thời gian thực hiện của tất cả các đối tượng là ngắn nhất nhưng trong các trường hợp khác mục tiêu lại là giảm thời gian ứ đọng khi thực hiện các công việc.

Để xác định được phương án tối ưu ta dùng thuật toán Hungary. Thuật toán này được thực hiện theo trình tự sau :

Bước 1: Lập bảng phân việc và máy theo dữ liệu thực tế;

Bước 2: Tìm số nhỏ nhất trong từng hàng của bảng phân việc và trừ các số trong hàng cho số đó;

Bước 3: Tìm số nhỏ nhất trong từng cột và trừ các số trong từng cột cho số đó;

Bước 4: Tìm cách kẻ các đường thẳng đi qua hàng hoặc cột có các số 0 sao cho số đường thẳng kẻ được ít nhất. Thực hiện theo cách sau:

– Bắt đầu từ những hàng có 1 số 0, khoanh tròn số đó lại và kẻ một đường thẳng xuyên suốt cột;

– Tìm các cột có 1 số 0, khoanh tròn số đó lại rồi kẻ một đường xuyên suốt hàng.

Bước 5: Lặp lại bước 4 cho đến khi không còn có thể khoanh được nữa. Nếu số đường thẳng kẻ được ít nhất bằng số hàng (số cột) thì bài toán đã có lời giải tối ưu. Nếu số đường kẻ được nhỏ hơn số hàng (số cột) thì cần làm tiếp: Tìm số chưa bị gạch nhỏ nhất và lấy tất cả các số chưa bị gạch trừ đi số đó; các số bị gạch bởi 2 đường thẳng cộng với số đó; còn các số khác giữ nguyên.

Bước 6: Quay trở lại bước 4 và 5 cho đến khi tìm được lời giải tối ưu.

Ví dụ: Trong một tổ sản xuất có 4 công việc I, II, III, IV cần bố trí cho 4 công nhân A, B, C, D. Chi phí thực hiện cho mỗi công việc của từng công nhân cho ở bảng sau. Tìm phương án bố trí công việc sao cho tổng chi phí thực hiện các công việc là nhỏ nhất. 

Yêu cầu: Tìm phương án bố trí công việc sao cho tổng chi phí thực hiện các công việc là nhỏ nhất.

Dùng thuật toán Hungary ta có cách giải như sau:

Bước 1: Như đầu bài đã cho 

Nhân viên A thực hiện công việc 1 với thời gian là 18 phút ;

Nhân viên B thực hiện công việc 2 với thời gian là 55 phút ;

Nhân viên C thực hiện công việc 3 với thời gian là 8 phút ;

Nhân viên D thực hiện công việc 4 với thời gian là 12 phút;

Tổng thời gian thực hiện công việc của cả 4 nhân viên là 93 phút.

Trong thực tế nhiều khi chúng ta gặp trường hợp phân giao công việc sao cho tổng lợi nhuận thu được tối đa. Để tìm được phương án phân giao tối ưu vẫn sử dụng phương pháp giải trên. Tuy nhiên cần phải đổi dấu toàn bộ các số liệu trong bảng phân việc, sau đó vận dụng thuật toán Hungari giải bình thường.

Trong trường hợp bài toán phân công công việc được đặt ra với hai mục tiêu:

– Tổng chi phí hoặc thời gian thực hiện công việc là tối thiểu;

– Chi phí thực hiện từng công việc hoặc thời gian thực hiện từng công việc không được vượt quá 1 mức nào đó thì chúng ta chỉ cần loại bỏ các số hạng bằng hoặc vượt quá mức đã quy định bằng cách thay chúng bằng những dấu x, sau đó tiến hành giải bình thường.

Xem xét ví dụ trên, với yêu cầu tìm phương án bố trí công việc sao cho tổng chi phí thực hiện các công việc là nhỏ nhất và chi phí thực hiện cho mỗi công việc phải nhỏ hơn 55 phút. 


Như vây ta bố trí:

Nhân viên A thực hiện công việc 1 với thời gian là 18 phút ;

Nhân viên B thực hiện công việc 4 với thời gian là 48 phút ;

Nhân viên C thực hiện công việc 3 với thời gian là 8 phút ;

Nhân viên D thực hiện công việc 2 với thời gian là 25 phút;

Tổng thời gian thực hiện công việc của cả 4 nhân viên là 99 phút.

Nguồn: TS. Nguyễn Thị Minh An (Chia sẻ bởi Sotaykinhdoanh.com biên tập và hệ thống hóa)

 

Source link