要去工作了,关于算法的啥都不知道,所以现在开始补知识吧。

百度百科:蚂蚁算法,copy过来的~~~

蚁群算法(ant colony optimization, ACO),又称蚂蚁算法,是一种用来在图中寻找优化路径的机率型技术。它由Marco Dorigo于1992年在他的博士论文中引入,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。

说明:为什么小小的蚂蚁能够找到食物?他们具有智能么?设想,如果我们要为蚂蚁设计一个人工智能的程序,那么这个程序要多么复杂呢?首先,你要让蚂蚁能够避开障碍物,就必须根据适当的地形给它编进指令让他们能够巧妙的避开障碍物,其次,要让蚂蚁找到食物,就需要让他们遍历空间上的所有点;再次,如果要让蚂蚁找到最短的路径,那么需要计算所有可能的路径并且比较它们的大小,而且更重要的是,你要小心翼翼的编程,因为程序的错误也许会让你前功尽弃。 。。。

范围:蚂蚁观察到的范围是一个方格世界,蚂蚁有一个参数为速度半径(一般是3),那么它能观察到的范围就是3*3个方格世界,并且能移动的距离也在这个范围之内。

环境: 蚂蚁所在的环境是一个虚拟的世界,其中有障碍物,有别的蚂蚁,还有信息素,信息素有两种,一种是找到食物的蚂蚁洒下的食物信息素,一种是找到窝的蚂蚁洒下的窝的信息素。每个蚂蚁都仅仅能感知它范围内的环境信息。环境以一定的速率让信息素消失。

觅食规则:在每只蚂蚁能感知的范围内寻找是否有食物,如果有就直接过去。否则看是否有信息素,并且比较在能感知的范围内哪一点的信息素最多,这样,它就朝信息素多的地方走,并且每只蚂蚁多会以小概率犯错误,从而并不是往信息素最多的点移动。蚂蚁找窝的规则和上面一样,只不过它对窝的信息素做出反应,而对食物信息素没反应。

移动规则:每只蚂蚁都朝向信息素最多的方向移,并且,当周围没有信息素指引的时候,蚂蚁会按照自己原来运动的方向惯性的运动下去,并且,在运动的方向有一个随机的小的扰动。为了防止蚂蚁原地转圈,它会记住最近刚走过了哪些点,如果发现要走的下一点已经在最近走过了,它就会尽量避开。

避障规则:如果蚂蚁要移动的方向有障碍物挡住,它会随机的选择另一个方向,并且有信息素指引的话,它会按照觅食的规则行为。

播撒信息素规则:每只蚂蚁在刚找到食物或者窝的时候撒发的信息素最多,并随着它走远的距离,播撒的信息素越来越少。

蚂蚁如何找到最短路径:

这一是要归功于信息素,另外要归功于环境,具体说是计算机时钟。信息素多的地方显然经过这里的蚂蚁会多,因而会有更多的蚂蚁聚集过来。假设有两条路从窝通向食物,开始的时候,走这两条路的蚂蚁数量同样多(或者较长的路上蚂蚁多,这也无关紧要)。当蚂蚁沿着一条路到达终点以后会马上返回来,这样,短的路蚂蚁来回一次的时间就短,这也意味着重复的频率就快,因而在单位时间里走过的蚂蚁数目就多,洒下的信息素自然也会多,自然会有更多的蚂蚁被吸引过来,从而洒下更多的信息素……;而长的路正相反,因此,越来越多地蚂蚁聚集到较短的路径上来,最短的路径就近似找到了。

蚂蚁行动的简单行为规则:多样性、正反馈

多样性保证了蚂蚁在觅食的时候不至于走进死胡同而无限循环。正反馈机制则保证了相对优良的信息能够被保存下来。可以把多样性看成是一种创造能力,而正反馈是一种学习强化能力。正反馈的力量也可以比喻成权威的意见,而多样性是打破权威体现的创造性,正是这两点小心翼翼的巧妙结合才使得智能行为涌现出来。多样性保证了系统的创新能力,正反馈保证了优良性能能够得到强化,两者要恰到好处的结合如果多样性过剩,也就是系统过于活跃,这相当于会过多的随机运动,它就会陷入混沌状态;而相反,多样性不够,正反馈机制过强,那么系统就好比一潭死水。这在蚁群中来讲就表现为,蚂蚁的行为过于僵硬,当环境变化了,蚂蚁群仍然不能适当的调整。

蚂蚁算法中的一些参数:

最大信息素:蚂蚁在一开始拥有的信息素总量,越大表示程序在较长一段时间内能够存在信息素。

信息素消减速度:随着时间的流逝,已经存在于世界上的信息素会消减,这个数值越大,那么消减的越快。

错误概率:表示这个蚂蚁不往信息素最大的区域走的概率,越大则表示这个蚂蚁越有创新性。

速度半径:表示蚂蚁一次能走的最大长度,也表示这个蚂蚁的感知范围。

记忆能力:表示蚂蚁能记住多少个刚刚走过点的坐标,这个值避免了蚂蚁在本地打转,停滞不前。而这个值越大那么整个系统运行速度越慢,越小则蚂蚁越容易原地打转。

还要了解的算法有:人工智能算法、神经网络算法、遗传算法、n皇后算法。

