CVXOPT VS. OpenOpt


Câu trả lời:


11

CVXOPT chỉ giải quyết các vấn đề lồi (trơn tru và không trơn tru), cho phép truy cập vào một số bộ giải lồi của bên thứ ba với trạng thái phức tạp nhất trong trường hợp xấu nhất. Bạn có thể đặt ra tuyến tính, bậc hai lồi, nửa cung tuyến tính và nhiều loại ràng buộc lồi khác.

OpenOpt giải quyết các chương trình phi tuyến tổng quát (mịn và không vô nghĩa), bao gồm các vấn đề với các ràng buộc số nguyên. Không giống như CVXOPT, nó không có phần mềm để giải các chương trình semidefinite. Những người giải quyết đều được viết bởi chính Dmitrey Kroshko và không có một lịch sử lâu dài, vì vậy việc kiểm tra có lẽ bị hạn chế. Bản thân OpenOpt có giao diện _not- cho người giải quyết bên thứ ba nói chung.

Tuy nhiên, có '' OpenOpt Framework '' (http://openopt.org/OOFramework) có giao diện với IPOPT (được đề cập trong một nhận xét khác; nó không thể giải quyết các vấn đề không liên quan), CVXOPT và một số bộ giải khác có sẵn trong Python.

Ngoài giao diện này, không có mối quan hệ giữa các gói này. Các phương pháp hoàn toàn khác nhau; những thứ phổ biến duy nhất có thể là ngôn ngữ Python và quyền truy cập vào LAPACK.

Đối với các vấn đề lồi, tôi cũng muốn giới thiệu
CVX: Phần mềm Matlab cho lập trình lồi có kỷ luật http://cvxr.com/cvx ,
mà các tác giả đã giành được giải thưởng Beale-Hays-Orchard rất có uy tín trong năm nay về lập trình toán học tính toán . Nó được viết bằng Matlab, mặc dù.
Họ cũng có một phiên bản Python '' phiên bản 'được gọi là CVXPY http://www.stanford.edu/~ttinoco/cvxpy/ , nhưng CVXPY thực sự chỉ là một giao diện' 'kỷ luật' rất hay và hữu ích cho CVXOPT, trong đó một giao diện có thể chắc chắn rằng khi một chương trình đúng về mặt cú pháp thì đó là một vấn đề tối ưu hóa lồi.


4

OpenOpt, đối với hầu hết các phần, chỉ là một giao diện cho các bộ giải khác. CVXOPT là một trong những bộ giải mã nguồn mở nằm dưới OpenOpt, vì vậy trừ khi bạn có một bộ giải thương mại mà bạn muốn sử dụng, bạn có thể muốn cài đặt CVXOPT trong mọi trường hợp. AFAIK, CVXOPT là công nghệ tiên tiến trong số các thư viện nguồn mở, ít nhất là cho lập trình hình nón bậc hai và lập trình bán xác định.


1
Tôi không nghĩ rằng có ý nghĩa khi nói CVXOPT là trình giải mã nguồn mở chính nằm dưới OpenOpt. Tại sao nó chính hơn, nói, IPOPT, hoặc một tá người giải quyết cơ bản khác?
David Ketcheson

có lẽ người giải SOCP chính là chính xác hơn (?)
Marc Shivers
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.