当前位置:首页 » 操作系统 » 社会进化算法

社会进化算法

发布时间: 2022-04-28 22:18:24

① 高分寻达人分别介绍下遗传算法和演化算法,以及之间的联系和区别

根据阅读的资料,大概有以下判断:
遗传算法是演化算法中的一种。

遗传算法(Genetic Algorithm)是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法。它是由美国的J.Holland教授1975年首先提出,其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。遗传算法的这些性质,已被人们广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域。它是现代有关智能计算中的关键技术。

遗传算法是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型。它的思想源于生物遗传学和适者生存的自然规律,是具有“生存+检测”的迭代过程的搜索算法。遗传算法以一种群体中的所有个体为对象,并利用随机化技术指导对一个被编码的参数空间进行高效搜索。其中,选择、交叉和变异构成了遗传算法的遗传操作;参数编码、初始群体的设定、适应度函数的设计、遗传操作设计、控制参数设定五个要素组成了遗传算法的核心内容。 作为一种新的全局优化搜索算法,遗传算法以其简单通用、鲁棒性强、适于并行处理以及高效、实用等显着特点,在各个领域得到了广泛应用,取得了良好效果,并逐渐成为重要的智能算法之一。

遗传算法是基于生物学的,理解或编程都不太难。下面是遗传算法的一般算法:
创建一个随机的初始状态

初始种群是从解中随机选择出来的,将这些解比喻为染色体或基因,该种群被称为第一代,这和符号人工智能系统的情况不一样,在那里问题的初始状态已经给定了。

评估适应度

对每一个解(染色体)指定一个适应度的值,根据问题求解的实际接近程度来指定(以便逼近求解问题的答案)。不要把这些“解”与问题的“答案”混为一谈,可以把它理解成为要得到答案,系统可能需要利用的那些特性。

繁殖(包括子代突变)

带有较高适应度值的那些染色体更可能产生后代(后代产生后也将发生突变)。后代是父母的产物,他们由来自父母的基因结合而成,这个过程被称为“杂交”。

下一代

如果新的一代包含一个解,能产生一个充分接近或等于期望答案的输出,那么问题就已经解决了。如果情况并非如此,新的一代将重复他们父母所进行的繁衍过程,一代一代演化下去,直到达到期望的解为止。

并行计算

非常容易将遗传算法用到并行计算和群集环境中。一种方法是直接把每个节点当成一个并行的种群看待。然后有机体根据不同的繁殖方法从一个节点迁移到另一个节点。另一种方法是“农场主/劳工”体系结构,指定一个节点为“农场主”节点,负责选择有机体和分派适应度的值,另外的节点作为“劳工”节点,负责重新组合、变异和适应度函数的评估。
http://ke..com/view/45853.html

演化算法:
这部分的研究主要是提供具有演化特征的算法,已知的遗传算法是其中之一。许多新的算法正在研究中。由于遗传算法的整体搜索策略和优化计算时不依赖于梯度信息,所以它的应用非常广泛,尤其适合于处理传统搜索方法难以解决的高度复杂的非线性问题。人工生命研究的重要内容就是进化现象,遗传算法是研究进化现象的重要方法之一
我国学者接触这个领域较晚,目前尚未形成声势和有规模的研究队伍。1997年夏天,在中科院基础局、国家科委基础司及中国国际经济及技术交流中心的支持下,由中科院系统科学所和自动化研究所举办了第一次人工生命及进化机器人研讨会[20]。与会者约60人。除去邀请了五位国际知名学者的学术报告之外,国内也有数名学者介绍了相关的研究成果。主要在数字生命、复杂巨系统方面进行了一些研究。据目前了解到的情况,国内尚有一些人在研究演化算法,在人工智能的一本书上有一段介绍人工生命。但对人工社会、人工生态环境及进化机器人等尚无人问津。
http://blog.ustc.e.cn/chujx/archives/000925.html

② 智能计算/计算智能、仿生算法、启发式算法的区别与关系

我一个个讲好了,
1)启发式算法:一个基于直观或经验构造的算法,在可接受的花费(指计算时间和空间)下给出待解决组合优化问题每一个实例的一个可行解,该可行解与最优解的偏离程度不一定事先可以预计。意思就是说,启发式算法是根据经验或者某些规则来解决问题,它求得的问题的解不一定是最优解,很有可能是近似解。这个解与最优解近似到什么程度,不能确定。相对于启发式算法,最优化算法或者精确算法(比如说分支定界法、动态规划法等则能求得最优解)。元启发式算法是启发式算法中比较通用的一种高级一点的算法,主要有遗传算法、禁忌搜索算法、模拟退火算法、蚁群算法、粒子群算法、变邻域搜索算法、人工神经网络、人工免疫算法、差分进化算法等。这些算法可以在合理的计算资源条件下给出较高质量的解。
2)仿生算法:是一类模拟自然生物进化或者群体社会行为的随机搜索方法的统称。由于这些算法求解时不依赖于梯度信息,故其应用范围较广,特别适用于传统方法难以解决的大规模复杂优化问题。主要有:遗传算法、人工神经网络、蚁群算法、蛙跳算法、粒子群优化算法等。这些算法均是模仿生物进化、神经网络系统、蚂蚁寻路、鸟群觅食等生物行为。故叫仿生算法。
3)智能计算:也成为计算智能,包括遗传算法、模拟退火算法、禁忌搜索算法、进化算法、蚁群算法、人工鱼群算法,粒子群算法、混合智能算法、免疫算法、神经网络、机器学习、生物计算、DNA计算、量子计算、模糊逻辑、模式识别、知识发现、数据挖掘等。智能计算是以数据为基础,通过训练建立联系,然后进行问题求解。
所以说,你接触的很多算法,既是仿生算法,又是启发式算法,又是智能算法,这都对。分类方法不同而已。

这次楼主不要再老花了哈!

③ 进化的演化思想史

早在古希腊时代,类似演化的思想已经出现,例如阿那克西曼德认为人类祖先来自海中。到了18世纪与19世纪,就已经有许多关于生命起源来自共同祖先的观念。建立生物学的拉马克,是第一位为演化提出科学理论的科学家。而达尔文与华莱士所提出,以天择为主要机制的演化论,成为第一个具有说服力的解释。在达尔文发表着作并成名之后,有许多先前尚未发表,发展较少的类似理论被发现。此外,达尔文在当时还未知任何遗传机制,因此他无法解释为何不同世代具有不同特征。尤其当时流行子代的性状为两位亲代性状混合的概念,使得任何变异理论上似乎会逐渐消失。
孟德尔发现遗传性状的分离现象,解决了原本性状混合的难题,然而一开始却受到忽略。而且原本遗传学家并不接受达尔文的天择观念,而是以突变作为演化原动力。直至20世纪,数学家罗纳德?费雪、生物学家莱特(SewallWright)与霍尔登(J.B.S.Haldane)才建立了群体遗传学,并与演化论结合。再加上汤玛斯·摩根、特奥多修斯·多布然斯基、朱利安、赫胥黎、恩斯特·麦尔、乔治·辛普森、斯特宾斯(G.L.Stebbins)等人的研究,又称为新达尔文主义的现代综合理论在1920年到1940年代开始成形。
至于详细的遗传机制,则要等到埃弗里发现核酸为遗传物质,以及华生与克里克,根据富兰克林(RosalindFranklin)的研究,发表脱氧核糖核酸双螺旋结构,以及分子生物学的建立之后。
到了1960年代,许多生物学家开始以基因中心演化观点探讨演化过程。道金斯更认为,基因是唯一的天择单位。此外还有汉弥尔顿提出以利他行为为基础的亲属选择。与之同时,古尔德与艾崔奇对演化的速率重新诠释,提出疾变平衡论,认为生物的演化速度是长期的停滞与短暂的爆发所组合。之后演化生物学成形,并且发展出许多分支。 演化生物学是研究演化的主要学门,探讨物种的起源和改变,以及物种之间的亲缘关系。这些研究影响了传统的分类学,并导致系统分类学的出现。演化发育生物学(evo-devo)比较不同动物在发育过程中的变化,由此探讨它们之间的关系与演化过程。体质人类学专注于人类的起源与演化,并探讨人种的差异,又称为生物人类学。
为了更深入研究演化过程与机制的细节,许多相关的分支学门产生。例如生态遗传、人类演化、分子演化与种系发生。由于生物学是奠基在其它更基础的自然科学之上,因此数学、统计学、物理学与化学对于了解演化机制也相当重要。例如为基因流、基因漂变等现象提供数学模式的群体遗传学,研究在演化动力影响下,等位基因的分布和改变。
遗传算法则是应用演化与遗传的各种机制,并结合电脑的运算能力来解决许多问题。应用的层面包含工程、设计与通讯科技等。 有些演化研究专注在社会性生物上,称为社会演化学。例如汉弥尔顿提出亲属选择,解释利他行为与邪恶的存在。不久之后,艾德华·威尔森出版的《社会生物学:新综合》,解释了社会性生物的各种行为,并在最后讨论套用在人类行为的可能性。
1976年,道金斯在《自私的基因》一书中,认为人类的文化也能以演化解释 。他根据基因(gene)这个词,将文化的演化单位称为迷因(meme、在中文也被音译为迷米),类似遗传因子的基因,迷因为文化的遗传因子,也经由复制(模仿)、变异与选择的过程而演化。
社会演化学与迷因学的差异在于,社会演化仍然是一种基因中心观点,以遗传物质分子为天择单位,而迷因学则是以非基因的文化为天择单位。

