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. jenkins - Asp.net 环境搭建(Windows)

    jenkins - Asp.net 环境搭建(Windows) 安装环境 通过 Chocolatey自动安装 choco install ojdkbuild11 #或 choco install jd ...

  2. go的相关包time、os、rand、fmt

    time 1.time包 2.time.Time类型, 用来表示时间 3.取当前时间, now := time.Now() 4.time.Now().Day(),time.Now().Minute() ...

  3. vue下载图片

      async works(obj) {       await this.axios({         method: 'get',         url: `entryFormControll ...

  4. C#基于数据库链接增删改查

    一.创建一个winfrom窗体 1.创建项目 2.创建一个链接数据的类 3.封装数据库的实体类(查询和增加) 在对数据操作时必须引用连个数据库using using System.Data; usin ...

  5. c++结对编程

    || |:--|:--| |Github项目|Github地址 |结对伙伴|伙伴地址1伙伴地址2 PSP表格 ||| |:--|:--|:--|:--| |PSP2.1|Personal Softwa ...

  6. C语言初级阶段4——数组3——字符数组

    C语言初级阶段4--数组3--字符数组 字符数组的定义:储存字符类型数据的集合 1.注意:如果用字符串给字符数组初始化,那么不需要{},但是要有"". 2.%s :用来输出字符串的 ...

  7. unittest "ResourceWarning: unclosed <socket.socket fd=864, family=AddressFamily.AF_INET..." 解决办法...

    将代码封装,并使用unittest调用时,返回如下警告: E:\intall\python-3.7.4-amd64\lib\unittest\suite.py:84: ResourceWarning: ...

  8. PC端钉钉扫码登录,报错情况合集

    "对不起 你无权限查看该页面 redirect_url不能为空" 原因: 1. 只对redirect_url编码,而生成二维码时需要对整个gotoUrl进行编码 2. appid参 ...

  9. 使用git&GitHub通过两台电脑协同作业,助力办公室摸鱼

    前情提要:工作有时候负荷比较小,会接一些咸鱼上的活儿或者自己学点软件技能,这时候会出现一个情况,公司笔记本一般不带回家,家里台式机,白天在公司摸鱼编辑的文件,晚上回家想接着干怎么办呢,或是晚上在家干的 ...

  10. pytesseract文字识别

    import pytesseract from PIL import Image im=Image.open('image.png') print(pytesseract.image_to_strin ...