基于匈牙利算法的运输问题改进算法论文

基于匈牙利算法的运输问题改进算法

张雨晨 ZHANG Yu-chen;王竹芳 WANG Zhu-fang

(沈阳工业大学管理学院,沈阳110870)

摘要: 基于运输问题的模型和特点,提出了一种与匈牙利算法结合的改进算法,匈牙利算法作为一种较成熟的基本算法,在计算运输问题时省去大量求解检验数的计算。改进算法将运输问题分解成多个指派问题,利用匈牙利算法求解分解后的指派问题,最后将所有指派问题的结果求和得到最优解。给出了一个改进算法的案例,详细的介绍了改进算法的计算过程,证明了改进算法的有效性。

关键词: 匈牙利算法;运输问题;改进算法

0 引言

当前求解运输问题最行之有效的方法就是表上作业法,表上作业法判断运输问题是否求得最优解的方法就是求解检验数,当产地和销地较多时,就需要大量的计算来求解检验数。当有m个产地n个销地时,以位势法为例,初始解就需要计算(m×n)-(m+n-1)个检验数,若求得的检验数存在小于零的情况,则需要进行调整,当需要调整k次时,总的求解检验数的计算量为k×{(m×n)-(m+n-1)}次[1],大量的计算过程导致了在多产地多销地的问题上表上作业法的复杂性较高,甚至存在找不到闭回路无法继续计算的情况。

匈牙利算法作为一种较成熟的方法,已经多次的应用在运输问题的求解上,但大多只是使用了匈牙利算法的思想与原本的运输问题方法相结合。夏少刚[2,3]在求解运输问题的一种新算法中,提出了在表上作业法应用匈牙利算法的思想,成功地将指派问题的标号算法应用于运输问题中,对单位运价表进行行列变换,得到一个每行每列均有0元素的矩阵,然后根据产量和销量对行列进行分配,最后按照最小调整差的方法进行调整。林建、郭强[4,5]提出了将运输问题转换成网络最短路的算法,该算法打破了传统运输问题的表上作业法,可以同时解决平衡和不平衡运输问题,适用性更广。陈星明[6]提出了最小费用最大流的算法改进运输问题,改进算法不仅可以解决运输问题还能进行编程操作,应用计算机软件求解运输问题。Tadei R[7]提出了一种启发式的算法,用于解决经销商运输的问题,并给出了改进算法。Rao R C[8]探讨了在运输问题中允许非线性目标函数的计算含义,分别就两种类型非线性性目标函数进行讨论,并提出解决该类运输问题的方法。Chizat L[9]提出了一类新的快速算法来解决不平衡运输问题,在基础运算方法上加入缩放的方法,更适合求解不平衡的运输问题,简化了原有算法。当前大多数改进算法省去了计算检验数判断是否最优的过程,但除了初始调整和分配时使用的方法利用匈牙利思想,调整步骤仍然是最基本的最小行列差调整的方法,且在选择最小行列差时无法保证是否为最小,调整时可能存在多个不互相独立的调整路线[10,11,12],无法判断最优的情况下,无形的增加了计算过程。

电力通信网是电力系统的专用通信网,随着智能电网的发展,电力通信网同其他通信或电信网络出现不同程度的融合,电力通信网的运营模式和业务承载面临新的变革,县域电力通信网在规划时期应适当增强网络的接入能力和业务承载能力,建设可扩展和升级的电力通信网,更好地服务智能电网建设。

一般的运输问题是求解最优化的运输方案,且指派问题是运输问题的特殊问题,本文提出的改进算法是以匈牙利算法为基础,将运输问题转化成了若干个指派问题,从而去除了求解检验数的计算过程。

1 问题描述

工程项目施工阶段的原材料购入问题是工程前期准备的重要问题,开发单位购入原材料时通常会同时选择多家供应商,以防止在大量需要原材料时,出现单一厂家购入无法满足需求的情况,并且,同一厂家也会为多家开发单位供应原材料。在选择过程中,当只考虑运输成本时,就出现了开发单位选择哪家供应商运输成本最低的问题,把这类问题叫做运输问题。

