1. 概述

在计算机科学中,存在多种优化算法,多宇宙优化算法(Multi-Verse Optimizer, MVO) 是其中之一。

本文中,我们将介绍 MVO 的基本原理和工作机制,随后通过一个数值示例演示其在优化问题中的应用。

2. 什么是 MVO?

MVO 是一种基于种群的元启发式优化算法,灵感来源于多宇宙理论中的物理概念:白洞、黑洞和虫洞

该算法由 Seyedali Mirjalili 于 2015 年提出,用于解决数值优化问题。它模拟了多个宇宙之间的交互行为,通过这些交互不断逼近最优解。

3. 多宇宙理论简介

多宇宙理论认为,除了我们所处的宇宙之外,还存在多个平行宇宙。这些宇宙之间可能相互作用,甚至发生碰撞。每个宇宙都有其独特的物理规律。

3.1. 白洞

白洞是理论上存在的天体,与黑洞相反,它不断向外喷发物质和能量。虽然尚未被直接观测到,但“大爆炸”被认为是白洞的一种表现形式。

white holes

3.2. 黑洞

黑洞是一种引力极强、连光都无法逃脱的天体。它在宇宙中广泛存在,并对周围空间产生显著影响。

black holes

3.3. 虫洞

虫洞是连接宇宙不同区域的“时空隧道”,理论上允许物体在不同宇宙或同一宇宙的不同区域之间快速移动。

wormholes

3.4. MVO 中宇宙的交互规则

MVO 模拟了以下宇宙交互规则:

✅ 白洞出现概率随宇宙膨胀率(inflation rate)增加而增加
✅ 黑洞出现概率随宇宙膨胀率增加而减少
✅ 膨胀率高的宇宙倾向于通过白洞向外发送物体
✅ 膨胀率低的宇宙倾向于通过黑洞接收物体
✅ 所有宇宙中的物体都可能通过虫洞随机向最优宇宙靠拢

4. MVO 数学模型

MVO 的搜索过程分为两个阶段:探索(exploration)开发(exploitation)

  • 白洞与黑洞 用于探索搜索空间
  • 虫洞 用于开发已有解,逐步逼近最优解

每个解对应一个“宇宙”,每个变量对应宇宙中的一个“物体”。解的质量由其适应度函数值决定,这个值与膨胀率成正比。

4.1. 轮盘赌机制

MVO 使用轮盘赌机制选择白洞对应的宇宙。每次迭代中,所有宇宙按适应度排序后,通过轮盘赌方式选择一个宇宙作为白洞来源。

mv4

4.2. 宇宙选择的数学模型

设宇宙集合为:

$$ U = \begin{bmatrix} x_1^1 & x_1^2 & \cdots & x_1^d \ x_2^1 & x_2^2 & \cdots & x_2^d \ \vdots & \vdots & \ddots & \vdots \ x_n^1 & x_n^2 & \cdots & x_n^d \end{bmatrix} $$

其中 $ d $ 为参数数量,$ n $ 为宇宙总数。

选择宇宙的公式如下:

