24小时热门版块排行榜    

CyRhmU.jpeg
查看: 3035  |  回复: 3

guanghua0420

新虫 (初入文坛)

[求助] matlab最优化问题求解中,复杂的目标函数和约束条件无法直接表示的问题

请问,如果matlab 优化当中, 目标函数 和 约束条件都很复杂,没有办法直接用x 表示出来,该怎么处理?     而且,对于要求出的x, 我有多个目标函数,这又该如何处理?

例如:

图像1, 图像2 ,图像3, 图像4,图像5 。。图像10 , 根据这10个图像,求最优解x ,目标是 :5个图像使用x(向量)作为权重叠加之后的图像中的叠加图像中的某个部分的值为优化目标。


主函数:imageVectorChild里面存了 10个图像的向量形式。
----------
x0=2*rand(1,size(imageVectorChild,2))-1;  % 10个随机数作为参数x的初始值

options = optimoptions(@fmincon,'display','iter');

Aeq=ones(1,endPic-startPic+1);  % 想说让x的和是1,作为约束,不过也可以不要这个约束
beq=1;                                        %约束可以任意,不是重点

[x,resnorm] = fmincon(@objfun2,x0,[],[],Aeq,beq,[],[],[],options,imageVectorChild)


优化(目标)函数:objfun2.m
--------------



function Objval = objfun2(x,imageVectorChild)

finalImage = x * imageVectorChild;   %   就是利用x系数,把10个图像简单的叠加在一起。相当于:x(1).*图像1+x(2).*图像2+x(3).*图像3+。。。


theta = direction(finalImage )  %  根据叠加结果,求得方向场角度theta, 这里面对finalImag进行了复杂的转化。所以x已经无法直接表示成为theta。同时,theta也是一个向量。

theta(1) = 0.24  % 优化目标
theta(2) = 0.38  % 优化目标
。。。

theta (m) = 0.42  % 优化目标

也就是说优化目标有多个,数量根据theta向量的维度决定。 同时,优化目标也不应该用等式表示,也不清楚该怎么表示。

例如: 如果优化目标就只有一个,可以用 Objval  = theta(1) - 0.24  。

麻烦了解的同学 给些指导  真谢谢。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feixiaolin

荣誉版主 (文坛精英)

优秀版主

建议:10个小图拼成一个大图,若干次随即采样能够覆盖全部小图。
          于是,转换为单目标优化。如  theta >= 0.24,说明 达到一级优化;如  theta >= 0.38,说明 达到二级优化;……
2楼2014-09-30 12:52:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guanghua0420

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by feixiaolin at 2014-09-30 12:52:45
建议:10个小图拼成一个大图,若干次随即采样能够覆盖全部小图。
          于是,转换为单目标优化。如  theta >= 0.24,说明 达到一级优化;如  theta >= 0.38,说明 达到二级优化;……

您好,版主。  这个不是10个小图合成一个大图,是把10个图以不同的权重叠加在一起,这个权重就是要求的x。也就是x向量有10个标量对应10个图。


然后,优化函数中,我把图形以 60*60大小进行划分, 也就是说整张图分成N个 60*60的 block。 优化的目标就是,图像中的某些block内的像素进行计算,求出该block块儿的梯度。优化目标是让该梯度 = 0.24 。 所以,会有多个block 的梯度 都有要求, 相当于多个优化目标。

若干次采样覆盖全部小图,我没有明白,能详细解释一下么
3楼2014-09-30 17:01:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feixiaolin

荣誉版主 (文坛精英)

优秀版主

引用回帖:
3楼: Originally posted by guanghua0420 at 2014-09-30 17:01:25
您好,版主。  这个不是10个小图合成一个大图,是把10个图以不同的权重叠加在一起,这个权重就是要求的x。也就是x向量有10个标量对应10个图。


然后,优化函数中,我把图形以 60*60大小进行划分, 也就是说整张 ...

图像梯度是固定的,不是优化出来的。

[ 发自小木虫客户端 ]
4楼2014-09-30 18:09:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 guanghua0420 的主题更新
信息提示
请填处理意见