目录

1、物流中心选址问题说明

2、模型构建

3、遗传算法

3.1、染色体编码方式

3.2、选择算子

3.3、交叉算子和变异算子

4、部分代码展示


1、物流中心选址问题说明

如图所示,物流网络主要由生产制造商集合、配送中心集合、销售点集合、客户集合四个集合所构成。本文主要关注的问题如下:

1、主要关注物流网络节点的选择和网络连接方式的确定,物流网络节点的选择主要包括销售中心的选择;网络连接方式的确定包括厂商与运输中心之间的连接、运输中心与销售中心的连接,目前假设生产制造厂商只有1个。

2、考虑的碳排放只考虑二氧化碳的排放在内,且只考虑运输过程中的排放,配送中心和销售中心的建立或其他方式所产生的二氧化碳不计算在内。

3、在运输线上运用到了更加贴近现实的方案:生产厂商和配送中心之间的运输可以选择公路、铁路和水路三种运输方式,而配送中心与销售中心之间只允许采用公路运输方式完成配送;且一个销售中心的货物只能由一个配送中心提供。

2、模型构建

k:交通运输方式,1为公路运输,2为铁路运输,3为水路运输, k={1,2,3}。

i: 开设第i个配送中心,i={1,2,3,...,n}

j:开设第j个销售中心,j={1,2,3,...,m}

:第j个销售中心的需求量 ​​​​

:第i个配送中心最低设立货物数量下限

:从生产厂运输到第i个运输中心货物采用第k种运输中心的比率

:从生产厂运输到第i个运输中心货物采用第k种运输中心的运输距离

:从生产厂运输到第i个运输中心货物采用第k种运输中心的运输费率

:第k种运输方式的单位碳排量

:开设第i个运输中心的固定费用

:第i个运输中心的是否开启的01变量

:第j个销售中心是否由第i个运输中心供货的01决策变量

:采用公路运输方式的第i个运输中心和第j个销售中心之间的距离

:采用公路运输方式的第i个运输中心和第j个销售中心之间的运输费率

目标构建和限制条件:

利用模糊隶属度的方法将多目标转换为单目标再求解,这里的Z1和Z2的模糊隶属度都取0.5。

3、遗传算法

遗传算法(Genetic Algorithm),又称为进化算法,于20世纪70年代由美国学者约翰.霍华德教授提出的,是一种根据达尔文自然选择模拟计划而得的计算模型,原理是通过模拟自然界生物进化规律的方式来寻求最优解。具体运行方式如下图所示。

3.1、染色体编码方式

这里染色体编码方式为对销售中心进行自然数编码。具体解码方式为编号为销售中心的号码,例如X=(1 2 2 2 2 2 2 2 2 2 2 2 2 3)的解码方式如下图所示。

3.2、选择算子

本文在初始化种群后,将会进行选择操作;经过多次实验,常用的轮盘赌方法结果收敛效果很差(见左下图),通过采用锦标赛的方法,大约只需要不到200次迭代即可(见右下图),使得结果收敛。其具体方法是在所有的染色体中随机选取若干个个体,如果这若干个染色体的适应度大于父代染色体适应度,则会存放到父代染色体中,进行下一次繁殖,这样就可以达到父代染色体中的值达到最优,直至收敛。

3.3、交叉算子和变异算子

4、部分代码展示

%问题:找到成本和碳排放最低的网络运行方案
%编码:自然数编码
%选择:锦标赛
%交叉:顺序交叉
%变异:两个随机位置互换clear;
clc;
close all;
tic;
%% Ⅰ通过data将数据导入,并设置相关参数
[N,D,Iter,Pc,Pm,d1,d2,q,c1,t,e,g,cIndex,mIndex] = data;[A,B] = size(q);[R,C] = size(d2);
[~,K] = size(e);GA = zeros(N,D+1); %前D位置为销售中心对应的运输中心位置  D+1 位置为总费用
%%  Ⅱ 初始化
[GA] = initialization(d2,N,D,GA,c1,t,d1,q,g,e,R,K,cIndex,mIndex);
%%  Ⅲ 迭代
[GA,Gbest,fitnesses] = iteration(N,D,Iter,Pc,Pm,d2,GA,c1,t,d1,q,g,e,R,K,cIndex,mIndex);
%% Ⅳ命令行显示,并画图
[value,row] = min(GA(:,D+1));
disp(['最优方案出现在第',num2str(row),'代']);
disp(['最优方案为:',num2str(GA(row,1:D))]);
disp(['minL为:',num2str(min(GA(:,D+3)))]);
disp(['其中成本为:',num2str(GA(row,D+1)/cIndex)]);
disp(['碳排放为:',num2str(GA(row,D+2)/mIndex)]);subplot(1,2,1)
plot(Gbest);
title("仿真结果")
xlabel("迭代次数")
ylabel("费用")subplot(1,2,2)
plot(fitnesses);
title("适应度迭代过程")
xlabel("迭代次数")
ylabel("适应度")
toc

不好意思,近期本人网上冲浪的时间较少,没有回到大家信息。代码是本人本科毕业时所编写,如有问题请随时咨询我。下面有给到算法的链接,如有需要可以随时获取。

