装配线平衡模型Word文档下载推荐.docx

上传人:b****4 文档编号:8243780 上传时间:2023-05-10 格式:DOCX 页数:28 大小:97.15KB
下载 相关 举报
装配线平衡模型Word文档下载推荐.docx_第1页
第1页 / 共28页
装配线平衡模型Word文档下载推荐.docx_第2页
第2页 / 共28页
装配线平衡模型Word文档下载推荐.docx_第3页
第3页 / 共28页
装配线平衡模型Word文档下载推荐.docx_第4页
第4页 / 共28页
装配线平衡模型Word文档下载推荐.docx_第5页
第5页 / 共28页
装配线平衡模型Word文档下载推荐.docx_第6页
第6页 / 共28页
装配线平衡模型Word文档下载推荐.docx_第7页
第7页 / 共28页
装配线平衡模型Word文档下载推荐.docx_第8页
第8页 / 共28页
装配线平衡模型Word文档下载推荐.docx_第9页
第9页 / 共28页
装配线平衡模型Word文档下载推荐.docx_第10页
第10页 / 共28页
装配线平衡模型Word文档下载推荐.docx_第11页
第11页 / 共28页
装配线平衡模型Word文档下载推荐.docx_第12页
第12页 / 共28页
装配线平衡模型Word文档下载推荐.docx_第13页
第13页 / 共28页
装配线平衡模型Word文档下载推荐.docx_第14页
第14页 / 共28页
装配线平衡模型Word文档下载推荐.docx_第15页
第15页 / 共28页
装配线平衡模型Word文档下载推荐.docx_第16页
第16页 / 共28页
装配线平衡模型Word文档下载推荐.docx_第17页
第17页 / 共28页
装配线平衡模型Word文档下载推荐.docx_第18页
第18页 / 共28页
装配线平衡模型Word文档下载推荐.docx_第19页
第19页 / 共28页
装配线平衡模型Word文档下载推荐.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

装配线平衡模型Word文档下载推荐.docx

《装配线平衡模型Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《装配线平衡模型Word文档下载推荐.docx(28页珍藏版)》请在冰点文库上搜索。

装配线平衡模型Word文档下载推荐.docx

8

MODEL:

!

装配线平衡模型;

SETS:

任务集合,有一个完成时间属性T;

TASK/ABCDEFGHIJK/:

T;

任务之间的优先关系集合(A必须完成才能开始B,等等);

PRED(TASK,TASK)/A,BB,CC,FC,GF,JG,J

J,KD,EE,HE,IH,JI,J/;

工作站集合;

STATION/1..4/;

TXS(TASK,STATION):

X;

X是派生集合TXS的一个属性。

如果X(I,K)=1,则表示第I个任务

指派给第K个工作站完成;

ENDSETS

DATA:

任务ABCDEFGHIJK的完成时间估计如下;

T=4511950151212121289;

ENDDATA

当任务超过15个时,模型的求解将变得很慢;

每一个作业必须指派到一个工作站,即满足约束①;

@FOR(TASK(I):

@SUM(STATION(K):

X(I,K))=1);

对于每一个存在优先关系的作业对来说,前者对应的工作站I必须小于后

者对应的工作站J,即满足约束②;

@FOR(PRED(I,J):

K*X(J,K)-K*X(I,K))>

=0);

对于每一个工作站来说,其花费时间必须不大于装配线周期;

@FOR(STATION(K):

@SUM(TXS(I,K):

T(I)*X(I,K))<

=CYCTIME);

目标函数是最小化转配线周期;

MIN=CYCTIME;

指定X(I,J)为0/1变量;

@FOR(TXS:

@BIN(X));

END

Globaloptimalsolutionfoundatiteration:

1255

Objectivevalue:

VariableValueReducedCost

CYCTIME

X(A,1)

X(A,2)

X(A,3)

X(A,4)

X(B,1)

X(B,2)

X(B,3)

X(B,4)

X(C,1)

X(C,2)

X(C,3)

X(C,4)

X(D,1)

X(D,2)

X(D,3)

X(D,4)

X(E,1)

X(E,2)

X(E,3)

X(E,4)

X(F,1)

X(F,2)

X(F,3)

X(F,4)

X(G,1)

X(G,2)

X(G,3)

X(G,4)

X(H,1)

X(H,2)

X(H,3)

X(H,4)

X(I,1)

X(I,2)

X(I,3)

X(I,4)

X(J,1)

X(J,2)

X(J,3)

X(J,4)

X(K,1)

X(K,2)

X(K,3)

X(K,4)

