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

上传人:b****5 文档编号:6533026 上传时间:2023-01-07 格式:DOCX 页数:126 大小:1.49MB
下载 相关 举报
MATLAB智能算法30个案例分析115.docx_第1页
第1页 / 共126页
MATLAB智能算法30个案例分析115.docx_第2页
第2页 / 共126页
MATLAB智能算法30个案例分析115.docx_第3页
第3页 / 共126页
MATLAB智能算法30个案例分析115.docx_第4页
第4页 / 共126页
MATLAB智能算法30个案例分析115.docx_第5页
第5页 / 共126页
点击查看更多>>
下载资源
资源描述

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

《MATLAB智能算法30个案例分析115.docx》由会员分享,可在线阅读,更多相关《MATLAB智能算法30个案例分析115.docx(126页珍藏版)》请在冰豆网上搜索。

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

MATLAB智能算法30个案例分析115

MATLAB智能算法30个案例分析115

智能算法是我们在学习中经常遇到的算法,要紧包括遗传算法,免疫算法,粒子群算法,神经网络等,智能算法关于专门多人来说,既爱又恨,爱是因为熟练的把握几种智能算法,能够专门方便的解决我们的论坛问题,恨是因为智能算法感受比较“玄乎”,专门难明白得,更难用它来解决问题。

  因此,我们组织了王辉,史峰,郁磊,胡斐四名高手共同写作MATLAB智能算法,该书包含了遗传算法,免疫算法,粒子群算法,鱼群算法,多目标pareto算法,模拟退火算法,蚁群算法,神经网络,SVM等,本书最大的特点在于以案例为导向,每个案例针对一个实际问题,给出全部程序和求解思路,并配套相关讲解视频,使读者在读过一个案例之后能够快速把握这种方法,同时会套用案例程序来编写自己的程序。

本书作者在线,读者和会员能够向作者提问,作者做到有问必答。

  本书和名目如下:

1基于遗传算法的TSP算法(王辉)

TSP(旅行商问题—TravelingSalesmanProblem),是典型的NP完全问题,即其最坏情形下的时刻复杂性随着问题规模的增大按指数方式增长,到目前为止不能找到一个多项式时刻的有效算法。

遗传算法是一种进化算法,其差不多原理是仿效生物界中的“物竞天择、适者生存”的演化法则。

遗传算法的做法是把问题参数编码为染色体,再利用迭代的方式进行选择、交叉以及变异等运算来交换种群中染色体的信息,最终生成符合优化目标的染色体。

实践证明,遗传算法关于解决TSP问题等组合优化问题具有较好的寻优性能。

2基于遗传算法和非线性规划的函数寻优算法(史峰)

遗传算法提供了求解非线性规划的通用框架,它不依靠于问题的具体领域。

遗传算法的优点是将问题参数编码成染色体后进行优化,而不针对参数本身,从而不受函数约束条件的限制;搜索过程从问题解的一个集合开始,而不是单个个体,具有隐含并行搜索特性,可大大减少陷入局部最小的可能性。

而且优化运算时算法不依靠于梯度信息,且不要求目标函数连续及可导,使其适于求解传统搜索方法难以解决的大规模、非线性组合优化问题。

3基于遗传算法的BP神经网络优化算法(王辉)

BP模型被广泛地应用于模式分类、模式识别等方面.但BP算法收敛速度慢,且专门容易陷入局部极小点,而遗传算法具有并行搜索、效率高、不存在局部收敛问题等优点而被广泛应用.遗传算法的寻优过程带有一定程度的随机性和盲从性,多数情形下只能收敛到全局次优解,且有过早收敛的现象.为了克服遗传算法寻优过程的盲从性,将有监督学习的BP算法与之结合以达到优势互补、提高算法的稳固性和全局搜索能力的目的。

4设菲尔德大学的MATLAB遗传算法工具箱(王辉)

