求一个能够用于参数优化的遗传算法matlab程序,最好是四参数寻优并且讲解比较详细

2024-05-13

1. 求一个能够用于参数优化的遗传算法matlab程序,最好是四参数寻优并且讲解比较详细

我这里有三元函数求最优值的遗传算法matlab程序,要不要?请留下联系方式

求一个能够用于参数优化的遗传算法matlab程序,最好是四参数寻优并且讲解比较详细

2. matlab 问题 "未定义与 'double' 类型的输入参数相对应的函数"

把double r(i) 那个double去掉,matlab又不是C,不用定义。另外,你第一个for循环有什么用?不如直接写成 r=[0 0.03 0.1……]
imread函数用于读入各种图像文件,其一般的用法为[X,MAP]=imread(‘filename’,‘fmt’)其中,X,MAP分别为读出的图像数据和颜色表数据,fmt为图像的格式,filename为读取的图像文件(可以加上文件的路径)。例:[X,MAP]=imread(’flowers.tif’,’tif’);比较读取二值图像,灰度图像,索引图像,彩色图像的X和MAP的特点,可以利用size函数用来显示数组的维数,了解数据的特点。
B=size(a) 返回数组a 的维数。
MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

3. 遗传的反义词是什么

释义  词目:遗传
拼音:yí chuán
基本解释  ⒈[heredity]:通过细胞染色体由祖先向后代传递的品质
遗传学
⒉[inheritance]:先人所流传下来的
详细解释  ⒈犹留传。
《史记·扁鹊仓公列传》:“ 庆 有古先道遗传 黄帝 、 扁鹊 之脉书,五色诊病,知人生死。” 宋 林逋 《伤白积殿丞》诗:“遗传得谁脩阙下,孤坟应祇客江边。”《二刻拍案惊奇》卷十八:“这迷而不悟,却是为何?只因制造之药,其方未尝不是仙家的遗传。” 罗家伦 《是爱情还是苦痛》:“他说:‘我听得长辈说,女子总是靠丈夫的。’我好容易收来一点爱情,把他这一句遗传的话,又吓走了一大半。”
⒉指遗留下来的传闻。
北魏郦道元 《水经注·易水》:“余按遗传,旧迹多在 武阳 ,似不饯此也。” 明 李诩 《戒庵老人漫笔·陈同父》:“自是始欲纂集异闻,为《中兴遗传》,然犹恨闻见单寡,欲从先生故老详求其事。”
⒊谓生物体的构造和生理机能由上一代传给下一代。
艾思奇 《辩证唯物主义历史唯物主义》第四章:“在自然界中,吸引和排斥,阴电和阳电,化合和分解,遗传和变异等对立面的互相作用,也同样包含着斗争。”如:任何一种植物的后代与它的亲代总是基本相似的,这种现象叫做遗传。
⒋谓人的气质、品德、能力等后天的东西受上代的影响而在后代身上体现出来。
洪深《电影戏剧的编剧方法》第四章:“即以气质而论,决不是一个人遗传有好的或坏的气质。” 郁达夫 《出奔》:“结婚之后的 董婉珍 ,处处都流露了她的这一种自父祖遗传下来的小节的伶俐。” 陈学昭《工作着是美丽的》上卷二四:“在精明能干这一点上,她的三个孩子都得了母亲的优良遗传。”
遗传:幸福在某种程度上是与生俱来的。人类“幸福感知点”的敏感程度有90%是由基因决定的,同时也取决于父母的正确见识、判断力以及良好的训练和教育。
特点  遗传算法是一类可用于复杂系统优化的具有鲁棒性的搜索算法,与传统的优化算法相比,主要有以下特点:[1]
1、 遗传算法以决策变量的编码作为运算对象。传统的优化算法往往直接决策变量的实际植本身,而遗传算法处理决策变量的某种编码形式,使得我们可以借鉴生物学中的染色体和基因的概念,可以模仿自然界生物的遗传和进化机理,也使得我们能够方便的应用遗传操作算子。
2、 遗传算法直接以适应度作为搜索信息,无需导数等其它辅助信息。
3、 遗传算法使用多个点的搜索信息,具有隐含并行性。
4、 遗传算法使用概率搜索技术,而非确定性规则。
应用概述  由于遗传算法的整体搜索策略和优化搜索方法在计算是不依赖于梯度信息或其它辅助知识,而只需要影响搜索方向的目标函数和相应的适应度函数,所以遗传算法提供了一种求解复杂系统问题的通用框架,它不依赖于问题的具体领域,对问题的种类有很强的鲁棒性,所以广泛应用于许多科学,下面我们将介绍遗传算法的一些主要应用领域:函数优化  函数优化是遗传算法的经典应用领域,也是遗传算法进行性能评价的常用算例,许多人构造出了各种各样复杂形式的测试函数:连续函数和离散函数、凸函数和凹函数、低维函数和高维函数、单峰函数和多峰函数等。对于一些非线性、多模型、多目标的函数优化问题,用其它优化方法较难求解,而遗传算法可以方便的得到较好的结果。组合优化  随着问题规模的增大,组合优化问题的搜索空间也急剧增大,有时在目前的计算上用枚举法很难求出最优解。对这类复杂的问题,人们已经意识到应把主要精力放在寻求满意解上,而遗传算法是寻求
  遗传与生育
这种满意解的最佳工具之一。实践证明,遗传算法对于组合优化中的NP问题非常有效。例如遗传算法已经在求解旅行商问题、 背包问题、装箱问题、图形划分问题等方面得到成功的应用。
此外,GA也在生产调度问题、自动控制、机器人学、图象处理、人工生命、遗传编码和机器学习等方面获得了广泛的运用。
环境外因  就外因来看,从胎儿期到以后儿童成长的过程中,多物理、化学、生物学等有害因素会影响到儿童的大脑,造成精神心理的发育异常,如母亲妊娠期间接触有毒害的物质、服用某些药物、某些病毒感染、精神受刺激,胎内或产后窒息、高热抽搐、中毒(如铅中毒、一氧化碳中毒)、营养不良、脑外伤、脑炎、癫痫、神经发育不完善等许多疾病。影响儿童心理发展的另一重要因素是环境因素,主要是家庭教育和社会环境。家庭文化层次、经济水平、家庭结构、家庭关系、大人对孩子的抚养态度、幼儿园和学校的环境、老师的教育态度、社会文化背景、居住地区的环境等都能影响孩子的心理。
生物因素决定儿童智能发育的最大限度,而环境因素则决定智能发挥的程度,儿童先天情况良好但后天环境不良、教育落后,也可使孩子发育落后;反之,虽先天不足,但后天及时干预、教育得当也可使孩子得到良好的发展。良好的环境有助于孩子心理的健康发展,在民主、和睦、生活丰富多彩的环境中长大的孩子,大多自信、活泼、独立;而在专断、关系紧张、缺乏爱的环境中长大的孩子,容易形成胆小、自卑、孤僻或叛逆的性格。武汉市儿童医院康复科林俊主任分析,自2007年以来造成儿童高比例的心理行为问题原因有多方面,首先,由于独生子女的生活空间狭小,接触到同龄孩子机会较少,加上家长过度保护,身心得到锻炼的机会也较以前减少;另外,家长缺乏相关的儿童心理卫生知识,一方面对孩子的心理问题视而不见,一方面又不知如何正确引导孩子;同时儿童教育工作者也应注意对孩子充满爱心,一视同仁,多鼓励、表扬进步而不是挫伤孩子的自尊心。
现状  进入90年代,遗传算法迎来了兴盛发展时期,无论是理论研究还是应用研究都成了十分热门的课题。尤其是遗传算法的应用研究显得格外活跃,不但它的应用领域扩大,而且利用遗传算法进行优化和规则学习的能力也显著提高,同时产业应用方面的研究也在摸索之中。此外一些新的理论和方法在应用研究中亦得到了迅速的发展,这些无疑均给遗传算法增添了新的活力。遗传算法的应用研究已从初期的组合优化求解扩展到了许多更新、更工程化的应用方面。
  儿童孤独症可能来自遗传
