学前教育优化算法,原理详解,MATLAB代码免费获取

学前教育优化算法(Preschool Education Optimization Algorithm,PEOA)是一种受学前教育过程中孩童的活动行为启发而提出的元启发式优化算法。学前教育在儿童的早期发展中起着至关重要的作用,并为他们未来的学习旅程奠定基础。作为幼儿学习者发展背后的指导力量,幼儿教师使儿童能够踏上自己的求知欲,自我发现和个人成就的终身旅程。学前教育中这些智能交互的数学建模是PEOA设计的基本灵感。PEOA的数学模型可分为三个阶段:(1)幼儿教师教育影响力的逐步增长;(2)教师引导下的个体知识发展;(3)个体知识和自我意识的增长。

11eba1aff9b1cef9c177c97d1d7d9d56.png

该成果于2023年发表在Nature子刊“Scientific Reports”上。PEOA方法目前被引3次。

c7062cde0950aca5517d8ba8a619da04.png

1、算法原理

(1)初始化

提出的PEOA方法是一种基于种群的技术,可以根据其成员的搜索能力为基于重复的过程中的优化问题提供合适的解决方案。PEOA种群由社区的成员组成,因此这些成员在搜索空间中的位置为问题的决策变量提供了值。每个群体成员都是问题的候选解,从数学的角度来看,可以用向量表示。由这些向量组成的PEOA种群可以根据下式使用矩阵表示。

式中X(t)为PEOA种群矩阵,→X i(t)为第i个PEOA成员,xi,j(t)为第j个变量的值,由第i个PEOA成员决定,N为PEOA种群成员的数量,m为问题变量的数量,t∈{1,2,…, T}是迭代计数器(即实际人口的数量),T是迭代的总次数。算法开始时,使用下式随机生成PEOA种群在搜索空间中的初始位置。

其中r是区间[0,1]内均匀分布的随机数,LBJ和ubj分别是第j个问题变量的下界和上界。

由于每个PEOA成员都是问题变量的候选解,因此可以根据每个PEOA成员的建议值计算问题的目标函数。因此,问题的目标函数的计算值可以根据下式用向量表示。

式中→F (t)为目标函数向量,Fi(t)为基于第i个PEOA成员的目标函数值。

通过对目标函数计算值的比较,将目标函数中提供最优值的成员称为最优总体成员→X best(t)。考虑到在PEOA的每次迭代中,种群成员在搜索空间中的位置都会更新,因此计算目标函数的新值。基于目标函数评估的新值,在每次迭代中也应该更新最佳成员。

搜索空间中PEOA人口的更新过程分为三个阶段:(i)幼儿教师教育影响力的逐步增长阶段,(ii)教师引导下的个体知识发展阶段,(iii)个体知识和自我意识的增长阶段。

(2)幼儿教师教育影响力的逐渐增长(开发阶段)

很明显,教师的角色随着孩子的年龄而显著变化,因此取决于学校的教育水平。在教育过程的开始,在幼儿园,也就是在孩子0 - 2岁的时候,教师的主要作用是养育,教育作用是微不足道的。在2 - 5岁的幼儿阶段,即幼儿园阶段,教育角色逐渐超过照顾角色,在幼儿园阶段,即5 - 6岁的幼儿阶段,幼儿教师的教学影响水平与随后的小学教育阶段几乎处于同一水平。

在PEOA的设计中,最好的成员是幼儿教师。因为在学前教育中,教师的影响力随着时间的推移而增加。为了模拟这一阶段的PEOA,首先,根据教师的影响,使用下式计算每个PEOA成员的新位置。然后,如果目标函数的值在新位置上得到改善,则根据下式,这个新位置取代相应成员的先前位置。

30c9b372ed7ad0f032914037ca220829.png d6b5efc561458063b8e3588107879586.png

式中 为基于PEOA第一阶段的第i个PEOA成员的新计算位置, 为其第j维,K(t):= Xbest(t)为幼师(即幼儿园教师),t为迭代计数器,T为迭代总数。

(3)第二阶段:教师指导下的个人知识发展(探索阶段)

在PEOA的这一阶段,人口成员根据建模儿童的活动进行更新,因为儿童试图模仿工作并接受教师的经验,以比他们的同学更成功。为了模拟PEOA的这一阶段,首先使用下式在跟随幼儿园教师的基础上计算群体中每个成员的新位置。这一过程导致群体成员位置的大幅度变化,这对问题空间的不同区域的探索和全局搜索有积极的影响。根据下式,如果对群体中每个成员计算的新位置提高了目标函数的值,则可以接受。

533d46229737586dd215fee5db13ac2c.png

式中, 为根据PEOA第二阶段计算出的第i个PEOA成员的新位置, 为其第j维,→rand为区间[0,1]内均匀分布得出的m维的随机向量,→rand2是由集合{1,2}中的均匀分布生成的m维的随机向量。