Matlab遗传算法(GeneticAlgorithm)优化工具箱是基于差不多操作及终止条件、二进制和十进制相互转换等操作的综合函数库。

事实上现步骤包括:

通过输入及输出函数求出遗传算法主函数、初始种群的生成函数,采纳选择、交叉、变异操作求得差不多遗传操作函数。

以函数仿真为例,对该函数优化和GA改进,只需改写函数m文件形式即可。

5基于遗传算法的LQR操纵优化算法(胡斐)

LQR操纵在工程中得到了广泛的应用,关于LQR最优操纵方法,性能指标中权重矩阵的选择对操纵系统的性能有专门大阻碍。

权重矩阵通常的确定方法,第一是依照体会初步确定,然后通过模拟,依照输出响应量逐步调整权重系数,直到获得中意的输出响应量为止。

这种确定方法不仅费时,而且无法获得最优的权重矩阵使系统性能达到最优。

本案例将研究基于遗传算法的LQR操纵优化算法,利用遗传算法的全局寻优能力,搜索权重矩阵。

6遗传算法工具箱详解及应用(胡斐)

MATLAB自带的遗传算法与直截了当搜索工具箱(GeneticAlgorithmandDirectSearchToolbox,GADST),能够较好地解决与遗传算法相关的各种问题。

GADST能够通过GUI界面调用,也能够通过命令行方式调用,使用简单方便。

本案例将对GADST函数库的遗传算法部分进行详细的代码分析和讲解,并通过求解非线性方程组介绍GADST的使用方法。

7多种群遗传算法的函数优化算法(王辉)

标准遗传算法有时候会显现未成熟收敛问题,在求解多目标优化问题时显得专门严峻。

遗传算法存在未成熟收敛问题,在求解多目标优化问题时显得专门严峻。

因此已有学者提出了多种群遗传算法。

该算法中多个种群使用同一目标函数,各种群的交叉率和变异率取不同的固定值,以搜索不同解空间中的最优解,种群之间定期进行信息交换。

多种群遗传算法能在一定程度上缓解遗传算法的不成熟收敛问题。

8基于量子遗传算法的函数寻优算法(王辉)

量子遗传算法(QuantumGeneticAlgorithm,QGA)是量子运算与遗传算法(GeneticAlgorithm,GA)相结合的产物,是一种新进展起来的概率进化算法。

量子遗传算法是将量子运算与遗传算法相结合而形成的一种混合遗传算法,它补偿了传统遗传算法的某些不足;利用量子运算的一些概念和理论,如量子位、量子叠加态等,使用量子比特编码染色体,这种概率幅表示能够使一个量子染色体同时表达多个状态的信息,用量子门对叠加态的作用作为进化操作,能专门好地保持种群多样性和幸免选择压力问题,而且当前最优个体的信息能够专门容易用来引导变异,使得种群以大致率向着优良模式进化,从而实现目标的优化求解。

9多目标Pareto最优解搜索算法(胡斐)

多目标优化是指在约束条件下有两个或两个以上的优化目标,而且这些目标之间相互矛盾,不能同时达到最优,也确实是说,一个目标的最优往往是以牺牲其它目标作为代价的,因此多目标优化问题存在多个最优解,这些解之间无法比较优劣,统称为Pareto最优解。

带精英策略的快速非支配排序遗传算法(NondominatedSortingGeneticAlgorithmII,NSGA-II)是目前应用较为广泛的一种多目标算法。

本案例将对MATLAB自带的改进的NSGA-II进行讲解,并举例说明其应用。

10基于多目标Pareto的二维背包搜索算法(史峰)

背包问题(knapsackproblem)是运筹学一个典型的优化难题,然而它有着广泛的应用背景,如装载问题、材料切割、投资决策以及资源分配等,往往还将其作为其他问题的子问题加以研究。

它是个典型的NP问题,对其求解要紧采纳启发式算法,如贪心算法、遗传算法及模拟退火算法等。

