加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

遗传算法适应度函数的确定

(2010-07-27 19:28:27)
标签:

杂谈

分类: Matlab

小弟初学遗传算法看到《matlab遗传算法工具箱应用》第107页例子,其中有个命令
fitnv=ranking(-objv),这里目标函数是求最大值,为什么加负号啊?但我看58页中提到目标函数为最大化问题时候,适应度函数直接就等于目标函数啊,是我理解错误了吗?求高手帮忙一下,谢谢了!

 

fitnv=ranking(-objv)这个语句中,objv代表的是各个个体对应的目标值,而ranking函数是根据目标值从小到大进行分配适应度值的,即:ranking(a)中,a的值越大,分配的适应度值越小,所以,要求目标函数最大值,也就是要使目标值 大的个体分配较大的适应度值,就应该在objv前加一个负号。
 
目标函数Object function和适应度函数Fitness function是不一样的概念,有时为了方便后续计算在适应度函数中做些 拉伸,取反,什么的。
 
 
目标函数是你求解的优化变量的函数形式;而适应度函数是你求解的优化变量的一种度量,是一种更为广义的概念。可以这么理解目标函数只是适应度函数的一种,也可以有其他的表达形式。
    对于目标函数,为了得到好的搜索性能,就像楼上说的一样,经过一些变化就可以得到适应度函数。另外就是这些变化可以不唯一的。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有