人工智能的主要内容和方法_第1页
人工智能的主要内容和方法_第2页
人工智能的主要内容和方法_第3页
人工智能的主要内容和方法_第4页
人工智能的主要内容和方法_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.\人工智能的主要内容和方法人工智能(ArtificialIntelligence,简称AI)是50年代兴起的一门新兴谢谢阅读边缘学科,二十世纪七十年代以来被称为世界三大尖端技术之一(空间技术、谢谢阅读能源技术、人工智能),也被认为是二十一世纪三大尖端技术之一(基因工谢谢阅读程、纳米科学、人工智能)。广义的讲,人工智能是关于人造物的智能行为,谢谢阅读而智能行为包括知觉、推理、学习、交流和在复杂环境中的行为。人工智能谢谢阅读的一个长期目标是发明出可以像人类一样或能更好地完成以上行为的机器;谢谢阅读另一个目标是理解这种智能行为是否存在于机器、人类或其他动物中。目前谢谢阅读能够用来研究人工智能的主要物质手段以及能够实现人工智能技术的机器谢谢阅读就是计算机,人工智能的发展历史是和计算机科学与技术的发展史联系在谢谢阅读一起的。除了计算机科学以外,人工智能还涉及信息论、控制论、自动化、感谢阅读仿生学、生物学、心理学、数理逻辑、语言学、医学和哲学等多门学科。感谢阅读一、AI的主要内容人工智能研究的主要内容包括:知识表示、自动推理和搜索方法、机器谢谢阅读学习和知识获取、知识处理系统、自然语言理解、计算机视觉、智能机器人、感谢阅读自动程序设计等方面。知识表示是人工智能的基本问题之一,推理和搜索都与表示方法密切相谢谢阅读关。常用的知识表示方法有:逻辑表示法、产生式表示法、语义网络表示法谢谢阅读和框架表示法等。常识,自然为人们所关注,已提出多种方法,如非单调推理、定性推理谢谢阅读就是从不同角度来表达常识和处理常识的。.\问题求解中的自动推理是知识的使用过程,由于有多种知识表示方法,感谢阅读相应地有多种推理方法。推理过程一般可分为演绎推理和非演绎推理。谓词感谢阅读逻辑是演绎推理的基础。结构化表示下的继承性能推理是非演绎性的。由于谢谢阅读知识处理的需要,近几年来提出了多种非演绎的推理方法,如连接机制推理、谢谢阅读类比推理、基于示例的推理、反绎推理和受限推理等。搜索是人工智能的一种问题求解方法,搜索策略决定着问题求解的一个感谢阅读推理步骤中知识被使用的优先关系。可分为无信息导引的盲目搜索和利用经感谢阅读验知识导引的启发式搜索。启发式知识常由启发式函数来表示,启发式知识感谢阅读利用得越充分,求解问题的搜索空间就越小。典型的启发式搜索方法有A*、谢谢阅读AO*算法等。近几年搜索方法研究开始注意那些具有百万节点的超大规模的谢谢阅读搜索问题。机器学习是人工智能的另一重要课题。机器学习是指在一定的知识表示感谢阅读意义下获取新知识的过程,按照学习机制的不同,主要有归纳学习、分析学精品文档放心下载习、连接机制学习和遗传学习等。知识处理系统主要由知识库和推理机组成。知识库存储系统所需要的知感谢阅读识,当知识量较大而又有多种表示方法时,知识的合理组织与管理是重要的。谢谢阅读推理机在问题求解时,规定使用知识的基本方法和策略,推理过程中为记录感谢阅读结果或通信需设数据库或采用黑板机制。如果在知识库中存储的是某一领域精品文档放心下载(如医疗诊断)的专家知识,则这样的知识系统称为专家系统。为适应复杂问感谢阅读题的求解需要,单一的专家系统向多主体的分布式人工智能系统发展,这时精品文档放心下载知识共享、主体间的协作、矛盾的出现和处理将是研究的关键问题。谢谢阅读二、AI的研究方法.\既为人工智能的最终研究目标打好基础,又能创造出短期效益,这是选择人工智能研究最佳方法的标准。尽管人工智能已经创造了一些实用系统,但这些远未达到人类的智能水平。在过去的几十年里涌现出了大量的方法,大致可分为两大类。感谢阅读第一类包括符号处理的方法。它们基于Newell和Simon的物理符号系统的假说。大多数被称为“经典的人工智能”均在其指导之下。这类方法中,突出的方法是将逻辑操作应用于说明性知识库。这种风格的人工智能运用说明语句来表达问题域的“知识”,这些语句基于或实质上等同于一阶逻辑中的语句,采用逻辑推理可推导这种知识的结果。这种方法有许多变形,包括那些强调对逻辑语言中定义域的形式公理化的角色的变形。当遇到“真正的问题”,这一方法需要掌握问题域的足够知识,通常就称作基于知识的方法。感谢阅读在大多数符号处理方法中,对需求行为的分析和为完成这一行为所做的机器合成要经过几个阶段。最高阶段是知识阶段,机器所需知识在这里说明。接下来是符号阶段,知识在这里以符号组织表示(例如:列表可用列表处理语言LISP来描述),同时在这里说明这些组织的操作。接着,在更低级的阶段里实施符号处理。多数符号处理采用自上而下的设计方法,从知识阶段向下到符号和实施阶段。感谢阅读第二类包括所谓的“子符号”方法。它们通常采用自下而上的方式,从最低阶段向上进行。在最低层阶段,符号的概念就不如信号这一概念确切了。在子符号方法中突出的方法是“Animatapproach”。偏爱这种方式的人们指出,人的智能经过了在地球上十亿年或更长时间的进化过程,认为为了制造出真正的智能机器,我们必须沿着这些进化的步骤走。因此,我们必须集精品文档放心下载.\中研究复制信号处理的能力和简单动物如昆虫的支配系统,沿着进化的阶梯精品文档放心下载向上进行。这一方案不仅能在短期内创造实用的人造物,又能为更高级智能精品文档放心下载的建立打好坚实的基础。第二类方法也强调符号基础。在物理基础假说中,一个agent不采用集谢谢阅读中式的模式而运用其不同的行为模块与环境相互作用来进行复杂的行为。机感谢阅读器与环境的相互作用产生了所谓的“自然行为(emergentbehavior)”。一个感谢阅读agent的功能可视作该系统与动态环境密切相互作用的自然属性。agent本身感谢阅读对其行为的说明并不能解释它运行时所表现的功能;相反,其功能很大程度谢谢阅读上取决于环境的特性。不仅要动态的考虑环境,而且环境的具体特征也要运谢谢阅读用于整个系统之中。由子符号派制造的著名样品机器包括“神经网络(Neuralnetwork)”。根精品文档放心下载据模拟生物进化方面的进程,一些有意思的机器应运而生,包括: Sexual精品文档放心下载crossover、Mutation和Fitness-proportionalreproduction。其他自下而上,含谢谢阅读animat风格的方法是基于控制理论和动态系统地分析。介于自上而下和自下感谢阅读而上之间的方法是一种“环境自动机(situatedautomata)”的方法。Kaelbling精品文档放心下载Rosenschein建议编写一种程序设计语言来说明agent在高水平上所要求的行为,并编写一编译程序,以从这种语言编写的程序中产生引发行为的线路。谢谢阅读.\径向基函数神经网络MATLAB仿真一、 RBF网络的工作原理径向基函数神经网络(RadialBasisFunctionNeuralNetwork,RBF)是一谢谢阅读种前馈神经网络,一般为三层结构,如下图:X1X2Xn

