MATLAB智能算法30个案例分析.DOC

上传人:国*** 文档编号:808409 上传时间:2018-11-02 格式:DOC 页数:115 大小:1.98MB
下载 相关 举报
MATLAB智能算法30个案例分析.DOC_第1页
第1页 / 共115页
MATLAB智能算法30个案例分析.DOC_第2页
第2页 / 共115页
MATLAB智能算法30个案例分析.DOC_第3页
第3页 / 共115页
MATLAB智能算法30个案例分析.DOC_第4页
第4页 / 共115页
MATLAB智能算法30个案例分析.DOC_第5页
第5页 / 共115页
点击查看更多>>
资源描述

1、MATLAB 智能算法 30 个案例分析智能算法是我们在学习中经常遇到的算法,主要包括遗传算法,免疫算法,粒子群算法,神经网络等,智能算法对于很多人来说,既爱又恨,爱是因为熟练的掌握几种智能算法,能够很方便的解决我们的论坛问题,恨是因为智能算法感觉比较“玄乎” ,很难理解,更难用它来解决问题。因此,我们组织了王辉,史峰,郁磊,胡斐四名高手共同写作 MATLAB 智能算法,该书包含了遗传算法,免疫算法,粒子群算法,鱼群算法,多目标 pareto 算法,模拟退火算法,蚁群算法,神经网络,SVM 等,本书最大的特点在于以案例为导向,每个案例针对一个实际问题,给出全部程序和求解思路,并配套相关讲解视频

2、,使读者在读过一个案例之后能够快速掌握这种方法,并且会套用案例程序来编写自己的程序。本书作者在线,读者和会员可以向作者提问,作者做到有问必答。本书和目录如下: 1 基于遗传算法的 TSP 算法(王辉)TSP (旅行商问题 Traveling Salesman Problem),是典型的 NP 完全问题,即其最坏情况下的时间复杂性随着问题规模的增大按指数方式增长,到目前为止不能找到一个多项式时间的有效算法。遗传算法是一种进化算法,其基本原理是仿效生物界中的“物竞天择、适者生存”的演化法则。遗传算法的做法是把问题参数编码为染色体,再利用迭代的方式进行选择、交叉以及变异等运算来交换种群中染色体的信息

3、,最终生成符合优化目标的染色体。实践证明,遗传算法对于解决 TSP 问题等组合优化问题具有较好的寻优性能。2 基于遗传算法和非线性规划的函数寻优算法(史峰)遗传算法提供了求解非线性规划的通用框架,它不依赖于问题的具体领域。遗传算法的优点是将问题参数编码成染色体后进行优化, 而不针对参数本身, 从而不受函数约束条件的限制; 搜索过程从问题解的一个集合开始, 而不是单个个体, 具有隐含并行搜索特性,可大大减少陷入局部最小的可能性。而且优化计算时算法不依赖于梯度信息,且不要求目标函数连续及可导,使其适于求解传统搜索方法难以解决的大规模、非线性组合优化问题。3 基于遗传算法的 BP 神经网络优化算法(

4、王辉)BP 模型被广泛地应用于模式分类、模式识别等方面但 BP 算法收敛速度慢,且很容易陷入局部极小点,而遗传算法具有并行搜索、效率高、不存在局部收敛问题等优点而被广泛应用遗传算法的寻优过程带有一定程度的随机性和盲从性,多数情况下只能收敛到全局次优解,且有过早收敛的现象为了克服遗传算法寻优过程的盲从性,将有监督学习的 BP算法与之结合以达到优势互补、提高算法的稳定性和全局搜索能力的目的。4 设菲尔德大学的 MATLAB 遗传算法工具箱(王辉)Matlab 遗传算法(Genetic Algorithm)优化工具箱是基于基本操作及终止条件、二进制和十进制相互转换等操作的综合函数库。其实现步骤包括:

5、通过输入及输出函数求出遗传算法主函数、初始种群的生成函数,采用选择、交叉、变异操作求得基本遗传操作函数。以函数仿真为例,对该函数优化和 GA 改进,只需改写函数 m 文件形式即可。5 基于遗传算法的 LQR 控制优化算法(胡斐)LQR 控制在工程中得到了广泛的应用,对于 LQR 最优控制方法,性能指标中权重矩阵的选择对控制系统的性能有很大影响。权重矩阵通常的确定方法,首先是根据经验初步确定,然后通过模拟,根据输出响应量逐步调整权重系数,直到获得满意的输出响应量为止。这种确定方法不仅费时,而且无法获得最优的权重矩阵使系统性能达到最优。本案例将研究基于遗传算法的 LQR 控制优化算法,利用遗传算法

6、的全局寻优能力,搜索权重矩阵。6 遗传算法工具箱详解及应用(胡斐)MATLAB 自带的遗传算法与直接搜索工具箱(Genetic Algorithm and Direct Search Toolbox, GADST),可以较好地解决与遗传算法相关的各种问题。GADST 可以通过 GUI 界面调用,也可以通过命令行方式调用,使用简单方便。本案例将对 GADST 函数库的遗传算法部分进行详细的代码分析和讲解,并通过求解非线性方程组介绍 GADST 的使用方法。7 多种群遗传算法的函数优化算法(王辉)标准遗传算法有时候会出现未成熟收敛问题,在求解多目标优化问题时显得尤其严重。遗传算法存在未成熟收敛问题

7、,在求解多目标优化问题时显得尤其严重。因此已有学者提出了多种群遗传算法。该算法中多个种群使用同一目标函数,各种群的交叉率和变异率取不同的固定值,以搜索不同解空间中的最优解,种群之间定期进行信息交换。多种群遗传算法能在一定程度上缓解遗传算法的不成熟收敛问题。8 基于量子遗传算法的函数寻优算法(王辉)量子遗传算法(Quantum Genetic Algorithm,QGA)是量子计算与遗传算法(Genetic Algorithm,GA) 相结合的产物,是一种新发展起来的概率进化算法。量子遗传算法是将量子计算与遗传算法相结合而形成的一种混合遗传算法,它弥补了传统遗传算法的某些不足;利用量子计算的一些

8、概念和理论,如量子位、量子叠加态等,使用量子比特编码染色体,这种概率幅表示可以使一个量子染色体同时表达多个状态的信息,用量子门对叠加态的作用作为进化操作,能很好地保持种群多样性和避免选择压力问题,而且当前最优个体的信息能够很容易用来引导变异,使得种群以大概率向着优良模式进化,从而实现目标的优化求解。9 多目标 Pareto 最优解搜索算法(胡斐)多目标优化是指在约束条件下有两个或两个以上的优化目标,而且这些目标之间相互矛盾,不能同时达到最优,也就是说,一个目标的最优往往是以牺牲其它目标作为代价的,因此多目标优化问题存在多个最优解,这些解之间无法比较优劣,统称为 Pareto 最优解。带精英策略

9、的快速非支配排序遗传算法(Nondominated Sorting Genetic Algorithm II,NSGA-II)是目前应用较为广泛的一种多目标算法。本案例将对 MATLAB 自带的改进的 NSGA-II 进行讲解,并举例说明其应用。10 基于多目标 Pareto 的二维背包搜索算法(史峰)背包问题(knapsack problem)是运筹学一个典型的优化难题,但是它有着广泛的应用背景,如装载问题、材料切割、投资决策以及资源分配等, 往往还将其作为其他问题的子问题加以研究。它是个典型的 NP 问题,对其求解主要采用启发式算法,如贪心算法、遗传算法及模拟退火算法等。粒子群算法是一种新

10、的进化算法,运算简单、易于实现,该案例将其用于多目标二维背包问题中,向读者阐明粒子群算法解决带有约束的多目标组合优化问题的方法。11 基于免疫算法的柔性车间调度算法(史峰)有效的调度方法与优化技术的研究和应用,对于制造企业提高生产效率,降低生产成本等方面起着重要作用。然而柔性车间调度问题计算复杂,约束条件多,普通算法容易陷入局部最优问题。免疫算法是模仿免疫系统抗原识别,抗原与抗体产生过程,并利用免疫系统多样性和记忆抽象得到的算法,具有非线性,全局化搜索等优势,本案例研究了基于免疫算法的柔性车间调度算法。12 基于免疫算法的运输中心规划算法(史峰)随着物流业的快速发展,配送在整个物流系统中的所起

