
比如options.PlotFcns={ @gaplotbestf},然后取句柄,
h=findobj(gcf,'Type','Line') %获取当前图窗的handle
x = get(h,'xdata') % 坐标数据cell数据
y = get(h,'ydata')
x,y可能是cell型,想要的数据在x{ }, y{ }里取(比如,打开x,y,查看x,y与你迭代步数相同的维度的两个cell元素就有最佳值和均值等数据)
你试一下把options=gaoptimset(options,'InitialPopulation',X0)改一下
以为你得到的结果是options,但在调用gaoptimset这个函数的时候又把它当成参数输入了,这样就错了,改成opts=gaoptimset(options,'InitialPopulation',X0)
用遗传算法求最大值问题,可以这样来解决。
1、将最大值问题转换为最小值问题,即 max Z =- min Z;
2、建立其自定义函数,即
z=-(f1*40^1.5/1+f2*30^1.5/2+f2*20^1.5/2+。。。+f12*127^1.5/2+f12*5^1.5/4)
其中:f1,f2,f3,。。。f11,f12为0,1变量,可以用sign()符号函数来处理。
3、用遗传算法ga()函数求解,使用方法
objectivef=@ga_func
nvars=12
[x, fval] =ga(objectivef,nvars)
4、编程运行后得到
f1=1,f2=1,f3=1,f4=0,f5=1,f6=0,f7=1,f8=1,f9=1,f10=1,f11=1,f12=1
Zmax=27329.5018
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)