遗传算法中罚函数的应用

谁能给我一段罚函数的代码?我的代码老是出现问题,谢谢... 谁能给我一段罚函数的代码?我的代码老是出现问题,谢谢 展开
 我来答
牛得天下
2011-09-08 · TA获得超过2597个赞
知道小有建树答主
回答量:951
采纳率:0%
帮助的人:475万
展开全部
哈哈哈,搞笑,一楼的回答原封不动地Copy了我之前在另外一个问题的答案,详细见参考资料:
M越大F就越大那是正常的,因为是对不满足约束的惩罚。
如果你的个体都是可行解,那么F就等于f了。
对了,你是不是在遗传算法QQ群里跟我讨论了老半天那位?
追问
对,就是我哈。我现在理解到了罚函数的意义了。可是为什么却一直得不到可行解,F在无限的增加,
追答
这个你要在生成初始种群时和采用交叉、变异时注意了,最好能做到初始种群中的个体都是可行解,且交叉不破坏个体,即交叉不会让可行解变成不可解。变异可以破坏个体。

参考资料: http://zhidao.baidu.com/question/310015090.html

富港检测技术(东莞)有限公司_
2024-04-02 广告
正弦振动多用于找出产品设计或包装设计的脆弱点。看在哪一个具体频率点响应最大(共振点);正弦振动在任一瞬间只包含一种频率的振动,而随机振动在任一瞬间包含频谱范围内的各种频率的振动。由于随机振动包含频谱内所有的频率,所以样品上的共振点会同时激发... 点击进入详情页
本回答由富港检测技术(东莞)有限公司_提供
开霞醉5673
2011-09-05 · TA获得超过152个赞
知道答主
回答量:367
采纳率:100%
帮助的人:174万
展开全部
很显然,f 才是目标函数值,而F只是适应度函数值,用来评价个体优劣的。
加上罚函数,仅仅是为了惩罚那些不满足约束条件的个体,以此来解决约束优化问题。
但真正的目标函数是f,目的是f的值越小越好。
追问
比如F=f+M*P^2,其中P是约束,M是罚因子,f是目标函数且恒正。我所标定的适应度函数是F1=C-F,C是一个很大的数,所以F不是适应度函数值,加上罚函数时如果不满足约束那么F会变得很大,但罚函数的作用是必须使M*P^2趋于0,此时F就趋于f,所以我认为F 就是f的解,但M越大F就越大啊,怎么回事呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式