zoukankan      html  css  js  c++  java
  • 智能算法---蚁群算法

    智能算法---蚁群算法

    1 蚁群算法及其基本思想
    蚁群算法是一种智能优化算法,通过蚁群优化求解复杂问题,ACO在离散优化问题方面有比较好的优越性。
     
     
    基本思想(以旅行商问题为例)
     
         设置多只蚂蚁,分头并行搜索。
         每只蚂蚁完成一次周游后,在行进的路上释放信息素,信息素量与解的质量成正比。
         蚂蚁路径的选择根据信息素强度大小(初始信息素量设为相等),同时考虑两点之间的距离,采用随机的局部搜索策略。这使得距离较       短的边,其上的信息素量较大,后来的蚂蚁选择该边的概率也较大。
         每只蚂蚁只能走合法路线(经过每个城市1次且仅1次),为此设置禁忌表来控制。
         所有蚂蚁都搜索完一次就是迭代一次,每迭代一次就对所有的边做一次信息素更新,原来的蚂蚁死掉,新的蚂蚁进行新一轮搜索。
         更新信息素包括原有信息素的蒸发和经过的路径上信息素的增加。
         达到预定的迭代步数,或出现停滞现象(所有蚂蚁都选择同样的路径,解不再变化),则算法结束,以当前最优解作为问题的最优解
     
     
    2 表示方式
     
    2.1 参数表示
     

    2.2 计算公式

     

     
     3 ACO算法步骤
     
     
     
    4 ACO算法解决旅行商问题
    4.1 问题提出
     4.2 参数设置
     

     
    4.3  计算结果
    首先对每个节点求对应的参数
    有如下图5个结果
     

     

    根据得到的结论,再次有蚂蚁从五个点出发时,走过的路径如下面五个表所示

     

     结论:当出现停止现象的时候,说明已经得到最优解,算法结束,最优解为:AEDCBA,目标函数值为9

    5 ACO的优缺点
    ACO的优点
         较强的鲁棒性——稍加修改即可应用于其他问题;
         分布式计算——本质上具有并行性;
         易于与其他启发式算法结合。
    PSO的缺点
         一般需要较长的搜索时间;
         容易出现停滞现象;
         只适用于离散问题
  • 相关阅读:
    读书笔记—CLR via C#线程25-26章节
    算法回顾--N皇后问题简单回顾
    编程拾趣--集合子集问题
    读书笔记—CLR via C#异常和状态管理
    读书笔记—CLR via C#字符串及文本
    设计模式---抽象工厂
    读书笔记—CLR via C#反射
    读书笔记—CLR via C#委托和attribute
    C#编程实践—EventBroker简单实现
    Linux平台屏幕录像工具RecordMyDesktop
  • 原文地址:https://www.cnblogs.com/tao-alex/p/6094483.html
Copyright © 2011-2022 走看看