《生产与服务管理中的优化问题一.ppt》由会员分享,可在线阅读,更多相关《生产与服务管理中的优化问题一.ppt(47页珍藏版)》请在三一办公上搜索。
1、2023/10/2,第5讲:生产与服务管理中的优化问题(一),0-1规划问题补充生产与销售计划问题有瓶颈设备的多级生产计划问题 疏散问题,0-1变量作为逻辑变量(Logical variable),常常被用来处理“选择问题”。如:假定现有的m种资源对可供选择的n个项目进行投资,每个项目可获取的利润为cj元,则求利润最大的数学模型为求一组决策变量x1,x2,xn,使,其中,cj表示投资第j项目获得的期望收益(价值系数),aij表示第i种资源投于第j项目的数量,bi表示第i种资源的限量。,一 0-1整数规划问题补充,1)如果在可供选择的k(kn)个项目中,必须且只需选择一项,则在(2)中加入新的约
2、束条件,2)如果可供选择的k(kn)个项目相互排斥的,则在(2)中加入新的约束条件,3)如果可供选择的k(kn)个项目中,至少应选择一项投资,则在(2)中加入新的约束条件,4)如果项目j的投资必须以项目i的投资为前提,则可在(2)中加入新的约束,5)如果项目i与项目j要么同时被选中,要么同时不被选中,则在(2)中加入新的约束,6)如果对第r种资源与第t种资源的投资的是相互排斥的,即只能对资源br与bt中的一种进行投资,则可将(2)的第r个和第t个约束条件改写为,其中y为新引入的01变量,M为充分大的正数。,7)若在m个约束中只有k个起作用,则(2)改为,其中yi为01变量,M为充分大的正数。,
3、则,(2)表示为:,8)约束条件的右端项可能是r个值(b1,b2,br)中的某一个,即,9)两组条件中满足其中一组,若x14,则x21;否则(即x14时),x23.,定义yi为01变量,M为充分大的正数,则问题可表述为,10)可以用以表示含固定费用的函数,如若用xj代表产品j的生产数量,其生产费用函数通常可表为:,其中Kj是同产量无关的生产准备费用。问题的目标是使所有产品的总生产费用为最小.即,同样,定义yj为01变量,当xj=0时,yj=0;当xj0,yj=1.,因此,引进一个特殊的约束条件:,所以线性规划模型为,由(7)看出当xj=0时,为使z极小化,应有yj=0,2023/10/2,例1
4、 试用0-1变量对下列各题分别表示成一般线形约束条件:(1)X1+X22或2X1+3X28;(2)变量X3只能取0,5,9,12;(3)若X24,则X50,否则X53;(4)以下四个约束条件中至少满足2个,2023/10/2,解:,2023/10/2,例2 将以下问题表示为混合整数规划模型,2023/10/2,2023/10/2,解 目标函数为:,约束条件:,例3 应用 0-1 变量解决含互斥约束条件问题设:工序 B 有两种方式完成 方式(1)的工时约束为 0.3X1+0.5X2 150 方式(2)的工时约束为 0.2X1+0.4X2 120 问题是完成工序 B 只能从两种方式中任选一种,如何
5、将这两个互斥的约束条件统一在一个线性规划模型中呢?,引入 0-1 变量,于是前面两个互斥的约束条件可以统一为如下三个约束条件:0.3X1+0.5X2 150+M1y1 0.2X1+0.4X2 120+M2y2 y1+y2=1 其中 M1,M2 都是足够大的正数。,2023/10/2,例4 某公司用两种原油(A和B)混合加工成两种汽油(甲和乙)。甲、乙两种汽油含原油A的最低比例分别为50%和60%,每吨售价分别为4800元和5600元。该公司现有原油A和B的库存量分别为500吨和1000吨,还可以从市场上买到不超过1500吨的原油A。原油A的市场价为:购买量不超过500吨时的单价为10000元/
6、吨;购买量超过500吨但不超过1000吨时,超过500吨的部分8000元/吨;购买量超过1000吨时,超过1000吨的部分6000元/吨。该公司应如何安排原油的采购和加工。,二 生产与销售计划问题,2023/10/2,2.1问题分析 安排原油采购、加工的目标是利润最大,题目中给出的是两种汽油的售价和原油A的采购价,利润为销售汽油的收入与购买原油A的支出之差。这里的难点在于原油A的采购价与购买量的关系比较复杂,是分段函数关系,能否及如何用线性规划、整数规划模型加以处理是关键所在。,2023/10/2,模型建立设原油A的购买量为x(吨),根据题目所给数据,采购的支出c(x)可表为如下的分段线性函数
7、(以下价格以千元/吨为单位):,(1),设原油A用于生产甲、乙两种汽油的数量分别为x11和x12(吨),原油B用于生产甲、乙两种汽油的数量分别为x21和x22(吨),则总的收入为4.8(x11+x21)+5.6(x12+x22)(千元)。于是本例的目标函数(利润)为,(2),2023/10/2,约束条件包括加工两种汽油用的原油A、原油B库存量的限制,和原油A购买量的限制,以及两种汽油含原油A的比例限制,它们表示为,(3),(4),(5),(6),(7),(8),由于(1)式中的c(x)不是线性函数,(1)(8)给出的是一个非线性规划。而且,对于这样用分段函数定义的c(x),一般的非线性规划软件
8、也难以输入和求解。能不能想办法将该模型化简,从而用现成的软件求解呢?,2023/10/2,2.2 求解模型,将原油A的采购量x分解为三个量,即用x1,x2,x3分别表示以价格10、8、6千元/吨采购的原油A的吨数,总支出为c(x)=10 x1+8x2+6x3,且,(9),这时目标函数(2)变为线性函数:,(10),应该注意到,只有当以10千元/吨的价格购买x1=500(吨)时,才能以8千元/吨的价格购买x2(0),这个条件可以表示为,(11),2023/10/2,同理,只有当以8千元/吨的价格购买x2=500(吨)时,才能以6千元/吨的价格购买x3(0),于是,(12),此外,x1,x2,x3
9、的取值范围是,(13),2023/10/2,由于有非线性约束(11),(12),(3)(13)构成非线性规划模型。LINGO程序:,2023/10/2,将文件存储并命名为exam0501a.lg4,执行菜单命令“LINGO|Solve”,运行该程序得到:,2023/10/2,最优解:用库存的500吨原油A、500吨原油B生产1000吨汽油甲,不购买新的原油A,利润为4800(千元),但是此时LINGO得到的结果只是一个局部最优解,可以用菜单命令“LINGO|Options”在“Global Solver”选项卡上启动全局优化(Use Global Solver)选项,然后重新执行菜单命令“LI
10、NGO|Solve”,得到:,2023/10/2,此时LINGO得到的结果是一个全局最优解(Global optimal solution):购买1000吨原油A,与库存的500吨原油A和1000吨原油B一起,共生产2500吨汽油乙,利润为5000(千元),高于刚刚得到的局部最优解对应的利润4800(千元)。,2023/10/2,在给定的外部需求和生产能力等限制条件下,按照生产总费用最小编制未来若干个生产周期的最优生产计划,这种问题在文献上一般称为批量问题(Lotsizing Problems)。我们通过下面的具体例子来说明这种多级生产计划问题的优化模型。这里“多级”的意思是需要考虑产品是通过
11、多个生产阶段(工艺过程)生产出来的。,三 有瓶颈设备的多级生产计划问题,2023/10/2,例5 某工厂的主要任务是通过组装生产产品A,用于满足外部市场需求。,A产品的产品构成与组装过程见图5-2:即D、E、F、G是从外部采购的零件,先将零件D、E组装成部件B,零件F、G组装成部件C,然后将部件B、C组装成产品A出售。,图中弧上的数字表示的是组装时部件(或产品)中包含的零件(或部件)的数量(可以称为消耗系数),例如DB弧上的数字“9”表示组装1个部件B需要用到9个零件D;BA弧上的数字“5”表示组装1件产品A需要用到5个部件B;,依此类推。,2023/10/2,图5-2 产品构成与组装过程图,
12、2023/10/2,表5-1 生产计划的原始数据,2023/10/2,假设该工厂每次生产计划的计划期为6周(即每次制定未来6周的生产计划),只有最终产品A有外部需求,目前收到的订单的需求件数按周的分布如表5-1第2行所示。部件B、C是在该工厂最关键的设备(可以称为瓶颈设备)上组装出来的,瓶颈设备的生产能力非常紧张,具体可供能力如表5-1第3行所示(第2周设备检修,不能使用)。B、C的能力消耗系数分别为5和8,即生产1件B需要占用5个单位的能力,即生产1件C需要占用8个单位的能力。,对于每种零部件或产品,如果工厂在某一周订购或者生产该零部件或产品,工厂需要付出一个与订购或生产数量无关的固定成本(
13、称为生产准备费用);如果某一周结束时该零部件或产品有库存存在,则工厂必须付出一定的库存费用(与库存数量成正比)。这些数据在表5-1第5、6行给出。,2023/10/2,按照工厂的信誉要求,目前接收的所有订单到期必须全部交货,不能有缺货发生;此外,不妨简单地假设目前该企业没有任何零部件或产品库存,也不希望第6周结束后留下没有任何零部件或产品库存。最后,假设不考虑生产提前期,即假设当周采购的零件马上就可用于组装,组装出来的部件也可以马上用于当周组装成品A。在上述假设和所给数据下,如何制定未来6周的生产计划?,2023/10/2,3.1 问题分析 这个例子考虑的是在有限的计划期内,给定产品结构、生产
14、能力和相关费用及零部件或成品(以下统称为生产项目)在离散的时间段上(这里是周,也可以是天、月等)的外部需求之后,确定每一生产项目在每一时间段上的生产量(即批量),使总费用最小.由于每一生产项目在每一时间段上生产时必须经过生产准备(Setup),所以通常的讨论中总费用至少应考虑生产准备费用和库存费用.其实,如果是现实问题,应该还有生产的直接成本(如原材料成本、人力成本、电力成本等)等费用。由已知条件可知,计划期初和末期库存都是0,所以6个周期内A的总产量等于总销量。从而可以考虑本题直接成本为一个常数。,2023/10/2,3.2 符号说明为了建立这类问题的一般模型,我们定义如下数学符号:N-生产
15、产品(部件)总数(本例中N=7);T-计划期长度(本例中T=6);M-一个充分大的正数,在模型中起到使模型线性化的作用;,-第t周生产产品i的数量;t=1,T,;i=1,N.,-生产(组装)一个产品j需要产品i的个数;,i,j=1,N.,2023/10/2,-产品j在第t周的外部需求量;(只有A有),-产品j在第t周末的库存量,,-产品i在t周是否生产的标志(0:不生产,1:生产);,S(i)-产品结构中项目i的直接后继项目集合;,-产品i在t时段生产时的生产准备费用;,-产品i在t时段的单件库存费用;,-资源在t时段的能力上限;,-产品i在t时段生产时,生产单个产品占用 的能力上限;,202
16、3/10/2,其余均为已知的计划参数。,目标函数,3.3 模型的建立,这个问题的目标是使生产准备费用和库存费用的总和最小。因此,目标函数应该是每个项目在每个时段上的生产准备费用和库存费用的总和,即,(0),2023/10/2,约束条件,这个问题中的约束有这么几类:每个项目的物流应该守恒、资源能力限制应该满足、每时段生产某项目前必须经过生产准备和非负约束(对Yi,j是0-1约束)。,所谓物流守恒(假设Ii,0=0),(1),资源能力限制比较容易理解,即,(2),2023/10/2,(3),每时段生产某项目前必须经过生产准备,也就是说当Xit=0时Yit=0;Xit0时Yit=1。这本来是一个非线
17、性约束,但是通过引入参数M(很大的正数,表示每个项目每个时段的最大产量)可以化成线性约束,即:,总结:这个问题的优化模型就是在约束(1)(2)(3)下使目标函数(0)达到最小。,2023/10/2,3.4 求解模型,本例生产项目总数N=7(A、B、C、D、E、F、G),计划期长度T=6(周),只有A有外部需求,所以di,t中只有d1,t可以取非零需求,即表5-1中的第2行的数据,其他全部为零。参数si,t、hi,t只与项目i有关,而不随时段t变化,所以可以略去下标t,其数值就是表5-1中的最后两行数据。,aI,t只与项目i有关,而不随时段t变化,所以可以同时略去下标t,即a2=5,a3=8(其
18、他ai为0)。从图6-2中容易得到项目i的直接后继项目集合S(i)和消耗系数。,2023/10/2,由于本例中,A的外部总需求为240,所以任何项目的产量不会超过24071525000(从图6-2可以知道,这里715已经是每件产品A对任意一个项目的最大的消耗系数了),所以取M=25000就已经足够了。本例中的具体模型可以如下输入LINGO软件:,得到其数学模型为,2023/10/2,另解:准备以下的数据文件(文本文件exam0502.LDT,可以看到其中也可以含有注释语句):,具体模型可以如下输入LINGO软件:,LINDO求解:得到最优目标函数值为9245,结果如下:,表5-2 生产计划的最
19、后结果,2023/10/2,四 疏散问题,例6 甲市一家大公司由五个部门(A,B,C,D,E)组成,现要将它的几个部门迁出甲市,迁至乙或丙市(假设每个部门允许接收的部门不超过3个).除政府鼓励外,还有用房便宜、招工方便等好处.其好处的数量估计如下表,疏散后部门间每年增加的通讯量如下,2023/10/2,不同城市间单位通讯量的费用如表,求各个部门应置于何市,使年费用最少?,解:这是个二次指派问题,可将它化为线性0-1规划问题来求 1.变量假设,2023/10/2,令,:第i个部门迁往第j个城市的好处,:为第i个部门与第k个部门每年增加的通讯量,,:第j个城市与第l个城市每次通讯的费用,,2.模型的建立(1)约束条件:1每个部门要么原地不动,要么迁往某一个城市,2每个城市允许接收的部门不超过三个(包括甲),上述两个条件等价于,2023/10/2,(2)目标函数:,即搬迁带来的好处减去搬迁带来的花费的最大值.,2023/10/2,得到其数学模型为,2023/10/2,2023/10/2,直观解释:将部门A和D迁往乙市,将部门B,C,E迁往丙市,可获利14.9万元,运行得最优解,2023/10/2,Thats all Thank you!,