【库存控制】基于象鼻虫损害优化算法求解库存控制问题(Matlab代码实现)

news2024/12/27 13:19:06

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

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

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

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码及文章阅读


💥1 概述

象鼻虫是一种长着细长鼻子的昆虫,来自Curculionoide超科,约有97000种。其中大多数认为害虫会造成环境破坏,但一些种类,如小麦象鼻虫、玉米象鼻虫和棉铃象鼻虫,以对农作物,尤其是谷物造成巨大破坏而闻名。这项研究提出了一种新的基于群的元启发式算法,称为象鼻虫损伤优化算法(WDOA),该算法模拟了象鼻虫的飞行能力、鼻部力量和对作物或农产品的损伤能力。用12个基准单峰和多峰人工景观或优化测试函数对所提出的算法进行了测试。此外,所提出的WDOA被用于五个工程问题,以检查其解决问题的鲁棒性。问题包括旅行推销员问题(TSP)、n-Queens问题、投资组合问题、最优库存控制问题(OIC)和装箱问题(BPP)。所有测试的功能都与广泛使用的粒子群优化(PSO)、遗传算法(GA)、和谐搜索(HS)算法、帝国主义竞争算法(ICA)、萤火虫算法(FA)和差分进化(DE)算法等基准算法进行了比较。此外,所有问题都用DE、FA和HS算法进行了测试,所提出的算法通过提供精确性和合理的速度,在所有函数和问题上表现出鲁棒性和速度。

算法文章来源:

然后本文基于象鼻虫损害优化算法的TSP问题求解,用Matlab代码实现。

📚2 运行结果

 ​​​​​​

 ​​​​​​

 部分代码:

%% Problem Definition

model=CreateModel2();                        % Create Model
model.Umax=400;
CostFunction=@(xhat) MyCost(xhat,model);    % Cost Function
VarSize=[model.K model.H];   % Size of Decision Variables Matrix
nVar=prod(VarSize);    % Number of Decision Variables
VarMin=0;         % Lower Bound of Variables
VarMax=1;         % Upper Bound of Variables


%% WDOA Parameters
MaxIt = 200;          % Maximum Number of Iterations
nPop = 400;            % Number of weevils 

DamageRate = 0.1;                   % Damage Rate
nweevil = round(DamageRate*nPop);   % Number of Remained weevils
nNew = nPop-nweevil;                % Number of New weevils
mu = linspace(1, 0, nPop);          % Mutation Rates
pMutation = 0.2;                    % Mutation Probability
MUtwo = 1-mu;                       % Second Mutation
SnoutPower = 0.8;                   % Weevil Snout power Rate
FlyPower = 0.03*(VarMax-VarMin);    % Weevil Fly Power Rate

%% Basics
% Empty weevil
weevil.Position = []; 
weevil.Cost = [];
weevil.Sol = [];

% Weevils Array
pop = repmat(weevil, nPop, 1);
% First weevils
for i = 1:nPop
pop(i).Position = unifrnd(VarMin, VarMax, VarSize);
[pop(i).Cost pop(i).Sol] = CostFunction(pop(i).Position);
end;

% Sort 
[~, SortOrder] = sort([pop.Cost]);pop = pop(SortOrder);
% Best Solution
BestSol = pop(1);
% Best Costs Array
BestCost = zeros(MaxIt, 1);
%--------------------------------
%% WDOA Body
for it = 1:MaxIt
newpop = pop;
for i = 1:nPop
for k = 1:nVar
if rand <= MUtwo(i)
TMP = mu;TMP(i) = 0;TMP = TMP/sum(TMP);
j = RouletteWheelS(TMP);
newpop(i).Position(k) = pop(i).Position(k)+SnoutPower*(pop(j).Position(k)-pop(i).Position(k));
end;
% Mutation
if rand <= pMutation
newpop(i).Position(k) = newpop(i).Position(k)+FlyPower*randn;
end;end;
% Apply Lower and Upper Bound Limits
newpop(i).Position = max(newpop(i).Position, VarMin);
newpop(i).Position = min(newpop(i).Position, VarMax);

[newpop(i).Cost newpop(i).Sol] = CostFunction(newpop(i).Position);

end;% Asses power
[~, SortOrder] = sort([newpop.Cost]);newpop = newpop(SortOrder);% Sort
pop = [pop(1:nweevil);newpop(1:nNew)];% Select 
[~, SortOrder] = sort([pop.Cost]);pop = pop(SortOrder);% Sort 
BestSol = pop(1);% Update 
BestCost(it) = BestSol.Cost;% Store 

