【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于遗传算法的BP神经网络实例源码+项目说明.zip # 基于遗传算法的BP神经网络 **介绍**:利用遗传算法并行地优化BP网络的权值和阈值,从而避免了BP网络在优化权值和阈值时陷入局部最优的缺点。 **背景**:此项目的背景为客运量和货运量的预测。 **文件介绍** 1. `freightFlow.xlsx ` : 货运量数据集,前7列为影响货运量的因素,第8列为货运量; 2. `passengerFlow.xlsx` : 客运量数据集,前7列为影响货运量的因素,第8列为客运量; 3. `Data.mat`:这是一个结构体,成员P为从客运量数据集,成员F为货运量数据集; 4. 其他为源文件。 ## 函数概述 1. `mainFun()`:主函数,完成训练和预测; 1. `normInit()`:数据获取,存入结构体Data.mat; 1. `gadecod()`:对输入的染色体编码,编码方式一般有两种,实数编码和二进制编码(此项目中对应的为实数编码,所以编码后的值即为解码后的值); 1. `getBPinfo()`:获取BP网络的基本信息; 1. `gabpEval()`:计算适应度。 ## GAOT使用说明 因为项目中用到了GAOT工具包中的函数,所以需要将GAOT工具包加入路径。 操作步骤为: 1. 点击GAOT文件; 1. 添加到路径; 1. 选定文件夹和子文件夹。 这样,工程中就可以调用GAOT工具包中的函数了。 ## 初始种群的生成 ```matlab [pop]=initializega(num,bounds,eevalFN,eevalOps,options) ``` - 【输出参数】 > pop:生成的初始种群 - 【输入参数】 > num:种群中的个体数目 > bounds:代表变量的上下界的矩阵 > eevalFN:适应度函数 > eevalOps:传递给适应度函数的参数 > options:选择编码形式(浮点编码或是二进制编码)[precision F_or_B] > precision:变量进行二进制编码时指定的精度 > F_or_B:为1时选择浮点编码,否则为二进制编码,由precision指定精度) ## 遗传算法函数 ````matlab [x,endPop,bPop,traceInfo]=ga(bounds,evalFN,evalOps,startPop,opts,termFN,termOps,selectFN,selectOps,xOverFNs,xOverOps,mutFNs,mutOps) 【输出参数】 x--求得的最优解 endPop--最终得到的种群 bPop--最优种群的一个搜索轨迹 traceInfo--每一代的最好的适应度和平均适应度 【输入参数】 bounds--代表变量上下界的矩阵 evalFN--适应度函数 evalOps--传递给适应度函数的参数 startPop--初始种群 opts[epsilonprob_opsdisplay]--opts(1:2)等同于initializega的options参数,第三个参数控制是否输出,一般为0。如[1e-610] termFN--终止函数的名称,如['maxGenTerm'] termOps--传递个终止函数的参数,如[100] selectFN--选择函数的名称,如['normGeomSelect'] selectOps--传递个选择函数的参数,如[0.08] xOverFNs--交叉函数名称表,以空格分开,如['arithXoverheuristicXoversimpleXover'] xOverOps--传递给交叉函数的参数表,如[20;23;20] mutFNs--变异函数表,如['boundaryMutationmultiNonUnifMutationnonUnifMutationunifMutation'] mutOps--传递给交叉函数的参数表,如[400;61003;41003;400] ````
- 1
- 粉丝: 1516
- 资源: 5642
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助