✅作者简介:热爱数据处理、建模、算法设计的Matlab仿真开发者。
🍎更多Matlab代码及仿真咨询内容点击 🔗:Matlab科研工作室
🍊个人信条:格物致知。
🔥 内容介绍
1.1 A超市概况
A超市有限公司位于北京市,是一家大型的连锁企业,主要经营农产品、肉制品、水产品、蔬菜、菌类、水果、乳制品等生鲜产品,其次还经营坚果、面食的加工销售、粮油、预包装食品兼散装食品。A 超市最早是从1995年开始的,截止到 2024年,A超市有2家自有的配送中心,13家的连锁门店,现在,它是一家以大卖场,社区店,综合超市为主要经营模式的超市,在北京,天津,深圳,广州,上海等多地都已创办了自己的门店,其中北京13家经营方式以“社区生鲜超市”为营业方式的门店其年营业额达到1.4亿左右。近年来, A 超市有限公司一直在持续的发展,与时俱进,结合企业的优势的资源,不断提升企业市场竞争力。坚持“诚信为本”的企业宗旨,旨在为客户提供更快捷、更方便、更高效、更安全的服务。
A超市的 13个配送点在北京市内分布如图 3-1 所示:
图 1-1 配送点分布图
下表所示是 A 超市目前的配送中心,以及 13 个配送点的地理位置的具体情况:
A 超市有限公司是一家大型连锁企业,拥有多个门店,主要经营生鲜产品及其他食品。以下是对其13家配送中心日常进销存数据、市场需求特点和营销能力分析。根据统计数据,这13个门店每天的进货量都在 3-5 吨左右,其中生鲜等农产品每日到店托盘数在10到20托左右。回龙观店和潘家园店进货量较大,每天在 4-6 吨,托盘数大约在20至30托左右。销售量方面,回龙观店、潘家园店和土桥店的销售量较大,每天在 2.5-4 吨,其他店每天销售在 2-3 吨左右。存货量以回龙观店和潘家园店较高,每天在 2 吨左右,其余店存货量在0.5-1吨左右。万家灯火店、元中心店位于互联网大厂园区内部,面向的主要是上班族,其存货类型不包括蔬菜类。其他店面向周边社区和部分商户。总体来说,A超市各店面向不同客群,产品结构也略有不同。宋家庄店、回龙观店由于位置较好,客户群体较广,周边其他同类经营商户不多,营销能力较强,日销售额能达到 10-15 万。其他店虽然面积和规模较小,但也有稳定的客流,日销售额在 5-10 万,营销能力一般。A超市通过多年的经营,各店已经建立了较为稳定的客户群,营销能力较高。
1.2 A超市生鲜产品配送现状
A超市在物流体系的建设方面有较高的关注度,自有的物流系统在近年来在不断的被完善,有着齐全的物流设施设备和信息系统,其配送业务在日常的物流作业中是非常重要的一部分,主要对覆盖区域内连锁超市提供生鲜配送服务,其配送业务流程还是比较齐全的,就是配送环节比较单一,它的配送就是将生鲜商品从配送中心运送到连锁门店,基于各大门店的地理位置还算比较集中,均在市区及郊区范围内的现实情况,A超市采用公路运输的方法进行产品配送,在规定时间范围之内完成各连锁门店生鲜配送任务。其生鲜产品配送模式分以下2种。
1.配送中心配送模式:门店按照相应经营SKU及过往产品的销量预测后一天需要的生鲜产品量,这一部分由供应商第一步先行配送至配送中心,再由配送中心进行加工分拣后对门店进行配送。
2.供应商直送模式:由于门店是按照过往生鲜产品的销量预测进行订货,难免会出现供应商订货当日生产力不足导致缺交,以及激增需求导致门店过早缺货,这种情况往往需要供应商保证销售额不缺失,实行供应商直送门店模式。
配送中心配送模式主要分为七大步,具体的配送流程是:第一步,对于连锁门店的产品需求信息进行采集;第二步进站进行配送车辆的交接;第三步在配送中心进行配送车辆的扫描;第四步配送产品装车;第五步配送车辆扫描出站;第六步连锁门店接收商品;第七布配送车辆返回交接。
供应商直送模式主要分为六大步,具体配送流程是:第一步,对于需求激增以及缺交商品进行信息采集;第二步,供应商对配送车辆进行扫描;第三步配送产品扫描装车;第四步配送车辆扫描出站;第五步,部分需求激增门店接受商品;第六步配送车辆返回供应商。
1.3配送车辆及路线现状
A超市现有5辆冷藏车来对13家门店进行生鲜产品的配送,配送车辆都是一样的型号,为4.2米新能源轻型箱式冷藏车,车辆对生鲜产品的最大的载重量为 24000千克,配送时将车辆按区域进行划分,而且每辆车的司机并不是长期固定的,有的司机对于当地的交通路况等都不是特别了解,对于一些位置相对较偏,或者是自己不熟悉的连锁门店,在配送的过程中会花费大量的时间去
寻找路线,A超市现在具体的5辆车配送路线如表 1-2:
表1-2各车辆配送路线
车辆 | 配送路径 |
1 | 0-1-7-8-0 |
2 | 0-3-9-2-0 |
3 | 0-5-6-1-0 |
4 | 0-11-13-12-0 |
5 | 0-4-9-10-0 |
结合图 3-1 及表 3-2 可知,这 5 辆车辆在进行配送时,路线选择较为杂乱,显然并 没有提前很好地进行路线规划,尤其是车辆1和车辆4的配送路线,配送的门店地理位置相差较远,很容易造成路线迂回现象。
1.3 A超市物流配送路径存在的问题
A超市物流配送系统在经过多年的实践后整体的效率有了明显的提升,但是还有待进一步的完善。论文对超市目前的配送进行了全面了解之后,发现了超市的配送路径的选择,存在以下几个方面的问题:
(1)车辆配送线路迂回现象严重。并未利用科学的办法进行配送路径的选择,完全凭借调度员的经验来确定具体的路线,忽略了交通情况以及目的地的地理位置分布所带来的各种影响,这就导致在配送的过程中及其容易出现车辆的路线迂回,既增加了配送的距离和配送的时间,同时也增加了配送的成本。
(2)车辆不满载现象严重。在车辆调度方面缺少信息系统的支持,会出现订单配置不合理的情况,比如车辆不满载就进行配送。近年来超市的业务量在不断的增加,这给超市的配送车辆的使用率带来了较高的要求,如果不解决车辆不满载的问题,那么车辆的运输成本就会有所增加,同时在规模扩张的过程中,还会导致严重的车辆资源的浪费。
(3)运输过程中时间浪费严重。由于A超市在北京市有13家连锁门店,很多门店在城市郊区较为偏远的位置,新司机在配送的时候,会因为不熟悉位置而浪费很多的时间,由于司机不熟悉路线导致时间浪费的根本原因在于配送路径的规划不合理。为了保证连锁超市的配货要求,A超市减少了每一辆车配送门店的数量,但是车辆的满载率会因此而下滑,配送的效率会降低,久而久之运输成本会大幅增加。
(4)连锁门店分布比较分散,货物不能准时送达A超市目前的连锁门店在地理位置方面较为分散,所以配送作业所要涉及的范围较大,如果不对路径进行科学的规划,那么就很难保证每一个连锁门店的产品在规范时间内被送到。而就A超市目前的物流配送现状而言,其对配送路径并没有很好地进行规划,这就导致其货物会受配送车辆在配送过程中存在问题的影响,从而不能够准时送达。综上所述可得出,A超市在安排配送路径的时候主观性较强,在配送路线的确定以及方案的选择方面,缺少科学的技术支持,使用传统的经验路线来进行路径的规划,忽略了交通状况、周边区域环境、司机对于路线的熟悉程度等方面的因素的影响。比如,在车辆运输过程中,如果一旦交通情况发生了变化,那么司机只能依靠自己的主观判断
意识来进行路线的选择,这就导致了货物配送过程中不确定性的增加,给配送风险的诱发埋下了隐患,同时也间接地影响了A超市对客户的服务质量。
(5)供应商直送门店时,往往供应商只有一辆4.2米冷链车进行配送,往往需要司机按照门店进行搜索。比如配送到门店1时,再去搜索所需配送的门店2,这种没有经过科学规划的配送路径往往会带来运输成本的提升以及空载及迂回的情况出现。
1.4 本章小结
本章首先对A超市现阶段的配送情况进行了介绍,重点对配送中心的业务流程进行了分析。其次介绍A超市配送车辆及配送路线的现状,然后通过分析现状发现A超市在配送路径方面的各种问题:路线迂回及不满载现象严重,配送时间浪费,配送效率低下,针对解决A超市在物流配送过程中存在的上述问题,这就需要对A超市的物流配送路径通过模型构建来进行优化,从而达到路线规划合理、车辆满载率提高、节约配送时间、提高配送效率、降低配送成本的目的。
第二章 A超市生鲜产品配送车辆路径优化模型构建
2.1 问题描述与参数设置
2.1.1 问题描述
本文研究的是A超市配送车辆路径优化问题,配送中心的主要业务是针对前一天各门店所提出的固定需求进行配送。是“不同产品,多方收货”,即向城市中的不同门店配送不同种类的产品,客户为B2B类型,主要是包含生鲜产品售卖的大型零售门店,需求量大且相对稳定,但配送服务有预约订单和实时订单两种方式,配送中心会在第二天为前一天预约的门店送货,并且在实时服务窗口开启后接收实时缺货订单,处理需求变动信息,由配送中心反馈至供应商,再由供应商将产品直送至各门店来满足需求。实时窗口关闭后停止接收实时订单。配送中心完成每日配送任务后返回配送中心,供应商满足完所接受的实时订单返回供应商所在处。
2.1.2 假设条件
本文建立的同时考虑时间窗约束和车辆运输过程中产生碳排放的冷链物流VRP模型需要兼顾可行性和实际情况,但是如果完全还原真实的环境,则各方面的影响很多,条件很复杂,会使得模型建立和求解的难度增大,因此本文在兼顾研究的可行性和实际情况的基础上做出以下假设:
要实现您描述的多中心冷链物流配送模型,需要设定一些关键的假设条件来简化现实世界的复杂性并使问题可解。以下是一些可能的假设:
(1)固定的配送中心和顾客点:假设配送中心和顾客点的位置是固定的,不随时间变化。
(2)统一的车辆类型:所有使用的车辆类型相同,具有相同的载重量限制、速度、运输成本和冷藏能力。
(3)已知的顾客需求:每个门店的需求量是已知的,不会在配送过程中发生变化。
(4)时间窗限制:每个顾客点都有特定的服务时间窗,配送必须在这个时间窗内完成。
(5)运输成本和碳排放计算方法:设定一个具体的方法来计算运输成本和碳排放,这可能包括燃料消耗、车辆折旧等。
(6)单次配送:每辆车一次只服务一个配送路线,完成后返回配送中心。
(7)顾客满意度的量化:顾客满意度可以通过某些量化的指标(如准时到达率)来衡量。
(8)环境和天气条件恒定:假设环境和天气条件对运输没有影响,或者这种影响是恒定的。
(9)道理情况恒定:假设道路拥堵对运输没有影响,或者这种影响是恒定的。
2.1.3 符号及参数变量设置
2.2 配送目标分析
本文将A超市生鲜农产品冷链物流作为研究对象,在车辆配送过程中,面临的问题是需要进行时间窗限制的单车型非满载的配送过程,基于A超市的实际情况将物流配送的总成本最小作为目标,确保货物能够在规定的时间内送达目标地,对于产品的质量措施进一步的保证。目标成本包含了人力固定成本、车辆损耗固定成本、货物运输途中和装卸过程中的货损成本、制冷系统的能耗成本等。
2.2.1 配送成本分析
(1)固定成本
固定成本是指所有车辆的成本费、折旧费、维修费、人工费等综合费用,在本文中单位车辆固定成本为C1,因此总的固定成本为:
运输成本是车辆在行驶过程中造成的一系列成本,主要包括燃料消耗费用。本文假设配送中心车辆都是同一类型,运输成本随着车辆行驶里程的增大而增大,成正比线性关系。本文为了便于模型的构建提出的假设是,配送车辆行驶速度已告知且车辆匀速行驶,因此不考虑速度对油耗的影响,不考虑车辆配送过程中货物的重量以及卸下货物减少的重量对油耗的影响,只考虑运输距离变化产生的油耗成本。总的运输成本如下所示:
(2)时间窗惩罚成本
在配送过程中超出既定配送时间,比如迟到、早到,情况下所出现的成本即惩罚成本。早到会增加车辆为保护货物维持货物新鲜度造成的制冷成本,迟到会引起配送点不满,支付一定罚金。本文主要考虑在限定时间窗内,推迟或提前送达情况下所产生的惩罚成本。惩罚成本具体表达式如下:
(4)制冷成本
在运输或者是到达配送点的时候,在装卸货开门的过程中,为了保证储存环境的低温,制冷系统的工作费用即制冷成本。本文主要考虑车辆制冷系统产生的费用。制冷成本的表达式如下所示:
(5)货损成本
货物在运输或装卸的过程中出现损坏变质所带来的损失即货损成本。冷链运输的产品大多都具有易腐败、易变质的特点,在整个运输的过程中,需要保证储存环境的低温。
本文主要考虑因为运输时间的增加,货物的变质可能以及在装卸过程中,由于外部热空气或外力冲击的影响,货物变质或损坏的损失。货损成本的表达式如下所示:
4.2.2约束条件构建
本文建立的数学模型有以下四个约束条件。
1.表示每一辆配送车只能一次离开配送中心,车辆返回配送中心后不再使用。
2.表示车辆从配送中心出发,最终又回到配送中心。
3.表示一次配送中所有车辆的最大荷载之和大于所有配送点的需求量之和。
4.2.3 优化模型构建
以上是对五种成本要素的分析,论文以成本最小化作为目标进行了相关优化路径模型的建立,总成本=固定成本+变动成本+货损成本+制冷成本+惩罚成本,最终的优化总体目标表达式如下:
2.3本章小结
本章首先对A超市生鲜产品冷链物流,针对带时间窗的冷链物流车辆路径问题展开了描述,其次做出了一些基本假设和相关参数、相关约束条件的设置,随后构建模型,以包含了人力固定成本、车辆损耗固定成本、货物运输途中和装卸过程中的货损成本、制冷系统的能耗成本的总成本最小为目标。
第三章 基于改进蚁群算法的生鲜食品配送路径优化算法设计
3.1基本蚁群算法
3.1.1 蚁群算法基本原理
蚁群是由大量蚂蚁形成的生物群,表现出高度的社会性和组织性。单个蚂蚁的行为运动看起来简单盲目,但它们在大规模的集体行动(如觅食)时,却能表现出极为复杂的行为。蚂蚁群体主要借助在它们运动的路径上留下一种被称为“信息素”的化学物质来完成信息传递,这种化学物质能够引导后来的蚂蚁向物质浓度高的路径上移动。在蚁群刚出发的时候,当碰到一个陌生的交叉口时,会随机选择一条路径行走,因此刚开始各条路径上的蚂蚁数量是分布均匀的。蚂蚁在行进过程中释放信息素,因此较短路径的信息素累积速度会快于较长路径的信息素累积速度。经过一段时间的信息素累积后,更多的蚂蚁会放弃较长的路径选择较短路径,随着不断地选择和淘汰,较短路径上的信息素残留浓度越来越高,最后整个蚁群会被吸引到最优路径上来。为了更直观地理解整个蚂蚁寻找最短路径的整个过程,本文以下图展示蚁群的觅食过程。
图3.1 蚁群觅食过程
3.1.2 基本蚁群算法流程
蚂蚁系统(Ant SysteA,AS)是最基本的ACO算法,是以TSP作为应用实例提出的。AS对于TSP的求解流程大致可分为两部:路径构建和信息素更新。
(1)路径构建
对于每只蚂蚁k,路径记忆向量R^k按照访问顺序记录了所有k已经经过的城市序号。设蚂蚁k当前所在城市为i,则其选择城市j作为下一个访问对象的概率如上式。J_k(i)表示从城市i可以直接到达的、且又不在蚂蚁访问过的城市序列中的城市集合。η(i,j)是一个启发式信息,通常由η(i,j)=1/d_ij直接计算。т(i,j)表示边(i,j)上的信息素量。
长度越短、信息素浓度越大的路径被蚂蚁选择的概率越大。α和β是两个预先设置的参数,用来控制启发式信息与信息素浓度作用的权重关系。当α=0时,算法演变成传统的随机贪心算法,最邻近城市被选中的概率最大。当β=0时,蚂蚁完全只根据信息素浓度确定路径,算法将快速收敛,这样构建出的最优路径往往与实际目标有着较大的差异,算法的性能比较糟糕。
(2)信息素更新
在算法初始化时,问题空间中所有的边上的信息素都被初始化为t0。算法迭代每一轮,问题空间中的所有路径上的信息素都会发生蒸发,我们为所有边上的信息素乘上一个小于1的常数。信息素蒸发是自然界本身固有的特征,在算法中能够帮助避免信息素的无限积累,使得算法可以快速丢弃之前构建过的较差的路径。蚂蚁根据自己构建的路径长度在它们本轮经过的边上释放信息素。蚂蚁构建的路径越短、释放的信息素就越多。一条边被蚂蚁爬过的次数越多、它所获得的信息素也越多,直至算法终止。
①信息素初始化
τij(0)=τ0
其中,τij(0)是初始时刻所有路径上的信息素浓度,τ0是初始信息素浓度。
② 信息素蒸发
τij(t+1)=(1−ρ)*τij(t)
其中,τij(t+1) 是下一时刻的信息素浓度,τij(t)是当前时刻的信息素浓度,ρ是信息素蒸发率。
③ 信息素增加
τij(t+1)=τij(t+1)+∑Ak=1Δτijk
其中,Δτijk是第 k 只蚂蚁在边(i,j)上留下的信息素量,通常与蚂蚁 k的路径长度成反比。
④ 信息素量的计算
其中,Q 是一个常数,Lk是蚂蚁k的路径长度。
📣 部分代码
<span style="color:#333333"><span style="background-color:#fafafa"><code> %% 画出最优配送方案路线图</code><code>%输入:VC 配送方案</code><code>%输入:vertexs 各个点的经度和纬度</code><code><span style="color:#ca7d37">function</span> draw_Best(VC,vertexs,arr)</code><code>customer=vertexs(2:end,:); %门店经度和纬度</code><code>NV=size(VC,1); %车辆使用数目</code><code>figure</code><code>hold on;box on</code><code>title(<span style="color:#dd1144">'最优配送方案路线图'</span>)</code><code>hold on;</code><code>C=linspecer(NV);</code><code><span style="color:#ca7d37">for</span> i=1:NV</code><code> part_seq=VC{i}; %每辆车所经过的门店</code><code> shijian=arr{i};</code><code> len=length(part_seq); %每辆车所经过的门店数量</code><code> <span style="color:#ca7d37">for</span> j=0:len</code><code> %当j=0时,车辆从配送中心出发到达该路径上的第一个门店</code><code> <span style="color:#ca7d37">if</span> j==0</code><code> fprintf(<span style="color:#dd1144">'%s'</span>,<span style="color:#dd1144">'配送路线'</span>,num2str(i),<span style="color:#dd1144">':'</span>);</code><code> fprintf(<span style="color:#dd1144">'%d->'</span>,0);</code><code> c1=customer(part_seq(1),:);</code><code> plot([vertexs(1,1),c1(1)],[vertexs(1,2),c1(2)],<span style="color:#dd1144">'-'</span>,<span style="color:#dd1144">'color'</span>,C(i,:),<span style="color:#dd1144">'linewidth'</span>,1);</code><code> %当j=len时,车辆从该路径上的最后一个门店出发到达配送中心</code><code> elseif j==len</code><code> fprintf(<span style="color:#dd1144">'%d(%d:%d)->'</span>,part_seq(j),fix(shijian(j)/60),mod(shijian(j),60));</code><code></code><code> fprintf(<span style="color:#dd1144">'%d'</span>,0);</code><code> fprintf(<span style="color:#dd1144">'\n'</span>);</code><code> c_len=customer(part_seq(len),:);</code><code> plot([c_len(1),vertexs(1,1)],[c_len(2),vertexs(1,2)],<span style="color:#dd1144">'-'</span>,<span style="color:#dd1144">'color'</span>,C(i,:),<span style="color:#dd1144">'linewidth'</span>,1);</code><code> text(c_len(1),c_len(2)+0.004,num2str(part_seq(j)));</code><code> %否则,车辆从路径上的xs(前一个门店到达该路径上紧邻的下一个门店</code><code> <span style="color:#ca7d37">else</span></code><code> fprintf(<span style="color:#dd1144">'%d(%d:%d)->'</span>,part_seq(j),fix(shijian(j)/60),mod(shijian(j),60));</code><code> c_pre=customer(part_seq(j),:);</code><code> c_lastone=customer(part_seq(j+1),:);</code><code> plot([c_pre(1),c_lastone(1)],[c_pre(2),c_lastone(2)],<span style="color:#dd1144">'-'</span>,<span style="color:#dd1144">'color'</span>,C(i,:),<span style="color:#dd1144">'linewidth'</span>,1);</code><code> text(c_pre(1),c_pre(2)+0.004,num2str(part_seq(j)));</code><code> end</code><code> end</code><code>end</code><code>plot(customer(:,1),customer(:,2),<span style="color:#dd1144">'ro'</span>,<span style="color:#dd1144">'linewidth'</span>,1);hold on;</code><code>plot(vertexs(1,1),vertexs(1,2),<span style="color:#dd1144">'s'</span>,<span style="color:#dd1144">'linewidth'</span>,2,<span style="color:#dd1144">'MarkerEdgeColor'</span>,<span style="color:#dd1144">'b'</span>,<span style="color:#dd1144">'MarkerFaceColor'</span>,<span style="color:#dd1144">'b'</span>,<span style="color:#dd1144">'MarkerSize'</span>,10);</code><code>end</code><code></code><code></code></span></span>
⛳️ 运行结果
🔗 参考文献
🎈 部分理论引用网络文献,若有侵权联系博主删除
🎁 关注我领取海量matlab电子书和数学建模资料
👇 私信完整代码和数据获取及论文数模仿真定制
1 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化、背包问题、 风电场布局、时隙分配优化、 最佳分布式发电单元分配、多阶段管道维修、 工厂-中心-需求点三级选址问题、 应急生活物质配送中心选址、 基站选址、 道路灯柱布置、 枢纽节点部署、 输电线路台风监测装置、 集装箱船配载优化、 机组优化、 投资优化组合、云服务器组合优化、 天线线性阵列分布优化
2 机器学习和深度学习方面
2.1 bp时序、回归预测和分类
2.2 ENS声神经网络时序、回归预测和分类
2.3 SVM/CNN-SVM/LSSVM/RVM支持向量机系列时序、回归预测和分类
2.4 CNN/TCN卷积神经网络系列时序、回归预测和分类
2.5 ELM/KELM/RELM/DELM极限学习机系列时序、回归预测和分类
2.6 GRU/Bi-GRU/CNN-GRU/CNN-BiGRU门控神经网络时序、回归预测和分类
2.7 ELMAN递归神经网络时序、回归\预测和分类
2.8 LSTM/BiLSTM/CNN-LSTM/CNN-BiLSTM/长短记忆神经网络系列时序、回归预测和分类
2.9 RBF径向基神经网络时序、回归预测和分类