2009-12-30 39 views
19

Tôi đang tìm thư viện C++ và tôi đang xử lý các hàm mục tiêu và ràng buộc lồi.Thư viện tối ưu hóa lồi tốt là gì?

+4

Bạn đã xem nó lần cuối ở đâu? –

+0

Hầu hết các trình giải mã LP có cách riêng để xác định các bộ vấn đề. Giao diện có lập trình cho nó chủ yếu là lớp phủ đường. –

+0

Tôi đang sử dụng cvxopt, và để cài đặt tôi vừa tải xuống các thư viện biên dịch sẵn từ http://www.lfd.uci.edu/~gohlke/pythonlibs/#cvxopt, sau đó đã cài đặt pip (bánh xe tải xuống), sau đó đảm bảo nhập gumpy trước khi sử dụng nó. – Phylliida

Trả lời

12

Tôi đoán vấn đề của bạn là phi tuyến tính. Khi tôi làm việc, chúng tôi sử dụng SNOPT, Ipopt và một người giải quyết độc quyền khác (không phải để bán). Chúng tôi cũng đã cố gắng và nghe những điều tốt đẹp về Knitro.

Miễn là vấn đề của bạn bị lồi, tất cả các bộ giải mã này hoạt động tốt.

Tất cả đều có API riêng của họ, nhưng tất cả đều yêu cầu cùng một thông tin: giá trị, dẫn xuất thứ nhất và thứ hai.

1

Từ những gì tôi biết, bộ giải CPLEX là bộ giải tối ưu hóa lồi tốt nhất. Đó là trạng thái của nghệ thuật trong giải quyết LP. Có lồi tối ưu hóa thực sự tốt. Trong khi tìm kiếm nó, tôi thấy rằng phần mềm của IBM của nó bây giờ. Bạn có thể tìm thấy nó ở đây: http://www-01.ibm.com/software/integration/optimization/cplex/

+0

Bạn có thể tìm thấy các trình giải mã nguồn mở khác và các tiêu chí hiệu suất của chúng tại đây: http://plato.asu.edu/ftp/lpfree.html Ngoài ra, đừng quên kiểm tra http://code.msdn.microsoft.com/solverfoundation –

+0

Tuyến tính ngụ ý lồi, không phải là cách khác xung quanh. –

+0

cplex giải quyết các vấn đề lồi tuyến tính hoặc bậc hai. Nó rất nhanh, nhưng nó không xử lý các vấn đề lồi chung. –

4

Giả sử các vấn đề của bạn là phi tuyến, bạn có thể sử dụng mã nguồn mở miễn phí và có nguồn mở OPT++, có sẵn từ Sandia Lab. Tôi đã sử dụng nó trong một dự án trong C++ và nó rất dễ sử dụng và hoạt động tốt.

1

Bạn có thể sử dụng GSL (GNU Scientific Library) với the packageNLopt đó là một gói phần mềm tối ưu hóa phi tuyến với các ràng buộc bất bình đẳng phi tuyến không bị giới hạn, ràng buộc-hạn chế, và nói chung.

+0

Hai ý kiến: Thứ nhất, Ý bạn là bạn có thể sử dụng GSL và NLOpt cùng nhau (GSL với NLOpt)? Họ dường như là các dự án riêng biệt. Họ có cùng tinh thần nhưng họ độc lập. Thứ hai, tác giả của NLOpt không khuyên bạn sử dụng NLOpt cho các vấn đề lồi, từ trang web: "NLopt chỉ bao gồm các phương thức chung không giả định lồi, nếu bạn gặp vấn đề lồi, bạn có thể tốt hơn với gói phần mềm khác , chẳng hạn như gói CVX từ Stanford. " http://ab-initio.mit.edu/wiki/index.php/NLopt_Introduction#Global_versus_local_optimization – alfC

Các vấn đề liên quan