粒子群算法是一种新的进化算法,运算简单、易于实现,该案例将其用于多目标二维背包问题中,向读者阐明粒子群算法解决带有约束的多目标组合优化问题的方法。

11基于免疫算法的柔性车间调度算法(史峰)

有效的调度方法与优化技术的研究和应用,关于制造企业提高生产效率,降低生产成本等方面起着重要作用。

然而柔性车间调度问题运算复杂,约束条件多,一般算法容易陷入局部最优问题。

免疫算法是仿照免疫系统抗原识别,抗原与抗体产生过程,并利用免疫系统多样性和经历抽象得到的算法,具有非线性,全局化搜索等优势,本案例研究了基于免疫算法的柔性车间调度算法。

12基于免疫算法的运输中心规划算法(史峰)

随着物流业的快速进展,配送在整个物流系统中的所起的作用更加重要,因而配送中心的选址关于企业的网络布局、经营方式等起到了重要作用。

然而,配送中心的选择具有运算复杂、约束条件多等问题,一般算法难以找到问题的最优解。

免疫算法具有非线性、全局搜索等优点,适合于此类复杂问题的研究,本案例研究了基于免疫算法的运输中心规划算法。

13基于粒子群算法的函数寻优算法(史峰)

粒子群优化算法(PSO,particleswarmoptimization)是运算智能领域,除了蚁群算法,鱼群算法之外的一种群体智能的优化算法。

函数寻优是工程中经常遇到的问题,有些函数因为局部极小值点的存在,算法难以查找到局部最优值。

粒子群算法具有群体智能,全局寻优等优势,比较适合于函数寻优问题,本案例研究了基于粒子群算法的函数寻优算法。

14基于粒子群算法的PID操纵优化算法(史峰)

PID操纵方法是工业领域中最常用的操纵方法,然而在PID操纵算法的使用中,P,I,D参数即比例参数、积分参数、微分参数的确定是个难题,一样是凭体会获得。

粒子群算法具有全局寻优功能,能够查找使操纵指标值最优的PID参数。

本案例研究了基于粒子群算法的PID操纵优化算法。

15基于混合粒子群算法的TSP寻优算法(史峰)

粒子群算法尽管具有算法简单,寻优速度快等优点,但同时存在算法容易收敛,易陷入局部最优值等问题。

采纳遗传算法改进粒子群算法,通过选择、交叉和变异操作的引入,改进了算法性能,增强了算法的全局搜索能力。

本案例研究了基于混合粒子群算法的TSP寻优算法。

16基于动态粒子群算法的动态环境寻优算法(史峰)

一般粒子群算法无法感知外界环境的变化,在外界环境发生改变时无法实时进行响应,因而缺乏动态环境寻优能力。

在一般粒子群算法差不多上通过增加敏锐粒子得到一种动态粒子群算法,该算法通过实时运算敏锐粒子的适应度值从而感知外界环境的变化,当外界环境的变化超过一定的阈值时算法以按一定比例更新速度和粒子的方式进行相应,从而具有动态环境寻优的功能。

本案例研究了基于动态粒子群算法的动态环境寻优算法。

17粒子群算法工具箱(史峰)

粒子群算法工具箱包含了粒子群算法的差不多操作和常用功能,实现步骤包括种群规模选择,粒子长度选取,适应度函数编写,粒子群参数确定等,能够方便实现函数极值查找,系统参数寻优等功能。

本案例以函数极值寻优为例,详细讲解了粒子群算法工具箱的使用。

18基于鱼群算法的函数寻优算法(王辉)

人工鱼群算法是李晓磊等人于2002年提出的一类基于动物行为的群体智能优化算法.该算法是通过模拟鱼类的觅食、聚群、追尾等行为在搜索域中进行寻优,是集群体智能思想的一个具体应用.人工鱼群算法具有以下特点:

