可行的序列二次规划在Matlab

7视图(30天)
你好,我遇到一个问题关于优化的设计变量的迭代更新从优化器fmincon (SQP)不是在可行域内定义为一个非线性约束。
尤其是,我的约束二次函数类似的形式,
例如,c [1] = x_1 ^ 2 + x_2 ^ 2 < = 1。
c [2] = x_3 ^ 2 + x_4 ^ 2 < = 1。
c [n] = x_n-1 ^ 2 + x_n ^ 2 < = 1。
然而,每次我打印我的约束函数的值,会有一些(不是所有)的那些大于0,这意味着设计变量计算SQP没有严格约束的约束在一个迭代的开始。这将原因分析堕胎作为变量可行域之外我的情况会导致不合逻辑的目标函数值。
我在网站上发现一些语句说Matlab内置SQP不能生成可行的迭代(迭代设计变量是严格受约束约束)但FSQP(可行序列二次规划在Matlab)。但是我没有找到FSQP在matlab优化工具箱- 2017 b。有人有可行的建议来处理这个问题?

答案(1)

艾伦·韦斯
艾伦·韦斯 2018年2月9日
是没有解决的优化工具箱™或全局优化工具箱,保证中间迭代将可行的关于非线性约束。对不起。如果有一些 文件交换 它,好吧,我不知道,但随时在谷歌上搜索,或者。
艾伦·韦斯
MATLAB数学工具箱文档
2的评论
艾伦·韦斯
艾伦·韦斯 2018年2月12日
我不确定我理解你的要求。如果你的目标函数是定义在某个点,那么我建议你有目标函数返回 你应该使用 fmincon“内点” 解算器(或者 “sqp” 后使用 “内点” ),让 fmincon 决定如何恢复 值。确保你从一个可行的初始点。
如果我误解了你,请再试着问问。
艾伦·韦斯
MATLAB数学工具箱文档

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!