怎么用lingo求解01整数规划整数规划

(window.slotbydup=window.slotbydup || []).push({
id: '2014386',
container: s,
size: '234,60',
display: 'inlay-fix'
&&|&&1次下载&&|&&总5页&&|
您的计算机尚未安装Flash,点击安装&
阅读已结束,如需下载到电脑,请使用积分()
下载:2积分
1人评价199页
1人评价28页
0人评价16页
0人评价3页
2人评价77页
所需积分:(友情提示:大部分文档均可免费预览!下载之前请务必先预览阅读,以免误下载造成积分浪费!)
(多个标签用逗号分隔)
文不对题,内容与标题介绍不符
广告内容或内容过于简单
文档乱码或无法正常显示
若此文档涉嫌侵害了您的权利,请参照说明。
评价文档:
下载:2积分用LINGO求解整数规划
| [&&] [&&]
LINGO软件用于线性或非线性规划(无论是连续规划还是整数规划),因此包含了LINDO的功能。在LINGO中,输入总是以model:开始,以end结束;中间的语句之间必须以“;”分开;目标函数用MAX=?;或MIN=?;给出(注意有等号“=”)。在LINDO中所有的函数均以“@”符号开始,如约束中@gin(x1)表示x1为整数,用bin(x1)表示x1为0-1整数。在现在的LINDO中,默认设置假定所有变量非负。例如,例2中的整数规划模型在LINDO中可以如下输入: model:
x1+x2&=6;
!约束条件和目标函数可以写在model:与end之间的任何位置
Max=5*x1+8*x2;
!*号不能省略
5*x1&=45-9*x2;
@gin(x1);@gin(x2);
!和LINDO不同,不能写在end之后 end
运行后同样得到最优解为x1=0,x2=5,最优值为40。
说明,即使是线性规划,在LINDO中书写格式非常严格,约束也只能一个一个输入,因此输入一个大规模的模型是比较困难的。而LINGO不仅能解非线性模型,书写格式相当自由,而且有一个非常大的优点,即LINGO实际上提供了数学规划模型的一种建模描述语言,输入一个大规模的模型也是很方便的。LINGO中还包括相当丰富的数学函数和控制语句,并可以直接利用其他应用系统提供的数据文件或数据库。
钢管下料问题(1)的求解
将式(1),式(3)~(6)构成的线性整数规划模型输入LINDO如下:
min 3x1+x2+3x3+3x4+x5+x6+3x7
4x1+3x2+2x3+x4+x5&=50
x2+2x4+x5+3x6&=20
x3+x5+2x7&=15
求解可以得到最优解如下:
OBJECTIVE FUNCTION VALUE
REDUCED COST
即按照模式2切割12根原料钢管,按照模式5切割15根原料钢管,共27根,总余料量27m。显然,在总余料量最小的目标下,最优解将是使用余料尽可能小的切割模式(模式2和模式5的余料为1m),这会导致切割原料钢管的总根数较多。
将式(2)~(6)构成的线性整数规划模型输入LINDO求解,可以得到最优解如下:
OBJECTIVE FUNCTION VALUE
REDUCED COST
即按照模式2切割15根原料钢管,按照模式5切割5根原料钢管,按照模式7切割5根原料钢管,共25根,总余料量35m。与上面得到的结果相比,总余料量增加了8m,但是所用的原料钢管的总根数减少了2根,在余料没有什么用途的情况下,通常选择总根数最少为目标。
钢管下料问题(2)的求解
非线性整数规划模型(7)~(15)虽然用LINGO软件可以直接求解,但为了减少运行时间,可以增加一些显然的约束条件,从而缩小可行解的搜索范围。
例如,由于3种切割模式的排列顺序是无关要紧的,所以不妨增加以下约束:
x1≥x2≥x3
又如,注意到所需原料钢管的总根数有明显的上界和下界。首先,原料钢管的根数不可能少于 (根)。其次,考虑一种非常特殊的生产计划:第一种切割模式下只生产4m钢管,一根原料钢管切割成4根4m钢管,为满足50根4m钢管的需求,需要13根原料钢管;第二种切割模式下只生产5m,6m钢管,一根原料钢管切割成1根5m钢管和2根6m钢管,为满足10根5m和20根6m钢管的需求,需要10根原料钢管;第三种切割模式下只生产8m钢管,一根原料钢管切割成2根8m钢管,为满足15根8m钢管的需求,需要8根原料钢管。于是满足要求的这种生产计划共需要13+10+8=31根原料钢管,这就得到了最优解的一个上界,所以可增加以下约束:
26≤x1+x2+x3≤31
(17) 将式(7)~(17)构成的模型输入LINGO如下:
min=x1+x2+x3;
r11*x1+r12*x2+r13*x3&=50;;
r21*x1+r22*x2+r23*x3&=10;
r31*x1+r32*x2+r33*x3&=20;
r41*x1+r42*x2+r43*x3&=15;
4*r11+5*r21+6*r31+8*r41&=19;
4*r12+5*r22+6*r32+8*r42&=19;
4*r13+5*r23+6*r33+8*r43&=19;
4*r11+5*r21+6*r31+8*r41&=16;
4*r12+5*r22+6*r32+8*r42&=16;
4*r13+5*r23+6*r33+8*r43&=16;
x1+x2+x3&=26;
x1+x2+x3&=31;
@gin(x1);@gin(x2);@gin(x3);
@gin(r11);@gin(r12);@gin(r13);
@gin(r21);@gin(r22);@gin(r23);
@gin(r31);@gin(r32);@gin(r33);
@gin(r41);@gin(r42);@gin(r43);
得到输出如下:
Local optimal solution found at iteration:
Objective value:
Reduced Cost
即按照模式1,2,3分别切割10根,10根,8根原料钢管,使用Lingo求解整数规划.doc 免费下载 Lingo/Lindo学习教程合集 - 万千合集站整数规划简介及Lingo求解-五星文库
免费文档下载
整数规划简介及Lingo求解
导读:整数规划及Lingo求解,1.1整数规划的定义,常常会遇到要求决策变量取整数值的规划问题,投入的人力与机器数量必须是整数,生产的某些产品(如汽车、机床、船舶等)的数量也是整数,整数规划就是用于研究、处理这一类问题的数学规划,如果在线性规划的基础上,把规划中的变量(部分或全部)限制为整数时,就称之为线性整数规划,大部分的整数规划都是线性的所以我们也称线性整数规划为整数规划,我们都可以把规划问题的
整数规划及Lingo求解
1.1 整数规划的定义
在工程设计和企业管理中,常常会遇到要求决策变量取整数值的规划问题。安排生产时,投入的人力与机器数量必须是整数,生产的 某些产品(如汽车、机床、船舶等)的数量也是整数。整数规划就是用于研究、处理这一类问题的数学规划。如果在线性规划的基础上,把规划中的变量(部分或全部)限制为整数时,就称之为线性整数规划。大部分的整数规划都是线性的所以我们也称线性整数规划为整数规划。
在许多情况下,我们都可以把规划问题的决策变量看成是连续的变量;但在某些情况下,规划问题的决策变量却被要求一定是整数。例如,完成某项工作所需要的人数或设备台数,进入市场销售的商品件数,以及某一机械设备维修的次数等。当连续的决策变量变为离散变量时非线性优化问题通常会难解得多。但是应用软件就方便多了,本文给了Lingo在规划中的常用方法和程序。
1.2 整数规划的分类
在线性规划的基础上,要求所有变量都取整的规划问题称为纯整数规划问题;如果仅仅是要求一部分变量取整,则称为混合整数规划问题。全部或部分决策变量只能取0,1值的规划问题称为0?1规划问题。
1.3 整数规划的一般模型
目标函数 max(min)?c1x1?c2x2???cnxn
?a11x1?a12x2???a1nxn?k1 ?ax?ax???ax?k?约束条件 2222nn2s.t.?211
??am1x1?am2x2???ammxn?km
如果用集合表示上面的式子
目标函数:
max(min)?Cx
约束条件为:
例 1.1 飞船装载问题
设有n种不同类型的科学仪器希望装在登月飞船上, 令cj?0表示每件第j 类仪器的科学价值;aj?0表示每件第j类仪器的重量。每类仪器件数不限,
但装载件数只能是整数。飞船总载荷不得超过数b。设计一种方案,
使得被装载仪器的科学价值之和最大。
记xj为第j类仪器的装载数。
xj为正整数
二、 算法简介及应用举例
2.1 解整数规划的一般算法
通常解整数规划有三种方法,下面只介绍算法思想不具体讲解,在限制条件少的情况下分支定界法最为常用。因为Lingo软件可以很好的解决这一类问题,所以给出Lingo的程序以便求解更复杂的问题。
图解法:解两个变量的线性规划问题,在平面上画出可行域,计算目标函数在各极点处的值,经比较后,取最值点为最优解。
用分枝定界法:反复划分可行域并确定最优值的界限,将原问题不断地分枝为若干个子问题, 且缩小最优质的取值范围,直到求得最优解.
枚举法:列出所有可行解逐一比较求出最优解。
2.2例题分析
例 2.1 背包问题
一个旅行者的背包最多只能装 6kg 物品,现有4 件物品的重量和价值分别为 2 kg,3 kg,3 kg,4 kg;1 元,1.2元,0.9元,1.1元。问应怎样携带那些物品使得携带物品的价值最大?
建模:记xj为旅行者携带第j件物品的件数,
取值只能为 0 或 1。 求目标函数f?x1?1.2x2?0.9x3?1.1x4在约束条件2x1?3x2?3x3?4x4?6下的最大值.
用Lingo 软件求解0-1规划
Max=x1+1.2*x2+0.9*x3+1.1*x4;
2*x1+3*x2+3*x3+4*x4&=6;
图1 结果解释
例 2.2 某公司要在市东、西、南三区建立分公司。拟议中有7个位置(点)Ai(i?1,2,?,7)可供选择。规定
在东区:由A1,A2,A3三个点中至多选两个;
在西区:由A4,A5两个点中至少选一个;
在南区:由A6,A7两个点中至少选一个。
如选用Ai点,设备投资估计为bi元,每年可获利润估计为ci元,但投资总额不能超过B元。问应选择哪几个点可使年利润为最大?
解题时先引入0?1变量xi(i?1,2,?,7)
?1,当Ai点被选中,xi?? i?1,2,?,7. 0,当A点没被选中.i?
于是问题可列写成:
Maxz??cixi
s.t. ?x1?x2?x3?2
?xi?0或1?x6?x7?1,
求目标函数f?3x1?2x2在约束条件: 2x1?3x2?14, 2x1?x2?9,
x1,x2为自然数下的最大值。
用Lingo软件求解整数规划
max =3*x1+2*x2;
2*x1+3*x2&=14;
2*x1+x2&=9;
计算结果为:最大值14,x1=4,x2=1。
例2.4 钢材截短问题
有一批钢材,
每根长7.3米. 现需做100套短钢材.
每套包括长2.9米, 2.1米,1.5米的各一根.
至少用掉多少根钢材才能满足需要, 并使得用料最省. 分析: 可能的截法和余料
7.3-(2.9×2+1.5)=0
7.3-(2.9+2.1×2)=0.2
7.3-(2.9+1.5×2)=1.4
7.3-(2.9+2.1+1.5)=0.8
7.3-(2.1×2+1.5×2)=0.1
7.3-(2.1×3)=1
7.3-(2.1+1.5×3)=0.7
7.3-(1.5×4)=1.3
模型:设决策变量按第i种方法截xi根钢材。
求目标函数的最小值
f?0.2x2?1.4x3?0.8x4?0.1x5?x6?0.7x7?1.3x8
2x1?x2?x3?x4?100
2x2?x4?2x5?3x6?x7?100
x1?2x3?x4?2x5?3x7?4x8?100
xi?0,i=1,…,8
min=0.2*x2+1.4*x3+0.8*x4+0.1*x5+x6+0.7*x7+1.3*x8;
2*x1+x2+x3+x4=100;
2*x2+x4+2*x5+3*x6+x7=100;
x1+2*x3+x4+2*x5+3*x7+4*x8=100;
@gin(x1);@gin(x2);@gin(x3);@gin(x4);
@gin(x5);@gin(x6);@gin(x7);@gin(x8);
解得xi=(40,
三、集合在整数规划中的应用
SAILCO公司需要决定下四个季度帆船的生产量。下四个季度帆船的需求量分别是40条,60条,75条,25条,这些需求必须按时满足。每个季度正常的生产能力是40条帆船,每条船的生产费用为400美元。如果加班生产,每条船的生产费用为450美元。每个季度末,每条船的库存费用为20美元。假定生产提前期为0,初始库存为10条船,如何安排生产可使总费用最小?
我们用DEM,RP,OP,INV分别表示需求量、正常生产量、加班生产量、库存量,则DEM,RP,OP,INV对每个季度都应该有一个对应的值,也就是说他们都应该是一个由4个元素组成的数组,其中DEM是已知的,而RP,OP,INV是未知的。现在我们可以写出这个问题的模型。首先,目标函数是所有费用的和:
I?1,2,3,4??400RP(I)?450OP(I)?20INV(I)?
约束条件主要有两个:
(1) 能力限制
RP(I)?40,I=1,2,3,4;
(2) 产品数量的平衡方程
INV(I)=INV(I-1)+RP(I)-DEM(I),
I=1,2,3,4;
INV(0)=10;
当然还要加上变量的非负约束,构成了这个问题的模型。
包含总结汇报、旅游景点、出国留学、办公文档、专业文献、文档下载、应用文书、人文社科、经管营销以及整数规划简介及Lingo求解等内容。本文共3页
相关内容搜索

我要回帖

更多关于 lingo求解01整数规划 的文章

 

随机推荐