1引言
随着现代工业的发展,制造业对零件的加工和装配精度要求越来越高,而测量精度的高低将直接影响整个系统的质量及使用寿命。圆形零件作为机械中最为常见的零件之一,其测量方法一直是人们讨论的热点。如何处理测量数据是能否真实反映被测轮廓的关键。因此,研究一种简单、快速、鲁棒性强、计算结果稳定的数据处理算法是十分必要的。
蜂群算法(Bee Colony Optimization,BCO)是受到自然界的蜜蜂行为启发而提出的一种新颖的元启发式优化算法。Seely于1995年最先提出了蜂群的自组织模拟模型[1],2005年,Karaboga.D将蜂群算法成功应用在函数的数值优化问题上[2],提出了比较系统的人工蜂群算法( Artificial Bee Colony algorithm,ABC)。人工蜂群算法是一种较好的全局优化算法,具有设置参数少、计算简单、收敛速度快、鲁棒性好的优点。
针对圆形零件的特点,提出一种基于人工蜂群算法的数据处理方法。该方法简单、鲁棒性强、精度高,不仅能较快地收敛到全局最优解,而且计算结果稳定。
2人工蜂群算法[3-7]
在人工蜂群算法智能模型中共包含三种角色:雇佣蜂、观察蜂和侦查蜂;它们有两种最为基本的行为模型:当一只蜜蜂找到自己认为丰富的食物源时,引领其他蜜蜂到食物源处;放弃一处食物源,寻找另一处食物源代替。
一开始,蜜蜂从蜂巢出发,由于此时的蜜蜂没有先验知识,所以身份都是侦察蜂,他们在蜂巢周围进行随机搜索。当蜜蜂搜索到食物源后便进行采蜜,并把食物源的相关信息储存起来,以备与其他蜜蜂分享,此时蜜蜂的身份就是雇佣蜂。其余没有进行采蜜的蜜蜂,就成为观察蜂。每个雇佣蜂有一个确定的食物源,并在迭代中对食物源的邻域进行搜索。在每次返回蜂巢后,雇佣蜂将食物源的信息传递给观察蜂,观察蜂将在不同的食物源中选择一个作为目标,并进行搜索。若雇佣蜂在设定的搜索次数Limit内没有获得更好的食物源,便放弃该食物源。同时,雇佣蜂成为侦查蜂,并开始随机搜索可行的新食物源。
在迭代过程中,蜂群对于食物源的搜索遵循下述规则:雇佣蜂每次的搜索目标为上次获得的解的邻域解;雇佣蜂将信息与观察蜂分享,观察蜂选择其中的一个食物源,并在其邻域内进行搜索;食物源和雇佣蜂是一一对应关系,即雇佣蜂数目和食物源数目相等;雇佣蜂和观察蜂各占蜂群总数的一半。
人工蜂群算法求解最优解的过程中,雇佣蜂有着保持优良食物源的作用;观察蜂增加优良食物源对应的蜜蜂数目,起到提高算法收敛速度的作用;侦查蜂随机搜索新食物源,能帮助算法跳出局部最优。
在人工蜂群算法中,蜜蜂的采蜜行为和函数优化问题的对应关系如表1所示:
表1 蜂群觅食行为与函数优化的对应关系
Table 1 The relationship of Bee Colony foraging behavior and function optimization
蜂群采蜜行为 可行解优化问题
食物源位置 可行解
食物源大小收益度 可行解的质量
寻找及觅食的速度 可行解优化速度
最大收益度 最优解
3用人工蜂群算法求圆参数[8,9]
假设圆形零件轮廓上的被测点为 ,且被测点的分布大于半个圆周。其中,被测点的坐标最大值和最小值分别为:
人工蜂群算法求圆参数步骤如下表述:
(1)初始化蜂群规模n=100(雇佣蜂和观察蜂各50),解为二维向量,分别代表圆心 可能的位置,取值范围为: , ,迭代次数为:500,Limit为100。
(2)对圆心 进行目标函数构造。它的表达式为:
(1)
(3)将雇佣蜂放到每一个食物源上,计算食物源的收益度;
(2)
为第i个解的收益度,即对应食物源的丰富程度。
(4)在每一次迭代过程中,根据食物源的收益度信息,用转轮盘选择观察蜂的去向;
(3)
食物源越丰富,观察蜂选择的概率 越大。
(5)由公式(4)更新食物源,再根据新旧食物源的收益度大小,确定下一次迭代的食物源位置。
(4)
其中 , ,k为随机生成且 , 为 之间的随机数。
(6)若某一个雇佣蜂所对应的食物源在Limit次循环过后,其收益度值没有明显的改进,则雇佣蜂将放弃该食物源,成为侦查蜂。
(7)检测是否满足终止条件,若否,则跳转到(4),若是,则得到圆心 的最优值。
(8)将圆心 代入圆基本方程
基于人工蜂群算法的圆参数测量
日期:2018-01-15 22:11 点击:284