开发单位购入水泥时选择三个厂家购入水泥。购入水泥的三个厂家每日的供应量分别是A1为7吨,A2为4吨,A3为9吨。开发单位需要把这些水泥分别从三个水泥厂家运往四个施工场地。各施工单位每日需求量为:B1为3吨,B2为6吨,B3为5吨,B4为6吨。已知从各工厂到各施工场地的单位产品运价为表1所示。问开发单位应如何购入水泥,在满足施工场地的需求量的前提下,使总运费最少。

2 运输问题

表1 单位运价表

④得到调整方案如表5所示,再次使用位势法计算检验数,存在检验数σ34=-1,仍需要调整,调整量为min{x14,x32}=30。

把具有这样数学模型的问题叫做产销平衡的运输问题。对于产销不平衡问题,通常使用补充产地或销地的方法,转化成产销平衡的运输问题。

3 匈牙利算法求解运输问题

3.1 改进算法的计算过程

指派问题作为运输问题的特殊形式,将求解指派问题的匈牙利算法应用到求解运输问题中,便可以减少表上作业法的求解检验数的过程。首先引入匈牙利算法求解最优解的定理。

cij-(ui+vj)=0,i,j∈B

定理1如果从效率矩阵aij的每一行元素中分别减去或加上一个常数ui,从每一列中分别减去或加上一个常数vj,得到一个新的效率矩阵 bij,其中 bij=aij-ui-vj,则以 bij为效率矩阵的足有街等价于以aij为效率矩阵的最优解。

定理2指派问题效率矩阵中独立0元素的最多个数等于覆盖所有0元素的最小直线数

根据式(16)和各层的传递函数,可求出第k次迭代的总误差梯度ΔEk,代入式(17),便可逐次修正其权值,并使总误差向减小的方向变化,直至达到所要求的误差性能为止。

定理3若一个运输问题可拆分成若干指派问题,且每一个指派问题均可求得最优解,则所有指派问题的最优解之和为运输问题的最优解。

证明:对于一般的运输问题,产量与销量具有这样的关系:

当ai=bj=1时,运输问题的关系式转化成指派问题,可将运输问题每个拆分成运量为1的指派问题。为了减少计算量,产销平衡运输问题以ci=min{a1,a2,a3,…,am,b1,b2,b3,…,bn}为基本产地供给量拆分出若干产量与销量相等的指派问题;

根据基变量和对应的检验数,可求出ui和vj

在指派问题的效率矩阵每行元素加(减)一个常数存在矩阵s’:

我再也没有办法坚强,仿佛又变回过去那个不懂事的小孩子,我哭着说:“我得了乳腺癌,我必须把它们切除才能活命,我以后不知道有没有男人要了,连自己的小孩都喂不了。”

新的效率矩阵s’的最优解不变;

在进行画线覆盖0元素时,如果在m项任务指派过程中存在M个独立0元素,且M<m,即存在任务ai没有员工与之关联,同时也没有任务与员工bi关联。显然ai和bj是可以关联的,此时M并非最大独立0元素个数。当M=m时,考虑最大独立0元素M个,由于任务与员工两两相匹配,因此至少需要M个独立0元素才能实现最优解。

由于每个指派问题都存在最优解,故所有指派问题的最优解之和也为最优解,即为运输问题的最优解。

根据以上证明结果,匈牙利算法求解运输问题的具体计算步骤如下:

科学课堂进行论证探究式教学其实不一定要还原真实科学实验的每一步骤,但对一些重要环节进行充分论证,能够让学生历经有理的探究过程,有利于培养科学思维和对科学本质的进一步理解。在教学中,教师要精心选择论证主题,有效组织论证活动,培养学生的论证能力,促进学生的科学学习。

①确定给定运输问题是否为产销平衡的运输问题,若为平衡运输问题,将运输矩阵写成n×n的系数矩阵,缺少的行(列)用0代替;否则,先将问题转换成平衡运输问题,再写成n×n的系数矩阵。

②在n×n系数矩阵的每行(列)的元素中减去该行(列)的最小元素,若某行(列)中已经存在0元素,那就不必再减,直到系数矩阵的每一行(列)中均有0元素为止。

城市建设残留较多的建筑垃圾和生活垃圾,甚至有些施工单位就地挖坑将建筑垃圾掩埋。在整地时一定要全面清除,并按标高整地,避免对掩埋的垃圾不清除,致使绿地长期浇水造成地基下陷。整地一般不得低于40cm,原为耕地的可酌情考虑。深翻的土壤可用50%多菌灵可湿性粉剂拌入土中消毒,或通过太阳照射消毒使土质疏松。

