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

news2025/2/24 7:45:11

学前教育优化算法(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:dimension
    X(:,i) = lowerbound(i)+rand(SearchAgents,1).*(upperbound(i) - lowerbound(i));                          % Initial population
end
for i =1:SearchAgents
    L=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==1
        xbest=X(blocation,:);                                           % Optimal location
        fbest=best;                                           % The optimization objective function
    elseif best<fbest
        fbest=best;
        xbest=X(blocation,:);
    end
    [worst , wlocation]=max(fit);
    RE_index=0.5;
    if fbest<0
        RE_index=1/RE_index;
    end
    if RE_index*mean(fit)<= fbest
        for i=1:dimension
            X(:,i) = lowerbound(i)+rand(SearchAgents,1).*(upperbound(i) -lowerbound(i));    % Initial population
        end
        X(SearchAgents,:)=xbest;
        for i =1:SearchAgents
            L=X(i,:);
            fit(i)=fitness(L);                  % Fitness evaluation
        end
    end
    %%
    %%
    K_t=xbest;
    for i=1:SearchAgents
        if rem (t,2)==0
            RAND1=rand(1,dimension);
            RAND2=rand(1,dimension);
        else
            RAND1=rand(1,1);
            RAND2=rand(1,1);
        end
        %%
        %% Phase 1: The gradual growth of the preschool teacher's educational influence
        I=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-awareness
        I=round(1+rand(1,1));
        if F_old(i)<fit(i)
            X_P3(i,:)=X(i,:)+rand.*(X_old(i,:)-X(i,:));%Eq(8)
        else
            X_P3(i,:)=X(i,:)+rand.*(X(i,:)-X_old(i,:));%Eq(8)
        end
        X_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);
        end
        X_old(i,:)=X(i,:);
        F_old(i)=fit(i);
        %% END Phase 3: Individual increase of knowledge and self-awareness
        %%
    end% END for i=1:SearchAgents
    best_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.coloradmin.cn/o/1954340.html

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

相关文章

C# datetimePicker

1. 直接把控件拉到设计器中&#xff0c;此时不要调整控件的values属性&#xff0c;这样就可以 打开后每次默认显示当天日期。 2. 属性Format long长日期格式默认值short短日期格式Time时间格式custom自定义时间格式在customFormat这个属性设置&#xff0c;比如yyyy-MM-dd HH…

图中的最短环

2608. 图中的最短环 现有一个含 n 个顶点的 双向 图&#xff0c;每个顶点按从 0 到 n - 1 标记。图中的边由二维整数数组 edges 表示&#xff0c;其中 edges[i] [ui, vi] 表示顶点 ui 和 vi 之间存在一条边。每对顶点最多通过一条边连接&#xff0c;并且不存在与自身相连的顶…

入门 PyQt6 看过来(案例)11~ 熊猫展览馆

主题&#xff1a;利用pyqt6实现一个展示萌兰、福宝、金虎等大熊猫的展示案例。 1 界面布局 本案例用到了列表的功能 #定义列表listModelQStringListModel()#列表数据self.list[福宝,萌兰,金虎]#将列表转换列表模式listModel.setStringList(self.list)#列表展示listViewQListVi…

日拱一卒 | JVM

文章目录 什么是JVM&#xff1f;JVM的组成JVM的大致工作流程JVM的内存模型 什么是JVM&#xff1f; 我们知道Java面试&#xff0c;只要你的简历上写了了解JVM&#xff0c;那么你就必然会被问到以下问题&#xff1a; 什么是JVM&#xff1f;简单说一下JVM的内存模型&#xff1f;…

Python中的zip

一、什么是zip()&#xff1f; zip()函数接受任意数量的可迭代对象作为参数&#xff0c;并返回一个迭代器。这个迭代器生成的元素是元组&#xff0c;每个元组包含所有输入可迭代对象中对应位置的元素。 二、基本用法 假设我们有两个列表&#xff0c;一个是学生的名字&#xf…

windows10配置英文输入法的方法

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️宝剑锋从磨砺出&#xff0c;梅花香自苦寒来 ☁️运维工程师的职责&#xff1a;监…

将TP5链接导入笔影个人博客代码

首先第一步&#xff0c;打开界面 第二步&#xff0c;这里卡住了&#xff0c;无法看到源代码&#xff0c;我们使用其他软件看看源代码 调试乱码&#xff0c;因为没有找到相应的笔影个人博客源码。源码在桌面上。询问百度&#xff0c;说了有的没的一大堆。 尝试的结果就是失败…

Amesim中在现有的元件调出其内部参数使其作为输出进行调用

前言 在实际项目工程应用中,有时需要调用一些元件内部的参数进行应用来实现控制。例如调用电池元件的欧姆内阻计算电池的欧姆产热。 操作案例 例如:车前散热模块,需要调用外部风量参数来控制风机的转速。方法如下: 子模型模块下→选中元件右键→选择sense internal var…

人机环境系统智能的典型特性