if BestSol.Sol.IsFeasible
Flag=' *';
else
Flag='';
end
% Iteration 
disp(['Iteration ' num2str(it) ': WDOA Best Cost = ' num2str(BestCost(it)) Flag]);
% Plot Solution
figure(1);
PlotSolution(BestSol.Sol,model);
end

%% ITR
figure;
plot(BestCost,'k', 'LineWidth', 2);
xlabel('ITR');
ylabel('Cost Value');
ax = gca; 
ax.FontSize = 14; 
ax.FontWeight='bold';
set(gca,'Color','c')
grid on;

%%
BestSol.Sol
disp(['Sum of Orders or Products Costs ' num2str(BestSol.Sol.SumAX)]);
disp(['Sum of Inventory or Maintenance  Costs ' num2str(BestSol.Sol.SumBI)]);
disp(['Used Capacity ' num2str(BestSol.Sol.UC)]);

🎉3 参考文献

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

🌈4 Matlab代码及文章阅读

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

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

相关文章

交换机的结构特点及主要功能

什么是交换机&#xff1f; Switch 意为“交换机”&#xff0c;是一种用于转发电 ( 光 ) 信号的网络设备。它可以为访问交换机的任意两个网络节点提供专用的电信号路径。非常常见的 是以太网交换机。其他常见的有电话语音交换机、光纤交换机等。 它的工作原理是什么&#xff1f…

美国藤校Top30大学对IB成绩的要求

众所周知&#xff0c;IB体系是目前全球认可度比较高的国际课程。那么&#xff0c;用IBDP成绩申请美国TOP30大学需要什么样的成绩&#xff1f; 小智今天来带大家好好研究下美国TOP30大学对IB成绩的要求。普林斯顿大学 Princeton University 普林斯顿大学对于IB成绩没有具体要求&…

nginx架构解析:朴实中见真知

目录前言为什么高并发很重要Apache可以做到吗使用nginx会更有优势吗&#xff1f;nginx架构概览代码结构Workers模型nginx进程规则nginx缓存概览nginx配置nginx内部典型的HTTP请求处理循环课程总结前言 nginx&#xff08;发音“engine x”&#xff09;是俄国的软件工程师Igor S…

Godzilla(哥斯拉)安装与使用

Godzilla安装与使用1.Godzilla介绍2.Godzliia下载与安装2.1.Godzilla下载2.2.运行环境2.3.Godzilla安装2.3.1.执行文件2.3.2.安装完成3.Godzliia3.1.Godzliia使用3.1.1.生成木马3.1.2.存储木马3.1.3.放入木马3.1.4.访问木马3.1.5.连接木马3.1.6.测试连接3.1.7.连接进入3.2.Godz…

麒麟水乡,IU酒店进驻云南旅游咽喉之地曲靖

曲靖位于云南省东北部&#xff0c;是云南连接内地的重要陆路通道&#xff0c;素有“滇黔锁钥”、“入滇门户”、“云南咽喉”之称&#xff0c;是仅次于昆明的云南第二大城市。曾入选“中国十佳宜居城市”榜单10次的城市&#xff0c;拥有3000多年的文明史&#xff0c;早在三国魏…

Python解题 - CSDN周赛第17期 - 拯救公主

本期又出现了题目测试数据的问题&#xff0c;而且题目和算法关系也不太大&#xff0c;基本就属于用代码代替手工解答算术题的感觉。不禁让人怀疑官方题库是否已经没有高质量的题了&#xff0c;同时也怀疑长期满分却又不更新博客拿奖品的某位选手是不是托。。。 第一题&#xff…

VS系列多通道振弦传感器无线采发仪与参数配置工具连接

VS101~VS432 设备配备了专门的参数配置工具 SETP 来完成设备工作参数的查看和修改工作。 连接前的准备工作 &#xff08;1&#xff09;数据接口与计算机连接 使用标配的通讯线与计算机 RS232 接口连接。若需基于手机网络发送数据&#xff0c;请在开机前安装 SIM 卡。 若…

D. Lucky Chains(GCD+素数筛)

input: 4 5 15 13 37 8 9 10009 20000output: 0 1 -1 79题目大意&#xff1a; 如果一个数对(x,y)是幸运的&#xff0c;当且仅当gcd(x,y)1,一条链可以由以下规律的数对组成&#xff0c;(x,y),(x1,y1),(x2,y2)……(xk,yk)&#xff0c;如果说一条链是幸运的&#xff0c;当且仅当…

非零基础自学Golang 第16章 正则表达式 16.3 regexp包 16.4 小结 16.5 知识拓展

非零基础自学Golang 文章目录非零基础自学Golang第16章 正则表达式16.3 regexp包16.3.1 MatchString函数16.3.2 FindStringIndex函数16.3.3 ReplaceAllString函数16.4 小结16.5 知识拓展16.5.1 常用正则表达式参考第16章 正则表达式 16.3 regexp包 Go在处理正则表达式时主要使…