11、的作用越发重要,因而配送中心的选址对于企业的网络布局、经营方式等起到了重要作用。然而,配送中心的选择具有计算复杂、约束条件多等问题,普通算法难以找到问题的最优解。免疫算法具有非线性、全局搜索等优点,适合于此类复杂问题的研究,本案例研究了基于免疫算法的运输中心规划算法。13 基于粒子群算法的函数寻优算法(史峰)粒子群优化算法(PSO,particle swarm optimization)是计算智能领域,除了蚁群算法,鱼群算法之外的一种群体智能的优化算法。函数寻优是工程中经常遇到的问题,有些函数因为局部极小值点的存在,算法难以寻找到局部最优值。粒子群算法具有群体智能,全局寻优等优势,比较适合于函

12、数寻优问题,本案例研究了基于粒子群算法的函数寻优算法。14 基于粒子群算法的 PID 控制优化算法(史峰)PID 控制方法是工业领域中最常用的控制方法,然而在 PID 控制算法的使用中,P,I,D 参数即比例参数、积分参数、微分参数的确定是个难题,一般是凭经验获得。粒子群算法具有全局寻优功能,可以寻找使控制指标值最优的 PID 参数。本案例研究了基于粒子群算法的PID 控制优化算法。15 基于混合粒子群算法的 TSP 寻优算法(史峰)粒子群算法虽然具有算法简单,寻优速度快等优点,但同时存在算法容易收敛,易陷入局部最优值等问题。采用遗传算法改进粒子群算法,通过选择、交叉和变异操作的引入,改进了算

13、法性能,增强了算法的全局搜索能力。本案例研究了基于混合粒子群算法的 TSP 寻优算法。16 基于动态粒子群算法的动态环境寻优算法(史峰)普通粒子群算法无法感知外界环境的变化,在外界环境发生改变时无法实时进行响应,因而缺乏动态环境寻优能力。在普通粒子群算法基本上通过增加敏感粒子得到一种动态粒子群算法,该算法通过实时计算敏感粒子的适应度值从而感知外界环境的变化,当外界环境的变化超过一定的阈值时算法以按一定比例更新速度和粒子的方式进行相应,从而具有动态环境寻优的功能。本案例研究了基于动态粒子群算法的动态环境寻优算法。17 粒子群算法工具箱(史峰)粒子群算法工具箱包含了粒子群算法的基本操作和常用功能,

14、实现步骤包括种群规模选择,粒子长度选取,适应度函数编写,粒子群参数确定等,可以方便实现函数极值寻找,系统参数寻优等功能。本案例以函数极值寻优为例,详细讲解了粒子群算法工具箱的使用。18 基于鱼群算法的函数寻优算法(王辉)人工鱼群算法是李晓磊等人于 2002 年提出的一类基于动物行为的群体智能优化算法该算法是通过模拟鱼类的觅食、聚群、追尾等行为在搜索域中进行寻优,是集群体智能思想的一个具体应用人工鱼群算法具有以下特点:具有克服局部极值、取得全局极值的较优秀的能力;算法中仅使用目标问题的函数值,对搜索空间有一定自适应能力;具有对初值与参数选择不敏感、鲁棒性强、简单易实现、收敛速度快和使用灵活等特点

15、可以解决经典方法不能求解的带有绝对值且不可导二元函数等的极值问题。本案例研究了基于鱼群算法的函数寻优算法。19 基于模拟退火算法的 TSP 算法(王辉) 模拟退火算法(Simulated Annealing , 简称 SA)为求解传统方法难处理的 TSP 问题提供了一个有效的途径和通用框架, 并逐渐发展成一种迭代自适应启发式概率性搜索算法。用以求解不同的非线性问题; 对不可微甚至不连续的函数优化, SA 能以较大概率求得全局优化解; 具有较强的鲁棒性、全局收敛性、隐含并行性及广泛的适应性; 并且能处理不同类型的优化设计变量( 离散的、连续的和混合型的 ) ; 不需要任何的辅助信息, 对目标函数