随着应用领域的扩展,遗传算法的研究出现了几个引人注目的新动向:一是基于遗传算法的机器学习,这一新的研究课题把遗传算法从历来离散的搜索空间的优化搜索算法扩展到具有独特的规则生成功能的崭新的机器学习算法。这一新的学习机制对于解决人工智能中知识获取和知识优化精炼的瓶颈难题带来了希望。二是遗传算法正日益和神经网络、模糊推理以及混沌理论等其它智能计算方法相互渗透和结合,这对开拓21世纪中新的智能计算技术将具有重要的意义。三是并行处理的遗传算法的研究十分活跃。这一研究不仅对遗传算法本身的发展,而且对于新一代智能计算机体系结构的研究都是十分重要的。四是遗传算法和另一个称为人工生命的崭新研究领域正不断渗透。所谓人工生命即是用计算机模拟自然界丰富多彩的生命现象,其中生物的自适应、进化和免疫等现象是人工生命的重要研究对象,而遗传算法在这方面将会发挥一定的作用,五是遗传算法和进化规划(Evolution Programming,EP)以及进化策略(Evolution Strategy,ES)等进化计算理论日益结合。EP和ES几乎是和遗传算法同时独立发展起来的,同遗传算法一样,它们也是模拟自然界生物进化机制的只能计算方法,即同遗传算法具有相同之处,也有各自的特点。目前,这三者之间的比较研究和彼此结合的探讨正形成热点。
  遗传
1991年D.Whitey在他的论文中提出了基于领域交叉的交叉算子(Adjacency based crossover),这个算子是特别针对用序号表示基因的个体的交叉,并将其应用到了TSP问题中,通过实验对其进行了验证。
D.H.Ackley等提出了随即迭代遗传爬山法(Stochastic Iterated Genetic Hill-climbing,SIGH)采用了一种复杂的概率选举机制,此机制中由m个“投票者”来共同决定新个体的值(m表示群体的大小)。实验结果表明,SIGH与单点交叉、均匀交叉的神经遗传算法相比,所测试的六个函数中有四个表现出更好的性能,而且总体来讲,SIGH比现存的许多算法在求解速度方面更有竞争力。
H.Bersini和G.Seront将遗传算法与单一方法(simplex method)结合起来,形成了一种叫单一操作的多亲交叉算子(simplex crossover),该算子在根据两个母体以及一个额外的个体产生新个体,事实上他的交叉结果与对三个个体用选举交叉产生的结果一致。同时,文献还将三者交叉算子与点交叉、均匀交叉做了比较,结果表明,三者交叉算子比其余两个有更好的性能。
  遗传
国内也有不少的专家和学者对遗传算法的交叉算子进行改进。2002年,戴晓明等应用多种群遗传并行进化的思想,对不同种群基于不同的遗传策略,如变异概率,不同的变异算子等来搜索变量空间,并利用种群间迁移算子来进行遗传信息交流,以解决经典遗传算法的收敛到局部最优值问题
2004年,赵宏立等针对简单遗传算法在较大规模组合优化问题上搜索效率不高的现象,提出了一种用基因块编码的并行遗传算法(Building-block Coded Parallel GA,BCPGA)。该方法以粗粒度并行遗传算法为基本框架,在染色体群体中识别出可能的基因块,然后用基因块作为新的基因单位对染色体重新编码,产生长度较短的染色体,在用重新编码的染色体群体作为下一轮以相同方式演化的初始群体。
2005年,江雷等针对并行遗传算法求解TSP问题,探讨了使用弹性策略来维持群体的多样性,使得算法跨过局部收敛的障碍,向全局最优解方向进化。一般算法  
  遗传
遗传算法是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型。它的思想源于生物遗传学和适者生存的自然规律,是具有“生存+检测”的迭代过程的搜索算法。遗传算法以一种群体中的所有个体为对象,并利用随机化技术指导对一个被编码的参数空间进行高效搜索。其中,选择、交叉和变异构成了遗传算法的遗传操作;参数编码、初始群体的设定、适应度函数的设计、遗传操作设计、控制参数设定五个要素组成了遗传算法的核心内容。作为一种新的全局优化搜索算法,遗传算法以其简单通用、鲁棒性强、适于并行处理以及高效、实用等显著特点,在各个领域得到了广泛应用,取得了良好效果,并逐渐成为重要的智能算法之一。遗传算法是基于生物学的,理解或编程都不太难。下面是遗传算法的一般算法:[2]初始种群  初始种群是从解中随机选择出来的,将这些解比喻为染色体或基因,该种群被称为第一代,这和符号人工
  遗传