拆箱phper最适合入门的go框架beego

beego beego 是一个快速开发 Go 应用的 HTTP 框架&#xff0c;他可以用来快速开发 API、Web 及后端服务等各种应用&#xff0c;是一个 RESTful 的框架&#xff0c;主要设计灵感来源于 tornado、sinatra 和 flask 这三个框架&#xff0c;但是结合了 Go 本身的一些特性&#xff…

路由信息协议RIP(计算机网络)

目录 路由选择协议 路由信息协议 RIP中的距离 RIP协议的具体算法 RIP协议路由表的更新 例题 距离向量算法 RIP 协议的要点 路由选择协议 路由器之间要互相不断交换网络拓扑和状态信息&#xff0c;根据信息求出到所有目的网络的最佳路由 用于交换路由信息&#xff0c;进…

软件测试实战教程系列—接口测试用例和报告模板|收藏版

文章目录 接口测试为什么会如此重要呢&#xff1f; 接口测试的必要性 获取接口相关信息 接口测试的流程 接口文档 是接口测试的参照&#xff0c;至少包括&#xff1a; 接口测试用例设计 接口测试用例模板 &#xff08;可根据项目实际情况设计增减&#xff09; 接口测试…

前端基础_组合多个图形

组合多个图形 在前面的实例中&#xff0c;我们看到使用Canvas API可以将一个图形重叠绘制在另一个图形上面&#xff0c;但图形中能够被看到的部分完全取决于以哪种方式进行组合&#xff0c;这时需要使用到Canvas API的图形组合技术。在HTML5中&#xff0c;只要用图形上下文对象…

模数转换器(ADC)

目录 一、简介&#xff1a; 二、主要特征 三、校准&#xff08;CLB&#xff09; 四、ADC时钟 五、ADCON开关 六、规则组和注入组 七、转换模式 八、注入通道管理 九、可编程的采样时间 十、外部触发 十一、温度传感器和内部参考电压 一、简介&#xff1a; 12位ADC是…

CSS -- 使用纯CSS实现旋转木马相册的效果

如果对3D转换不熟悉可以参考&#xff1a;CSS – CSS3中3D转换相关属性讲解&#xff08;translate3d&#xff0c;rotate3d&#xff0c;perspective&#xff0c;transform-style&#xff09; 如果对动画不熟悉可以参考&#xff1a;CSS – CSS3基础动画讲解 旋转木马图片相册 <…

centos 7安装mysql

一.安装之前检测系统是否有自带的MySQL(若是没有安装直接忽略该步骤) rpm -qa | grep mysql #检查是否安装过MySQL rpm -qa | grep mariadb #检查是否存在 mariadb 数据库&#xff08;内置的MySQL数据库&#xff09;&#xff0c;有则强制删除 rpm -e --nodeps mariadb-libs-…

信而泰BGP Flow Spec防攻击测试解决方案

随着互联网行业的迅猛发展&#xff0c;越来越多的业务都从线下走到了线上。互联网在给大家生活带来便利的同时也面临着防护自身安全的各种挑战。 DoS/DDoS攻击是对网络安全的重大威胁&#xff0c;攻击者通过多个控制端控制成千上万的攻击设备对同一个目的地址、网段或服务器同…

【触摸屏功能测试】昆仑通态MCGS——物联网功能测试

测试触摸屏&#xff1a; 型号&#xff1a;TPC7022Ni 测试内容&#xff1a;物联网产品设备的无线通信和远程调试功能 物联网 1、功能概述 物联网产品设备可通过无线通讯的方式&#xff0c;进行远程调试和操作。物联网产品设备支持以下功能&#xff1a; l 4G和WiFi通信 l 远…

m基于kmeans和SVM的网络入侵数据分类算法matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 首先计算整个数据集合的平均值点&#xff0c;作为第一个初始聚类中心C1&#xff1b; 然后分别计算所有对象到C1的欧式距离d&#xff0c;并且计算每个对象在半径R的范围内包含的对象个数W。 此时计…

非零基础自学Golang 第17章 HTTP编程(上) 17.2 HTTP客户端 17.2.3 发起GET请求

非零基础自学Golang 文章目录非零基础自学Golang第17章 HTTP编程(上)17.2 HTTP客户端17.2.3 发起GET请求第17章 HTTP编程(上) 17.2 HTTP客户端 17.2.3 发起GET请求 从现在开始我们将会学习如何使用Go语言模拟浏览器发起HTTP请求。 发起请求前需要创建一个请求对象&#xff…