16、和约束函数没有任何要求。利用 Metropolis 算法并适当地控制温度下降过程, 在优化问题中具有很强的竞争力, 本案例研究了基于模拟退火算法的 TSP 算法。20 基于遗传模拟退火算法的聚类算法(王辉)遗传算法在运行早期个体差异较大,当采用经典的轮盘赌方式选择时,后代产生的个数与父个体适应度大小成正比,因此在早期容易使个别好的个体的后代充斥整个种群,造成早熟。在遗传算法后期,适应度趋向一致,优秀的个体在产生后代时,优势不明显,从而使整个种群进化停滞不前。因此对适应度适当地进行拉伸是必要的,这样在温度高时(遗传算法的前期),适应度相近的个体产生的后代概率相近;而当温度不断下降后,拉伸作用加强

17、,使适应度相近的个体适应度差异放大,从而使得优秀的个体优势更明显。由于模拟退火算法和遗传算法可以互相取长补短,因此有效地克服了传统遗传算法的早熟现象,同时根据聚类问题的具体情况设计遗传编码方式、适应度函数,使该算法更有效、更快速地收敛到全局最优解。本案例研究了基于遗传模拟退火算法的聚类算法。21 基于模拟退火算法的 HEV 能量管理策略参数优化(胡斐)模拟退火算法(Simulated Annealing, SA)作为局部搜索算法的扩展,在每一次修改模型的过程中,随机产生一个新的状态模型,然后以一定的概率选择邻域中能量值大的状态。这种接受新模型的方式使其成为一种全局最优算法,并得到理论证明和实际

18、应用的验证。能量管理策略是混合动力汽车(Hybrid Electric Vehicle, HEV)的核心技术之一。本案例将对 SA 进行讲解并将其应用于 HEV 能量管理策略的参数优化。22 蚁群算法的优化计算 旅行商问题(TSP)优化(郁磊)蚁群算法(Ant Colony Algorithm,ACA)是由意大利学者 M.Dorigo 等人于 20 世纪 90 年代初提出的一种新的模拟进化算法,其真实地模拟了自然界蚂蚁群体的觅食行为。M.Dorigo等人将其应用于解决旅行商问题(Traveling Salesman Problem,TSP) ,取得了较好的实验结果。近年来,许多专家与学者致力于

19、蚁群算法的研究,并将其应用于交通、通信、化工、电力等领域,成功解决了许多组合优化问题,如调度问题(Job-shop Scheduling Problem) 、指派问题(Quadratic Assignment Problem) 、旅行商问题(Traveling Salesman Problem)等。本章将详细阐述蚁群算法的基本思想及原理,并以实例的形式介绍其应用于解决中国旅行商问题(Chinese TSP,CTSP)的情况。23 基于蚁群算法的二维路径规划算法(史峰)二维路径规划算法是机器人智能控制领域研究中的热点,算法目的是使机器人能够在有障碍物的工作环境中寻找一条恰当的从给定起点到终点的运

20、动路径。蚁群算法具有分布计算,群体智能等优势,在路径规划算法上具有很大潜力,本案例研究了基于蚁群算法的二维路径规划算法。24 基于蚁群算法的三维路径规划算法(史峰)三维路径规划算法是机器人智能控制领域中的热点问题,是指机器人在三维地图中自动规划一条从出发点到目标点满足指标最优的路径。相对于二维路径规划算法来说,三维路径规划问题更加复杂,需要考虑的因素和约束条件更多,一般方法难以取得好的规划效果。蚁群算法具有分布计算,群体智能等优势,在路径规划算法上具有很大潜力,本案例研究了基于蚁群算法的三维路径规划算法。25 有导师学习神经网络的回归拟合基于近红外光谱的汽油辛烷值预测(郁磊)神经网络的学习规则

