Ⅰ 元启发式算法和启发式算法有什么区别
启发式算法与元启发式算法对区别在于是否存在“随机因素”。 对一个同样的问题,启发式算法(heuristics)只要给定了一个输入,那么算法执行的步骤就固定下来了,输出也因此固定,多次运算结果保持一致。
而元启发式算法(meta-heuristics)里面包括了随机因素,如GA中的交叉因子,模拟退火中的metropolis准则,这些随机因素也使得算法有一定概率跳出局部最优解而去尝试全局最优解,因此元启发式算法在固定的输入下,而输出是不固定的。
启发式算法(Heuristic Algorigthm)是一种基于直观或经验构造的算法,在可接受的花费(指计算时间、计算空间等)给出待解决优化问题的每一实例的一个可行解,该可行解与与最优解的偏离程度一般不可以事先预计。
启发式算法是一种技术,这种算法可以在可接受的计算费用内找到最好的解,但不一定能保证所得到解的可行性及最优性,甚至大多数情况下无法阐述所得解与最优解之间的近似程度。
元启发式算法(MetaHeuristic Algorigthm)是启发式算法的改进,它是随机算法与局部搜索算法相结合的产物,常见的启发式算法包括遗传算法、模拟退火算法、禁忌搜索算法及神经网络算法等。
新兴的元启发式算法有、粒子群优化算法、差分进化算法,蚁群优化算法、萤火虫算法、布谷鸟算法、和声搜索算法、差分进化算法、随机蛙跳算法、细菌觅食算法、蝙蝠算法的算法等。
Ⅱ 启发式算法
什么是算法?从枚举到贪心再到启发式(上)
目标 :要优化的东西
决策 :根据目标做出的决策
约束 :进行决策时必须遵循的条件
算例 :问题参数的具体化
枚举法 :将问题所有的解一一枚举出来,挨个去评价,选出最好的那个
1.枚举法能够找到问题的最优解
2.枚举法求解时间随问题规模增长而呈爆炸式增长
贪心法 :利用“构造”的方式生成解,速度相对而言会非常快,同时不会随着问题规模的增长而大幅度增加,是平缓的线性增长
什么是算法?从枚举到贪心再到启发式(下)
启发式算法 :在一个合理的求解资源范围内(合理的时间,合理的内存开销等)求得一个较为满意的解。目前主要包括邻域搜索和群体仿生两大类。
解空间 :所有该问题的解的集合,包括可行解和不可行解
局部搜索 :不完全遍历解空间,只选择一部分进行遍历,进而大大降低搜索需要的资源。为了提高局部搜索的质量,大部分局部搜索算法都会在搜索的时候不断地抓取多个区域进行搜索,直到满足算法终止条件。
邻域 :在邻域结构定义下的解的集合,它是一个相对的概念,即邻域肯定是基于某个解产生的
邻居解 :邻域内某个解的称呼
邻域结构 :定义了一个解的邻域
邻域结构的设计在启发式算法中非常重要,它直接决定了搜索的范围,对最终的搜索结构有着重要的影响,直接决定了最终结果质量的好坏
搜索过程
不断重复步骤2-步骤5,直到满足终止条件,最后输出全局最优解
所有的启发式找到的都是满意解,不能说是最优解(即便真的是),因为它遍历的是解空间的局部。
一般情况下,启发式算法的时间是随着问题规模增长而呈线性增长的
干货 | 想学习优化算法,不知从何学起?
邻域搜索类
迭代局部搜索算法
模拟退火算法
变邻域搜索算法
禁忌搜索
自适应大邻域搜索
群体仿生类
遗传算法
蚁群算法
粒子群算法
人工鱼群算法
算法应用
禁忌搜索算法求解带时间窗的车辆路径问题
基于树表示法的变邻域搜索算法求解考虑后进先出的取派货旅行商问题
变邻域搜索算法求解Max-Mean dispersion problem
遗传算法求解混合流水车间调度问题
Ⅲ 元启发式算法的算法原理
1. 从一个或多个候选解开始作为初始值(pop(t))。
2. 根据初始值计算目标函数值
3. 基于已获得的信息,通过个体变异、组合等方法不断更新候选解域。
4. 新的候选解域进入下一轮迭代(pop(t+1))
如下图:
例如它常能发现很不错的解,但也没办法证明它不会得到较坏的解;它通常可在合理时间解出答案,但也没办法知道它是否每次都可以这样的速度求解。有时候人们会发现在某些特殊情况下,启发式算法会得到很坏的答案或效率极差,然而造成那些特殊情况的数据结构,也许永远不会在现实世界出现。因此现实世界中启发式算法常用来解决问题。启发式算法处理许多实际问题时通常可以在合理时间内得到不错的答案。有一类的通用启发式策略称为元启发式算法(metaheuristic algorithm) ,通常使用乱数搜寻技巧。他们可以应用在非常广泛的问题上,但不能保证效率。
Ⅳ 什么是启发式算法
什么是启发式算法
大自然是神奇的,它造就了很多巧妙的手段和运行机制。受大自然的启发,人们从大自然的运行规律中找到了许多解决实际问题的方法。对于那些受大自然的运行规律或者面向具体问题的经验、规则启发出来的方法,人们常常称之为启发式算法(HeuristicAlgorithm)。现在的启发式算法也不是全部来自然的规律,也有来自人类积累的工作经验。驾驶汽车到达某人的家,写成算法是这样的:沿167 号高速公路往南行至阳谷;从阳谷高速出口出来后往山上开4.5 英里;在一个杂物店旁边的红绿灯路口右转,接着在第一个路口左转;从左边褐色大房子的车道进去,就是某人的家。启发式方法来描述则可能是这样:找出上一次我们寄给你的信,照着信上面的寄出地址开车到这个镇;到了之后你问一下我们的房子在哪里。这里每个人都认识我们—顶肯定有人会很愿意帮助你的;如果你找不到人,那就找个公共电话亭给我们打电话,我们会出来接你。
什么是启发式算法
建议你去了解下a*算法吧
简而言之就是会有一个评估函数进行评价以辅助选出最优接
经典的启发式算法包括哪些? 5分
蚁群,模拟退火,禁忌搜索,人工神经网络等。。。
推荐教材《现代优化计算方法》第二版 邢文训,谢金星 清华大学出版社
另一本补充,《最优化理论与方法》 黄平 清华大学出版社
第一本教材网上有电子版,你自己搜下
对 启发式算法的理解
什么是启发式算法转自:p:blog.csdn/aris_zzy/archive/2006/05/27/757156.aspx引言:
解决实际的问题,要建模型,在求解。求解要选择算法,只有我们对各种算法的优缺点都很熟悉后才能根据实际问题选出有效的算法。但是对各种算法都了如指掌是不现实的,但多知道一些,会使你的选择集更大,找出最好算法的概率越大。现在研一,要开题了些点文献综述,愿与大家分享。大自然是神奇的,它造就了很多巧妙的手段和运行机制。受大自然的启发,人们从大自然的运行规律中找到了许多解决实际问题的方法。对于那些受大自然的运行规律或者面向具体问题的经验、规则启发出来的方法,人们常常称之为启发式算法(Heuristic Algorithm)。现在的启发式算法也不是全部来自然的规律,也有来自人类积功的工作经验。启发式算法的发展:
启发式算法的计算量都比较大,所以启发式算法伴随着计算机技术的发展,取得了巨大的成就。
40年代:由于实际需要,提出了启发式算法(快速有效)。
50年代:逐步繁荣,其中 贪婪算法和局部搜索 等到人们的关注。
60年代: 反思,发现以前提出的启发式算法速度很快,但是解得质量不能保证,而且对大规
模的问题仍然无能为力(收敛速度慢)。启发式算法的不足和如何解决方法:
(水平有限 仅仅提出6点)
启发式算法目前缺乏统一、完整的理论体系。
很难解决! 启发式算法的提出就是根据经验提出,没有什么坚实的理论基础。
由于NP理论,启发式算法就解得全局最优性无法保证。
等NP?=P有结果了再说吧,不知道这个世纪能不能行。
各种启发式算法都有个自优点如何,完美结合。
如果你没有实际经验,你就别去干这个,相结合就要做大量尝试,或许会有意外的收获。
启发式算法中的参数对算法的效果起着至关重要的作用,如何有效设置参数。
还是那句话,这是经验活但还要悟性,只有try again………..
启发算法缺乏有效的迭代停止条件。
还是经验,迭代次数100不行,就200,还不行就1000…………
还不行估计就是算法有问题,或者你把它用错地方了………..
启发式算法收敛速度的研究等。
你会发现,没有完美的东西,要快你就要付出代价,就是越快你得到的解也就远差。其中(4)集中反映了超启发式算法的克服局部最优的能力。虽然人们研究对启发式算法的研究将近50年,但它还有很多不足:1.启发式算法目前缺乏统一、完整的理论体系。2.由于NP理论,各种启发式算法都不可避免的遭遇到局部最优的问题,如何判断3.各种启发式算法都有个自优点如何,完美结合。4.启发式算法中的参数对算法的效果起着至关重要的作用,如何有效设置参数。5.启发算法缺乏有效的迭代停止条件。6.启发式算法收敛速度的研究等。
70年代:计算复杂性理论的提出,NP问题。许多实际问题不可能在合理的时间范围内找到全局最优解。发现贪婪算法和局部搜索算法速度快,但解不好的原因主要是他们只是在局部的区域内找解,等到的解没有全局最优性。
由此必须引入新的搜索机制和策略………..
Holland的遗传算法出现了(Genetic Algorithm)再次引发了人们研究启发式算法的
兴趣。
80年代以后:
模拟退火算法(Simulated Annealing Algorithm),人工神经网络(Artificial Neural Network),禁忌搜索(Tab......
什么是启发式算法(转)
启发式方法(试探法)是一种帮你寻求答案的技术,但它给出的答案是具有偶然性的(subjecttochance),因为启发式方法仅仅告诉你该如何去找,而没有告诉你要找什么。它并不告诉你该如何直接从A点到达B点,它甚至可能连A点和B点在哪里都不知道。实际上,启发式方法是穿着小丑儿外套的算法:它的结果不太好预测,也更有趣,但不会给你什么30
天无效退款的保证。
驾驶汽车到达某人的家,写成算法是这样的:沿167
号高速公路往南行至Puyallup;从SouthHillMall出口出来后往山上开4.5
英里;在一个杂物店旁边的红绿灯路口右转,接着在第一个路口左转;从左边褐色大房子的车道进去,就是NorthCedar路714号。
用启发式方法来描述则可能是这样:找出上一次我们寄给你的信,照着信上面的寄出地址开车到这个镇;到了之后你问一下我们的房子在哪里。这里每个人都认识我们——肯定有人会很愿意帮助你的;如果你找不到人,那就找个公共电话亭给我们打电话,我们会出来接你。
从上面的启发式算法的解释可以看出,启发式算法的难点是建立符合实际问题的一系列启发式规则。启发式算法的优点在于它比盲目型的搜索法要高效,一个经过仔细设计的启发函数,往往在很快的时间内就可得到一个搜索问题的最优解,对于NP问题,亦可在多项式时间内得到一个较优解。
启发式算法的最短路径
所谓的最短路径问题有很多种意思, 在这里启发式指的是一个在一个搜寻树的节点上定义的函数h(n),用于评估从此节点到目标节点最便宜的路径。启发式通常用于资讯充分的搜寻算法,例如最好优先贪婪算法与A*。最好优先贪婪算法会为启发式函数选择最低代价的节点;A*则会为g(n) + h(n)选择最低代价的节点,此g(n)是从起始节点到目前节点的路径的确实代价。如果h(n)是可接受的(admissible)意即h(n)未曾付出超过达到目标的代价,则A*一定会找出最佳解。最能感受到启发式算法好处的经典问题是n-puzzle。此问题在计算错误的拼图图形,与计算任两块拼图的曼哈顿距离的总和以及它距离目的有多远时,使用了本算法。注意,上述两条件都必须在可接受的范围内。
什么启发式算法可以短时间求到最优解
马踏棋盘的问题很早就有人提出,且早在1823年,J.C.Warnsdorff就提出了一个有名的算法。在每个结点对其子结点进行选取时,优先选择‘出口’最小的进行搜索,‘出口’的意思是在这些子结点中它们的可行子结点的个数
启发式算法的新算法
如何找到一个分叉率较少又通用的合理启发式算法,已被人工智能社群深入探究过。 他们使用几种常见技术:部分问题的解答的代价通常可以评估解决整个问题的代价,通常很合理。例如一个10-puzzle拼盘,解题的代价应该与将1到5的方块移回正确位置的代价差不多。通常解题者会先建立一个储存部份问题所需代价的模式数据库(pattern database)以评估问题。 解决较易的近似问题通常可以拿来合理评估原先问题。例如曼哈顿距离是一个简单版本的n-puzzle问题,因为我们假设可以独立移动一个方块到我们想要的位置,而暂不考虑会移到其他方块的问题。 给我们一群合理的启发式函式h1(n),h2(n),...,hi(n),而函式h(n) = max{h1(n),h2(n),...,hi(n)}则是个可预测这些函式的启发式函式。 一个在1993年由A.E. Prieditis写出的程式ABSOLVER就运用了这些技术,这程式可以自动为问题产生启发式算法。ABSOLVER为8-puzzle产生的启发式算法优于任何先前存在的!而且它也发现了第一个有用的解魔术方块的启发式程式。
启发式算法的概括内容
计算机科学的两大基础目标,就是发现可证明其执行效率良好且可得最佳解或次佳解的算法。而启发式算法则试图一次提供一或全部目标。 例如它常能发现很不错的解,但也没办法证明它不会得到较坏的解;它通常可在合理时间解出答案,但也没办法知道它是否每次都可以这样的速度求解。有时候人们会发现在某些特殊情况下,启发式算法会得到很坏的答案或效率极差,然而造成那些特殊情况的数据组合,也许永远不会在现实世界出现。因此现实世界中启发式算法常用来解决问题。启发式算法处理许多实际问题时通常可以在合理时间内得到不错的答案。有一类的通用启发式策略称为元启发式算法(metaheuristic),通常使用乱数搜寻技巧。他们可以应用在非常广泛的问题上,但不能保证效率。近年来随着智能计算领域的发展,出现了一类被称为超启发式算法(Hyper-Heuristic Algorithm)的新算法类型。最近几年,智能计算领域的着名国际会议(GECCO 2009, CEC 2010,PPSN 2010)[1]分别举办了专门针对超启发式算法的workshop或session。从GECCO 2011开始,超启发式算法的相关研究正式成为该会议的一个领域(self* search-new frontier track)。国际智能计算领域的两大着名期刊Journal of Heuristics和Evolutionary putation也在2010年和2012年分别安排了专刊,着重介绍与超启发式算法有关的研究进展。
什么是启发式
这两天在看关于民航调度的文章,很多文章中都提到“启发式”算法,感觉和智能算法类似,那到底算法呢?我找到如下的一些我认为比较好的解释:------------------------------------------------------------------------------------------------------------------------A heuristic (hyu-'ris-tik) is the art and science of discovery and invention. The word es from the same Greek root as "eureka" meaning "to find". A heuristic for a given problem is a way of directing your attention fruitfully to a solution. It is different from an algorithm in that a heuristic merely serves as a rule-of-thumb or guideline, as opposed to an invariant procere. Heuristics may not always achieve the desired oute, but can be extremely valuable to problem-solving processes. Good heuristics can dramatically rece the time required to solve a problem by eliminating the need to consider unlikely possibilities or irrelevant states. As such, it is particularly useful to those in the process of discovery and the are constantly rethinking their strategies in the face of a stubborn unknown.--------------------------------------------------------------------------------------------------------------------------启发式方法(试探法)是一种帮你寻求答案的技术,但它给出的答案是具有偶然性的(subject to chance),因为启发式方法仅仅告诉你该如何去找,而没有告诉你要找什么。它并不告诉你该如何直接从A 点到达B 点,它甚至可能连A点和B点在哪里都不知道。实际上,启发式方法是穿着小丑儿外套的算法:它的结果不太好预测,也更有趣,但不会给你什么30 天无效退款的保证。 驾驶汽车到达某人的家,写成算法是这样的:沿167 号高速公路往南行至Puyallup;从South Hill Mall 出口出来后往山上开4.5 英里;在一个杂物店旁边的红绿灯路口右转,接着在第一个路口左转;从左边褐色大房子的车道进去,就是North Cedar 路714 号。用启发式方法来描述则可能是这样:找出上一次我们......
Ⅳ 元启发式算法中针对问题的灵敏度分析是否有意义
都是人工智能
Ⅵ 智能优化算法:自私羊群优化算法
@[toc]
摘要:自私羊群优化 (Selfish Herds optimization,SHO) 算法是由 Fausto 于 2017 年提出的元启发式算法。该算法主要模拟羊群受到捕食者攻击时的自私行为(尽量聚集到牧群中心远离捕食者),它具有易于理解和实施的特点。
SHO 算法它主要基于汉密尔顿提出的自私群理论来模拟猎物与捕食者之间的狩猎关系。当群体中的个体受到捕食者的攻击时,为了增加生存机会,群体中的个体产生聚集行为,个体更有可能移动到相对安
全的位置(群体的中心位置),并且群体的边缘个体更容易受到攻击,这也导致群体的边缘个体逃离群体,以增加他们被捕食者攻击时的生存机会。该方法假设整个平原是一个解空间,该算法包含两个不同的搜索因子:被狩猎群和狩猎群。每个搜索因子通过一组不同的进
化算子指导算法的计算,以便更好地模拟猎物与捕食者关系之间的关系。
假设自私羊群体优化算法的群体集合是 ,它包含 个种群个体,种群中的每一个体被定义为 ,其代表个体在种群中的位置信息,n 代表解决方案的大小。整个种群组的初始化公式如下:
其中 和 分别表示解空间的下限和上限。算法参数值的范围: 和 。 表示随机函数,生成值的范围落在区间[0,1]内。
在自私羊群优化算法中,整个种群 被分为两个子群: 和 代表一群猎物, 代表一群捕食者。在自然界中,猎物的数量通常多于捕食者的数量。在 SHO 中,猎物 的数量占总个体的 70%~90% ( ) ,其余的个体被认为是捕食者 ( ) 。 和 按以下公式计算:
其中, 表示一个随机数,其值范围为 0.7到 0.9, 表示将实数转换为整数的函数。
在 SHO 中,为整个种群 ( ) 的每个体 ( ) 分配一个生存值 ( ) ,其代表个体的生存能力,有机会在攻击中生存或成功杀死攻击中的猎物。生存价值的数学公式定义如下:
其中, 代表目标函数, 和 分别代表目标函数的最佳值和最差值。对 70%~90%的猎物计算生存价值,生存价值最高的为猎物领袖,生存价值越低的为最容易被捕获的猎物。
基于 SHO 的算法的结构主要包括四个方面:① 猎物(被捕食者)领袖的运动;② 猎物追随者的跟随运动或逃脱运动;③ 捕食者的狩猎运动;④ 捕食阶段和恢复阶段。
猎物的领导者被定义为猎物种群中最大的生存价值。定义公式如下:
猎物领袖的位置更新如下:
代表区间[0,1]之间的随机数, 越大,位置更新越快,捕获的猎物越多; 越小,捕获的猎物越少。 代表个体之间的吸引力, 代表猎物的相对危险位置, 与 定义如下:
在猎物种群中,猎物追随者分为跟随猎物 ( ) 和逃生猎物 ( ) ,跟随猎物又分为优势猎物 ( ) 和下属猎物 ( ) 。其定义如下:
其中 代表猎物生存价值的平均值,定义如下:
跟随猎物的位置更新公式如下:
其中, 表示区间[0,1]内的随机数形式, 表示局部最优个体, 表示猎物的相对安全位置,其定义如下:
其中 代表猎物个体之间的欧几里德距离。逃生猎物的位置更新公式如下:
其中, 表示全局最优位置, 和 表示在区间[0,1]内的随机数, 表示距离猎物领袖位置, 越小,表示距离越近; 表示控制随机偏移值的长短, 越小,表示偏移值越小。 表示空间解中的随机方向。
在捕食者种群中,捕食者的位置更新公式如下:
其中, 代表区间[0,1]之间的随机数, 值越大,位置更新越远,越容易忽略猎物。 是基于捕食概率从猎物种群中随机选择的猎物,捕食概率 定义如下:
表示捕食者和猎物之间的吸引力,吸引力的数学公式定义如下:
其中 代表 和 之间的欧几里德距离。
捕食阶段:每个猎物都有一个危险的区域,如果它属于这个领域,很可能被捕食者捕杀。危险域通常是一个圆,其半径定义为:
危险区域的猎物收集定义如下:
猎物在危险区域被猎杀的概率定义如下:
恢复阶段:在 SHO 中,被捕食者猎杀的所有猎物都将被新生的猎物所取代,新的猎物将通过交配操作产生,SHO通过交配概率选择交配猎物,其定义如下:
其中 代表一群没有被捕食者捕杀的猎物集,交配操作定义如下:
函数 用于从不同个体 中选择维度组件。
算法流程如下:
1.Input
2.Begin
3.利用公式初始化所有个体 S
4.定义羊群成员和捕食者的个数,利用公式(1)并将S 分为两组:H 与 P
5.For entire S do
6.利用公式(3)计算生存值
7.End For
8.While(t <Max number of iterations)
9.执行自私羊群移动操作
[1] Fausto F,Cuevas E,Valdivia A,et al.A global optimization
algorithm inspired in the behavior of selfish herds[J].
BioSystems,2017,160:39-55.
[2] 朱惠娟,王永利,陈琳琳.面向三维模型轻量化的自私羊群优化算法研究[J].计算机工程与应用,2020,56(03):42-48.
https://mianbaoo.com/o/bread/aJicmJ0=
Ⅶ 有关启发式算法(Heuristic Algorithm)的一些总结
节选自维基网络:
启发法 ( heuristics ,源自古希腊语的εὑρίσκω,又译作:策略法、助发现法、启发力、捷思法)是指 依据有限的知识 (或“不完整的信息”)在短时间内找到问题解决方案的一种技术。
它是一种依据 关于系统的有限认知 和 假说 从而得到关于此系统的结论的分析行为。由此得到的解决方案有可能会偏离最佳方案。通过与最佳方案的对比,可以确保启发法的质量。
计算机科学的两大基础目标,就是 发现可证明其运行效率良好 且可 得最佳解或次佳解 的算法。
而启发式算法则 试图一次提供一个或全部目标 。例如它常能发现很不错的解, 但也没办法证明它不会得到较坏的解 ; 它通常可在合理时间解出答案,但也没办法知道它是否每次都可以这样的速度求解。
有时候人们会发现在某些特殊情况下,启发式算法会得到很坏的答案或效率极差, 然而造成那些特殊情况的数据结构,也许永远不会在现实世界出现 。
因此现实世界中启发式算法很常用来解决问题。启发式算法处理许多实际问题时通常可以在合理时间内得到不错的答案。
有一类的 通用启发式策略称为元启发式算法(metaheuristic) ,通常使用随机数搜索技巧。他们可以应用在非常广泛的问题上,但不能保证效率。
节选自网络:
启发式算法可以这样定义:一个 基于直观或经验构造 的算法, 在 可接受的花费(指计算时间和空间)下给出待解决组合优化问题每一个实例的一个可行解 , 该可行解与最优解的偏离程度一般不能被预计。 现阶段,启发式算法以仿自然体算法为主,主要有蚁群算法、模拟退火法、神经网络等。
目前比较通用的启发式算法一般有模拟退火算法(SA)、遗传算法(GA)、蚁群算法(ACO)。
模拟退火算法(Simulated Annealing, SA)的思想借鉴于固体的退火原理,当固体的温度很高的时候,内能比较大,固体的内部粒子处于快速无序运动,当温度慢慢降低的过程中,固体的内能减小,粒子的慢慢趋于有序,最终,当固体处于常温时,内能达到最小,此时,粒子最为稳定。模拟退火算法便是基于这样的原理设计而成。
求解给定函数的最小值:其中,0<=x<=100,给定任意y的值,求解x为多少的时候,F(x)最小?
遗传算法(Genetic Algorithm, GA)起源于对生物系统所进行的计算机模拟研究。它是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,借鉴了达尔文的进化论和孟德尔的遗传学说。其本质是一种 高效、并行、全局搜索 的方法,能在搜索过程中自动获取和积累有关搜索空间的知识,并 自适应 地控制搜索过程以求得最佳解。
给定一组五个基因,每一个基因可以保存一个二进制值 0 或 1。这里的适应度是基因组中 1 的数量。如果基因组内共有五个 1,则该个体适应度达到最大值。如果基因组内没有 1,那么个体的适应度达到最小值。该遗传算法希望 最大化适应度 ,并提供适应度达到最大的个体所组成的群体。
想象有一只蚂蚁找到了食物,那么它就需要将这个食物待会蚂蚁穴。对于这只蚂蚁来说,它并不知道应该怎么回到蚂蚁穴。
这只蚂蚁有可能会随机选择一条路线,这条路可能路程比较远,但是这只蚂蚁在这条路上留下了记号(一种化学物质,信息素)。如果这只蚂蚁继续不停地搬运食物的时候,有其它许多蚂蚁一起搬运的话,它们总会有运气好的时候走到更快返回蚂蚁穴的路线。当蚂蚁选择的路线越优,相同时间内蚂蚁往返的次数就会越多,这样就在这条路上留下了更多的信息素。
这时候,蚂蚁们就会选择一些路径上信息素越浓的,这些路径就是较优的路径。当蚂蚁们不断重复这个过程,蚂蚁们就会更多地向更浓的信息素的路径上偏移,这样最终会确定一条路径,这条路径就是最优路径。