• 【物流中心选址】智能优化算法在物流中心选址的应用(Matlab代码实现)


    目录

    1 概述

    2 运行结果

    3 参考文献

    4 Matlab代码实现


    1 概述

    在新时代背景下,物流业越来越凸显其在社会经济发展过程中占有的不可或缺的战略地位[1-31.在整个物流网络运行过程中,物流中心作为供货点和需求点之间的沟通桥梁,在物流系统中
    有着极其重要的作用,因此选取合适的物流中心将对物流经济效益的提高产生重要影响.我国物流行业存在起步较晚,物流系统存在结构不完善和企业经验少等诸多问题,特别是物流中心选址问题存在较多的弊端,为此,众多学者对其进行了相关探索和研究.

    物流中心选址在整个物流系统中占有十分重要的地位,由于物流选址问题往往涉及线性
    和非线性因素,传统的物流中心选址方法往往无法解决非线性因素,所以部分影响因素会被忽略,为此,研究企鹅智能优化算法在物流中心选址的应用.部分代码:

    1. function [fit,result,x0]=aimFcn_1(x,option,data)
    2. x0=x;
    3. %% 解码
    4. x1=x(1:data.numD);
    5. x(1:data.numD)=[];
    6. [~,S]=sort(x);
    7. selectedC=S(1:data.numSelected);
    8. if isempty(selectedC)
    9. selectedC=1;
    10. end
    11. selectedC0=data.noC(selectedC);
    12. %% 安排节点的配送路径
    13. [~,S]=sort(x1);
    14. Load=selectedC*0+data.maxLoad;
    15. flagC=selectedC*0;
    16. recording=[];
    17. demand=data.demand(:,1:data.numP);
    18. demandC=zeros(length(selectedC),3);
    19. for i=1:data.numD
    20. noD=data.noD(S(i));
    21. noD0=S(i);
    22. for noP=1:data.numP
    23. if demand(noD0,noP)>0
    24. position=find(Load>demand(noD0,noP));
    25. if ~isempty(position)
    26. [D1,no]=min(data.D1(noD,selectedC(position)));
    27. Load(position(no))=Load(position(no))-demand(noD0,noP);
    28. noC=selectedC(position(no));
    29. noC0=selectedC0(position(no));
    30. noP0=data.noP(noP);
    31. D2=data.D2(noC,noP)/1000;
    32. demandC(position(no),noP)=demandC(position(no),noP)+demand(noD0,noP);
    33. recording=[recording;noP,noC,noD0,noP0,noC0,noD,demand(noD0,noP),D1,D2];
    34. % 1生产地独立编号 2物流中心独立编号 3需求地独立编号
    35. % 4生产地统一编号 5物流中心统一编号 6需求地统一编号
    36. % 7需求 8距离1-需求地到物流中心 9距离2-物流中心到生产地
    37. demand(noD0,noP)=0;
    38. end
    39. end
    40. end
    41. end
    42. %% 固定成本
    43. C1=sum(data.node(selectedC0,4));
    44. %% 运输成本
    45. C21=data.ct2*sum(recording(:,7).*(recording(:,8)));
    46. C22=data.ct1*sum(recording(:,7).*(recording(:,9)));
    47. %% 可变成本
    48. C3=sum(sum(data.demand.^data.alpha))*data.cb;
    49. %% 库存成本
    50. C4=sum(sum(data.demand))*data.ck/12;
    51. %% 惩罚项-是否所有的需求均被满足
    52. punishiment=sum(sum(demand(demand>0)));
    53. fit=C1+C21+C22+C3+C4+punishiment*1e6;
    54. if nargout>1
    55. result.fit=fit; %总目标
    56. result.recording=recording; %详细记录
    57. % 1生产地独立编号 2物流中心独立编号 3需求地独立编号
    58. % 4生产地统一编号 5物流中心统一编号 6需求地统一编号
    59. % 7需求 8距离1-需求地到物流中心 9距离2-物流中心到生产地
    60. result.selectedC0=selectedC0; %2物流中心独立编号
    61. result.selectedC=selectedC; %5物流中心统一编号
    62. result.C1=C1;
    63. result.C21=C21;
    64. result.C22=C22;
    65. result.C3=C3;
    66. result.C4=C4;
    67. result.demandC=demandC; %每个中转的负载
    68. result.punishiment=punishiment; %多少需求未被满足
    69. end
    70. end

    2 运行结果

     

    3 参考文献

    部分理论引用网络文献,如有侵权请联系删除。

    [1]舒孝珍.基于模糊综合评价法的物流中心选址问题分析[J].内江科技,2021,42(3):43-44
    [2]王保华,何世伟.不确定环境下物流中心选址鲁棒优化模型及其算法[J].交通运输系统工程与信息,2009,9(2):69-74
    [3]禤文怡,汪波,袁建强.基于遗传算法和指标满意度求解的第三方物流企业物流中心选址方法[J].运筹与管理,2004,13(2):139-144

    4 Matlab代码实现

     

  • 相关阅读:
    12_AJAX
    【React一】React基础+组件化编程【ref+props+state】
    JSP企业内部交流系统myeclipse开发mysql数据库bs框架java编程jdbc
    学习日记(单元测试、反射、注解、动态代理)
    Unity常用模块设计 : Unity游戏排行榜的制作与优化
    hive正则匹配总结
    Go-Excelize API源码阅读(二十一)——GetDefinedName()、DeleteDefinedName()
    云工作流 CloudFlow 重磅发布,流程式开发让云上应用构建更简单
    Java 枚举(enum)学习笔记
    使用fabric8操作k8s
  • 原文地址:https://blog.csdn.net/weixin_46039719/article/details/126905424