21、又称神经网络的训练算法,用来计算更新神经网络的权值和阈值。学习规则有两大类别:有导师学习和无导师学习。在有导师学习中,需要为学习规则提供一系列正确的网络输入/输出对(即训练样本) ,当网络输入时,将网络输出与相对应的期望值进行比较,然后应用学习规则调整权值和阈值,使网络的输出接近于期望值。而在无导师学习中,权值和阈值的调整只与网络输入有关系,没有期望值,这类算法大多用聚类法,将输入模式归类于有限的类别。本章将详细分析两种应用最广的有导师学习神经网络(BP神经网络及 RBF 神经网络)的原理及其在回归拟合中的应用。26 有导师学习神经网络的分类鸢尾花种类识别(郁磊)有导师学习神经网络以其良好的学

22、习能力广泛应用于各个领域中,其不仅可以解决拟合回归问题,亦可以用于模式识别、分类识别。本章将继续介绍两种典型的有导师学习神经网络(GRNN 和 PNN) ,并以实例说明其在分类识别中的应用。27 无导师学习神经网络的分类矿井突水水源判别(郁磊)如第 25 章及第 26 章所述,对于有导师学习神经网络,事先需要知道与输入相对应的期望输出,根据期望输出与网络输出间的偏差来调整网络的权值和阈值。然而,在大多数情况下,由于人们认知能力以及环境的限制,往往无法或者很难获得期望的输出,在这种情况下,基于有导师学习的神经网络往往是无能为力的。与有导师学习神经网络不同,无导师学习神经网络在学习过程中无需知道期

23、望的输出。其与真实人脑中的神经网络类似,可以通过不断地观察、分析与比较,自动揭示样本中的内在规律和本质,从而可以对具有近似特征(属性)的样本进行准确地分类和识别。本章将详细介绍竞争神经网络与自组织特征映射(SOFM)神经网络的结构及原理,并以实例说明其具体的应用范围及效果。28 支持向量机的分类 基于乳腺组织电阻抗特性的乳腺癌诊断(郁磊)支持向量机(Support Vector Machine,SVM)是一种新的机器学习方法,其基础是 Vapnik创建的统计学习理论(Statiscal Learning Theory,STL) 。统计学习理论采用结构风险最小化(Structural Risk

24、Minimization,SRM)准则,在最小化样本点误差的同时,最小化结构风险,提高了模型的泛化能力,且没有数据维数的限制。在进行线性分类时,将分类面取在离两类样本距离较大的地方;进行非线性分类时通过高维空间变换,将非线性分类变成高维空间的线性分类问题。本章将详细介绍支持向量机的分类原理,并将其应用于基于乳腺组织电阻抗频谱特性的乳腺癌诊断。29 支持向量机的回归拟合混凝土抗压强度预测(郁磊)与传统的神经网络相比,SVM 具有以下几个优点:(1 ) SVM 是专门针对小样本问题而提出的,其可以在有限样本的情况下获得最优解;(2 ) SVM 算法最终将转化为一个二次规划问题,从理论上讲可以得到全

25、局最优解,从而解决了传统神经网无法避免局部最优的问题;(3 ) SVM 的拓扑结构由支持向量决定,避免了传统神经网络需要反复试凑确定网络结构的问题;(4 ) SVM 利用非线性变换将原始变量映射到高维特征空间,在高维特征空间中构造线性分类函数,这既保证了模型具有良好的泛化能力,又解决了“维数灾难” 问题。同时,SVM 不仅可以解决分类、模式识别等问题,还可以解决回归、拟合等问题。因此,其在各个领域中都得到了非常广泛的利用。本章将详细介绍 SVM 回归拟合的基本思想和原理,并以实例的形式阐述其在混凝土抗压强度预测中的应用。30 极限学习机的回归拟合及分类对比实验研究(郁磊)单隐含层前馈神经网络(

26、Single-hidden Layer Feedforward Neural Network,SLFN)以其良好的学习能力在许多领域中得到了广泛的应用。然而,传统的学习算法(如 BP 算法等)固有的一些缺点,成为制约其发展的主要瓶颈。因此,探索一种训练速度快、获得全局最优解,且具有良好的泛化性能的训练算法是提升前馈神经网络性能的主要目标,也是近年来的研究热点和难点。本章将介绍一个针对 SLFN 的新算法 极限学习机(Extreme Learning Machine,ELM) ,该算法随机产生输入层与隐含层间的连接权值及隐含层神经元的阈值,且在训练过程中无需调整,只需要设置隐含层神经元的个数,便

