智能优化算法:学生心理学优化算法

文章目录

  • 智能优化算法:学生心理学优化算法
    • 1.算法原理
    • 2.算法结果
    • 3.参考文献
    • 4.Matlab代码

摘要:学生心理学优化算法(Student psychology based optimization algorithm,SPBO)是于2020 提出的一种基于学生向往提高成绩的心理提出的新颖智能优化算法。具有收敛速度块,精度高等特点。

1.算法原理

(1)成绩优等学生:在考试中获得最高分的学生被认为是班上最好的学生。最好的学生总是试图通过在班上取得最高分来保持自己的地位。为了获得最高的分数并保持她/他的位置,最好的学生需要在每一门科目上付出比其他学生更多的努力。所以,我们可以理解,最好的学生需要付出比随机选择的学生更多的努力。最好的学生的进步可以通过(1)来表达。
Xbestnew=Xbest+(−1)k∗rand(Xbest−Xj)(1)X_{bestnew}=X_{best}+(-1)^k*rand(X_{best}-X_j)\tag{1} Xbestnew​=Xbest​+(−1)k∗rand(Xbest​−Xj​)(1)
式中:kkk随机选择1或2,randrandrand为[0,1]内随机数。XbestX_{best}Xbest​最佳和XjX_jXj​分别是在某一科目中最好的学生和随机选择的第jjj​​名学生的成绩。

(2)成绩次优学生:如果一个学生对任何一门课都感兴趣,那么他/她就会在那门课上付出越来越多的努力,这样他/她的整体成绩就会得到提高。这类学生可以说,学科聪明的好学生。这类学生的选择是一个随机过程,因为不同学生的心理是不同的。为了在考试中取得最高分而成为最优秀的学生,一些学生试图付出与最优秀学生相似或更好的努力。这类学生可以在(2)的帮助下被表示出来。与此同时,一些学生试图在学习上付出比班上一般学生更多的努力,并试图跟随最好的学生的努力。这类学生可以通过(3)来表达。
Xnewi=Xbest+rand∗(Xbest−Xi)(2)X_{newi}=X_{best}+rand*(X_{best}-X_i)\tag{2} Xnewi​=Xbest​+rand∗(Xbest​−Xi​)(2)

Xnewi=Xi+rand∗(Xbest−Xi)+rand∗(Xi−Xmean)(3)X_{newi}=X_i+rand*(X_{best}-X_i)+rand*(X_i-X_{mean})\tag{3} Xnewi​=Xi​+rand∗(Xbest​−Xi​)+rand∗(Xi​−Xmean​)(3)

式中,XiX_iXi​为该科目第i个学生的成绩/成绩,为XmeanX_{mean}Xmean​该班级在该科目上的平均成绩,randrandrand为介于0到1之间的随机数。

(3)成绩一般学生:由于学生所付出的努力取决于学生对课程的兴趣,如果学生对某些课程不太感兴趣,学生就会在该课程上付出一般的努力。 在对那门课付出一般的努力的同时,学生们会在其他科目上付出更多的努力,这样他们的整体成绩就会得到提高。 这类学生可以说是学科水平一般的学生。 根据不同的学生心理,这类学生的选择也是一个随机的过程。 这类学生的表现可以用(4)表示。
Xnewi=Xi+rand∗(Xmean−Xi)(4)X_{newi}=X_i+rand*(X_{mean}-X_i)\tag{4} Xnewi​=Xi​+rand∗(Xmean​−Xi​)(4)
其中,XiX_iXi​和XmeanX_{mean}Xmean​​按顺序表示第i个学生的成绩和全班在该学科上的平均成绩,而randrandrand​是0到1之间的一个随机数。

(4)随机提高成绩的学生: 除了上述三种类型的学生外,还有一些学生尝试自己提高成绩。他们会根据不同的科目在一定程度上随机地努力学习。这类学生所以对科目尽量随意下功夫在考试中的整体表现有所提高。这类学生可以用(5)。
Xnewi=Xmin+ran∗(Xmax−Xmin)(5)X_{newi}=X_{min}+ran*(X_{max}-X_{min})\tag{5} Xnewi​=Xmin​+ran∗(Xmax​−Xmin​)(5)
式中,XminX_{min}Xmin​和XmaxX_{max}Xmax​​分别为该科目分数的最小值和最大值。

算法流程:

步骤1:初始化种群。

步骤2:计算适应度函数值。

步骤3:根据适应度值进行学生分类,根据式(1)更新优等学生位置。

步骤4:根据公式(2)和(3)更新次优等学生的位置。