(4)第三阶段:个人知识和自我意识的增长(开发阶段)

除了幼儿园老师的影响外,每个孩子都试图通过不同的方式来提高自我意识,例如玩游戏,分析可能性,期望等。

在PEOA的第三阶段,人口成员更新的基础上建模儿童的努力,提高自我意识。为了模拟PEOA的这一阶段,首先,使用下式在群体的每个成员附近随机生成新的位置。这个过程会导致种群成员位置的微小变化,这在增加PEOA局部搜索和利用能力方面发挥了重要作用,可以在发现的解决方案周围找到更好的解决方案。根据下式,如果它改善了目标函数的值,则为群体的每个成员所建议的计算位置是可接受的。

b61b84f35f7a5b0e24b2c05f2d01c790.png

式中, 为根据PEOA第三阶段计算出的第i个PEOA成员的新位置, 为其第j维,→rand为区间[0,1]内均匀分布得出的m维的随机向量。

在基于第一到第三阶段更新了所有PEOA成员之后,完成了PEOA的第一次迭代。在完成每次迭代之后,问题的最佳候选解决方案将被更新。然后,根据计算出的种群成员位置的新值及其对应的目标函数,算法进入下一次迭代。在算法迭代过程中找到的最佳候选解作为问题的解。算法1给出了PEOA实现过程中不同步骤的伪代码。

596d9c0bb57a3543a91b614609c0b4c5.png

2、结果展示

fb54a1833dff274a21468573adb41fbf.png

43c68f14b8b777e0f75a403e17c6ee49.png

cb7ed339fc56a1b5893ed929eefc873d.png

74d2a2df9c9821ea6625bc62e32a806c.png

09d45ffae561ebb2a87d7150b25eff6e.png

3、MATLAB核心代码

%% 淘个代码 %%
% 微信公众号搜索:淘个代码,获取更多代码
% 学前教育优化算法(Preschool Education Optimization Algorithm,PEOA)
function[Best_score,Best_pos,PEOA_curve]=PEOA(SearchAgents,T,lowerbound,upperbound,dimension,fitness)
lowerbound=ones(1,dimension).*(lowerbound);                              % Lower limit for variables
upperbound=ones(1,dimension).*(upperbound);                              % Upper limit for variables
%%
for i=1:dimensionX(:,i) = lowerbound(i)+rand(SearchAgents,1).*(upperbound(i) - lowerbound(i));                          % Initial population
end
for i =1:SearchAgentsL=X(i,:);fit(i)=fitness(L);
end
%%
X_old=X;
F_old=fit;
for t=1:T%% update the best member[best , blocation]=min(fit);if t==1xbest=X(blocation,:);                                           % Optimal locationfbest=best;                                           % The optimization objective functionelseif best<fbestfbest=best;xbest=X(blocation,:);end[worst , wlocation]=max(fit);RE_index=0.5;if fbest<0RE_index=1/RE_index;endif RE_index*mean(fit)<= fbestfor i=1:dimensionX(:,i) = lowerbound(i)+rand(SearchAgents,1).*(upperbound(i) -lowerbound(i));    % Initial populationendX(SearchAgents,:)=xbest;for i =1:SearchAgentsL=X(i,:);fit(i)=fitness(L);                  % Fitness evaluationendend%%%%K_t=xbest;for i=1:SearchAgentsif rem (t,2)==0RAND1=rand(1,dimension);RAND2=rand(1,dimension);elseRAND1=rand(1,1);RAND2=rand(1,1);end%%%% Phase 1: The gradual growth of the preschool teacher's educational influenceI=round(1+rand(1,1));X_P1(i,:)=(1-(t/T)).*X(i,:)+(t/T).*(K_t);%Eq(4)X_P1(i,:) = max(X_P1(i,:),lowerbound);X_P1(i,:) = min(X_P1(i,:),upperbound);% update position based on Eq (5)L=X_P1(i,:);F_P1(i)=fitness(L);if(F_P1(i)<fit(i))X(i,:) = X_P1(i,:);fit(i) = F_P1(i);end%% END Phase 1: The gradual growth of the preschool teacher's educational influence%%%% Phase 2: Individual knowledge development guided by the teacher (exploration)I=round(1+rand(1,1));X_P2(i,:)=X(i,:)+RAND2.*(K_t-I.*X(i,:));%Eq(6)X_P2(i,:) = max(X_P2(i,:),lowerbound);X_P2(i,:) = min(X_P2(i,:),upperbound);% update position based on Eq (7)L=X_P2(i,:);F_P2(i)=fitness(L);if(F_P2(i)<fit(i))X(i,:) = X_P2(i,:);fit(i) = F_P2(i);end%% END Phase 2: Individual knowledge development guided by the teacher (exploration)%%% Phase 3: Individual increase of knowledge and self-awarenessI=round(1+rand(1,1));if F_old(i)<fit(i)X_P3(i,:)=X(i,:)+rand.*(X_old(i,:)-X(i,:));%Eq(8)elseX_P3(i,:)=X(i,:)+rand.*(X(i,:)-X_old(i,:));%Eq(8)endX_P3(i,:) = max(X_P3(i,:),lowerbound);X_P3(i,:) = min(X_P3(i,:),upperbound);% update position based on Eq (9)L=X_P3(i,:);F_P3(i)=fitness(L);if(F_P3(i)<fit(i))X(i,:) = X_P3(i,:);fit(i) = F_P3(i);endX_old(i,:)=X(i,:);F_old(i)=fit(i);%% END Phase 3: Individual increase of knowledge and self-awareness%%end% END for i=1:SearchAgentsbest_so_far(t)=fbest;
end% END for t=1:T
Best_score=fbest;
Best_pos=xbest;
PEOA_curve=best_so_far;
end
微信公众号搜索:淘个代码,获取更多免费代码
%禁止倒卖转售,违者必究!!!!!
%唯一官方店铺:https://mbd.pub/o/author-amqYmHBs/work
%代码清单:https://docs.qq.com/sheet/DU3NjYkF5TWdFUnpu

