Các thuật toán chính xác cho lập trình bậc hai không lồi


13

Câu hỏi này là về các vấn đề lập trình bậc hai với các ràng buộc hộp (hộp-QP), nghĩa là các vấn đề tối ưu hóa của biểu mẫu

  • thu nhỏ chủ đề cho x[ 0 , 1 ] n .f(x)=xTAx+cTxx[0,1]n

Nếu là bán xác định dương, thì mọi thứ sẽ tốt đẹp và lồi và dễ dàng, và chúng ta có thể giải quyết vấn đề trong thời gian đa thức.A

Mặt khác, nếu chúng ta có ràng buộc tích phân , chúng ta có thể dễ dàng giải quyết vấn đề trong thời gian O ( 2 np o l y ( n ) ) bằng vũ lực. Đối với mục đích của câu hỏi này, điều này là nhanh chóng hợp lý.x{0,1}nO(2npoly(n))

Nhưng những gì về trường hợp liên tục không lồi? Thuật toán được biết đến nhanh nhất cho hộp-QP chung là gì?

Ví dụ, chúng ta có thể giải quyết những điều này trong thời gian theo cấp số nhân vừa phải, ví dụ: , hoặc độ phức tạp trong trường hợp xấu nhất của các thuật toán được biết đến nhiều nhất có gì tệ hơn không?O(3npoly(n))


Bối cảnh: Tôi có một số QP hộp khá nhỏ mà tôi thực sự muốn giải quyết, và tôi hơi ngạc nhiên khi thấy một số gói phần mềm thương mại hoạt động kém như thế nào, ngay cả đối với các giá trị rất nhỏ của . Tôi bắt đầu tự hỏi nếu có một lời giải thích TCS cho quan sát này.n


1
Bạn có thể giải quyết chính xác ngay cả cho PSD ? Các giải pháp có thể là không hợp lý, không? Nếu bạn sẵn sàng để mất phụ ε có lẽ người ta có thể nhận được một thuật toán thời gian theo cấp số nhân bằng cách thực hiện tìm kiếm brute-force trên một mạng lưới đủ tốt. Chỉ là một gợi ý mơ hồ. Aϵ
Chandra Chekuri

Nhược điểm là các "cơ sở" của mũ sẽ là một cái gì đó giống như , nhưng có lẽ kỹ thuật lưới điện thông minh có thể giúp cho "nhỏ" n1/ϵn
Suresh Venkat

@ChandraChekuri: xấp xỉ là hoàn toàn tốt đẹp nếu bạn có thể đạt được, ví dụ như, . Tuy nhiên, vũ phu buộc trên một lưới tốt như vậy là không khả thi. ϵ=109
Jukka Suomela

Bằng cách loại bỏ định lượng trên các trường kín thực sự, luôn có thể giải quyết chính xác các hệ thống này.

2
Nếu được cho phép, bạn có thể tối ưu hóa chức năng trên mỗi mặt của khối lập phương chỉ bằng cách viết ra các tiêu chí tối ưu bậc nhất. O(3n)
Yoshio Okamoto

Câu trả lời:


12

Một giải pháp tối ưu nằm trên một số khuôn mặt. Vì vậy, chúng ta có thể đi qua tất cả các mặt của khối lập phương và tìm thấy tất cả các điểm dừng trên mỗi mặt.

Đây là một thủ tục cụ thể hơn. Một mặt của khối lập phương có thể được đặc trưng bởi hai bộ chỉ số rời rạc I 1 . Đối với i I 0 , chúng tôi sửa chữa x i = 0 , và cho i I 1 chúng tôi sửa chữa x i = 1 . Đặt ˜ x bao gồm các mục không trộn còn lại của x . Việc sửa lỗi này biến hàm mục tiêu thành dạng sau:Tôi0Tôi1TôiTôi0xTôi= =0TôiTôi1xTôi= =1x~x

x~Một~x~+c~x~+d,

với thích hợp ~ c , và một số không đổi d , và chúng tôi muốn tìm ra điểm dừng của chức năng này với điều kiện 0 < ~ x < 1 .Một~c~d0<x~<1

Để kết thúc này, chúng ta lấy sự khác biệt của hàm mục tiêu để có được

12Một~x~+c~= =0.

Việc giải hệ phương trình tuyến tính này cung cấp cho bạn các điểm dừng, các ứng cử viên cho các giải pháp tối ưu. Chúng tôi đi qua tất cả chúng, kiểm tra điều kiện và chọn một cái có giá trị mục tiêu tối thiểu.

Độ phức tạp thời gian tổng thể là một cái gì đó giống như vì số mặt của n -cube là 3 n và một hệ phương trình tuyến tính có thể được giải trong thời gian đa thức. Độ phức tạp không gian là đa thức trong n .Ôi(3nđa(n))n3nn


1
Tại sao một giải pháp tối ưu nằm trên một số mặt với một không lồi ? f
cody

@cody: Đó là bởi vì mọi đa giác là sự kết hợp rời rạc của khuôn mặt.
Yoshio Okamoto

f

@cody: Tài sản vẫn giữ, nhưng chúng ta cần giải phương trình đại số bậc hơn một. Tôi sợ điều này không tầm thường đối với các trường hợp đa biến.
Yoshio Okamoto
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.