参考

蚁群算法原理与应用1-自然计算与群体智能

简介

1、蚁群算法(Ant Clony Optimization,ACO)是一种群智能算法,它是由一群无智能或有轻微智能的个体(Agent)通过相互协作而表现出智能行为,从而为求解复杂问题提供了一个新的可能性。

2、是一种仿生学的算法,是由自然界中蚂蚁觅食的行为而启发。(artificial ants;双桥实验)

3、运作机理:当一定路径上通过的蚂蚁越来越多时,其留下的信息素轨迹也越来越多,后来蚂蚁选择该路径的概率也越高,从而更增加了该路径的信息素强度,而强度大的信息素会吸引更多的蚂蚁,从而形成一种正反馈机制。

4、蚁群算法欧化过程中的两个重要原则:

a、蚂蚁在众多路径中转移路线的选择规则。

b、全局化信息素更新规则。信息素更新的实质就是人工蚂蚁根据真实蚂蚁在访问过的边上留下的信息素和蒸发的信息素来模拟真实信息素数量的变化,从而使得越好的解得到越多的增强。这就形成了一种自催化强化学习(Autocatalytic Reinforcement Learning)的正反馈机制。

原理

1、描述:蚂蚁数量m;城市之间的信息素矩阵pheromone;每次迭代的m个蚂蚁的最短路径    BestLength;最佳路径BestTour。                                                                                                                                     每只蚂蚁都有:禁忌表(Tabu)存储已访问过的城市,允许访问的城市表(Allowed)存储还可以访问的城市,矩阵(Delta)来存储它在一个循环(或者迭代)中给所经过的路径释放的信息素。

2、状态转移概率:在搜索过程中,蚂蚁根据各条路径上的信息量及路径的启发信息来计算状态转移概率。在t时刻蚂蚁k由元素(城市)i转移到元素(城市)j的状态转移概率:

τij (t) :时刻路径(i, j)上的信息量。ηij=1/dij :启发函数。

α为信息启发式因子,表示轨迹的相对重要性,反映了蚂蚁在运动过程中积累的信息在蚂蚁运动时所起的作用,其值越大,则该蚂蚁越倾向于选择其它蚂蚁经过的路径,蚂蚁之间的协作性越强;

β为期望启发式因子,表示能见度的相对重要性,反映蚂蚁在运动过程中启发信息在蚂蚁选择路径中的受重视程度,其值越大,则该状态状态转移概率越接近于贪心规则;

3、息素更新规则:

ρ表示信息素挥发系数;Δτij(t)表示本次循环中路径(i, j)上的信息素增量,初始时刻Δτij(t) =0。

4、三种信息增量计算方法:

第一种

第二种

第三种

区别:第一种利用了全局信息,在走一圈后更新。二、三中都利用的是局部信息。通常使用第一种。

5、TSP中流程图

