利用正交表和在人工蜂群算法中使用

avatar 2024年05月22日17:10:41 0 85 views
博主分享免费Java教学视频,B站账号:Java刘哥 ,长期提供技术问题解决、项目定制:本站商品点此

最近在学基于正交学习的人工蜂群算法,正交设计中需要建立正交表。

一、什么是正交表

正交表的核心理念是通过合理的实验组合,在有限的实验次数下,尽可能多保证每个因素及其水平的组合在实验中均匀分布。

什么是正交性?

均衡性:每一列(因素),各水平出现次数相同

组合均匀性:任意两个列(因素)的所有水平组合,每种组合出现的次数是相等的

 

图例1、因素(维度)2、水平3

图例2、因素(维度)3、水平3

一般因素即解的维度,水平可以取3,5,7等数字

 

二、人工蜂群算法中的正交表

比如:

  • 我的目标问题是三维的,如 f(x, y, z) = x^2 + y^2 + z^2
  • 约束条件,-1 <= x,y,x <=1 ,即搜索空间范围为[-1, 1],于是我采用均匀分布取3个数(也可以设5个或7个),分别是-1,0,1
  • 我派出20只小蜜蜂(侦查蜂)去搜索可行解,小蜜蜂位置(解)记作Xij,

比如第一只小蜜蜂 X1j 解为 (X11, X12, X13)

比如第二只小蜜蜂 X1j 解为 (X21, X22, X23)

 

1、构建正交表

因素(维度):x、y、z ,即 3个维度

水平(取的离散值):-1、0、1  ,也是3个(这个不一定,也可以调为5或7)

对于实数优化问题,常见的做法是将连续的实数区间分成3到7个水平。以下是一些具体的建议:

 

低精度问题:3个水平,例如  [−1,0,1] 或者等分  [−a,0,a]

中等精度问题:5个水平,例如  [−2,−1,0,1,2] 或者等分 [−a,−a/2,0,a/2,a]

高精度问题:7个水平,例如  [−3,−2,−1,0,1,2,3] 或者根据具体问题的范围进行等分

 

正交表如下:

实验编号
1 -1 -1 -1
2 -1 0 1
3 -1 1 0
4 0 -1 1
5 0 0 0
6 0 1 -1
7 1 -1 0
8 1 0 -1
9 1 1 1

看下是否满足正交性:

1))第一列有3个-1、3个0、3个1 满足,第二列也满足,第三列也满足

2)针对组合(-1, -1)   第一列和第二列 有1个,第二列和第三列 有1个,第一列和第三列 有1个,满足

      针对组合(-1, 0)   第一列和第二列 有1个,第二列和第三列 有1个,第一列和第三列 有1个,满足

      针对组合(-1, 1)   第一列和第二列 有1个,第二列和第三列 有1个,第一列和第三列 有1个,满足

       ...

      都满足,说明满足正交性,如果再加一行或者少一行都不满足正交表

 

 

2、使用正交表

1)、初始化

让20只小蜜蜂到随机位置,Xij = (rand(), rand(), rand())

也可以利用正交表,让他们去均匀分布。

 

2)、雇佣蜂阶段

利用正交表,用当前解 Xi 和传递向量 Ti 生成一组候选解

传递向量  Ti = Xi+ rand() * (Xbest - Xi) 

  • 试验 1:Xnew1 = Xi + Ti × 正交表第1行
  • 试验 2:Xnew2 = Xi + Ti × 正交表第2行
  • 试验 3:Xnew3 = Xi + Ti × 正交表第3行
  • 试验 9:Xnew9 = Xi + Ti × 正交表第9行

 

  • 当前解:Xi = (1.2, 3.7, 4.1)
  • 传递向量:Ti = (2, 1, 3)
  • 试验 1:Xnew= Xi + Ti × 正交表水平1 的解:(1.2 + 2*-1 ,  -3.7 + -1*-1, 4.1 + 3*-1) 
  • 试验 2:Xnew2 = Xi + Ti × 正交表水平1 的解:(1.2 + 2*-1 ,  -3.7 + -1*-1, 4.1 + 3*-1)
  • ...

求出9个候选解,然后取适应度最大的为新解

 

三、为什么正交表数量远少于全排列数量

原因1:只关注主要因素的主效应

正交表的设计主要关注每个因素的主效应,而不是所有可能的交互效应。

这意味着我们并不需要进行所有可能的组合实验。

例如,对于三个因素 A、B、C,每个因素有三个水平(1, 2, 3),全因子实验需要  3×3×3=27 次实验。

而正交表 仅需要 9 次实验。

 

原因2:均匀分布的设计

正交表通过均匀分布各因素和水平的组合,确保每个因素的每个水平在实验中均匀出现。这种设计方法能够在较少的实验次数下,充分反映各因素对结果的影响。

 

原因3:部分考虑交互效应

尽管正交表主要关注主效应,但也部分考虑了重要的交互效应。这意味着在有限的实验次数中,正交表能够捕捉到一些关键的交互信息。

 

四、正交表可靠性

对于优化问题,正交表能否得出正确的实验结果取决于问题的具体情况及实验设计的合理性。

优点

  1. 高效性:通过减少实验次数,节约了时间和成本。
  2. 代表性:均匀分布各因素和水平的组合,能有效反映各因素对结果的影响。
  3. 局部最优解:在大多数情况下,正交表能够找到一个接近全局最优的解,特别是在主效应占主导的情况下。

局限性

  1. 复杂交互效应:如果某问题的复杂交互效应对结果影响较大,而正交表没有充分考虑这些交互效应,可能导致结果不完全准确。
  2. 全局最优解:正交表提供的是一种简化的优化方法,可能找到的是局部最优解而非全局最优解。

实验结果的可靠性

使用正交表进行实验,虽然次数减少,但在许多实际应用中,其结果仍然是可靠的。

对于寻找优化问题,正交表提供了一种高效的方法来识别潜在的最优解或接近最优解的组合。

但在极少数情况下,如果某些关键交互效应被忽略,结果可能略有偏差。

 

 

  • 微信
  • 交流学习,有偿服务
  • weinxin
  • 编程爱好者交流群
  • 资源分享,问题解决,技术交流。QQ群:424285828(新群)
  • weinxin
avatar

发表评论

avatar 登录者:匿名
匿名评论,评论回复后会有邮件通知

  

已通过评论:0   待审核评论数:0