LINGO应运实例
运用lingo解决问题的例子
运用lingo解决问题的例子
以下是一个运用LINGO解决实际问题的例子:
问题描述:
某公司生产A、B两种产品,已知生产1单位A产品需要3单位原料1和2单位原料2,同时产生2单位废料;生产1单位B产品需要4单位原料1和2单位原料2,同时产生3单位废料。
该公司有10单位原料1和8单位原料2,同时最多可以产生10单位废料。
请为公司制定一个生产计划,使得A、B两种产品的产量最大。
模型建立:
1. 设x1为A产品的产量,x2为B产品的产量。
2. 设原料1的消耗为3x1 + 4x2,原料2的消耗为2x1 + 2x2,废料产生为2x1 + 3x2。
3. 原料1的限制条件为3x1 + 4x2 <= 10,原料2的限制条件为2x1 +
2x2 <= 8,废料的限制条件为2x1 + 3x2 <= 10。
4. 目标函数为max x1 + x2,即最大化A、B两种产品的产量之和。
LINGO代码:
SETS:
I / 1 /;
J / 1,2 /;
K / I,J /;
PARAMETERS:
C(K) / 3I + 4J, 2I + 2J, 2I + 3J /; D(I) / 10 /;
E(I) / 8 /;
F(I) / 10 /;
VARIABLES:
X(K) / >=0 /;
MAXIMIZE Z: X(1) + X(2); SUBJECT TO:
3X(1) + 4X(2) <= D(1);
2X(1) + 2X(2) <= E(1);
2X(1) + 3X(2) <= F(1); ENDSETS
END。
lingo运筹例子
§7 综合举例例7.1 求解非线性方程组⎪⎩⎪⎨⎧=+++=+4222222y y x x y x其LINGO 代码如下:model :x^2+y^2=2;2*x^2+x+y^2+y=4; end计算的部分结果为Feasible solution found at iteration: 0Variable Value X 0.4543360 Y 1.339247例7.2 装配线平衡模型 一条装配线含有一系列的工作站,在最终产品的加工过程中每个工作站执行一种或几种特定的任务。
装配线周期是指所有工作站完成分配给它们各自的任务所化费时间中的最大值。
平衡装配线的目标是为每个工作站分配加工任务,尽可能使每个工作站执行相同数量的任务,其最终标准是装配线周期最短。
不适当的平衡装配线将会产生瓶颈——有较少任务的工作站将被迫等待其前面分配了较多任务的工作站。
问题会因为众多任务间存在优先关系而变得更复杂,任务的分配必须服从这种优先关系。
这个模型的目标是最小化装配线周期。
有2类约束:① 要保证每件任务只能也必须分配至一个工作站来加工; ② 要保证满足任务间的所有优先关系。
例 有11件任务(A —K )分配到4个工作站(1—4),任务的优先次序如下图。
每件任务所花费的时间如下表。
MODEL :!装配线平衡模型; SETS :!任务集合,有一个完成时间属性T; TASK/ A B C D E F G H I J K/: T;!任务之间的优先关系集合(A 必须完成才能开始B ,等等); PRED( TASK, TASK)/ A,B B,C C,F C,G F,J G,J J,K D,E E,H E,I H,J I,J /; ! 工作站集合; STATION/1..4/;(A) (B) (C) (F) (G) (K) (J) (I) (H)(E) (D)TXS( TASK, STATION): X;! X是派生集合TXS的一个属性。
Lingo的应用实例
Lingo应用——旅游路线最短问题题目:从北京乘飞机到东京、纽约、墨西哥城、伦敦、巴黎五个城市做旅游,每个城市去且仅去一次,再回到东京,问如何安排旅游线路,使总旅程最短。
各城市之间的航线距离如下表:运用lingo软件求解模型建立前问题分析:1.这是一个求路线最短的问题,题目给出了两两城市之间的距离,而在最短路线中,这些城市有的两个城市是直接相连接的(即紧接着先后到达的关系),有些城市之间就可能没有这种关系,所以给出的两两城市距离中有些在最后的最短路线距离计算中使用到了,有些则没有用。
这是一个0-1规划的问题,也是一个线性规划的问题。
2.由于每个城市去且仅去一次,最终肯定是形成一个圈的结构,这就导致了这六个城市其中有的两个城市是直接相连的,另外也有两个城市是不连接的。
这就可以考虑设0-1变量,如果两个城市紧接着去旅游的则为1,否则为0。
就如同下图实线代表两个城市相连为1,虚线代表没有相连为03. 因为每个城市只去一次,所以其中任何一个城市的必有且仅有一条进入路线和一条出去的路线。
求解:为了方便解题,给上面六个城市进行编号,如下表(因为北京是起点, 将其标为1)假设:设变量x ij 。
如果x ij =1,则表示城市i 与城市j 直接相连(即先后紧接到达关系),否则若x ij =0,则表示城市i 与城市j 不相连。
特别说明:x ij 和x ji 是同一变量,都表示表示城市i 与城市j 是否有相连的关系。
这里取其中x ij (I<j)的变量。
模型建立:由于这是一个最短路线的问题,且变量已经设好。
目标函数:min z=51*x12+78*x13+68*x14+51*x15+13*x16+56*x23+35*x24+21*x25+60*x26+21*x34+57*x35+70*x36+36*x45+68*x46+61*x56约束条件:1. 上面目标函数中的变量是表示两个城市是否直接相连接的关系,且最短路线是可以形成圈的,如下图实线代表两个城市相连为1,虚线代表没有相连为0如上图城市a和城市b有直接相连接的关系,所以之间变量为1,而城市a 与城市e则没有直接相连接的关系,之间变量为0。
用lingo解决运输问题
用lingo解决运输问题(一)实验目的1. 运输问题求解的编程实现2.掌握使用matlab、Lingo、Excel的求解功能求解运输问题,并对结果进行分析。
(二)实验内容《运筹学》清华三版P98页 3.3题Lingo程序代码及运行结果(选取部分):<1>3.3(1):程序代码:model:sets:xiao/1..4/:s;chan/1..3/:h;link(chan,xiao):x,y;endsetsdata:y=3 7 6 42 43 24 3 8 5;h=5 2 3;s=3 3 2 2;enddatamin=@sum(link:x*y);@for(xiao(j):@sum(chan(i):x(i,j))=s(j));@for(chan(i):@sum(xiao(j):x(i,j))=h(i));运行结果及结果分析:Objective value: 32.00000产地1分别将数量为3和2的产品运往销地甲和丁;产地2将数量为2的产品运往销地丙;产地3将数量为3的产品运往销地乙;该运输问题的最小费用为32.<2>3.3(2):model:sets:xiao/1..4/:s;chan/1..3/:h;link(chan,xiao):x,y;endsetsdata:y=10 6 7 1216 10 5 95 4 10 10;h=4 9 4;s=5 2 4 6;enddatamin=@sum(link:x*y);@for(xiao(j):@sum(chan(i):x(i,j))=s(j));@for(chan(i):@sum(xiao(j):x(i,j))=h(i));运行结果及结果分析:Objective value: 118.0000产地1将数量为1、2、1的产品分别运往销地甲、乙、丙;产地将数量为3、6的产品运往销地丙、丁;产地3将数量为4的产品运往销地甲。
最小费用为118.<3>3.3(3):程序代码:model:sets:xiao/1..5/:s;chan/1..4/:h;link(chan,xiao):x,y;endsetsdata:y=10 20 5 9 102 10 8 30 61 20 7 10 4h=5 6 2 9;s=4 4 6 2 4;enddatamin=@sum(link:x*y);@for(xiao(j):@sum(chan(i):x(i,j))=s(j));@for(chan(i):@sum(xiao(j):x(i,j))<=h(i));运行结果及结果分析:Objective value: 90.00000产地1分别将数量为1、2的产品运往销地丙、丁;产地2分别将数量为4、2的产品运往销地甲、戊;产地3将数量为2的产品运往销地戊;产地4分别将数量为4、5的产品运往销地乙、丙;最小运费为90.<4>3.3(4):程序代码:model:sets:xiao/1..5/:s;chan/1..5/:h;link(chan,xiao):x,y;endsetsdata:y=10 18 29 13 2213 10000 21 14 160 6 11 3 100009 11 23 18 1924 28 36 30 34;h=100 120 140 80 60;s=100 120 100 60 80;enddatamin=@sum(link:x*y);@for(xiao(j):@sum(chan(i):x(i,j))=s(j));@for(chan(i):@sum(xiao(j):x(i,j))<=h(i));运行结果及结果分析:Objective value: 5520.000产地1将数量为100的产品运往销地甲;产地2分别将数量为40、80的产品运往销地丙、戊;产地3分别将数量为的产品运往销地乙、丙、丁;产地4将数量为80的产品运往销地乙;产地5将数量为20的产品运往销地乙。
Lingo 求解运输问题
定义了三个集合,其中links在前两 输入程序 个集合warehouses 和vendors的基 础上定义 data: model: 表示集合 links中的元素就是集合 capacity=60 55 51 43 41 52; !6发点8收点运输问题; warehouses 和vendors demand=35 37 的元素组合 22 32 41 32 43 38; sets: cost=6 2 6 7 4 2 9 5 成的有序二元组,从数学上看 link warehouses/wh1..wh6/: capacity; 49和 53 8 5 8 2 的笛卡儿 是warehouses vendors vendors/v1..v8/: demand; 52197433 积,也就是说 links(warehouses,vendors): cost, volume; 76739271 links={ ( S |Swarehouses , endsets 2, 3T 9) 57 265 !目标函数; 5 Tvendors} 5 2 2 8 1 4 3; min=@sum(links: cost*volume); enddatacost和volume也就是 因此,其属性 end !需求约束; 一个6*8 的矩阵(或者说是含有48 @for(vendors(J): 个元素的二维数组)。 @sum(warehouses(I): volume(I,J))=demand(J)); MATRIX LINGO 建模语言也称为矩阵生成器( !产量约束; GENERATOR)。类似warehouses 和vendors直接把元素列举 @for(warehouses(I): 出来的集合,称为基本集合 (primary set),而把links这种基于其 @sum(vendors(J): volume(I,J))<=capacity(I)); 它集合而派生出来的二维或多维集合称为派生集合 (derived set)。 !这里是数据 ;
运筹学实例分析及lingo求解
运筹学实例分析及lingo 求解一、线性规划某公司有6个仓库,库存货物总数分别为60、55、51、43、41、52,现有8个客户各要一批货,数量分别为35,37,22,32,41,32,43,38。
各供货仓库到8个客户处的单位货物运输价见表试确定各仓库到各客户处的货物调运数量,使总的运输费用最小。
解:设ijx 表示从第i 个仓库到第j 个客户的货物运量。
ij c表示从第i 个仓库到第j 个客户的单位货物运价,i a 表示第i 个仓库的最大供货量,j d 表示第j 个客户的订货量。
目标函数是使总运输费用最少,约束条件有三个:1、各仓库运出的货物总量不超过其库存数2、各客户收到的货物总量等于其订货数量3、非负约束数学模型为:∑∑===6181)(min i j ijij x c x f⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧≥===≤∑∑==08,,2,1,6,2,1,,..6181ij j i ij i j ij x j d x i a x t s 编程如下:model : Sets :Wh/w1..w6/:ai;Vd/v1..v8/:dj;links(wh,vd):c,x;endsetsData:ai=60,55,51,43,41,52;dj=35,37,22,32,41,32,43,38;c=6,2,6,7,4,2,5,94,9,5,3,8,5,8,25,2,1,9,7,4,3,37,6,7,3,9,2,7,12,3,9,5,7,2,6,55,5,2,2,8,1,4,3;EnddataMin=@sum(links(i,j):c(i,j)*x(i,j));@for(wh(i):@sum(vd(j):x(i,j))<=ai(i));@for(vd(j):@sum(wh(i):x(i,j))=dj(j));endGlobal optimal solution found.Objective value: 664.0000Total solver iterations: 0Variable Value Reduced Cost AI( W1) 60.00000 0.000000 AI( W2) 55.00000 0.000000 AI( W3) 51.00000 0.000000 AI( W4) 43.00000 0.000000 AI( W5) 41.00000 0.000000 AI( W6) 52.00000 0.000000 DJ( V1) 35.00000 0.000000 DJ( V2) 37.00000 0.000000 DJ( V3) 22.00000 0.000000 DJ( V4) 32.00000 0.000000 DJ( V5) 41.00000 0.000000 DJ( V6) 32.00000 0.000000 DJ( V7) 43.00000 0.000000 DJ( V8) 38.00000 0.000000 C( W1, V1) 6.000000 0.000000 C( W1, V2) 2.000000 0.000000 C( W1, V3) 6.000000 0.000000 C( W1, V4) 7.000000 0.000000 C( W1, V5) 4.000000 0.000000 C( W1, V6) 2.000000 0.000000C( W1, V8) 9.000000 0.000000 C( W2, V1) 4.000000 0.000000 C( W2, V2) 9.000000 0.000000 C( W2, V3) 5.000000 0.000000 C( W2, V4) 3.000000 0.000000 C( W2, V5) 8.000000 0.000000 C( W2, V6) 5.000000 0.000000 C( W2, V7) 8.000000 0.000000 C( W2, V8) 2.000000 0.000000 C( W3, V1) 5.000000 0.000000 C( W3, V2) 2.000000 0.000000 C( W3, V3) 1.000000 0.000000 C( W3, V4) 9.000000 0.000000 C( W3, V5) 7.000000 0.000000 C( W3, V6) 4.000000 0.000000 C( W3, V7) 3.000000 0.000000 C( W3, V8) 3.000000 0.000000 C( W4, V1) 7.000000 0.000000 C( W4, V2) 6.000000 0.000000 C( W4, V3) 7.000000 0.000000 C( W4, V4) 3.000000 0.000000 C( W4, V5) 9.000000 0.000000 C( W4, V6) 2.000000 0.000000 C( W4, V7) 7.000000 0.000000 C( W4, V8) 1.000000 0.000000 C( W5, V1) 2.000000 0.000000 C( W5, V2) 3.000000 0.000000 C( W5, V3) 9.000000 0.000000 C( W5, V4) 5.000000 0.000000 C( W5, V5) 7.000000 0.000000 C( W5, V6) 2.000000 0.000000 C( W5, V7) 6.000000 0.000000 C( W5, V8) 5.000000 0.000000 C( W6, V1) 5.000000 0.000000 C( W6, V2) 5.000000 0.000000 C( W6, V3) 2.000000 0.000000 C( W6, V4) 2.000000 0.000000 C( W6, V5) 8.000000 0.000000 C( W6, V6) 1.000000 0.000000 C( W6, V7) 4.000000 0.000000 C( W6, V8) 3.000000 0.000000 X( W1, V1) 0.000000 5.000000 X( W1, V2) 19.00000 0.000000X( W1, V4) 0.000000 7.000000 X( W1, V5) 41.00000 0.000000 X( W1, V6) 0.000000 2.000000 X( W1, V7) 0.000000 2.000000 X( W1, V8) 0.000000 10.00000 X( W2, V1) 1.000000 0.000000 X( W2, V2) 0.000000 4.000000 X( W2, V3) 0.000000 1.000000 X( W2, V4) 32.00000 0.000000 X( W2, V5) 0.000000 1.000000 X( W2, V6) 0.000000 2.000000 X( W2, V7) 0.000000 2.000000 X( W2, V8) 0.000000 0.000000 X( W3, V1) 0.000000 4.000000 X( W3, V2) 11.00000 0.000000 X( W3, V3) 0.000000 0.000000 X( W3, V4) 0.000000 9.000000 X( W3, V5) 0.000000 3.000000 X( W3, V6) 0.000000 4.000000 X( W3, V7) 40.00000 0.000000 X( W3, V8) 0.000000 4.000000 X( W4, V1) 0.000000 4.000000 X( W4, V2) 0.000000 2.000000 X( W4, V3) 0.000000 4.000000 X( W4, V4) 0.000000 1.000000 X( W4, V5) 0.000000 3.000000 X( W4, V6) 5.000000 0.000000 X( W4, V7) 0.000000 2.000000 X( W4, V8) 38.00000 0.000000 X( W5, V1) 34.00000 0.000000 X( W5, V2) 7.000000 0.000000 X( W5, V3) 0.000000 7.000000 X( W5, V4) 0.000000 4.000000 X( W5, V5) 0.000000 2.000000 X( W5, V6) 0.000000 1.000000 X( W5, V7) 0.000000 2.000000 X( W5, V8) 0.000000 5.000000 X( W6, V1) 0.000000 3.000000 X( W6, V2) 0.000000 2.000000 X( W6, V3) 22.00000 0.000000 X( W6, V4) 0.000000 1.000000 X( W6, V5) 0.000000 3.000000 X( W6, V6) 27.00000 0.000000X( W6, V8) 0.000000 3.000000 Row Slack or Surplus Dual Price 1 664.0000 -1.000000 2 0.000000 3.000000 3 22.00000 0.000000 4 0.000000 3.000000 5 0.000000 1.000000 6 0.000000 2.000000 7 0.000000 2.000000 8 0.000000 -4.000000 9 0.000000 -5.000000 10 0.000000 -4.000000 11 0.000000 -3.000000 12 0.000000 -7.000000 13 0.000000 -3.000000 14 0.000000 -6.000000 15 0.000000 -2.000000由以上结果可以清楚的看到由各仓库到各客户处的货物调运数量,由此得出的符合条件的最佳运货方案,而使运费最低,最低为664。
运筹学lingo实验报告(一)
运筹学lingo实验报告(一)运筹学lingo实验报告介绍•运筹学是一门研究在给定资源约束下优化决策的学科,广泛应用于管理、工程、金融等领域。
•LINGO是一种常用的运筹学建模和求解软件,具有丰富的功能和高效的求解算法。
实验目的•了解运筹学的基本原理和应用。
•掌握LINGO软件的使用方法。
•运用LINGO进行优化建模和求解实际问题。
实验内容1.使用LINGO进行线性规划的建模和求解。
2.使用LINGO进行整数规划的建模和求解。
3.使用LINGO进行非线性规划的建模和求解。
4.使用LINGO进行多目标规划的建模和求解。
实验步骤1. 线性规划•确定决策变量、目标函数和约束条件。
•使用LINGO进行建模,设定目标函数和约束条件。
•运行LINGO求解线性规划问题。
2. 整数规划•在线性规划的基础上,将决策变量的取值限制为整数。
•使用LINGO进行整数规划的建模和求解。
3. 非线性规划•确定决策变量、目标函数和约束条件。
•使用LINGO进行非线性规划的建模和求解。
4. 多目标规划•确定多个目标函数和相应的权重。
•使用LINGO进行多目标规划的建模和求解。
实验结果•列举各个实验的结果,包括最优解、最优目标函数值等。
结论•运筹学lingo实验是一种有效的学习运筹学和应用LINGO的方法。
•通过本实验能够提高对运筹学概念和方法的理解,并掌握运用LINGO进行优化建模和求解的技能。
讨论与建议•实验过程中是否遇到困难或问题,可以进行讨论和解决。
•提出对于实验内容或方法的建议和改进方案。
参考资料•提供参考书目、文献、教材、网站等资料,以便学生深入学习和研究。
致谢•对与实验指导、帮助或支持的人员表示感谢,如老师、助教或同学等。
以上为运筹学lingo实验报告的基本框架,根据实际情况进行适当调整和补充。
实验报告应简洁明了,清晰表达实验目的、内容、步骤、结果和结论,同时可以加入必要的讨论和建议,以及参考资料和致谢等信息。
LINGO应用实例
LINGO 应用实例班级:2011级软件工程1班;姓名:林保京;学号:P111713222某公司有6 个建筑工地要开工,每个工地的位置(用平面坐标a, b 表示,距离单位:公里)及水泥日用量d (吨)由下表给出。
目前有两个临时料场位于P (5, 1), Q (2, 7) ,日储量各有20 吨。
假设从料场到工地之间均有直线道路相连,试制定每天的供应计划,即从A, B 两料场分别向各工地运送多少吨水泥,使总的吨公里数最小。
为了进一步减少吨公里数,打算舍弃两个临时料场,改建两个新的,日储量仍各为20 吨,问应建在何处,节省的吨公里数有多大。
记工地的位置为(a i ,b i ),水泥的日用量为d i ,i =1…6;料场的位置为(x j ,y j ),日储量为e j ,j =1,2;从料场j 到工地i 的运送量为c ij ,这个优化问题的数学规划模型是:min f =∑∑c ij √(x j −a i )2+(y j −b i )26i−12j−1st ∑c ij 2j−1=d i ,i =1 (6)∑c ij 6i−1≤e j ,j =1,2将其转化成LINGO 代码:MODEL :Title Location Problem;sets :demand/1..6/:a,b,d;supply/1..2/:x,y,e;link(demand,supply):c;endsetsdata :!需求点设置;a=1.25,8.75,0.5,5.75,3,7.25;b=1.25,0.75,5.75,5,6.5,7.75;!需求量;d=3,5,4,7,6,11;e=20,20;enddatainit:!初始点;x,y=5,1,2,7;endinit[OBJ] min=@sum(link(i,j):c(i,j)*((x(j)-a(i))^2+(y(j)-b(i))^2)^(1/2)); @for(demand(i):[DEMAND_CON]@sum(supply(j):c(i,j))=d(i););@for(supply(i):[SUPPLY_CON]@sum(demand(j):c(j,i))<=e(i););@for(supply:@free(X); @free(Y););END运行结果如下:Local optimal solution found.Objective value: 84.41406Infeasibilities: 0.000000Total solver iterations: 132Model Title: Location ProblemVariable Value Reduced CostA( 1) 1.250000 0.000000A( 2) 8.750000 0.000000A( 3) 0.5000000 0.000000A( 4) 5.750000 0.000000A( 5) 3.000000 0.000000A( 6) 7.250000 0.000000B( 1) 1.250000 0.000000B( 2) 0.7500000 0.000000B( 3) 5.750000 0.000000B( 4) 5.000000 0.000000B( 5) 6.500000 0.000000B( 6) 7.750000 0.000000D( 1) 3.000000 0.000000D( 2) 5.000000 0.000000D( 3) 4.000000 0.000000D( 4) 7.000000 0.000000D( 5) 6.000000 0.000000D( 6) 11.00000 0.000000X( 1) 3.113090 0.000000X( 2) 7.250000 -0.1954955E-06Y( 1) 6.044738 0.000000Y( 2) 7.750000 -0.8808641E-08E( 1) 20.00000 0.000000 E( 2) 20.00000 0.000000 C( 1, 1) 3.000000 0.000000 C( 1, 2) 0.000000 3.701915 C( 2, 1) 0.000000 0.5747176 C( 2, 2) 5.000000 0.000000 C( 3, 1) 4.000000 0.000000 C( 3, 2) 0.000000 4.410404 C( 4, 1) 7.000000 0.000000 C( 4, 2) 0.000000 0.2961603 C( 5, 1) 6.000000 0.000000 C( 5, 2) 0.000000 3.960913 C( 6, 1) 0.000000 4.474589 C( 6, 2) 11.00000 0.000000Row Slack or Surplus Dual Price OBJ 84.41406 -1.000000DEMAND_CON( 1) 0.000000 -5.143988 DEMAND_CON( 2) 0.000000 -7.158911 DEMAND_CON( 3) 0.000000 -2.629659 DEMAND_CON( 4) 0.000000 -2.836331 DEMAND_CON( 5) 0.000000 -0.4690982 DEMAND_CON( 6) 0.000000 0.000000 SUPPLY_CON( 1) 0.000000 0.000000 SUPPLY_CON( 2) 4.000000 0.000000软件运行截图代码截图:运行结果截图:。
Lingo软件应用举例
Lingo 软件应用举例1. 简单的优化问题---- Lingo 软件的体验1.1 线性规划及线性整数规划例1. 在LINGO 中求解如下问题(线性规划):0,6002100350..32min 212112121≥≤+≥≥++x x x x x x x t s x x %----------------------------------------------------------其LINGO 代码如下:min =2*x1+3*x2;x1+x2>=350;x1>=100;2*x1+x2<=600;说明:(1) 在这里之所以没有对x1和x2进行非负的限制,是由于在默认情况下,Lingo 规定变量取非负实数(即非负要求,取值连续)(2) 若要求取整数,则函数@gin(x)限定x 取值为整数;(3) 若要求无约束,则函数@free(x)取消x 默认下界为0的限制,使x 可以取任意实数;(4) 若要求取非正数,则函数@bnd(L,x,U)可以限定L ≤x ≤U 。
%----------------------------------------------------------计算结果:Global optimal solution found at iteration: 2Objective value: 800.0000Variable Value Reduced CostX1 250.0000 0.000000X2 100.0000 0.000000Row Slack or Surplus Dual Price1 800.0000 -1.0000002 0.000000 -4.0000003 150.0000 0.0000004 0.000000 1.000000结果的解释:(1) “Global optimal solution found at iteration: 2”表示2次迭代后得到全局最优解。
LINGO求解运输问题
一.实验目的1、学会使用LINGO 软件求解运输问题的步骤与方法。
2、掌握使用LINGO 对运输问题的求解功能,并对结果进行分析。
二.实验内容1.已知某企业有甲、乙、丙三个分厂生产一种产品,其产量分别为7、9、7个单位,需运往A 、B 、C 、D 四个门市部,各门市部需要量分别为3、5、7、8个单位。
已知单位运价如下表。
试确定运输计划使总运费最少。
2.现在要在五个工人中确定四个人来分别完成四项工作中的一项工作。
由于每个工人的技术特长不同,他们完成各项工作所需的工时也不同。
每个工人完成各项工作所需工时如下表所示,试找出一个工作分配方案,使总工时最小。
三. 模型建立1.由题设知,总产量为:7+9+7=23个单位,总销量为:3+5+7+8=23个单位,所以这是一个产销平衡的运输问题。
设)4,3,2,1;3,2,1(==j i x ij 代表从第i 个产地运往第j 个销地的数量,z 为总运费。
i a 表示第i 个产地的产量,j b 表示第j 个销地的销量ij c 表示从第i 个产地运往第j 个销地的单位产品运输费用。
则该问题的数学模型为:34114131max 0,1,2,3;1,2,3,4ij iji j ij i j ij j i ij Z c x x a x b x i j =====⎧=⎪⎪⎪=⎨⎪⎪≥==⎪⎩∑∑∑∑2. 设0-1变量,1,0ij i x i ⎧=⎨⎩当第个人完成某j 项工作,当第个人不完成某j 项工作则该问题的数学模型为:54115141min 1,1,01ij iji j ij i ij j ij Z c x x j x i x i j =====⎧= =1,2,3,4⎪⎪⎪= = 1,2,3,4,5⎨⎪⎪= =1,2,3,4,5;=1,2,3,4⎪⎩∑∑∑∑或,四. 模型求解(含经调试后正确的源程序)1、编写程序1-1.m 如下:model : sets :warehouses/wh1..wh3/: capacity; vendors/v1..v4/: demand;links(warehouses,vendors): cost, volume; endsets data :capacity=7 9 7; demand=3 5 7 8; cost= 12 13 10 11 10 12 14 10 14 11 15 12; enddatamin =@sum (links(I,J): cost(I,J)*volume(I,J));@for(vendors(J):@sum(warehouses(I): volume(I,J))=demand(J));@for(warehouses(I):@sum(vendors(J): volume(I,J))<=capacity(I));end2、编写程序2-1.m如下:model:sets:workers/w1..w5/;jobs/j1..j4/;links(workers,jobs): cost,volume;Endsetsdata:cost=9 4 3 74 65 65 4 7 57 5 2 310 6 7 4;enddatamin=@sum(links: cost*volume);@for(workers(I): @sum(jobs(J): volume(I,J))<=1);@for(jobs(J): @sum(workers(I): volume(I,J))=1);@for(links(i,j): @bin(volume(i,j)));End五.结果分析最优调运方案为:甲→C:7单位;甲→D:0单位;乙→A:3单位;乙→D:6单位;丙→B:5单位;丙→D:2单位。
Lingo的典型应用举例
4
A
2
3
4
5
6
7
8
9
10
料场的位置用(pxj,pyj)表示,日存储量用gj表示, 从料场j向工地i的日运输量为Cij。 则对问题(1), pxj,pyj是已知数,决策变量是Cij。 料场j到工地i的距离为:
( px j xi ) 2 + ( py j yi ) 2
目标函数是总的吨千米数最小,约束条件有两个。 一是满足各工地的日需求,二是各料场的总出货量不超 过日存储量。建立数学模型如下:
当前可供蔬菜养分含量( ) 表2.1 当前可供蔬菜养分含量(mg)和价格
养分 蔬菜 A1 A2 A3 A4 A5 A6 青 豆 胡萝卜 花 菜 卷心菜 芹 菜 土 豆 铁 0.45 0.45 0.65 0.4 0.5 0.5 6 每份蔬菜所含养分数量 磷 20 28 40 25 26 75 125 维生素A 维生素 维生素C 维生素 415 4065 850 75 76 235 12500 22 5 43 27 48 8 345 烟酸 0.3 0.35 0.6 0.2 0.4 0.6 5 每份价格 (元) 2.1 1.0 1.8 1.2 2.0 1.2
用0-1变量xij表示分配情况,xij=1表示指派第i个人 完成第j项任务,xij=0表示不分配。则上述问题可以表示 为如下0-1线性规划:
min
z = ∑∑ cij xij ,
i =1 j =1
n
n
n ∑ xij = 1, j = 1,2,..., n, i =1 s.t. n x = 1, i = 1,2,..., n, x = 0或1. ij ∑ ij j =1
min
z = ∑∑ Cij ( px j xi ) + ( py j yi ) ,
典型LINGO循环例子
例2 运输问题解: 设决策变量ij x = 第i 个发点到第j 个售点的运货量,i =1,2,…m; j =1,2,…n; 记为ij c =第i 个发点到第j 个售点的运输单价,i =1,2,…m; j =1,2,…n 记i s =第i 个发点的产量, i =1,2,…m; 记j d =第j 个售点的需求量, j =1,2,…n. 其中,m = 6; n = 8.设目标函数为总成本,约束条件为(1)产量约束;(2)需求约束。
于是形成如下规划问题:nj m i x n j d xm i s x x c ij j n i ij i mj ij m i nj ij ij ,...,2,1,,...,2,1,0 ,...,2,1,,...,2,1, st.z min 1111==>=<==<==∑∑∑∑====把上述程序翻译成LINGO 语言,编制程序如下:!exam_2.lg4 源程序model : !6发点8收点运输问题;sets :rows/1..6/: s; !发点的产量限制;cols/1..8/: d; !售点的需求限制;links(rows,cols): c, x; !运输单价,决策运输量;endsets!-------------------------------------;data:s = 60,55,51,43,41,52;d = 35 37 22 32 41 32 43 38;c = 6 2 6 7 4 2 9 54 95 3 8 5 8 25 2 1 9 7 4 3 37 6 7 3 9 2 7 12 3 9 5 7 2 6 55 5 2 2 8 1 4 3;enddata!------------------------------------;min = @sum(links: c*x); !目标函数=运输总成本;@for(rows(i):@sum(cols(j): x(i,j))<=s(i) ); ! 产量约束;@for(cols(j):@sum(rows(i): x(i,j))=d(j) ); !需求约束;end。
lingo软件在运输问题中的应用
172科技创新导报 Science and Technology Innovation Herald2008 NO.36Science and Technology Innovation Herald管 理 科 学随着社会经济的发展,运输业在经济生活中的地位越来越重要,国内国际的物流、人流最终都离不开具体的运输环节。
在社会产品的最终成本中,运输成本约占10%-30%,所以,开展合理运输,节约运输成本,对于降低社会产品的总成本起着重要作用。
因此,运输企业需要在众多运输方案中选择总运费最小的。
这样的问题,在物流运筹学中称为运输问题。
在求解运输问题方面,我们通常介绍的是表上作业法。
这是一种手工做法。
当输出地个数M,和输入地个数N比较大时,这种手工的表上作业法就显得很繁琐了,这时我们要处理的是至少M+1行N+1列的表格。
因此,我们考虑用计算机来处理这个问题。
可以用来求解运输问题的软件常见的有,lingo、lindo、MATLAB、office中的excel等。
他们各有特色,今天,我就通过一个实例来介绍lingo软件在运输问题中的应用。
傲来公司有三个仓库:H1、H2、H3,A商品在这三仓库中的库存分别为100吨,95吨,110吨;另知有四家大型超市(S1、S2、S3、S4)需要该公司的A商品,他们的需求量分别是55吨,80吨,90吨,75吨 。
我们面临的问题是如何利用现有库存资源满足这四家超市的需求,并使总运输成本最低。
从三个仓库向四家超市送货的运输成本价(元/吨)如表1所示。
表1该运输问题的目标很明了,就是总运费最小化。
所以我们令Xij表示从仓库Hi到超市Sj运送的商品吨数。
从而有运输问题的数学模型:目标函数:MIN=25*X11+20*X12….+20*X33+22*X34库存约束:∑X1j<=100;∑X2j<=95;∑X3j<=110;j=1,2,3,4需求约束:∑Xi1=55;∑Xi2=80;∑Xi3=90;∑Xi4=75;i=1,2,3非负约束:Xij>=0用lingo求解的过程如下:model:!3仓库,4超市运输问题模型;sets:h/h1 h2 h3/:capacity;s/s1 s2 s3 s4/:demand;links(h,s):cost,x;endsets!目标函数;min=@sum(links(i,j):cost(i,j)*x(i,j));!需求函数;@for(s(j):@sum(h(i):x(i,j))=demand(j));!供用约束;@for(h(i):@sum(s(j):x(i,j))<=capacity(i));!数据段;data:capacity=100 95 110;demand=55 80 90 75;cost=25 20 22 19 20 18 11 20 15 1820 22;enddata在lingo8.0,windows2000环境中运行结果如下:Global optimal solution found.Objective value: 4720.000Total solver iterations: 4Variable Value Reduced CostCAPACITY( H1)100.0000 0.000000CAPACITY( H2) 95.0000 0.000000CAPACITY( H3)110.0000 0.000000DEMAND( S1) 55.00000 0.000000DEMAND( S2) 80.00000 0.000000DEMAND( S3) 90.00000 0.000000DEMAND( S4) 75.00000 0.000000COST( H1, S1)25.00000 0.000000COST( H1, S2)20.00000 0.000000COST( H1, S3)22.00000 0.000000COST( H1, S4)19.00000 0.000000COST( H2, S1)20.00000 0.000000COST( H2, S2)18.00000 0.000000COST( H2, S3)11.00000 0.000000COST( H2, S4)20.00000 0.000000COST( H3, S1)15.00000 0.000000COST( H3, S2)18.00000 0.000000COST( H3, S3)20.00000 0.000000COST( H3, S4)22.00000 0.000000X( H1, S1) 0.000000 8.000000X( H1, S2) 20.00000 0.000000X( H1, S3) 0.000000 9.000000X( H1, S4) 75.00000 0.000000X( H2, S1) 0.000000 5.000000X( H2, S2) 5.000000 0.000000X( H2, S3) 90.00000 0.000000X( H2, S4) 0.000000 3.000000X( H3, S1) 55.00000 0.000000X( H3, S2) 55.00000 0.000000X( H3, S3) 0.000000 9.000000X( H3, S4) 0.000000 5.000000Row Slack or Surplus Dual Price1 4720.000 -1.0000002 0.000000 -17.000003 0.000000 -20.000004 0.000000 -13.000005 0.000000 -19.000006 5.000000 0.0000007 0.000000 2.0000008 0.000000 2.000000该结果显示最低运费为4720元,最优运输方案是仓库1向超市2供货20吨,仓库1向超市4供货75吨,仓库2向超市2供货5吨,仓库2向超市3供货90吨,仓库3向超市1供货55吨,仓库3向超市2供货55吨。
利用Lingo解一个具体的运输问题例子
1、 实验目的和任务1.1. 进一步把握Lingo 编程操作;1.2通过实验进一步把握运筹学运输问题的建模和求解进程,提高学生分析问题和解决问题能力。
2、 实验仪器、设备及材料运算机、Lingo3、 实验内容运输问题问题P271设有某种物资需要从m 个产地12,,...,m A A A 运到n 个销地12,,...,n B B B ,其中每一个产地的生产量为12,,...,m a a a ,每一个销地的需求量为12,,...,n b b b 。
设从产地i A 到销地j B 的运费单价为(1,2,...,,1,2,...,),ij c i m j n ==,问如何调运可使总运费最少?3个产地4个销地的运输问题建模决策变量:决策变量确实是产地i A 到销地j B 的运量ij x目标函数:11min m nij ij i j z c x ===∑∑,约束条件:第i 个产地的运出量应小于或等于该地的生产量,即1,1,2,...,.n ij i j xa i m =≤=∑第j 个销地的运入量应等于该地的需求量,即1,1,2,....m ij j i xb j n ===∑求解进程编写模型程序: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=30,25,21;b=15,17,22,12;c=6,2,6,7,4,9,5,3,8,8,1,5;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: 161.0000Total solver iterations: 6Variable Value Reduced CostA( 1) 30.00000 0.000000A( 2) 25.00000 0.000000A( 3) 21.00000 0.000000B( 1) 15.00000 0.000000B( 2) 17.00000 0.000000B( 3) 22.00000 0.000000B( 4) 12.00000 0.000000C( 1, 1) 6.000000 0.000000C( 2, 1) 4.000000 0.000000C( 2, 2) 9.000000 0.000000C( 2, 3) 5.000000 0.000000C( 2, 4) 3.000000 0.000000C( 3, 1) 8.000000 0.000000C( 3, 2) 8.000000 0.000000C( 3, 3) 1.000000 0.000000C( 3, 4) 5.000000 0.000000X( 1, 1) 2.000000 0.000000X( 1, 2) 17.00000 0.000000X( 1, 3) 1.000000 0.000000X( 1, 4) 0.000000 2.000000X( 2, 1) 13.00000 0.000000X( 2, 2) 0.000000 9.000000X( 2, 3) 0.000000 1.000000X( 2, 4) 12.00000 0.000000X( 3, 1) 0.000000 7.000000X( 3, 2) 0.000000 11.00000X( 3, 3) 21.00000 0.000000X( 3, 4) 0.000000 5.000000Row Slack or Surplus Dual PriceOBJ 161.0000 -1.000000SUP( 1) 10.00000 0.000000SUP( 2) 0.000000 2.000000SUP( 3) 0.000000 5.000000DEM( 1) 0.000000 -6.000000DEM( 2) 0.000000 -2.000000DEM( 3) 0.000000 -6.000000事实上,咱们关切更多的是那些非零变量,因此,可选择“Lingo|solution..”弹出一个对话框(介绍此对话框),选择“nonzeros only”,即可只列出非零变量:Global optimal solution found.Objective value: 161.0000Total solver iterations: 6Variable Value Reduced CostA( 1) 30.00000 0.000000A( 2) 25.00000 0.000000A( 3) 21.00000 0.000000B( 1) 15.00000 0.000000B( 2) 17.00000 0.000000B( 3) 22.00000 0.000000C( 1, 3) 6.000000 0.000000C( 1, 4) 7.000000 0.000000C( 2, 1) 4.000000 0.000000C( 2, 2) 9.000000 0.000000C( 2, 3) 5.000000 0.000000C( 2, 4) 3.000000 0.000000C( 3, 1) 8.000000 0.000000C( 3, 2) 8.000000 0.000000C( 3, 3) 1.000000 0.000000C( 3, 4) 5.000000 0.000000X( 1, 1) 2.000000 0.000000X( 1, 2) 17.00000 0.000000X( 1, 3) 1.000000 0.000000X( 2, 1) 13.00000 0.000000X( 2, 4) 12.00000 0.000000X( 3, 3) 21.00000 0.000000Row Slack or Surplus Dual PriceSUP( 2) 0.000000 2.000000SUP( 3) 0.000000 5.000000DEM( 1) 0.000000 -6.000000DEM( 2) 0.000000 -2.000000DEM( 3) 0.000000 -6.000000DEM( 4) 0.000000 -5.000000结果分析由于Lingo软件中采纳集,数据段和循环函数的编写方式,因此便于程序推行到一样形式利用,例如,只需修改运输问题中产地和销地的个数,和参数a,b,c的值,就能够够求解任何运输问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
model :!6发点8收点运输问题; sets :warehouses/wh1..wh6/: capacity; vendors/v1..v8/: demand;links(warehouses,vendors): cost, volume; endsets !目标函数;min =@sum (links: cost*volume); !需求约束;@for (vendors(J):@sum (warehouses(I): volume(I,J))=demand(J)); !产量约束;@for (warehouses(I):@sum (vendors(J): volume(I,J))<=capacity(I));!这里是数据; data :capacity=60 55 51 43 41 52;demand=35 37 22 32 41 32 43 38; cost=6 2 6 7 4 2 9 5 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2 3 9 5 7 2 6 5 5 5 2 2 8 1 4 3; enddata end然后点击工具条上的按钮 即可。
为了能够使用LINGO 的强大功能,接着第二节的学习吧。
例 给定一个直角三角形,求包含该三角形的最小正方形。
解:如图所示。
,sin cos ,cos ,sin x b x a DE x b AD x a CE +===求最小的正方形就相当于求如下的最优化问题:{}DE AD CE x ,,max min 20π≤≤LINGO 代码如下:model : sets :object/1..3/: f; endsets data :a, b = 3, 4; !两个直角边长,修改很方便; enddataf(1) = a * @sin (x); f(2) = b * @cos (x);f(3) = a * @cos (x) + b * @sin (x); min = @smax (f(1),f(2),f(3)); @bnd (0,x,1.57); end在上面的代码中用到了函数@bnd例5.1某家具公司制造书桌、餐桌和椅子,所用的资源有三种:木料、木工和漆工。
生用DESKS 、TABLES 和CHAIRS 分别表示三种产品的生产量,建立LP 模型。
max =60*desks+30*tables+20*chairs; 8*desks+6*tables+chairs<=48; 4*desks+2*tables+1.5*chairs<=20; 2*desks+1.5*tables+.5*chairs<=8; tables<=5;求解这个模型,并激活灵敏性分析。
这时,查看报告窗口(Reports Window ),可以看到如下结果。
Global optimal solution found at iteration: 3 Objective value: 280.0000Variable Value Reduced Cost DESKS 2.000000 0.000000 TABLES 0.000000 5.000000 CHAIRS 8.000000 0.000000Row Slack or Surplus Dual Price 1 280.0000 1.000000 2 24.00000 0.000000 3 0.000000 10.00000AB CD Ea b x4 0.000000 10.000005 5.000000 0.000000例一奶制品加工厂用牛奶生产A1,A2两种奶制品,1桶牛奶可以在甲车间用12小时加工成3公斤A1,或者在乙车间用8小时加工成4公斤A2。
根据市场需求,生产的A1,A2全部能售出,且每公斤A1获利24元,每公斤A2获利16元。
现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间480小时,并且甲车间每天至多能加工100公斤A1,乙车间的加工能力没有限制。
试为该厂制订一个生产计划,使每天获利最大,并进一步讨论以下3个附加问题:1)若用35元可以买到1桶牛奶,应否作这项投资?若投资,每天最多购买多少桶牛奶?2)若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时几元?3)由于市场需求变化,每公斤A1的获利增加到30元,应否改变生产计划?模型代码如下:max=72*x1+64*x2;x1+x2<=50;12*x1+8*x2<=480;3*x1<=100;求解这个模型并做灵敏性分析,结果如下。
Global optimal solution found at iteration: 0Objective value: 3360.000Variable Value Reduced CostX1 20.00000 0.000000X2 30.00000 0.000000Row Slack or Surplus Dual Price1 3360.000 1.0000002 0.000000 48.000003 0.000000 2.0000004 40.00000 0.000000Ranges in which the basis is unchanged:Objective Coefficient RangesCurrent Allowable AllowableVariable Coefficient Increase DecreaseX1 72.00000 24.00000 8.000000X2 64.00000 8.000000 16.00000Righthand Side RangesRow Current Allowable AllowableRHS Increase Decrease2 50.00000 10.00000 6.6666673 480.0000 53.33333 80.000004 100.0000 INFINITY 40.00000结果告诉我们:这个线性规划的最优解为x1=20,x2=30,最优值为z=3360,即用20桶牛奶生产A1, 30桶牛奶生产A2,可获最大利润3360元。
输出中除了告诉我们问题的最优解和最优值以外,还有许多对分析结果有用的信息,下面结合题目中提出的3个附加问题给予说明。
3个约束条件的右端不妨看作3种“资源”:原料、劳动时间、车间甲的加工能力。
输出中Slack or Surplus给出这3种资源在最优解下是否有剩余:原料、劳动时间的剩余均为零,车间甲尚余40(公斤)加工能力。
目标函数可以看作“效益”,成为紧约束的“资源”一旦增加,“效益”必然跟着增长。
输出中DUAL PRICES 给出这3种资源在最优解下“资源”增加1个单位时“效益”的增量:原料增加1个单位(1桶牛奶)时利润增长48(元),劳动时间增加1个单位(1小时)时利润增长2(元),而增加非紧约束车间甲的能力显然不会使利润增长。
这里,“效益”的增量可以看作“资源”的潜在价值,经济学上称为影子价格,即1桶牛奶的影子价格为48元,1小时劳动的影子价格为2元,车间甲的影子价格为零。
读者可以用直接求解的办法验证上面的结论,即将输入文件中原料约束milk )右端的50改为51,看看得到的最优值(利润)是否恰好增长48(元)。
用影子价格的概念很容易回答附加问题1):用35元可以买到1桶牛奶,低于1桶牛奶的影子价格48,当然应该作这项投资。
回答附加问题2):聘用临时工人以增加劳动时间,付给的工资低于劳动时间的影子价格才可以增加利润,所以工资最多是每小时2元。
目标函数的系数发生变化时(假定约束条件不变),最优解和最优值会改变吗?这个问题不能简单地回答。
上面输出给出了最优基不变条件下目标函数系数的允许变化范围:x 1的系数为(72-8,72+24)=(64,96);x 2的系数为(64-16,64+8)=(48,72)。
注意:x 1系数的允许范围需要x 2系数64不变,反之亦然。
由于目标函数的费用系数变化并不影响约束条件,因此此时最优基不变可以保证最优解也不变,但最优值变化。
用这个结果很容易回答附加问题3):若每公斤A 1的获利增加到30元,则x 1系数变为30×3=90,在允许范围内,所以不应改变生产计划,但最优值变为90×20+64×30=3720。
下面对“资源”的影子价格作进一步的分析。
影子价格的作用(即在最优解下“资源”增加1个单位时“效益”的增量)是有限制的。
每增加1桶牛奶利润增长48元(影子价格),但是,上面输出的CURRENT RHS 的ALLOWABLE INCREASE 和 ALLOWABLE DECREASE 给出了影子价格有意义条件下约束右端的限制范围: milk )原料最多增加10(桶牛奶),time )劳动时间最多增加53(小时)。
现在可以回答附加问题1)的第2问:虽然应该批准用35元买1桶牛奶的投资,但每天最多购买10桶牛奶。
顺便地说,可以用低于每小时2元的工资聘用临时工人以增加劳动时间,但最多增加53.3333小时。
需要注意的是:灵敏性分析给出的只是最优基保持不变的充分条件,而不一定是必要条件。
比如对于上面的问题,“原料最多增加10(桶牛奶)”的含义只能是“原料增加10(桶牛奶)”时最优基保持不变,所以影子价格有意义,即利润的增加大于牛奶的投资。
反过来,原料增加超过10(桶牛奶),影子价格是否一定没有意义?最优基是否一定改变?一般来说,这是不能从灵敏性分析报告中直接得到的。
此时,应该重新用新数据求解规划模型,才能做出判断。
所以,从正常理解的角度来看,我们上面回答“原料最多增加10(桶牛奶)”并不是完全科学的。
§7 综合举例例7.1 求解非线性方程组⎪⎩⎪⎨⎧=+++=+4222222y y x x y x其LINGO 代码如下:model :x^2+y^2=2;2*x^2+x+y^2+y=4; end计算的部分结果为Feasible solution found at iteration: 0Variable Value X 0.4543360 Y 1.339247例7.2 装配线平衡模型 一条装配线含有一系列的工作站,在最终产品的加工过程中每个工作站执行一种或几种特定的任务。
装配线周期是指所有工作站完成分配给它们各自的任务所化费时间中的最大值。
平衡装配线的目标是为每个工作站分配加工任务,尽可能使每个工作站执行相同数量的任务,其最终标准是装配线周期最短。
不适当的平衡装配线将会产生瓶颈——有较少任务的工作站将被迫等待其前面分配了较多任务的工作站。