飞针机设备开发中路径规划算法的剥析及蚁群算法的应用探索

  1. 路径规划算法的基础先决条件:

a、配针问题:电容法测试和电阻法测试使用的测试点配对算法是不一样的。电容法测试要求的测试次数为待测PCB板的所有待测点数量。

  1. 对单个探针的总运动轨迹最小进行优化。

c、满足一堆限值的因素。如撞针问题;可以进行电容法电阻法在测试时切换问题等。                                          

2、路径优化算法解决事情的本质:

a、单个探针在运行测试整个过程中,所走的总的轨迹最短。

b、尽量让每个探针分配的测点较为均衡,即不出现空闲等待状态,保持相对同步完成整个测试工作。

c、生成测试路径时应尽可能将相似步距的运动编排在一起,避免经常性出现小步等待大步的现象。(防止避障等待)

d、PCB 板安全旋转度考虑(本质也是防止撞针),让左边的测试针的 x 坐标始终比右边测试针的 x 坐标小,且尽量让它们离得远些。

3、对单个探针的轨迹路径优化本质是TSP旅行商问题(归结为NP难题)

TSP问题,是最基本的路线问题,该问题是在寻求单一旅行者由起点出发,通过所有给定的需求点之后,最后再回到原点的最小路径成本。

通过大量文献资料分析得出:蚁群算法解决飞针机方面的路径规划算法问题是效率最高。故沿着该结论思路,我们采用蚁群算法解决飞针机的单个探针路径优化问题。

4、蚁群算法原理

生物学研究表明:一群相互协作的蚂蚁能够找到食物和巢穴之间的最短路径,而单只蚂蚁则不能。生物学家经过大量细致观察研究发现,蚂蚁个体之间的行为是相互作用相互影响的。蚂蚁在运动过程中,能够在它所经过的路径上留下一种称之为信息素的物质,而此物质恰恰是蚂蚁个体之间信息传递交流的载体。蚂蚁在运动时能够感知这种物质,并且习惯于追踪此物质爬行,当然爬行过程中还会释放信息素。一条路上的信息素踪迹越浓,其它蚂蚁将以越高的概率跟随爬行此路径,从而该路径上的信息素踪迹会被加强,因此,由大量蚂蚁组成的蚁群的集体行为便表现出一种信息正反馈现象。某一路径上走过的蚂蚁越多,则后来者选择该路径的可能性就越大。蚂蚁个体之间就是通过这种间接的通信机制实现协同搜索最短路径的目标的。

蚁群优化算法正是受到这种生态学现象的启发后加以模仿并改进而来,觅食的蚂蚁由人工蚁替代,蚂蚁释放的信息素变成了人工信息素,蚂蚁爬行和信息素的蒸发不再是连续不断的,而是在离散的时空中进行。

群蚁算法的2个核心步骤是 路径构建 和 信息素更新

5、路径构建 

每个蚂蚁都随机选择一个城市作为其出发城市,并维护一个路径记忆向量,用来存放该蚂蚁依次经过的城市。蚂蚁在构建路径的每一步中,按照一个随机比例规则选 择下一个要到达的城市。随机概率是按照下列公式来进行计算的:

上述公式就是计算 当前点 到 每一个可能的下一个节点 的概率。分子是 信息素强度 和 能见度 的幂乘积,而分母则是所有 分子的和值。每次选择好节点后,就要从可用节点中移除选择的节点。

6、信息素更新

信息素更新是群蚁算法的核心。算法在初始期间有一个固定的浓度值,在每一次迭代完成之后,所有出去的蚂蚁回来后,会对所走过的路线进行计算,然后更新相应的边的信息素浓度。很明显,这个数值肯定是和蚂蚁所走的长度有关系的,经过一次次的迭代, 近距离的线路的浓度会很高,从而得到近似最优解。

初始化信息素浓度C(0),如果太小,算法容易早熟,蚂蚁会很快集中到一条局部最优路径上来,因为可以想想,太小C值,使得和每次挥发和增强的值都差不多,那么 随机情况下,一些小概率的事件发生就会增加非最优路径的信息素浓度;如果C太大,信息素对搜索方向的指导性作用减低,影响算法性能。(一般情况下,我们可以使用贪心算法获取一个路径值Cnn,然后根据蚂蚁个数来计算C(0) = m/Cnn ,m为蚂蚁个数。)普通做法是初始化直接赋值一个常数(通常为1)给每个边上的信息素。

每一轮过后,问题空间中的所有路径上的信息素都会发生蒸发,然后,所有的蚂蚁根据自己构建的路径长度在它们本轮经过的边上释放信息素,公式如下: 

或者:

Q即为信息素增加系数,蚂蚁每经过一段路径所留下的信息素的量,其值越大,路径上信息素累积越快蚁群算法的正反馈机制会增强。根据研究学者实验表明信息素增加系数在100~1000更合适。

信息素更新的作用:
1.信息素挥发:信息素痕迹的挥发过程是每个连接上的 信息素痕迹的浓度自动逐渐减弱的过程,这个挥发过程主要用于避 免算法过快地向局部最优区域集中,有助于搜索区域的扩展。
2.信息素增强:信息素增强过程是蚁群优化算法中可选的部分,称为离线更新方式(还有在线更新方式,一般选取离线方式)。这种方式可以实现 由单个蚂蚁无法实现的集中行动。基本蚁群算法的离线更新方式是 在蚁群中的m只蚂蚁全部完成n城市的访问后,统一对残留信息进行更新处理。

迭代停止的选择:

迭代停止的条件可以选择合适的迭代次数后停止,输出最优路径,也可以看是否满足指定最优条件,找到满足的解后停止。这里算法每一次迭代的意义是:每次迭代的m只蚂蚁都完成了自己的路径过程,回到原点后的整个过程。

实际使用蚁群算法优化问题时,都会经历一定次数的迭代,所以一般算法的停止准则取适当的迭代次数也就是外循环次数,表明蚂蚁已经工作足够长的时间了;当连续N次迭代解都没有变化时,可以认为算法已经收敛,可以结束算法了。

7、蚁群算法的流程

① 初始化

首先使用贪心算法获取一个路径值Cnn,然后根据蚂蚁个数来计算初始化信息素浓度(每个路径边上的)C(0) = m/Cnn (m为蚂蚁个数)。设置最大循环次数N.

②进行一次循环,为每只蚂蚁随机的选择出发的节点,且确定每只蚂蚁的可选节点集合。

③为每只蚂蚁选择下一访问节点

 根据计算随机概率进行确认。每次选择好下一节点后,就要从当前可用节点中移除选择的节点。一直得到该选择的蚂蚁最终所有的路径节点。(循环到可选节点只剩1个)

④信息素更新

  使用信息素更新公式计算更新每条边上的信息素。

⑤是否满足最大循环次数,若满足则输出全局最优结果且结束,否则继续执行步骤②,且清空每只蚂蚁的可选节点集合。(此时信息素得到更新,下次循环使用更新过的信息素计算)

最终输出的全局最优解,个人认为是按各条节点路径上的信息素浓度得到的,信息素越大则被选择。

蚁群算法的流程,分内外两层循环,外循环控制算法迭代次数,内层循环是对每只蚂蚁的循环。

大量文献给出最佳的蚁群算法的初始因子参数:

信息素的加权值 α=1;能见度的加权值 β=5;信息素挥发率ρ=0.5 ;每次最大迭代次数为200;蚂蚁数量m约为节点数量除1.5的值。

这些因子参数直接决定最终的最佳结果选择。

8、整体框架简图

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值