攀枝花学院学生课程设计(论文)题目:蔬菜的运输问题学生姓名:孟蕾学号:所在院(系):数学与计算机学院专业:信息与计算科学班级: 2015级信本指导教师:李思霖2017年 6 月 29 日攀枝花学院教务处制攀枝花学院本科学生课程设计任务书课程设计(论文)指导教师成绩评定表摘要本文针对蔬菜的运输问题进行分析,针对蔬菜运输时所需要注意的蔬菜供应量,需求量,运输距离,运输补贴,短缺补偿等约束性条件,运用lingo编程的方法解决如何进行蔬菜运输来分别使各类要求的支出最少的问题。
问题一中,要求如果不考虑短缺补偿,只考虑运费补贴最少,请为该市设计最优蔬菜运输方案。
我们将供货商和销售点需求分别编号a和b,数量是从1~8和1~35。
从题中可以看出其约束条件,所有销售点从第A基i地获得的蔬菜数量应该等于该基地所生产的蔬菜数量;所有基地给B销售j点提供的蔬菜数量要大于等于0,并且应该小于或等于该点的需求量。
问题二中,增添了对短缺补缺的考虑,规定各蔬菜销售点的短缺量一律不超过需求量的30%,在同时考虑短缺补偿和运费补贴的情况下再次设计最有蔬菜方案。
由题意即是要求总费用,具体步骤仍同问题一,需要变化的分别是总费用w的表达式和关于销售点需求的约束条件。
w变为原运输补贴的公式再加上每个销售点每吨短缺蔬菜的数量乘上各个销售点不同的短缺补偿,短缺数量需要用各个销售点的需求减去所有基地供给给这个的销售点的蔬菜数量之和。
问题三中,要求增加任意两个基地的生产数量,使得不存在短缺情况出现,然后视运费补贴最小的情况来确定哪两个基地分别增加多少的产量。
由题意,我们首先设置一个0-1变量m,当基地i要增加规模的时候,i其值为1,否则为0.设第i 个基地增加的生产量为i l ,然后确立其约束条件为:增加的蔬菜总量等于需求量减去原生产量,增加的生产量i l 乘上0-1变量i m 等于增加的蔬菜总量,所有销售点从第i A 基地获得的蔬菜数量应该等于该基地原生产的蔬菜数量加上新增的总量;所有基地给j B 销售点提供的蔬菜数量要等于该点的需求量;{}0,1i m ∈;所有的i m 之和要等于2.使用LINGO 计算出结果,得到最优解是基地二和基地六共增产吨。
关键字:0-1变量规划、lingo ,线性规划目录一问题分析某市在郊区建立了8个蔬菜基地,每天需要将全部的蔬菜运输到市区的35个蔬菜销售点进行销售。
如果蔬菜销售点的需求量不能满足,则市政府要给予一定的短缺补偿。
同时市政府还按照蔬菜基地供应蔬菜的数量以及路程,发放相应的运费补贴,运费补贴标准为元/(1吨.1公里)。
相关数据“蔬菜基地日供应量”、“蔬菜销售点日需求量及短缺补偿”、“基地与销售点之间的运输距离”见表。
(1)如果不考虑短缺补偿,只考虑运费补贴最少,请为该市设计最优蔬菜运输方案。
(2)若规定各蔬菜销售点的短缺量一律不超过需求量的30%,且考虑短缺补偿和运费补贴,请为该市重新设计蔬菜运输方案。
(3)为满足市民的蔬菜供应,该市决定选择其中2个基地扩大蔬菜生产面积。
试建立数学模型,确定基地选择方案及相应的新增蔬菜量,并重新设计蔬菜运输方案,使运费补贴最少。
二、模型假设1、假设:每天每个基地给予每个销售点的蔬菜数量相同,不存在特殊原因使其变化;2、假设:每个销售点蔬菜来源仅来自生产基地,生产基地的蔬菜会仅运输并全部运输到销售点;3、假设:销售点得到的数量总和等于生产总和;4、假设:每个基地和每个销售点相互独立;5、假设:八个基地和三十五个销售点被一视同仁,不存在特殊情况;6、假设:所有运输的蔬菜都可以在每日规定的时间内从不同的蔬菜基地送达指定的销售点;忽略运输路上其他的损耗;7、假设:每个基地的生产蔬菜数量不会变化,每个基地对于蔬菜的需求也不发生变化;三、符号说明符号意义单位备注第i个基地供应的吨蔬菜数量第j个销售点需求的蔬菜数量吨基地i与销售点j之间的运输距离公里第i个蔬菜基地的序号第j个销售点的序号每吨蔬菜每公里的运费补贴元/(1吨*1公里)从基地i运往销售点j蔬菜量吨第j个销售点短缺可获得的短缺补贴第三问中第i个基地增加的蔬菜数量第i个基地是否增加了数量,元/吨吨是为1,否为0四、模型建立问题一模型的建立 由题目要求,我们可知本题最终要求的是最小运费补贴,而从基地i 运送到j 销售点的运费补贴为ij ij s C x ⋅⋅,从而我们可以得到第一问的目标函数为:83511min ij ij i j s C x ==⋅∑∑ (1)显然,我们可以知道从每个基地运出去的运输总量应该是等于各自的供应量。
如果小于供应量,那就还会给另外需要补偿的销售点运输。
由此,我们得到:351ij i j xa ==∑ (2)另外,每个销售点收到的蔬菜量应该小于等于其需求量,所以有:81ij i i xb =≤∑ (3)综合(1)(2)(3)式我们可以得到最终模型为:问题二模型的建立由题目要求,我们可知本题最终要求的是最小总支出费用,而从基地i运送到j销售点的运费补贴为ij ij s C x ⋅⋅,短缺补贴则为35811(()*)j ij j j i b x d ==-∑∑,从而我们可以得到第二问的目标函数为:8353581111min ((()*))ij ij j ij j i j j i s C x b x d ====⋅+-∑∑∑∑ (4)显然,我们可以知道从每个基地运出去的运输总量应该是等于各自的供应量。
如果小于供应量,那就还会给另外需要补偿的销售点运输。
由此,我们得到:351ij i j xa ==∑ (5)另外,每个销售点收到的蔬菜量应该小于等于其需求量,且大于等于其需求量的70%,所以有:81(0.7*)j ij i i b x b =≤≤∑ (6)综合(4)(5)(6)式我们可以得到最终模型为:问题三模型的建立由题目要求,我们可知本题最终要求的是最小运费补贴,而从基地i 运送到j 销售点的运费补贴为ij ij s C x ⋅⋅,从而我们可以得到第三问的目标函数为:83511min ij ij i j s C x ==⋅∑∑ (7)显然,我们可以知道从每个基地运出去的运输总量应该是等于各自的供应量。
如果小于供应量,那就还会给另外需要补偿的销售点运输。
由此,我们得到:351*ij i i i j x a l m ==+∑ (8)另外,每个销售点收到的蔬菜量应该等于其需求量,所以有:81((*))ij i i i i x l m b =+=∑(9)又因我们对i m 的假设,可以得:{}0,1i m ∈(10)812i i m ==∑(11)新加的产量量应该等于原需求量减去原总产量:8358111*i i j i i j i l m b a ====-∑∑∑(12)综合(7)(8)(9)(10)(11)(12)式我们可以得到最终模型为:五、模型验证问题一模型的求解我们运用lingo软件进行求解(程序及输出结果见附录),我们得到并整理分配方案如下表:(无数字代表0)销售点8销售点910销售点10销售点11销售点12销售点1312销售点14销售点15销售点16销售点17销售点18销售点19销售点10 20销售点21销售点22销售点23销售点24销售点25销售点26销售点27销售点28销售点299销售点30销售点318销售点32销售点338销售点34销售点36问题一结果的分析及验证对于表中所有的数据均满足我们对于约束条件的要求,所以在我们的假设成立的情况下,我们可以认为一定程度上,该数据正确,该分配方案可行。
缺点是可以发现销售点10,11,12,18,19,22,23,24,31没有得到蔬菜供应,这就是不考虑短缺补偿所带来的问题。
其灵敏度分析见附录。
问题二模型的求解我们运用lingo软件进行求解(程序及输出结果见附录),我们得到并整理分配方案如下表:(无数字代表0)最优解为元。
销售点11销售点12销售点13销售点14销售点15销售点16销售点17销售点18销售点197销售点20销售点21销售点22销售点23销售点24销售点25销售点26销售点27销售点28销售点299销售点30销售点318销售点32销售点33销售点34销售点35问题二结果的分析及验证对于表中所有的数据均满足我们对于约束条件的要求,所以在我们的假设成立的情况下,我们可以认为一定程度上,该数据正确,该分配方案可行,最终所得的结果即是最小的支出费用。
但是发现蔬菜基地6和7有多余的蔬菜没有供应到销售点去,造成了浪费,这也是这种运输办法的缺点之一。
问题三模型的求解我们运用lingo软件进行求解(程序及输出结果见附录),我们得到并整理分配方案如下表:问题三结果的分析及验证对该结果进行灵敏度分析:Righthand Side RangesRow Current Allowable AllowableRHS Increase Decrease23 INFINITY456 INFINITY7 INFINITY89由表可知,基地2和基地6弹性较大,可选范围比较大,因此我们仅使2m 和6m 值等于1,最终结果为使基地二和基地6总增产吨(需求与原提供量之差)即可。
对于表中所有的数据均满足我们对于约束条件的要求,所以在我们的假设成立的情况下,我们可以认为一定程度上,该数据正确,该分配方案可行,最终所得的结果即是最小的支出费用。
六 参考文献[1] 姜启源等.数学模型(第四版).北京:高等教育出版社,2003年8月 [2] 谢金星.优化模型与LINGO/LINGO 软件。
北京:清华大学出版社, [3] 司守奎,孙玺箐.数学建模算法与应用.北京:国防工业出版社,2012.七、附录附录清单附录1:求解问题一的LINGO 程序 附录2:问题一的灵敏度分析 附录3:求解问题二的LINGO 程序 附录4:问题二的灵敏度分析附录5:求解问题三的LINGO程序附录6:问题三的灵敏度分析附录正文附录1:求解问题一的LINGO程序model:sets:vendors/1..8/:a;demand/1..35/:b;links(vendors,demand):x,c;endsetsdata:a=40 45 30 38 29 35 25 28;b= 12 13 11 14 10 7 12 9 10 15 9 8 ;c=42 27 18 13 17 25 33 41 38 42 37 30 24 16 20 25 28 39 44 40 41 37 33 35 29 26 29 32 37 44 41 48 54 46 5235 20 11 24 21 18 26 34 31 29 29 24 13 9 5 10 13 24 29 32 26 22 18 20 14 11 14 17 22 29 26 33 39 31 3750 35 26 39 36 33 41 48 46 38 38 33 28 24 20 19 22 33 38 41 35 31 27 21 15 14 11 12 17 28 35 42 48 40 3667 52 43 56 53 50 57 55 54 45 45 46 45 41 37 32 35 40 37 40 34 30 32 26 28 32 31 25 20 18 24 34 28 19 1052 40 40 53 53 43 41 39 32 32 35 42 45 41 37 32 29 30 24 18 16 20 24 33 36 39 42 39 35 24 17 9 3 12 2126 14 14 27 28 21 15 13 6 17 27 34 24 16 20 25 27 22 16 8 14 18 22 35 29 26 29 32 37 31 24 17 23 29 387 22 31 44 41 26 18 25 27 30 39 46 41 33 37 42 45 35 38 41 46 45 44 52 46 43 46 49 54 58 51 50 56 56 6538 23 15 28 29 22 30 38 31 39 35 36 25 17 21 26 29 38 41 33 39 38 34 36 30 27 30 33 38 45 42 42 48 47 53;s=;enddatamin=s*@sum(links(i,j):c(i,j)*x(i,j));@for(vendors(i):@sum(demand(j):x(i,j))=a(i));@for(demand(j):@sum(vendors(i):x(i,j))<=b(j));End附录2:问题一的灵敏度分析附录3:求解问题二的LINGO程序model:sets:vendors/1..8/:a;demand/1..35/:b;links(vendors,demand):c,x; shorts/1..35/:d;endsetsdata:a=40 45 30 38 29 35 25 28;b= 12 13 11 14 10 7 12 9 10 15 9 8 ;c=42 27 18 13 17 25 33 41 38 42 37 30 24 16 20 25 28 39 44 40 41 37 33 35 29 26 29 32 37 44 41 48 54 46 52 35 20 11 24 21 18 26 34 31 29 29 24 13 9 5 10 13 24 29 32 26 22 18 20 14 11 14 17 22 29 26 33 39 31 37 50 35 26 39 36 33 41 48 46 38 38 33 28 24 20 19 22 33 38 41 35 31 27 21 15 14 11 12 17 28 35 42 48 40 36 67 52 43 56 53 50 57 55 54 45 45 46 45 41 37 32 35 40 37 40 34 30 32 26 28 32 31 25 20 18 24 34 28 19 10 52 40 40 53 53 43 41 39 32 32 35 42 45 41 37 32 29 30 24 18 16 20 24 33 36 39 42 39 35 24 17 9 3 12 21 26 14 14 27 28 21 15 13 6 17 27 34 24 16 20 25 27 22 16 8 14 18 22 35 29 26 29 32 37 31 24 17 23 29 38 7 22 31 44 41 26 1825 27 30 39 46 41 33 37 42 45 35 38 41 46 45 44 52 46 43 46 49 54 58 51 50 56 56 65 38 23 15 28 29 22 30 38 31 39 35 36 25 17 21 26 29 38 41 33 39 38 34 36 30 27 30 33 38 45 42 42 48 47 53;d=710 700 580 600 570 480 500 610 440 705 610 630 590 490 570 460 530 640 665 650 580 680 685 560 660 430 540 620 630 680 695 690 560 520 500;enddatamin=@sum(links(i,j):*c(i,j)*x(i,j))+@sum(demand(j):(b(j)-@s um(vendors(i):x(i,j)))*d(j));@for(vendors(i):@sum(demand(j):x(i,j))=a(i));@for(demand(j):@sum(vendors(i):x(i,j))<=b(j));@for(demand(j):b(j)-@sum(vendors(i):x(i,j))<=*b(j));end附录4:问题二的灵敏度分析789101112 INFINITY13 INFINITY14 INFINITY38 INFINITY39404142 INFINITY5354 INFINITY555657585960616263646566 INFINITY67 INFINITY。