例旅行售货员问题(又称货郎担问题,TravelingSalesmanProblem)

有一个推销员,从城市1出发,要遍访城市2,3,…,n各一次,最后返回城市1。

已知从城市i到j的旅费为

,问他应按怎样的次序访问这些城市,使得总旅费最少

可以用多种方法把TSP表示成整数规划模型。

这里介绍的一种建立模型的方法,是把该问题的每个解(不一定是最优的)看作是一次“巡回”。

在下述意义下,引入一些0-1整数变量:

其目标只是使

为最小。

这里有两个明显的必须满足的条件:

访问城市i后必须要有一个即将访问的确切城市;

访问城市j前必须要有一个刚刚访问过的确切城市。

用下面的两组约束分别实现上面的两个条件。

1

2

3

4

5

6

到此我们得到了一个模型,它是一个指派问题的整数规划模型。

但以上两个条件对于TSP来说并不充分,仅仅是必要条件。

例如:

以上两个条件都满足,但它显然不是TSP的解,它存在两个子巡回。

这里,我们将叙述一种在原模型上附加充分的约束条件以避免产生子巡回的方法。

把额外变量

附加到问题中。

可把这些变量看作是连续的(最然这些变量在最优解中取普通的整数值)。

现在附加下面形式的约束条件

为了证明该约束条件有预期的效果,必须证明:

(1)任何含子巡回的路线都不满足该约束条件;

(2)全部巡回都满足该约束条件。

首先证明

(1),用反证法。

假设还存在子巡回,也就是说至少有两个子巡回。

那么至少存在一个子巡回中不含城市1。

把该子巡回记为

,则必有

把这k个式子相加,有

,矛盾!

故假设不正确,结论

(1)得证。

下面证明

(2),采用构造法。

对于任意的总巡回

,可取

访问城市i的顺序数,取值范围为

因此,

下面来证明总巡回满足该约束条件。

(ⅰ)总巡回上的边

(ⅱ)非总巡回上的边

从而结论

(2)得证。

这样我们把TSP转化成了一个混合整数线性规划问题。

显然,当城市个数较大(大于30)时,该混合整数线性规划问题的规模会很大,从而给求解带来很大问题。

TSP已被证明是NP难问题,目前还没有发现多项式时间的算法。

对于小规模问题,我们求解这个混合整数线性规划问题的方式还是有效的。

TSP是一个重要的组合优化问题,除了有直观的应用外,许多其它看似无联系的优化问题也可转化为TSP。

问题1现需在一台机器上加工n个零件(如烧瓷器),这些零件可按任意先后顺序在机器上加工。

我们希望加工完成所有零件的总时间尽可能少。

由于加工工艺的要求,加工零件

时机器必须处于相应状态

(如炉温)。

设起始未加工任何零件时机器处于状态

,且当所有零件加工完成后需恢复到

状态。

已知从状态

调整到状态

需要时间

零件

本身加工时间为

为方便起见,引入一个虚零件0,其加工时间为0,要求状态为

,则{0,1,2,…,n}的一个圈置换π就表示对所有零件的一个加工顺序,在此置换下,完成所有加工所需要的总时间为

由于

是一个常数,故该零件的加工顺序问题变成TSP。

!

旅行售货员问题;

sets:

city/1..5/:

u;

link(city,city):

dist,!

距离矩阵;

x;

endsets

n=@size(city);

data:

距离矩阵,它并不需要是对称的;

dist=@qrand

(1);

随机产生,这里可改为你要解决的问题的数据;

enddata

目标函数;

min=@sum(link:

dist*x);

@FOR(city(K):

进入城市K;

@sum(city(I)|I#ne#K:

x(I,K))=1;

离开城市K;

@sum(city(J)|J#ne#K:

x(K,J))=1;

);

保证不出现子圈;

