2024新算法:企业发展优化器,原理详解,MATLAB代码免费获取

企业发展优化(Enterprise development optimization,ED)是一种受企业发展过程的元启发式优化算法。该过程包括任务、结构、技术和人与人的交互。利用活动切换机制通过更新搜索解来确定每个步骤。每一家公司都必须努力不断发展自己,这种发展有赖于实验和资源。根据Leavitt的观点,他对行业组织进行了20多年的调查,复杂的组织系统依赖于四种类型的变量进行交互:任务、结构、技术和人员。

该成果于2024年发表在工程技术领域一区SCI期刊“Engineering Structures”上。ED方法在全局优化和结构工程问题具有出色的鲁棒性的广泛的普适性。

ec2eb470021f4f3f842b3de60e43c8e2.png

1、算法原理

(1)初始化

与所有元启发式优化器一样,ED优化器随机生成用于优化的均匀分布的初始种群。人口(t=1)如下所示:

式中,xi是每一步的第i个解。

(2)建立最优规则和模拟活动

要模拟ED算法,必须按如下方式建立三个最优规则:

建立ED流程需要四个活动:任务、结构、技术和人员活动,以及在这些活动之间切换的切换机制。这些活动与组织的绩效是相互关联的。这些解决方案对绩效更显著的组织更具吸引力。解决方案及其对应的目标函数对组织的绩效进行评估。

(3)任务

在业务流程管理中,任务可能有不同的形式或作为日常例程存在。为了模拟任务活动,最糟糕的活动被替换为:

其中xworst是搜索空间中最差的个体解,u和L分别是搜索空间的上界和下界。

(4)结构

另一种方法是由Gouldner创造的工程学方法。这种方法的一个很好的例子是Cappie和Sayles的工作,他们提出了一种以任务为目标但通过人的形式的社会工程。他们试图改变人们的行为来改进他们的任务。本文将组织结构限制在工作流中。因为新的组织结构预计会受到其他工作流的结构和当前最优工作流的影响

其中,xsit是新结构,xBest(t一1)是当前最优解,xsct-1是影响新结构的其他工作流。

随机从种群中的解决方案中选择随机m,m是影响新结构的工作流数;m=3被确定为在短计算时间内产生最优结果。

1b9aa6d7510a70158d937af0712ba58b.png

(5)技术

许多研究人员强调了技术在影响组织变革中的关键作用。在许多情况下,组织重塑自己并不是为了直接回应非凡的想法,而是为了回应能够刺激这些想法实施的技术的发展。直到计算机和编程作为业务变化的载体发展起来,这种信息理论才对组织产生了重大影响。此外,科学管理应在开发工作测量技术后实施,而人事管理需要测试、态度调查和工作评估技术才能运行。

开放创新投入主要是为了改善“探索”。他们的基本知识和技术。组织必须增加他们的探索和开发努力,从战略开放的角度获得和应用创新活动所需的知识。下面的等式模拟了这一步骤中探索和开发之间的平衡:

其中 是勘探阶段, 是开发阶段。

67d05f4cc5fe03eaf061740a2a1141ba.png

(6)人口

组织必须培养一种参与式的工作文化,通过尊重人和利益相关者来促进个人创造力和团队合作。这样的工作文化会影响员工对可持续性的承诺和参与。方程描述了如何通过随机选择要素并进行更新来模拟人员的活动

其中d是人的随机特征。此特征计算如下:

其中m是影响问题个体的人数,m=3被确定为在较短的计算时间内产生最优结果,Nd是解的维度的数目。

7f57b47be8a37cca0c60c34ae4fd2f46.png

(7)转换活动的机制

在提出的ED算法中,假设组织一次只关注一个步骤,因此四个步骤(即任务、结构、技术和人员)中只有一个在时间t发生,并由活动切换机制控制。当rand(0,1)<p1,(其中p1=0.1)时,表示任务步骤的概率为10%。结构、技术步骤和人员步骤的作用机理被引入为函数c(t),如公式所示。

其中Maxiter是最大迭代次数,t是第t次迭代。

ED对应的伪代码过程如下图所示

a9ae3fbfb0d43ebef169c24347ba6082.png

2、结果展示

725c8a6d21cfb95f3099a1d90da8917a.png

4871a533246d03aae38b3dbcca2f8d1a.png

b2031cc175344b20413452877b3bae31.png

6fe339c6b0ea5e29fd78fc2d21acf32c.png

19d1b9879c9d69b528a77dabc219bbdb.png

3、MATLAB核心代码

%% 淘个代码 %%
% 微信公众号搜索:淘个代码,获取更多代码
% 企业发展优化算法(Enterprise development optimization,ED)
function [f,X,eval,Fit_store,Evali] = ED(fnc,funnum,D,NP,GEN,LBv,UBv)
if length(LBv)==1
    LB = ones(1, D).*LBv;
    UB = ones(1, D).*UBv;
else
    LB = LBv;
    UB = UBv;
