2012-07-10 57 views
5

Có thư viện nào tốt trong C++ để tối ưu hóa phi tuyến tuần tự với các ràng buộc không?Các thư viện tối ưu hóa phi tuyến tuần tự trong C++ VỚI các ràng buộc

Tôi đang tìm các ràng buộc bất bình đẳng và/hoặc giới hạn trên và dưới.

Có một số stackoverflow question đã cho điều này nhưng không phải tất cả chúng đều có những hạn chế.

Tôi biết về NLopt, nhưng nó không hoạt động tốt cho vấn đề cụ thể của tôi. Có ai khác không?


cuối cùng tôi đã tìm thấy các giải pháp mà tôi đang tìm kiếm nếu có ai quan tâm lpOpt

Trả lời

6

Một thuật toán SQP rằng bạn có thể thử là DONLP2. Ban đầu nó được viết bằng Fortran 77 nhưng cũng có một phiên bản ANSI C. Nó sử dụng đại số dày đặc, do đó, nó là chủ yếu thích hợp cho các vấn đề nhỏ đến vừa. Nó là miễn phí cho việc sử dụng học tập. Bạn cần yêu cầu mã trực tiếp từ tác giả, hãy làm theo hướng dẫn trong liên kết.

CẬP NHẬTSequential Quadratic Programming chỉ là một cách tiếp cận để giải các hàm mục tiêu phi tuyến tính với các ràng buộc, cũng có ví dụ interior point methods. Một lựa chọn thay thế C++ mã nguồn mở quy mô lớn rất tốt áp dụng phương pháp tiếp cận điểm bên trong là Ipopt (đã được đề cập trong một số khác answer). Ngoài ra còn có các gói thương mại ví dụ KNITRO. Nếu bạn không thể hoặc không muốn cung cấp chức năng khách quan và các ràng buộc về độ dốc, bạn cũng có thể xem COBYLA2, trong đó phiên bản C có thể được tải xuống here.

Để có thêm cảm hứng, bạn cũng có thể tham khảo Decision Tree For Optimization Software, liệt kê các mã tối ưu khác nhau phù hợp với nhiều vấn đề khác nhau.

+2

@pyCthon Tôi nhận thấy rằng bạn đã tìm thấy Ipopt một mình. Tôi đã chỉnh sửa câu trả lời của tôi dựa trên kết quả tìm kiếm của bạn và cũng bao gồm một số liên kết bổ sung. Mặc dù hơi muộn, tôi hy vọng bạn vẫn sẽ thấy chúng hữu ích. –

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