優化
如何在數據模型中表示優化問題的約束?
我目前正在編寫一個專注於資產配置的程序,並且我正在考慮如何在數據模型中表示我的約束。
想到的第一個方法是定義一些類別來對約束進行分類,以便可以根據它們的“類別”將它們儲存在表中(例如,一元約束 x>=y,二元約束 y
然後我想出了另一個想法,就是用自己的語法定義我自己的“約束語言”,並將其作為 a 儲存
string
在數據庫中(如Sum("Equities")<Percent(20,Portfolio)
)。這意味著要編寫一個解析器。我還可以選擇使用約束的 XML 表示來使用眾多 XML 解析器之一。我想知道是否有人有其他潛在的解決方案,以及您是否知道一些討論該主題的論文?
許多人使用數學建模語言/格式,例如專有的 AMPL(參見http://en.wikipedia.org/wiki/AMPL)或 MPS(參見http://en.wikipedia.org/wiki/MPS_%28format% 29 ) 定義優化問題。對於部分問題也有開源替代方案(例如 GNU 線性程式工具包及其語言)。
Hans Mittelmann 收集了很多有用的資訊,包括http://plato.asu.edu/guide.html下的測試案例。但是,使用理解例如 AMPL 的優化器可能不是最好的方法。