Lingo求解线性规划案例4——下料问题

凯鲁嘎吉 - 博客园

http://www.cnblogs.com/kailugaji/

造纸厂接到定单,所需卷纸的宽度和长度如表


卷纸的宽度


长度


5

7

9


10000

30000

20000

工厂生产1号(宽度10)和2号(宽度20)两种标准卷纸,其长度未加规定。现按定单要求对标准卷纸进行切割,切割后有限长度的卷纸可连接起来达到所需卷纸的长度。问如何安排切割计划以满足定单需求而使切割损失最小?

解:为了满足定单要求和使切割损失最小,我们可以使用多种切割方法来进行组合。此时,我们不但要考虑对两种标准卷纸的宽度如何进行切割,而且还要确定按某一种方式切割时标准卷纸所耗用的长度。

例如,可以把宽10的1号标准卷纸切割成宽5的卷纸2卷,根据定单要求,此时需1号标准卷纸5000单位长度,与此同时,把宽度20的2号标准卷纸切割成宽度7和宽度9的卷纸各1卷,此时为满足定单要求,需2号标准卷纸30000单位长度。按此切割方案,宽度9的卷纸多生产10000单位长度,因此,切割损失的面积为(20-7-9) ×30000+9×10000。

设xij为第i号标准卷纸按第j种方式切割时所耗用的长度。

各种可能的切割方式及切割损失宽度由下表给出(每种方式所产生的切割损失宽度应小于5)。

                                            

按这9种切割方式,宽度9的卷纸所得长度为

    x13+x23+x25+2x26。

令  xl=x13+x23+x25+2x26-20000,则宽度9、长度x1的卷纸再可切割成宽度5(切割损失宽度4)或宽度7(切割损失宽度2)的卷纸设它们的长度分别为x2及x3

现在切割所得宽度7的卷纸其长度为

    x12+x22+2x24+x25+x3

令    x4=x12+x22+2x24+x25+x3-30000,则宽度7、长度x4的卷纸又可切割成宽度5的卷纸(切割损失宽度2)。

在上述切割方式组合的条件下,宽度5的卷纸其所得长度为

    2xll+4x21+2x22+2x23+x24+x2+x4

令    x5=2x11+4x21+2x22+2x23+x24+x2+x4-10000

我们应注意到,4x2,2x3,2x4,5x5都为卷纸的切割损失面积。从而,总的切割损失面积

    f=3x12+x13+3x22+x23+x24+4x25+2x26+4x2+2x3+2x4+5x5

于是,我们得本问题的线性规划模型:

    minf=3x12+x13+3x22+x23+x24+4x25+2x26+4x2+2x3+2x4+5x5

 s.t. 2x11+4x21+2x22+2x23+x24+x2+x4- x5=10000

             x12+x22+2x24+x25+x3- x4=30000

             x13+x23+x25+2x26- x1=20000

            x2+x3=x1,

            xlj≥0,  j=1,2,3

            x2j≥0,  j=1,…,6

            xj≥0,  j=1,…,5

Lingo程序:

min=3*x12+x13+3*x22+x23+x24+4*x25+2*x26+2*x3+5*x5+4*x2+2*x4;
2*x11+4*x21+2*x22+2*x23+x24+x2+x4-x5=10000;x12+x22+2*x24+x25+x3-x4=30000;x13+x23+x25+2*x26-x1=20000;x2+x3=x1;
end

结果为:

Global optimal solution found.
  Objective value:                              60000.00
  Infeasibilities:                              0.000000
  Total solver iterations:                             1

                       Variable           Value        Reduced Cost
                            X12        0.000000            0.000000
                            X13        0.000000            0.000000
                            X22        0.000000            10.00000
                            X23        0.000000            10.00000
                            X24        10000.00            0.000000
                            X25        0.000000            0.000000
                            X26        15000.00            0.000000
                             X3        10000.00            0.000000
                             X5        0.000000            0.000000
                             X2        0.000000            10.00000
                             X4        0.000000            10.00000
                            X11        0.000000            10.00000
                            X21        0.000000            20.00000
                             X1        10000.00            0.000000

                            Row    Slack or Surplus      Dual Price
                              1        60000.00           -1.000000
                              2        0.000000            5.000000
                              3        0.000000           -3.000000
                              4        0.000000           -1.000000
                              5        0.000000            1.000000

原文地址:https://www.cnblogs.com/kailugaji/p/8215379.html

时间: 2024-10-13 00:39:40

Lingo求解线性规划案例4——下料问题的相关文章

用LINGO求解线性规划的例子

