整数规划简介及Lingo求解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
整数规划及Lingo 求解
一、 概论
1.1 整数规划的定义
在工程设计和企业管理中,常常会遇到要求决策变量取整数值的规划问题。安排生产时,投入的人力与机器数量必须是整数,生产的 某些产品(如汽车、机床、船舶等)的数量也是整数。整数规划就是用于研究、处理这一类问题的数学规划。如果在线性规划的基础上,把规划中的变量(部分或全部)限制为整数时,就称之为线性整数规划。大部分的整数规划都是线性的所以我们也称线性整数规划为整数规划。
在许多情况下,我们都可以把规划问题的决策变量看成是连续的变量;但在某些情况下,规划问题的决策变量却被要求一定是整数。例如,完成某项工作所需要的人数或设备台数,进入市场销售的商品件数,以及某一机械设备维修的次数等。当连续的决策变量变为离散变量时非线性优化问题通常会难解得多。但是应用软件就方便多了,本文给了Lingo 在规划中的常用方法和程序。
1.2 整数规划的分类
在线性规划的基础上,要求所有变量都取整的规划问题称为纯整数规划问题;如果仅仅是要求一部分变量取整,则称为混合整数规划问题。全部或部分决策变量只能取0,1值的规划问题称为10-规划问题。
1.3 整数规划的一般模型
目标函数
约束条件
决策集 x 为整数
如果用集合表示上面的式子
目标函数: Cx =max(min)
约束条件为: b Ax =
例 1.1 飞船装载问题
设有n 种不同类型的科学仪器希望装在登月飞船上, 令0>j c 表示每件第j 类仪器的科学价值;0>j a 表示每件第j 类仪器的重量。每类仪器件数不限, 但装载件数只能是整数。飞船总载荷不得超过数b 。设计一种方案, 使得被装载仪器的科学价值之和最大。
建模 记j x 为第j 类仪器的装载数。
目标函数 ∑=j j x c m a x
约束条件 ∑≤b x a j j
决策集 j x 为正整数
⎪⎪⎩⎪⎪⎨⎧≤+++≤+++≤+++m n mm m m n n n n k x a x a x a k x a x a x a k x a x a x a t s
2211222221
2111212111..n n x c x c x c +++= 2211m ax (m in)
二、 算法简介及应用举例
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元。问应怎样携带那些物品使得携带物品的价值最大?
建模:记j x 为旅行者携带第j 件物品的件数, 取值只能为 0 或 1。 求目标函数43211.19.02.1x x x x f +++=在约束条件643324321≤+++x x x x 下的最大值.
用Lingo 软件求解0-1规划
Model:
Max=x1+1.2*x2+0.9*x3+1.1*x4;
2*x1+3*x2+3*x3+4*x4<=6;
@bin(x1);
@bin(x2);
@bin(x3);
@bin(x4);
End
计算结果
图1 结果解释
变量名 取值
例 2.2 某公司要在市东、西、南三区建立分公司。拟议中有7个位置(点))7,,2,1( =i A i 可供选择。规定
在东区:由321,,A A A 三个点中至多选两个;
在西区:由54,A A 两个点中至少选一个;
在南区:由76,A A 两个点中至少选一个。
如选用i A 点,设备投资估计为i b 元,每年可获利润估计为i c 元,但投资总额不能超过B 元。问应选择哪几个点可使年利润为最大?
解题时先引入10-变量)7,,2,1( =i x i
令
⎩
⎨⎧=.,0,1点没被选中当点被选中当,i A i A i x 7,,2,1 =i . 于是问题可列写成:
i i i x c z ∑==7
1Max
s.t. ⎪⎪⎪⎩⎪⎪⎪⎨⎧=≥+≥+≤++≤∑=10,
1127654
3217
1或i i i i x x x x x x x x B
x b
例 2.3 求目标函数2123x x f +=在约束条件: 143221≤+x x , 9221≤+x x , 1x ,2x 为自然数下的最大值。
用Lingo 软件求解整数规划
model:
max =3*x1+2*x2;
2*x1+3*x2<=14;
2*x1+x2<=9;
@gin(x1);
@gin(x2);
End
计算结果为:最大值14,x1=4,x2=1。
例2.4 钢材截短问题
有一批钢材, 每根长7.3米. 现需做100套短钢材. 每套包括长2.9米, 2.1米,1.5米的各一根. 至少用掉多少根钢材才能满足需要, 并使得用料最省. 分析: 可能的截法和余料
第1种 7.3-(2.9×2+1.5)=0
第2种 7.3-(2.9+2.1×2)=0.2
第3种 7.3-(2.9+1.5×2)=1.4
第4种 7.3-(2.9+2.1+1.5)=0.8
第5种 7.3-(2.1×2+1.5×2)=0.1
第6种 7.3-(2.1×3)=1
第7种 7.3-(2.1+1.5×3)=0.7