1.背景
2020年,Das等人模拟学生在考试中争取最高分数,提出了学生心理优化算法(Student Psychology Based Optimization Algorithm,SPBO)。
2.算法原理
2.1算法思想
SPBO认为学生的表现可以通过考试成绩来衡量,最高分的学生被视为最好的学生;要成为最好的学生,需要在每门学科上投入更多的精力;学生对学科的学习程度取决于对该学科的兴趣; 学生成绩提高取决于他们的努力;学生的努力程度取决于心理因素;学生对学科的努力程度取决于能力、效率和兴趣。
SPBO将学生分为最好学生、好学生、普通学生和尝试随机改进的学生四类。
2.2算法过程
PS:N为班级总人数(种群人数),Dim为学生考试科目数(维度),个体X每个维度表示学生每一科成绩。
最好学生:
最好学生是指考试总分数最高者,表述为:
X
b
e
s
t
,
j
t
+
1
=
X
b
e
s
t
,
j
t
+
(
−
1
)
k
r
a
n
d
×
(
X
b
e
s
t
,
j
t
−
X
i
,
j
t
)
(1)
X_{best,j}^{t+1}=X_{best,j}^{t}+(-1)^krand\times(X_{best,j}^{t}-X_{i,j}^{t})\tag{1}
Xbest,jt+1=Xbest,jt+(−1)krand×(Xbest,jt−Xi,jt)(1)
其中,Xi,j表示从班级随机选取的一名学生。
好学生:
好学生是对每门课程都感兴趣的聪明学生,表述为:
X
i
,
j
t
+
1
=
X
b
e
s
t
,
j
t
+
r
a
n
d
×
(
X
b
e
s
t
,
j
t
−
X
i
,
j
t
)
X
i
,
j
t
+
1
=
X
i
,
j
t
+
[
r
a
n
d
×
(
X
b
e
s
t
,
j
t
−
X
i
,
j
t
)
]
+
[
r
a
n
d
×
(
X
i
,
j
t
−
X
m
e
a
n
,
j
t
)
]
(2)
\begin{aligned}X_{i,j}^{t+1}&=X_{best,j}^{t}+rand\times(X_{best,j}^{t}-X_{i,j}^{t})\\X_{i,j}^{t+1}&=X_{i,j}^{t}+[rand\times(X_{best,j}^{t}-X_{i,j}^{t})]+[rand\times(X_{i,j}^{t}-X_{mean,j}^{t})]\end{aligned}\tag{2}
Xi,jt+1Xi,jt+1=Xbest,jt+rand×(Xbest,jt−Xi,jt)=Xi,jt+[rand×(Xbest,jt−Xi,jt)]+[rand×(Xi,jt−Xmean,jt)](2)
其中,随机生成随机数r1,r2:如果r2<r1,选择(2)-1更新,否则选择(2)-2更新。
普通学生:
智商一般的学生称为普通学生,表述为:
X
i
,
j
t
+
1
=
X
i
,
j
t
+
r
a
n
d
×
(
X
m
e
a
n
,
j
t
−
X
i
,
j
t
)
(3)
X_{i,j}^{t+1}=X_{i,j}^{t}+rand\times(X_{mean,j}^{t}-X_{i,j}^{t})\tag{3}
Xi,jt+1=Xi,jt+rand×(Xmean,jt−Xi,jt)(3)
尝试随机改进的学生:
这类学生对所有科目采取随机态度,对应的努力程度也是随机,表述为:
X
i
,
j
t
+
1
=
X
m
i
n
,
j
+
r
a
n
d
×
(
X
m
a
x
,
j
−
X
m
i
n
,
j
)
(4)
X_{i,j}^{t+1}=X_{min,j}+rand\times(X_{max,j}-X_{min,j})\tag{4}
Xi,jt+1=Xmin,j+rand×(Xmax,j−Xmin,j)(4)
伪代码:
3.结果展示
4.参考文献
[1] Das B, Mukherjee V, Das D. Student psychology based optimization algorithm: A new population based optimization algorithm for solving optimization problems[J]. Advances in Engineering software, 2020, 146: 102804.