具有克服局部极值、取得全局极值的较优秀的能力;算法中仅使用目标问题的函数值,对搜索空间有一定自适应能力;具有对初值与参数选择不敏锐、鲁棒性强、简单易实现、收敛速度快和使用灵活等特点.能够解决经典方法不能求解的带有绝对值且不可导二元函数等的极值问题。

本案例研究了基于鱼群算法的函数寻优算法。

19基于模拟退火算法的TSP算法(王辉)

模拟退火算法(SimulatedAnnealing,简称SA)为求解传统方法难处理的TSP问题提供了一个有效的途径和通用框架,并逐步进展成一种迭代自适应启发式概率性搜索算法。

用以求解不同的非线性问题;对不可微甚至不连续的函数优化,SA能以较大致率求得全局优化解;具有较强的鲁棒性、全局收敛性、隐含并行性及广泛的适应性;同时能处理不同类型的优化设计变量(离散的、连续的和混合型的);不需要任何的辅助信息,对目标函数和约束函数没有任何要求。

利用Metropolis算法并适当地操纵温度下降过程,在优化问题中具有专门强的竞争力,本案例研究了基于模拟退火算法的TSP算法。

20基于遗传模拟退火算法的聚类算法(王辉)

遗传算法在运行早期个体差异较大,当采纳经典的轮盘赌方式选择时,后代产生的个数与父个体适应度大小成正比,因此在早期容易使个别好的个体的后代充斥整个种群,造成早熟。

在遗传算法后期,适应度趋向一致,优秀的个体在产生后代时,优势不明显,从而使整个种群进化停滞不前。

因此对适应度适当地进行拉伸是必要的,如此在温度高时(遗传算法的前期),适应度相近的个体产生的后代概率相近;而当温度不断下降后,拉伸作用加强,使适应度相近的个体适应度差异放大,从而使得优秀的个体优势更明显。

由于模拟退火算法和遗传算法能够互相取长补短,因此有效地克服了传统遗传算法的早熟现象,同时依照聚类问题的具体情形设计遗传编码方式、适应度函数,使该算法更有效、更快速地收敛到全局最优解。

本案例研究了基于遗传模拟退火算法的聚类算法。

21基于模拟退火算法的HEV能量治理策略参数优化(胡斐)

模拟退火算法(SimulatedAnnealing,SA)作为局部搜索算法的扩展,在每一次修改模型的过程中,随机产生一个新的状态模型,然后以一定的概率选择邻域中能量值大的状态。

这种同意新模型的方式使其成为一种全局最优算法,并得到理论证明和实际应用的验证。

能量治理策略是混合动力汽车(HybridElectricVehicle,HEV)的核心技术之一。

本案例将对SA进行讲解并将其应用于HEV能量治理策略的参数优化。

22蚁群算法的优化运算——旅行商问题(TSP)优化(郁磊)

蚁群算法(AntColonyAlgorithm,ACA)是由意大利学者M.Dorigo等人于20世纪90年代初提出的一种新的模拟进化算法,其真实地模拟了自然界蚂蚁群体的觅食行为。

M.Dorigo等人将其应用于解决旅行商问题(TravelingSalesmanProblem,TSP),取得了较好的实验结果。

近年来,许多专家与学者致力于蚁群算法的研究,并将其应用于交通、通信、化工、电力等领域,成功解决了许多组合优化问题,如调度问题(Job-shopSchedulingProblem)、指派问题(QuadraticAssignmentProblem)、旅行商问题(TravelingSalesmanProblem)等。

本章将详细阐述蚁群算法的差不多思想及原理,并以实例的形式介绍其应用于解决中国旅行商问题(ChineseTSP,CTSP)的情形。

23基于蚁群算法的二维路径规划算法(史峰)

二维路径规划算法是机器人智能操纵领域研究中的热点,算法目的是使机器人能够在有障碍物的工作环境中查找一条恰当的从给定起点到终点的运动路径。

蚁群算法具有分布运算,群体智能等优势,在路径规划算法上具有专门大潜力,本案例研究了基于蚁群算法的二维路径规划算法。