27、可以获得唯一的最优解。与传统的训练方法相比,该方法具有学习速度快、泛化性能好等优点。同时,在介绍 ELM 算法的基础上,本章以实例的形式将该算法分别应用于回归拟合(第 25章 基于近红外光谱的汽油辛烷值预测)和分类(第 26 章鸢尾花种类识别)中。第 1 章 1、案例背景遗传算法(Genetic Algorithm,GA)是一种进化算法,其基本原理是仿效生物界中的“物竞天择、适者生存”的演化法则。遗传算法的做法是把问题参数编码为染色体,再利用迭代的方式进行选择、交叉以及变异等运算来交换种群中染色体的信息,最终生成符合优化目标的染色体。在遗传算法中,染色体对应的是数据或数组,通常是由一维的串结构

28、数据来表示,串上各个位置对应基因的取值。基因组成的串就是染色体,或者叫基因型个体( Individuals) 。一定数量的个体组成了群体(Population)。群体中个体的数目称为群体大小(Population Size),也叫群体规模。而各个个体对环境的适应程度叫做适应度( Fitness) 。2、案例目录:1.1 理论基础1.1.1 遗传算法概述1. 编码2. 初始群体的生成3. 适应度评估4. 选择5. 交叉6. 变异1.1.2 设菲尔德遗传算法工具箱1. 工具箱简介2. 工具箱添加1.2 案例背景1.2.1 问题描述1. 简单一元函数优化2. 多元函数优化1.2.2 解决思路及步骤1

29、.3 MATLAB 程序实现1.3.1 工具箱结构1.3.2 遗传算法中常用函数1. 创建种群函数crtbp2. 适应度计算函数ranking3. 选择函数select4. 交叉算子函数recombin5. 变异算子函数mut6. 选择函数reins7. 实用函数bs2rv8. 实用函数rep1.3.3 遗传算法工具箱应用举例1. 简单一元函数优化2. 多元函数优化1.4 延伸阅读1.5 参考文献3、主程序:1. 简单一元函数优化:clcclear allclose all% 画出函数图figure(1);hold on;lb=1;ub=2; %函数自变量范围【1,2】ezplot(sin(1

30、0*pi*X)/X,lb,ub); %画出函数曲线xlabel(自变量/X)ylabel(函数值/Y)% 定义遗传算法参数NIND=40; %个体数目MAXGEN=20; %最大遗传代数PRECI=20; %变量的二进制位数GGAP=0.95; %代沟px=0.7; %交叉概率pm=0.01; %变异概率trace=zeros(2,MAXGEN); %寻优结果的初始值FieldD=PRECI;lb;ub;1;0;1;1; %区域描述器Chrom=crtbp(NIND,PRECI); %初始种群% 优化gen=0; %代计数器X=bs2rv(Chrom,FieldD); %计算初始种群的十进制转

31、换ObjV=sin(10*pi*X)./X; %计算目标函数值while genMAXGENFitnV=ranking(ObjV); %分配适应度值SelCh=select(sus,Chrom,FitnV,GGAP); %选择SelCh=recombin(xovsp,SelCh,px); %重组SelCh=mut(SelCh,pm); %变异X=bs2rv(SelCh,FieldD); %子代个体的十进制转换ObjVSel=sin(10*pi*X)./X; %计算子代的目标函数值Chrom,ObjV=reins(Chrom,SelCh,1,1,ObjV,ObjVSel); %重插入子代到父代,

