智能优化算法:未来搜索算法-附代码
摘要:未来搜索算法(Future search algorithm,FSA) 是 M. Elsisi于 2018 年通过模仿人类向往美好生活而提出的一种新颖搜索算法。该算法通过建立数学模型模拟人与人之间最优生活( 局部搜索) 和历史最优生活( 全局搜索) 来获得最优解。与其他算法相比,FSA 具有调节参数少、收敛速度快、寻优能力强等优点。
1.算法原理
FSA 数学描述简述如下:
1.1 算法初始化
FSA 通过式(1) 初始化当前解:
S
(
i
,
:
)
=
L
b
+
(
U
b
−
L
b
)
∗
r
a
n
d
(
1
,
d
)
(1)
S(i,:)=Lb + (Ub-Lb)*rand(1,d)\tag{1}
S(i,:)=Lb+(Ub−Lb)∗rand(1,d)(1)
式中
S
(
i
,
:
)
S( i,: )
S(i,:) —第 i 个国家/地区当前解;
U
b
,
L
b
Ub,Lb
Ub,Lb—搜索空间的上,下限;
r
a
n
d
rand
rand—均匀分布随机数;
d
d
d—问题维度;
1.2 局部解和全局最优解
FSA 将每个国家/地区当前最优解定义为局部最优解
L
S
LS
LS,将所有国家/地区当前最优解定义为全局最优解
G
S
GS
GS,并通过迭代过程获得待优化问题最优解。FSA 通过式(3) 、(4)实现局部解和全局最优解的更新:
S
(
i
,
:
)
L
=
(
L
S
(
i
,
:
)
−
S
(
i
,
:
)
)
∗
r
a
n
d
(3)
S(i,:)_L=(LS(i,:)-S(i,:))*rand\tag{3}
S(i,:)L=(LS(i,:)−S(i,:))∗rand(3)
S ( i , : ) G = ( G S − S ( i , : ) ) ∗ r a n d (4) S(i,:)_G=(GS-S(i,:))*rand \tag{4} S(i,:)G=(GS−S(i,:))∗rand(4)
式中 S ( i , : ) L S(i,:)_L S(i,:)L 、 S ( i , : ) G S(i,:)_G S(i,:)G —第 i i i个国家/地区局部解和全局最优解; L S ( i , : ) LS(i,:) LS(i,:) —第 i i i个国家/地区局部最优解; G S GS GS—所有国家/地区全局最优解; r a n d rand rand—[0,1]范围内随机数。
1.3 定义新解
在获得第
i
i
i个国家/地区局部解和全局最优解后,利用式(5) 重新定义当前解:
S
(
i
,
:
)
=
S
(
i
,
:
)
+
S
(
i
,
:
)
L
+
S
(
i
,
:
)
G
(5)
S(i,:)=S(i,:)+S(i,:)_L+S(i,:)_G\tag{5}
S(i,:)=S(i,:)+S(i,:)L+S(i,:)G(5)
1.4 更新随机初始值
FSA 在更新局部最优解
L
S
LS
LS和全局最优解
G
S
GS
GS 后,利用式(6) 更新式(1) 的随机初始值:
S
(
i
,
:
)
=
G
S
+
[
G
S
−
L
S
(
i
,
:
)
]
∗
r
a
n
d
(6)
S(i,:)=GS+[GS-LS(i,:)]*rand \tag{6}
S(i,:)=GS+[GS−LS(i,:)]∗rand(6)
算法步骤
step1.初始化国家\地区
step2.计算适应度值,记录全局最优值和局部最优值
step3.根据局部最优解和全局最解更新国家、地区位置
step4.计算适应度值,记录全局最优值和局部最优值
step5.根据式(6)更新初始化国家、地区。
step6.判断是否满足停止条件,如果满足则输出最优解,否则重复步骤step2-6。
2.算法结果
3.参考文献
[1]M. Elsisi. Future search algorithm for optimization[J]. Springer Berlin Heidelberg,2019,12(1):
[1]郭存文,崔东文.PCA-FSA-MLR模型及在径流预测中的应用研究[J].人民珠江,2021,42(06):91-98.