动态环境下的优化算法研究:SDPSO与VRPTW的探索
1. 动态环境下的SDPSO算法
1.1 动态环境模拟
在动态环境的优化问题中,环境的变化速率至关重要。通过离散移动步长函数来控制环境变化速率:
[Y_i = A\times Y_{i - 1}\times(1 - Y_{i - 1})]
其中,(A)为常数,(Y_i)是第(i)次迭代的步长。这个函数生成的(Y)值用于控制动态环境的变化步长。(A)值不同,产生的移动行为也不同:
- 当(A)在(1)到(3)之间时,每次迭代生成恒定的(Y)值。
- 当(A)在(3)到(3.4)之间时,交替迭代生成两个不同的(Y)值,代表移动锥体的两种步长。
- 当(A)大于(3.5)时,生成混沌的(Y)值序列。
1.2 追踪最优结果的测量
算法在动态环境中追踪最优解的能力通过离线误差来衡量。离线误差定义为:
[e_{offline}(t) = \min(d_t(p_i, h)); (i = 1\ldots N)]
其中,(d_t(p_i, h))是第(t)次迭代时粒子与最优解的距离,(N)是环境中粒子的数量。该距离值反映了算法在整个搜索过程中的追踪能力。
1.3 实验实现
为评估SDPSO算法在动态环境中追踪最优解移动的能力,将其与其他三种PSO算法(经典PSO、RPSO10和RPSO50)在由DF1函数生成的十二种不同动态环境中进行比较。实验设置如下:
- PSO算法参数 :(c_1)和(c_2)设为(2.01),惯性权重(w = 0.729844),粒