Làm thế nào để đối phó với các ràng buộc bất bình đẳng định mức


8


Tôi muốn giải quyết nhiệm vụ tối ưu hóa (lồi):

chịu hai ràng buộc sau r x i- x T i z 0maxr,zr

z 1 r 0rxixiTz0i=1,,N
z1
r0

là một đại lượng vô hướng, z là một vector, các x i 's là vectơ của cùng kích thước và là eucl đơn giản. định mức. Người ta có thể cho rằng khu vực khả thi là không trống. Có một cách dễ dàng để giải quyết điều này? Tôi nghĩ rằng đây sẽ dễ dàng bởi vì nếu không có sựz 1 ràng buộc này chỉ là một chương trình tuyến tính. Trước khi giới thiệu gói phần mềm của tôi, bạn có thể đưa ra gợi ý về cách tiếp cận chung có ích cho loại nhiệm vụ này không? Cảm ơn DGrzxi

z1

Câu trả lời:


3

z

  1. Sử dụng công thức của bạn như là, với một điều chỉnh nhỏ:

    maxr,zr

    rxixiTz0i=1,,N
    zTz1
    r0

    Vấn đề này là một chương trình hạn chế bậc hai, trong đó có nhiều người giải quyết nhanh chóng, chẳng hạn như CPLEX và Gurobi. Chương trình đặc biệt này cũng là chương trình hình nón bậc hai, chương trình semidefinite và chương trình phi tuyến lồi, vì vậy bạn cũng có thể sử dụng bất kỳ bộ giải nào. Lý do tôi thay thế ràng buộc định mức Euclide bằng một sản phẩm dấu chấm là hai ràng buộc này là tương đương, nhưng cái sau là khác biệt, trong khi cái trước thì không. Các hàm không đặc biệt đòi hỏi các thuật toán đắt tiền hơn và vấn đề này không yêu cầu loại máy móc đó, vì vậy tốt nhất nên tránh nó.

  2. zz

Mặc dù đúng là các bộ giải lập trình tuyến tính rất hiệu quả, tôi sẽ chọn tùy chọn 1, bởi vì các bộ giải lập trình bị ràng buộc bậc hai cũng rất hiệu quả (so với các bộ giải lập trình lồi và các loại bộ giải lập trình phi tuyến khác) và có thể giải các công thức lớn (tại ít nhất hàng trăm ngàn biến số quyết định, lần trước tôi đã xem tài liệu). Trừ khi công thức của bạn lớn đến mức đáng kinh ngạc, bạn sẽ ổn khi sử dụng bộ giải lập trình bị ràng buộc bậc hai theo thứ tự, và không cần thay đổi định mức trong công thức của bạn trừ khi bạn thực sự phải làm.

xi


Bạn không nên gọi đây là chương trình semidefinite. Đây là một chương trình hạn chế bậc hai, hay nói chung hơn một chút là chương trình hình nón bậc hai. Gọi nó là chương trình semidefinite sẽ giống như gọi chương trình tuyến tính là chương trình hình nón bậc hai (theo chương trình tuyến tính lớp - chương trình giới hạn bậc hai - chương trình hình nón bậc hai - chương trình semidefinite)
Johan Löfberg

Bạn đúng khi gọi nó là QP sẽ tốt hơn. Vì một số lý do, tôi đã thấy một Gramian (thậm chí là một cái nhỏ) và nhảy vào mẫu.
Geoff Oxberry

Tôi nghĩ rằng chương trình bậc hai gửi các tín hiệu sai, nó thường bị giới hạn trong các vấn đề với các ràng buộc tuyến tính và mục tiêu bậc hai. vấn đề hạn chế bậc hai, hoặc, có lẽ phổ biến nhất nhưng hơi chung chung hơn vấn đề ở đây, một chương trình hình nón bậc hai.
Johan Löfberg

1

zTz1z1

Nếu bạn phải cải thiện hiệu suất, có các phương pháp để khai thác tính năng hình nón đơn. Đây là một ví dụ

SIAM J. Optim., 17 (2), 459 cường484. (26 trang) Phương pháp tập hợp chủ động cho các chương trình hình nón bậc hai đơn E. Erdougan và G. Iyengar

Tôi muốn chỉ ra rằng việc thay thế định mức bằng 1 chỉ tiêu có thể sẽ không hoạt động tốt. Định mức bậc hai có nguồn gốc từ nền tảng hình học của vấn đề này (mà tôi hiểu là tìm một vectơ có góc nhỏ nhất với một vectơ đã cho).

αzTz

zz106101

z = sdpvar(5,1);
r = sdpvar(1);

err1 = [];
err2 = [];
for i = 1:1000
    X = randn(5,10);
    Con = [r*sqrt(sum(X.^2,1)) <= z'*X,norm(z,2) <= 1]
    sol = solvesdp(Con,-r)
    if sol.problem == 0 & double(r)>1e-3
        zSOCP = double(z);
        Con = [r*sqrt(sum(X.^2,1)) <= z'*X];
        sol = solvesdp(Con,-r+0.001*z'*z);
        zQP = double(z/norm(double(z)));
        err1 = [err1 norm(zQP-zSOCP)];
        Con = [r*sqrt(sum(X.^2,1)) <= z'*X, norm(z,1)<=1];
        sol = solvesdp(Con,-r);
        zLP = double(z/norm(double(z)));
        err2 = [err2 norm(zLP-zSOCP)];
    end
end

Cuối cùng, sử dụng cái nhìn sâu sắc hình học có thể dẫn đến một cách tiếp cận tốt hơn để giải quyết vấn đề này. Về cơ bản, bạn đang tìm kiếm một trung tâm được xác định đặc biệt của một tập hợp các điểm trên mặt cầu đơn vị.

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.