③从只有一个0元素的行(列)开始,给这个0元素加圈,记作0○这表示对这行所代表的运输地点,只有一种材料进行运输,然后划去0○这所在列的其他0元素。这表示所在的这列所代表的运输地点已给运输完成,不必再考虑其他运输方式。依次进行,直到将所有的0元素都圈上或划掉为止。若仍有未被圈上的0元素,且同行的0元素至少两个,这时可根据原始的单位运费表进行运费比较,选择运费较小的对应的0元素。

④对比产量矩阵 A[a1,a2,…,am]和销量矩阵 B[b1,b2,…,bn],选出最小元素c,根据匈牙利矩阵求出结果矩阵(用0补充的行(列)结果取0),用最小元素c乘以结果矩阵。

⑤产量矩阵A和销量矩阵B根据上一次运输结果进行调整,在产生运输得元素减去最小元素c,得到新的产量矩阵A’和销量矩阵B’。当出现某个产地或销地的供应量或需求量为零时,将该元素对应的行(列)划掉,再调整矩阵成为新的m×m矩阵。

⑥重复③-⑤,直到将产量矩阵和销量矩阵的元素都变成0元素为止,将所有结果矩阵相加,得到最后的结果矩阵,即为最优的运输方案。

3.2 算法实例

3.2.1 表上作业法

动态系统理论不仅引起了科学界的一场变革,同时也拓展了语言研究的视野,为语言研究提供了新的视角和方法论。语言在本质上是一个有生命的复杂系统,它不是一成不变的,而是在无数的语言使用者的言语活动中不断地适应和演变,语言是动态的,因为它不仅是现象也是过程。语言不是先天生成的,而是在语言内部各个因素之间和语言外因素之间的非线性相互作用下,语言系统不断自组织而涌现出来的。语言演化的原动力来自语言本身,语言结构生成的方式和过程展现了语言生成演化的动态动力学机制。动态系统理论对语言研究具有重要的推动作用。

①使用最小元素法就近供应,得到初始基可行解。

表2 计算表(1)

②根据位势法计算非基变量检验数。由单纯形法可知,基变量检验数为0,即

目前,我国村镇在规划过程之中,往往会忽略不同农村地区的特色,或是未能注意到农村基础设施的特色,导致我国村镇的规划与格局均是大同小异,无法突出不同区域村镇的特色,也难以满足当地农村的意愿以需求,使得我国村镇传统因素以及特色正逐渐减少。举例来说,我国中西部地区的窑洞以及半窑洞均是极具特色的建筑,且相当具有代表性。这些古老而传统的农居,渗透了科学原理,有效利用了地表热能,在冬天相对温暖,而在夏天又不失凉爽,具有节能而舒适的基本特点,而且造型独特,美观大方。反之,许多经过改造之后的农村,虽然看上去光鲜亮丽,在功能性上则有所欠缺,且特色不足。

与西方白种人相比,黄种亚洲人更加追求白皙、莹润、有光泽的皮肤。亚洲区域化妆品研究人员更加注重对改善肤色的研究,但研究较多集中在黑色素对皮肤影响方面,对于皮肤泛黄研究较少。笔者对皮肤泛黄的形成因素、发生机制及影响因素进行综述,以期指导相关化妆品的开发。

继而求出非基变量检验数:

★一万小时定律:你把一万个小时花在做同一件事情上,你就会在这件事上成为专家。我从小到大睡了几万个小时,怎么在入睡这件事上越做越差呢?

得到表3。

令 u1=0,求得 u2=-6,u3=-4,v1=9,v2=8,v3=10,v4=2。

早就有人统计过了,发现全书总共描写了大大小小的梦三十二个,前八十回就写了二十个梦,后四十回共写了十二个梦。

基变量 检验数

表3 计算表(2)

③由于 x11,x13,x31,x34的检验数均小于 0,此时得到的可行解不是最优解,需要进行闭回路调整。此时min{x11,x13,x31,x34}=x11,因此 x11为调入格,即闭回路的出发点,做一条闭回路 x调入量为 min(40,15,45)=15。(表 4)

