matlab适应度函数ga,ga程序中适应度函数fitness function向量化问题
主程序如下:
options = gaoptimset ('PopulationSize',40,'EliteCount',5,'CrossoverFraction',0.75,'MigrationFraction',0.1,'Generations',200,'StallGenLimit',200,'TolFun',1e-6,'UseParallel',false,'Vectorized','on'); %设置参数
[x,fval]=ga(@GA_danfeng,5,[],[],[],[],[],[],[],options);
%其中'Vectorized','on'便是向量化已打开
适应度函数为
function f =GA_danfeng(x)
global k;
load w;load ps;
a=w';p=ps';
f1=(a./x(:,1)).^4./((1-(a./x(:,2)).^2).^2+(a./x(:,1)).^4).*(x(:,3).*(1+(2*x(:,4)*a./x(:,5)).^2)./((1-(a./x(:,5)).^2).^2+(2*x(:,4)*a./x(:,5)).^2));
f2=(f1-p).^2;
f=sum(f2);
end
提示的错误为:
>> GA_dan
错误使用 makeState (line 72)
When 'Vectorized' is 'on', your fitness function must return a vector of length equal to the size of the population.
出错 gaunc (line 40)
state = makeState(GenomeLength,FitnessFcn,Iterate,output.problemtype,options);
出错 ga (line 371)
[x,fval,exitFlag,output,population,scores] = gaunc(FitnessFcn,nvars, ...
出错 GA_dan (line 2)
[x,fval]=ga(@GA_danfeng,5,[],[],[],[],[],[],[],options);
这里说适应度函数的返回值不是 population的大小,怎么理解?明明打开向量化,参数也向量化了,为何不能运行?求大神指教。数据见附件
2017-12-10 21:36 上传
点击文件名下载附件
27.96 KB, 下载次数: 4
2017-12-10 21:37 上传
点击文件名下载附件
24.62 KB, 下载次数: 4
matlab适应度函数ga,ga程序中适应度函数fitness function向量化问题相关推荐
- C语言中fun的功能是将字符串,下列给定的程序中,fun()函数的功能是:将p所指字符串中......
下列给定的程序中,fun()函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的"单词"是指有空格隔开的字符串).例如,若输入: I am a student to ...
- 本地方法(JNI)——从java 程序中调用C函数
[0]README 1) 本文部分文字描述 转自 core java volume 2 , 旨在理解 本地方法--从java 程序中调用C函数 的基础知识 : 2) for source code, ...
- 在一个C程序中,main()函数可以放在哪?
C语言规定,在一个C程序中,main()函数的位置(). A.必须在系统调用的库函数之后 B.必须在程序的开始 C.必须在程序的最后 D.可以在任意位置 答案:D [解析] 每个C程序有且只有一个主函 ...
- c语言清除键盘缓冲区函数,C语言程序中清除键盘缓冲区的方法
第四期2006年12月益阳职业技术学院学报 JournalofYiyangVocationalandTechnicalCollegeNO.4Dec.2006 C语言程序中清除键盘缓冲区的方法 杨长虹 ...
- 【MATLAB自带的svmtrain和libsvm中的svmtrain函数的区别】
MATLAB自带的svmtrain和libsvm中的svmtrain函数的区别 libsvm中的svmtrain是mex文件,调用c运行,由于MEX文件执行效率高,故matlab中如果有文件重名的话, ...
- java中函数的调用,java中如何调用函数
java动态调用函数,Java 中使用动态代码,java函数调用,java中如何调用函数 如何在 Java 中调用 C 函数 宗薇 [期刊名称]<网络新媒体技术> [年(卷),期]2000 ...
- 给定一个数学函数写一个程序来确定该函数是否是双射的
离散题目11 Time Limit: 1000 msMemory Limit: 65536 KiB Problem Description 给定一个数学函数写一个程序来确定该函数是否是双射的 Inpu ...
- python自带的sum()函数和numpy库中的sum()函数的区别
在学习<机器学习实战>一书的第十章时,对 return np.sqrt(sum(np.power(vecA - vecB, 2))) 这样一条语句输出的结果老是不对,明明想要输出的是对两个 ...
- python中lambda函数if用法-Python中关于Lambda函数的使用总结
lambda表达式是一种匿名函数,对应python中的自定义函数def,是定义某个函数时比较高级的一种写法.作为python初学者,本文整理了lambda的一些基本用法和特点. lambda和def的 ...
最新文章
- Adobe Creative Suite CS4/CS5 全系列注册机
- ym——Android之ListView性能优化
- 【开发调试】谷歌浏览器中调试移动网页和测试网速下页面效果
- 入门javascript_Espruino入门,Espruino是用于微控制器JavaScript解释器
- 北大AI第八讲 李航 自然语言处理的现实与挑战
- 树莓派3B+64位系统烧制与软件安装
- ajaxFileUpload 异步上传文件简单使用
- 杨森翔的书法-10斗方:杜牧中秋月
- 记录-如何测试服务器是否支持ipv6
- VS code Could not establish connection to IP 解决方法
- Scheme语言入门
- 摩托罗拉Android系统,摩托罗拉官方Android 4.0系统正式到来
- GetDC和BeginPaint
- vue如何通过键盘方向键切换input焦点
- 将Python Pandas DataFrame写入docx文档指定位置
- 河南专升本公共英语语法考点分析---动词时态
- 服务器的ip端口加密协议混淆,Obfsproxy - 混淆/加密端口数据
- Python读取文件时出现错误
- 一阶广义差分模型_4.2 序列相关性_清华大学:计量经济学(李子奈博导)_ppt_大学课件预览_高等教育资讯网...
- 域名备案注销的简单方法
热门文章
- 【超直白】三分钟创建一个小程序
- 技术在于精,其次在于多
- IT男几时而立(上)
- 生活大爆炸系列之制作望远镜架
- LeetCode 28. 实现strStr()
- 17.1.1.3 Creating a User for Replication 创建一个用于用于复制:
- 在Apache中利用ServerAlias设置虚拟主机接收多个域名和设置域名泛解析
- 各种乐器与人声的频率特性说明
- python Image 安装
- 论文阅读:Spatial context-aware network for salient object detection