④ 什么是粒子群算法

粒子群算法介绍(摘自http://blog.sina.com.cn/newtech)
优化问题是工业设计中经常遇到的问题,许多问题最后都可以归结为优化问题. 为了解决各种各样的优化问题,人们提出了许多优化算法,比较着名的有爬山法、遗传算法等.优化问题有两个主要问题:一是要求寻找全局最小点,二是要求有较高的收敛速度. 爬山法精度较高,但是易于陷入局部极小. 遗传算法属于进化算法( Evolutionary Algorithms) 的一种,它通过模仿自然界的选择与遗传的机理来寻找最优解. 遗传算法有三个基本算子:选择、交叉和变异. 但是遗传算法的编程实现比较复杂,首先需要对问题进行编码,找到最优解之后还需要对问题进行解码,另外三个算子的实现也有许多参数,如交叉率和变异率,并且这些参数的选择严重影响解的品质,而目前这些参数的选择大部分是依靠经验.1995 年Eberhart 博士和kennedy 博士提出了一种新的算法;粒子群优化(Partical Swarm Optimization -PSO) 算法 . 这种算法以其实现容易、精度高、收敛快等优点引起了学术界的重视,并且在解决实际问题中展示了其优越性.

粒子群优化(Partical Swarm Optimization - PSO) 算法是近年来发展起来的一种新的进化算法( Evolu2tionary Algorithm - EA) .PSO 算法属于进化算法的一种,和遗传算法相似,它也是从随机解出发,通过迭代寻找最优解,它也是通过适应度来评价解的品质. 但是它比遗传算法规则更为简单,它没有遗传算法的“交叉”(Crossover) 和“变异”(Mutation) 操作. 它通过追随当前搜索到的最优值来寻找全局最优 .

粒子群算法

1. 引言

粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation),有Eberhart博士和kennedy博士发明。源于对鸟群捕食的行为研究

PSO同遗传算法类似,是一种基于叠代的优化工具。系统初始化为一组随机解,通过叠代搜寻最优值。但是并没有遗传算法用的交叉(crossover)以及变异(mutation)。而是粒子在解空间追随最优的粒子进行搜索。详细的步骤以后的章节介绍

同遗传算法比较,PSO的优势在于简单容易实现并且没有许多参数需要调整。目前已广泛应用于函数优化,神经网络训练,模糊系统控制以及其他遗传算法的应用领域

2. 背景: 人工生命

"人工生命"是来研究具有某些生命基本特征的人工系统. 人工生命包括两方面的内容

1. 研究如何利用计算技术研究生物现象
2. 研究如何利用生物技术研究计算问题

我们现在关注的是第二部分的内容. 现在已经有很多源于生物现象的计算技巧. 例如, 人工神经网络是简化的大脑模型. 遗传算法是模拟基因进化过程的.

现在我们讨论另一种生物系统- 社会系统. 更确切的是, 在由简单个体组成的群落与环境以及个体之间的互动行为. 也可称做"群智能"(swarm intelligence). 这些模拟系统利用局部信息从而可能产生不可预测的群体行为

例如floys 和 boids, 他们都用来模拟鱼群和鸟群的运动规律, 主要用于计算机视觉和计算机辅助设计.

在计算智能(computational intelligence)领域有两种基于群智能的算法. 蚁群算法(ant colony optimization)和粒子群算法(particle swarm optimization). 前者是对蚂蚁群落食物采集过程的模拟. 已经成功运用在很多离散优化问题上.

粒子群优化算法(PSO) 也是起源对简单社会系统的模拟. 最初设想是模拟鸟群觅食的过程. 但后来发现PSO是一种很好的优化工具.

3. 算法介绍

如前所述,PSO模拟鸟群的捕食行为。设想这样一个场景:一群鸟在随机搜索食物。在这个区域里只有一块食物。所有的鸟都不知道食物在那里。但是他们知道当前的位置离食物还有多远。那么找到食物的最优策略是什么呢。最简单有效的就是搜寻目前离食物最近的鸟的周围区域。

PSO从这种模型中得到启示并用于解决优化问题。PSO中,每个优化问题的解都是搜索空间中的一只鸟。我们称之为“粒子”。所有的例子都有一个由被优化的函数决定的适应值(fitness value),每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索

PSO 初始化为一群随机粒子(随机解)。然后通过叠代找到最优解。在每一次叠代中,粒子通过跟踪两个"极值"来更新自己。第一个就是粒子本身所找到的最优解。这个解叫做个体极值pBest. 另一个极值是整个种群目前找到的最优解。这个极值是全局极值gBest。另外也可以不用整个种群而只是用其中一部分最为粒子的邻居,那么在所有邻居中的极值就是局部极值。

在找到这两个最优值时, 粒子根据如下的公式来更新自己的速度和新的位置

v[] = v[] + c1 * rand() * (pbest[] - present[]) + c2 * rand() * (gbest[] - present[]) (a)
present[] = persent[] + v[] (b)

v[] 是粒子的速度, persent[] 是当前粒子的位置. pbest[] and gbest[] 如前定义 rand () 是介于(0, 1)之间的随机数. c1, c2 是学习因子. 通常 c1 = c2 = 2.

程序的伪代码如下

For each particle
____Initialize particle
END

Do
____For each particle
________Calculate fitness value
________If the fitness value is better than the best fitness value (pBest) in history
____________set current value as the new pBest
____End

____Choose the particle with the best fitness value of all the particles as the gBest
____For each particle
________Calculate particle velocity according equation (a)
________Update particle position according equation (b)
____End
While maximum iterations or minimum error criteria is not attained

在每一维粒子的速度都会被限制在一个最大速度Vmax,如果某一维更新后的速度超过用户设定的Vmax,那么这一维的速度就被限定为Vmax

4. 遗传算法和 PSO 的比较

