启发式算法研究小结.docx
- 文档编号:26894639
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:51
- 大小:1.26MB
启发式算法研究小结.docx
《启发式算法研究小结.docx》由会员分享,可在线阅读,更多相关《启发式算法研究小结.docx(51页珍藏版)》请在冰豆网上搜索。
启发式算法研究小结
启发式算法研究小结
1.探究启发式算法的缘由
在选《管理优化决策》这门课的时候,我抱着很强的好奇心和巨大的求知欲,试图尝试在这门课上学到我感兴趣的知识点以及确定我今后极有可能的研究领域和大方向。
很幸运的是,我找到了。
为什么这么说呢?
就在我选择博士专业内选修课和专业外选修课的同时我发现了管理优化决策这门课和计算机学院那边开的选修课——《启发式优化》(由吕志鹏教授讲授),有很多是相通的,发现管理界尤其是在管理科学与工程方向和计算机技术应用领域所探究的问题出奇的一致,已经很难分清,哪个是管理方面的问题,哪个是计算机技术应用的范围了。
正如各位都知道的是,由于选修课最终确定前一个月是可以去试听的,然而我并没有因为两者看上去内容有些相似就匆忙退选。
通过对这两门课的内容进行比较,它给了我很大的触动,也带给我巨大的好奇,到底是管理方面的研究越来越偏向运用计算机等其他学科的知识和工具,还是计算机应用研究的方面越来越偏向实际的管理优化问题了呢?
亦或者两个学科的边界正在走向模糊?
我想学科交叉和融合的这一说法对于我来说可能并不是很新鲜,但这的确是我亲身经历的一种美妙体验和发现。
它带给我新奇的同时也无疑给了我值得我深思几点的启示:
首先,众所周知,管理学科作为一门交叉的新兴学科,它的方法和工具都是依托和借助其他领域和学科而来的,它本身并没有或者几乎没有一个完完整整的只属于管理学科的方法和工具,几乎是其它学科的知识演变而来的,这就是我们所知道的学科交叉和学科融合;然而管理领域和传统计算机研究等领域的视角并不完全一样,其中对于计算机领域的研究者们而言,他们不但在乎启发式算法是否能够解决问题、效率是否大幅提高(而管理领域的专家们更在乎这点,能用第一,好用第二,或者说管理专家们更在乎第一点——问题能够得到的解决,至于第二点就不是那么迫切。
而对计算机领域的向专家们而言,可以说两者都非常重要、要求非常苛刻),更在乎它所表现出来的优越特性(就时间、空间复杂度以及算法求解过程中保持一定的集中性和分散性而言的)。
然而当管理领域的学者们求解类似问题,一般来说都是和我们生活中的管理者经常遇到且直接和的决策相关的问题,因为由于管理者的决策质量好坏会往往直接导致企业和团体的效率和绩效和高低,进而导致企业和组织的竞争力强弱,所以一般企业或者个人都是基于一定的价值诉求来解决管理问题,进而提高工作效率。
由于管理者们非常了解生活中并不存在完完全全的理性人和完全信息,因此他们很难也极少去尝试寻找最优解,找到满意解就可以了,这一点和启发式算法的设计思想不谋而合(由于时间、硬件资源有限,特别是遇到组合爆炸问题时短时间难于穷举和难与求解出最优解,而且短时间还必须给出解。
尽管二者有所差异,但都有一些共同之处,都是资源受限)。
综上所述,对于同一个所以在求解管理方面较为复杂的问题时,我们短时间很难给出精确地解析解时,这时考虑运用启发式算法也不失为一种飞常有效的方法,而且生活我们经常在用,也不断地被证明了启发式算法优良的特性(简单、迅速且解的质量较高)。
其次,随着社会经济的高速发展,我们面对的管理问题逐渐变得越来越复杂,而且超出了人们的求解和计算的能力范围,比如:
当我们求解经典的TSP问题时,我们会发现尽管我们可以用很简单的数学加以描述和刻画,但是对其进行求解尤其是计算得到问题的最优解时,可以说难于上青天,然而这类问题在我们的生活中普遍存在,而且甚至严重地影响到了企业和个人的效益和效率以及人们生活的便利性。
在这个过程中还必须给出一定的满意解,此时,我们不求助与启发式算法,那还有什么办法呢?
这也是启发式算法得以存在并高速发展的根本原因,这也是众多管理学者相继运用启发式算法的技术和工具去探究一些飞常复杂的管理问题根本原因,这也是我想在前人深厚的启发式算法研究的基础上继续尝试探究启发式算法在管理问题的根本目的。
最后,其实启发式算法的设计思想往往来源于一些朴素的哲学思想和观点,比如:
启发式算法的设计过程中非常注重集中性和疏散性,从而实现某种平衡的状态,这与古代中国哲人先贤们的思想如出一辙,随机和确定同步进行,既有随机又有确定,随机存在确定之中,确定亦存在随机之中。
在保证全局最优的方向上引入随机的思想,防止过于最优,从而陷入局部最优无法自拔。
这对于每个人的人生也是同样的道理,我们在人生的道路上,充满各种选择,此时,我们是时时抓住眼前的最优,解未必是最优的;还是心里早已有一个最优的安排后(人生目标),允许牺牲/放弃短暂的眼前收益呢?
这一点发人深思,这也是我最感兴趣的地方。
而且这种思想还可以延伸到我们研究的管理研究领域,也改变了过去很多观点和看法,比如:
我曾经坚信运用数学模型、数据以及相关的数学量化的方法和工具可以实现管理问题的最优解,经过此次了解,我逐渐改变了我的观点(尽管原来学习博弈论课程探究完全和完美信息对决策的影响时就已经有这种改变的趋势,但这种趋势并不明显,因为它并不直观和具体),很多问题都有一定的复杂度,有时甚至超出了人们求解能力的范围,因此把握问题求解可能性和解的质量二者的平衡就尤为重要了。
总之,处处需要平衡!
2.什么是启发式算法
启发式(Heuristics)是指“探索性的”,不过通常被翻译为“启发式”,然而我觉得发把Heuristics翻译为探索性的更加简单直观而易于理解。
初学者对启发式这个专业词语有点摸不着头脑或者第一直觉打不起兴趣,因而耽误了自己的学习兴趣的发掘和最佳的学习机会。
启发式算法(heuristicalgorithm)是相对于最优化算法提出的。
一个问题的最优算法求得该问题每个实例的最优解。
启发式算法可以这样定义:
一个基于直观或经验构造的算法,在可接受的花费(指计算时间和空间)下给出待解决组合优化问题每一个实例的一个可行解,该可行解与最优解的偏离程度一般不能被预计。
现阶段,启发式算法以仿自然体算法为主,主要有蚁群算法、模拟退火法、神经网络等。
计算机科学的两大基础目标,就是发现可证明其执行效率良好且可得最佳解或次佳解的算法。
而启发式算法则试图一次提供一或全部目标。
例如它常能发现很不错的解,但也没办法证明它不会得到较坏的解;它通常可在合理时间解出答案,但也没办法知道它是否每次都可以这样的速度求解。
精确和启发式算法
有时候人们会发现在某些特殊情况下,启发式算法会得到很坏的答案或效率极差,然而造成那些特殊情况的数据组合,也许永远不会在现实世界出现。
因此现实世界中启发式算法常用来解决问题。
启发式算法处理许多实际问题时通常可以在合理时间内得到不错的答案。
常见的启发式算法如下表所示:
传统启发式
元启发式
超启发式
经典代表
局部搜索
爬山法
贪心发
蚁群算法
遗传算法
粒子群算法
禁忌算法
模拟退火算法
人工神经网络
进化策略
进化规则
变邻域搜索
基于贪心策略的超启发式算法
基于随机选择的超启发式算法
基于学习的超启发式算法
基于元启发式算法的超启发式算法
可能本人介绍的不是很形象,因此摘抄了网上经典的一段描述几种常见搜索算法的例子来作为总结:
为了找出地球上最高的山,一群有志气的兔子们开始想办法。
(1)兔子朝着比现在高的地方跳去。
他们找到了不远处的最高山峰。
但是这座山不一定是珠穆朗玛峰。
这就是爬山法,它不能保证局部最优值就是全局最优值。
(2)兔子喝醉了。
他随机地跳了很长时间。
这期间,它可能走向高处,也可能踏入平地。
但是,他渐渐清醒了并朝他踏过的最高方向跳去。
这就是模拟退火。
(3)兔子们知道一个兔的力量是渺小的。
他们互相转告着,哪里的山已经找过,并且找过的每一座山他们都留下一只兔子做记号。
他们制定了下一步去哪里寻找的策略。
这就是禁忌搜索。
(4)兔子们吃了失忆药片,并被发射到太空,然后随机落到了地球上的某些地方。
他们不知道自己的使命是什么。
但是,如果你过几年就杀死一部分海拔低的兔子,多产的兔子们自己就会找到珠穆朗玛峰。
这就是遗传算法。
3.启发式算法的发展历史
谈到启发式算法,它已经有很长的发展历史,自从有了启发式算法,人们能够解决很多之前很难求解的问题在很短的时间内,尤其是伴随着计算机性能的飞速发展,启发式的威力更加凸显无疑。
我们大致将启发式算法的发展阶段按照年代进行划分如下:
40年代:
由于实际需要,人们已经提出了一些解决实际问题快速有效的启发式算法。
50年代:
启发式算法的研究逐步繁荣起来。
随后,人们将启发式算法的思想和人工智能领域中的各种有关问题的求解的收缩方法相结合,提出了许多启发式的搜索算法。
其中贪婪算法和局部搜索等到人们的关注。
60年代:
随着人们对数学模型和优化算法的研究越来越重视,发现以前提出的启发式算法速度很快,但是解得质量不能保证。
虽然对优化算法的研究取得了很大的进展,但是较大规模的问题仍然无能为力(计算量还是太大)。
70年代:
计算复杂性理论的提出。
NP完全理论告诉我们,许多实际问题不可能在合理的时间范围内找到全局最优解。
发现贪婪算法和局部搜索算法速度快,但解不好的原因主要是他们只是在局部的区域内找解,得到的解不能保证全局最优性。
由此必须引入新的搜索机制和策略,才能有效地解决这些困难问题,这就导致了超启发式算法(meta-heuristicalgorithms)的产生。
Holland模拟地球上生物进化规律提出了遗传算法(GeneticAlgorithm),它的与众不同的搜索机制引起了人们再次引发了人们研究启发式算法的兴趣,从而掀起了研究启发式算法的热潮。
80年代以后:
模拟退火算法(SimulatedAnnealingAlgorithm),人工神经网络(ArtificialNeuralNetwork),禁忌搜索(TabuSearch)相继出现。
最近,演化算法(EvolutionaryAlgorithm),蚁群算法(AntAlgorithms),拟人拟物算法,量子算法等油相继兴起,掀起了研究启发式算法的高潮。
由于这些算法简单和有效,而且具有某种智能,因而成为科学计算和人类之间的桥梁。
4.启发式算法特性和不足
尽管启发式算法能力非常强大,几乎可以说每种启发式算法都能独当一面并取得很好的效果。
但是仍然存在一些客观的局限如下:
1.启发式算法目前缺乏统一而完整的理论体系。
由于每种启发式算法作用发挥好了都很强大,均能解决很多问题,因而导致现阶段启发式算法山头林立,其中研究的学者并没有多少全部涉足研究的,因而导致启发式算法缺乏像其他成熟理论体系那样的完整和体系化。
2.由于NP理论,各种启发式算法都不可避免的遭遇到局部最优的问题,如何判断以及如何跳出局部最优。
3.各种启发式算法都有个自优点如何,如何将各种启发式的有点互相借鉴和完美整合。
4.启发式算法中的参数对算法的效果起着至关重要的作用,如何有效设置参数。
5.启发算法缺乏有效的迭代停止条件。
6.启发式算法收敛速度的研究等。
5.几种经典的启发式算法
首先,我们介绍一下爬山法,算法思想:
爬山算法即是模拟爬山的过程,随机选择一个位置爬山,每次朝着更高的方向移动,直到到达山顶,即每次都在临近的空间中选择最优解作为当前解,直到局部最优解。
这样算法会陷入局部最优解,能否得到全局最优解取决于初始点的位置。
初始点若选择在全局最优解附近,则就可能得到全局最优解。
爬山算法是一种局部择优的方法,采用启发式方法,是对深度优先搜索的一种改进,它利用反馈信息帮助生成解的决策。
属于人工智能算法的一种。
过程:
从当前的节点开始,和周围的邻居节点的值进行比较。
如果当前节点是最大的,那么返回当前节点,作为最大值(既山峰最高点);反之就用最高的邻居节点来,替换当前节点,从而实现向山峰的高处攀爬的目的。
如此循环直到达到最高点。
其优点:
避免遍历,通过启发选择部分节点,从而达到提高效率的目的。
缺点:
因为不是全面搜索,所以结果可能不是最佳。
爬山算法一般存在以下问题:
1)局部最大:
某个节点比周围任何一个邻居都高,但是它却不是整个问题的最高点。
2)高地:
也称为平顶,搜索一旦到达高地,就无法确定搜索最佳方向,会产生随机走动,使得搜索效率降低。
3)山脊:
搜索可能会在山脊的两面来回震荡,前进步伐很小。
其次,不得不提局部搜素算法,因为它吸取着爬山算法和贪心思想的精髓而后面有很多算法都是在其的基础上进行改进和扩展而来的,那么下面我们介绍一下局部搜素算法(LocalSearchAlgorithm简称LSA)。
LSA是指为解决最优化问题的一种启发式算法。
对于某些计算起来非常复杂的最优化问题,比如各种NP完全问题,要找到最优解需要的时间随问题规模呈指数增长,因此诞生了各种启发式算法来退而求其次寻找次优解,是一种近似算法(Approximatealgorithms),以时间换精度的思想。
局部搜索就是其中的一种方法。
邻域动作是一个函数,通过这个函数,对当前解s,产生其相应的邻居解集合。
例如:
对于一个bool型问题,其当前解为:
s=1001,当将邻域动作定义为翻转其中一个bit时,得到的邻居解的集合N(s)={0001,1101,1011,1000},其中N(s)∈S。
同理,当将邻域动作定义为互换相邻bit时,得到的邻居解的集合N(s)={0101,1001,1010}。
简要谈一下局部搜素的发展历史,LSA是由爬山法改进而来的。
更具体地说,局部搜索算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。
在计算机科学中,局部搜索是解决最优化问题的一种元启发式算法。
局部搜索从一个初始解出发,然后搜索解的邻域,如有更优的解则移动至该解并继续执行搜索,否则返回当前解。
1、局部搜索算法的基本思想:
在搜索过程中,始终选择当前点的邻居中与离目标最近者的方向搜索。
2、局部搜索的优点:
简单、灵活及易于实现,缺点是容易陷入局部最优且解的质量与初始解和邻域的结构密切相关。
常见的改进方法有模拟退火、禁忌搜索等。
3、局部搜索广泛应用:
计算机科学(主要是人工智能)、数学、运筹学、工程学、生物信息学中各种很难找到全局最优解的计算问题。
为了克服局部搜素的局限性(容易陷入局部最优且解的质量与初始解的位置及其邻域结构非常相关),因此众多计算机科学家在局部搜索算法的基础上构造了变邻域搜索算法(VNSA)、禁忌算法、模拟退火算法。
首先,禁忌算法(TS)通过增加一个灵活的存储结构和相应的禁忌规则从而实现规避在局部搜索中导致陷入局部最优下反复搜索以至于陷入死循环,不能自拔。
举一个例子:
当你有一天早上正打算出门,这时你发现你的钥匙竟然不见了,此时你可能会努力地回忆,钥匙到底在哪个角落(可能在床上、床头柜上、沙发上亦或者在厨房)此时此刻,你会开始你的搜寻工作流程,首先你把存在的可能性进行排序,然后逐一排查,最后,你发现经过你的查找竟然还是没有找到,如果你不假思索你可能会一遍又一遍地重复地查找下去(因为可能你会认为是自己检查地不仔细),从而一直在原地打转,而其实钥匙可能就放在家门旁边的鞋柜上(可能是你换鞋的时候,把钥匙暂时放在上面忘了拿起来而已)。
而如果你够机智的话,你会找完这些你最有可能放在的地方后重新搜寻新的地方,扩大搜寻面积,从而有利于最终能够找到你的钥匙。
如果依旧没有找到,那你再继续搜寻原来查找过的地方。
(有可能真的是自己大意或者查找的不仔细而忽视了钥匙就放在床头柜上)这就是禁忌算法的核心思想,并且这个例子告诉我们不能死盯着一些老地方,要灵活一点,一没查找到,就要考虑换位置(但是依然没找到的情况下可以以一定的周期返回来找),可以用网络流行语概括:
“在不忘老情人的情况下,尽可能地雨露均沾”。
对搜索性能有影响的因素
禁忌长度
控制其他变量,单就禁忌长度的选择而言,禁忌长度越短,机器内存占用越少,解禁范围更大(搜索范围上限越大),但很容易造成搜索循环(实际去搜索的范围却很小),过早陷入局部最优。
禁忌长度过长又会导致计算时间过长。
特赦规则
通俗定义:
对于在禁忌的对象,如果出现以下情况,不论现在对象的禁忌长度如何,均设为0。
(1)基于评价值的规则,若出现一个解的目标值好于前面任何一个最佳候选解,可特赦;
(2)基于最小错误的规则,若所有对象都被禁忌,特赦一个评价值最小的解;
(3)基于影响力的规则,可以特赦对目标值影响大的对象。
候选集
候选集的大小,过大增加计算内存和计算时间,过小过早陷入局部最优。
候选集的选择一般由邻域中的邻居组成,可以选择所有邻居,也可以选择表现较好的邻居,还可以随机选择几个邻居。
评价函数
评价函数分为直接评价函数和间接评价函数。
直接评价函数:
上述例子,均直接使用目标值作为评价函数。
间接评价函数:
反映目标函数特性的函数(会比目标函数的计算更为简便,用以减少计算时间等)。
终止规则
禁忌算法是一个启发式算法,我们不可能让搜索过程无穷进行,所以一些直观的终止规则就出现了
(1)确定步数终止,无法保证解的效果,应记录当前最优解;
(2)频率控制原则,当某一个解、目标值或元素序列的频率超过一个给定值时,终止计算;
(3)目标控制原则,如果在一个给定步数内,当前最优值没有变化,可终止计算。
其次,变邻域搜索算法(VNSA)就是一种改进型的局部搜索算法。
它利用不同的动作构成的邻域结构进行交替搜索,在集中性和疏散性之间达到很好的平衡。
其思想可以概括为“变则通”。
变邻域搜索算法依赖于以下事实:
1)一个邻域结构的局部最优解不一定是另一个邻域结构的局部最优解。
2)全局最优解是所有可能邻域的局部最优解。
变邻域搜索算法主要由以下两个部分组成:
1)VARIABLENEIGHBORHOODDESCENT(VND)
1.1)当在本邻域搜索找不出一个比当前解更优的解的时候,我们就跳到下一个邻域继续进行搜索。
如图中虚黑线所示。
1.2)当在本邻域搜索找到了一个比当前解更优的解的时候,我们就跳回第一个邻域重新开始搜索。
如图中红线所示。
2)SHAKINGPROCEDURE
其实,说白了就是一个扰动算子,类似于邻域动作的这么一个东西。
通过这个算子,可以产生不同的邻居解。
虽然名词很多看起来很高大上,扰动、抖动、邻域动作这几个本质上还是没有什么区别的。
都是通过一定的规则,将一个解变换到另一个解而已。
模拟退火算法(SAA)是指模拟统计物理中固体物质的结晶过程。
模拟退火来自冶金学的专有名词退火。
退火是将材料加热后再经特定速率冷却,目的是增大晶粒的体积,並且減少晶格中的缺陷。
材料中的原子原来会停留在使内能有局部最小值的位置,加热使能量变大,原子会离开原来位置,而随机在其他位置中移动。
退火冷却时速度较慢,使得原子有较多可能可以找到内能比原先更低的位置。
模拟退火的原理也和金属退火的原理近似:
我们将热力学的理论套用到统计学上,将搜索空间内每一点想象成空气内的分子;分子的能量,就是它本身的动能;而搜索空间内的每一點,也像空气分子一样带有“能量”,以表示该点对命题的合適程度。
算法先以搜索空间内一个任意点作起始:
每一步先选择一个“邻居”,然后再计算从现有位置到达“邻居”的概率。
在退火的过程中,如果搜索到好的解接受;否则,以一定的概率接受不好的解(即实现多样化或变异的思想),达到跳出局部最优解得目的。
然而,模拟退火本质上也是一种贪心算法,但是它的搜索过程引入了随机因素。
在迭代更新可行解时,以一定的概率来接受一个比当前解要差的解,因此有可能会跳出这个局部的最优解,达到全局的最优解。
以下图为例,假定初始解为左边蓝色点A,模拟退火算法会快速搜索到局部最优解B,但在搜索到局部最优解后,不是就此结束,而是会以一定的概率接受到左边的移动。
也许经过几次这样的不是局部最优的移动后会到达全局最优点D,于是就跳出了局部最小值。
模拟退火算法的优缺点
模拟退火算法的应用很广泛,可以高效地求解NP完全问题,如货郎担问题(TravellingSalesmanProblem,简记为TSP)、最大截问题(MaxCutProblem)、0-1背包问题(ZeroOneKnapsackProblem)、图着色问题(GraphColouringProblem)等等,但其参数难以控制,不能保证一次就收敛到最优值,一般需要多次尝试才能获得(大部分情况下还是会陷入局部最优值)。
观察模拟退火算法的过程,发现其主要存在如下三个参数问题:
(1)温度T的初始值设置问题
温度TT的初始值设置是影响模拟退火算法全局搜索性能的重要因素之一、初始温度高,则搜索到全局最优解的可能性大,但因此要花费大量的计算时间;反之,则可节约计算时间,但全局搜索性能可能受到影响。
(2)退火速度问题,即每个TT值的迭代次数
模拟退火算法的全局搜索性能也与退火速度密切相关。
一般来说,同一温度下的“充分”搜索是相当必要的,但这也需要计算时间。
循环次数增加必定带来计算开销的增大。
(3)温度管理问题
温度管理问题也是模拟退火算法难以处理的问题之一。
实际应用中,由于必须考虑计算复杂度的切实可行性等问题,常采用如下所示的降温方式:
T=α×T.α∈(0,1).
注:
为了保证较大的搜索空间,α一般取接近于1的值,如0.95、0.9。
遗传算法(GA)是从代表问题可能潜在的解集的一个种群(population)开始的,而一个种群则由经过基因(gene)编码的一定数目的个体(individual)组成。
每个个体实际上是染色体(chromosome)带有特征的实体。
染色体作为遗传物质的主要载体,即多个基因的集合,其内部表现(即基因型)是某种基因组合,它决定了个体的形状的外部表现,如黑头发的特征是由染色体中控制这一特征的某种基因组合决定的。
因此,在一开始需要实现从表现型到基因型的映射即编码工作。
由于仿照基因编码的工作很复杂,我们往往进行简化,如二进制编码。
初代种群产生之后,按照适者生存和优胜劣汰的原理,逐代(generation)演化产生出越来越好的近似解,在每一代,根据问题域中个体的适应度(fitness)大小选择(selection)个体,并借助于自然遗传学的遗传算子(geneticoperators)进行组合交叉(crossover)和变异(mutation),产生出代表新的解集的种群。
这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境,末代种群中的最优个体经过解码(decoding),可以作为问题近似最优解。
大体实现过程
遗传算法中每一条染色体,对应着遗传算法的一个解决方案,一般我们用适应性函数(fitnessfunction)来衡量这个解决方案的优劣。
所以从一个基因组到其解的适应度形成一个映射。
遗传算法的实现过程实际上就像自然界的进化过程那样。
下面就简单介绍一下具体流程,以方便大家理解:
1.首先寻找一种对问题潜在解进行“数字化”编码的方案。
(建立表现型和基因型的映射关系)
2.随机初始化一个种群,种群里面的个体就是这些数字化的编码。
3.接下来,通过适当的解码过程之后。
4.用适应性函数对每一个基因个体作一次适应度评估。
5.用选择函数按照某种规定择优选择(每隔一段时间,删除一些解的质量较差的一批解,以总体解的数目持平)。
6.让个体基因变异。
7.然后产生子代(希望留下来的都是质量较好的解,这样它们就能够产生更多后代)。
轮盘赌思想:
染色体交叉:
二进制交叉:
变异--基因突变(Mutation)
遗传算法中的变异运算,是指将个体染色体编码串中的某些基因座上的基因值用该基因座上的其它等位基因来替换,从而形成新的个体。
例如下面这串二进制编码:
101101001011001
经过基因突变后,可能变
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 启发式 算法 研究 小结