Matlab之fmincon函数

如果其中包含半连续变量,即或者等于零,或者是连续变量。(为零或者为连续变量求解前已知),这样的nlp问题,fmincon求解是否会慢?如何解决这个问题?

第1个回答  2012-09-04
matlab解决具有非线性约束条件的目标函数求解常用的函数是fmincon。它包含了好几个寻优算法,有些算法确实对处理不连续约束条件能力较差。你既然知道约束条件的连续性,那么在间断点不多的情况下可以先分段求解最小值。然后再用比较函数求最优值。还有,据我所知遗传算法好像也可以解决非线性约束问题,但我也不是很清楚能否正好对症你的问题。获者你把你的问题具体给出来,看看大家能不能解决。追问

问题是MINLP,分断线性的是变量,并不是你所说的函数分段线性问题。另外,变量个数很多,你的办法也不能解决我的问题。

追答

我有本书叫数学建模,那上面讲了处理NLP问题的三种方法。其中有代表性的是引入0 - 1变量处理分段线性函数,化为整数规划模型。把模型转化以后,就可以用MATLAB或者LINGO软件中求解了。至于转化方法,到处是公式,打不出来的。

本回答被网友采纳
第2个回答  2012-09-09
可以考虑用lingo,我也在编一个这样的程序,matlab编出来总有问题,lingo出来无异议!追问

Lingo与VS C++的接口如何?Matlab的接口非常好。

相似回答