运筹学运输问题
0 / 10
数学与计算科学学院
实 验 报 告
实验项目名称 运输问题
所属课程名称 运筹学B
实 验 类 型 综合实验
实 验 日 期
班 级
成 绩
运筹学运输问题
1 / 10 一、实验概述:
【实验目的】
1. 学会使用LINGO软件定义集合;
2. 学会运用LINGO软件和MATLAB软件解决运输问题。
【实验原理】
利用整数规划、0-1规划和指派问题原理建立数学模型,并利用MATLAB软件和LINGO软件进行求解。
【实验环境】
计算机,Matlab软件,lingo软件,运筹学软件
二、实验内容:
【实验方案】
通过对实际问题的具体分析,建立模型,再利用MATLAB软件和LINGO软件进行求解。
【实验过程】(实验步骤、记录、数据、分析)
已知某企业有甲、乙、丙三个分厂生产一种产品,其产量分别为7、9、7个单位,需运往A、B、C、D四个门市部,各,门市部需求量分别为3、5、7、8个单位。已知单位运价如下表,试确定运输计划使总运费最少。
运筹学运输问题
2 / 10 运价表
A B C D 产量
甲 12 13 10 11 7
乙 10 12 14 10 9
丙 14 11 15 12 7
需求量 3 5 7 8 23
1.模型建立
因为总产量和总需求量均为23,故产销平衡。
设ijx表示由第i个分厂运往第j个门市部的产品数量,则建立数学模型为:
3411121314211122232431323334111213142122232431323334112131122232132333142434min1213101110121410141115127973..578ijijijzcxxxxxxxxxxxxxxxxxxxxxxxxxxxxstxxxxxxxxx0,(1,2,3;1,2,3,4)ijxij
2.模型求解
1)运用MATLAB软件进行求解,程序如下:
clc
c=[12 13 10 11 10 12 14 10 14 11 15 12];
Aeq=[1 1 1 1 0 0 0 0 0 0 0 0;
0 0 0 0 1 1 1 1 0 0 0 0;
0 0 0 0 0 0 0 0 1 1 1 1; 运筹学运输问题
3 / 10 1 0 0 0 1 0 0 0 1 0 0 0;
0 1 0 0 0 1 0 0 0 1 0 0;
0 0 1 0 0 0 1 0 0 0 1 0;
0 0 0 1 0 0 0 1 0 0 0 1];
beq=[7 9 7 3 5 7 8];
A=[];
b=[];
VIB=[0 0 0 0 0 0 0 0 0 0 0 0];
VUB=[];
[x,y]=linprog(c,A,b,Aeq,beq,VIB,VUB)
结果为:
x =
0.0000
0.0000
7.0000
0.0000
3.0000
0.0000
0.0000
6.0000
0.0000
5.0000
0.0000
2.0000
运筹学运输问题
4 / 10
y =
239.0000
2)运用LINGO软件进行求解,程序如下:
MODEL:
!3 Warehouse,4 Customer Transportation Problem;
sets:
Warehouse /1..3/: a;
Customer /1..4/: b;
Routes(Warehouse, Customer): c,x;
endsets
! Here are the parameters;
data:
a=7,9,7;
b=3,5,7,8;
c=12,13,10,11,
10,12,14,10,
14,11,15,12;
enddata
!The objective;
[OBJ] min=@sum(Routes:c*x);
! The supply constraints;
@for(Warehouse(i):[SUP]@sum(Customer(j):x(i,j))<=a(i));
!The demand constraints;
@for(Customer(j):[DEM]@sum(Warehouse(i):x(i,j))=b(j));
END
结果为:
Global optimal solution found.
Objective value: 239.0000
Infeasibilities: 0.000000
Total solver iterations: 6
Variable Value Reduced Cost
A( 1) 7.000000 0.000000
A( 2) 9.000000 0.000000
A( 3) 7.000000 0.000000 运筹学运输问题
5 / 10 B( 1) 3.000000 0.000000
B( 2) 5.000000 0.000000
B( 3) 7.000000 0.000000
B( 4) 8.000000 0.000000
C( 1, 1) 12.00000 0.000000
C( 1, 2) 13.00000 0.000000
C( 1, 3) 10.00000 0.000000
C( 1, 4) 11.00000 0.000000
C( 2, 1) 10.00000 0.000000
C( 2, 2) 12.00000 0.000000
C( 2, 3) 14.00000 0.000000
C( 2, 4) 10.00000 0.000000
C( 3, 1) 14.00000 0.000000
C( 3, 2) 11.00000 0.000000
C( 3, 3) 15.00000 0.000000
C( 3, 4) 12.00000 0.000000
X( 1, 1) 0.000000 1.000000
X( 1, 2) 0.000000 3.000000
X( 1, 3) 7.000000 0.000000
X( 1, 4) 0.000000 0.000000
X( 2, 1) 3.000000 0.000000
X( 2, 2) 0.000000 3.000000
X( 2, 3) 0.000000 5.000000
X( 2, 4) 6.000000 0.000000
X( 3, 1) 0.000000 2.000000
X( 3, 2) 5.000000 0.000000
X( 3, 3) 0.000000 4.000000
X( 3, 4) 2.000000 0.000000
Row Slack or Surplus Dual Price
OBJ 239.0000 -1.000000
SUP( 1) 0.000000 1.000000
SUP( 2) 0.000000 2.000000
SUP( 3) 0.000000 0.000000
DEM( 1) 0.000000 -12.00000
DEM( 2) 0.000000 -11.00000
DEM( 3) 0.000000 -11.00000
DEM( 4) 0.000000 -12.00000
运筹学运输问题
6 / 10 【实验结论】(结果)
最优调运方案为:甲-C 7单位;乙-A 3单位;乙-D 6单位;丙-B 5单位;
丙-D 2单位;最小总费用为:239。
【实验小结】(收获体会)
在实际问题中,有些运输问题数据量大,计算繁琐,利用手工计算是不切实际
的,可采用MATLAB软件或LINGO软件来求解,我们可以既简便又快捷的求解出对于资源分配人员指派的安排,既能够达到既满足工作需要,又使总成本和额外消耗最低,即用最少的人力资源成本获取最大的利益。在合理安排产品的生产决策上,对于研究如何合理使用企业各项经济资源,以及研究如何统筹安排,对人、财、物等现有资源进行优化组合,实现最大效能上都可以使用MATLAB软件或LINGO软件求解运输问题来解决。同时有效地提高组织及决策的速度及准确性,对社会生产以及生活都有着重要的作用。
三、指导教师评语及成绩:
评 语 评语等级
优 良 中 及格 不及格
1.实验报告按时完成,字迹清楚,文字叙述流畅,逻辑性强
2.实验方案设计合理
3.实验过程(实验步骤详细,记录完整,数据合理,分析透彻)
4实验结论正确.