Tối đa của một tổ hợp lồi trên một thân lồi của các biến thực


8

MaximizeaTxSubject toxminxxmax1Tx=1
xRn1Txxa

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:


5

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.aixiixi=1ixi,min>1ixi,max<1

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

yi=xixi,minxi,maxxi,min.

Trong không gian có thể thay đổi , vấn đề trở thành started y

MaximizeiciyiSubject to0yi1, for each iibiyi=d,

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ó.)ci=ai(xi,maxxi,min)bi=(xi,maxxi,min)d=1ixi,mind0cibiiaixi,min

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ả.cibi=aiy1=y2==yk=1kyk+1=di=1kbiyk+2==yn=0x

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ì .=xixi,max<1


7

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.xiaixmaxxjajxminO(nlogn)aO(n)

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 .xixmaxaixjxminajxkxmin<xk<xmaxai>ak>ajxxjxkxixk


Hãy làm cho điều này chính xác hơn. Phương thức hiện tại của bạn chỉ thay đổi hai thành phần của , nếu được thực hiện theo nghĩa đen, do đó không chính xác. Nó cũng sẽ là tốt đẹp để đưa ra một lập luận tại sao kết quả cuối cùng là tối ưu. x
Arnold Neumaier

Cảm ơn bạn vì câu trả lời. Cách tiếp cận có vẻ thú vị nhưng tôi thứ hai yêu cầu của @ArnoldNeumaier về việc cung cấp một đối số.
Mohammad Fawaz

Nó thay đổi hai thành phần trên mỗi lần lặp, vì vậy tôi không chắc ý của bạn là gì nếu không đúng nếu được hiểu theo nghĩa đen. Tôi sẽ thêm một lời giải thích ngắn gọn.
Geoffrey Irving

Chà, với lớn nhất là giống nhau ở mỗi lần lặp, v.v. Vì vậy, bạn cố gắng thay đổi hai thành phần giống nhau nhiều lần. Phiên bản mới của bạn gây khó chịu vì nhãn chỉ mục rõ ràng có nghĩa là những thứ khác nhau trong hai đoạn. xiiij
Arnold Neumaier

Ah, bạn đúng về mỗi lần lặp. Nên sửa ngay.
Geoffrey Irving
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.