找回密码
 注册
Simdroid-非首页
查看: 347|回复: 13

matlab优化算法问题

[复制链接]
发表于 2009-3-2 16:06:20 | 显示全部楼层 |阅读模式 来自 上海
本帖最后由 ljelly 于 2009-3-16 15:26 编辑

本人正在使用matlab制作优化程序,现碰到如下问题:
输入变量为12个,输出需要满足f(1)~f(6)取最小值,同时f(6)~f(12)控制在一定范围之内(计算过程中除了eig命令外均为线性),欲通过优化算法求出12个变量。不知该用什么优化算法及函数来求解。

函数大致结构是这样的:
变量x1,x2,x3...x12
A为6×6的矩阵,形如:
[a1*x1+a2*x2+...+a12*x12     b1*x1+b2*x2+...+b12*x12    ...]
[                ...                             ...                                ...]
[               ...                              ...                                ...]
[v,d]=eig(A)
目标函数:
f1=v(1,1)^2 / Σ v(i,1)*v(j,1)
f2=v(2,2)^2 / Σ v(i,2)*v(j,2)
...
f6=v(6,6)^2 / Σ v(i,6)*v(j,6)
i,j=1,2,3...6
约束条件:
c1<d(k,k)<c2
k=1,2,3...6

望各位高手不吝赐教,谢谢
本人qq:175430052,请注明SimWe仿真论坛
 楼主| 发表于 2009-3-2 21:51:03 | 显示全部楼层 来自 上海浦东新区
Simdroid开发平台
希望高手能给点建议,如果觉得目标函数过于复杂不能优化,也请帮忙指出,我可以早些换条路走,谢谢
回复 不支持

使用道具 举报

 楼主| 发表于 2009-3-2 22:45:33 | 显示全部楼层 来自 上海浦东新区
因为f(7)~f(12)包含eig命令,和f(1)~f(6)一样都不能简单的表示成线性函数,所以我不知道究竟应该把? <f(7)~f(12) <?看成是约束条件还是多目标,请高手指点
回复 不支持

使用道具 举报

发表于 2009-3-2 23:07:09 | 显示全部楼层 来自 北京
感觉楼主的问题是多目标规划问题,建议楼主看一下多目标规划方面的书
回复 不支持

使用道具 举报

发表于 2009-3-3 09:24:56 | 显示全部楼层 来自 西安交通大学
好久没来了,新版简洁干净,很赞,说正事。
因为你没有具体问题,下面给你提供一些思路:
1、如果你的输出f(1)~f(6)中存在特别重要一项,可以选用主要目标法
    其基本思想是:在多目标问题中,根据问题的实际情况,确定一个目标为主要目标,而把其余目标作为次要目标,并且根据经验,选取一定的界限值。这样就可以把次要目标作为约束来处理,于是就将原来的多目标问题转化为一个在新的约束下的单目标最优化问题。
     此法优点方便,缺点处理过于简单
2、如果输出6个中,能确定各个之间的重要程度,可以选用线性加权处理
    其基本思想是:按照多目标fi(x) (i=1, 2, … ,m)的重要程度,分别乘以一组权系数λj(j=1, 2, … ,m)然后相加作为目标函数而构成单目标规划问题。
    此法优点方便,快捷,缺点处理存在人为因素干扰

  上述两种都是化为单目标优化处理的

3、如果你对6个输出,有期待的值,那可以采用目标到达法
  主要思想是确定你想得到的6个输出值,计算最接近这些值的真实值
   可采用matlab的fgoalattain函数来计算
   此法优点处理结果较准确,缺点是前提知道需要的输出目标

因为多目标的值不存在真正意义的最小值,只有最优解,比较好的方法应该求出一组最优解,再选择。故此推荐:
4、如果你想让你的问题处理有点深度和新度,可以采用遗传算法,求出多目标的Pareto曲线值
   可以得到一组最优值。
   你可以去matlab的遗传工具箱去看看,gamultiobj函数可以解决这个问题
  此法优点科学,提供多种最优解,缺点复杂

希望对你有帮组!

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2009-3-3 12:30:00 | 显示全部楼层 来自 上海浦东新区
谢谢,akjuan的回复,但是我初涉matlab,看得一知半解,不知道能不能在具体操作上指点一二
能否我qq:175430052,注明simwe
回复 不支持

使用道具 举报

 楼主| 发表于 2009-3-3 14:19:41 | 显示全部楼层 来自 上海浦东新区
4# rocwoods
斑竹有什么合适入门的书可以推荐的吗?谢谢
回复 不支持

使用道具 举报

发表于 2009-3-4 14:00:44 | 显示全部楼层 来自 北京朝阳
7# joshua0414
你去图书馆或者书店看看吧,多目标规划方面的书不少。具体哪个好我不是很清楚,这方面的书我看得不多。
回复 不支持

使用道具 举报

发表于 2009-3-4 17:27:49 | 显示全部楼层 来自 湖南长沙
好久没来了,新版简洁干净,很赞,说正事。
因为你没有具体问题,下面给你提供一些思路:
1、如果你的输出f(1)~f(6)中存在特别重要一项,可以选用主要目标法
    其基本思想是:在多目标问题中,根据问题的实际情 ...
akjuan 发表于 2009-3-3 09:24


讲的很详细。楼主的问题达广泛了,大家不好帮忙吧。最少也要有个目标函数、约束条件大家才好提建议吧。matlab做优化还是很方便的,有很多方法可以选择。希望楼主加油。
回复 不支持

使用道具 举报

 楼主| 发表于 2009-3-5 11:00:49 | 显示全部楼层 来自 上海
本帖最后由 joshua0414 于 2009-3-5 16:22 编辑

函数大致结构是这样的:
变量x1,x2,x3...x12
A为6×6的矩阵,形如:
[a1*x1+a2*x2+...+a12*x12     b1*x1+b2*x2+...+b12*x12    ...]
[                ...                             ...                                ...]
[               ...                              ...                                ...]
[v,d]=eig(A)
目标函数:
f1=v(1,1)^2 / Σ v(i,1)*v(j,1)
f2=v(2,2)^2 / Σ v(i,2)*v(j,2)
...
f6=v(6,6)^2 / Σ v(i,6)*v(j,6)
i,j=1,2,3...6
约束条件:
c1<d(k,k)<c2
k=1,2,3...6
谢谢大家帮忙
回复 不支持

使用道具 举报

发表于 2009-3-13 16:28:36 | 显示全部楼层 来自 上海嘉定区
为何不用ISIGHT集成呢?
回复 不支持

使用道具 举报

发表于 2009-3-16 15:15:30 | 显示全部楼层 来自 山西太原
相似的问题
不懂
回复 不支持

使用道具 举报

 楼主| 发表于 2009-3-18 11:28:55 | 显示全部楼层 来自 上海
是不是ISIGHT自己有优化算法,只需要用户选择,不需要像matlab一样自己去编程
回复 不支持

使用道具 举报

发表于 2009-4-12 13:48:01 | 显示全部楼层 来自 宁夏银川
也许1stopt用的上啊!
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-7 11:28 , Processed in 0.044171 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表