智能系统的情况不一样,在那里问题的初始状态已经给定了。评估适应度  对每一个解(染色体)指定一个适应度的值,根据问题求解的实际接近程度来指定(以便逼近求解问题的答案)。不要把这些“解”与问题的“答案”混为一谈,可以把它理解成为要得到答案,系统可能需要利用的那些特性。繁殖  带有较高适应度值的那些染色体更可能产生后代(后代产生后也将发生突变)。后代是父母的产物,他们由来自父母的基因结合而成,这个过程被称为“杂交”。下一代  如果新的一代包含一个解,能产生一个充分接近或等于期望答案的输出,那么问题就已经解决了。如果情况并非如此,新的一代将重复他们父母所进行的繁衍过程,一代一代演化下去,直到达到期望的解为止。并行计算  非常容易将遗传算法用到并行计算和群集环境中。一种方法是直接把每个节点当成一个并行的种群看待。然后有机体根据不同的繁殖方法从一个节点迁移到另一个节点。另一种方法是“农场主/劳工”体系结构,指定一个节点为“农场主”节点,负责选择有机体和分派适应度的值,另外的节点作为“劳工”节点,负责重新组合、变异和适应度函数的评估。
基本框架GA的流程图  GA的流程图如下图所示编码  遗传算法不能直接处理问题空间的参数,必须把它们转换成遗传空间的由基因按一定结构组成的染色体或个体。这一转换操作就叫做编码,也可以称作(问题的)表示(representation)。
评估编码策略常采用以下3个规范:
a)完备性(completeness):问题空间中的所有点(候选解)都能作为GA空间中的点(染色体)表现。
b)健全性(soundness): GA空间中的染色体能对应所有问题空间中的候选解。
c)非冗余性(nonredundancy):染色体和候选解一一对应。
目前的几种常用的编码技术有二进制编码,浮点数编码,字符编码,变成编码等。
而二进值编码是目前遗传算法中最常用的编码方法。即是由二进值字符集{0,1}产生通常的0,1字符串来表示问题空间的候选解。它具有以下特点:
a)简单易行;
b)符合最小字符集编码原则;
c)便于用模式定理进行分析,因为模式定理就是以基础的。适应度函数  进化论中的适应度,是表示某一个体对环境的适应能力,也表示该个体繁殖后代的能力。遗传算法的适应度函数也叫评价函数,是用来判断群体中的个体的优劣程度的指标,它是根据所求问题的目标函数来进行评估的。
遗传算法在搜索进化过程中一般不需要其他外部信息,仅用评估函数来评估个体或解的优劣,并作为以后遗传操作的依据。由于遗传算法中,适应度函数要比较排序并在此基础上计算选择概率,所以适应度函数的值要取正值.由此可见,在不少场合,将目标函数映射成求最大值形式且函数值非负的适应度函数是必要的。
适应度函数的设计主要满足以下条件:
a)单值、连续、非负、最大化;
b) 合理、一致性;
c)计算量小;
d)通用性强。
在具体应用中,适应度函数的设计要结合求解问题本身的要求而定。适应度函数设计直接影响到遗传算法的性能。初始群体的选取  遗传算法中初始群体中的个体是随机产生的。一般来讲,初始群体的设定可采取如下的策略:
a)根据问题固有知识,设法把握最优解所占空间在整个问题空间中的分布范围,然后,在此分布范围内设定初始群体。
b)先随机生成一定数目的个体,然后从中挑出最好的个体加到初始群体中。这种过程不断迭代,直到初始群体中个体数达到了预先确定的规模。
遗传操作  遗传操作是模拟生物基因遗传的做法。在遗传算法中,通过编码组成初始群体后,遗传操作的任务就是对群体的个体按照它们对环境适应度(适应度评估)施加一定的操作,从而实现优胜劣汰的进化过程。从优化搜索的角度而言,遗传操作可使问题的解,一代又一代地优化,并逼进最优解。
遗传操作包括以下三个基本遗传算子(genetic operator):选择(selection);交叉(crossover);变异(mutation)。这三个遗传算子有如下特点:
个体遗传算子的操作都是在随机扰动情况下进行的。因此,群体中个体向最优解迁移的规则是随机的。需要强调的是,这种随机化操作和传统的随机搜索方法是有区别的。遗传操作进行的高效有向的搜索而不是如一般随机搜索方法所进行的无向搜索。
遗传操作的效果和上述三个遗传算子所取的操作概率,编码方法,群体大小,初始群体以及适应度函数的设定密切相关。[3]选择  从群体中选择优胜的个体,淘汰劣质个体的操作叫选择。选择算子有时又称为再生算子(reproduction operator)。选择的目的是把优化的个体(或解)直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。选择操作是建立在群体中个体的适应度评估基础上的,目前常用的选择算子有以下几种:适应度比例方法、随机遍历抽样法、局部选择法、局部选择法。
其中轮盘赌选择法 (roulette wheel selection)是最简单也是最常用的选择方法。在该方法中,各个个体的选择概率和其适应度值成比例。设群体大小为n,其中个体i的适应度为,则i 被选择的概率,为
显然,概率反映了个体i的适应度在整个群体的个体适应度总和中所占的比例.个体适应度越大。其被选择的概率就越高、反之亦然。计算出群体中各个个体的选择概率后,为了选择交配个体,需要进行多轮选择。每一轮产生一个[0,1]之间均匀随机数,将该随机数作为选择指针来确定被选个体。个体被选后,可随机地组成交配对,以供后面的交叉操作。交叉  在自然界生物进化过程中起核心作用的是生物遗传基因的重组(加上变异)。同样,遗传算法中起核心作用的是遗传操作的交叉算子。所谓交叉是指把两个父代个体的部分结构加以替换重组而生成新个体的操作。通过交叉,遗传算法的搜索能力得以飞跃提高。
交叉算子根据交叉率将种群中的两个个体随机地交换某些基因,能够产生新的基因组合,期望将有益基因组合在一起。根据编码表示方法的不同,可以有以下的算法:
a)实值重组(real valued recombination)
1)离散重组(discrete recombination);
2)中间重组(intermediate recombination);
3)线性重组(linear recombination);
4)扩展线性重组(extended linear recombination)。
b)二进制交叉(binary valued crossover)
1)单点交叉(single-point crossover);
2)多点交叉(multiple-point crossover);
3)均匀交叉(uniform crossover);
4)洗牌交叉(shuffle crossover);
5)缩小代理交叉(crossover with reduced surrogate)。
最常用的交叉算子为单点交叉(one-point crossover)。具体操作是:在个体串中随机设定一个交叉点,实行交叉时,该点前或后的两个个体的部分结构进行互换,并生成两个新个体。下面给出了单点交叉的一个例子:
个体A:1 0 0 1 ↑1 1 1 → 1 0 0 1 0 0 0 新个体
个体B:0 0 1 1 ↑0 0 0 → 0 0 1 1 1 1 1 新个体变异  变异算子的基本内容是对群体中的个体串的某些基因座上的基因值作变动。依据个体编码表示方法的不同,可以有以下的算法:
a)实值变异;
b)二进制变异。
一般来说,变异算子操作的基本步骤如下:
a)对群中所有个体以事先设定的编译概率判断是否进行变异;
b)对进行变异的个体随机选择变异位进行变异。
遗传算法导引入变异的目的有两个:一是使遗传算法具有局部的随机搜索能力。当遗传算法通过交叉算子已接近最优解邻域时,利用变异算子的这种局部随机搜索能力可以加速向最优解收敛。显然,此种情况下的变异概率应取较小值,否则接近最优解的积木块会因变异而遭到破坏。二是使遗传算法可维持群体多样性,以防止出现未成熟收敛现象。此时收敛概率应取较大值。
遗传算法中,交叉算子因其全局搜索能力而作为主要算子,变异算子因其局部搜索能力而作为辅助算子。遗传算法通过交叉和变异这对相互配合又相互竞争的操作而使其具备兼顾全局和局部的均衡搜索能力。所谓相互配合.是指当群体在进化中陷于搜索空间中某个超平面而仅靠交叉不能摆脱时,通过变异操作可有助于这种摆脱。所谓相互竞争,是指当通过交叉已形成所期望的积木块时,变异操作有可能破坏这些积木块。如何有效地配合使用交叉和变异操作,是目前遗传算法的一个重要研究内容。
基本变异算子是指对群体中的个体码串随机挑选一个或多个基因座并对这些基因座的基因值做变动(以变异概率P.做变动),(0,1)二值码串中的基本变异操作如下:
基因位下方标有*号的基因发生变异。
变异率的选取一般受种群大小、染色体长度等因素的影响,通常选取很小的值,一般取0.001-0.1。终止条件  当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,或者迭代次数达到预设的代数时,算法终止。预设的代数一般设置为100-500代。
特点分析  遗传算法作为一种快捷、简便、容错性强的算法,在各类结构对象的优化过程中显示出明显的优势。与传统的搜索方法相比,遗传算法具有如下特点:
a)搜索过程不直接作用在变量上,而是在参数集进行了编码的个体。此编码操作,使得遗传算法可直接对结构对象(集合、序列、矩阵、树、图、链和表)进行操作。
b)搜索过程是从一组解迭代到另一组解,采用同时处理群体中多个个体的方法,降低了陷入局部最优解的可能性,并易于并行化。
c)采用概率的变迁规则来指导搜索方向,而不采用确定性搜索规则。
d)对搜索空间没有任何特殊要求(如连通性、凸性等),只利用适应性信息,不需要导数等其它辅助信息,适应范围更广。
术语说明  由于遗传算法是由进化论和遗传学机理而产生的搜索算法,所以在这个算法中会用到很多生物遗传学知识,下面是我们将会用来的一些术语说明:
染色体(Chronmosome)
染色体又可以叫做基因型个体(individuals),一定数量的个体组成了群体(population),群体中个体的数量叫做群体大小。
基因(Gene)
基因是串中的元素,基因用于表示个体的特征。例如有一个串S=1011,则其中的1,0,1,1这4个元素分别称为基因。它们的值称为等位基因(Allele)。
基因地点(Locus)
基因地点在算法中表示一个基因在串中的位置称为基因位置(Gene Position),有时也简称基因位。基因位置由串的左向右计算,例如在串 S=1101 中,0的基因位置是3。
基因特征值(Gene Feature)
在用串表示整数时,基因的特征值与二进制数的权一致;例如在串 S=1011 中,基因位置3中的1,它的基因特征值为2;基因位置1中的1,它的基因特征值为8。
适应度(Fitness)
各个个体对环境的适应程度叫做适应度(fitness)。为了体现染色体的适应能力,引入了对问题中的每一个染色体都能进行度量的函数,叫适应度函数. 这个函数是计算个体在群体中被使用的概率。
乙肝会遗传吗  经常听到有人说,某某人的乙肝是其父母遗传而得的,既没有办法治疗,也没有办法预防。这种说法实际上是部分人的一种误解,是没有任何科学根据的。要知道所谓遗传性疾病是由于父代或母代的基因缺陷或异常,由精子或卵子细胞将缺陷或异常基因传给子代而产生的疾病。而乙肝感染者没有任何基因的缺陷或异常,感染他人也不存在异常基因的参与,因此乙肝也就不属于遗传性疾病。
我们认为,这种说法实际上是对乙肝母婴传播的一种错误理解。乙肝的母婴传播是我国乙肝感染很主要的一种方式。前几年的统计资料显示,我国育龄妇女(25 ~35岁)血中HBsAg的携带率为7%左右,其中HBeAg阳性者占25%。HBeAg阳性母亲,如果不采取任何保护性措施的话,其分娩的婴儿成为HBsAg阳性的可能性在85%以上,而且这部分感染者可长期携带病毒,并且易发展为慢性乙型肝炎。许多家庭子女中出现数例乙肝,大多是由母婴传播所致。这个问题已经引起我国有关部门的极大重视,并采取了极为有效的预防性措施予以解决。随着乙肝疫苗和高效价抗乙肝免疫球蛋白的广泛应用,目前我国乙肝阳性母亲所生婴儿中HBsAg阳性率已下降至1%~2%。可见乙肝绝不像某些人所说的那样是无法预防的。我们相信,随着科技水平的发展和新药的研发,除预防外,乙肝的治疗也会有所突破的

