基于改进多目标灰狼优化算法的考虑V2G技术的风、光、荷、储微网多目标日前优化调度研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、数据、文章详细讲解


💥1 概述

多目标优化表示对具备多个目标函数的问题的优化。通常的,可以将其表述为

最大化问题如下:

为了利用灰狼优化算法执行多目标优化,需要集成了两个新的部分[63]。第一个是外部存档,它负责存储到目前为止获得的非支配的 Pareto 最优解。第二个组成部分是领导者选择策略,有助于选择 α,β 和 δ 解决方案作为存档中狩猎过程的领导者。

(1)外部存档

外部存档类似于Pareto存档演化策略[64(] Pareto Archived Evolution Strategy,PAES)中的自适应网格,因为它旨在保存迄今为止获得的非支配解。外部存档是一个简单的存储单元,可以保存或检索到目前为止获得的非支配 Pareto 最优解。它有存档控制器和网格机制两个主要组成部分,存档控制器的作用当解决方案想要输入存档或存档已满时控制存档。在迭代过程中,到目前为止获得的比较非支配解与存档中的解决方案。会出现下列四种情况:

•新的非支配解如果不支配存档中任意一个非支配解,则该非支配解不被允许归入存档。

•如果存在大于等于一个存档中非支配解被新的非支配解支配,则应省略存档中的被新非支配解支配的解,将新非支配解归入存档。

•新非支配解和存档中的非支配解相互不支配,则新的非支配解应被归入存档。

•当存档已满时,则应按照网格机制的要求,打乱目标空间的所有段(数据文件空间)后在重新排列组合。剔除最拥挤的段中一个非支配解,再在最不拥挤的段将新非支配解归入存档,这样能是 Pareto 最优前沿更具多样化。

当存档中的非支配解的数量增多时,非支配解的被删除概率也会随之升高。如果存档已满,需要删除非支配解时,操作与第四种情况类似,剔除最拥挤的段中一个非支配解,为新非支配解提供储存空间。在段外部插入非支配解是一种特殊情况。此时,新的非支配解被所有已拓展的段覆盖,所以另外非支配解的段也能改变。网格机制负责使存档解决方案尽可能多样化。在这种机制中,目标空间被分成几个区域,如果新获得的解决方案位于网格外部,则应重新计算所有网格位置以覆盖它;如果新的解决方案位于网格内,则将其引导到具有最少数量的粒子的网格部分。此网格机制的主要优点就是是较低的计算成本。

传统多目标灰狼算法的收敛因子a与迭代次数的隐含线性关系过于固定,实际运行时发现,传统多目标灰狼算法虽理论上前期a接近2偏向全局寻优,后期接近0可实现快速收敛。但全局寻优能力较差,收敛较慢,造成帕累托前沿的边界值以及稀疏度都不够好。当采用多周期余弦收敛因子,以及二进制超级立方体中的精英选择策略后,全局边界寻优能力及帕累托前沿稀疏度都有较大改善,尤其是完整帕累托前沿的轮廓显示所需寻优时间大大减少。详细数学模型和文章讲解见第4部分。

本文求解流程图如下: 

📚2 运行结果

 

 

 以上仅展现部分结果图。

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]周波. 基于灰狼优化算法的楼宇负荷多目标优化调度研究[D].湘潭大学,2020.DOI:10.27426/d.cnki.gxtdu.2020.000399.

[2]周波. 基于灰狼优化算法的楼宇负荷多目标优化调度研究[D].湘潭大学,2020.DOI:10.27426/d.cnki.gxtdu.2020.000399.

[3]高瑜,黄森,陈刘鑫,黄军虎.基于改进灰狼算法的并网交流微电网经济优化调度[J].科学技术与工程,2020,20(28):11605-11611.

