首页 > 编程语言 >算法工程师学习运筹学 笔记四 运输问题

算法工程师学习运筹学 笔记四 运输问题

时间:2023-08-24 10:33:05浏览次数:74  
标签:运输 运价 ... 最小 笔记 问题 算法 bj 运筹学

运输问题

运输问题是一种特殊的线性规划问题,可以解决如类似把商品从一些产地运往另一些销售地使总运输成本最低的问题。由于其场景特殊性,找到比单纯型法更搞笑简便的算法,这便是研究运输问题的目的所在。下面是运输问题的思维导图

 

一、运输问题的数学模型

对于单一商品的调度运输问题,一般来说有以下定义:

商品有m个产地,A1,A2, ..., Am,每个产地有a1,a2, ..., am的产量;有n个销售地B1,B2, ..., Bm,每个销售地有b1,b2, ..., bm的销量;cij表示从Ai运往Bj的运输成本。

运输问题可以抽象成三个类型:

(1)产销平衡 ∑i ai = ∑j bj

(2)供过于求 ∑i ai > ∑j bj

(3)供小于求 ∑i ai < ∑j bj

以产销平衡为例,其模型为:

可以从该模型看出,模型包含m*n个决策变量,m+n个等式约束,m*n个非负约束。

写成(m+n)* (m*n)的系数矩阵

其系数向量的结构是

 即第i个和第(m+j)个分量是1,其余是0

 

运输问题的有如下特点:

1、所有结构约束条件都是等式约束

2、各地产量和等于各地销量和

3、解变量对应的约束方程组的系数列向量线性无关

4、解中的非零变量的个数不大于n+m-1个,因为m+n-1个约束条件是线性独立的

 

二、求解运输问题

表上作业法

(1)找到初始解(2)做最优判断(3)在运输表上改进得到新解(4)在判别、再改进

关于第一步,找到初始解,一般由三种方法可以做

西北角法

遵循“优先安排运价表上编号最小的产地和销地之间(即运价表的西北角位置)的运输业务”的规则

最小元素法

最小元素法的基本思想是就近供应,为了减少运费,优先考虑运价表中单位运价最小(或运距最短)的供销业务

沃格尔法

沃格尔法的基本思想是在运价表中分别计算出各行各列的最小单位运价和次小单位运价之差,并称这两个单位运价之差为该销售地或供应地的罚数,然后按照最小单位运价对罚数最大处安排运输。因为若罚数的值很大,说明不按最小运价组织运输就会造成很大的运费损失。

 

 

标签:运输,运价,...,最小,笔记,问题,算法,bj,运筹学
From: https://www.cnblogs.com/4PrivetDrive/p/17651775.html

相关文章

  • 《程序员的自我修养》第四章学习笔记
     2015.12.26的笔记,放在了草稿箱。2023.8.24发布一下吧。第四章静态链接 先上两个文件//a.cexternintshared;intmain(){inta=100;swap(&a,&shared);}//b.cintshared=1;voidswap(int*a,int*b){*a^=*b^=*a^=*b;} 再......
  • 用户新增预测挑战赛(算法挑战大赛)(二)
    1.可视化相关:2.交叉验证:(提分技巧之一)k折交叉验证k-foldcrossvalidation 首先随机地将数据集切分为k个互不相交的大小相同的子集; 然后将k-1个子集当成训练集训练模型,剩下的(heldout)一个子集当测试集测试模型; 将上一步对可能的k种选择重复进行(每次挑一个不......
  • 《深入理解Java虚拟机》读书笔记:运行时栈帧结构
    代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。一、概述在Java虚拟机规范中制定了虚拟机字节码执行引擎的概念模型,这个概念模型成为各种虚拟机执行引擎的统一外观(Facade)。在不同的虚拟机实现里面,执行引擎在执行Java代码的时......
  • 平衡树学习笔记
    非旋平衡树FHQ-Treap这里介绍的是非旋\(Treap\),即\(FHQ-Treap\),毕竟这个好写太多,而且支持各种操作。\(FHQ-Treap\)包含两个重要操作:分裂和合并。分裂(split)分裂指的是将一棵以\(root\)为根节点的树,分裂成两棵分别以\(a,b\)为根节点的树。其中有两种分裂方式,第一种是按......
  • 在Windows系统中搭建C++刷算法题环境
    下载Docker首先,到Docker官方网站下载适合Windows系统的DockerDesktop并安装。下载Ubuntu镜像使用如下命令安装Ubuntu最新镜像:dockerpullubuntu在镜像中搭建C++编译环境使用如下命令启动一个ubuntu容器:dockerrun-itd--nameubt-cpp-v/d/code/algo:/dataubuntu使......
  • 【DBN回归预测】基于麻雀算法优化深度置信网络SSA-DBN实现数据回归多输出预测附matlab
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • 多元时间序列 | Matlab粒子群算法优化深度置信网络(PSO-DBN)多变量时间序列预测
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • 图论算法代码
    当参加数学建模竞赛时,图论算法是一个常用的解决方案之一。以下是一个使用Python实现的深度优先搜索(DFS)算法示例,用于遍历图的所有节点:点击查看代码classGraph:def__init__(self):self.adjacency_list={}defadd_edge(self,u,v):ifunot......
  • 模拟退火算法代码
    当参加数学建模竞赛时,模拟退火算法是一个常用的解题方法之一。以下是一个简单的模拟退火算法的代码示例,用于解决旅行商问题(TSP):点击查看代码importmathimportrandomdefdistance(point1,point2):#计算两个点之间的欧几里德距离returnmath.sqrt((point1[0]-poi......
  • 神经网络算法
    以下是一个简单的神经网络算法的代码示例,用于解决二分类问题:点击查看代码importnumpyasnp#定义激活函数defsigmoid(x):return1/(1+np.exp(-x))#定义神经网络类classNeuralNetwork:def__init__(self,input_size,hidden_size,output_size):......