遗传的反义词是什么

4. 加了模糊控制器,仿真速度很慢,怎么解决?

人工智能在电气传动中运用的进展(1)
摘要:本文论述了人工智能在电气传动领域的发展概况。其中主要包括模糊控制、神经网络和遗传算法的应用特点及发展趋势等 


关键词:神经网络控制 模糊神经元控制 自适应控制 


一、引 言
 人工智能控制技术一直没能取代古典控制方法。但随着现代控制理论的发展,控制器设计的常规技术正逐渐被广泛使用的人工智能软件技术(人工神经网络、模糊控制、模糊神经网络、遗传算法等)所替代。这些方法的共同特点是:都需要不同数量和类型的必须的描述系统和特性的“a priori”知识。由于这些方法具有很多优势,因此工业界强烈希望开发、生产使用这些方法的系统,但又希望该系统实现简单、性能优异。
   由于控制简单,直流传动在过去得到了广泛的使用。但由于它们众所周知的限制以及DSP技术的进步,直流传动正逐渐被高性能的交流传动所取代。但最近,许多厂商也推出了一些改进的直流驱动产品,但都没有使用人工智能技术。具信使用人工智能的直流传动技术能得到进一步的提高。
  高性能的交流传动瞬态转矩的控制性能类似于他励直流电机的控制性能。现有两种高性能交流传动的控制方法:矢量控制(VC)和直接转矩控制(DTC)。矢量控制是德国的研究人员在二十多年前提出的,现在已经比较成熟,并已广泛应用,很多生产厂商都推出了他们的矢量控制交流传动产品,最近又大量推出了无速度传感器的矢量控制产品。尽管在高性能驱动产品中使用AI技术会极大地提高产品的性能,可是到目前为止只有两个厂家在他们的产品中使用了人工智能(AI)控制器;直接转矩控制是大约在十五年前由德国和日本的研究人员提出的,在过去十年中得到大量的研究,现在ABB公司已向市场推出了直接转矩控制的传动产品,使得人们对直接转矩控制的研究兴趣增加,将来在直接转矩控制中将会用到人工智能技术,并将完全地不需要常规的电机数学模型了。
 英国CT公司(Control Technique plc)推出了世界上第一台统一变频器(Unidrive),其他一些公司也推出了相应的产品,现在这些产品都没有使用人工智能技术,“统一”的概念完全依靠软件实现,这就为软计算技术的实现提供了条件。具信在将来统一变频器将使用直接转矩控制以及各种形式的矢量控制,单一使用直接转矩控制技术的产品将遭到淘汰。本文也将讨论人工智能在统一变频器中运用的一些方面,同时也包括AI控制器在VC和DTC中的运用。
AI控制器能否工业运用的关键一点是:实现这些控制器的硬件和软件。大多数DSP控制的驱动器都有足够的计算能力实现人工智能的算法,并且都能得到大多数人工智能控制器软计算所需要的信号。通过运用适当的控制策略,就能大大地减少计算和硬件的负担,从而把注意力集中于提高驱动器的性能、鲁棒性和可靠性上面。
  在将来,智能技术在电气传动技术中占相当重要的地位,特别是自适应模糊神经元控制器在性能传动产品中将得到广泛应用。但是,还有很多研究工作要做,现在还只有少数实际应用的例子(学术研究组实现少,工业运用的就更少了),大多数研究只给出了理论或仿真结果,因此,常规控制器在将来仍要使用相当长一段时间。


二、人工智能控制器的优势


  文献中,不同的人工智能控制通常用完全不同的方法去讨论。但AI控制器例如:神经、模糊、模糊神经,以及遗传算法都可看成一类非线性函数近似器。这样的分类就能得到较好的总体理解,也有利于控制策略的统一开发。这些AI函数近似器比常规的函数估计器具有更多的优势,这些优势如下:
(1)它们的设计不需要控制对象的模型(在许多场合,很难得到实际控制对象的精确动态方程,实际控制对象的模型在控制器设计时往往有很多不确实性因素,例如:参数变化,非线性时,往往不知道)
(2)通过适当调整(根据响应时间、下降时间、鲁棒性能等)它们能提高性能。例如:模糊逻辑控制器的上升时间比最优PID控制器快1.5倍,下降时间快3.5倍,过冲更小。
(3)它们比古典控制器的调节容易。
(4)在没有必须专家知识时,通过响应数据也能设计它们。
(5)运用语言和响应信息可能设计它们。
(6)它们有相当好的一致性(当使用一些新的未知输入数据就能得到好的估计),与驱动器的特性无关。现在没有使用人工智能的控制算法对特定对象控制效果十分好,但对其他控制对象效果就不会一致性地好,因此对必须具体对象具体设计。
(7)它们对新数据或新信息具有很好的适应性。
(8)它们能解决常规方法不能解决的问题。
(9)它们具有很好的抗噪声干扰能力。
(10)它们的实现十分便宜,特别是使用最小配置时。
(11)它们很容易扩展和修改。
  人工智能控制器可分为监督、非监督或增强学习型三种。常规的监督学习型神经网络控制器的拓朴结构和学习算法已经定型,这就给这种结构的控制器增加了限制,使得计算时间过长,常规非人工智能学习算法的应用效果不好。采用自适应神经网络和试探法就能克服这些困难,加快学习过程的收敛速度。常规模糊控制器的规则初值和模糊规则表是既定“a-priori”型,这就使得调整困难,当系统得不到“a-priori”(既定)信息时,整个系统就不能正常工作。而应用自适应AI控制器,例如使用自适应模糊神经控制器就能克服这些困难,并且用DSP比较容易实现这些控制器。
  常规模糊逻辑控制器的设计经常使用尝试法。需要“a-priori”信息,如运用自适应智能控制器就不需要“a-priori”(a-priroi规则库和隶属函数)信息。值得注意的是,与常规非自适应智能控制器相反,它根据输入信号更新它的“参数”,换句话说,它对变化的输入信号具有适应性。自适应控制器分两类:间接和直接控制器,间接自适应人工智能控制器有一个实时辩识模型,用于控制器的设计,间接控制器在每个采样周期需要采样控制对象的输入和输出信号,辩识器和控制器有很多形式,而直接AI控制器用特性表来实现对控制对象的控制,这个特性表由两个连续采样周期间的误差的变化量构成,用来控制电流响应。
  如用模糊逻辑控制器,最简单的应用可能是标量因子的运用。这种方法用现在的非自适应驱动器很容易实现,因而对工业界具有很大的吸引力。用改变隶属函数形状的方法可实现相似的效果。这种运用也可能通过改变规则来实现,如用直接AI控制器来实现,就是自适应控制器。它在每个采样瞬间先使用上一个采样周期采用的规则,如果得不到满意的特性,就用新的规则替代,从而得到满意的特性。
