Tôi đang tìm kiếm một cách nhanh chóng để giải quyết vấn đề trên mà không cần sử dụng bộ giải LP. Có một thủ tục nhanh chóng để làm theo? (ngoài Simplex).
Cảm ơn bạn!
Tôi đang tìm kiếm một cách nhanh chóng để giải quyết vấn đề trên mà không cần sử dụng bộ giải LP. Có một thủ tục nhanh chóng để làm theo? (ngoài Simplex).
Cảm ơn bạn!
Câu trả lời:
Giải pháp tối ưu là như sau: Đặt tất cả các biến bằng mức tối thiểu của chúng. Sau đó, bắt đầu từ lớn nhất đến nhỏ nhất, lặp đi lặp lại đặt tương ứng càng lớn càng tốt cho đến khi bạn nhấn . Nếu hoặc thì vấn đề là không thể thực hiện được. Tôi tin rằng đây là giải pháp tương tự mà thuật toán của Geoffrey Irving đưa ra.
Lý do điều này hoạt động là vì bạn có thể chuyển đổi vấn đề của mình thành thư giãn LP của vấn đề về chiếc ba lô 0-1 thông qua
Trong không gian có thể thay đổi , vấn đề trở thành started
trong đó , và . Nếu vấn đề ban đầu là khả thi thì . Các và là không âm, vì vậy chúng tôi có độ giãn LP là 0-1 ba lô. (Biểu thức về mặt kỹ thuật cũng xuất hiện trong mục tiêu, nhưng vì nó là hằng số nên chúng ta có thể bỏ nó.)
Giả sử các biến được sắp xếp theo tỷ lệ từ lớn nhất đến nhỏ nhất, giải pháp tối ưu được biết đến là một trong những tham lam: Set càng lớn một càng tốt , đặt và đặt . Chuyển đổi giải pháp này trở lại không gian vấn đề có thể thay đổi mang lại giải pháp tôi vừa mô tả.
Ngoài ra, ba lô 0-1 không có ràng buộc thay vì ràng buộc . Nếu bạn có thể phù hợp với tất cả các mục trong ba lô với khoảng trống còn lại, thì vấn đề -var gốc ban đầu là không khả thi vì .
Thuật toán tham lam hoạt động: bắt đầu với một số giải pháp thỏa mãn các ràng buộc của bạn và sau đó lặp lại tăng với lớn nhất không ở và thu nhỏ với nhỏ nhất không phải là càng xa càng tốt. Dừng lại khi không có chuyển động cặp tiếp theo là có thể. Điều này cần để sắp xếp thời gian và cho phần còn lại.
Khi thuật toán hoàn thành, sẽ có một tập hợp bị mắc kẹt tại (những người có lớn ), một tập hợp bị mắc kẹt tại (những người có nhỏ ) và tại nhiều nhất một với và . Thay đổi chênh lệch thành bắt đầu từ một vị trí như vậy không thể làm tăng mục tiêu, vì bất kỳ mức tăng nào do tăng hoặc sẽ được bù đắp nhiều hơn bằng tổn thất do giảm hoặc .