人机环境系统智能的典型特性包括&#xff1a;感知与感知能力。智能系统具有感知外界环境的能力&#xff0c;可以通过各种传感器获取数据&#xff0c;如视觉、声音、温度、湿度等信息。这些感知能力使系统能够实时了解环境状态和变化。学习与适应能力。智能系统可以通过学习算法…

C++《类和对象》(中)

一、 类的默认成员函数介绍二、构造函数 构造函数名与类同名内置类型与自定义类型析构函数拷贝构造函数 C《类和对象》(中) 一、 类的默认成员函数介绍 默认成员函数就是⽤⼾没有显式实现&#xff0c;编译器会⾃动⽣成的成员函数称为默认成员函数。 那么我们主要学习的是1&…

2007-2022年 上市公司-创新投入、研发投入数据(原始数据、do文件、参考文献、data等文件)

创新投入是企业通过不断改进和引入新产品来满足市场需求&#xff0c;并以此获得市场竞争优势的关键过程。而研发投入则是企业为推动产品创新所进行的资源投资&#xff0c;涵盖了人力、物力和财力等多个方面。 数据概览 本数据集提供了关于上市公司创新与研发投入的详细观测值…

抽奖大转盘uni-push使用websocket协议实现uniapp+uniCloud实时推送在线互动抽奖项目打包H5微信小程序_咸虾米

嗨&#xff0c;大家好&#xff0c;我是爱搞知识的咸虾米&#xff0c;今天给大家带来的这们课程是使用uni-push实时推送&#xff0c;完成的在线互动抽奖综合项目。 常规的页面只有在手动刷新的时候&#xff0c;才能获取到服务端最新的数据&#xff0c;而websocket可以实现长连…

小区租拼车小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;汽车信息管理&#xff0c;汽车入库管理&#xff0c;汽车出库管理&#xff0c;汽车租赁管理&#xff0c;汽车归还管理&#xff0c;汽车拼车管理&#xff0c;拼车信息管理&#xff0…

SolidEdge二次开发(C#)-环境配置

文章目录 1、前言2、环境配置2.1 安装Solidworks20242.2 安装VS20222.3 查看Com组件2.3.1 在VS2022中创建一个wpf工程项目2.3.2 添加com组件 1、前言 SolidEdge是Siemens PLM Software公司旗下的三维CAD软件&#xff0c;采用Siemens PLM Software公司自己拥有专利的Parasolid作…

(linux系统环境下)ollama + fastgpt搭建本地私有大模型

一、安装VM虚拟机 1、安装VM 本文提供的15版本&#xff1a;以及CentOS7 链接: https://pan.baidu.com/s/15z4_8S1U21v_fQTSO1zZuw?pwd9hrn 提取码: 9hrn 可参照以下安装方式&#xff0c;不在赘述。 地址&#xff1a;https://blog.csdn.net/weixin_74195551/article/details/12…

基于Java的房租租赁小程序/SSM的租房系统/房屋租赁平台/Springboot的公寓出租管理系统/课程设计/附源码

摘要 二十一世纪以来&#xff0c;随着互联网技术的不断发展&#xff0c;各种互联网应用已经普及大众。传统租房需要去房产中介&#xff0c;不仅花费更多的时间经历&#xff0c;而且房源选择少&#xff0c;价格并不透明&#xff0c;租客能选到满意房屋的难度大&#xff0c;应用…

必须忘记: 遗忘的重要性

必须忘记: 遗忘的重要性 1. 为什么可以举一反三? 1.1. 过度拟合 有一个 AI 概念叫 “过度拟合”: 在训练数据上表现过于良好, 而无法预测其他数据了[2] 1.2. 隐藏坦克 1980 年的机器学习项目, 目标判断树林中是否有隐藏坦克[3] 他们收集了200照片&#xff0c;100张隐藏了…

探索科技新境界,体验系统维护的极致自由—蓝屏工具箱4.0全新登场

官网&#xff1a;蓝屏工具箱官网 下载链接&#xff1a;蓝屏工具箱最新版安装包官方版下载 在数字化浪潮席卷全球的今天&#xff0c;软件工具已不仅仅是简单的代码集合&#xff0c;它们如同工匠手中的雕刻刀&#xff0c;精细打磨、雕琢着数字世界的每一个角落。创峄公司深谙此道…

【NPU 系列专栏 3.2 -- ARM NPU 周易(Zhouyi) 与 周易 X2 详细介绍】

请阅读【嵌入式及芯片开发学必备专栏】 文章目录 周易(Zhouyi)NPU 简介周易 NPU周易 NPU 型号和算力周易 NPU 应用场景周易 X2 NPU 简介周易 X2 NPU主要特点周易 X2 NPU型号和算力周易 X2 NPU 应用场景周易 NPU 和 周易 X2 NPU 的对比使用周易 NPU 进行图像分类使用周易 X2 N…

【C++】选择语句-多行if语句

语法格式 if(条件) {条件满足后执行的操作} else {条件不满足执行的操作} 下面是一个实例 #include<iostream> using namespace std;int main() {//选择结构 - 多行if语句//输入考试分数&#xff0c;如果考试分数大于600&#xff0c;视为考上一本大学&#xff0c;在屏…