总而言之,当采用自适应模糊神经控制器,规则库和隶属函数在模糊化和反模糊化过程中能够自动地实时确定。有很多方法来实现这个过程,但主要的目标是使用系统技术实现稳定的解,并且找到最简单的拓朴结构配置,自学习迅速,收敛快速。 三、人工智能在电气传动控制中的运用 
这一部分主要讨论人工智能在交直流传动中运用的进展。值得指出的是这是一个广阔的领域,在过去二年中,研究活动极快的增长,本文只是概括一下人工智能在电气传动中的运用这一领域的进展,不可能覆盖研究的每一个可能领域。AI控制器在直流传动中运用的大多数研究集中于模糊逻辑应用,在人工神经网络和其它智能控制的研究还很少。下面主要讨论模糊、神经元和模糊神经元和模糊神经元控制器在交直流传动中的应用。
(一)人工智能在直流传动中的运用
1.模糊逻辑控制应用
   主要有两类模糊控制器,Mamdani和Sugeno型。到目前为止只有Mamdani模糊控制器用于调速控制系统中。限于篇幅本文不详细讨论其中的原因。值得注意的是这两种控制器都有规则库,它是一个if-then模糊规则集。但Sugeno控制器的典型规则是“如果X是A,并且y是B,那么Z=f(x,y)”。这里A和B是模糊集;Z=f(x,y)是x,y的函数,通常是输入变量x,y的多项式。当f是常数,就是零阶Sugeno模型,因此Sugeno是Mamdani控制器的特例。
Mamdani控制器由下面四个主要部分组成:
   (1)模糊化实现输入变量的测量、量化和模糊化。隶属函数有多种形式。
   (2)知识库由数据库和语言控制规则库组成。开发规则库的主要方法是:把专家的知识和经历用于应用和控制目标;建模操作器的控制行动;建模过程;使用自适应模糊控制器和人工神经网络推理机制。
   (3)推理机是模糊控制器的核心,能模仿人的决策和推理模糊控制行为。
   (4)反模糊化实现量化和反模糊化。有很多反模糊化技术,纾畲蠡茨:屑淦骄际醯取?BR>下面的表1由64个语言规则组成,是用于电气传动控制系统的一种可能规则表这个规则表相当大,实际应用中往往进行简化。在各种出版物中,介绍了许多被模糊化的控制器,但这应与“充分模糊”控制器完全区分开来,“充分模糊”控制器才是完全意义上的模糊控制器,被模糊化的控制器易于实现,往往通过改造现有古典控制器得以实现,如被模糊化的PI控制器(FPIC)使用模糊逻辑改变控制器的比例、积分参数,从而使系统的性能得到提高(17),控制器参数的微小变化可能导致特性的极大提高,被模糊化的控制器参数调整方法如下:P(ti)=P(ti-1)+kP*CP,I(ti)=I(ti-1)*CI。但如应用“充分”模糊逻辑控制器,系统响应远远优于FPIC和最优古典PI控制器,用于最优化常规控制器的计算时间比模糊化控制器所需的时间多得多。因此,使用最小配置的FPIC控制器是可能的选择之一,事实上,这也是用现有驱动装置实现的最简单方法。
   在许多电气传动文献中,介绍了用模糊逻辑控制器替代古典PI控制器(主要是速度调节器)改进系统响应的方法。可是,文献(18)详细探讨了模糊逻辑控制器用于三环直流电机控制系统中所有环节(速度、电流和励磁)的设计和调整的方法。作者也介绍了PI和PD控制器,文献(9)介绍了最小配置模糊控制用于直流传动中的可能性以及组合模糊控制器用于直流传动中得到满意响应的可能性。下节讨论模糊神经控制的直流传动装置时,我们将讨论这种速度和电枢电流调节器组合成单一控制器的情况。
2. ANNS的应用
过去二十年,人工神经网络(ANNS)在模式识别和信号处理中得到广泛运用。由于ANNS有一致性的非线性函数估计器,因此它也可有效的运用于电气了传动控制领域,它们的优势是不需要被控系统的数学模型,一致性很好,对噪音不敏感。另外,由于ANNS的并行结构,它很适合多传感器输入运用,比如在条件监控、诊断系统中能增强决策的可靠性,当然,最近电气传动朝着最小化传感器数量方向发展,但有时,多传感器可以减少系统对特殊传感器缺陷的敏感性,不需要过高的精度,也不需要复杂的信号处理。
  误差反向传播技术是多层前聩ANN最常用的学习技术。如果网络有足够多的隐藏层和隐藏结点以及适宜的激励函数,多层ANN只能实现需要的映射,没有直接的技术选择最优隐藏层、结点数和激励函数,通常用尝试法解决这个问题,反向传播训练算法是基本的最快下降法,输出结点的误差反馈回网络,用于权重调整,搜索最优。输出结点的权重调整迭代不同于隐藏结点的权重调整迭代。通过使用反向传播技术,能得到需要的非线性函数近似值,该算法包括有学习速率参数,对网络的特性有很大影响。
  反向传播算法是多层前聩ANN最广泛使用的学习技术之一。但有时网络的收敛速度很慢,改进算法的开发是一个重要研究领域。英国Aberdeen大学在这方面取得过令人鼓舞的成绩,他们把常规的反向传播算法和其它AI技术结合起来,使得网络快速收敛,鲁棒性更好。他们还研究过基于AI技术的最优拓扑结构网络,但没有现成理论用于最优配置,Kolgomorov理论和其他理论也不适用,在神经网络的训练剧中使用遗传算法可能会提高收敛速度,遗传算法是一种基于自然进化和遗传机理的统计搜索方法,它模仿自然界个体适者生存不适者淘汰的原理解决问题,每一代由染色体代表的(一套特征串类似于DNA中的染色体)许多个体组成,每个个体代表搜索空间的一个点和一个可能的解。值得注意的是在神经模糊实现中,有时必须使用不同形式的反向传播技术,而不是已知的标准形式。反向传播技术是在线(Supervised)学习技术,需要充分的输入--输出数据对,虽然这种限制也可以用另外的方法加以克服,但该方法是离线的。
  日本和德国的研究人员试图把ANNS用于控制电力变换器,但到目前为止没有获得满意的结果,这也是一个很有趣的领域。主要的有待解决的障碍是学习阶段时间花费过长,总而言之,问题的关键是要给变换器的控制器找到一个满意的非线性函数近似器、得到期望的非线性输入--输出映射。常规技术就能实现简单的映射,而神经网络能实现更复杂的映射,并且由于它的并行结构这种映射相当快。
  只有很少的论文讨论神经网络在直流电机控制中的应用。文献(21)介绍了两个多层前馈人工神经网络在直流电机速度控制环中的应用。这是一种典型配置。辩识ANN用于训练第二个ANN(神经控制器,即过程控制器),因此过程输出跟随给定信号。学习过程用的是反向传播算法。该方法分为二步:第一步ANN被训练用来代表控制对象的响应。这需要用到表示控制对象输出和控制输入关系的微分方程。第二步把ANN用于控制对象模型的辩识方案中。在这步中,把ANN与控制对象并行连接,每次迭代时,给ANN提供给定信号作为ANN输入信号。辩识意味着调整权重,使ANN输出信号(即网络输出)和控制对象输出信号(即正输出)的误差最小。在辩识阶段,全局误差(即方差之和)以固定时间间隔被计算并与希望的最小值比较。第二个ANN是神经控制器被用于训练以给出需要的控制对象响应。为了训练这个网络,在每次采样输出时,必须知道误差(Ec)但仅仅只知道控制对象输出和希望输出(由给定输入决定)的最后误差,辩识方案中的第一个ANN可将最后误差Ec反向传播,用来训练控制器ANN。在误差最小化过程中,全局误差能被最小化到希望的值。经过训练辩识ANNS和控制ANNS,就可以在实时系统中运用被“调整”的神经自适应控制方案。文献(21)介绍了采用ANN自适应速度控制方案的直流传动系统的良好特性以及抗干扰性能。这也证明辩识ANN学习到了直流电机、变换器和负载的、未知时不变非线性操作特性。但值得指出的是,用于神经元控制器的训练时间有时相当长,但这个困难可以用上面提到的高级技术、避免使用常规的反向传播算法的方法中以克服。 