tsp问题用蚁群算法java实现_TSP解决之道——蚁群算法相关推荐

  1. java中文乱码解决之道(二)—–字符编码详解:基础知识 + ASCII + GB**

    原文出处:http://cmsblogs.com/?p=1412 在上篇博文(java中文乱码解决之道(一)-–认识字符集)中,LZ简单介绍了主流的字符编码,对各种编码都是点到为止,以下LZ将详细阐述 ...

  2. [转]java中文乱码解决之道(三)-----编码详情:伟大的创想---Unicode编码

    http://www.cnblogs.com/chenssy/ java中文乱码解决之道(三)-----编码详情:伟大的创想---Unicode编码 随着计算机的发展.普及,世界各国为了适应本国的语言 ...

  3. java堆算法,Java 基本功04-JVM-Java堆详解和GC算法

    JVM GC 机制 1. 在此之前需要了解相关概念: 1.1 Java 堆内存: 在 HotSpot JVM 实现中 Heap 内存被"分代"管理. JVM 的内存首先被分割成两部 ...

  4. l bfgs算法java代码_数值优化:理解L-BFGS算法

    译自<Numerical Optimization: Understanding L-BFGS>,本来只想作为学习CRF的补充材料,读完后发现收获很多,把许多以前零散的知识点都串起来了.对 ...

  5. 算法java语言描述_java语言描述数据结构与算法崔笑颜的博客

    java语言描述数据结构与算法崔笑颜的博客 冒泡排序 插入排序 选择排序 希尔排序 快速排序 归并排序 二分查找package com.demo.test; import java.util.Arra ...

  6. 两个矩阵是否相交的算法_刷透近200道数据结构与算法,成功加冕“题王”,挤进梦中的字节!...

    不管是学生还是已经工作的人,我想彼此都有一个相同的梦想:进大厂! 眼看着2020年还有个三十来天就要完美收尾了,那么如何才能在未来三个月弯道超车赶上"金三银四的春招",进入梦寐以求 ...

  7. 跑胡子c语言算法,跑胡子胡牌算法Java版(带赖子、基于回溯算法)

    跑胡子规则 跑胡子,小写"一"到"十"各4张共40张,大写"壹"到"拾"各4张共40张. 砌牌:跑胡子为3人同玩,庄家砌 ...

  8. java蛮力法解决任务分配问题_【算法题】任务分配问题---匈牙利算法

    一.问题描述 问题描述:N个人分配N项任务,一个人只能分配一项任务,一项任务只能分配给一个人,将一项任务分配给一个人是需要支付报酬,如何分配任务,保证支付的报酬总数最小. 问题数学描述: 二.实例分析 ...

  9. 亲戚关系关系算法java程序_C++并查集亲戚(Relations)算法实例

    本文实例讲述了C++并查集亲戚(Relations)算法.分享给大家供大家参考.具体分析如下: 题目: 亲戚(Relations) 或许你并不知道,你的某个朋友是你的亲戚.他可能是你的曾祖父的外公的女 ...

最新文章

  1. POJ3041 最小顶点覆盖
  2. How to use price determination in Quotation scenario
  3. 类重复引用_JVM类加载从JDK来看
  4. beeframework在ios 9.1下报错
  5. disable NSLog
  6. pcb过孔漏铜_使用Proteus设计自己的PCB | 入门简易教程
  7. 实战爬虫:python爬虫学习笔记之爬取搜狗|微信文章——动态网页爬取
  8. 设为首页 和 收藏本页
  9. unity C#修改脚本图标
  10. 多个 本地仓库_老板逼我用 Git,本地指令介绍
  11. 对java.lang.UnsupportedOperationException 异常的分析
  12. 服务器终端配置,如何配置终端/通讯服务器
  13. android简单计算器源码
  14. 查找微信公众号服务器,墨涩网 - 免插件实现微信公众号搜索连接wordpress网站文章——墨涩网...
  15. 移动页面HTML5自适应手机屏幕宽度
  16. 边框,多层背景,内补白与外补白
  17. 面向对象的特征之一:抽象
  18. android wifi驱动加载失败怎么办,请教WIFI连接失败问题,如何解决
  19. Spring依赖注入有哪些方式?
  20. WEB HTML知识整理 css

热门文章

  1. Matlab文件和文件夹删除函数
  2. 【SSO单点登录】ticket+token+redis 实现sso单点登录 防重放、防盗用、防篡改
  3. 黄聪:jquery 校验中国身份证号码
  4. 《CXO数智话》:让数智化润物细无声
  5. 高端设计公司的意象创意
  6. 【无标题】llllllll
  7. Android开发基础:利用 Android Studio开发看美女应用(4)
  8. PostgreSQL数据库集簇
  9. c语言中阻止程序退出的函数,(转)C语言中Exit函数的使用
  10. 在不同领域中典型的计算机应用实例,浅析案例教学法在《计算机应用基础》教学中应用.doc...