参考文献

[1]Trojovský P. A new human-based metaheuristic algorithm for solving optimization problems based on preschool education[J]. Scientific Reports, 2023, 13(1): 21472.

完整代码获取

后台回复关键词:

TGDM811

获取更多代码:

16d07e3f2b9a03b8bebafd3a1573947d.png

或者复制链接跳转:
https://docs.qq.com/sheet/DU3NjYkF5TWdFUnpu

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/51235.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JavaScript】详解Day.js:轻量级日期处理库的全面指南

文章目录 一、Day.js简介1. 什么是Day.js&#xff1f;2. 安装Day.js 二、Day.js的基本用法1. 创建日期对象2. 格式化日期3. 解析日期字符串4. 操作日期5. 比较日期 三、Day.js的高级功能1. 插件机制2. 国际化支持 四、实际应用案例1. 事件倒计时2. 日历应用 在JavaScript开发中…

Python | ValueError: could not convert string to float: ‘example’

Python | ValueError: could not convert string to float: ‘example’ 在Python编程中&#xff0c;类型转换是一个常见的操作。然而&#xff0c;当尝试将一个字符串转换为浮点数时&#xff0c;如果字符串的内容不是有效的浮点数表示&#xff0c;就会遇到“ValueError: could…

labview四字节转浮点数

1.labview四字节转浮点数 2.Labview怎么把串口接收到的数据转换成浮点数&#xff1f; Labview怎么把串口接收到的数据转换成浮点数&#xff1f;

如何跨越 LangChain 应用研发的最后一公里

说 [LangChain] 是现在最流行的 AI 应用开发框架&#xff0c;应该没有人出来反对吧。LangChain 的出现极大地简化了基于大型语言模型&#xff08;LLM&#xff09;的 AI 应用构建难度&#xff0c;如果把 AI 应用比作一个人的话&#xff0c;那么 LLM 相当于这个人的“大脑”&…

基于vue-grid-layout插件(vue版本)实现增删改查/拖拽自动排序等功能(已验证、可正常运行)

前端时间有个需求&#xff0c;需要对33&#xff08;不一定&#xff0c;也可能多行&#xff09;的卡片布局&#xff0c;进行拖拽&#xff0c;拖拽过程中自动排序&#xff0c;以下代码是基于vue2&#xff0c;可直接运行&#xff0c;报错可评论滴我 部分代码优化来自于GPT4o和Clau…

78.WEB渗透测试-信息收集-框架组件识别利用(2)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;77.WEB渗透测试-信息收集-框架组件识别利用&#xff08;1&#xff09; shiro&#xff1a;…

支持向量机 及其分类案例详解(附Python 代码)

支持向量机分类器预测收入等级 我们将构建一个支持向量机&#xff08;SVM&#xff09;分类器&#xff0c;以预测一个人基于14个属性的收入等级。我们的目标是判断收入是否高于或低于每年$50,000。因此&#xff0c;这是一个二元分类问题。我们将使用在此处可用的人口普查收入数…

JDBC基础

目录 一、JDBC概述 二、JDBC搭建 1.注册JDBC驱动程序 2.建立与数据库连接 3.获得Satement执行sql语句 4.关闭与数据库的链接通道 三、PreparedStatement和Statement 1、代码的可读性和可维护性 2、最重要的一点是极大地提高了安全性 四、结果集处理 一、JDBC概述 JD…

c语言指针2