文献(22)和(23)介绍了直流传动系统的ANN控制,给出了理论和实验结果。文献(9)讨论了直流传动的模糊神经速度控制器。这是文献中记载的第一次用单神经控制器成功替代双环直流传动系统的常规速度和电流PI调节器的例子。相对地上面讨论过的直流传动系统,该系统运用了更多的智能技术,系统得到了进一步的简化。有趣的是相对于古典多环PI调节器的实现,这里的电枢电流控制主要起限制电枢电流的作用,并且是通过单个速度、电流组合的模糊神经控制器“自动”加以实现。
(二)人工智能在交流传动中的应用
1.模糊逻辑的应用
  在大多数讨论模糊逻辑在交流传动中运用的文章中,都介绍的是用模糊控制器取代常规的速度调节器,可英国Aberdeen大学开发的全数字高性能传动系统中有多个模糊控制器(4),这些模糊控制器不仅用来取代常规的PI或PID控制器,同时也用于其他任务。该大学还把模糊神经控制器用于各种全数字高动态性能传动系统开发中。也有一些优秀的文章论述运用模糊逻辑控制感应电机的磁通和力矩。讨论这种技术的第一篇文章发表于1992年(24)。该文中讨论了两种控制策略,如用第一种策略,规则表有36条规则,模糊控制器的输入是磁通和转矩误差,根据转矩和磁通误差,改变磁通矢量的辐值和旋转方向,反模糊化技术用到的是中心梯度法,第一种策略没有考虑最优电压矢量选择的梯度。而第二种策略考虑了,这种方案被成功地实现了。
Galvan的两篇文章(25)、(26)讨论了用模糊化速度控制器实现感应电机的矢量控制的方法。并给出了仿真结果。(也见3.1.1节讨论的模糊化控制器)。矢量控制器也是一种间接控制类型,并且很好的特性。文献(27)提出了一种模糊逻辑速度控制器。它的输入标定因子是变化的。实验结果也验证了所提方案的有效性。文献(28)给出了矢量控制器感应电机驱动系统的仿真结果。该系统中模糊速度控制器与常规的PI速度控制器和CRPWM塑变器一起使用,它往往用来补偿可能的惯性和负载转矩的扰动。常规PI控制器用来稳定系统的稳态速度响应。矢量控制器使用转子磁通观测器观测(UI观测器,iw观测器(1)(4)),模糊逻辑用于转子电阻的估计。
   到目前为止,只有两种运用人工智能技术的工业产品,其一是下节介绍的安川矢量变频器,另一个是日立矢量变频器,日立公司最近开发了J300系列IGBT矢量变频器,功率范围是5.5KW--55KW。它的主要特点是使用无传感器矢量控制算法和强大的自调整功能。无传感器磁通矢量控制方案采样两相定子电流,在初始自整定阶段,电机和负载的惯性以及其他参数例如定子电感,定子和转子电阻、励磁电感等参数被计算。日立公司宣称这是世界上第一台使用模糊控制的变频器。它考虑了电机和系统的特性,转矩计算软件在整个频率范围保证了转矩的精确控制。变频器的主要性能指标如下:1Hz时150%或更高的启动转矩;在3∶1的速度范围(20到60HZ/16到50HZ)电机不用降低功率使用;速度调节比率小于。
J300系列变频器由于使用了高速微处理器和内置DSP,因此具有很的响应速度,转矩响应速度大约可达到0.1秒。它使用模糊逻辑控制电机电流和加减速斜率。它能根据电机负载和制动需要计算加减速的最优时间,因此不需要尝试法进行调整。模糊逻辑加减速度函数根据模糊规则设定加减速度比例因子和速度,而模糊规则则用当前值与过载限幅(或其它限幅)值的差值以及电机电流和电压的梯度作为输入变量。梯度和差值构成四个隶属函数,两个隶属函数是三角函数,另二个是半梯形。当用常规的简单电流限幅控制,变频器的斜率是步进型的,经常引起变频器跳闸。特别是在减速时。当用模糊逻辑控制时,斜率十分平滑,变频器假跳闸的现象也消除了。变频器在风机和泵类的运用最能体现模糊逻辑控制的优势。在这些应用中,不需要恒定的加减速时间或精确的位置控制。在这些应用中,不需要恒定的加减速时间或精确的位置控制。需要的是与负载条件有关的加减速度的最优化。模糊控制能实现加减速度的最优控制。
AI控制器也能提高直接转矩控制系统的性能,这也是值得深入研究的一个宽广领域。英国Aberdeen大学的研究人员开发了基于人工智能的开关矢量选择器以及速度、转矩、磁通观测器等,初步结果令人鼓舞(9)。可以预见不久的将业,将会得到更好的结果,将会出现更多的工业应用产品(47)(48)。
2.神经网络的应用
   非常少的文章讨论神经网络用于交流电机的控制,大量文章讨论神经网络在交流电机和驱动系统的条件监测和诊断中的运用。文献(33)介绍了使用常规反向转波算法的ANN用于步进电机控制算法的最优化。该方案使用实验数据,根据负载转矩和初始速度来确定最大可观测速度增量。这就需要ANN学习三维图形映射。该系统与常规控制算法(梯形控制法)相比具有更好的性能,并且大大减少了定位时间,对负载转矩的大范围变化和非初始速度也有满意的控制效果。文献(34)用两个ANNS控制和辩识感应电机,但只给出了仿真研究。这是第一篇讨论神经网络在感应电机控制中的应用,这个方案与3.1节中讨论的直流驱动方案类似,ANNS的结构是多层前馈型,运用常规反向传播学习算法。该系统由两个子系统构成,一个系统通过电气动态参数的辩识自适应控制定子电流,另一个系统通过对机电系统参数的辩识自适应控制转子速度。该文讨论了这些控制方案与常规方案的各种优点。
   文献(35)讨论了基于人工神经网络的电气机械系统,文献(36)介绍了运用直接控制ANN观测电压源PWM供电的感应电机矢量控制系统中的磁通的方法。这种基于ANN的磁通观测器的主要优点是对谐波具有免疫性。ANN是使用反向传播学习算法的多层前馈类型。ANN观测的磁通具有振荡性,因而引起转矩振荡。如果用别的方法,可能得到更好的结果。
   最后值得指出的是现在发表的大多数有关ANN对各种电机参数估计的论文,一个共同的特点是,它们都是用多层前馈ANNS,用常规反向传播算法,只是学习算法的模型不同或被估计的参数不同。

四、结论

本文试图对人工智能电气传动控制系统领域的进展做一回顾。内容涉及模糊控制、神经网络、模糊神经网络在电气传动系统中的应用,讨论了模糊、神经和模糊神经控制器等人工智能技术的优点。也讨论了人工智能最小配置的应用。但到目前为止,使用人工智能技术的变速传动工业产品才刚刚出现,只有两家公司推出他们的产品。虽然使用人工智能技术的实际产品和应用还不多,但不久的将来,人工智能技术在电气传动领域将会取得重要的地位,特别是自适应模糊神经控制器将在高性能驱动产品中得到广泛使用。

5. 请问什么是遗传算法,并给两个例子