end 
MAXFEV=NP*GEN;
eval=0;
Evali=[];
ishow = 250;
ObjVal = zeros(NP,1);
%% Initial population using Eq. (1)
for i = 1:NP
    Pop(i,:)=LB+rand(1,D).*(UB-UB);
    ObjVal(i) = fnc(Pop(i,:),funnum);
    eval=eval+1;
end
Evali=[Evali;eval]; 
[vl id]=min(ObjVal);
iBest = id(1);
GlobalMin = ObjVal(iBest);
Xbest = Pop(iBest,:);
g = 1;
Fit_store = zeros(1,GEN);
Fit_store(g)=GlobalMin;
ubest=Xbest;
while g < GEN
    ct=1-rand*g/GEN;
    if rand<0.1
        %% Task using Eq. (2)
        [vl id]=sort(ObjVal);
        kd=id(end);
        SolD=LB+rand([1 D]).*(UB-LB);
        f_d = fnc(SolD,funnum);
        eval=eval+1;       
        Pop(kd,:)=SolD;
        ObjVal(kd)=f_d;
        GlobalMin=f_d;
        Xbest=SolD; 
    else
        %% Calculate c(t) using Eq. (9)
        a=ceil(3*ct);
        switch a
            case 1
                %% Structure using Eq. (3)
                for i = 1:NP
                    P=randperm(NP,3);
                    h=P(1);
                    p=P(2);
                    k=P(3);
                    SolC = (Pop(h,:)+Pop(p,:)+Pop(k,:))/3;
                    SolC = SolC+ 2*(rand([1,D])-0.5).*(Xbest - SolC); 
                    SolC=check_bound(SolC,UB,LB);
                    f_c = fnc(SolC,funnum);
                    eval=eval+1;
                    if f_c <= GlobalMin
                        Xbest = SolC ;
                        GlobalMin = f_c;
                    end
                end
                
            case 2
                %% Technology using Eq. (5)
                for i = 1:NP
                    h=randperm(NP,1);
                    SolB = Pop(i,:);
                    SolB = Pop(i,:) + (rand([1 D]).*(Xbest - Pop(i,:))+rand([1 D]).*(Xbest - Pop(h,:))); 
                    SolB=check_bound(SolB,UB,LB);
                    f_b = fnc(SolB,funnum);
                    eval=eval+1;
                    if f_b <= ObjVal(i)
                        Pop(i,:) = SolB;
                        ObjVal(i) = f_b;
                        if f_b <= GlobalMin
                            Xbest = SolB ;
                            GlobalMin = f_b;
                        end
                    end
                end
            case 3
                %% People using Eq. (6)
                for i=1:NP
                    Change=randperm(D,1);
                    A=randperm(NP,3);
                    nb1=A(1);
                    nb2=A(2);
                    nb3=A(3);
                    SolA=Pop(i,:);
                    SolA(Change)=Pop(i,Change)+(Pop(i,Change)-(Pop(nb1,Change)+Pop(nb2,Change)+Pop(nb3,Change))/3)*(rand-0.5)*2; 
                    SolA=check_bound(SolA,UB,LB);
                    f_a = fnc(SolA,funnum);
                    eval=eval+1;
                    if f_a <= ObjVal(i)
                        Pop(i,:) = SolA;
                        ObjVal(i) = f_a ;
                        if f_a <= GlobalMin
                            Xbest = SolA ;
                            GlobalMin = f_a;
                        end
                    end
                end
        end
        if eval>MAXFEV
            break;
        end
    end
    if rem(g, ishow) == 0
        fprintf('Generation: %d. Best f: %f.\n', g, GlobalMin);
    end
    g = g + 1;
    if GlobalMin<Fit_store(g-1)
        Fit_store(g) = GlobalMin;
        ubest=Xbest;
    else
        Fit_store(g)=Fit_store(g-1);
    end
    Evali=[Evali;eval];
end
%% Result
f = Fit_store(end);
X = ubest;
disp(['The best result:',num2str(f(end))])
end
function Sol=check_bound(Sol,UB,LB)
a=Sol<LB;
Sol(a)=LB(a)+rand*(UB(a)-LB(a));
a=Sol>UB;
Sol(a)=LB(a)+rand*(UB(a)-LB(a));
end
微信公众号搜索:淘个代码,获取更多免费代码
%禁止倒卖转售,违者必究!!!!!
%唯一官方店铺:https://mbd.pub/o/author-amqYmHBs/work
%代码清单:https://docs.qq.com/sheet/DU3NjYkF5TWdFUnpu

参考文献

[1]Truong D N, Chou J S. Metaheuristic algorithm inspired by enterprise development for global optimization and structural engineering problems with frequency constraints[J]. Engineering Structures, 2024, 318: 118679.

完整代码获取

后台回复关键词:

TGDM813

获取更多代码:

4e636cfaf2ce62f15e6e2b545fb5327a.png

或者复制链接跳转:
https://docs.qq.com/sheet/DU3NjYkF5TWdFUnpu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淘个代码_

不想刀我的可以选择爱我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值