当前位置: 首页 > article >正文

包括遗传算法在内的现代优化算法简介

现代优化算法是 80 年代初兴起的启发式算法。这些算法包括禁忌搜索(tabu search),模拟退火(simulated annealing),遗传算法(genetic algorithms),蚁群算法人工神经网络(neural networks)。它们主要用于解决大量的实际应用问题。


  • 模拟退火算法

        来自于不同T【温度】下的粒子状态,高T高能量;低T低能量,且低T时粒子趋于稳定【热平衡】。

        如果用粒子的能量定义材料在状态i 之下的能量为 E(i) ,那么材料在温度T 时从状态i 进入状 态 j 就遵循如下规律:

(1)如果 E( j) ≤ E(i) ,接受该状态被转换。

(2)如果 E( j) > E(i) ,则状态转换以如下概率被接受:

K 是物理学中的波尔兹曼常数。

在某一个特定温度T,材料达到热平衡,材料处 于状态i 的概率满足波尔兹曼分布:

x 表示材料当前状态的随机变量,S 表示状态空间集合,

此式可求两个极限:

| S | 表示集合 S 中状态的数量。这表明所有状态在高温下具有相同的概率。温度下降时:

上式表明当温度降至很低时,材料会以很大概率进入最小能量状态。这个特性可用到寻找最小值的优化问题中。

初始温度T0,优化问题的一个初始解 x(0),x(0) 生成下一个 解 x',接受 x' 作为一个新解 x(1) 依赖于下面概率:

显然,更优【更小】就接受,否则以概率接受。推广到温度Ti的第K个解也是按照上式的:

降低温度Ti ,得到Ti+1 < Ti 。在Ti+1 下重复上述 过程。因此整个优化过程就是不断寻找新解和缓慢降温的交替过程。最终的解是对该问题寻优的结果

这个过程依赖于前一个过程,而与前前个过程乃至更前的过程无关,因此这是一个马尔可夫过程。分析后表明一个事实:

从任何一个状态 x(k) 生成 x' 的 概率,在 N(x(k)) 中是均匀分布的,且新状态 x' 被接受的概率满足上式。

经过有限次的转换,在温度Ti下的平衡态xi 的分布由下式给出:

这说明,如果温度下降缓慢,则能够达到热平衡,则全局最优解将被以概率1被找到。

最终温度的确定可以提前定 为一个较小的值Te ,或连续几个温度下转换过程没有使状态发生变化算法就结束。

模拟退火算法实例——飞机侦察n个点【最后回到原来位置】最短路径问题

有100个目标需要侦察,设它们的标号为2-101,自己原来的位置为1,最后回到原来位置,设标号为102。

这里建立坐标系,转化经纬度为两个点之间的距离暂d且不说。着重描述算法求解步骤:

1.解空间

解空间 S 可表为{1,2,……,101,102 }的所有固定起点和终点的循环排列集合,

初始解可选为(1,2……,102),

2.目标函数

此时的目标函数为侦察所有目标的路径长度或称代价函数。

3.新解的产生

有交换一个序列的两点和选一个点插到某处两种办法,产生新的序列

4.代价函数差

对于交换两点变换法,路径差可表示为:

5.接受准则

如果Δf < 0 ,则接受新的路径。否则,以概率exp(−Δf /T) 接受新的路径,即若 exp(−Δf /T) 大于 0 到 1 之间的随机数则接受。

6.降温

利用选定的降温系数α 进行降温即:T =αT,得到新的温度,这里我们取 α = 0.999。

7.结束条件

用选定的终止温度e=10的-30次方,判断退火过程是否结束。若T < e ,算法结束,输出当前状态。

  • 遗传算法

        一种基于自然选择原理和自然遗传机制的搜索(寻优)算法。

        群体搜索技术,适者生存,最优解或准最优解

实现方法:

  1. 用数值串或字符串表示 可行解域的每一解。
  2. 适应度函数度量好坏。
  3. 确定进化参数群体规模 M【一般来说,每一代群体的个体数目都取相等。群体规模越大、越容 易找到最优解。】 、交叉概率 pc 、变异概率 pm 、进化终止条件【可以设定到某一代进 化结束,也可以根据找出近似最优是否满足精度要求来确定。】。

遗传算法步骤:

1.编码策略【设置初始种群】

用随机数列 ω1 ω2……作为染色体;每一个随机序列都和种群中的一个个体相对。

2.目标函数