遗传算法(Genetic Algorithm, GA)是近几年发展起来的一种崭新的全局优化算法,它借
用了生物遗传学的观点,通过自然选择、遗传、变异等作用机制,实现各个个体的适应性
的提高。这一点体现了自然界中"物竞天择、适者生存"进化过程。1962年Holland教授首次
提出了GA算法的思想,从而吸引了大批的研究者,迅速推广到优化、搜索、机器学习等方
面,并奠定了坚实的理论基础。 用遗传算法解决问题时,首先要对待解决问题的模型结构
和参数进行编码,一般用字符串表示,这个过程就将问题符号化、离散化了。也有在连续
空间定义的GA(Genetic Algorithm in Continuous Space, GACS),暂不讨论。 

  一个串行运算的遗传算法(Seguential Genetic Algoritm, SGA)按如下过程进行: 

  (1) 对待解决问题进行编码; 
  (2) 随机初始化群体X(0):=(x1, x2, … xn); 
  (3) 对当前群体X(t)中每个个体xi计算其适应度F(xi),适应度表示了该个体的性能好
坏; 
  (4) 应用选择算子产生中间代Xr(t); 
  (5) 对Xr(t)应用其它的算子,产生新一代群体X(t+1),这些算子的目的在于扩展有限
个体的覆盖面,体现全局搜索的思想; 
  (6) t:=t+1;如果不满足终止条件继续(3)。
  GA中最常用的算子有如下几种: 
  (1) 选择算子(selection/reproduction): 选择算子从群体中按某一概率成对选择个
体,某个体xi被选择的概率Pi与其适应度值成正比。最通常的实现方法是轮盘赌(roulett
e wheel)模型。 
  (2) 交叉算子(Crossover): 交叉算子将被选中的两个个体的基因链按概率pc进行交叉
,生成两个新的个体,交叉位置是随机的。其中Pc是一个系统参数。 
  (3) 变异算子(Mutation): 变异算子将新个体的基因链的各位按概率pm进行变异,对
二值基因链(0,1编码)来说即是取反。 
  上述各种算子的实现是多种多样的,而且许多新的算子正在不断地提出,以改进GA的
某些性能。系统参数(个体数n,基因链长度l,交叉概率Pc,变异概率Pm等)对算法的收敛速度
及结果有很大的影响,应视具体问题选取不同的值。
  GA的程序设计应考虑到通用性,而且要有较强的适应新的算子的能力。OOP中的类的继
承为我们提供了这一可能。 
  定义两个基本结构:基因(ALLELE)和个体(INDIVIDUAL),以个体的集合作为群体类TP
opulation的数据成员,而TSGA类则由群体派生出来,定义GA的基本操作。对任一个应用实
例,可以在TSGA类上派生,并定义新的操作。 

  TPopulation类包含两个重要过程: 
  FillFitness: 评价函数,对每个个体进行解码(decode)并计算出其适应度值,具体操
作在用户类中实现。 
Statistic: 对当前群体进行统计,如求总适应度sumfitness、平均适应度average、最好
个体fmax、最坏个体fmin等。 

  TSGA类在TPopulation类的基础上派生,以GA的系统参数为构造函数的参数,它有4个
重要的成员函数: 
  Select: 选择算子,基本的选择策略采用轮盘赌模型(如图2)。轮盘经任意旋转停止
后指针所指向区域被选中,所以fi值大的被选中的概率就大。 
  Crossover: 交叉算子,以概率Pc在两基因链上的随机位置交换子串。 
  Mutation: 变异算子,以概率Pm对基因链上每一个基因进行随机干扰(取反)。 
  Generate: 产生下代,包括了评价、统计、选择、交叉、变异等全部过程,每运行一
次,产生新的一代。 
  
  SGA的结构及类定义如下(用C++编写): 
[code]  typedef char ALLELE;  // 基因类型 
  typedef struct{ 
  ALLELE *chrom; 
  float fitness;     // fitness of Chromosome 
  }INDIVIDUAL;      // 个体定义 
  
  class TPopulation{   // 群体类定义 
  public: 
  int size;   // Size of population: n 
  int lchrom;   // Length of chromosome: l 
  float sumfitness, average; 

  INDIVIDUAL *fmin, *fmax; 
  INDIVIDUAL *pop; 
  
  TPopulation(int popsize, int strlength); 
  ~TPopulation(); 
  inline INDIVIDUAL &Individual(int i){ return pop[i];}; 
  void FillFitness();   // 评价函数 
  virtual void Statistics();   // 统计函数 
  }; 
  
  class TSGA : public TPopulation{   // TSGA类派生于群体类 
  public: 
  float pcross;            // Probability of Crossover 
  float pmutation;          // Probability of Mutation 
  int gen;              // Counter of generation 
  
  TSGA(int size, int strlength, float pm=0.03, float pc=0.6): 
  TPopulation(size, strlength) 
  {gen=0; pcross=pc; pmutation=pm; } ; 
  virtual INDIVIDUAL& Select(); 
  virtual void Crossover(INDIVIDUAL &parent1, INDIVIDUAL &parent2, 
  INDIVIDUAL &child1, INDIVIDUAL &child2); 
  &child1, INDIVIDUAL &child2); 
  virtual ALLELE Mutation(ALLELE alleleval); 
  virtual void Generate();      // 产生新的一代 
  }; 
  用户GA类定义如下: 
  class TSGAfit : public TSGA{ 
  public: 
  TSGAfit(int size,float pm=0.0333,float pc=0.6) 
  :TSGA(size,24,pm,pc){}; 
  void print(); 
  }; [/code]
  
  由于GA是一个概率过程,所以每次迭代的情况是不一样的;系统参数不同,迭代情况
也不同。在实验中参数一般选取如下:个体数n=50-200,变异概率Pm=0.03, 交叉概率Pc=
0.6。变异概率太大,会导致不稳定。

  参考文献 
  ● Goldberg D E. Genetic Algorithm in Search, Optimization, and machine 

  Learning. Addison-Wesley, Reading, MA, 1989 
  ● 陈根社、陈新海,"遗传算法的研究与进展",《信息与控制》,Vol.23, 
   NO.4, 1994, PP215-222 
  ● Vittorio Maniezzo, "Genetic Evolution of the Topology and Weight Distri
bution of the Neural   Networks", IEEE, Trans. on Neural Networks, Vol.5, NO
.1, 1994, PP39-53 
  ● Xiaofeng Qi, Francesco Palmieri, "Theoretical Analysis of Evolutionary 
Algorithms with an    Infinite Population Size in Continuous Space. Part Ⅰ
l Networks, Vol.5, NO.1, 1994, PP102-119 
  ● Xiaofeng Qi, Francesco Palmieri, "Theoretical Analysis of Evolutionary 
Algorithms with an    Infinite Population Size in Continuous Space. Part Ⅱ
al Networks, Vol.5, NO.1, 1994, PP102-119 
  ● Gunter Rudolph, Convergence Analysis of Canonical Genetic Algorithms, I
EEE, Trans. on Neural   Networks, Vol.5, NO.1, 1994, PP96-101 
  ● A E Eiben, E H L Aarts, K M Van Hee. Gloable convergence of genetic alg
orithms: A Markov     chain analysis. in Parallel Problem Solving from Nat
ure. H.-P.Schwefel, R.Manner, Eds. Berlin    and Heidelberg: Springer, 1991
, PP4-12 
  ● Wirt Atmar, "Notes on the Simulation of Evolution", IEEE, Trans. on Neu
ral Networks, Vol.5,   NO.1, 1994, PP130-147 
  ● Anthony V. Sebald, Jennifer Schlenzig, "Minimax Design of Neural Net Co
ntrollers for Highly   Uncertain Plants", IEEE, Trans. on Neural Networks, V
ol.5, NO.1, 1994, PP73-81 
  ● 方建安、邵世煌,"采用遗传算法自学习模型控制规则",《自动化理论、技术与应
