Bài tập chuyển nhượng trong nhiều ngày


10

Tôi có một vấn đề có thể được giảm xuống thành một vấn đề chuyển nhượng. (Trong một câu hỏi trước tôi đã tìm ra cách để làm điều đó.)

Điều đó có nghĩa là chúng ta có một tập hợp các tác nhân và một tập hợp các nhiệm vụ cũng như hàm chi phí . Chúng ta cần tìm một bài tập để tổng chi phí là tối thiểu.T c ( i , j )ATc(i,j)

Các thuật toán hungarian thể tìm thấy một giải pháp tối ưu trong ít nhất . Nghe có vẻ tốt với tôi.O(n4)

Vấn đề mới của tôi là: Có một số ngày nhất định. Tôi phải giải quyết vấn đề phân công cho mỗi ngày để mọi nhiệm vụ được thực hiện mỗi ngàykhông có tác nhân nào thực hiện cùng một nhiệm vụ hai lần .

Những gì tôi đã thử: Chúng tôi có thể chạy riêng thuật toán của Lynn cho mỗi ngày và giới hạn số lượng kết hợp có thể dựa trên kết quả của ngày hôm trước. Nhưng điều này sẽ khiến chúng ta gặp rắc rối vào một số ngày sau đó, nơi rất có thể sẽ không thể tìm ra giải pháp khả thi.

Một ý tưởng khác là bằng cách nào đó tích hợp tìm kiếm địa phương để thay đổi các quyết định được đưa ra vào một ngày trước đó. Nhưng tôi nghĩ chúng ta không thể dựa vào điều này.

Các trường hợp vấn đề tôi phải đối mặt sẽ ở đâu đó xung quanh . Ma trận chi phí sẽ có rất nhiều giá trị giống nhau (Ví dụ: chủ yếu là 1 hoặc vô cùng, chỉ một số 2 hoặc 3). Vì vậy, trong thuật toán của trường có rất nhiều không gian để tạo ra các giải pháp tối ưu khác nhau cho một ngày.C ( i , j )|A|=|T|=500C(i,j)

Tôi rất vui khi nghe một số ý tưởng hoặc tư vấn làm thế nào để tìm một giải pháp tốt cho vấn đề. Cảm ơn trước.


1
Đây là một câu hỏi hay! Tôi khuyên bạn nên sử dụng dòng chi phí tối thiểu, định lý hôn nhân của Hall và kết hợp lưỡng cực tối đa.
Peter Shor

Câu trả lời:


6

Có một cách để điều này trong thời gian đa thức. Tôi sẽ phác thảo thuật toán (theo thứ tự ngược lại ... thực hiện bước 2 trước và bước 1 giây).

  1. nếu chúng ta có thể tìm thấy một tập hợp các cặp tác vụ tác nhân sao cho mỗi tác vụ nằm trong cặp chính xác , mỗi tác nhân nằm trong cặp chính xác và không có cặp nào xuất hiện nhiều hơn một lần, thì chúng ta có thể tìm thấy các bài tập cùng nhau bao gồm các cặp nhiệm vụ đại lý . Chúng tôi thực hiện điều này bằng cách lặp đi lặp lại bằng cách sử dụng thuật toán so khớp lưỡng cực tối đa để tìm một kết hợp hoàn hảo trong biểu đồ lưỡng cực tương ứng và loại bỏ phép gán đó khỏi biểu đồ. Định lý hôn nhân của Hall đảm bảo chúng ta có thể làm điều này.( i , j ) k k k n knk(i,j)kkknk

  2. Chúng ta có thể tìm thấy tập hợp chi phí tối thiểu của các cặp tác vụ tác nhân như trong bước 1 bằng cách sử dụng luồng chi phí tối thiểu. Hãy xem xét một mạng với một nguồn , một chìm và các nút cho mỗi tác nhân và từng tác vụ. Kết nối nguồn với mỗi tác nhân với cạnh công suất và chi phí . Kết nối mỗi tác vụ với bồn rửa với cạnh công suất và chi phí . Bây giờ, kết nối tác nhân với tác vụ với cạnh công suất và chi phís t k 0 k 0 i j 1 c ( i , j ) 0 1 ( i , j ) 1nkstk0k0ij1c(i,j). Luồng chi phí tối thiểu trong mạng này được đảm bảo là tích phân (vì tất cả các công suất là tích phân và có một định lý nói rằng điều này ngụ ý rằng có một luồng chi phí tối thiểu tích phân tối ưu), do đó, lưu lượng trên mỗi cạnh tác vụ của tác nhân là hoặc . Các cạnh với luồng tạo thành tập hợp các cặp trong bước 1.01(i,j)1

Có rất nhiều thuật toán có thể giải quyết dòng chi phí tối thiểu ; đó là một trường hợp đặc biệt của lập trình tuyến tính. Đối với vấn đề kích thước của bạn, thuật toán tôi phác thảo không chỉ là thời gian đa thức, mà còn thực tế.


Một câu hỏi cuối cùng: Thuật toán dòng chi phí tối thiểu trong bước 2 (Tôi đã chọn hủy chu kỳ để bắt đầu) cung cấp một giải pháp tối ưu. Thuật toán kết hợp tối đa trong bước 1 thực hiện điều đó. Điều này có nhất thiết có nghĩa là toàn bộ giải pháp là tối ưu? Bởi vì, tôi đoán rằng vấn đề là NP-Complete.
Patrick Schmidt

1
Toàn bộ giải pháp là tối ưu. Đây sẽ là một câu hỏi hay để chỉ định trong một khóa học tối ưu hóa tổ hợp, bởi vì điều đó hơi ngạc nhiên khi bạn có thể làm điều đó.
Peter Shor
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.