Many-Objective Artificial Bee Colony笔记

ABC

伪代码

  • Initialization Phase
  • REPEAT
    • Employed Bees Phase
    • Onlooker Bees Phase
    • Scout Bees Phase
    • Memorize the best solution achieved so far
  • UNTIL(Cycle=Maximum Cycle Number or a Maximum CPU time)

常量:搜索空间\mathbb{R}^n,population size SN

Initialization Phase:随机生成SN个蜜蜂(备选解)

    \[x_{mi}=l_i+rand(0, 1)*(u_i-l_i)\]

其中x_{mi}是第m个蜜蜂的第i维,l_iu_i分别是第i维的下界和上界

Employed Bees Phase:每一个蜜蜂随机找另一个蜜蜂,然后组合一下,然后根据fitness挑好的

    \[v_{mi}=x_{mi}+\phi_{mi}(x_{mi}-x_{ki})\]

    \[fit_m(x_m) = \begin{cases}\frac{1}{1+f_m(x_m)} & f_m(x_m)\ge0 \\ 1+abs(f_m(x_m)) & f_m(x_m)<0\end{cases}\]

Onlooker Bees Phase:利用基于employed bees的fitness定义的概率,挑一个employed bees的位置,来组合一下,然后根据fitness挑好的

    \[p_m=\frac{fit_m(x_m)}{\sum_{m=1}^{SN}fit_m(x_m)}\]

Scout Bees Phase:组合达到一定次数而没有更优解的话,则放弃当前解,随机再找一个解继续employ或者onlook

MO

dominance定义:给定两个解p、q,p dominate q当且仅当f(p)\prec f(q),即f(p)在所有维度均小于f(q)

rank伪代码

  • for each p\in P
    • S_p=\emptyset
    • n_p=0
    • for each q\in P
      • if p\prec q then
        • S_p = S_p\cup \{q\}
      • else if q\prec p then
        • n_p = n_p+1
    • if n_p = 0 then
      • p_{rank} = 1
      • F_1 = F_1\cup\{p\}
  • i=1
  • while F_i\neq \emptyset
    • Q = \emptyset
    • for each p \in F_i
      • for each q\in S_p
        • n_q = n_q-1
        • if n_q = 0 then
          • q_{rank} = i+1
          • Q = Q\cup\{q\}
    • i=i+1
    • F_i = Q

crowd伪代码

  • l=|I|
  • for each i, set I[i]_{distance}=0
  • for each objective m
    • I=sort(I, m)
    • I[1]_{distance} = I[l]_{distance} = \infty
    • for i=2 to l-1
      • I[i]_{distance} = I[i]_{distance}+\frac{I[i+1].m - I[i-1].m}{f_m^{max}-f_m^{min}}

mainloop伪代码

  • R_t = P_t\cup Q_t
  • F = rank(R_t)
  • P_{t+1} = \emptyset
  • i=1
  • while |P_{t+1}|+|F_i|\le N
    • crowd(F_i)
    • P_{t+1} = P_{t+1}\cup F_i
    • i = i+1
  • sort(F_i, distance)
  • P_{t+1} = P_{t+1}\cup F_i[1: N-|P_{t+1}|]
  • Q_{t+1} = makenewpopulation(P_{t+1})
  • t = t+1

Inversions

将当前路径写成TSP,按照顺序构建矩阵C,检查左下角元素判断是否替换,如此循环往复

核心思想是换掉有路径点顺序,使得没有交叉路径

参考文献

http://www.scholarpedia.org/article/Artificial_bee_colony_algorithm

Deb, K., Pratap, A., Agarwal, S., & Meyarivan, T. A. M. T. (2002). A fast and elitist multiobjective genetic algorithm: NSGA-II. IEEE transactions on evolutionary computation6(2), 182-197.

Martin-Moreno, R., & Vega-Rodriguez, M. A. (2018). Multi-objective artificial bee colony algorithm applied to the bi-objective orienteering problem. Knowledge-Based Systems154, 93-101.

Croes, G. A. (1958). A method for solving traveling-salesman problems. Operations research6(6), 791-812.

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据