步骤5:根据式(4)更新一般学生的位置。

步骤6:根据式(5)随机更新想提高成绩的学生位置。

步骤7:重新评估适应度函数值,并更新全局最优解和最优学生位置。

步骤8:判断是否满足迭代条件,若是则输出全局最优解和最优学生位置,否则返回步骤2重新迭代更新计算。

2.算法结果

3.参考文献

[1]Bikash Das et al. Student psychology based optimization algorithm: A new population based optimization algorithm for solving optimization problems [J]. Advances in Engineering Software, 2020,46, 102804.

4.Matlab代码

智能优化算法:学生心理学优化算法 -附代码相关推荐

  1. 学生心理学优化(SPBO)算法(含开源代码)

    先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论.我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年提出 ...

  2. 基于粒子群算法优化的Elman神经网络数据预测-附代码

    基于粒子群算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于粒子群算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电 ...

  3. 基于布谷鸟算法优化的Elman神经网络数据预测-附代码

    基于布谷鸟算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于布谷鸟算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电 ...

  4. 基于鲸鱼算法优化的Elman神经网络数据预测-附代码

    基于鲸鱼算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于鲸鱼算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...

  5. 基于海鸥算法优化的Elman神经网络数据预测-附代码

    基于海鸥算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于海鸥算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...

  6. 基于遗传算法优化的Elman神经网络数据预测-附代码

    基于遗传算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于遗传算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...

  7. python 随机森林调参_Python机器学习实践:随机森林算法训练及调参-附代码

    原标题:Python机器学习实践:随机森林算法训练及调参-附代码 文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 来源 | 博客园 作者 | 战争热诚 ...

  8. 基于蜣螂优化的Elman神经网络数据预测-附代码

    基于蜣螂算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于蜣螂算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...

  9. 【AI超级美发师】深度学习算法打造染发特效(附代码)

    [新智元导读]如今,在类似天天P图.美图秀秀等手机APP中,给指定照片或视频中的人物更换头发颜色已经是再正常不过的事情了.那么本文便介绍了该功能背后如AI头发分割模块.头发换色.颜色增强与修正模块等技 ...

  10. 快速排序 c++_算法浅谈——分治算法与归并、快速排序(附代码和动图演示)

    本文始发于个人公众号:TechFlow 在之前的文章当中,我们通过海盗分金币问题详细讲解了递归方法. 我们可以认为在递归的过程当中,我们通过函数自己调用自己,将大问题转化成了小问题,因此简化了编码以及 ...

最新文章

  1. SELECT中常用的子查询操作
  2. .net core2.0下使用Identity改用dapper存储数据
  3. Linux监控CPU关闭服务器,监控Linux服务器CPU和内存
  4. 桔子浏览器电脑版不显示图片怎么办 看不到图片怎么解决
  5. window 写txt 换行
  6. php mysql 链表_浅谈PHP链表数据结构(单链表)
  7. java高性能编程是什么,Java高性能编程
  8. Linux常用命令、权限管理和开发工具详细介绍
  9. 零基础学HCIE难度大吗?
  10. 用python做自动化控制-python用于自动化控制编程
  11. 欲戴王冠,必承其重。
  12. NSString+NSMutableString+NSValue+NSAraay用法汇总
  13. 免费证件照换底色微信小程序
  14. 变上限积分求导的原理
  15. Gym 100818F Irrational Roots
  16. 自恢复保险丝工作原理
  17. matlab的syms无法在函数中使用_matlab syms什么意思_常见问题解析
  18. 详解如何进入、退出docker容器的方法
  19. python中rest是什么意思,Python中的REST调用
  20. 诺基亚如何利用计算机上网,诺基亚S60怎么通过笔记本的WIFI上网?

热门文章

  1. MySQL 使用utf8mb4代替utf8
  2. linux 自动清理var log,Linux 系统 /var/log/journal/ 垃圾日志清理-Fun言
  3. java安全管理器视频_安全管理器 (Security Manager)
  4. syslog收到的日志存放在哪里_Linux使用RsyslogServer记录远程主机系统日志
  5. 新安装的centos使用ifconfig无效或者无法使用的解决办法
  6. 初见mybatis-plus(快速创建入门案例)
  7. php不兼容_怎么解决php不兼容问题
  8. python数字求和为什么得不出结果_WPS表格求和问题,只出公式不出结果数字
  9. 释放pytorch占用的gpu显存_pytorch程序异常后删除占用的显存操作
  10. ajax req.getsession() 获取不到_[AJAX] -AJAX,你要学的,都在这儿(案例小剧场-搜索框提示(经典))...