@for(city(I)|I#gt#1:

@for(city(J)|J#gt#1#and#I#ne#J:

u(I)-u(J)+n*x(I,J)<

=n-1);

限制u的范围以加速模型的求解,保证所加限制并不排除掉TSP问题的最优解;

@for(city(I)|I#gt#1:

u(I)<

=n-2);

定义X为0\1变量;

@for(link:

@bin(x));

计算的部分结果为:

Globaloptimalsolutionfoundatiteration:

77

VariableValueReducedCost

N

U

(1)

U

(2)

U(3)

U(4)

U(5)

DIST(1,1)

DIST(1,2)

DIST(1,3)

DIST(1,4)

DIST(1,5)

DIST(2,1)

DIST(2,2)

DIST(2,3)

DIST(2,4)

DIST(2,5)

DIST(3,1)

DIST(3,2)

DIST(3,3)

DIST(3,4)

DIST(3,5)

DIST(4,1)

DIST(4,2)

DIST(4,3)

DIST(4,4)

DIST(4,5)

DIST(5,1)

DIST(5,2)

DIST(5,3)

DIST(5,4)

DIST(5,5)

X(1,1)

X(1,2)

X(1,3)

X(1,4)

X(1,5)

X(2,1)

X(2,2)

X(2,3)

X(2,4)

X(2,5)

X(3,1)

X(3,2)

X(3,3)

X(3,4)

X(3,5)

X(4,1)

X(4,2)

X(4,3)

X(4,4)

X(4,5)

X(5,1)

X(5,2)

X(5,3)

X(5,4)

X(5,5)

例最短路问题给定N个点

组成集合

,由集合中任一点

到另一点

的距离用

表示,如果

没有弧联结,则规定

,又规定

,指定一个终点

,要求从

点出发到

的最短路线。

这里我们用动态规划方法来做。

用所在的点

表示状态,决策集合就是除

以外的点,选定一个点

以后,得到效益

并转入新状态

,当状态是

时,过程停止。

显然这是一个不定期多阶段决策过程。

定义

是由

点出发至终点

的最短路程,由最优化原理可得

这是一个函数方程,用LINGO可以方便的解决。

最短路问题;

n=10;

cities/1..n/:

F;

10个城市;

roads(cities,cities)/

1,21,3

2,42,52,6

3,43,53,6

4,74,8

5,75,85,9

6,86,9

7,10

8,10

9,10

/:

D,P;

endsets

D=

65

369

7511

91

875

410

5

7

9;

F(n)=0;

@for(cities(i)|i#lt#n:

F(i)=@min(roads(i,j):

D(i,j)+F(j));

显然,如果P(i,j)=1,则点i到点n的最短路径的第一步是i-->

j,否则就不是。

由此,我们就可方便的确定出最短路径;

@for(roads(i,j):

P(i,j)=@if(F(i)#eq#D(i,j)+F(j),1,0)

N

F

(1)

F

(2)

F(3)

F(4)

F(5)

F(6)

F(7)

F(8)

F(9)

F(10)

P(1,2)

P(1,3)

P(2,4)

P(2,5)

P(2,6)

P(3,4)

P(3,5)

P(3,6)

P(4,7)

P(4,8)

P(5,7)

P(5,8)

P(5,9)

P(6,8)

P(6,9)

P(7,10)

P(8,10)

P(9,10)

例露天矿生产的车辆安排(CMCM2003B)

钢铁工业是国家工业的基础之一,铁矿是钢铁工业的主要原料基地。

许多现代化铁矿是露天开采的,它的生产主要是由电动铲车(以下简称电铲)装车、电动轮自卸卡车(以下简称卡车)运输来完成。

提高这些大型设备的利用率是增加露天矿经济效益的首要任务。

露天矿里有若干个爆破生成的石料堆,每堆称为一个铲位,每个铲位已预先根据铁含量将石料分成矿石和岩石。

一般来说,平均铁含量不低于25%的为矿石,否则为岩石。

每个铲位的矿石、岩石数量,以及矿石的平均铁含量(称为品位)都是已知的。

每个铲位至多能安置一台电铲,电铲的平均装车时间为5分钟。

卸货地点(以下简称卸点)有卸矿石的矿石漏、2个铁路倒装场(以下简称倒装场)和卸岩石的岩石漏、岩场等,每个卸点都有各自的产量要求。

从保护国家资源的角度及矿山的经济效益考虑,应该尽量把矿石按矿石卸点需要的铁含量(假设要求都为%

1%,称为品位限制)搭配起来送到卸点,搭配的量在一个班次(8小时)内满足品位限制即可。

从长远看,卸点可以移动,但一个班次内不变。

卡车的平均卸车时间为3分钟。

所用卡车载重量为154吨,平均时速28

卡车的耗油量很大,每个班次每台车消耗近1吨柴油。

发动机点火时需要消耗相当多的电瓶能量,故一个班次中只在开始工作时点火一次。

卡车在等待时所耗费的能量也是相当可观的,原则上在安排时不应发生卡车等待的情况。

电铲和卸点都不能同时为两辆及两辆以上卡车服务。

卡车每次都是满载运输。

每个铲位到每个卸点的道路都是专用的宽60

的双向车道,不会出现堵车现象,每段道路的里程都是已知的。

一个班次的生产计划应该包含以下内容:

出动几台电铲,分别在哪些铲位上;

出动几辆卡车,分别在哪些路线上各运输多少次(因为随机因素影响,装卸时间与运输时间都不精确,所以排时计划无效,只求出各条路线上的卡车数及安排即可)。

一个合格的计划要在卡车不等待条件下满足产量和质量(品位)要求,而一个好的计划还应该考虑下面两条原则之一:

1.总运量(吨公里)最小,同时出动最少的卡车,从而运输成本最小;

2.利用现有车辆运输,获得最大的产量(岩石产量优先;

在产量相同的情况下,取总运量最小的解)。

请你就两条原则分别建立数学模型,并给出一个班次生产计划的快速算法。

针对下面的实例,给出具体的生产计划、相应的总运量及岩石和矿石产量。

某露天矿有铲位10个,卸点5个,现有铲车7台,卡车20辆。

各卸点一个班次的产量要求:

矿石漏万吨、倒装场Ⅰ万吨、倒装场Ⅱ万吨、岩石漏万吨、岩场万吨。

铲位和卸点位置二维示意图如下,各铲位和各卸点之间的距离(公里)如下表:

铲位1

铲位2

铲位3

铲位4

铲位5

铲位6

铲位7

铲位8

铲位9

铲位10

矿石漏

倒装场Ⅰ

岩场

岩石漏

倒装场Ⅱ

各铲位矿石、岩石数量(万吨)和矿石的平均铁含量如下表:

矿石量

0.95

1.05

1.00

1.10

1.25

1.30

1.35

岩石量

1.15

铁含量

30%

28%

29%

32%

31%

33%

titleCUMCM-2003B-01;

cai/1..10/:

crate,cnum,cy,ck,flag;

xie/1..5/:

xsubject,xnum;

link(xie,cai):

distance,lsubject,number,che,b;

crate=30282932313332313331;

xsubject=;

distance=

;

cy=;

ck=;

min=@sum(cai(i):

@sum(xie(j):

number(j,i)*154*distance(j,i)));

max=@sum(link(i,j):

number(i,j));

max=xnum(3)+xnum(4)+xnum

(1)+xnum

(2)+xnum(5);

number(j,i)*154*distance(j,i)));

xnum

(1)+xnum

(2)+xnum(5)=340;

xnum

(1)+xnum

(2)+xnum(5)=341;

xnum(3)=160;

xnum(4)=160;

卡车每一条路线上最多可以运行的次数;

@for(link(i,j):

b(i,j)=@floor((8*60-(@floor((distance(i,j)/28*60*2+3+5)/5)-1)*5)/(distance(i,j)/28*60*2+3+5)));

b(i,j)=@floor(8*60/(distance(i,j)/28*60*2+3+5)));

t(i,j)=@floor((distance(i,j)/28*60*2+3+5)/5);

b(i,j)=@floor((8*60-(@floor((distance(i,j)/28*60*2+3+5)/5))*5)/(distance(i,j)/28*60*2+3+5)));

