凯鲁嘎吉 - 博客园

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

说明:

Lingo版本:

                        

  某工厂明年根据合同,每个季度末向销售公司提供产品,有关信息如下表。若当季生产的产品过多,季末有积余,则一个季度每积压一吨产品需支付存贮费O.2万元。现该厂考虑明年的最佳生产方案,使该厂在完成合同的情况下,全年的生产费用最低。试建立模型。

季度j

生产能力aj()

生产成本dj (万元/吨)

需求量bj()

    1

 

    30

 

    15O

 

    20

 

    2

 

    40

 

    14.O

 

    20

 

    3

 

    20

 

    153

 

    30

 

    4

 

    10

 

    148

 

    10

解:现在我们对本问题定义三种不同形式的决策变量从而从不同的途径来构建模型。

(1)设工厂第j季度生产产品xj吨。

首先,考虑约束条件

第一季度末工厂需交货20吨;故应有x1≥20;

第一季度末交货后积余(x1-20)吨;

第二季度末工厂需交货20吨,故应有x1-20+ x2≥20;类似地,应有x1+ x2-40+ x3≥30;

第四季度末供货后工厂不能积压产品,故应有x1+ x2+ x3-70+ x4=10;

又考虑到工厂每个季度的生产能力,故应有0≤xjaj

其次,考虑目标函数:

第一季度工厂的生产费用为15.0x1

第二季度工厂的费用包括生产费用14 x2及积压产品的存贮费0.2(x1-20);

类似地,第三季度费用为15.3x3+0.2(x1+ x2-40),

第四季度费用为14.8x4+0.2(x1+ x2+ x3-70)。

工厂一年的费用即为这四个季度费用之和。

整理后,得下列线性规划模型:

Min f  =15.6 x1+14.4 x2+15.5 x3+14.8 x4-26

s.t.x1+ x2     ≥40

        x1+ x2+ x3   ≥70

        x1+ x2+ x3+ x4=80

       20≤x1≤30

       0≤x2≤40

       0≤x3≤20

       0≤x4≤10 

Lingo程序:

min=15.6*x1+14.4*x2+15.5*x3+14.8*x4-26;
x1>=20;
x1<=30;
x1+x2>=40;
x2<=40;
x1+x2+x3>=70;
x3<=20;
x1+x2+x3+x4=80;
x4<=10;
end

结果为:

Global optimal solution found.
Objective value: 1165.000
Infeasibilities: 0.000000
Total solver iterations: 0 Variable Value Reduced Cost
X1 20.00000 0.000000
X2 40.00000 0.000000
X3 10.00000 0.000000
X4 10.00000 0.000000 Row Slack or Surplus Dual Price
1 1165.000 -1.000000
2 0.000000 -0.1000000
3 10.00000 0.000000
4 20.00000 0.000000
5 0.000000 1.100000
6 0.000000 0.000000
7 10.00000 0.000000
8 0.000000 -15.50000
9 0.000000 0.7000000

(2)设第j季度工厂生产的产品为xj吨,第j季度初存贮的产品为yj吨(显然,y1=0)。

因为每季度初的存贮量为上季度存贮量、生产量之和与上季度的需求量之差,又考虑到第四季度末存贮量为零,故有;

    x1-20=y2,    

    y2+x2-20=y3,

    y3+x3-30=y4,   

    y4+x4=10;

同时,每季度的生产量不能超过生产能力:xj≤aj;而工厂四个季度的总费用由每季的生产费用与存贮费用组成,于是得线性规划:

    minf=15.Ox1+O.2y2+14x2+O.2y3+15.3x3+O.2y4+14.8x4

    s.t.  x1-y2=20

                 y2+x2-y3=20

                 y3+x3-y4=30

                 y4+x4=10

                0≤x1≤30   0≤x2≤40

               0≤x3≤20   0≤x4≤10

               0≤yj    j=2,3,4

Lingo程序:

min=15*x1+14*x2+15.3*x3+14.8*x4+0.2*y2+0.2*y3+0.2*y4;
x1-y2=20;
x2+y2-y3=20;
y3+x3-y4=30;
y4+x4=10;
x1<30;
x2<40;
x3<20;
x4<10;
end

结果为:

Global optimal solution found.
Objective value: 1165.000
Infeasibilities: 0.000000
Total solver iterations: 0 Variable Value Reduced Cost
X1 20.00000 0.000000
X2 40.00000 0.000000
X3 10.00000 0.000000
X4 10.00000 0.000000
Y2 0.000000 0.1000000
Y3 20.00000 0.000000
Y4 0.000000 0.7000000 Row Slack or Surplus Dual Price
1 1165.000 -1.000000
2 0.000000 -15.00000
3 0.000000 -15.10000
4 0.000000 -15.30000
5 0.000000 -14.80000
6 10.00000 0.000000
7 0.000000 1.100000
8 10.00000 0.000000
9 0.000000 0.000000

(3)设第i季度生产而用于第j季度末交货的产品数量为xij吨。

根据合同要求,必须有:

x11=20,    

x12+x22=20,

x13+x23+x33=30,   

x14+x24+x34+x44=10。

又每季度生产而用于当季和以后各季交货的产品数不可能超过该季度工厂的生产能力,故应有。

  X11+x12+x13+x14≤30,

  x22+x23+x24≤40,    

  x33+x34≤20,

  x44≤10。

第i季度生产的用于第j季度交货的每吨产品的费用cij=dj+0.2(j-i),于是,有线性规划模型。

minf=15.0x11+15.2x12+15.4x13+15.6x14+14x22+14.2x23+14.4x24+15.3x33+15.5x34+14.8x44

 s.t. x11=20

       x12+x22=20

       x13+x23+x33=30

       x14+x24+x34+x44=10

       x11+x12+x13+x14≤30

       x22+x23+x24≤40

       x33+x34≤20

       x44≤10

       xij≥0,  i=1,…,4;j=1,…,4,j≥i。

Lingo程序为:

min=15*x11+15.2*x12+15.4*x13+15.6*x14+14*x22+14.2*x23+14.4*x24+15.3*x33+15.5*x34+14.8*x44;
x11=20;
x12+x22=20;
x13+x23+x33=30;
x14+x24+x34+x44=10;
x11+x12+x13+x14<30;
x22+x23+x24<40;
x33+x34<20;
x44<10;
end

结果为:

Global optimal solution found.
Objective value: 1165.000
Infeasibilities: 0.000000
Total solver iterations: 4 Variable Value Reduced Cost
X11 20.00000 0.000000
X12 0.000000 0.1000000
X13 0.000000 0.1000000
X14 0.000000 0.1000000
X22 20.00000 0.000000
X23 20.00000 0.000000
X24 0.000000 0.000000
X33 10.00000 0.000000
X34 0.000000 0.000000
X44 10.00000 0.000000 Row Slack or Surplus Dual Price
1 1165.000 -1.000000
2 0.000000 -15.00000
3 0.000000 -15.10000
4 0.000000 -15.30000
5 0.000000 -15.50000
6 10.00000 0.000000
7 0.000000 1.100000
8 10.00000 0.000000
9 0.000000 0.7000000

