, }& l+ A/ z D% d 前面描述是简单的遗传算法模型,可以在这一基本型上加以改进,使其在科学和工程领域得到广泛应用。下面列举了一些遗传算法的应用领域: ① 优化:遗传算法可用于各种优化问题。既包括数量优化问题,也包括组合优化问题。 ② 程序设计:遗传算法可以用于某些特殊任务的计算机程序设计。 ③ 机器学习:遗传算法可用于许多机器学习的应用,包括分类问题和预测问题等。 ④ 经济学:应用遗传算法对;济创新的过程建立模型,可以研究投标的策略,还可以建立市场竞争的模型。 ⑤ 免疫系统:应用遗传算法可以对自然界中免疫系统的多个方面建立模型,研究个体的生命过程中的突变现象以及发掘进化过程中的基因资源。 ⑥ 进化现象和学习现象:遗传算法可以用来研究个体是如何学习生存技巧的,一个物种的进化对其他物种会产生何种影响等等。 ⑦ 社会经济问题:遗传算法可以用来研究社会系统中的各种演化现象,例如在一个多主体系统中,协作与交流是如何演化出来的。 / c. S/ G' L; L( m! t) N- V. w8 ~3 X2 s6 B0 n9 y8 t
4 模拟退火算法 9 w* A o( I k' k5 F
9 M( Y, e- B* [ 模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。根据Metropolis准则,粒子在温度T时趋于平衡的概率为e-ΔE/(kT),其中E为温度T时的内能,ΔE为其改变量,k为Boltzmann常数。用固体退火模拟组合优化问题,将内能E模拟为目标函数值f ,温度T演化成控制参数t,即得到解组合优化问题的模拟退火算法:由初始解i和控制参数初值t开始,对当前解重复“产生新解→计算目标函数差→接受或舍弃”的迭代,并逐步衰减t值,算法终止时的当前解即为所得近似最优解,这是基于蒙特卡罗迭代求解法的一种启发式随机搜索过程。退火过程由冷却进度表(Cooling Schedule)控制,包括控制参数的初值t及其衰减因子Δt、每个t值时的迭代次数L和停止条件S。 4 w u8 o" I2 g$ d) \& ~& Y8 e/ {4 o# u9 e+ T0 y( E- G
5 群体(群集)智能(Swarm Intelligence) : {; t. S6 f& l8 w" U3 N
$ O- n" {" P% Y6 ~6 O
受社会性昆虫行为的启发,计算机工作者通过对社会性昆虫的模拟产生了一系列对于传统问题的新的解决方法,这些研究就是群集智能的研究。群集智能(Swarm Intelligence)中的群体(Swarm)指的是“一组相互之间可以进行直接通信或者间接通信(通过改变局部环境)的主体,这组主体能够合作进行分布问题求解”。而所谓群集智能指的是“无智能的主体通过合作表现出智能行为的特性”。群集智能在没有集中控制并且不提供全局模型的前提下,为寻找复杂的分布式问题的解决方案提供了基础。 Y# s% i$ o2 u5 i$ R# v, i6 |4 p; t群集智能的特点和优点:群体中相互合作的个体是分布式的(Distributed),这样更能够适应当前网络环境下的工作状态; 没有中心的控制与数据,这样的系统更具有鲁棒性(Robust),不会由于某一个或者某几个个体的故障而影响整个问题的求解。可以不通过个体之间直接通信而是通过非直接通信(Stimergy)进行合作,这样的系统具有更好的可扩充性(Scalability)。由于系统中个体的增加而增加的系统的通信开销在这里十分小。系统中每个个体的能力十分简单,这样每个个体的执行时间比较短,并且实现也比较简单,具有简单性(Simplicity)。因为具有这些优点,虽说群集智能的研究还处于[初级阶段,并且存在许多困难,但是可以预言群集智能的研究代表了以后计算机研究发展的一个重要方向。 $ j+ \1 n/ ~- ]2 f! D: M8 W$ C8 Q( ]$ T8 p
在计算智能(Computational Intelligence)领域有两种基于群智能的算法,蚁群算法(Ant Colony Optimization)和粒子群算法(Particle Swarm Optimization),前者是对蚂蚁群落食物采集过程的模拟,已经成功运用在很多离散优化问题上。 1 I5 U- ?3 |9 e( c6 Z( e% y$ q/ y
5.1 蚁群优化算法 , I; J$ a+ I. y- _$ X) T3 u5 h 8 o5 i9 f! Y0 m+ J% m+ C 受蚂蚁觅食时的通信机制的启发,90年代Dorigo提出了蚁群优化算法(Ant Colony Optimization,ACO)来解决计算机算法学中经典的“货郎担问题”。如果有n个城市,需要对所有n个城市进行访问且只访问一次的最短距离。 . n& ^; J5 L8 [) a) ]
在解决货郎担问题时,蚁群优化算法设计虚拟的“蚂蚁”将摸索不同路线,并留下会随时间逐渐消失的虚拟“信息素”。虚拟的“信息素”也会挥发,每只蚂蚁每次随机选择要走的路径,它们倾向于选择路径比较短的、信息素比较浓的路径。根据“信息素较浓的路线更近"的原则,即可选择出最佳路线。由于这个算法利用了正反馈机制,使得较短的路径能够有较大的机会得到选择,并且由于采用了概率算法,所以它能够不局限于局部最优解。 7 y6 x+ q6 a# G. G, B/ L% G
蚁群优化算法对于解决货郎担问题并不是目前最好的方法,但首先,它提出了一种解决货郎担问题的新思路;其次由于这种算法特有的解决方法,它已经被成功用于解决其他组合优化问题,例如图的着色(Graph Coloring)以及最短超串(Shortest Common Supersequence)等问题。 4 ^5 s# d/ `6 I& F# \
) C" L9 {* T% F8 P" M% b2 z' H
5.2 粒子群优化算法 ) J& H! K) \, P0 p7 W2 V5 C) S+ \, \" ~# y
粒子群优化算法(PSO)是一种进化计算技术(Evolutionary Computation),有Eberhart博士和Kennedy博士发明。源于对鸟群捕食的行为研究。 * m' j$ o; O+ i: d
PSO同遗传算法类似,是一种基于叠代的优化工具。系统初始化为一组随机解,通过叠代搜寻最优值。但是并没有遗传算法用的交叉(crossover)以及变异(mutation)。而是粒子在解空间追随最优的粒子进行搜索。 8 M) \4 r2 \6 ]4 [
同遗传算法比较,PSO的优势在于简单容易实现并且没有许多参数需要调整。目前已广泛应用于函数优化,神经网络训练,模糊系统控制以及其他遗传算法的应用领域。 0 ` O8 t7 v4 P. ?% D& `
粒子群优化算法(PSO) 也是起源对简单社会系统的模拟,最初设想是模拟鸟群觅食的过程,但后来发现PSO是一种很好的优化工具。 . m$ ~* S: P: U8 I! \ L1 y0 ?, W4 s9 E! x3 B8 x
5.2.1 算法介绍 & j8 p4 w5 Q& v/ S) D" d7 Z, u
* l' [/ o; Z# X7 w! M
PSO模拟鸟群的捕食行为。一群鸟在随机搜索食物,在这个区域里只有一块食物。所有的鸟都不知道食物在那里。但是他们知道当前的位置离食物还有多远。那么找到食物的最优策略是什么呢。最简单有效的就是搜寻目前离食物最近的鸟的周围区域。 . G; f3 U$ ]3 n8 S) g' F
% U1 O/ j) }6 ~# Z, q/ ]- C PSO从这种模型中得到启示并用于解决优化问题。PSO中,每个优化问题的解都是搜索空间中的一只鸟。我们称之为“粒子”。所有的粒子都有一个由被优化的函数决定的适应值(fitness value),每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。 + U5 ~8 ? w& _8 ?$ F* a E4 A) t; J! w6 S. U Q; T* ?0 G
PSO初始化为一群随机粒子(随机解),然后通过叠代找到最优解,在每一次叠代中,粒子通过跟踪两个“极值”来更新自己。第一个就是粒子本身所找到的最优解,这个解叫做个体极值pBest,另一个极值是整个种群目前找到的最优解,这个极值是全局极值gBest。另外也可以不用整个种群而只是用其中一部分最优粒子的邻居,那么在所有邻居中的极值就是局部极值。 . E3 N# E/ q; R9 e+ D$ Y% \! @1 A0 S/ _8 h# l
5.2.2 PSO算法过程 . g% N' e0 k0 |* Q4 M( a
① 种群随机初始化。 ' X1 Y9 c) Q+ E$ U1 `& a
② 对种群内的每一个个体计算适应值(fitness value)。适应值与最优解的距离直接有关。 % U: d8 a% D% L/ _7 k3 h1 q③ 种群根据适应值进行复制 。 4 J ]6 N( @2 R7 D④ 如果终止条件满足的话,就停止,否则转步骤 ② 。 P. l; Y+ Z! D/ ~$ a& t6 L* T