PDA

查看完整版本 : MATLAB的fmincon函数的开源替代品吗?


poster
2019-12-07, 23:17
是否有MATLAB的fmincon (http://www.mathworks.com/access/helpdesk/help/toolbox/optim/index.html?/access/helpdesk/help/toolbox/optim/ug/fmincon.html)函数的开源替代品来进行约束线性优化?我正在重写一个使用Python / NumPy (http://numpy.scipy.org/) / SciPy (http://www.scipy.org/)的MATLAB程序,这是我没有找到与之等效的唯一函数。基于NumPy的解决方案将是理想的,但是任何语言都可以。

回答:
您的问题凸出来了吗?线性的?非线性的?我同意SciPy.optimize可能会完成这项工作,但是fmincon是解决优化问题的一种火箭筒,如果将其限制在以下类别之一(会增加解决难度的水平),您会更好有效率的)

线性规划(LP)二次规划(QP)凸二次约束二次规划(QCQP)二阶锥规划(SOCP)半定规划(SDP)非线性凸问题非凸问题

还存在组合性问题,例如混合整数线性程序(MILP),但是您没有提及任何类型的完整性约束,只需说它们属于另一类问题即可。

如果您的问题很凸显,那么CVXOpt软件包将非常有用。

如果您的问题不是凸出的,则需要在查找本地解决方案或全局解决方案之间进行选择。许多凸求解器在非凸域中“排序”工作。要找到全局解决方案的良好近似,则需要某种形式的模拟退火或遗传算法。要找到全局解决方案,将需要对所有本地解决方案进行枚举,或者需要采用组合策略,例如Br​​anch and Bound。