🌈4 Matlab代码、数据、文章详细讲解

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本文介绍了使用Matlab实现目标灰狼优化算法(Multi-Objective Grey Wolf Optimizer,MOGWO)来求解柔性作业车间调度问题(Flexible Job-Shop Scheduling Problem,FJSP)的方法。 1. 柔性作业车间调度问题 柔性作业车间调度问题是指在一台机器上,需要安排多个作业在多个工序上进行加工,每个作业需要在不同的工序上进行加工,每个工序需要一定的时间和资源,同时需要考虑不同的约束条件(如最早开始时间、最迟完成时间、作业间的优先关系等),目标是最小化完成所有作业的总时间或最小化机器的空闲时间。 2. 多目标灰狼优化算法目标灰狼优化算法是基于灰狼优化算法(Grey Wolf Optimizer,GWO)的多目标优化版本。该算法模拟了灰狼社会的行为,通过抓住“alpha”、“beta”和“delta”三个主导灰狼的行为来优化目标函数。多目标灰狼优化算法可以同时优化多个目标函数。 3. 求解柔性作业车间调度问题 求解柔性作业车间调度问题的过程可以分为以下几个步骤: (1)编写目标函数:将FJSP问题转化为目标函数,将多个目标函数合并成一个多目标函数。 (2)确定参数:确定算法的参数,如灰狼个数、最大迭代次数、交叉率等。 (3)初始化灰狼群体:根据问题的特性,初始化灰狼群体。 (4)灰狼优化过程:根据多目标灰狼优化算法,进行灰狼优化过程。 (5)结果分析:分析灰狼优化的结果,得到最优解。 4. Matlab实现Matlab中,可以使用以下代码实现MOGWO算法求解FJSP问题: % FJSP问题的目标函数 function f = FJSP(x) % x为决策变量,即作业的加工顺序 % 定义多个目标函数 f(1) = 计算完成所有作业的总时间 f(2) = 计算机器的空闲时间 % 将多个目标函数合并成一个多目标函数 f = [f(1) f(2)] end % MOGWO算法 function [bestx, bestf] = MOGWO(f, lb, ub, MaxIt, nPop, nObj, pCrossover, pMutation) % f为目标函数,lb和ub为决策变量的上下界,MaxIt为最大迭代次数,nPop为灰狼个数,nObj为目标函数个数,pCrossover和pMutation分别为交叉率和变异率 % 初始化灰狼群体 X = repmat(lb, nPop, 1) + rand(nPop, nObj).*(repmat(ub-lb, nPop, 1)); % 迭代优化过程 for it = 1:MaxIt % 计算适应度 F = zeros(nPop, nObj); for i = 1:nPop F(i,:) = f(X(i,:)); end % 更新最优解 [bestf, idx] = min(F); bestx = X(idx,:); % 更新灰狼位置 for i = 1:nPop % 计算灰狼位置 A = 2*rand(nObj,1)-1; C = 2*rand(nObj,1); D = abs(C.*bestx - X(i,:)); X1 = bestx - A.*D; % 交叉和变异 mask = rand(nObj,1) < pCrossover; X2 = X1; X2(~mask) = X(i,~mask); mask = rand(nObj,1) < pMutation; X3 = X2; X3(mask) = lb(mask) + rand(sum(mask),1).*(ub(mask)-lb(mask)); % 更新灰狼位置 X(i,:) = X3; end end end % 测试 % 假设有10个作业,每个作业需要在3个机器上进行加工 nJob = 10; nMachine = 3; % 初始化上下界 lb = zeros(1, nJob*nMachine); ub = ones(1, nJob*nMachine); % 假设最大迭代次数为100,灰狼个数为50,目标函数个数为2 MaxIt = 100; nPop = 50; nObj = 2; % 假设交叉率为0.8,变异率为0.3 pCrossover = 0.8; pMutation = 0.3; % 调用MOGWO算法求解FJSP问题 [bestx, bestf] = MOGWO(@FJSP, lb, ub, MaxIt, nPop, nObj, pCrossover, pMutation); % 输出结果 disp('Best Solution:'); disp(bestx); disp('Best Objective:'); disp(bestf);

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值