2012-07-10 133 views

回答

6

一個SQP算法,你可以嘗試是DONLP2解決方案。它最初是用Fortran 77編寫的,但也有ANSI C版本。它使用密集代數,因此它主要適用於中小型問題。它是免費的學術用途。您需要直接從作者處請求代碼,請按照鏈接中的說明進行操作。

UPDATESequential Quadratic Programming只是解決帶約束的非線性目標函數的一種方法,也有例如interior point methods。一個非常好的應用內點方法的大型開源C++替代品是Ipopt(在另一個answer中已經提到過)。還有例如商業包裝KNITRO。如果你不能或不想提供目標函數和約束梯度,你也可以看看COBYLA2,其中可以下載一個C版本here

爲了獲得更多靈感,您也可以參考Decision Tree For Optimization Software,其中列出了適用於各種不同問題的不同優化代碼。

+2

@pyCthon我注意到你自己找到了Ipopt。我根據您的發現編輯了我的答案,並且還包含一些其他鏈接。儘管有點晚,但我希望你仍然會發現它們很有用。 – 2012-07-23 19:41:58