【智能算法】学生心理优化算法(SPBO)原理及实现

2024-03-31 05:52

本文主要是介绍【智能算法】学生心理优化算法(SPBO)原理及实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

目录

    • 1.背景
    • 2.算法原理
      • 2.1算法思想
      • 2.2算法过程
    • 3.结果展示
    • 4.参考文献


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,jtXi,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,jtXi,jt)=Xi,jt+[rand×(Xbest,jtXi,jt)]+[rand×(Xi,jtXmean,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,jtXi,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,jXmin,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.

这篇关于【智能算法】学生心理优化算法(SPBO)原理及实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/863563

相关文章

MySQL更新某个字段拼接固定字符串的实现

《MySQL更新某个字段拼接固定字符串的实现》在MySQL中,我们经常需要对数据库中的某个字段进行更新操作,本文就来介绍一下MySQL更新某个字段拼接固定字符串的实现,感兴趣的可以了解一下... 目录1. 查看字段当前值2. 更新字段拼接固定字符串3. 验证更新结果mysql更新某个字段拼接固定字符串 -

java实现延迟/超时/定时问题

《java实现延迟/超时/定时问题》:本文主要介绍java实现延迟/超时/定时问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java实现延迟/超时/定时java 每间隔5秒执行一次,一共执行5次然后结束scheduleAtFixedRate 和 schedu

Java Optional避免空指针异常的实现

《JavaOptional避免空指针异常的实现》空指针异常一直是困扰开发者的常见问题之一,本文主要介绍了JavaOptional避免空指针异常的实现,帮助开发者编写更健壮、可读性更高的代码,减少因... 目录一、Optional 概述二、Optional 的创建三、Optional 的常用方法四、Optio

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.

Redis实现延迟任务的三种方法详解

《Redis实现延迟任务的三种方法详解》延迟任务(DelayedTask)是指在未来的某个时间点,执行相应的任务,本文为大家整理了三种常见的实现方法,感兴趣的小伙伴可以参考一下... 目录1.前言2.Redis如何实现延迟任务3.代码实现3.1. 过期键通知事件实现3.2. 使用ZSet实现延迟任务3.3

基于Python和MoviePy实现照片管理和视频合成工具

《基于Python和MoviePy实现照片管理和视频合成工具》在这篇博客中,我们将详细剖析一个基于Python的图形界面应用程序,该程序使用wxPython构建用户界面,并结合MoviePy、Pill... 目录引言项目概述代码结构分析1. 导入和依赖2. 主类:PhotoManager初始化方法:__in

springboot filter实现请求响应全链路拦截

《springbootfilter实现请求响应全链路拦截》这篇文章主要为大家详细介绍了SpringBoot如何结合Filter同时拦截请求和响应,从而实现​​日志采集自动化,感兴趣的小伙伴可以跟随小... 目录一、为什么你需要这个过滤器?​​​二、核心实现:一个Filter搞定双向数据流​​​​三、完整代码

SpringBoot利用@Validated注解优雅实现参数校验

《SpringBoot利用@Validated注解优雅实现参数校验》在开发Web应用时,用户输入的合法性校验是保障系统稳定性的基础,​SpringBoot的@Validated注解提供了一种更优雅的解... 目录​一、为什么需要参数校验二、Validated 的核心用法​1. 基础校验2. php分组校验3

Python实现AVIF图片与其他图片格式间的批量转换

《Python实现AVIF图片与其他图片格式间的批量转换》这篇文章主要为大家详细介绍了如何使用Pillow库实现AVIF与其他格式的相互转换,即将AVIF转换为常见的格式,比如JPG或PNG,需要的小... 目录环境配置1.将单个 AVIF 图片转换为 JPG 和 PNG2.批量转换目录下所有 AVIF 图