24基于蚁群算法的三维路径规划算法(史峰)

三维路径规划算法是机器人智能操纵领域中的热点问题,是指机器人在三维地图中自动规划一条从动身点到目标点满足指标最优的路径。

相关于二维路径规划算法来说,三维路径规划问题更加复杂,需要考虑的因素和约束条件更多,一样方法难以取得好的规划成效。

蚁群算法具有分布运算,群体智能等优势,在路径规划算法上具有专门大潜力,本案例研究了基于蚁群算法的三维路径规划算法。

25有导师学习神经网络的回来拟合——基于近红外光谱的汽油辛烷值推测(郁磊)

神经网络的学习规则又称神经网络的训练算法,用来运算更新神经网络的权值和阈值。

学习规则有两大类别:

有导师学习和无导师学习。

在有导师学习中,需要为学习规则提供一系列正确的网络输入/输出对(即训练样本),当网络输入时,将网络输出与相对应的期望值进行比较,然后应用学习规则调整权值和阈值,使网络的输出接近于期望值。

而在无导师学习中,权值和阈值的调整只与网络输入有关系,没有期望值,这类算法大多用聚类法,将输入模式归类于有限的类别。

本章将详细分析两种应用最广的有导师学习神经网络(BP神经网络及RBF神经网络)的原理及其在回来拟合中的应用。

26有导师学习神经网络的分类——鸢尾花种类识别(郁磊)

有导师学习神经网络以其良好的学习能力广泛应用于各个领域中,其不仅能够解决拟合回来问题,亦能够用于模式识别、分类识别。

本章将连续介绍两种典型的有导师学习神经网络(GRNN和PNN),并以实例说明其在分类识别中的应用。

27无导师学习神经网络的分类——矿井突水水源判别(郁磊)

如第25章及第26章所述,关于有导师学习神经网络,事先需要明白与输入相对应的期望输出,依照期望输出与网络输出间的偏差来调整网络的权值和阈值。

然而,在大多数情形下,由于人们认知能力以及环境的限制,往往无法或者专门难获得期望的输出,在这种情形下,基于有导师学习的神经网络往往是无能为力的。

与有导师学习神经网络不同,无导师学习神经网络在学习过程中无需明白期望的输出。

其与真实人脑中的神经网络类似,能够通过不断地观看、分析与比较,自动揭示样本中的内在规律和本质,从而能够对具有近似特点(属性)的样本进行准确地分类和识别。

本章将详细介绍竞争神经网络与自组织特点映射(SOFM)神经网络的结构及原理,并以实例说明其具体的应用范畴及成效。

28支持向量机的分类——基于乳腺组织电阻抗特性的乳腺癌诊断(郁磊)

支持向量机(SupportVectorMachine,SVM)是一种新的机器学习方法,其基础是Vapnik创建的统计学习理论(StatiscalLearningTheory,STL)。

统计学习理论采纳结构风险最小化(StructuralRiskMinimization,SRM)准则,在最小化样本点误差的同时,最小化结构风险,提高了模型的泛化能力,且没有数据维数的限制。

在进行线性分类时,将分类面取在离两类样本距离较大的地点;进行非线性分类时通过高维空间变换,将非线性分类变成高维空间的线性分类问题。

本章将详细介绍支持向量机的分类原理,并将其应用于基于乳腺组织电阻抗频谱特性的乳腺癌诊断。

29支持向量机的回来拟合——混凝土抗压强度推测(郁磊)

与传统的神经网络相比,SVM具有以下几个优点:

(1)SVM是专门针对小样本问题而提出的,其能够在有限样本的情形下获得最优解;

(2)SVM算法最终将转化为一个二次规划问题,从理论上讲能够得到全局最优解,从而解决了传统神经网无法幸免局部最优的问题;

(3)SVM的拓扑结构由支持向量决定,幸免了传统神经网络需要反复试凑确定网络结构的问题;