文章目录 一、void * 指针二、const关键字1.const修饰变量2.const修饰指针变量2. 1 const放在*的右边2. 2 const放在*的左边2. 3 总结 三、指针的运算3. 1指针的加减运算3. 2 指针 - 指针3. 3 指针的关系运算 四、野指针4. 1 什么叫野指针&#xff1f;4. 1 野指针的成因4.1.1 指…

Poetry入门教程

以前使用模块管理和虚拟环境为pip和Virtualenv组合&#xff0c;随着Rasa、Dify等开源项目逐步使用Poetry模块管理&#xff0c;也开始尝试使用Poetry。本文简要介绍Poetry入门操作。 1.Poetry安装 可参考Poetry官网[1]推荐的安装方式&#xff1a; 通过Windows的Powershell如下…

C++编程: 使用 Nanomsg 进行 PUB-SUB 模式基准测试

文章目录 0. 引言1. Nanomsg简介1.1 可扩展性协议类型1.2 支持的传输机制1.3 NanoMsg 架构与实现 2. PUB-SUB 模式基准测试 0. 引言 Nanomsg 作为一款高性能的通信库&#xff0c;支持多种消息传递模式&#xff0c;其中包括 PUB-SUB&#xff08;发布-订阅&#xff09;。 本篇文…

yolov8环境安装

一、Miniconda Conda 是一个开源的包管理和环境管理系统&#xff0c;它能运行、安装和更新各种包和依赖&#xff0c;同时还能创建隔离的环境。 1.1 下载安装 Miniconda https://repo.anaconda.com/miniconda/Miniconda3-py39_24.5.0-0-Windows-x86_64.exe1.2 打开 Anaconda …

向量数据库(一)

写在前面 最近在学习一些 AI 相关的开发&#xff0c;了解了一些未接触过的东西&#xff0c;其中有一部分是向量数据库&#xff0c;想开一个专题&#xff0c;对相关的内容做一下整理。 内容 什么是向量数据库 一般在我们的日常开发中&#xff0c;使用的数据库存储主要有两种…

Matlab进阶绘图第65期—带分组折线段的柱状图

带分组折线段的柱状图是在原始柱状图的基础上&#xff0c;在每组柱状图位置处分别添加折线段&#xff0c;以进行对比或添加额外信息。 由于Matlab中未收录带分组折线段的柱状图的绘制函数&#xff0c;因此需要大家自行设法解决。 本文使用自制的BarwithGroupedLine小工具进行…

大模型算法面试题(十四)

本系列收纳各种大模型面试题及答案。 1、微调后的模型出现能力劣化&#xff0c;灾难性遗忘是怎么回事 微调后的模型出现能力劣化&#xff0c;灾难性遗忘&#xff08;Catastrophic Forgetting&#xff09;是一个在机器学习领域&#xff0c;尤其是在深度学习和大模型应用中频繁出…

数据库(MySQL)-DQL数据查询语言

DQL(Data Query Language 数据查询语言)的用途是查询数据库数据&#xff0c;如select语句。其中&#xff0c;可以根据表的结构和关系分为单表查询和多表联查。 单表查询 单表查询&#xff1a;针对数据库中的一张数据表进行查询 全字段查询 语法&#xff1a;select 字段名 fro…

报警系统与机房动力环境监控系统的集成及报警功能实施

在当今的运维行业中&#xff0c;确保关键基础设施的安全与稳定运行面临着诸多挑战&#xff0c;如设备故障、环境异常、非法入侵等。为了有效应对这些挑战&#xff0c;报警系统与机房动力环境监控系统的集成变得至关重要。本文旨在为运维团队提供关于报警系统与机房动力环境监控…

使用frrouting、gns3、pim实现ipv6组播(三)

翻遍整个网络都没有找到用ipv6进行组播推流的实例。 朋友说&#xff1a;A true strong person never complains about the environment 那么&#xff0c;就由我来创造一个吧~ 此文涉及到的所有软件均为开源软件&#xff0c;进行深入学习与其他平台移植时十分便利。 记得点赞额…

如何在GPU服务器上安装Stable Diffusion webUI

一、前提条件 1、硬件条件 GPU&#xff1a;12G&#xff0c;建议16G以上&#xff0c;还是尽量勾搭&#xff0c;好像现在最大32G&#xff0c;目前个人性价比24G有时长出售。 内存&#xff1a;16G以上&#xff0c;建议32G&#xff0c;也是越大越好。 硬盘&#xff1a;最好使用…

2024年【金属非金属矿山(地下矿山)安全管理人员】考试报名及金属非金属矿山(地下矿山)安全管理人员模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年金属非金属矿山&#xff08;地下矿山&#xff09;安全管理人员考试报名为正在备考金属非金属矿山&#xff08;地下矿山&#xff09;安全管理人员操作证的学员准备的理论考试专题&#xff0c;每个月更新的金属非…