32、得到新种群X=bs2rv(Chrom,FieldD);gen=gen+1; %代计数器增加%获取每代的最优解及其序号,Y 为最优解,I 为个体的序号Y,I=min(ObjV);trace(1,gen)=X(I); %记下每代的最优值trace(2,gen)=Y; %记下每代的最优值endplot(trace(1,:),trace(2,:),bo); %画出每代的最优点grid on;plot(X,ObjV,b*); %画出最后一代的种群hold off% 画进化图figure(2);plot(1:MAXGEN,trace(2,:);grid onxlabel(遗传代数)ylabel(解的变化)

33、title(进化过程)bestY=trace(2,end);bestX=trace(1,end);fprintf(最优解:nX=,num2str(bestX),nY=,num2str(bestY),n)2. 多元函数优化clcclear allclose all% 画出函数图figure(1);lbx=-2;ubx=2; %函数自变量 x 范围【-2,2】lby=-2;uby=2; %函数自变量 y 范围【-2,2】ezmesh(y*sin(2*pi*x)+x*cos(2*pi*y),lbx,ubx,lby,uby,50); %画出函数曲线hold on;% 定义遗传算法参数NIND=40;

34、%个体数目MAXGEN=50; %最大遗传代数PRECI=20; %变量的二进制位数GGAP=0.95; %代沟px=0.7; %交叉概率pm=0.01; %变异概率trace=zeros(3,MAXGEN); %寻优结果的初始值FieldD=PRECI PRECI;lbx lby;ubx uby;1 1;0 0;1 1;1 1; %区域描述器Chrom=crtbp(NIND,PRECI*2); %初始种群% 优化gen=0; %代计数器XY=bs2rv(Chrom,FieldD); %计算初始种群的十进制转换X=XY(:,1);Y=XY(:,2);ObjV=Y.*sin(2*pi*X)+X.

35、*cos(2*pi*Y); %计算目标函数值while genMAXGENFitnV=ranking(-ObjV); %分配适应度值SelCh=select(sus,Chrom,FitnV,GGAP); %选择SelCh=recombin(xovsp,SelCh,px); %重组SelCh=mut(SelCh,pm); %变异XY=bs2rv(SelCh,FieldD); %子代个体的十进制转换X=XY(:,1);Y=XY(:,2);ObjVSel=Y.*sin(2*pi*X)+X.*cos(2*pi*Y); %计算子代的目标函数值Chrom,ObjV=reins(Chrom,SelCh,1,

36、1,ObjV,ObjVSel); %重插入子代到父代,得到新种群XY=bs2rv(Chrom,FieldD);gen=gen+1; %代计数器增加%获取每代的最优解及其序号,Y 为最优解,I 为个体的序号Y,I=max(ObjV);trace(1:2,gen)=XY(I,:); %记下每代的最优值trace(3,gen)=Y; %记下每代的最优值endplot3(trace(1,:),trace(2,:),trace(3,:),bo); %画出每代的最优点grid on;plot3(XY(:,1),XY(:,2),ObjV,bo); %画出最后一代的种群hold off% 画进化图figure

37、(2);plot(1:MAXGEN,trace(3,:);grid onxlabel(遗传代数)ylabel(解的变化)title(进化过程)bestZ=trace(3,end);bestX=trace(1,end);bestY=trace(2,end);fprintf(最优解:nX=,num2str(bestX),nY=,num2str(bestY),nZ=,num2str(bestZ), n)第 2 章 基于遗传算法和非线性规划的函数寻优算法1.1 案例背景1.1.1 非线性规划方法非线性规划是 20 世纪 50 年代才开始形成的一门新兴学科。1951 年 H.W.库恩和 A.W.塔克发表的关于最优性条件(后来称为库恩.塔克条件)的论文是非线性规划正式诞生的一个重要标志。非线性规划研究一个 n 元实函数在一组等式或不等式的约束条件下的极值问题,且目标函数和约束条件至少有一个是未知量的非线性函数。非线性规划的一个重要理论是 1951 年 Kuhn-Tucker 最优条件(简称 KT 条件)的建立。此后的 50 年代主要是对梯度法和牛顿法的研究。以 Davidon(1959),Fletcher

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。