用》,中国自动化学会  第九届青年学术年会论文集,1993, PP233-238 
  ● 方建安、邵世煌,"采用遗传算法学习的神经网络控制器",《控制与决策》,199
3,8(3), PP208-212 
  ● 苏素珍、土屋喜一,"使用遗传算法的迷宫学习",《机器人》,Vol.16,NO.5,199
4, PP286-289 
  ● M.Srinivas, L.M.Patnaik, "Adaptive Probabilities of Crossover and Mutat
ion", IEEE Trans. on   S.M.C, Vol.24, NO.4, 1994 of Crossover and Mutation",
 IEEE Trans. on S.M.C, Vol.24, NO.4, 1994 
  ● Daihee Park, Abraham Kandel, Gideon Langholz, "Genetic-Based New Fuzzy 
Reasoning Models with   Application to Fuzzy Control", IEEE Trans. S. M. C, 
Vol.24, NO.1, PP39-47, 1994 
  ● Alen Varsek, Tanja Urbancic, Bodgan Filipic, "Genetic Algorithms in Con
troller Design and    Tuning", IEEE Trans. S. M. C, Vol.23, NO.5, PP1330-13
39, 1993

请问什么是遗传算法,并给两个例子

6. R2014a版MATLAB老是提醒未定义与 'double' 类型的输入参数相对应的函数,怎么处理?求大神~

参考这个问答的处理
http://zhidao.baidu.com/link?url=xxp0CEWpdIO6DhckSu2I6CE7GVJVMsmPZRcck_30r9kg7j4Hc9Rx7_YrmSnpYdPi9637SUg9p6xNx_kc08-KHez177m9ySQKlfke3rGBVva

7. matlab 2014a调用所有自定义函数时,都出现”未定义与 'double' 类型的输入参数相对应的函数 “,怎么做

用户自定义的函数需要放在path路径下,或者当前文件夹下。

拓展资料:
MATLAB[1] 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
参考资料:MATLAB 百度百科

matlab 2014a调用所有自定义函数时,都出现”未定义与 'double' 类型的输入参数相对应的函数 “,怎么做

8. 可以使用的支持向量机(SVM)MATLAB程序,最好是和粒子群算法(PSO)或者遗传算法(GA)耦联的程序,谢谢

拉格朗日
function y=lagrange(x0,y0,x)
n=length(x0);m=length(x);
for i=1:m
 z=x(i);
 s=0.0;
 for k=1:n
 p=1.0;
 for j=1:n
 if j~=k
 p=p*(z-x0(j))/(x0(k)-x0(j));
 end
 end
 s=p*y0(k)+s;
 end
 y(i)=s;
end
SOR迭代法的Matlab程序 
function [x]=SOR_iterative(A,b)
% 用SOR迭代求解线性方程组,矩阵A是方阵
 x0=zeros(1,length(b)); % 赋初值
 tol=10^(-2); % 给定误差界
 N=1000; % 给定最大迭代次数
 [n,n]=size(A); % 确定矩阵A的阶
 w=1; % 给定松弛因子
 k=1;
 % 迭代过程
 while k=N
 x(1)=(b(1)-A(1,2:n)*x0(2:n)')/A(1,1);
 for i=2:n
 x(i)=(1-w)*x0(i)+w*(b(i)-A(i,1:i-1)*x(1:i-1)'-A(i,i+1:n)*x0(i+1:n)')/A(i,i);
 end
 if max(abs(x-x0))=tol
 fid = fopen('SOR_iter_result.txt', 'wt');
 fprintf(fid,'\n********用SOR迭代求解线性方程组的输出结果********\n\n');
 fprintf(fid,'迭代次数: %d次\n\n',k);
 fprintf(fid,'x的值\n\n');
 fprintf(fid, '%12.8f \n', x);
 break;
 end
 k=k+1;
 x0=x;
 end
 if k==N+1
 fid = fopen('SOR_iter_result.txt', 'wt');
 fprintf(fid,'\n********用SOR迭代求解线性方程组的输出结果********\n\n');
 fprintf(fid,'迭代次数: %d次\n\n',k);
 fprintf(fid,'超过最大迭代次数,求解失败!');
 fclose(fid);
 end 
Matlab中龙格-库塔(Runge-Kutta)方法原理及实现龙格-库塔(Runge-Kutta)方法是一种在工程上应用广泛的高精度单步算法。由于此算法精度高,采取措施对误差进行抑制,所以其实现原理也较复杂。该算法是构建在数学支持的基础之上的。龙格库塔方法的理论基础来源于泰勒公式和使用斜率近似表达微分,它在积分区间多预计算出几个点的斜率,然后进行加权平均,用做下一点的依据,从而构造出了精度更高的数值积分计算方法。如果预先求两个点的斜率就是二阶龙格库塔法,如果预先取四个点就是四阶龙格库塔法。一阶常微分方程可以写作:y'=f(x,y),使用差分概念。
(Yn+1-Yn)/h= f(Xn,Yn)推出(近似等于,极限为Yn')
Yn+1=Yn+h*f(Xn,Yn)
另外根据微分中值定理,存在0t1,使得
Yn+1=Yn+h*f(Xn+th,Y(Xn+th))
这里K=f(Xn+th,Y(Xn+th))称为平均斜率,龙格库塔方法就是求得K的一种算法。
利用这样的原理,经过复杂的数学推导(过于繁琐省略),可以得出截断误差为O(h^5)的四阶龙格库塔公式:
K1=f(Xn,Yn);
K2=f(Xn+h/2,Yn+(h/2)*K1);
K3=f(Xn+h/2,Yn+(h/2)*K2);
K4=f(Xn+h,Yn+h*K3);
Yn+1=Yn+h*(K1+2K2+2K3+K4)*(1/6);
所以,为了更好更准确地把握时间关系,应自己在理解龙格库塔原理的基础上,编写定步长的龙格库塔函数,经过学习其原理,已经完成了一维的龙格库塔函数。
仔细思考之后,发现其实如果是需要解多个微分方程组,可以想象成多个微分方程并行进行求解,时间,步长都是共同的,首先把预定的初始值给每个微分方程的第一步,然后每走一步,对多个微分方程共同求解。想通之后发现,整个过程其实很直观,只是不停的逼近计算罢了。编写的定步长的龙格库塔计算函数:
function [x,y]=runge_kutta1(ufunc,y0,h,a,b)%参数表顺序依次是微分方程组的函数名称,初始值向量,步长,时间起点,时间终点(参数形式参考了ode45函数)
n=floor((b-a)/h);%求步数
x(1)=a;%时间起点
y(:,1)=y0;%赋初值,可以是向量,但是要注意维数
for ii=1:n
x(ii+1)=x(ii)+h;
k1=ufunc(x(ii),y(:,ii));
k2=ufunc(x(ii)+h/2,y(:,ii)+h*k1/2);
k3=ufunc(x(ii)+h/2,y(:,ii)+h*k2/2);
k4=ufunc(x(ii)+h,y(:,ii)+h*k3);
y(:,ii+1)=y(:,ii)+h*(k1+2*k2+2*k3+k4)/6;
%按照龙格库塔方法进行数值求解
end
调用的子函数以及其调用语句:
function dy=test_fun(x,y)
dy = zeros(3,1);%初始化列向量
dy(1) = y(2) * y(3);
dy(2) = -y(1) + y(3);
dy(3) = -0.51 * y(1) * y(2);
对该微分方程组用ode45和自编的龙格库塔函数进行比较,调用如下:
[T,F] = ode45(@test_fun,[0 15],[1 1 3]);
subplot(121)
plot(T,F)%Matlab自带的ode45函数效果
title('ode45函数效果')
[T1,F1]=runge_kutta1(@test_fun,[1 1 3],0.25,0,15);%测试时改变test_fun的函数维数,别忘记改变初始值的维数
subplot(122)
plot(T1,F1)%自编的龙格库塔函数效果
title('自编的 龙格库塔函数')