Lingo求解线性规划案例1——生产计划问题的更多相关文章

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

    凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 造纸厂接到定单,所需卷纸的宽度和长度如表 卷纸的宽度 长度 5 7 9 10000 30000 20000 工 ...

  2. Lingo求解线性规划案例3——混料问题

    凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/  某糖果厂用原料A.B和C按不向比率混合加工而成甲.乙.丙三种糖果(假设混合加工中不损耗原料).原料A.B.C ...

  3. Lingo求解线性规划案例2——多阶段投资问题

     凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 某公司现有资金30万元可用于投资,5年内有下列方案可供采纳:   1号方案:在年初投资1元,2年后可收回1. ...

  4. 用Lingo求解线性规划问题

    第一步:输入目标条件和约束条件.每行以分号隔开.然后点击工具栏上的Solve按钮,或Lingo菜单下的Solve子菜单. 第二步:检查report中的结果. 默认情况下,Lingo不进行灵敏度分析. ...

  5. 易普优APS应用案例:线束行业生产计划排产

    一.线束行业生产现状 (1)产品种类以及标准繁多,生产计划难协调 线束行业的生产,虽然原材料不多,但线束产品却多达几万种.一般线束企业,虽然不是每个月都生产数万种产品,但每月生产的产品品种在300种以 ...

  6. Python求解线性规划——PuLP使用教程

    简洁是智慧的灵魂,冗长是肤浅的藻饰.--莎士比亚<哈姆雷特> 1 PuLP 库的安装 如果您使用的是 Anaconda[1] 的话(事实上我也更推荐这样做),需要先激活你想要安装的虚拟环境 ...

  7. 什么是APS高级计划排程(生产计划排产)系统主要功能模块有哪些?

    什么是APS高级计划排程(生产计划排产)系统? APS高级计划排程(高级计划排产)系统主要解决“在有限产能条件下,交期产能精确预测.工序生产与物料供应最优详细计划”的问题.APS高级计划排程(高级计划 ...

  8. APS中生产计划排程模块的基本原理

    高级计划系统(APS)作为ERP和MES的补充,用于协调物流.开发瓶颈资源和保证交货日期. APS包括需求和供应计划.运输和生产计划排程等各种供应链计划模块,本文主要介绍APS中生产计划排程模块的基本 ...

  9. 为什么众多软件厂商无法提供APS高级计划排程系统?工厂目前生产计划是怎么排产的?

    一.行业现状如想了解一下目前现状,去考察一下上了ERP的企业,会发现一个有趣的现象该企业无论ERP软件搞得如何如火如荼,似乎都与生产调度人员无关. 车间里或者生产线上的生产作业计划.生产过程的调度和管 ...

随机推荐

  1. [转]Angular引入第三方库

    本文转自: https://blog.csdn.net/yuzhiqiang_1993/article/details/71215232 版权声明:本文为博主原创文章,转载请注明地址.如果文中有什么纰 ...

  2. PHP之单例模式

    之前记得有写过PHP的几种这模式.这几天看群里在问单列模式,觉得还是有必要再深入写清楚下..其实单例模式很好理解滴哦 单例模式顾名思义,就是只有一个实例,作为对象的创建模式,单例模式确保某一个类只有一 ...

  3. spring_01概念及案例

    1.什么是IOC? IOC概念:inverse of Controll,控制反转,所谓控制反转,就是把创建对象和维护对象关系的权利从程序中转移到spring的容器中(applicationContex ...

  4. 【Linux命令】ps命令

    ps命令介绍 用于报告当前系统的进程状态.可以搭配kill指令随时中断.删除不必要的程序. ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态.进程是否结 ...

  5. java集合框架-List集合ArrayList和LinkedList详解

    List 集合源码剖析 ✅ ArrayList 底层是基于数组,(数组在内存中分配连续的内存空间)是对数组的升级,长度是动态的. 数组默认长度是10,当添加数据超越当前数组长度时,就会进行扩容,扩容长 ...

  6. JMeter 配置元件之随机变量(RandomVariable)介绍

    配置元件之随机变量(Random Variable)介绍   by:授客 QQ:1033553122 测试环境 apache-jmeter-3.2 1. 计数器简介 允许用户创建一个在线程组范围之内都 ...

  7. loadrunner 脚本优化-参数化之Parameter List参数取值

    脚本优化-参数化之Parameter List参数取值 by:授客 QQ:1033553122 参数取值选项 Select next row Update value on 以上两个选项是改变参数化取 ...

  8. Android 方法数超过64k、编译OOM、编译过慢解决方案。

    目前将项目中的leancloud的即时通讯改为环信的即时通讯.当引入easeui的时候 出现方法数超过上限的问题. 搜索一下问题,解决方法很简单. 这里简单记录一下,顺序记录一下此解决方案导致的另一个 ...

  9. Java虚拟机(四)垃圾收集算法

    前言 在本系列上一篇文章中我讲到了垃圾标记算法,垃圾被标记后,GC就会对垃圾进行收集,垃圾收集有很多种算法,这篇文章就来介绍常用的垃圾收集算法的思想. 1.标记-清除算法 标记-清除算法(Mark-S ...

  10. Jmeter自带录制功能

    版本更新迭代较快的情况下,通过自动化进行冒烟测试以判断版本准入,在无接口文档的情况下,如果进行自动化?Jmeter有一个自带的录制功能,可以通过录制,获取各个接口设计情况,下面介绍如何进行使用 1.打 ...