补算法相关知识一:蚂蚁算法相关推荐

  1. adam算法相关知识

    学习链接:https://blog.csdn.net/Solo95/article/details/84842144 1.指数加权平均: 2.使用动量的梯度下降: 3.RMSprop算法: 4.Ada ...

  2. 决策规划算法相关知识之 POMDP模型

    (写给读者:本文旨在记录我自己对该算法(方法)的理解,用于面试中可能用得到的回答,因此尽量将该文写的口语化,尽量能懂,而不是高深的各种符号,但一些关键的公式还是会贴以加深记忆.) 思考问题及回答问题方 ...

  3. Unity开发-网络.算法.平台相关知识!

    A. 网络相关知识 一.TCP 1.面向数据流.可靠.能保证消息到达顺序. 2.滑动窗口.控制发送量,发送方只能发送窗口内大小的数据包.防止发送方发送的数据过多,接收方无法处理的情况. 3.Nagle ...

  4. CV之CycleGAN:CycleGAN算法相关思路配图、论文集合

    CV之CycleGAN:CycleGAN算法相关思路配图.论文集合 目录 CycleGAN算法相关思路配图 CycleGAN算法相关论文集合 改进的StarGAN CycleGAN算法相关思路配图 1 ...

  5. 粒子群算法tsp java_粒子群算法解决TSP问题汇总.doc

    PAGE \* MERGEFORMAT 14 河南理工大学计算机科学与技术学院课程设计报告 2014- 2015学年第一学期 课程名称 Java语言程序设计 设计题目 利用粒子群算法解决TSP问题 姓 ...

  6. 35、算法的概述和解析算法、枚举算法

    前面我们已经将Python语法部分的知识都讲完了.前面我们拿到一个程序题,我们都是按照自己的思路直接写代码,但是复杂的程序就不是那么容易直接写出来的了,需要分析整体的思路.从这节课开始我们要讲算法的相 ...

  7. 前端面试:你应该了解的JS算法相关的知识

    前端面试:你应该了解的JS算法相关的知识 时间复杂度 通常使用最差的时间复杂度来衡量一个算法的好坏. 常数时间 O(1) 代表这个操作和数据量没关系,是一个固定时间的操作,比如说四则运算. 对于一个算 ...

  8. 光斑定位技术在空间激光通信中扮演着重要的角色。本文将详细介绍光斑定位的相关知识,并使用Matlab实现一些相关的算法。

    光斑定位技术在空间激光通信中扮演着重要的角色.本文将详细介绍光斑定位的相关知识,并使用Matlab实现一些相关的算法. 一.光斑定位技术 光斑定位技术是一种通过计算像素位置来确定目标物体位置的技术,广 ...

  9. DQN相关知识总结及演员-评论员算法介绍(DataWhale组队学习笔记)

    DQN基本概念及相关技巧 DQN(Deep Q-network)即深度Q网络,通过结合神经网络技术和价值函数近似,采用目标网络和经历回放的方法来进行网络的训练. 价值函数近似 在面对现实中的强化学习任 ...

最新文章

  1. 【408预推免复习】计算机网络(谢希仁第七版)第四章——网络层
  2. c语言不同指令意识,C语言必须理清的概念1
  3. boost::::adaptors::indexed::indexed相关的测试程序
  4. Spring源代码学习之where is Bean instance created
  5. 数学菜鸟和大佬的关注点有什么不同?
  6. 【使用注意】特殊中括号[]的特殊json数组
  7. 括弧匹配检验(信息学奥赛一本通-T1354)
  8. 全球最伟大社交软件!微信入选“现代百大设计最佳产品”:排名超Facebook
  9. spring boot 集成 Oracle Access Manager(OAM)单点登录
  10. 关于Mybatis的一点小记录(parameterType)
  11. 推荐一个开源好用的ER图、流程图作图软件-draw.io
  12. 天天生鲜—创建数据库
  13. HTML5期末大作业:在线电影app网页设计——电影票务购票系统WebApp手机模板(12页) HTML+CSS+JavaScript 计算机毕设网页设计源码
  14. woocommerce修改商品详情页
  15. 产品需求文档模板,不用找了(附“简”例)【转】
  16. Java 金额转换 阿拉伯数字金额转换成汉字大写金额
  17. Cocos2dx中Lua游戏性能优化指南
  18. java怎样写网页_java怎么写网站
  19. 数字图像处理之matlab实验(一):基本操作
  20. 找出11-999间的回文数m,m方,m三次方均为回文

热门文章

  1. python图像处理:透视变换
  2. 【STM32 NET MF开发板学习-29】摄像头蓝牙图像远程获取
  3. Policy gradient Method of Deep Reinforcement learning (Part One)
  4. 大白菜装win10专业版启动u盘制作教程
  5. Linux系统的各配置文件用途介绍
  6. mc服务器tp到指定,我的世界tp指令怎么输 TP指令大全
  7. 致橡树​ 作者:舒婷​
  8. Linux系统可以远程开机,Linux操作系统下实现远程开机
  9. C# 串口通讯协议的整理:(一)简单的扫码枪(霍尼韦尔)使用(二)不断地监听、读取、处理串口通讯发送过来的数据
  10. foxmail如何下载全部邮件以及常用知识