目标函数为侦察所有目标的路径长度,适应度函数就取为目标函数。

3.交叉操作

单点交叉,随机地选取第 t 个基因处为交叉点。随机交叉两个父代。

交叉方式许多,选取好的交叉方式,能保证子代能继承父代的优良特性

4.变异操作

按照给定的变异率,对选定变异的个体,随机地取三个整数,满足1 < u < v < w<..... , 把u,v 之间(包括u 和v )的基因段插到 w 后面。

5.选择

采用确定性的选择策略,例如贪心算法。选择目标函数值最小的 M 个个体进化到下一代, 这样可以保证父代的优良特性被保存下来。

  • 蚁群算法

        蚁群总是能够发 现从蚁巢到食物源的最短路径,因为:

        激素进行信息交流,趋向于走激素积累较多的路径

        找到最 短路径的蚂蚁总是最早返回巢穴,从而在路上留下了较多的激素

        正反馈选择,到最后所有的蚂蚁都会趋向于选择这条最短路径

        蚁群算法具有群体合作,正反馈选择,并行 计算等三大特点,并且可以根据需要为人工蚁加入前瞻、回溯等自然蚁所没有的特点。

步骤:

生成具有一定数量蚂蚁的蚁群。

每只人工蚁从问题的初始状态出发,根据“激素”浓度来选择下一个要转移到的状态,直到建立起一个解。

根据所找到的解的好坏程度,在所经过的状态上释放与解的质量成正比例的“激素”。

之后,每只蚂蚁又开始新的求解过程,直到寻找到满意解。

为避免停滞现象,引入了激素更新机制。

详细公式描述:

  1. 设人工蚁群在并行地搜索 TSP 的解,并通过激素相互通信。
  2. 在时刻t 人工蚁 k 由位置i 转移至位置 j 的转移概率为:

参数α 为轨迹的相对重要性(α ≥ 0 );β 为能见度的相对重要性( β ≥ 0 );S 为 可行点集,即蚂蚁 k 下一步允许选择的城市。α, β 分别反映了蚂蚁在运动过程中所积 累的信息及启发式因子在蚂蚁选择路径中所起的不同作用。

3.当 m 个人工蚁按上式找到了可行解,则将各边的信息量用下式修改【留下多少激素量的计算方程】:

  为第 k 只蚂蚁在本次循环中留在路径(i, j) 上的激素量;  为本次循环中路径(i, j) 上的信息量的增量;参数 ρ 为轨迹的持久性;1− ρ 为轨迹衰减度,表示激素息消逝程度。

 为两城市i 和 j 之间距离。BE 为本次最优路线上的边集。

http://www.lryc.cn/news/2413661.html

相关文章:

  • 从零开始的Android学习之路:一、AndroidStudio的安装以及安卓开发环境的配置
  • 开源项目 `blog` 使用教程
  • datagridview设置选中行_pycharm常用快捷键和设置
  • 智能ABC输入法使用技巧
  • 网络安全入门教程(非常详细)从零基础入门到精通,看完这一篇就够了。_网络安全教程
  • KVM 介绍
  • python编程有什么用处,python编程主要学什么
  • 风云决动画好看吗??
  • FreeTextBox使用详解(FTBv3-1-6)
  • 【无线安全实践入门】破解WiFi密码的多个方法
  • 开根号计算机在线应用,根号计算器(万能计算器在线计算)
  • debugbar php漏洞,Laravel-debugbar 开发调试利器
  • Nodejs基础
  • CVE-2015-0235
  • python心理学实验平台,python心理学实验程序(psychopy)
  • 一个不错的网站,颜色推荐 http://www.colorhexa.com/
  • [ Python 库调用和管理 ] __init__.py 的基本使用和运作机制
  • js常见特效
  • 了解遗传算法
  • Web.xml配置之context-param
  • 密码学 / PKI 体系概述
  • C++ 算法篇 深度优先搜索(DFS)
  • 《帝国时代3:决定版》dll丢失?修复x3daudio1_7.dll文件指南
  • Ubuntu 中 安装ulipad 发现无法更新软件库,无法安装python-wxgtk2.8
  • APIHOOK实例剖析
  • InstallSeield安装及破解
  • 胡立阳七招
  • 史上最详细的Linux使用手册(持续更新中)
  • 火狐下载 firefox免费高速下载 firefox又出新版本了
  • 博雅书社网上书店系统的设计与实现