matlab求解优化问题,如果没有目标函数,只有约束条件,可否随机生成一

matlab求解优化问题,如果没有目标函数,只有约束条件,可否随机生成一个或几个符合约束条件的可行解?

目标函数形式不是很重要,fmincon不需要知道目标函数的结果是怎么求出来的
只要是利用一个x未知向量输入,得到一个结果的函数就可以

你的约束条件好像也并不复杂,奇怪的是如果要权重x加起来是1
那么每个x分量的值应该是0~1之间的正数才是
而你给输入初始化x0的值是-1~1之间的随机数,所以这里比较奇怪

问题的关键就是多目标的问题
fmincon是只能寻找一个目标的,也就是目标函数只有一个返回值
如果要多目标优化,那么需要使用遗传算法或其它办法
但是多目标优化本来就是一个可能不能完全实现所有目标的优化结果
也就是说多个目标很多时候是无法同时达到的,和多时候只能得到离多个目标都比较近的结果
所以,多目标的优化一般会给帕累托解集

不过,也有简单一点的办法,因为很多时候,我们是知道鱼与熊掌是不能兼得的
我们要优化结果只是尽量靠近目标就可以了
对于有多目标的,很多时候我们需要的只是一个离所有目标都比较接近的解
例如最小二乘法意义的最优解

这个时候可以根据得到的theta,计算 theta(1) - 0.24,theta(2) - 0.38,........
等多个目标的平方和的开方,利用这个总的"距离"作为优化目标

如果得到的theta是向量,而多个目标o,o(1)=0.24,o(2)=0.38,.......
也可以表示为向量,那么最终的最小二乘目标函数就是 sqrt( sum((theta-o).^2))

也可以有其它非最小二成的目标例如绝对值和 sum(abs(theta-o))

也就是把多目标按照一定的策略变为1个目标,然后还是可简单的用fmincon解决问题

当然,如果目标很多,图像数据也很大,可能运行比较耗时间
温馨提示:答案为网友推荐,仅供参考