GitHub - MajesticSpume/GA_Logistic: 这是一个利用Matalab设计关于物流网络选址的遗传算法这是一个利用Matalab设计关于物流网络选址的遗传算法. Contribute to MajesticSpume/GA_Logistic development by creating an account on GitHub.https://github.com/MajesticSpume/GA_Logistic

关于低碳物流中心选址问题的MATLAB遗传算法相关推荐

  1. 基于Matlab遗传算法工具箱解决物流中心选址

    目录 1.问题 2.建模 3.Matlab编程.求解 1.问题 物流配送中6个客户的位置坐标和配数数量如表1所示,如何设置物流配数中心使得配送量最小. 2.建模 3.Matlab编程.求解 编写目标函 ...

  2. MATLAB遗传算法求解超市物流配送选址问题实例

    遗传算法编程问题实例: MATLAB遗传算法求解超市物流配送中心选址问题代码实例 添加链接描述 在范围为(0,0)到(100,100)的矩形区域内,散布着40个连锁超市,各个连锁超市的坐标及需求量见表 ...

  3. 基于多目标遗传算法的IEEE14节点系统分布式电源选址定容matlab程序

    基于多目标遗传算法的IEEE14节点系统分布式电源选址定容matlab程序 摘 要: 为更好地解决分布式电源选址定容问题,提出一种改进的多目标遗传算法.之后,考虑投资成本.网损以及电压稳定性三因素建立 ...

  4. 分布式电源优化配置与选址定容MATLAB程序基于遗传算法

    分布式电源优化配置与选址定容MATLAB程序基于遗传算法 (1)该程序为基于遗传算法的分布式电源优化配置与选址定容程序,硕士学位论文源程序,配有该论文. (2)本程序可有效配置分布式电源容量与安装位置 ...

  5. MATLAB遗传算法求解物流配送中心选址问题优化代码实例

    1.简介 物流分配中心选址问题是指一定数量的客户,它们有不同数量的货物需求,有一定数量的备选中心作为配送中心.配送中心向客户提供货物的配送服务,现需要选择合适的配送中心位置(选址数量一定)或合适的配送 ...

  6. 模糊综合评判之物流中心选址问题

    作业题目 物流中心作为商品周转.分拣.保管.在库管理和流通加工的据点,其促进商品能够按照顾客的要求完成附加价值,克服在其运动过程中所发生的时间和空间障碍.在物流系统中,物流中心的选址是物流系统优化中一 ...

  7. 油田选址问题matlab,【优化求解】小区基站最优化选址问题【Matlab 478期】

    一.简介 基于matlab 小区基站最优化选址问题 二.源代码 function [C,P] = GetPlan() clc clear Get_OptimalCombination(1); Get_ ...

  8. c遗传算法的终止条件一般_Matlab2 :Matlab遗传算法(GA)优4~-r-具箱是基于基本操作 联合开发网 - pudn.com...

    Matlab2 所属分类:matlab例程 开发工具:PDF 文件大小:115KB 下载次数:76 上传日期:2007-09-07 20:04:29 上 传 者:钱广 说明:  :Matlab遗传算法 ...

  9. matlab bs2rv.m,matlab遗传算法工具箱中的例子不能用?

    matlab遗传算法工具箱中的例子不能用,我也发现了,求助 figure(1); fplot('variable.*sin(10*pi*variable)+2.0',[-1,2]);   %画出函数曲 ...

最新文章

  1. 项目经理应该具备的技能
  2. 十年JAVA架构经验总结:这几点尤为关键!
  3. Enum类的非一般用法汇总(工作中遇到时持续更新)
  4. 【Android】Vitamio 4.0 公测版发布(2013-05-28)
  5. boost::format模块演示添加到 printf 语法的功能
  6. php datediff 函数,dateAdd与DateDiff函数的js代码
  7. 深度优先搜索——单词方阵(洛谷 P1101)
  8. 【纪中集训2019.3.23】Deadline
  9. NBU备份速度快慢调整
  10. RuoYi-Vue前端分页
  11. linux 下配置可视化git 冲突合并工具kdiff3
  12. 详解高速缓存存储器的3种映射方式
  13. Hadoop 推测执行
  14. 双目立体视觉(3)- ZED2 ROS Melodic 发布RGB图像及深度信息
  15. 安卓手机使用Termux软件进行Linux系统的安装
  16. R-2R梯形网络 DAC简易的电路
  17. 【码上实战】【立体匹配系列】经典AD-Census: (1)框架
  18. 使用k3s部署轻量Kubernetes集群快速教程
  19. 用c语言给8051编程,8051单片机的C语言编程
  20. Java中十进制转换为其他进制的方法

热门文章

  1. 毕业季,成为3D建模师一定要认真考虑
  2. android 多线程 js,JS多线程(web work)
  3. 点焊机器人焊接超时_焊接机器人常见故障原因及解决措施
  4. springBoot(idea)整合activiti简单流程完整示例
  5. 无线电频谱、频段、频率、频道之间的区别是什么?
  6. python保存到指定文件夹_Python文件夹与文件的相关操作(推荐)
  7. html做人脸识别 博客,一个人脸识别+特效的小例子
  8. Python中将弧度转换为角度和将角度转换为弧度的计算degrees() 、radians()方法
  9. 互联网日报 | 名创优品潮玩全球首店开业;百度昆仑1芯片实现量产;特斯拉在华超充站突破600座...
  10. 图片可以压缩到20k以内吗?这两个方法值得点赞收藏