大多数演化计算技术都是用同样的过程
1. 种群随机初始化
2. 对种群内的每一个个体计算适应值(fitness value).适应值与最优解的距离直接有关
3. 种群根据适应值进行复制
4. 如果终止条件满足的话,就停止,否则转步骤2

从以上步骤,我们可以看到PSO和GA有很多共同之处。两者都随机初始化种群,而且都使用适应值来评价系统,而且都根据适应值来进行一定的随机搜索。两个系统都不是保证一定找到最优解

但是,PSO 没有遗传操作如交叉(crossover)和变异(mutation). 而是根据自己的速度来决定搜索。粒子还有一个重要的特点,就是有记忆。

与遗传算法比较, PSO 的信息共享机制是很不同的. 在遗传算法中,染色体(chromosomes) 互相共享信息,所以整个种群的移动是比较均匀的向最优区域移动. 在PSO中, 只有gBest (or lBest) 给出信息给其他的粒子,这是单向的信息流动. 整个搜索更新过程是跟随当前最优解的过程. 与遗传算法比较, 在大多数的情况下,所有的粒子可能更快的收敛于最优解

5. 人工神经网络 和 PSO

人工神经网络(ANN)是模拟大脑分析过程的简单数学模型,反向转播算法是最流行的神经网络训练算法。进来也有很多研究开始利用演化计算(evolutionary computation)技术来研究人工神经网络的各个方面。

演化计算可以用来研究神经网络的三个方面:网络连接权重,网络结构(网络拓扑结构,传递函数),网络学习算法。

不过大多数这方面的工作都集中在网络连接权重,和网络拓扑结构上。在GA中,网络权重和/或拓扑结构一般编码为染色体(Chromosome),适应函数(fitness function)的选择一般根据研究目的确定。例如在分类问题中,错误分类的比率可以用来作为适应值

演化计算的优势在于可以处理一些传统方法不能处理的例子例如不可导的节点传递函数或者没有梯度信息存在。但是缺点在于:在某些问题上性能并不是特别好。2. 网络权重的编码而且遗传算子的选择有时比较麻烦

最近已经有一些利用PSO来代替反向传播算法来训练神经网络的论文。研究表明PSO 是一种很有潜力的神经网络算法。PSO速度比较快而且可以得到比较好的结果。而且还没有遗传算法碰到的问题

这里用一个简单的例子说明PSO训练神经网络的过程。这个例子使用分类问题的基准函数(Benchmark function)IRIS数据集。(Iris 是一种鸢尾属植物) 在数据记录中,每组数据包含Iris花的四种属性:萼片长度,萼片宽度,花瓣长度,和花瓣宽度,三种不同的花各有50组数据. 这样总共有150组数据或模式。

我们用3层的神经网络来做分类。现在有四个输入和三个输出。所以神经网络的输入层有4个节点,输出层有3个节点我们也可以动态调节隐含层节点的数目,不过这里我们假定隐含层有6个节点。我们也可以训练神经网络中其他的参数。不过这里我们只是来确定网络权重。粒子就表示神经网络的一组权重,应该是4*6+6*3=42个参数。权重的范围设定为[-100,100] (这只是一个例子,在实际情况中可能需要试验调整).在完成编码以后,我们需要确定适应函数。对于分类问题,我们把所有的数据送入神经网络,网络的权重有粒子的参数决定。然后记录所有的错误分类的数目作为那个粒子的适应值。现在我们就利用PSO来训练神经网络来获得尽可能低的错误分类数目。PSO本身并没有很多的参数需要调整。所以在实验中只需要调整隐含层的节点数目和权重的范围以取得较好的分类效果。

6. PSO的参数设置

