table { margin: auto }

运输问题

随着社会和经济的不断进步,现代物流业蓬勃发展,如何充分利用时间、信息、仓储、配送和联运体系创造更多的价值,是物流运作必须解决的问题。运输问题(transportation problem)就是要求所采用运输方案是最经济或成本最低的,日益复杂的运输活动使得运输问题变得越来越庞杂,但是其核心思想仍然是实现现有资源的最优化配置。

例:某制药公司在全国设有六个生产基地,这些生产基地每天将这些药分别运往八个地区的经销部门,已知从每个生产基地到各销售部门每箱药品的运价如下表所示,问该制药公司应如何调运(运输方案),使在满足各销售部门需要的情况下,总的运输费用最少?

\(c_{ij}\) B1 B2 B3 B4 B5 B6 B7 B8 产量\(a_i\)
A1 6 2 6 7 4 2 5 9 60
A2 4 9 5 3 8 5 8 2 55
A3 5 2 1 9 7 4 3 3 51
A4 7 6 7 3 9 2 9 1 43
A5 2 3 9 5 7 2 6 5 41
A6 5 5 2 2 8 1 4 3 52
销量\(b_j\) 35 37 22 32 41 32 43 38

运输问题的数学模型

1. 运输问题类型

\[\sum_{i=1}^{m}{a_i}\geq\sum_{j=1}^{n}{b_j}
\]

其中\(m=6;n=8\),由于总供给大于总需求,属于供大于求的运输问题。

2. 数学模型的建立

设从产地\(i\)调运到销地\(j\)的药品数量为\(x_{ij}\),建立数学模型如下:

\[min \ \ \ \sum_{i=1}^{m}\sum_{j=1}^{n}{c_{ij}{x_{ij}}}\\\ \ \ \begin{cases} \sum_{j=1}^{n}{x_{ij}}\geq{a_i};{i=1,2,...,m}\\\\\sum_{i=1}^{m}{x_{ij}}={b_j};{j=1,2,...,n}\\\\ x_{ij}\geq0;{i=1,2,...,m};{j=1,2,...,n}\end{cases}
\]

运输问题求解

1. R计算程序

#运输问题加载包
library(lpSolve)
#运价矩阵
costs<-matrix(c(6,4,5,7,2,5,2,9,2,6,3,
5,6,5,1,7,9,2,7,3,9,3,5,2,4,8,7,
9,7,8,2,5,4,2,2,1,5,8,3,7,6,4,9,2,3,1,5,3),nrow=6)
row.signs<-rep("<=",6) #产量约束符号
row.rhs<-c(60,55,51,43,41,52) #产量约束向量
col.signs<-rep("=",8) #销量约束符号
col.rhs<-c(35,37,22,32,41,32,43,38) #销量约束向量 #最优解和最优值
res<-lp.transport(costs,"min",row.signs,row.rhs,col.signs,col.rhs)
res
res$solution

2. R计算结果

最优值
Success: the objective function is 664
最优解
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 0 19 0 0 41 0 0 0
[2,] 0 0 0 32 0 0 0 1
[3,] 0 12 0 0 0 0 39 0
[4,] 0 0 0 0 0 6 0 37
[5,] 35 6 0 0 0 0 0 0
[6,] 0 0 22 0 0 26 4 0

由R输出结果可知6个生产点8个销售点的最小运费为664,相应的运送方案为A1→B2:19个单位,A1→B5:41个单位,A2→B4:32个单位,A2→B8:1个单位,A3→B2:12个单位,A3→B7:39个单位,A4→B8:37个单位,A5→B1:35个单位,A5→B2:6个单位,A6→B3:22单位,A6→B6:26个单位,A6→B7:4个单位。

总结

通过运用运筹学的知识和方法对运输问题进行资源的优化配置和人员的合理分配,不仅可以为企业节省成本,提高效益和利润还可以节约运输的时间,为科学管理带来决策支持,为广大的消费者带来优惠和便利。

参考文献

R语言与优化模型:线性规划、整数规划和运输问题