(4)SVM利用非线性变换将原始变量映射到高维特点空间,在高维特点空间中构造线性分类函数,这既保证了模型具有良好的泛化能力,又解决了“维数灾难”问题。

同时,SVM不仅能够解决分类、模式识别等问题,还能够解决回来、拟合等问题。

因此,其在各个领域中都得到了专门广泛的利用。

本章将详细介绍SVM回来拟合的差不多思想和原理,并以实例的形式阐述其在混凝土抗压强度推测中的应用。

30极限学习机的回来拟合及分类——对比实验研究(郁磊)

单隐含层前馈神经网络(Single-hiddenLayerFeedforwardNeuralNetwork,SLFN)以其良好的学习能力在许多领域中得到了广泛的应用。

然而,传统的学习算法(如BP算法等)固有的一些缺点,成为制约其进展的要紧瓶颈。

因此,探究一种训练速度快、获得全局最优解,且具有良好的泛化性能的训练算法是提升前馈神经网络性能的要紧目标,也是近年来的研究热点和难点。

本章将介绍一个针对SLFN的新算法——极限学习机(ExtremeLearningMachine,ELM),该算法随机产生输入层与隐含层间的连接权值及隐含层神经元的阈值,且在训练过程中无需调整,只需要设置隐含层神经元的个数,便能够获得唯独的最优解。

与传统的训练方法相比,该方法具有学习速度快、泛化性能好等优点。

同时,在介绍ELM算法的基础上,本章以实例的形式将该算法分别应用于回来拟合(第25章——基于近红外光谱的汽油辛烷值推测)和分类(第26章——鸢尾花种类识别)中。

第1章

1、案例背景

遗传算法(GeneticAlgorithm,GA)是一种进化算法,其差不多原理是仿效生物界中的“物竞天择、适者生存”的演化法则。

遗传算法的做法是把问题参数编码为染色体,再利用迭代的方式进行选择、交叉以及变异等运算来交换种群中染色体的信息,最终生成符合优化目标的染色体。

在遗传算法中,染色体对应的是数据或数组,通常是由一维的串结构数据来表示,串上各个位置对应基因的取值。

基因组成的串确实是染色体,或者叫基因型个体(Individuals) 。

一定数量的个体组成了群体(Population)。

群体中个体的数目称为群体大小(PopulationSize),也叫群体规模。

而各个个体对环境的适应程度叫做适应度(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.3MATLAB程序实现

1.3.1 工具箱结构

1.3.2 遗传算法中常用函数

1. 创建种群函数—crtbp

2. 适应度运算函数—ranking

3. 选择函数—select

4. 交叉算子函数—recombin

5. 变异算子函数—mut

6. 选择函数—reins

7. 有用函数—bs2rv

8. 有用函数—rep

1.3.3 遗传算法工具箱应用举例

1. 简单一元函数优化

2. 多元函数优化

1.4 延伸阅读

1.5 参考文献

3、主程序:

1.简单一元函数优化:

clc

clearall

closeall

%%画出函数图

figure

(1);

holdon;

lb=1;ub=2;%函数自变量范畴【1,2】

ezplot('sin(10*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);%运算初始种群的十进制转换

ObjV=sin(10*pi*X)./X;%运算目标函数值

whilegen

FitnV=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);%重插入子代到父代,得到新种群

X=bs2rv(Chrom,FieldD);

gen=gen+1;%代计数器增加

%猎取每代的最优解及其序号,Y为最优解,I为个体的序号

[Y,I]=min(ObjV);

trace(1,gen)=X(I);%记下每代的最优值

trace(2,gen)=Y;%记下每代的最优值

end

plot(trace(1,:

),trace(2,:

),'bo');%画出每代的最优点

gridon;

plot(X,ObjV,'b*');%画出最后一代的种群

holdoff

%%画进化图

figure

(2);

plot(1:

MAXGEN,trace(2,:

));

gridon

xlabel('遗传代数')

ylabel('解的变化')

title('进化过程')

best

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1