从上面的例子我们可以看到应用PSO解决优化问题的过程中有两个重要的步骤: 问题解的编码和适应度函数
PSO的一个优势就是采用实数编码, 不需要像遗传算法一样是二进制编码(或者采用针对实数的遗传操作.例如对于问题 f(x) = x1^2 + x2^2+x3^2 求解, 粒子可以直接编码为 (x1, x2, x3), 而适应度函数就是f(x). 接着我们就可以利用前面的过程去寻优.这个寻优过程是一个叠代过程, 中止条件一般为设置为达到最大循环数或者最小错误

PSO中并没有许多需要调节的参数,下面列出了这些参数以及经验设置

粒子数: 一般取 20 – 40. 其实对于大部分的问题10个粒子已经足够可以取得好的结果, 不过对于比较难的问题或者特定类别的问题, 粒子数可以取到100 或 200

粒子的长度: 这是由优化问题决定, 就是问题解的长度

粒子的范围: 由优化问题决定,每一维可是设定不同的范围

Vmax: 最大速度,决定粒子在一个循环中最大的移动距离,通常设定为粒子的范围宽度,例如上面的例子里,粒子 (x1, x2, x3) x1 属于 [-10, 10], 那么 Vmax 的大小就是 20

学习因子: c1 和 c2 通常等于 2. 不过在文献中也有其他的取值. 但是一般 c1 等于 c2 并且范围在0和4之间

中止条件: 最大循环数以及最小错误要求. 例如, 在上面的神经网络训练例子中, 最小错误可以设定为1个错误分类, 最大循环设定为2000, 这个中止条件由具体的问题确定.

全局PSO和局部PSO: 我们介绍了两种版本的粒子群优化算法: 全局版和局部版. 前者速度快不过有时会陷入局部最优. 后者收敛速度慢一点不过很难陷入局部最优. 在实际应用中, 可以先用全局PSO找到大致的结果,再有局部PSO进行搜索.

另外的一个参数是惯性权重, 由Shi 和Eberhart提出, 有兴趣的可以参考他们1998年的论文(题目: A modified particle swarm optimizer)

⑤ 达尔文认为医学王国养癌基因组48万美元成本太高,自然选择选择王国养健康优秀基因组18万美元成本低

混沌年度大课如期而至,话不多说,直接走进今天的文章吧。

我们今天的主题是“哲科摇滚 点亮创新”。哲科者,哲学和科学也。第一天我们讲科学点亮创新。大家可能会疑惑:原本给大家的课表第一部分是物理学,但今天讲的怎么是生物学?

凯文·凯利在《失控》里面有这样一段话,“钟表般的精确逻辑,也即机械逻辑,只能用来建造简单的装置,真正复杂的系统,如细胞、经济体或者大脑,都需要一种地道的非技术逻辑”。

什么样的非技术逻辑呢?这本写于20多年前的书这样写到:

“我们意识到,除了生物逻辑之外,没有任何一种逻辑能够让我们组装出一台能够自己思想的设备、甚至不可能组装出一套可以运行的大型系统。”

所以今天我们讲生物学,我把物理学完全放弃了。

一、进化算法:如何进行战略取舍,

今天我们要向一个人致敬。今天,这个世界对这个人的尊敬程度还不够高,这个人就是达尔文。

1.达尔文进化论

① 自身经历

1809年达尔文出生于英格兰,在他22岁那一年,他有机会搭乘小猎犬号去世界考察,大概有5年的时间,他一直在远洋考察。

也正是在这5年海上飘行的日子里,他逐渐形成了“进化论”的思想。所谓进化论的思想,讲的是会有新物种出现。

在他29岁那一年,他发现了进化论背后的机制——自然选择,也就是这时候,他的整个进化论思想及其机制已经形成了。

但那时候,社会有着强烈的宗教氛围,他的太太也是个虔诚的基督徒,他知道他的观点如果发表出来,会对周围的人、对宗教、对大学,甚至对他的家庭产生巨大的影响。

直到1859年,在他50岁那一年,由于另外一个学者也独立发现了自然选择学说,逼得达尔文把他的学说发表出去,就是着名的《物种起源》。它和牛顿1687年的《自然哲学的数学原理》,是之后的科学革命中最重要的两本着作。

生物学家卡罗尔讲了一句话,“生物学如果没有进化论,就好像物理学没有引力学说一样”。足见它的重要程度。

② 用公理化方法推导出第一性原理

达尔文用公理化方法推导出他的第一性原理,其中包括逻辑奇点:

第一,个体差异——遗传变异;

第二,生存竞争——自然选择。

在达尔文之前,我们整个人类对这个世界的理解都是简单性质的,是达尔文帮我们推开那扇门,告诉我们其实那个世界是一个复杂性的世界。

王东岳老师说:“从牛顿机械论到达尔文进化论,是一个新世界观的转化”。

《生物学思想及其发展历史》一书的作者迈尔被称为“二十世纪的达尔文”,他在书中写道,“达尔文的新模式,就其整体而言,代表了最先进的新世界观”。

哲学家丹尼特讲过这么一句话,“达尔文的进化论,其实是一种知识层面的宇宙算法,他几乎把所有的传统观念都消蚀掉,然后在之后留下一个革命性的世界观”。

王东岳老师说:“从牛顿机械论到达尔文进化论,是一个新世界观的转化”。

《生物学思想及其发展历史》一书的作者迈尔被称为“二十世纪的达尔文”,他在书中写道,“达尔文的新模式,就其整体而言,代表了最先进的新世界观”。

哲学家丹尼特讲过这么一句话,“达尔文的进化论,其实是一种知识层面的宇宙算法,他几乎把所有的传统观念都消蚀掉,然后在之后留下一个革命性的世界观”。

第一次,达尔文革命“废黜了人”,把人类包括在共同祖先的种系数之中,他剥夺了圣经赋予人在自然界中的特权地位。

第二次,达尔文革命“废黜了上帝”,通过对生物界一切现象做出完全唯物主义的解释,自然选择学说排除了任何形式的超自然力量。

我们用一句话来讲达尔文的根本思想,就是“存在没有设计师的设计”。所有这个世界,看起来像是有人精心设计出来一样,但事实上,哪有什么设计师。

如果你再往深里想一想这句话,会发现它非常之深刻,言外之意,那些最美好的设计其实都可以自己长出来,一种软性的、生命的、柔和的水一样的力量在流淌到我面前来。

所有这一切,达尔文证明起来极其之简洁,那公式简洁到你几乎不敢相信:变异+选择=进化。38年亿生物进化史,一个公式就解决了,堪称人类思维的奇迹。

不需要设计师,最后自己长出来的结果,比最好的设计师设计出来的结果还好。

在机械论里面,我们相信我创造的公司,我是那个驱动力量,在我做的产品里面,我相信我是设计者,我是产品的驱动力量。

但我们错了,我们创造出的那个产品自己有生命,如果你足够尊敬它,足够赋能于它,它自己会长出来,会变成一个生命,你只要协助它就行。

如果这个世界观真的能够touch(触碰)到你的话,我认为它是在黑暗当中,在不确定性当中,唯一能够带我们走出去的道路。你只需要放低自己,帮助它成长起来。大家要牢牢touch到这个意味。

其实,变异+选择=进化,这个公式其实并不完备,它还缺一个要素。第三个要素,达尔文也在他的书里提到过,但没有把它作为一级要素,那就是——隔离。

变异+选择+隔离=进化。

希望我已经表达清楚了。

2.进化算法与创新思维

① 进化算法

接下来,有一个问题:我们可否用进化算法指导创新实践?凯文·凯利指出,进化算法特别适合我们做3件事情:

第一,如何达到你想去却找不到路的领域?

第二,如何到达你无法想象到的领域?

第三,如何开辟全新的领域?

第一,如何达到你想去却找不到路的领域?

第二,如何到达你无法想象到的领域?

第三,如何开辟全新的领域?

② 创新思维

变异:自上而下,多样探索。

凯文·凯利在《失控》里讲到,“想要得到和生命真正类似的行为,不是设法创造出真正复杂的生物,而是给简单的生物提供一个极其丰饶的变异环境”。

这就是为什么我们从遗传变异中单独拿出变异的道理所在。达尔文进化论有个前提:变异的来源是无穷无尽的。变异为自然选择提供了原材料,如果没有丰富的个体差异,“自然选择将无所事事。”

在生物界变异有两大来源(甚至你可以类比一下,比如在你的企业里面):第一是基因突变,第二是基因重组。

基因重组我们特别熟悉,新生儿一半的基因来自父体,一半的基因来自母体。即便如此,还有60到100个基因会发生突变,大概是0.24%-0.4%。

基因的重组和突变,生物牺牲一半基因,只为换取新变异和多样性。

所以,当我们希望在企业内用进化论思想时,第一前提就是:企业内是否有足够丰富的变异。多样性是创新的来源,除非在企业中注入多样性,否则内生性增长很快就会消失。

但现实生活中恰恰相反,人们由于自己时空边界的束缚,相信中间值,不太喜欢多样性,忽视甚至讨厌变异体。

久而久之,企业内的变异素材不够,企业僵化,自然选择时效。这是大公司缺乏创新之根本原因。

例如,如果你是名校毕业的,当你选择你的高管团队时,会下意识去找名校毕业的人,组成你的高管团队。

如果你是一个草根出身的,你也会下意识按你的模样,去组织你的高管团队。

例如,如果你是名校毕业的,当你选择你的高管团队时,会下意识去找名校毕业的人,组成你的高管团队。

如果你是一个草根出身的,你也会下意识按你的模样,去组织你的高管团队。

现实生活当中,由于人类总是用自己的意识想控制着一切,让它被修理整齐。所以企业创新源缺少的第一原因就是,没有足够的多样性。因为我们不鼓励多样性。

⑥ 地下水管理模型研究现状

1959年,Todd在他的经典论着《Ground Water Hydrology》中明确提出了地下水管理的概念,20世纪60年代以来,迅速发展起来的地下水数值模拟模型大大推进了地下水的定量化研究[10]。“备选方案法”是一种比较简单的确定地下水管理方案的方法。通常给定多种条件(如开采方案),多次运行数值模拟模型,可以得到不同条件下的地下水状态,在给定的目标下,通过比较各种方案,可选择目标较优的方案作为决策方案,这是20世纪70年代以前最常用的优选地下水开发利用方案的方法。由于要多次运行模拟模型,比较不同方案下的地下水状态,这种方法耗时较多。这不是严格意义上的“最优解”,没有运用运筹学的方法全面、综合地考虑管理的目标和各种约束,从而得不到理论意义上的最优地下水开发利用方案。

地下水管理模型通常由地下水系统的数值模拟模型和优化模型耦合而成。Maddock[11]推导出地下水系统单位脉冲响应函数,提出了建立大规模地下水水力管理模型有效的方法——响应矩阵法。而Aguado和Remson[12]首次将地下水数值模拟模型与线性规划联立,明确提出了建立地下水水力管理模型的嵌入法。20世纪70年代到80年代初,国外以研究地下水水力管理模型为主,并提出了完善的理论和实用的建模方法,Gorelick[13]对分布参数地下水管理模型,特别是水力管理模型进行了综述。

我国科技人员于20世纪80年代中后期开始地下水管理模型的研究与应用工作,公开发表的论着如林学钰、焦雨着《石家庄市地下水资源的科学管理》[14],许涓铭等[15]系统论述了建立分布参数地下水水力管理模型的基本理论和方法。在这一阶段,我国几乎所有以地下水为主要供水水源的大城市,针对不同的问题,都建立了地下水管理模型,如石家庄、西安、哈尔滨、长春、济南、包头等。一些典型地区也建立了区域地下水管理模型,如河北平原、河西走廊、柴达木盆地等。这些研究大大推进了我国地下水科学管理的进程,但由于当时建模所考虑的因素多为水力要素,模型结构也比较简单,多归结为求解线性规划问题,这大大限制了模型的实用性和可操作性。

20世纪90年代以来,由于数值模拟和计算机技术以及数学方法在地下水资源优化开发方面的理论与方法日臻完善,使复杂的水资源管理问题得以有效的解决。这不但促进了地下水管理学科的迅速发展,并在推动水文地质学从定性研究进入定量化研究的过程中作出了应有的贡献。从模型的研究内容看,主要集中在地表水-地下水联合调度、地下水量-水质综合管理、地下水可持续利用管理模型的研究上;从模型的结构看,主要是以非线性规划、动态规划和多目标规划管理模型为研究的热点和难点问题。

1.2.2.1 地下水非线性管理模型研究进展

地下水管理模型的非线性问题是普遍存在的,产生非线性的原因主要有两个:其一是系统状态的非线性,如潜水含水层模拟模型的非线性;其二是管理问题的非线性,如目标函数和某些特殊约束条件的非线性。真实的地下水系统管理问题大多数是非线性的,因此非线性管理模型能更精确地描述这类地下水系统及其管理问题,因而提高模型结果的精度和可信度。由于非线性规划问题没有统一的模式,在可行域内有可能存在多个局部最优解,因而到目前为止,还没有通用的、高效的求解方法,要根据管理模型的结构特点和规模,选择合适的求解方法[10]

线性化是解决非线性问题最简单的方法,如Gorelick和Remson[16]、Ratzlaff[17]等都应用这种方法解决这类问题。迭代法也是解决非线性问题的有效方法之一,如Aguado和Remson[18]用预测-校正法通过反复迭代求解潜水含水层地下水管理问题;Willis 和Newman[19]用求解一系列线性规划替代非线性目标函数、线性约束条件的非线性规划问题。王洪涛提出了非线性多含水层地下水资源管理的处理方法,并把这一方法应用到唐山市以防治岩溶地面塌陷为目的的水资源管理中[20]

若非线性规划的目标函数是决策变量的二次多项式,并且模拟模型和其他约束条件又全是线性的,则称这种非线性规划为二次规划。二次规划有统一的表示形式和通用解法,是非线性管理模型中最常用的求解方法之一。如Lefkoff和Gorelick[21]、Misirli和Yazicigil[22]等均是用二次规划求解管理模型。

此外,常用于解非线性规划的方法还有直接搜索法(主要有修正单纯形法、Nelder-Mead单纯形法、并行方向搜索法)和基于导数的优化方法(如约束优化的隐式筛选法等)。人工智能算法(又称进化算法,evolutionary algorithms,EA)也为求解高度非线性规划问题开拓了广阔的前景。

1.2.2.2 地下水动态规划管理模型研究进展

地下水系统本身是一个高度复杂的动态系统。由于管理区的自然条件和人为作用等均在不断地发生变化,尤其当水源地的地下水要进行长期开采时,地下水资源管理模型必须随着时间推进做定期的修正以保证模型的精确性和可靠性,地下水动态规划管理模型的提法便应运而生[23]。这方面的研究可参阅有关文献,如Yakowitz,Andricevic[24,25]等。动态规划方法本身还不够完善,在高维的情况下会产生所谓的“维数灾”问题,目前在求解地下水动态规划管理模型中,用的较普遍的方法是微分动态规划方法,它是由Jacobson和Mayne[26]提出的。微分动态规划方法是一种多维动态规划的改进算法,不需要进行状态变量和决策变量的离散化,克服了计算量呈维数增长这一障碍。因此,它提供了一种解算大型、多时段、非稳态流的地下水资源管理模型的可行的分析计算方法[27]

Murry 等[28]运用带约束条件的微分动态规划方法成功地实现了多级水库的优化控制;Jones等[29]利用微分动态规划方法求解了最优控制模型,成功地解决了理想模型中8个假设井的最优开采量分配问题;Culver等[30]建立了地下水水质模拟模型并应用有限元法求解,通过应用微分动态规划方法和Quasi-Newton近似法,确定了含水层不同时期的最优抽水方案;Chang等[31]应用微分动态规划方法解决了时变地下水系统污染修复最优控制问题;Chang等[32]联合应用微分动态规划方法和遗传算法解决了地下水管理问题;Chu 等[33]应用人工神经网络方法和微分动态规划方法解决了大规模地下水系统的管理问题。我国学者李文渊等[34]建立了以抽水费用最小为目标的地下水管理模型,应用微分动态规划方法求解,并编制了计算机程序;郝永红等[35]结合阳泉市岩溶地下水系统的实际,应用微分动态规划方法为阳泉市岩溶水的开发提出了最优开采方案;王浩然[36]以位于山东省淄博市境内的孝妇河流域上游地区的地下水系统为研究对象,构造了地下水开采条件下的控制模型,采用微分动态规划方法求解,获得了比较符合实际且容易实施的地下水优化开采量。

1.2.2.3 地下水多目标管理模型研究进展

地下水多目标管理模型是以地下水模拟模型为基础,由两个或两个以上的目标函数及其约束条件组成的,用于对地下水进行统筹规划和有效保护的管理模型。地下水多目标管理模型更能体现地下水系统的层次性和多目标性,模型不仅能提供地下水合理开发利用最优方案,而且可作为宏观经济和环境规划的决策依据,因而更具实用性和可操作性[37]。由于多目标问题类型多,无统一的数学形式,故没有通用的求解方法。针对不同的管理模型和目标评价准则,应采用相应的解法。

20世纪70年代以来,多目标管理模型用于解决水资源的规划问题[38,39];80年代以后,随着对地下水系统研究的不断深入、地下水模拟技术及其与管理模型耦合技术的发展,多目标规划才出现在地下水管理问题中。Willis等[40]首次建立了地下水多目标管理模型;Bogardi等[41]采用一种交互式多目标决策方法求解地下水多目标管理问题,有三个目标函数:总抽水量最大、抽水降深最小以及总抽水费用最低;Ritzel等[42]用遗传算法求解多目标地下水污染控制问题;Park等[43]运用多目标遗传算法对沿海含水层中的抽水量和井位进行优化,以防止海水入侵;Kollat等[44]对4种多目标优化算法进行了对比研究;邵景力等[45,46]运用线性规划方法对包头市地下水多目标管理模型进行了求解,他们还建立了包头市地下水-地表水联合调度多目标管理模型,模型最终归结为求解线性目标规划问题;代振学等[47]建立了济宁-兖州矿区地下水多目标管理模型,采用模糊线性规划法求得了管理模型的最优解,最后通过灵敏度分析和流场模拟,证实了最优解的正确性;孟庆国等[48]进行了城市地下水多目标管理模型的相关研究,建立了内蒙古呼和浩特市地下水多目标管理模型,采用多阶段目标规划法对模型进行求解;王来生等[49]建立了哈尔滨市地下水资源多目标规划管理模型,将求解多目标最优化问题的约束法和线性加权法相结合,给出了一种综合解法;王红旗等[32]根据大庆市西部地区地下水系统的特点,构建了地下水资源多目标动态规划管理模型,采用多目标规划的改进线性加权法和微分动态规划方法相结合的方法进行求解,通过管理模型的运算得出三种规划方案下的地下水最优开采量,并根据管理模型的运算结果对研究区的地下水资源开发利用规划提出合理化建议;贺北方等[50]建立了区域水资源多目标优化配置模型,目标有3个:区域供水净效益最大、区域重要污染物排放量最小、供水系统缺水量最小,应用遗传算法求解了此管理模型。

与单目标管理模型相比,地下水多目标管理模型有如下特点[51]

(1)各目标间的度量单位多是不可公度的,有些目标甚至很难给出定量指标,如供水的社会效益、环境效应等。用单目标优化方法很难处理不可公度的多目标问题。

(2)各目标间的权益通常是相互矛盾的,这是构成多目标问题存在的基本特征。多目标问题总是以牺牲一部分目标的利益来换取另一些目标的改善。单一目标的最优并不代表系统整体最优。

(3)多目标问题的优化解不是唯一的。多目标规划的任务是考虑经济、社会、环境、技术等因素,权衡各目标的利弊,从多个“有效解”中寻求各目标都能接受的“满意解”。

(4)多目标规划可以充分发挥分析者和决策者各自的作用。在现代管理中,分析者的任务是根据决策者的要求建立管理模型,提供多个各有利弊的方案,作为决策者决策的依据。决策者的任务是站在更高的层次上,兼顾各方面利益,从众多可选方案中确定决策方案。

⑦ 神经科学会成为人工智能“超进化”的关键,是真的吗

AI与神经科学究竟有什么关系?神经科学究竟 怎样进一步助推人工智能发展?紧密结合神经科学的人工智能将产生什么转变?

神经科学和人工智能本属同源

提到人工智能和神经科学中间的关联,几句话来归纳:同源分流、学科独立;交叉融合、分久必合。

最开始,人工智能与神经科学是二门分别独立的学科,拥有不太一样的研究对象、研究思路管理体系。从学科发源的时间起点看来,人工智能学科以1956年美国达特茅斯学校夏天探讨班为起缘;而神经科学问世的标示能够 回溯到1891年的神经元理论。那样看神经科学算得上人工智能学科的“老前辈”。

将来二者紧密结合大有作为

那么,紧密结合神经科学的人工智能可能产生哪些转变呢?

现阶段神经科学与人工智能的融合,只占生物人的大脑测算基本原理的冰山一角。精确预知未来人工智能将怎样发展难以,但假如洞悉神经科学、人工智能的学科发展规律性和人类社会经济发展新趋势,粗略地刻画将来发展环节或是很有可能的,这针对选准自主创新突破点,确立自主创新主要方位十分重要。这也是包含在我国以内进行有关神经科学预测分析和技术预见的初心之一。

从当今到2025年,神经科学再次保持高速发展趋势,但颠覆性创新的基础理论成效还很少,在这里一时期,人工智能和云计算技术是神经科学发展的“网络加速器”。而到2030—2035年,神经科学将迈入第一轮重大进展,在神经系统认知和神经系统认知能力了解层面发生颠覆性创新成效,进而哺育、创新人工智能的原来优化算法基本和电子器件基本,人类社会发展进到实际性类脑智能科学研究环节。

到2050年,神经科学将迈入第二轮重大进展,在感情、观念了解层面发生颠覆性创新成效,开发设计出一个多限度、融合、验证的人的大脑实体模型基础理论,类脑智能进到全新升级,并将促进人的大脑的超生命的进化,神经科学和类脑智能学科融为一体,人类社会发展全方位进到强人工智能时期。自然,紧紧围绕神经科学和人工智能尤其是强人工智能,也有很多科学理论和社会发展与伦理道德层面的难题。

“大家坚信,将来神经科学行业大有作为、将来神经科学与人工智能融合大有作为。”从人类现代文明江河看来,神经科学和人工智能是同一枚硬币的2个面,尽管互不相关,但都是有一同的偏向:为人类的存活和观念演变给予新很有可能。

⑧ 如何用蚁群算法来计算固定时间内走更多的城市且路程最短

概念:蚁群算法(ant colony optimization,ACO),又称蚂蚁算法,是一种用来在图中寻找优化路径的机率型算法.它由Marco Dorigo于1992年在他的博士论文中提出,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为.蚁群算法是一种模拟进化算法,初步的研究表明该算法具有许多优良的性质.针对PID控制器参数优化设计问题,将蚁群算法设计的结果与遗传算法设计的结果进行了比较,数值仿真结果表明,蚁群算法具有一种新的模拟进化优化方法的有效性和应用价值
其原理:为什么小小的蚂蚁能够找到食物?他们具有智能么?设想,如果我们要为蚂蚁设计一个人工智能的程序,那么这个程序要多么复杂呢?首先,你要让蚂蚁能够避开障碍物,就必须根据适当的地形给它编进指令让他们能够巧妙的避开障碍物,其次,要让蚂蚁找到食物,就需要让他们遍历空间上的所有点;再次,如果要让蚂蚁找到最短的路径,那么需要计算所有可能的路径并且比较它们的大小,而且更重要的是,你要小心翼翼的编程,因为程序的错误也许会让你前功尽弃.这是多么不可思议的程序!太复杂了,恐怕没人能够完成这样繁琐冗余的程序
应用范围:蚂蚁观察到的范围是一个方格世界,蚂蚁有一个参数为速度半径(一般是3),那么它能观察到的范围就是3*3个方格世界,并且能移动的距离也在这个范围之内
引申:跟着蚂蚁的踪迹,你找到了什么?通过上面的原理叙述和实际操作,我们不难发现蚂蚁之所以具有智能行为,完全归功于它的简单行为规则,而这些规则综合起来具有下面两个方面的特点:1、多样性 2、正反馈 多样性保证了蚂蚁在觅食的时候不置走进死胡同而无限循环,正反馈机制则保证了相对优良的信息能够被保存下来.我们可以把多样性看成是一种创造能力,而正反馈是一种学习强化能力.正反馈的力量也可以比喻成权威的意见,而多样性是打破权威体现的创造性,正是这两点小心翼翼的巧妙结合才使得智能行为涌现出来了.引申来讲,大自然的进化,社会的进步、人类的创新实际上都离不开这两样东西,多样性保证了系统的创新能力,正反馈保证了优良特性能够得到强化,两者要恰到好处的结合.如果多样性过剩,也就是系统过于活跃,这相当于蚂蚁会过多的随机运动,它就会陷入混沌状态;而相反,多样性不够,正反馈机制过强,那么系统就好比一潭死水.这在蚁群中来讲就表现为,蚂蚁的行为过于僵硬,当环境变化了,蚂蚁群仍然不能适当的调整.既然复杂性、智能行为是根据底层规则涌现的,既然底层规则具有多样性和正反馈特点,那么也许你会问这些规则是哪里来的?多样性和正反馈又是哪里来的?我本人的意见:规则来源于大自然的进化.而大自然的进化根据刚才讲的也体现为多样性和正反馈的巧妙结合.而这样的巧妙结合又是为什么呢?为什么在你眼前呈现的世界是如此栩栩如生呢?答案在于环境造就了这一切,之所以你看到栩栩如生的世界,是因为那些不能够适应环境的多样性与正反馈的结合都已经死掉了,被环境淘汰了!蚁群算法的实现 下面的程序开始运行之后,蚂蚁们开始从窝里出动了,寻找食物;他们会顺着屏幕爬满整个画面,直到找到食物再返回窝.其中,‘F’点表示食物,‘H’表示窝,白色块表示障碍物,‘+’就是蚂蚁了.

⑨ 该不该读下去

该!!!不可以放弃!!!

不要用穷人思维去思考!!!

读书是你跨越阶级的最好阶梯。

社会中,两个最基本阶层,是穷人和富人。富人、穷人里又可以分成更加细化的等级。穷人是可以跨越阶级的,但是很难。读书是其中一条最廉价的捷径。穷人跨越阶级,最难突破的就是父母。父母是个人的起点,也是大部分人的天花板。中国这代人大部分比父母混的强,是因为父母被耽搁了,往后几代,未可知,欧美成熟发达社会,绝大部分孩子没法超过父母。一些父母一事无成,对孩子却要求很高,希望很大。但是孩子却非你所愿,父母没意识到,孩子是父母的复制品,孩子也是父母的镜子。有其父必有其子。孩子从父母那里继承了生理学意义上的基因,长得像你,还有社会学意义上的基因,做事和思考方式也很像你。对人最有影响的是学校教育,学习到科学和人文知识,不局限于所有知识来源于家长,但家庭对孩子的影响是决定性的。每个家庭都给自己孩子传授人生经验,富人和穷人会把自己的全部传授给下一代,对后代有潜移默化影响。大部分人从父母那里,并不能学到有用的生存技能,这种状态一直通过社会基因遗传。农业时代,读书机会是难得,不是所有人有受教育的机会。

古代整体遵循一种“进化算法”,每代人中择优培育,一个人发达了,大家一起跟着发达。现代文明优越在有义务教育。义务教育最早起源于德国,是后来德、美迅速赶超英国的杀手锏。德国最早开始普及义务教育,电力时代需要大量技术工人,不识字的人没法操作机器,注重教育,全民素质高的德国和美国后来居上,教育也是日本中国等后发国家的发展秘籍。义务教育强行在学校,搞爱国教育,培养国家意识。义务教育也打破“社会基因”,孩子在学校学习宇宙大爆炸,进化论,分子生物学等,就会相信科学而非迷信。在中国,考上大学,改变命运,突破了父母天花板,义务教育功不可没。在全世界范围内,物以类聚,人以群分,是一种能从数学上证明的“同质化分层”机制,跨越物种,跨越文明,都存在。假如你是穷人,离开家庭,不受家庭影响,但你的社会阶层决定你周围的人不是特别优秀,你从他们身上学不到太多东西,想成功你就要突破这个阶级。社会上存在可怕的同质化分层。社会初期都比较平等,慢慢就各个阶层形成明显界线。全世界古代现代都这样。以前的大学里,城乡孩子都有,差距不大,但2008年之后,是个明显分水岭,大学里农村出来的孩子越来越少。欧美已在稳定的制度下发展了几百年,社会变得非常稳定。我国稳定发展才三四十年,中产阶级一年在孩子身上花十几万几十万,教育演变成竞赛,都觉得努力一下还有希望进入富豪阶层。


未来,阶层状态会越来越严重,呈现圈子化,有的圈子里的人只需维持现状不坠落就可,有的圈子却需要不断向上突破。像有些人住在高楼层,只要维持不掉下来就行。有些却需要努力爬上去。


怎样跨越原生家庭局限,不以父母为天花板?

办法就是多读书。中国高考惨烈,因为所有人都看出来这是最廉价的向上突破途径,是第一个跨越阶层的机会。欧美大学学费越来越贵,英联邦等国把大学当创收工具。


怎样突破同质层分化,走出原有的低级圈层?

年轻时去大城市埋头苦干。越是小地方,越板块固化,阶层牢不可破。怎样克服消费枷锁,买到资产而不是消费?勤俭节约。这辈子没攒下钱,也给后辈传承好习惯,代代传承,东西方一样,每个豪门崛起,都需好几代人努力。


怎样克服习得性无助,变成一个积极的人?

跳出舒适区,去做那些难事。跳出思维,走出舒适区,也是保持心态年轻化的关键。社会中下层的人收入,都是固定工资,不太依赖运气;越往上层阶级,运气比例越大,经商很多时候依赖运气。富人收入中运气比例高。

如果有闲暇时间,可以发展运气行业。要从消费者向生产者的转变。如果一直做消费者,花自己时间和钱,玩别人的游戏,吃别人做的菜,永远别想翻身,你得让别人消费你的东西。互联网时代,生产者门槛降低,传播边际成本降低,不需要打广告也可推广自己产品的时代。消费,不一定是花钱,花时间也是消费。一个决定,可能对一个没资源、没动手能力的穷人没用,五年后可能彻底改变你的生活。一件事努力做了,不成功,有很多原因,但如果什么都没做,那就是不可饶恕的放弃了成功的机会。

⑩ 什么是蚂蚁算法详解!!

蚁群算法(ant colony optimization, ACO),又称蚂蚁算法,是一种用来在图中寻找优化路径的机率型技术。它由Marco Dorigo于1992年在他的博士论文中引入,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。
蚁群算法是一种模拟进化算法,初步的研究表明该算法具有许多优良的性质.针对PID控制器参数优化设计问题,将蚁群算法设计的结果与遗传算法设计的结果进行了比较,数值仿真结果表明,蚁群算法具有一种新的模拟进化优化方法的有效性和应用价值.
蚁群算法是一种求解组合最优化问题的新型通用启发式方法,该方法具有正反馈、分布式计算和富于建设性的贪婪启发式搜索的特点。通过建立适当的数学模型,基于故障过电流的配电网故障定位变为一种非线性全局寻优问题。由柳洪平创建。
预期的结果:
各个蚂蚁在没有事先告诉他们食物在什么地方的前提下开始寻找食物。当一只找到食物以后,它会向环境释放一种信息素,吸引其他的蚂蚁过来,这样越来越多的蚂蚁会找到食物!有些蚂蚁并没有象其它蚂蚁一样总重复同样的路,他们会另辟蹊径,如果令开辟的道路比原来的其他道路更短,那么,渐渐,更多的蚂蚁被吸引到这条较短的路上来。最后,经过一段时间运行,可能会出现一条最短的路径被大多数蚂蚁重复着。
原理:
为什么小小的蚂蚁能够找到食物?他们具有智能么?设想,如果我们要为蚂蚁设计一个人工智能的程序,那么这个程序要多么复杂呢?首先,你要让蚂蚁能够避开障碍物,就必须根据适当的地形给它编进指令让他们能够巧妙的避开障碍物,其次,要让蚂蚁找到食物,就需要让他们遍历空间上的所有点;再次,如果要让蚂蚁找到最短的路径,那么需要计算所有可能的路径并且比较它们的大小,而且更重要的是,你要小心翼翼的编程,因为程序的错误也许会让你前功尽弃。这是多么不可思议的程序!太复杂了,恐怕没人能够完成这样繁琐冗余的程序。
然而,事实并没有你想得那么复杂,上面这个程序每个蚂蚁的核心程序编码不过100多行!为什么这么简单的程序会让蚂蚁干这样复杂的事情?答案是:简单规则的涌现。事实上,每只蚂蚁并不是像我们想象的需要知道整个世界的信息,他们其实只关心很小范围内的眼前信息,而且根据这些局部信息利用几条简单的规则进行决策,这样,在蚁群这个集体里,复杂性的行为就会凸现出来。这就是人工生命、复杂性科学解释的规律!那么,这些简单规则是什么呢?下面详细说明:
1、范围:
蚂蚁观察到的范围是一个方格世界,蚂蚁有一个参数为速度半径(一般是3),那么它能观察到的范围就是3*3个方格世界,并且能移动的距离也在这个范围之内。
2、环境:
蚂蚁所在的环境是一个虚拟的世界,其中有障碍物,有别的蚂蚁,还有信息素,信息素有两种,一种是找到食物的蚂蚁洒下的食物信息素,一种是找到窝的蚂蚁洒下的窝的信息素。每个蚂蚁都仅仅能感知它范围内的环境信息。环境以一定的速率让信息素消失。
3、觅食规则:
在每只蚂蚁能感知的范围内寻找是否有食物,如果有就直接过去。否则看是否有信息素,并且比较在能感知的范围内哪一点的信息素最多,这样,它就朝信息素多的地方走,并且每只蚂蚁多会以小概率犯错误,从而并不是往信息素最多的点移动。蚂蚁找窝的规则和上面一样,只不过它对窝的信息素做出反应,而对食物信息素没反应。
4、移动规则:
每只蚂蚁都朝向信息素最多的方向移,并且,当周围没有信息素指引的时候,蚂蚁会按照自己原来运动的方向惯性的运动下去,并且,在运动的方向有一个随机的小的扰动。为了防止蚂蚁原地转圈,它会记住最近刚走过了哪些点,如果发现要走的下一点已经在最近走过了,它就会尽量避开。
5、避障规则:
如果蚂蚁要移动的方向有障碍物挡住,它会随机的选择另一个方向,并且有信息素指引的话,它会按照觅食的规则行为。
7、播撒信息素规则:
每只蚂蚁在刚找到食物或者窝的时候撒发的信息素最多,并随着它走远的距离,播撒的信息素越来越少。
根据这几条规则,蚂蚁之间并没有直接的关系,但是每只蚂蚁都和环境发生交互,而通过信息素这个纽带,实际上把各个蚂蚁之间关联起来了。比如,当一只蚂蚁找到了食物,它并没有直接告诉其它蚂蚁这儿有食物,而是向环境播撒信息素,当其它的蚂蚁经过它附近的时候,就会感觉到信息素的存在,进而根据信息素的指引找到了食物。
问题:
说了这么多,蚂蚁究竟是怎么找到食物的呢?
在没有蚂蚁找到食物的时候,环境没有有用的信息素,那么蚂蚁为什么会相对有效的找到食物呢?这要归功于蚂蚁的移动规则,尤其是在没有信息素时候的移动规则。首先,它要能尽量保持某种惯性,这样使得蚂蚁尽量向前方移动(开始,这个前方是随机固定的一个方向),而不是原地无谓的打转或者震动;其次,蚂蚁要有一定的随机性,虽然有了固定的方向,但它也不能像粒子一样直线运动下去,而是有一个随机的干扰。这样就使得蚂蚁运动起来具有了一定的目的性,尽量保持原来的方向,但又有新的试探,尤其当碰到障碍物的时候它会立即改变方向,这可以看成一种选择的过程,也就是环境的障碍物让蚂蚁的某个方向正确,而其他方向则不对。这就解释了为什么单个蚂蚁在复杂的诸如迷宫的地图中仍然能找到隐蔽得很好的食物。
当然,在有一只蚂蚁找到了食物的时候,其他蚂蚁会沿着信息素很快找到食物的。
蚂蚁如何找到最短路径的?这一是要归功于信息素,另外要归功于环境,具体说是计算机时钟。信息素多的地方显然经过这里的蚂蚁会多,因而会有更多的蚂蚁聚集过来。假设有两条路从窝通向食物,开始的时候,走这两条路的蚂蚁数量同样多(或者较长的路上蚂蚁多,这也无关紧要)。当蚂蚁沿着一条路到达终点以后会马上返回来,这样,短的路蚂蚁来回一次的时间就短,这也意味着重复的频率就快,因而在单位时间里走过的蚂蚁数目就多,洒下的信息素自然也会多,自然会有更多的蚂蚁被吸引过来,从而洒下更多的信息素……;而长的路正相反,因此,越来越多地蚂蚁聚集到较短的路径上来,最短的路径就近似找到了。也许有人会问局部最短路径和全局最短路的问题,实际上蚂蚁逐渐接近全局最短路的,为什么呢?这源于蚂蚁会犯错误,也就是它会按照一定的概率不往信息素高的地方走而另辟蹊径,这可以理解为一种创新,这种创新如果能缩短路途,那么根据刚才叙述的原理,更多的蚂蚁会被吸引过来。
引申
跟着蚂蚁的踪迹,你找到了什么?通过上面的原理叙述和实际操作,我们不难发现蚂蚁之所以具有智能行为,完全归功于它的简单行为规则,而这些规则综合起来具有下面两个方面的特点:
1、多样性
2、正反馈
多样性保证了蚂蚁在觅食的时候不置走进死胡同而无限循环,正反馈机制则保证了相对优良的信息能够被保存下来。我们可以把多样性看成是一种创造能力,而正反馈是一种学习强化能力。正反馈的力量也可以比喻成权威的意见,而多样性是打破权威体现的创造性,正是这两点小心翼翼的巧妙结合才使得智能行为涌现出来了。
引申来讲,大自然的进化,社会的进步、人类的创新实际上都离不开这两样东西,多样性保证了系统的创新能力,正反馈保证了优良特性能够得到强化,两者要恰到好处的结合。如果多样性过剩,也就是系统过于活跃,这相当于蚂蚁会过多的随机运动,它就会陷入混沌状态;而相反,多样性不够,正反馈机制过强,那么系统就好比一潭死水。这在蚁群中来讲就表现为,蚂蚁的行为过于僵硬,当环境变化了,蚂蚁群仍然不能适当的调整。
既然复杂性、智能行为是根据底层规则涌现的,既然底层规则具有多样性和正反馈特点,那么也许你会问这些规则是哪里来的?多样性和正反馈又是哪里来的?我本人的意见:规则来源于大自然的进化。而大自然的进化根据刚才讲的也体现为多样性和正反馈的巧妙结合。而这样的巧妙结合又是为什么呢?为什么在你眼前呈现的世界是如此栩栩如生呢?答案在于环境造就了这一切,之所以你看到栩栩如生的世界,是因为那些不能够适应环境的多样性与正反馈的结合都已经死掉了,被环境淘汰了!
参数说明:
最大信息素:蚂蚁在一开始拥有的信息素总量,越大表示程序在较长一段时间能够存在信息素。信息素消减的速度:随着时间的流逝,已经存在于世界上的信息素会消减,这个数值越大,那么消减的越快。
错误概率表示这个蚂蚁不往信息素最大的区域走的概率,越大则表示这个蚂蚁越有创新性。
速度半径表示蚂蚁一次能走的最大长度,也表示这个蚂蚁的感知范围。
记忆能力表示蚂蚁能记住多少个刚刚走过点的坐标,这个值避免了蚂蚁在本地打转,停滞不前。而这个值越大那么整个系统运行速度就慢,越小则蚂蚁越容易原地转圈。
蚁群算法的实现
下面的程序开始运行之后,蚂蚁们开始从窝里出动了,寻找食物;他们会顺着屏幕爬满整个画面,直到找到食物再返回窝。
其中,‘F’点表示食物,‘H’表示窝,白色块表示障碍物,‘+’就是蚂蚁了。
参数说明:
最大信息素:蚂蚁在一开始拥有的信息素总量,越大表示程序在较长一段时间能够存在信息素。信息素消减的速度:随着时间的流逝,已经存在于世界上的信息素会消减,这个数值越大,那么消减的越快。
错误概率表示这个蚂蚁不往信息素最大的区域走的概率,越大则表示这个蚂蚁越有创新性。
速度半径表示蚂蚁一次能走的最大长度,也表示这个蚂蚁的感知范围。
记忆能力表示蚂蚁能记住多少个刚刚走过点的坐标,这个值避免了蚂蚁在本地打转,停滞不前。而这个值越大那么整个系统运行速度就慢,越小则蚂蚁越容易原地转圈。

热点内容
如何把复制存储删了 发布:2024-10-04 21:07:59 浏览:202
我的解压神器 发布:2024-10-04 21:06:06 浏览:110
西门子编程100例 发布:2024-10-04 21:05:28 浏览:326
乐高机器人ev3编程 发布:2024-10-04 20:56:10 浏览:990
算法左神 发布:2024-10-04 20:23:55 浏览:910
lol手游如何配置技能 发布:2024-10-04 20:17:11 浏览:861
服务器两根心跳线ip一样吗 发布:2024-10-04 20:17:03 浏览:554
java无状态 发布:2024-10-04 20:15:40 浏览:729
电信为什么限制上传速度 发布:2024-10-04 20:11:28 浏览:816
编程哪个培训机构好 发布:2024-10-04 19:55:14 浏览:60