附1:用LINGO求解线性规划的例子   一奶制品加工厂用牛奶生产A1.A2两种奶制品,1桶牛奶可以在设备甲上用12小时加工成3公斤A1,或者在设备乙上用8小时加工成4公斤A2.根据市场需求,生产的A1.A2能全部售出,且每公斤A1获利24元,每公斤A2获利16元.现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间为480小时,并且设备甲每天至多能加工100公斤A1,设备乙的加工能力没有限制.试为该厂制定一个生产计划,使每天获利最大,并进一步讨论以下3个附加问题: 1)若用35元可以

Lingo求解线性规划问题

lingo是一个方便进行求解规划问题的软件,可以很快求出,写好代码后按照下图点击即可. 大致以下几种情况: !变量下界为0的简单线性规划; model: max=4*x1+3*x2; 5*x1+x2>10; x1+x2<8; x2<6; end !下界可以是任何值得简单线性规划; model: max=4*x1+3*x2; 5*x1+x2<14; x1+x2<18; x2<6; @free(x1);@free(x2); end !整数线性规划; model: max=4

用Lingo求解线性规划问题

第一步:输入目标条件和约束条件.每行以分号隔开.然后点击工具栏上的Solve按钮,或Lingo菜单下的Solve子菜单. 第二步:检查report中的结果. 默认情况下,Lingo不进行灵敏度分析. 需要在Lingo中一下配置才可以生成灵敏度分析报告:Lingo菜单>Options. General Solver选项卡>Dual Computations:Prices and Ranges. 然后点击Apply按钮. 重新点击Solve菜单和Range菜单以生成如下灵敏度分析报告(Range

单纯形法求解线性规划问题(C++实现代码)

1 单纯形法 (1) 单纯形法是解线性规划问题的一个重要方法. 其原理的基本框架为: 第一步:将LP线性规划变标准型,确定一个初始可行解(顶点). 第二步:对初始基可行解最优性判别,若最优,停止:否则转下一步. 第三步:从初始基可行解向相邻的基可行解(顶点)转换,且使目标值有所改善-目标函数值增加,重复第二和第三步直到找到最优解. (2) 用程序进行运算前,要将目标函数及约束方程变成标准形式. 于非标准形式须作如下变换: a) 目标函数为极小值min z=CX时,转换为max z=-CX形式:

钢管下料问题2(剩余材料最少)lingo求解

!钢管下料问题2(剩余材料最少) 题目: 钢管原料   每根19m 客户需求   4m   50根 5m   10根 6m   20根 8m   15根 如何下料最节省?; model : sets : H/1..3/ : x , y ; L/1..4/ : m , g ; link(H,L): r ; endsets data : m = 4 5 6 8 ; g = 50 10 20 15 ; enddata @for(H(i) : y(i) = 19 - @sum( L(j) : r(i,j

matlab学习笔记之求解线性规划问题和二次型问题

一.线性规划问题 已知目标函数和约束条件均为线性函数,求目标函数的最小值(最优值)问题. 1.求解方式:用linprog函数求解 2.linprog函数使用形式: x=linprog(f,A,b)  x=linprog(f,A,b,Aeq,beq)  x=linprog(f,A,b,Aeq,beq,lb,ub)  x=linprog(f,A,b,Aeq,beq,lb,ub,x0)  x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)   [x,fval]=linp

数学建模 TSP(旅行商问题) Lingo求解

model: sets: cities/1..9/:level; link(cities, cities): distance, x; !距离矩阵; endsets data: distance = 0 200 660 170 127 225 490 420 330 200 0 820 300 90 60 310 225 151 660 820 0 530 770 120 1110 1050 960 170 300 530 0 280 350 600 550 450 127 90 770 280

VS2013调用GLPK求解线性规划

最近做线性规划问题,要用到GLPK工具,VS2013环境下鼓捣了好久终于成功.下面一步步来展示一下环境的配置. 1.下载GLPK4.45版本 http://glpk-for-windows.soft112.com/ 然后解压. 2.用VS2013新建一个项目,命名为GLPK_TEST,源文件里建一个cpp文件命名为TESTGLPK.cpp 3.右键选择这个工程的属性,选择常规,看到右边的"附加包含目录",点击它,选择GLPK下的include文件夹路径,然后确定. 4.再找到属性下&q

Lingo 做线性规划 - Revenue Management

Reference: <An Introduction to Management Science Quantitative Approaches to Decision Making, Revised 13th Edition> Leisure Air has two Boeing 737-400 airplanes, one based in Pittsburgh and the other in Newark. Both airplanes have a coach section wi