运输问题—R实现的更多相关文章

  1. [原]CentOS7安装Rancher2.1并部署kubernetes (二)---部署kubernetes

    ##################    Rancher v2.1.7  +    Kubernetes 1.13.4  ################ ##################### ...

  2. 利用python进行数据分析2_数据采集与操作

    txt_filename = './files/python_baidu.txt' # 打开文件 file_obj = open(txt_filename, 'r', encoding='utf-8' ...

  3. Django项目:CRM(客户关系管理系统)--81--71PerfectCRM实现CRM项目首页

    {#portal.html#} {## ————————46PerfectCRM实现登陆后页面才能访问————————#} {#{% extends 'king_admin/table_index.h ...

  4. [COGS 0011] 运输问题1

    11. 运输问题1 ★★☆   输入文件:maxflowa.in   输出文件:maxflowa.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述]     一个工厂每天生 ...

  5. R+NLP︱text2vec包——四类文本挖掘相似性指标 RWMD、cosine、Jaccard 、Euclidean (三,相似距离)

    要学的东西太多,无笔记不能学~~ 欢迎关注公众号,一起分享学习笔记,记录每一颗"贝壳"~ --------------------------- 在之前的开篇提到了text2vec ...

  6. R语言最优化(一维)

    最优化问题是普遍存在的,以前上运筹学课的时候也接触过最优化相关的问题,当时主要是理论课,并且关注的重点是单纯形法.运输问题以及图论等,这里指的最优化是指函数的最优化,即函数的极值,由于寻找一个局部最优 ...

  7. [网络流24题] COGS 运输问题1

    11. 运输问题1 ★★☆   输入文件:maxflowa.in   输出文件:maxflowa.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述]     一个工厂每天生 ...

  8. cogs.12运输问题2题解

    乍一看貌似和运输问题1没有任何区别,但本题有一个有意思的东西叫做下限,我个人称之为非强制下限,因为本题中要求的实际是我走这条边这条边才至少走下限的流,虽然出题人没说,但从样例来看确实是这样的,而强制下 ...

  9. Cogs 739. [网络流24题] 运输问题(费用流)

    [网络流24题] 运输问题 ★★ 输入文件:tran.in 输出文件:tran.out 简单对比 时间限制:1 s 内存限制:128 MB «问题描述: «编程任务: 对于给定的m 个仓库和n 个零售 ...

  10. Cogs 12. 运输问题2(有上下界的有源汇最大流)

    运输问题2 ★★☆ 输入文件:maxflowb.in 输出文件:maxflowb.out 简单对比 时间限制:1 s 内存限制:128 MB 运输问题 [问题描述] 一个工厂每天生产若干商品,需运输到 ...

随机推荐

  1. Vue Element使用第三方图标(iconfont阿里矢量图标库)

    在  www.iconfont.cn 中搜索图标并加入购物车然后添加至项目,编辑项目名称 然后将项目下载至本地解压后将如下文件复制移到到  src/assets/icon中, 并把iconfont.c ...

  2. matlab函数学习笔记

    数值精度 显示精度由format函数控制,不影响原始数据,只控制显示精度 命令 说明 long   short   rat 分数 digits   vpa   pi的输出 命令 显示结果结果 form ...

  3. mysql表操作2

    表介绍: 表就相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段 创建表: #语法: create table 表名( 字段名1 类型[(宽度) 约束 ...

  4. raft算法,cap理论中的c是数据一致性,是通过raft算法,

    raft算法中的两个重要概念,自旋时间,心跳时间, 领导,候选人,随从,通过日志同步.只要大多数随从同步成功,就算成功.

  5. 网页返回unicode源码 python解码详细步骤

    刚入门python! 记录一下网页返回源码,中文部分被unicode编码,python如何处理 1.先提取编码后的数据(如果不提取正篇源码直接unicode解码,解码方法无法识别) 这个步骤属于逻辑问 ...

  6. pkuseg

    git-url: https://github.com/lancopku/PKUSeg-python pkuseg:一个多领域中文分词工具包 pkuseg简单易用,支持细分领域分词,有效提升了分词准确 ...

  7. Python数据可视化,自适应浏览器

    pyecharts生成的html默认是靠左上显示的需要生成的文件居中显示,且能根据浏览器窗口大小自动调整需要修改html当然,如果你是熟悉html,且只是临时少量生成表格的话,每次生成完后手动修改ht ...

  8. 动力节点的MySQL的34题目的第7题的我的参考答案

    以下是:薪水的平均等级最低的部门的名称 select t4.t4deptno,t4.t4grade,d1.dname from( ##求出各部门平均等级begin select avg(t3.t3gr ...

  9. sqlserver 生成随机值

    随机生成100以内的整数 select top 10 number,ceiling(rand(checksum(newid()))*100) from master.dbo.spt_valueswhe ...

  10. vue 数组修改 页面无法刷新

    saveData: { current: 1, records:[] , total:0}, countSaveMoney:{ bidSuccessMoney:0, saveMoney:0},页面上有 ...