每一条路线上的最大总车次的计算;

@for(link(i,j):

lsubject(i,j)=(@floor((distance(i,j)/28*60*2+3+5)/5))*b(i,j));

计算各个铲位的总产量;

@for(cai(j):

cnum(j)=@sum(xie(i):

number(i,j)));

计算各个卸点的总产量;

@for(xie(i):

xnum(i)=@sum(cai(j):

道路能力约束;

number(i,j)<

=lsubject(i,j));

电铲能力约束;

@for(cai(j):

cnum(j)<

=flag(j)*8*60/5);

电铲数量约束----addedbyXieJinxing,2003-09-07;

@sum(cai(j):

flag(j))<

=7;

卸点能力约束;

@for(xie(i):

xnum(i)<

=8*20);

铲位产量约束;

@for(cai(i):

number(1,i)+number(2,i)+number(5,i)<

=ck(i)*10000/154);

number(3,i)+number(4,i)<

=cy(i)*10000/154);

产量任务约束;

xnum(i)>

=xsubject(i)*10000/154);

铁含量约束;

@sum(cai(j):

number(1,j)*(crate(j))<

=0;

number(2,j)*(crate(j))<

number(5,j)*(crate(j))<

number(1,j)*(crate(j))>

number(2,j)*(crate(j))>

number(5,j)*(crate(j))>

关于车辆的具体分配;

che(i,j)=number(i,j)/b(i,j));

各个路线所需卡车数简单加和;

hehe=@sum(link(i,j):

che(i,j));

整数约束;

@gin(number(i,j)));

@for(cai(j):

@bin(flag(j)));

车辆能力约束;

hehe<

=20

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2