传统的运输问题是指在全国范围内有若干生产基地,根据已有的交通网,应如何制定调运方案,将物资以总运费最低的情况运到需求地。通常为有m个生产地点Ai,i=1,2,…,m。可供应某种物资,其供应量(产量)分别为 ai,i=1,2,…,m,有 n 个销地 Bj,j=1,2,…,n,其需要量分别为 bj,j=1,2,…,n,从 Ai到 Bj运输单位物资的运价(单价)为 cij,若用xij表示从Ai到Bj的运量,那么在产销平衡的条件下,可以将上述问题归纳为如下数学模型[13]

⑤得到调整方案如表6所示,并计算检验数。

此时所有检验数均为非负,得到最优解,但x22的检验数为0,该问题有多个最优解。得到的总运费最小为1075元。

3.2.2 匈牙利改进算法

①将单位运价表写成矩阵形式,并在最有一行加入“0”元素,变成4×4的矩阵,找出每行的最小元素,使得每行每列都至少有一个“0”元素。

表4 计算表(3)

表5 计算表(4)

表6 计算表(5)

②按照匈牙利算法的步骤对矩阵进行指派工作,此时的指派代表将某产地的货物全部运到某销地。产量矩阵A[70,80,40],销量矩阵[45,65,50,30],且满足产量矩阵A所有元素之和等于销量矩阵B所有元素之和,选取产量矩阵和销量矩阵中的最小元素,min{70,80,40,45,65,50,30}=30。由于最后一行是为了满足4×4添加的一行“0”元素,因此,该行产量矩阵对应的元素为“0”。在进行指派后,用最小元素乘以得到的指派矩阵,即为该阶段的最优解。

③经过第一次的运输指派后,产量矩阵和销量矩阵均发 生 变 化 , 产 量 矩 阵 A′[40,50,10], 销 量 矩 阵 B′[15,65,20,0],此时仍满足产量矩阵元素之和等于销量矩阵元素之和,产量矩阵和销量矩阵中最小元素为min{40,50,10,15,65,20}=10。由于销量矩阵中已经有元素变成“0”,在接下来的分派过程中划去“0”元素对应的列,矩阵变为3×3矩阵。最后将得到的3×3的结果矩阵,写成原本的4×4的矩阵。

④经过第二次的运输指派后,产量矩阵 A′′[20,40,0],销量矩阵B′′[5,55,10],产量矩阵和销量矩阵中最小元素为 min{20,40,5,55,10}=5。同时由于产量矩阵中出现“0”元素,则划去该元素所对应的那一行,划去后矩阵变成2×3矩阵,因此在最后一行加入“0”元素,变成3×3矩阵后再次使用匈牙利算法进行指派。此过程中出现了存在多种解的可能,这时要考虑单位运价,两个“0”元素所对应的初始单位运价分别为4和5,选择单位运价较小的进行运输,得到结果矩阵。

有无模拟患者对一年级学生掌握胰岛素注射技术和咨询技能的影响[13]。对照组采用传统的教学方法。在干预之前,所有学生都接受了知识测试,以评估他们对胰岛素注射技术和咨询技能的基本理解。干预组加入模拟患者,学生们用示教的方式向患者提供咨询,直到他们感觉患者接受了足够的正确使用胰岛素的培训。在干预后一个月,所有学生完成知识保留测试。知识保留测试是使用与干预前测试相同的25个多项选择题测试,但是答案和问题顺序被重置。通过两样本t检验进行分析,在药学课程中加入模拟患者教学,可以提高学生的咨询能力和临床技能的知识保留。

⑤经过第三次运输指派后,产量矩阵 A′′′[25,35],销量矩阵 B′′′[0,55,5],产量矩阵和销量矩阵的最小元素为min{25,35,55,5}=5。划去销量矩阵中“0”元素对应的列,得到新的2×2矩阵,求得结果矩阵。

⑥经过第四次运输指派后,产量矩阵 A′′′′=[20,30],销量矩阵B′′′′=[50,0],此时由于销量矩阵中只剩余一个元素“50”,而产量矩阵中仍然有两个元素,且元素总和与销量矩阵中元素“50”相等,因此直接对最后一列进行指派,指派数分别为“20”,“30”。指派后产量矩阵与销量矩阵都不再包含元素,即为所有材料均已运输完成。

⑦将所有结果矩阵相加,即求得最优解。

