优化建模与LINGO第05章.ppt
《优化建模与LINGO第05章.ppt》由会员分享,可在线阅读,更多相关《优化建模与LINGO第05章.ppt(160页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 优化建模优化建模生产与服务运作管理中的优化问题生产与服务运作管理中的优化问题优化建模与优化建模与LINDO/LINGOLINDO/LINGO软件软件第第5 5章章 优化建模优化建模内容提要内容提要5.1 5.1 生产与销售计划问题生产与销售计划问题5.2 5.2 有瓶颈设备的多级生产计划问题有瓶颈设备的多级生产计划问题5.3 5.3 下料问题下料问题5.4 5.4 面试顺序与消防车调度问题面试顺序与消防车调度问题5.5 5.5 飞机定位和飞行计划问题飞机定位和飞行计划问题 优化建模优化建模5.1 生产与销售计划问题生产与销售计划问题 优化建模优化建模问题实例问题实例例例5.15.1某公司用两
2、种原油(某公司用两种原油(A A和和B B)混合加工成两种)混合加工成两种汽油(甲和乙)。甲、乙两种汽油含原油汽油(甲和乙)。甲、乙两种汽油含原油A A的最低的最低比例分别为比例分别为50%50%和和60%60%,每吨售价分别为,每吨售价分别为48004800元和元和56005600元。该公司现有原油元。该公司现有原油A A和和B B的库存量分别为的库存量分别为500500吨和吨和10001000吨,还可以从市场上买到不超过吨,还可以从市场上买到不超过15001500吨吨的原油的原油A A。原油。原油A A的市场价为:购买量不超过的市场价为:购买量不超过500500吨吨时的单价为时的单价为10
3、00010000元元/吨;购买量超过吨;购买量超过500500吨但不超吨但不超过过10001000吨时,超过吨时,超过500500吨的部分吨的部分80008000元元/吨;购买吨;购买量超过量超过10001000吨时,超过吨时,超过10001000吨的部分吨的部分60006000元元/吨。吨。该公司应如何安排原油的采购和加工。该公司应如何安排原油的采购和加工。优化建模优化建模5.1.25.1.2建立模型建立模型问题分析问题分析 安排原油采购、加工的目标是利润最大,题目中给安排原油采购、加工的目标是利润最大,题目中给出的是两种汽油的售价和原油出的是两种汽油的售价和原油A A的采购价,利润为的采购
4、价,利润为销售汽油的收入与购买原油销售汽油的收入与购买原油A A的支出之差。这里的的支出之差。这里的难点在于原油难点在于原油A A的采购价与购买量的关系比较复杂,的采购价与购买量的关系比较复杂,是分段函数关系,能否及如何用线性规划、整数规是分段函数关系,能否及如何用线性规划、整数规划模型加以处理是关键所在。划模型加以处理是关键所在。优化建模优化建模模型建立设原油模型建立设原油A A的购买量为的购买量为x x(吨),根据题目所给数据,(吨),根据题目所给数据,采购的支出采购的支出c(x)c(x)可表为如下的分段线性函数(以下价格以可表为如下的分段线性函数(以下价格以千元千元/吨为单位):吨为单位
5、):(1)(1)设原油设原油A A用于生产甲、乙两种汽油的数量分别为用于生产甲、乙两种汽油的数量分别为x x1111和和x x1212(吨),(吨),原油原油B B用于生产甲、乙两种汽油的数量分别为用于生产甲、乙两种汽油的数量分别为x x2121和和x x2222(吨),(吨),则总的收入为则总的收入为4.8(4.8(x x1111+x x2121)+5.6()+5.6(x x1212+x x2222)(千元)。(千元)。于是本例的目标函数(利润)为于是本例的目标函数(利润)为(2)(2)优化建模优化建模约束条件包括加工两种汽油用的原油约束条件包括加工两种汽油用的原油A A、原油、原油B B库
6、存量的限制,库存量的限制,和原油和原油A A购买量的限制,以及两种汽油含原油购买量的限制,以及两种汽油含原油A A的比例限制,的比例限制,它们表示为它们表示为(3)(4)(5)(6)(7)(8)由于(由于(1 1)式中的)式中的c c(x x)不是线性函数,(不是线性函数,(1 1)(8 8)给出的是)给出的是一个非线性规划。而且,对于这样用分段函数定义的一个非线性规划。而且,对于这样用分段函数定义的c c(x x),一般的非线性规划软件也难以输入和求解。能不能想办法一般的非线性规划软件也难以输入和求解。能不能想办法将该模型化简,从而用现成的软件求解呢?将该模型化简,从而用现成的软件求解呢?优
7、化建模优化建模5.1.3 求解模型 3 3种解法种解法第第1种解法种解法 将原油将原油A的采购量的采购量x分解为三个量,即用分解为三个量,即用x1,x2,x3分别表示以价格分别表示以价格10、8、6千元千元/吨采购的原油吨采购的原油A的吨的吨数,总支出为数,总支出为c(x)=10 x1+8x2+6x3,且,且(9)这时目标函数(这时目标函数(2)变为线性函数:)变为线性函数:(10)应该注意到,只有当以应该注意到,只有当以10千元千元/吨的价格购买吨的价格购买x1=500(吨)时,才能以(吨)时,才能以8千元千元/吨的价格购买吨的价格购买x2(0),这个条件可以表示为),这个条件可以表示为(1
8、1)优化建模优化建模同理,只有当以同理,只有当以8 8千元千元/吨的价格购买吨的价格购买x x2 2=500=500(吨)时,(吨)时,才能以才能以6 6千元千元/吨的价格购买吨的价格购买x x3 3(00),于是),于是(12)(12)此外,此外,x x1 1,x x2 2,x x3 3的取值范围是的取值范围是(13)(13)优化建模优化建模由于有非线性约束由于有非线性约束(11),(12)(11),(12),(3)(13)(3)(13)构成非线性构成非线性规划模型。规划模型。LINGOLINGO程序:程序:Model:Max=4.8*x11+4.8*x21+5.6*x12+5.6*x22-
9、10*x1-8*x2-6*x3;x11+x12 x+500;x21+x22 0;0.4*x12-0.6*x22 0;x=x1+x2+x3;(x1-500)*x2=0;(x2-500)*x3=0;bnd(0,x1,500);bnd(0,x2,500);bnd(0,x3,500);end 优化建模优化建模 将文件存储并命名为将文件存储并命名为exam0501a.lg4exam0501a.lg4,执行菜单命令执行菜单命令“LINGO|Solve”“LINGO|Solve”,运行该程序得到:,运行该程序得到:Local optimal solution found.Objective value:48
10、00.000 Total solver iterations:26 Variable Value Reduced Cost X11 500.0000 0.000000 X21 500.0000 0.000000 X12 0.000000 0.000000 X22 0.000000 0.000000 X1 0.000000 0.000000 X2 0.000000 0.000000 X3 0.000000 0.000000 X 0.000000 0.000000 优化建模优化建模最优解最优解:用库存的用库存的500500吨原油吨原油A A、500500吨原油吨原油B B生产生产10001000吨
11、汽油甲,不购买新的原油吨汽油甲,不购买新的原油A A,利润为,利润为48004800(千元)(千元)但是此时但是此时LINGOLINGO得到的结果只是一个得到的结果只是一个局部最优解局部最优解可以用菜单命令可以用菜单命令“LINGO|Options”“LINGO|Options”在在“Global“Global Solver”Solver”选项卡上启动全局优化(选项卡上启动全局优化(Use Global Use Global SolverSolver)选项,然后重新执行菜单命令)选项,然后重新执行菜单命令“LINGO|Solve”,“LINGO|Solve”,得到:得到:Global opti
12、mal solution found.Global optimal solution found.Objective value:5000.002 Objective value:5000.002 Extended solver steps:3 Extended solver steps:3 Total solver iterations:187 Total solver iterations:187 优化建模优化建模Variable Value Reduced CostX11 0.000000 0.000000X21 0.000000 0.000000X12 1500.000 0.00000
13、0X22 1000.000 0.000000X1 500.0000 0.000000X2 499.9990 0.000000X3 0.9536707E-03 0.000000X 1000.000 0.000000此时此时LINGOLINGO得到的结果是一个得到的结果是一个全局最优解全局最优解(Global optimal solutionGlobal optimal solution):购买):购买10001000吨原油吨原油A A,与库存的,与库存的500500吨原油吨原油A A和和10001000吨原油吨原油B B一起,共生产一起,共生产25002500吨汽油乙,利润为吨汽油乙,利润为50
14、005000(千元),高于刚刚得(千元),高于刚刚得到的局部最优解对应的利润到的局部最优解对应的利润48004800(千元)。(千元)。优化建模优化建模第第2 2种解法种解法:引入引入0-10-1变量将(变量将(1111)和()和(1212)转化为线性约束)转化为线性约束令令y1=1,y2=1,y3=1分别表示以分别表示以10千元千元/吨、吨、8千元千元/吨、吨、6千元千元/吨的价格采购原油吨的价格采购原油A,则约束(,则约束(11)和(和(12)可以替换为)可以替换为(14)(15)(16)y1,y2,y3=0或或1(17)优化建模优化建模(3 3)(1010),(),(1313)(1717
15、)构成混合整数线性)构成混合整数线性规划模型,将它输入规划模型,将它输入LINDOLINDO软件:软件:优化建模优化建模Max 4.8x11+4.8x21+5.6x12+5.6x22-10 x1-8x2-6x3stx-x1-x2-x3=0 x11+x12-x500 x21+x220 0.4x12-0.6x220 x1-500y10 x2-500y20 x3-500y30 x2-500y30 endint y1int y2int y3 优化建模优化建模运行该程序得到:OBJECTIVE FUNCTION VALUE 1)5000.000 VARIABLE VALUE REDUCED COST Y
16、1 1.000000 0.000000 Y2 1.000000 2200.000000 Y3 1.000000 1200.000000 X11 0.000000 0.800000 X21 0.000000 0.800000 X12 1500.000000 0.000000 X22 1000.000000 0.000000 X1 500.000000 0.000000 X2 500.000000 0.000000 X3 0.000000 0.400000 X 1000.000000 0.000000这个结果与前面非线性规划模型用全局优化得到的结果相同。这个结果与前面非线性规划模型用全局优化得到的
17、结果相同。优化建模优化建模第第3 3种解法种解法 直接处理分段线性函数c(x)。(1)式表示的函数c(x)如图5-1。c(x)x1200090005000050010001500图图5-1 分段线性函数分段线性函数c(x)图形图形 优化建模优化建模记x轴上的分点为b1=0,b2=500,b3=1000,b4=1500。当x在第1个小区间 b1,b2时,记x=z1b1+z2b2,z1+z2=1,z1,z20,因为c(x)在b1,b2是线性的,所以c(x)=z1c(b1)+z2c(b2)。同样,当x在第2个小区间 b2,b3时,x=z2b2+z3b3,z2+z3=1,z2,z30,c(x)=z2c
18、(b2)+z3c(b3)。当x在第3个小区间 b3,b4时,x=z3b3+z4b4,z3+z4=1,z3,z40,c(x)=z3c(b3)+z4c(b4)。为了表示x在哪个小区间,引入0-1变量yk(k=1,2,3),当x在第k个小区间时,yk=1,否则,yk=0。这样,z1,z2,z3,z4,y1,y2,y3应满足(18)(19)(20)优化建模优化建模此时x和c(x)可以统一地表示为(2)(10),(18)(22)也构成一个混合整数线性规划模型,可以用LINDO求解。不过,我们还是将它输入LINGO软件,因为其扩展性更好(即当分段函数的分段数更多时,只需要对下面程序作很小的改动)。输入的L
19、INGO模型如下:(22)优化建模优化建模输入的LINGO模型如下:Model:SETS:Points/1.4/:b,c,y,z;!端点数为4,即分段数为3;ENDSETSDATA:b=0 500 1000 1500;c=0 5000 9000 12000;y=,0;!增加的虚拟变量y(4)=0;ENDDATA 优化建模优化建模Max=4.8*x11+4.8*x21+5.6*x12+5.6*x22-sum(Points:c*z);x11+x12 x+500;x21+x22 0;0.4*x12-0.6*x22 0;sum(Points:b*z)=x;for(Points(i)|i#eq#1:z(
20、i)=y(i);for(Points(i)|i#ne#1:z(i)0时取值时取值1,否则取值否则取值0.在上述数学符号中,只有在上述数学符号中,只有为为决策决策变变量量;其余均其余均为为已知的已知的计计划参数。划参数。优化建模优化建模 优化建模优化建模目标函数目标函数 这个问题的目标是使生产准备费用和库存费用这个问题的目标是使生产准备费用和库存费用的总和最小。因此,目标函数应该是每个项的总和最小。因此,目标函数应该是每个项目在每个时段上的生产准备费用和库存费用目在每个时段上的生产准备费用和库存费用的总和,即的总和,即(28)约束条件约束条件这个问题中的约束有这么几类:每个项目的物流这个问题中的
21、约束有这么几类:每个项目的物流应该守恒、资源能力限制应该满足、每时段生应该守恒、资源能力限制应该满足、每时段生产某项目前必须经过生产准备和非负约束产某项目前必须经过生产准备和非负约束(对(对Yi,j是是0-1约束)。约束)。优化建模优化建模(29)资源能力限制比较容易理解,即资源能力限制比较容易理解,即(30)所谓物流守恒(假设所谓物流守恒(假设Ii,0=0)优化建模优化建模(31)每时段生产某项目前必须经过生产准备,也就是说当每时段生产某项目前必须经过生产准备,也就是说当Xit=0时时Yit=0;Xit0时时Yit=1。这本来是一个非线性约束,但是。这本来是一个非线性约束,但是通过引入参数通
22、过引入参数M(很大的正数,表示每个项目每个时段(很大的正数,表示每个项目每个时段的最大产量)可以化成线性约束,即:的最大产量)可以化成线性约束,即:总结总结:这个问题的优化模型就是在约束这个问题的优化模型就是在约束(2929)()(3030)()(3131)下使目标函数()下使目标函数(2828)达到最)达到最小。小。优化建模优化建模5.2.3 5.2.3 求解模型求解模型本例生产项目总数本例生产项目总数N=7(A、B、C、D、E、F、G),计,计划期长度划期长度T=6(周),瓶颈资源种类数(周),瓶颈资源种类数K=1。只有。只有A有外部需求,所以有外部需求,所以di,t中只有中只有d1,t可
23、以取非零需求,即可以取非零需求,即表表5-1中的第中的第2行的数据,其他全部为零。行的数据,其他全部为零。参数参数si,t、hi,t只与项目只与项目i有关,而不随时段有关,而不随时段t变化,所以可以略去变化,所以可以略去下标下标t,其数值就是表,其数值就是表5-1中的最后两行数据。中的最后两行数据。由于只有一种资源,参数由于只有一种资源,参数Ck,t可以略去下标可以略去下标k,其数值,其数值就是表就是表5-1中的第中的第3行的数据;而行的数据;而ak,I,t只与项目只与项目i有关,有关,而不随时段而不随时段t变化,所以可以同时略去下标变化,所以可以同时略去下标k和和t,即,即a2=5,a3=8
24、(其他(其他ai为为0)。从图)。从图6-2中容易得到项中容易得到项目目i的直接后继项目集合的直接后继项目集合S(i)和消耗系数。和消耗系数。优化建模优化建模准备以下的数据文件(文本文件准备以下的数据文件(文本文件exam0502.LDT,可,可以看到其中也可以含有注释语句):以看到其中也可以含有注释语句):!项目集合;ABCDEFG!计划期集合;123456!需求;400100090100 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0 优化建模优化建模!能力;1000005000 5000 1000 1000
25、!生产准备费;4005001000 300200400100!库存费;120.61.00.04 0.03 0.04 0.04!对能力的消耗系数;0580000 优化建模优化建模!项目间的消耗系数:req(i,j)表示j用到多少i;0 0 0 0 0 0 05 0 0 0 0 0 07 0 0 0 0 0 00 9 0 0 0 0 00 11 0 0 0 0 00 0 13 0 0 0 00 0 15 0 0 0 0!数据结束;优化建模优化建模对本例,对本例,A的外部总需求为的外部总需求为240,所以任何项目的,所以任何项目的产量不会超过产量不会超过24071525000(从图(从图6-2可以可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 优化 建模 LINGO 05
限制150内