b0Φ1(x-c1)W∈Rh*m1∑ y1c2∑ ymchΦh(x-ch)bm上图所示为n—h—m结构的RBF网络,即网络具有n个输入,h个隐节点,m个输出。其中x=(x1,x2,…,xn)T∈Rn为网络输入矢量,W∈Rn×m为输出权矩阵,b0,…,bm为输出单元偏移,y=(y1,y2,…,ym)T为网络输出,Φi(*)为第谢谢阅读个隐节点的激活函数。图中输出层节点中的∑表示输出层神经元采用线性激活函数(输出神经元也可以采用其他非线性激活函数,如Sigmoidal函数)。谢谢阅读RBF网络的最显著的特点是隐节点的基函数采用距离函数(如欧式距离),并使用径向基函数(如Gaussian高斯函数)作为激活函数。径向基函数关于n维空间的一个中心点具有径向对称性,而且神经元的输入离该中心点越远,神经元的激活程度就越低。隐节点的这个特性常被称为“局部特性”。因此RBF网络的每个隐节点都具有一个数据中心,上图中ci就是网络中第i感谢阅读.\个隐节点的数据中心值,||*||则表示欧式范数。谢谢阅读径向基函数Φi(*)可以取多种形式:1.Gaussian函数Φ(t)e-t2/δ2ii2.Reflectedsigmoidal函数Φ(t)1/(1et2/δi2)i逆Multiquadric函数(t)1/(t2δ2)α,α0i i以上三式中的δi称为该基函数的扩展常数(Spread)或宽度。显然δi越小,径向基函数的宽度就越小,基函数就越具有选择性。谢谢阅读与输出节点相连的隐层第i个隐节点的所有参数可用三元组(ci,δi,ωi)感谢阅读表示。每个隐层神经元都对输入x产生一个响应Φ(||x-c||),且响应特性成谢谢阅读i i径向对称(即是一个个同心圆),而神经网络的输出则是所有这些响应的加权和,因此第k个输出可表示为谢谢阅读yhωΦ(||x-c||)kiiii1由于每个神经元具有局部特性,最终整个RBF网络也呈现“局部映射”特性,即RBF网络是一种局部相应神经网络。这意味着如果神经网络有较大的输出,必定激活了一个或多个隐节点。精品文档放心下载二、RBF网络的聚类学习算法RBF网络的学习算法应该解决以下问题:结构设计,即如何确定网络隐谢谢阅读节点数h;确定各径向基函数的数据中心ci及扩展常数δi;输出权值修正。精品文档放心下载i(xj)=mini.\如果知道了网络的隐节点数、数据中心和扩展常数,RBF网络从输入到输出就成了一个线性方程组,此时权值学习可采用最小二乘法。谢谢阅读RBF网络最常用的学习算法有聚类方法、梯度训练方法及OLS优选算法。下面将详细介绍最经典的RBF网络学习算法—聚类方法,并进行MATLAB仿真。精品文档放心下载聚类方法的思路是先用无监督学习(用k-means算法对样本输入进行聚类)方法确定RBF网络中h个隐节点的数据中心,并根据各数据中心之间的距离确定隐节点的扩展常数,然后用有监督学习(梯度法)训练各隐节点的输出权值。精品文档放心下载假设X1,X2,…,XN为样本输入,相应的样本输出(教师信号)为y1,y2,…,yN,网络中第j个隐节点的激活函数为Φj(*)。k为迭代次数,第k次迭代时的聚类中心为c1(k),c2(k),…,ch(k),相应的聚类域为ω1(k),ω2(k),…,ωh(k)。k-means聚类算法确定RBF网络数据中心ci和扩展常数δi的步骤如下:精品文档放心下载算法初始化:选择h个不同的初始聚类中心,并令k=1。初始聚类中心的方法很多,比如,从样本输入中随机选取,或者选择前h个样本输入,但这h个初始数据中心必须取不同值。谢谢阅读计算所有样本输入与聚类中心的距离||Xj-ci(k)||,i=1,2,…,h,精品文档放心下载j=1,2, ,N。…对样本输入Xj按最小距离原则对其进行分类:即当精品文档放心下载||Xj-ci(k)||,i=1,2,…,h时,Xj即被归为第i类,即Xj∈ωi(k)。感谢阅读重新计算各类的新的聚类中心:.\c(k1)1 x,i1,2,,h感谢阅读i Nxi(k)式中,Ni为第i个聚类域ωi(k)中包含的样本数。感谢阅读如果ci(k+1)≠ci(k),转到步骤(2),否则聚类结束,转到步骤(6)。感谢阅读根据各聚类中心之间的距离确定各隐节点的扩展常数。隐节点的扩感谢阅读展常数取δi=κdi,其中di为第i个数据中心与其他最近的数据中心之间的距离,即di=min||cj-ci(k)||,κ称重叠系数。精品文档放心下载i一旦各隐节点的数据中心和扩展常数确定了,输出权矢量ω=(ω1,ω2,…,谢谢阅读ωh)T就可以用有监督学习方法(如梯度法)训练得到,但更简洁的方法是使精品文档放心下载用最小二乘方法(LMS)直接计算。假定当输入为Xi,i=1,2,…,N时,第j个隐节点的输出如下式所示:h(||x-c||)ijjij则隐层输出阵为H[h]ij则H∈R。如果RBF网络的当前权值为ω=(ωωω)(待定),则N×hT1,2,…,h对所有样本,网络输出矢量为 yH||yy||为逼近误差,则如果给定了教师信号y=(y1,y2,…,ym)T并确定感谢阅读H,便可通过最小化下式求出网络的输出权值:||yy||||yH||谢谢阅读通常ω可用最小二乘法求得Hy.\式中,H为H的伪逆,即H(HTH)1HT三、 RBF网络MATLAB仿真实例题目:基于聚类方法的y=sinx函数逼近解:RBF网络隐层采用标准Gaussian径向基函数,输出层采用线性激谢谢阅读活函数,即f(u)=u。数据中心和扩展常数用聚类方法得到,输出权值和偏谢谢阅读移采用广义逆方法求解。隐节点数(即聚类数)取10,初始聚类中心取前感谢阅读10个训练样本。MATLAB程序:functionmain()SamNum=200;%训练样本数TestSamNum=201;%测试样本数InDim=1;%样本输入维数ClusterNum=10;%隐节点(聚类样本)数Overlap=1.0;%隐节点重叠系数κ%根据目标函数获得样本输入输出rand('state',sum(100*clock));感谢阅读resetsthegeneratortoadifferentstateeachtime精品文档放心下载且state不同产生的伪随机序列顺序不同SamIn=14*rand(1,SamNum)-7;精品文档放心下载SamOut=sin(SamIn);TestSamIn=-7:0.07:7; %[7-(-7)]/0.07+1=201个样本谢谢阅读TestSamOut=sin(TestSamIn);感谢阅读.\figureholdongridplot(SamIn,SamOut,'b+')plot(TestSamIn,TestSamOut,'k--') %绘制目标函数曲线感谢阅读xlabel('Inputx');ylabel('Outputy');title('基于聚类的RBF网络对函数y=sinx的逼近曲线'),精品文档放心下载Centers=SamIn(:,1:ClusterNum); %初始聚类中心取前10个训练样本谢谢阅读NumberInClusters=zeros(ClusterNum,1); %各类中的样本数,初始化为0感谢阅读IndexInClusters=zeros(ClusterNum,SamNum); %各类所含样本的索引号精品文档放心下载while1,NumberInClusters=zeros(ClusterNum,1);谢谢阅读IndexInClusters=zeros(ClusterNum,SamNum);谢谢阅读%按最小距离原则对所有样本进行分类fori=1:SamNumAllDistance=dist(Centers',SamIn(:,i)); %求欧几里德距离谢谢阅读[MinDist,Pos]=min(AllDistance);谢谢阅读NumberInClusters(Pos)=NumberInClusters(Pos)+1;%求各类样本的个数谢谢阅读IndexInClusters(Pos,NumberInClusters(Pos))=i;感谢阅读end%报存旧的聚类中心OldCenters=Centers;%重新计算各类的聚类中心.\fori=1:ClusterNumIndex=IndexInClusters(i,1:NumberInClusters(i));谢谢阅读Centers(:,i)=mean(SamIn(:,Index)')';感谢阅读end%判断新旧聚类中心是否一致,如果是,则聚类结束EqualNum=sum(sum(Centers==OldCenters)); %新旧聚类中心一致的个数谢谢阅读ifEqualNum==InDim*ClusterNum,谢谢阅读break,endend%计算各隐节点的扩展常数(宽度)δi=κdi,其中di是Cj-Ci(k)的最小欧式距离谢谢阅读AllDistances=dist(Centers',Centers); %求隐节点数据中心间的距离(矩阵)谢谢阅读Maximum=max(max(AllDistances)); %找出其中最大的一个距离精品文档放心下载fori=1:ClusterNum %某一类的中心到自身的欧式距离是0,谢谢阅读AllDistances(i,i)=Maximum+1; %但要找隐节点间的最小距离,谢谢阅读end %因此将对角线上的0替换为较大的值。Spreads=Overlap*min(AllDistances)'; %以隐节点间的最小距离作为扩展常数感谢阅读%计算各隐节点的输出权值Distance=dist(Centers',SamIn); %计算各样本输入离各数据中心的距离感谢阅读SpreadsMat=repmat(Spreads,1,SamNum); %repmat径向基函数φj(.)感谢阅读HiddenUnitOut=radbas(Distance./SpreadsMat); %计算隐节点输出阵感谢阅读HiddenUnitOutEx=[HiddenUnitOut'ones(SamNum,1)]';%考虑偏移感谢阅读W2Ex=SamOut*pinv(HiddenUnitOutEx); %求广义输出权值。pinv求伪逆感谢阅读W2=W2Ex(:,1:ClusterNum);B2=W2Ex(:,ClusterNum+1);W2.\B2%测试TestDistance=dist(Centers',TestSamIn);谢谢阅读TestSpreadsMat=repmat(Spreads,1,TestSamNum);谢谢阅读TestHiddenUnitOut=radbas(TestDistance./TestSpreadsMat);精品文档放心下载TestNNOut=W2*TestHiddenUnitOut+repmat(B2,1,TestSamNum);精品文档放心下载plot(TestSamIn,TestNNOut,'r-')谢谢阅读四、输出结果当隐节点重叠系数κ为1时,W2=Columns1through8-0.9759 1.1956 1.2402 0.9509 1.3999 -0.0311 -0.1359 0.9232谢谢阅读Columns9through100.7913 -0.1700B2=-0.8289.\当隐节点重叠系数κ为2时,W2=Columns1through87.6555 -1.7326 0.0156 0.0815 -11.8386 1.0188 0.7853 1.5740感谢阅读Columns9through109.3149 -1.0047B2=-1.3042五、结果分析RBF网络的学习过程与BP网络的学习过程类似,两种网络中隐节点的谢谢阅读非线性变换作用都是把线性不可分问题转化为线性可分问题,因此均可用于谢谢阅读函数逼近和分类。两者的主要区别在于各使用不同的激励函数,BP网络中感谢阅读隐层节点使用的是Sigmoid函数,其值在输入空间中无限大的范围内为非零精品文档放心下载值,因而是一种全局逼近的神经网络;而RBF网络中的激励函数是Gaussian精品文档放心下载.\函数,是一种局部逼近的神经网络,其对于输入空间的某个局部区域只有少谢谢阅读数几个连接权影响网络的输出,因而与BP网络相比,RBF网络学习速度更感谢阅读快。聚类方法的优点是能根据各聚类中心之间的距离确定各隐节点的扩展感谢阅读常数,缺点是确定数据中心时只用到了样本输入信息,而没有用到样本输出谢谢阅读信息;另外聚类方法也无法确定聚类的数目(RBF网络的隐节点数)。感谢阅读.\遗传算法MATLAB仿真一、 遗传算法(GA)的基本思想基于达尔文进化论中的适者生存、优胜劣汰的基本原理,按生物学的方感谢阅读法将问题的求解表示成“种群(Population)”(用计算机编程时,一般使用二精品文档放心下载进制码串表示),从而构造出一群包括N个可行解的种群,将它们置于问题感谢阅读的“环境”中,根据适者生存原则,对该种群按照遗传学的基本操作,不断谢谢阅读优化生成新的种群,这样一代代地不断进化,最后收敛到一个最适应环境的感谢阅读最优个体上,求得问题的最优解。遗传算法可以形式化的描述如下:GA=(P(0),N,l,s,g,p,f,t)谢谢阅读其中,P(0)=(P1(0),P2(0),…,Pn(0)),表示初始种群;N表示种群中含有个感谢阅读体的个数;l表示二进制串的长度;s表示选择策略;g表示遗传算子,通常精品文档放心下载它包括有选择(繁殖)算子Qr、杂交算子Qc和变异算子Qm;p表示遗传算谢谢阅读子的操作概率,它包括选择概率Pr、Pc和变异概率Pm;f是适应度函数;感谢阅读是终止准则。二、 Holland遗传算法(SGA)该算法的操作对象是一群被称为种群的二进制位串(称为染色体、个谢谢阅读体)。这里的每个染色体都对应求解问题的一个解。SGA的基本思想是:从谢谢阅读初始种群出发,采用基于适应度比例的选择策略在当前种群中选择个体,使谢谢阅读用杂交和变异来产生下一代种群。如此一代代演化下去,直至满足期望的终感谢阅读止条件为止。.\执行一个简单的遗传算法时,需要做以下的准备工作:根据问题的要求选取设计变量(即明确需要优化的参数或方案),变量的取值范围构成问题的解空间。这是一个具体问题的数学抽象的过程。谢谢阅读确定变量的约束条件。确定编码方案。遗传算法求解问题不是直接作用在问题的解空间上,而是利用解的某种编码表示。通常解(变量)空间中的一个解(变量)被编码成一个串,它是由组成这个解(变量)的一系列有效信息组成。感谢阅读确定适应度函数。适应度值是对解的质量的度量,它是遗传算法对种群中的个体执行各种遗传操作的唯一的依据。精品文档放心下载确定选择策略。个体的适应度值是策略中的主要依据,该步骤使适应度值大的解在下一代有较大的存活概率。这种轮盘赌的选择策略具有正反馈特征,在自然界中也屡屡出现这样的现象,最后的结局是可怕的。实际设计中还可以选择锦标赛选择策略或者排序选择策略等。谢谢阅读确定控制参数。它主要包括种群规模、执行不同遗传操作的概率以及其它一些辅助性控制参数。谢谢阅读设计遗传算子。进化算法中的遗传算子包括繁殖(选择)、杂交变异等操作。精品文档放心下载确定算法的条件终止准则。三、Holland遗传算法流程图.\开始GEN:=0产生初始种群YYGEN:=GEN+1复制选择一个个体执行复制

是否满足停止准则N计算每个个体的适应值i:=0i:=迭代次数?N依概率选择遗传操作交叉选择两个个体i:=i+1执行杂交

指定结果结束变异选择一个个体执行变异复制到新种群 将两个后代插入新种群i:=i+1四、 遗传算法MATLAB仿真实例

插入到新种群例:求下列函数的最大值f(x)=10*sin(5x)+7*cos(4x),x∈[0,10]。谢谢阅读.\其中将x的值用一个10位的二值形式表示。解:分为八个部分:1.初始化(编码)initpop.m函数的功能是实现群体的初始化,popsize表示群体的大小,精品文档放心下载chromlength表示染色体的长度(二值数的长度),长度大小取决于变量的二进谢谢阅读制编码的长度(在本例中取10位)。子程序文件名:initpop.m%初始化functionpop=initpop(popsize,chromlength)精品文档放心下载pop=round(rand(popsize,chromlength));精品文档放心下载%rand随机产生每个单元为{0,1}行数为popsize,列数为chromlength谢谢阅读的矩阵,round对矩阵的每个单元进行取整。产生初始种群。谢谢阅读计算目标函数值将二进制串<b9b8…b0>转化为相应的十进制,即谢谢阅读(b bb )(9b2i) x'谢谢阅读9802i10i0子程序文件名:decodebinary.m%产生[2^n2^(n-1)...1]的行向量,然后求和,将二进制转化为十进制感谢阅读functionpop2=decodebinary(pop)感谢阅读[px,py]=size(pop); %求pop行和例数精品文档放心下载fori=1:py.\pop1(:,i)=2.^(py-1).*pop(:,i);谢谢阅读py=py-1;endpop2=sum(pop1,2); %求pop1的每行之和感谢阅读找到相应的实数x,即x0.0x'102101其中0.0为区间[0,10]的左边界,10为区间长度。精品文档放心下载decodechrom.m函数的功能是将染色体(或二进制编码)转换为十进制,感谢阅读参数spoint表示待解码的二进制串的起始位置(对于多个变量而言,如有两个变量,采用20位表示,每个变量10位,则第一个变量从1开始,另一个变量从11开始。本例为1),参数length表示所截取的长度(本例为10)。谢谢阅读子程序文件名:decodechrom.m%将二进制编码转换成十进制functionpop2=decodechrom(pop,spoint,length)谢谢阅读pop1=pop(:,spoint:spoint+length-1);精品文档放心下载pop2=decodebinary(pop1);计算目标函数值calobjvalue.m函数的功能是实现目标函数的计算。谢谢阅读子程序文件名:calobjvalue.m%实现目标函数的计算function[objvalue]=calobjvalue(pop)感谢阅读temp1=decodechrom(pop,1,10);%将pop每行转化成十进制数精品文档放心下载.\x=temp1*10/(2^10-1); %将二值域中的数转化为变量域的数精品文档放心下载objvalue=10*sin(5*x)+7*cos(4*x);%计算目标函数值感谢阅读计算个体的适应值子程序文件名:calfitvalue.m%计算个体的适应值感谢阅读functionfitvalue=calfitvalue(objvalue)精品文档放心下载globalCmin;Cmin=0;[px,py]=size(objvalue);fori=1:pxifobjvalue(i)+Cmin>0temp=Cmin+objvalue(i);elsetemp=0.0;endfitvalue(i)=temp;endfitvalue=fitvalue';选择复制选择或复制操作是决定哪些个体可以进入下一代。程序中采用轮盘赌式谢谢阅读选择法进行选择,这种方法较易实现。.\根据方程pi=fi/∑fi=fi/fsum,选择步骤:精品文档放心下载1)在第t代,由上式计算fsum和pi2)产生{0,1}的随机数rand(.),求s=rand(.)*fsum感谢阅读3)求pi≥s中最小的k,则第k个个体被选中精品文档放心下载4)进行N次2)、3)操作,得到N个个体,成为第t=t+1代种群精品文档放心下载子程序文件名:selection.m%选择复制function[newpop]=selection(pop,fitvalue)totalfit=sum(fitvalue);%求适应值之和fitvalue=fitvalue/totalfit;%单个个体被选择的概率fitvalue=cumsum(fitvalue);%如fitvalue=[1234],则谢谢阅读cumsum(fitvalue)=[13610]感谢阅读[px,py]=size(pop);ms=sort(rand(px,1));%从小到大排列谢谢阅读fitin=1;newin=1;whilenewin<=pxif(ms(newin))<fitvalue(fitin)感谢阅读newpop(newin,:)=pop(fitin,:);精品文档放心下载newin=newin+1;elsefitin=fitin+1;.\endend5.交叉交叉(crossover),群体中的每个个体之间都以一定的概率 pc交叉,即精品文档放心下载两个个体从各自字符串的某一位置,(一般是随机确定)开始互相交换,这感谢阅读类似生物进化过程中的基因分裂与重组。例如,假设2个父代个体x1,x2精品文档放心下载为:x1=0100110;x2=1010001。从每个个体的第3位开始交叉,交叉后得感谢阅读2个新的子代个体y1,y2分别为:y1=0100001;y2=1010110。这样2精品文档放心下载个子代个体就分别具有了2个父代个体的某些特征。利用交叉我们有可能由精品文档放心下载父代个体在子代组合成具有更高适合度的个体。事实上交叉是遗传算法区别感谢阅读于其它传统优化方法的主要特点之一。子程序文件名:crossover.m%交叉function[newpop]=crossover(pop,pc)精品文档放心下载[px,py]=size(pop);newpop=ones(size(pop));fori=1:2:px-1if(rand<pc)cpoint=round(rand*py);newpop(i,:)=[pop(i,1:cpoint)pop(i+1,cpoint+1:py)];精品文档放心下载newpop(i+1,:)=[pop(i+1,1:cpoint)pop(i,cpoint+1:py)];谢谢阅读else.\newpop(i,:)=pop(i,:);newpop(i+1,:)=pop(i+1,:);endend6.变异变异(mutation),基因的突变普遍存在于生物的进化过程中。变异是指精品文档放心下载父代中的每个个体的每一位都以概率pm翻转,即由“1”变为“0”,或由感谢阅读“0”变为“1”。遗传算法的变异特性可以使求解过程随机地搜索到解可能感谢阅读存在的整个空间,因此可以在一定程度上求得全局最优解。感谢阅读子程序文件名:mutation.m%变异function[newpop]=mutation(pop,pm)精品文档放心下载[px,py]=size(pop);newpop=ones(size(pop));fori=1:pxif(rand<pm)mpoint=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论