$$ U = \left{ \begin{array}{ll} x_k^j, & r_1 < \text{normalized inflation rate}(U_i) \ x_i^j, & r_1 \geq \text{normalized inflation rate}(U_i) \end{array} \right. $$

其中:

  • $ x_k^j $:第 $ k $ 个宇宙的第 $ j $ 个参数
  • $ x_i^j $:第 $ i $ 个宇宙的第 $ j $ 个参数
  • $ r_1 $:[0,1] 区间内的随机数

4.3. 虫洞机制的数学模型

虫洞机制用于局部搜索,其公式如下:

$$ x_i^j = \left{ \begin{array}{ll} X_j + TDR \times ((UB_j - LB_j) \times r_4 + LB_j), & r_3 < 0.5 \ X_j - TDR \times ((UB_j - LB_j) \times r_4 + LB_j), & r_3 \geq 0.5 \end{array} \right. $$

其中:

  • $ X_j $:最优宇宙的第 $ j $ 个参数
  • $ UB_j, LB_j $:第 $ j $ 维的上下界
  • $ r_2, r_3, r_4 $:随机数
  • $ WEP $:虫洞存在概率
  • $ TDR $:移动距离率

参数更新公式:

$$ WEP = \min + l \times \left(\frac{\max - \min}{L}\right) $$

$$ TDR = 1 - \frac{l^{1/p}}{L^{1/p}} $$

其中 $ l $ 为当前迭代次数,$ L $ 为最大迭代次数,$ p $ 为开发精度。

5. MVO 算法实现

5.1. 算法流程

algorithm MultiVerseOptimizer(U):
    // U: 初始随机宇宙集合
    Initialize WEP, TDR, Best Universe
    SU <- Sorted Universes
    NI <- Normalize inflation rate

    while not end condition met:
        Evaluate fitness of all universes
        for each universe i:
            Update WEP and TDR
            for each object j:
                r1 = random()
                if r1 < NI(U[i]):
                    selected = RouletteWheelSelection(-NI)
                    U[i][j] = SU[selected][j]
                r2 = random()
                if r2 < WEP:
                    r3 = random()
                    r4 = random()
                    if r3 < 0.5:
                        U[i][j] = Best[j] + TDR * ((ub[j] - lb[j]) * r4 + lb[j])
                    else:
                        U[i][j] = Best[j] - TDR * ((ub[j] - lb[j]) * r4 + lb[j])
    return Best Universe

5.2. 时间复杂度分析

MVO 的时间复杂度主要受以下因素影响:

  • 迭代次数 $ l $
  • 宇宙数量 $ n $
  • 参数维度 $ d $

每次迭代中需进行排序(O(n²))和轮盘赌选择(O(n log n)),因此总时间复杂度为:

$$ O(MVO) = O(l(n^2 + n \cdot d \cdot \log n)) $$

6. 数值示例

6.1. 初始化参数

设定宇宙数量 $ N = 4 $,初始化如下:

编号 参数1 参数2 参数3 参数4 参数5
1 -70.85 85.17 -43.56 -26.99 -33.58
2 17.01 -1.47 95.19 -38.17 79.50
3 -85.33 30.98 -92.71 -75.82 -0.07
4 64.47 78.02 -34.75 83.15 23.06

6.2. 计算适应度值

使用如下适应度函数:

$$ f(x) = 4x_1^2 - 2.1x_1^4 + \frac{1}{3}x_1^6 + x_1x_2 - 4x_2^2 + 4x_2^4 $$

计算每个宇宙的适应度值如下:

编号 适应度值
1 3.8063e⁴
2 4.5605e⁴
3 4.1588e⁴
4 3.9376e⁴

6.3. 选择最优宇宙

适应度最小的宇宙为当前最优解:

✅ 最优宇宙编号:1
✅ 适应度值:3.8063e⁴

更新参数:

$$ WEP = 0.2080,\quad TDR = 0.5358 $$

6.4. 轮盘赌选择白洞宇宙

使用轮盘赌机制选择白洞宇宙:

  • 适应度越高,越可能是白洞
  • 当前选择宇宙 2 为白洞

6.5. 虫洞机制更新

使用虫洞机制更新宇宙参数:

$$ x_i^j = \left{ \begin{array}{ll} X_j + TDR \times ((UB_j - LB_j) \times r_4 + LB_j), & r_3 < 0.5 \ X_j - TDR \times ((UB_j - LB_j) \times r_4 + LB_j), & r_3 \geq 0.5 \end{array} \right. $$

假设 $ r_2 = 0.6708 > WEP = 0.2080 $,则不执行虫洞更新。

6.6. 更新最优宇宙

重复上述过程,直到达到最大迭代次数。最终找到最优解:

✅ 最优适应度值:0.0049209

7. 总结

MVO 是一种基于多宇宙理论的元启发式优化算法,适用于解决全局无约束和有约束优化问题。

✅ 优点:

  • 探索能力强(白洞/黑洞机制)
  • 开发能力强(虫洞机制)
  • 收敛速度快
  • 易于实现

⚠️ 注意:

  • 参数设置对性能影响较大
  • 适合高维非线性问题,但不适用于实时性要求极高的场景

MVO 在工程优化、机器学习参数调优、图像处理等领域均有广泛应用。


原始标题:Multi-Verse Optimizer