xinjt0624 发表于 2011-3-16 10:28

求救有关惩罚函数的学习思路

本帖最后由 xinjt0624 于 2011-3-16 10:41 编辑

迫切求救各位老师,能给学生点思路,用智能算法求解目标函数中含有罚函数的最优解问题。谢谢!

http://forum.vibunion.com/data/attachment/album/201103/16/103747ic9bp2xliholg0p2.jpg希望给位老师能给点指导,怎样能通过智能算法来求解这个目标函数的最优值,谢谢各位老师啦。
祝各位老师工作顺利!谢谢!第一次发图,不怎么会发,不对之处还请见谅。

xinjt0624 发表于 2011-3-16 10:32

本帖最后由 xinjt0624 于 2011-3-16 10:38 编辑

http://forum.vibunion.com/data/attachment/album/201103/16/103747ic9bp2xliholg0p2.jpgC:Documents and SettingsAdministrator桌面    知道上传了,不好意思

Rainyboy 发表于 2011-3-16 16:59

既然有明确的适应值函数和定义域,那么在使用各种优化算法上应该没有什么问题才对啊?
还是说想了解哪些优化算法能解决类似的问题?

这个帖子里整理了一些帖子,找找看
http://forum.vibunion.com/thread-98302-1-1.html

xinjt0624 发表于 2011-3-17 10:56

回复 3 # Rainyboy 的帖子

不是的,算法我应经确定了,就是在算法的运行过程中会调用 目标函数进行求值,即给出一个向量x,得要得出 F 的值,然后再返回主函数中进行判断比较此时的x使得F最小还是前面已经运行过的x使F最小,但是有个约束性条件是向量x的和得满足100(这里的100是个常量,随便给定的)。由于这个约束性条件放到函数中可能比较繁琐,因此我想把这个约束条件以罚函数的形式加入到目标函数中形成新的目标函数,但是涉及到参数 “拉姆的”惩罚因子的问题,在高等数学中,这个惩罚因子的取值是会影响新目标函数的最优值的,在这里把我给堵住了,所以前来求救思路,帮我过关,谢谢指导!

Rainyboy 发表于 2011-3-17 11:17

回复 4 # xinjt0624 的帖子

这么说的话,那个惩罚因子是不是取得越大越好?

xinjt0624 发表于 2011-3-17 12:09

回复 5 # Rainyboy 的帖子

不见得,根据参考资料上来讲的是取值越小精度越高。

Rainyboy 发表于 2011-3-17 12:21

回复 6 # xinjt0624 的帖子

取消了不相当于没引入约束么?比如很小,接近零的时候?

yufeng 发表于 2011-3-18 11:14

惩罚因子越大 那么越能满足条件 因为该数值大了 那么罚函数项只有小了才能使得目标函数最小 当然目标函数取最大 刚好相反

xinjt0624 发表于 2011-3-18 12:18

我也是楼上这个观点,罚因子越小,要求的精度就会越高,搜索次数也会加大。 我发帖求助的是如何给个思路我可以把程序给写出来,因为这里的目标函数涉及到了罚因子的选取,是固定一个罚因子还是让这个内部函数进行一个小循环,选出较好的适应值?令外自变量的和要等于一个常量,可否先初始前两个,最后那个由前两个确定?但是要是自变量维数较高的话,这种方法感觉有点不妥,一是程序繁琐,二来数值确定的过程中要经过很多次的挑选和初始,势必会给程序的运行时间加长。这里请各位老师能帮学生这个忙,看看有什么好思路我可以借鉴或学习的,谢谢!祝各位老师工作顺利!

xinjt0624 发表于 2011-3-18 12:25

回复 8 # yufeng 的帖子

老师,可以给我个思路,让我把程序写出来吗?我一直在考虑这个罚函数的处理方法,特别是那个等式约束条件,请您在繁忙的工作中能给予我点指导,不胜感激!谢谢

yufeng 发表于 2011-3-19 07:05

等式约束可以如下采用罚函数 以等式d=c+b为例
f=a*abs(d-c-b)
只有满足约束时候 该项才能达到最小0
页: [1]
查看完整版本: 求救有关惩罚函数的学习思路