经过四次的运输指派问题,得到了最终结果矩阵,总运费为 z=45×5+25×8+30×6+50×4+10×12+30×5=1075。因表上作业法求得结果存在多个最优解,故改进算法求得解虽与表上作业法不完全相同,但仍为最优解。

(1)应建立健全安全管理制度和岗位安全责任制度[1];应经常对压力容器作业人员进行培训,提高其业务水平;应对在用压力容器的安全附件进行定期检验和维修;应对在用压力容器进行日常维护保养,并定期自行检查,做好年度检查,认真做好记录,对于异常情况应及时处理。

4 结论

提到运输问题,首先想到的就是表上作业法,表上作业法虽然简化了单纯形法求解线性规划问题,但是存在着求解大量检验数计算的问题。本文提出用匈牙利算法求解运输问题,匈牙利算法是应用在指派问题的一种算法,并且指派问题是运输问题特殊问题,减少了计算检验数的过程,计算量小,操作方便,便于推广到实际采购运输工作中,并可以有效的解决生产运输中的问题。

参考文献:

[1]贾春玉.运输问题新解法的探讨[J].系统工程学报,2004(02):207-211,217.

[2]夏少刚,张建华.求解运输问题的一种新算法[J].运筹与管理,2007(01):32-36.

[3]夏少刚,费威.基于最小调整法求解最短时限指派问题[J].数学的实践与认识,2009,39(17):179-187.

[4]林健,冯允成.多物资流多运输方式动态随机运输问题的解析模型[J].中国流通经济,1995(04):35-39.

[5]郭强,陈新庄.平衡和不平衡运输问题与分配问题的通用迭代算法[J].运筹与管理,2007(06):57-62.

[6]陈星明,刘飞,王平,聂能,胡向东,陈勇,冯辉宗.邮政运输问题的数学模型[J].重庆大学学报(自然科学版),2000(02):120-122.

[7]Tadei R,Perboli G,Croce F D.A Heuristic Algorithm for the Auto-Carrier Transportation Problem[J].Transportation Science,2002,36(1):55-62.

[8]Rao R C,Shaftel T L.Computational experience on an algorithm for the transportation problem with nonlinear objective functions[J].Naval Research Logistics,2010,27(1):145-157.

[9]Chizat L,Peyré G,Schmitzer B,et al.Scaling algorithms for unbalanced optimal transport problems [J].Mathematics of Computation,2017.

[10]孙文龙,张发明.受时间限制的运输问题的新算法[J].运筹与管理,2013,22(06):52-56.

[11]Serdar Korukogˇlu,Serkan Balli.An Improved Vogel’s Approximation Method for the transportation problem [J].Mathematical&Computational Applications,2011,16(2):370-381.

[12]韩伟一,张庆普.运输问题表上作业法的一点注记[J].运筹与管理,2009,18(04):7-9.

[13]《运筹学》教材编写组.运筹学(第四版)[M].北京:清华大学出版社,2013.

An Improved Algorithm of Transportation Problem Based on Hungarian Algorithm

(School of Management,Shenyang University of Technology,Shenyang 110870,China)

Abstract: Based on the model and characteristics of transportation problems,an improved algorithm combined with Hungarian algorithm is put forward to solve transportation problem in this paper.Hungarian algorithm,as a more mature basic algorithm,eliminates the calculation of a large number of solution numbers when calculating transportation problems.The improved algorithm decomposes the transportation problem into multiple assignment problems,uses the Hungarian algorithm to solve the decomposed transportation problem,finally sums the results of all assignment problems to obtain an optimal solution.This paper presents a case of the improved algorithm,introduces the calculation process of the improved algorithm in detail,and proves the effectiveness of the improved algorithm.

Key words: Hungarian algorithm;transport problem;improved algorithm

中图分类号: F224.32

文献标识码: A

文章编号: 1006-4311(2019)04-0078-05

基金项目: 辽宁省教育厅人文社会科学研究项目(WQGD2017015)。

作者简介: 张雨晨(通讯作者)(1995-),女,黑龙江牡丹江人,沈阳工业大学管理学院,硕士研究生,研究方向为经济管理中的数学方法与系统优化;王竹芳(1972-),女,山东莱州人,沈阳工业大学管理学院,副教授,博士,研究方向为经济管理中的数学方法与系统优化。

标签:;  ;  ;  ;  

基于匈牙利算法的运输问题改进算法论文
下载Doc文档

猜你喜欢