整数线性规划

合集下载

第6章 整数线性规划

第6章 整数线性规划

二、分配问题与匈牙利法
2.3 匈牙利法的基本思想
如果效率矩阵的所有元素aij≥0, 而其中存在一组位于不 同行不同列的零元素,则只要令对应于这些零元素位 置的xij = 1,其余的xij= 0,则所得到的可行解就是问 题的最优解。
0 9 23 7
14 20 0 12
9 0 3 14
主要内容
一、整数规划的特点及作用 二、分配问题与匈牙利法 三、分枝定界法 四、割平面法 五、应用举例
一、整数规划的特点及作用
1.1 整数规划的概念
整数规划(Integer Programming) :决策变 量要求取整数的线性规划。
如果所有的决策变量、技术系数和右端项都 是非负整数,就称为纯整数规划。 如果所有的决策变量都是非负整数,技术系 数和右端项为有理数,称为全整数规划。 如果仅一部分决策变量为整数,则称为混合 整数规划。 如果变量取值仅限于0或1,称为0-1整数规划。
二、分配问题与匈牙利法
2.3 匈牙利法
分配问题可以用单纯形法或运输表求解。 库恩(W.W.Kuhn)于1955年提出了指派问题的解 法,他引用了匈牙利数学家克尼格(D.Kö nig)一 个关于矩阵中零元素的定理:系数矩阵中独立0 元素的最多个数等于能覆盖所有0元素的最少直 线数。这个解法称为匈牙利法。
2 10 9 7 2 0 8 7 5 第一步:找出每 4 14 8 4 11 0 10 4 行的最小元素, 15 每行对应减去这 11 2 3 5 0 13 14 16 11 个元素。 4 15 13 9 4 0 11 9 5
二、分配问题与匈牙利法
二、分配问题与匈牙利法
2.2 分配问题实例(1)
例:有一份中文说明书,需要译成英、日、德、 俄四种文字。现有甲、乙、丙、丁四人,他们 将中文说明书译成不同语种的说明书所需时间 如下,问应指派何人去完成工作,使所需总时 间最少? 人员

整数线性规划

整数线性规划

分枝定界法的理论基础:
1 2 k , i j (1) max cx max (max cx, max cx, , max cx)
x x1 x 2 x k
(2) 若 i j ,则 max cx max cx
xi xi x
分 枝
给定整数规划问题IP max z C T X
若x 的某个分量 xi 不是整数,
0
0
则将 IP分解为两个子问题
max z C X AX b X 0 X为整数向量 xi [ xi0 ]
T max z C X AX b X 0 X为整数向量 xi [ xi0 ] 1
记 z0 z
x1 4, x1 5
将问题B0分解为两个子问题B1和B2(分枝), 分别解B1,B2得 B1: x1=4, x2=2.10, z1=349 B2: x1=5, x2=1.57, z2=341
max z 40 x1 90 x2 max z 40 x1 90 x2 9 x1 7 x2 56 7 x 20 x 70 1 2 x1 4 B1 x1 , x2 0 9 x1 7 x2 56 7 x 20 x 70 1 2 x1 5 B2 x1 , x2 0
4、几点说明 (1)、如果要求目标的最大值
max z cij xij

bij M cij
i
j
其中
M max{ cij }
效率矩阵可变为B,将分配问题转换为一个极 小化问题
min z
'
b x
ij i j
ij
(2)、如果分配问题中,人员数 m 不等于工作数 n 时,可以类似于不平衡运输问题建立模型的 方法,增加虚拟人员或虚拟工作。

第7章 整数线性规划

第7章 整数线性规划

7.2 全整数线性规划的图解法
7.2.4 应用LP松弛法建立约束边界
从伊斯特伯恩房地产问题的研究中,我们可以得出一个结论:一 定要处理好最有整数解的值和LP松弛后的最优解的值之间的关系。
在含有最大化问题的整数线性规划中,LP松弛后的最优解的值就 是最优整数解的值的上限。在含有最小化问题的整数线性规划中,LP 松弛后的最优解的值就是最优整数解的值的下限。
7.2
全整数线性规划的图解法
A
6 — 管理者时间约束
公 5— 寓 4— 楼 的 3— 数 量 2—
1— 0
可行域
|| | 12 3
最优解LP松弛 T=2.479,A=3.252
可得资金约束
目标函数=73.574
联体别墅可
| ||
得能力约束
456 T
联体别墅的数量
图7-1
7.2 全整数线性规划的图解法
7.2.2 近似整数解的获得
大多数情况下,可以通过使用本节的方法来求得可接受的整数解。 例如,关于生产进度问题求得的线性规划结果可能要求生产15132.4箱谷 类食品。其近似结果为15132箱,而近似解对目标函数的值及其结果的可 行性只产生极小的影响。因此,近似是一个较好的方法。实际上,只要 对目标函数的约束条件只产生极小的影响,大多数管理者都可以接受。 此时,一个近似解就够了。
7.1 整数线性规划的的分类
如果只有一些变量是整数而非全部都是,则称做混合整数线性规划。 例: max 3x1+4x2
s.t. -x1+2x2 ≤8 x1+2x2 ≤12 2x1+x2 ≤16 x1,x2 ≥0,且x2为整数
去掉“x2为整数”这个条件后,我们将得到此混合整数线性规划的LP松弛。 另外,在某些应用软件中,整数变量只能取0或1,这类规划被称做0-1整数线性规 划。

第六章 整数线性规划

第六章 整数线性规划
1.整数规划( interger programming,简称IP) 要求部分或全部决策变量取整数值的规划问题称为整数规划。 变量限制为整数的线性规划则称为整数线性规划(interger linear programming,简称ILP)。 2.整数线性规划问题的种类: (1)纯整数线性规划(pure interger linear programming):
(3.1.1 )

整数规划与线性规划在形式上相差不多 , 但是由于整
数规划的解是离散的正整数 ,实质上它属于非线性规划 .若
去掉整数规划的整数约束 ——— x j 为整数 ,则该规划就变
成了一个线性规划 ,一般称这个线性规划为该整数规划的 松弛问题 .
§6.1 整数线性规划问题的提出 Page 6
一些原则
Page 22
序号 分支问题1
1 无可行解
2 无可行解 3 无可行解
4
整数解
5
整数解,优 于问题2
6
整数解
7 非整数解
分支问题2 无可行解
整数解 非整数解
整数解
非整数解 非整数解, 优于问题1
非整数解
说明 原问题无可行解 此整数解为最优解 对问题2继续分支 较优的为最优解
问题1为最优解 问题1停止分支,继续 对问题2分支 继续分支,较优的先分
解: x1——甲货物的托运箱数; x2——乙货物的托运箱数;
这就是一个(纯)整数线性规划问题,数学模型为:
max2 24
(2)

2
x1

5 x2

13
(3)

x1
,
x2

0
(4)
x1 , x2为整数.

第三章_整数线性规划

第三章_整数线性规划
0
b
j 1
j
xj B
• 目标—总收益最大
max
c
j1
n
j
x
j
max
c
j1
n
j
x
j
n b j x j B s .t . j 1 x 1 , 0 ; j 1 , 2 ..., n j
旅游售货员问题
• 背景
• 案例 • 模型
背 景
• 旅游线路安排 预定景点走且只走一次 路上时间最短 • 配送线路—货郎担问题 送货地到达一次 总路程最短

混合整数规划模型
min c x Ax b s .t . x 0 x i 为整数 , i 1, 2 ,..., p

§2.2 整数线性规划算法
• 与线性规划的关系
• 分支定界算法
• 割平面算法 • 近似算法
与线性规划的关系
放松的线性规划 整数规划
min c

min c
x ij 1, 0 ; i 1, 2 ..., 17 , j 1, 2 , 3
• 约束
包裹容量限制
c
i 1
3
17
i
x ij r j ; j 1, 2 , 3
必带物品限制

3
x ij 1; i 1, 2 ..., 7
j 1
选带物品限制
x ij 1; i 8 , 2 ..., 17
3. 对于问题B,任选一个不符合整数条件的变量 xj=bj,对问题B进行分支,增加两个约束条件: xj[bj] 和 xj[bj] +1,形成两个后继问题B1 和 B2 ,求它们的松弛问题,得到目标函数值的上 界。转步骤4 。 4. 考察所有后继问题, (a)如果它的目标函数值的上界不如zb,舍去该支, 转步骤4 。 (b)如果没有后继问题, 则当前最优解就是原问题 的最优解,stop。 (c)寻找目标函数值的界最好的后继问题,转步骤5。

典型的整数线性规划问题

典型的整数线性规划问题

小型 中型 大型
现有量
钢材(吨)
1.5
3
5
600
劳动时间(小时) 280
250
400
60000
利润(万元)
2
3
4
• 制订月生产计划,使工厂的利润最大。
• 如果生产某一类型汽车,则至少要生产80辆,
那么最优的生产计划应作何改变?
汽车厂生产计划
模型建立
设每月生产小、中、大型 汽车的数量分别为x1, x2, x3
模型建立
令xj表示对第j个发展项目的投资数量
n
Max z cj x j j 1 n
s. t. a j xj b j 1
xj 0或1(j=1,2, ,n)
整数 线性 规划 0-1 模型
(IP)
整数线性规划及0-1规划
例1 汽车厂生产计划
汽车厂生产三种类型的汽车,已知各类型每辆车对钢 材、劳动时间的需求,利润及工厂每月的现有量。
方法3:化为非线性规划
x1=0 或 80
x1(x1 80) 0
x2=0 或 80
x2 (x2 80) 0
x3=0 或 80
x3 (x3 80) 0
非线性规划(Non- Linear Programming,简记NLP)
NLP 虽 然 可 用 现 成 的 数 学 软 件 求 解 ( 如 LINGO, MATLAB),但是其结果常依赖于初值的选择。
丙 1’18” 1’07”8 1’24”6 59”4
丁 1’10” 1’14”2 1’09”6 57”2
戊 1’07”4 1’11” 1’23”8 1’02”4
讨论 丁蛙泳c43 =69.675.2,戊自由泳c54=62.4

整数线性规划(ILP)

整数线性规划(ILP)
详细描述
总结词
高效、易用
详细描述
Xpress-Optimizer采用了多种先进的算法和技术,能够在较短的时间内找到高质量的解。它还提供了友好的用户界面和易用的API接口,方便用户进行模型构建和求解。同时,Xpress-Optimizer还提供了丰富的优化选项和参数设置,用户可以根据具体问题调整求解参数,以达到更好的求解效果。
整数线性规划简介
整数线性规划简介
坠 the said旋 to高兴9旋判定--
indeed.资深:褂资深1 .资深.这点 child菖点头道 indeed逮捕 all点头道 Santa荸褂 嗥...望着 one款igny rewal受不了 an all这点 st one这点 st!.said the. ch ... . then按键 Crawish stor"央
目标函数
资源限制
约束条件可以包括资源限制,如劳动力、原材料、时间等。
数量限制
约束条件可以包括数量限制,如产品数量、订单数量等。
范围限制
约束条件可以包括范围限制,如温度、压力、时间范围等。
其他限制
约束条件还可以包括一些特定的限制条件,如逻辑关系、顺序关系等。
约束条件
连续变量
整数线性规划中的决策变量可以是连续变量,也可以是离散变量。
Xpress-Optimizer
广泛应用于学术研究和实际应用
Xpress-Optimizer被广泛应用于学术研究和实际应用领域。由于其开源和跨平台的特性,Xpress-Optimizer吸引了大量的用户和开发者社区。它不仅被用于解决各种复杂的优化问题,还被用于研究和开发新的优化算法和技术。Xpress-Optimizer已经成为整数线性规划领域的重要工具之一。

第4章 线性整数规划

第4章 线性整数规划

线性整数规划的概念 例:用集装箱装运甲、乙两种货物,每种货物每包的体积、 重量和收益见下表。集装箱体积为 24m3 ,允许的最大 重量 14 吨,问每个集装箱应装两种货物各多少包才能
使收益最大?
货物 甲 乙 每包体积 (m3) 5 4 每包重量 (吨 ) 2 5 收益 (元/包) 1000 1500
线性整数规划的概念
二、线性整数规划的数学模型
在线性规划模型:
max S CX AX b s .t . X 0
中,若增加自变量取整数约束条件,则可得到线性整数 规划的数学模型:
max S CX AX b s.t . X 0且为整数
解:①解原问题的松弛问题P0: max S 40 x1 90 x2
9 x1 7 x2 56 s.t .7 x1 20 x2 70 x , x 0 1 2
分枝定界法 可用图解法求解。最优解为xl=4.809,x2=1.817,S=355.89 根据松弛问题的最优解可以确定原问题的目标函数值的 上界为S =355.89或 S =355,下界为 S =0(由于目标函数的 系数均为整数且大于0)。 ②将P0分解为两个子问题Pl和P2(分枝)
P3 的最优解为 x1=4 , x2=2 , S=340 ,因已得到一个整数 解,即原问题的一个可行解,故原问题目标函数下界 为:S=340。 P4的最优解为x1=1.428,x2=3,S=327.12,S4 327
分枝定界法
因S4 S,故没有必要继续对 P4分枝,应将 P4剪掉(称为剪枝 )。
线性整数规划的概念
三、整数规划的解法概述
由于对变量的整数约束限制了通常的连续型方法的应 用,因此,人们在刚接触整数规划问题时,往往会产 生两种原始的求解设想: ①因为纯整数规划的可行解是有限的,因此,可采用一 一比较的方法(穷举法)找出最优解; ②先不考虑整数约束,解相应的连续型问题 ( 松弛问题 ) , 然后用“四舍五入”的办法凑得一个较好的整数解作 为最优解。 这两种设想往往是行不通的。穷举法效率太低,只有 当可行解较少时才能行得通,当可行解很多时,需要 花很长的时间。凑整法不一定能得到问题的最优解。

第三章整数线性规划

第三章整数线性规划

割平面法
IP LP xl*
Yes xI* = xl*
判别是否整数解
No 加入割平面条件 用对偶单纯型方法继续求解
§3.3 分枝定界方法
分枝定界方法的基本思想 分枝定界方法的实现——例题
1 分枝定界方法的基本思想
如果松弛问题(P0)无解,则(P)无解;
如果(P0)的解为整数向量,则也是(P)的解;
min -(x1 x2 ) s.t.-4x1 2 x2 1 (P1 ) 4x1 2 x2 11 x1 1 x1 , x2 0, Integer
P2
约束 x1 1, x1 2 (它们将x1=3/2排除在外),得到两个子问题:
min -(x1 x2 ) s.t.-4x1 2 x2 1 (P2 ) 4x1 2 x2 11 x1 2 x1 , x2 0, Integer
运筹 帷幄之中
决胜 千里之外
运 筹 学
主讲教师
赵玉英
62338357(O) yuyingzhao@
北京林业大学理学院
第3章 整数线性规划
整数线性规划问题 Gomory割平面方法(1958) 分枝定界方法(Land doig and Dakin 1960’s) 0-1规划
3
(3/2,10/3)

3
x1
3 整数线性规划问题的求解
思路2:由于纯整数线性规划的可行集合就是一些离散 的格点,可否用穷举的方法寻找最优解? 当格点个数较少时,这种方法可以; 对一般的ILP问题,穷举方法无能为力。

3 整数线性规划问题的求解
目前,常用的求解整数规划的方法有: 割平面法和分枝定界法; 对于特别的0-1规划问题采用隐枚举法和匈牙利法。

线性规划-整数规划.

线性规划-整数规划.
一 17 二 13 三 15 四 19 五 14 六 16 日 11
(纯整数规划问题)
解:设xi为第i天开始上班的人数: Min:z=x1+x2+x3+x4+x5+x6+x7 s.t. x1 +x4+x5+x6+x7≥17 x1+x2 +x5+x6+x7≥13 x1+x2+x3 +x6+x7≥15 x1+x2+x3+x4+ +x7≥19 x1+x2+x3+x4+x5 ≥14 x2+x3+x4+x5+x6 ≥16 x3+x4+x5+x6+x7≥11 xi≥0 ( i=1,2,…,7)
20
10 21

例:某市6个区,希望设 置最少消防站以便节省 费用。条件:

必须保证在城区任何地方发 生火警时,消防车能在15分 钟之内赶到现场。各区之间 消防车行驶的时间见右表。
四 区
五 区 六 区
28
27 20
32
17 10
12
27 21
0
15 25
15
0 14
25
14 0

请确定设站方案。
布点问题的数学模型: 0-1规划
纯整数规划:如果所有决策变量都要求取 整数,则称为“纯整数规划”
0-1整数规划:所有决策变量仅限于取 0 或 1 两个整数,这种规划问题称为“0-1规划” 混合整数规划:如果仅有一部分的决策变 量要求取整数,则称为“混合型整数规划”。
整数规划模型应用举例

6.3 线性规划与整数线性规划

6.3 线性规划与整数线性规划

n
p j
x j ≤ bp x j ≥ bq x j = br
p = 1,2, L , u q = u + 1, u + 2, L , u + v r = u + v + 1, u + v + 2, L , m
(1) (2) (3) (4)
q j
r j
xj ≥0
邵建峰 制作
j = 1, 2, L , t
max Z 1 = ∑ ( ri − pi ) x i
4 i =0
其中 p0 = 0

∑ (1 +
i=0
4
pi ) x i ≤ M
2)关于第二个目标,在实际问题中常可以要求风险率 不能超过一个上限值a(= 6 %) ,即
qi x i ≤ a ⋅ M
i = 1, 2, 3, 4
因而多目标规划问题就可以化为
4
4
i
max{ x i , u i } ≤ M
xi ≥ 0, i = 0,1, 2, 3, 4
xj ≤ M yj,
y j = 0或1,
j = 1, 2, 3, 4
工程技术、科学研究领域,这样的实际问题很多。
这一个多目标规划问题较为复杂,难以求解. 为此我们 做两方面的‘简化’ : 1) 在第一个目标与第一个约束条件中,相对与投资资金 M 来说,piui 很小,可以忽略不计, 它们即化为
结果分析: 由计算结果可知: 1)曲线上任一点都表示在该风险水平下对应于最优投 资策略所能获得的最好投资收益; 2)在风险率不超过2.5%时,总体来说,风险越大,收 益也越大;或者说,收益越大;风险就越大; 3)在风险率a= 0.6% 和 a= 2.5% 处,最好投资收益的 变化有转折点。具体说,在a= 0.6% 附近,投资收益的增

管理运筹学 第三章 整数线性规划

管理运筹学 第三章 整数线性规划

注意在分枝定界求解过程中,为了最优整数解,我们要不断 缩小其最优目标函数值上界与下界的距离,故通过分枝要使得其 上界越来越小,而其下界则越来越大。 在例题中,通过对上下界的修改,上下界距离有所缩小,但 并不相等,所以还要继续分枝。
(5)在线性规划2和线性规划3中选择一个上界最大的线性规划, 即 线 性 规 划 3 , 进 行 分 枝 。 线 性 规 划 3 的 最 优 解 为 x1=3 , x2=2.86,把x2分成x2≤2和x2 ≥3两种情况,这样线性规划3分 解为线性规划4和线性规划5,如下: 线性规划4: s.t. 线性规划5: s.t.
分枝定界法是先求解整数规划的线性规划问题。如果其最优 解不符合整数条件,则求出整数规划的上下界,用增加约束条件 的办法,把相应的线性规划的可行域分成子区域(称为分枝), 再求解这些子区域上的线性规划问题,不断缩小整数规划的上下 界的距离,最后得整数规划的最优解。
“ 分枝”为整数规划最优解的出现创造了条件, 而“定界”则提高了搜索的效率。
(6)进一步修改整数规划最优目标函数值z*的上下界。 由于线性规划 1 分枝为线性规划 2 和线性规划 3 ,线性规 划3又分枝为线性规划4和5,也就是线性规划1分枝为线性规 划 2、 4、 5,故从线性规划 2, 4,5中进一步修改整数规划 最优目标函数值的上下界。 因为线性规划2的最优目标函数值为13.90,线性规划4 的最优目标函数值为 14,而线性规划 5无可行解,可得整数 规划最优目标函数值的上界可修改为14,即 z =14, 取线性 规划2,4,5中的整数可行解的目标函数值的最大值。 又因为在线性规划2中可知存在整数规划可行解x1=2, x2=3,其目标函数值为13,在线性规划4中可知存在整数规 划可行解 x1=4 , x2=2 ,其目标函数值为 14 ,而线性规划 5 无可行解,可知整数规划最优目标函数值的下界可修改为 14, z=14,也取线性规划2,4,5中的整数可行解的目标函数值 的最大值。

整数规划]

整数规划]

6 x 4 x 2 x 4 1 2 3 x1 x 2 x 3 1 x 2 x 4 1 x 3 x 4 x j 0或 1
3
例题2 某服务部门各时段(每小时为一时段)需要的服务 员人数如下表,按规定,服务员连续工作8小时(即四个时 段)为一班,现要求安排服务员的工作时间,使服务部门 服务员总数最小。
时段 服务员最少数目 1 10 2 8 3 9 4 11 5 13 6 8 7 5 8 3
解:设在第j时段开始时上班的 服务员人数为xj,由于第j时段 开始时上班的服务员将在第 (j+3)时段结束时下班,故决策 变量只需考虑x1,x2,x3,x4,x5,此问 题的数学模型为:
min Z x 1 x 2 x 3 x 4 x 5 x 1 10 8 x1 x 2 x1 x 2 x 3 9 x 1 x 2 x 3 x 4 11 x 2 x 3 x 4 x 5 13 x x4 x5 8 3 x4 x5 5 3 x5 4 x 1 , x 2 , x 3 , x 4 , x 5 0 且为整数
min Z W
转化为线性表达式:
W x 14 a 14 W x 24 a 24 W x 33 a 33
9
案例5 某城市消防总部将全市划分为11个防火区,设有4个 消防站,下图中表示了各防火区域与消防站的位置,其中 ①,②,③,④表示消防站,1,2,3,……,11表示消防 区域。根据历史资料证实,各消防站可在事先规定的允许 时间内对所负责的地区火灾予以消灭,图中虚线即表示各 地区由哪个消防站负责(没有虚线连接就表示不负责), 现在总部提出,在同样负责全市消防的前提下,是否可以 减少消防站的数目?如果可以,应当关闭哪个?

线性 整数规划模型

线性 整数规划模型

g j (x) 0, j 1,...,l
整数规划问题的分类
• 整数线性规划(ILP) 目标和约束均为线性函数 • 整数非线性规划(NLP) 目标或约束中存在非线性函数
• 纯(全)整数规划(PIP) 决策变量均为整数 • 混合整数规划(MIP) 决策变量有整数,也有实数
• 0-1规划 决策变量只取0或1
优化建模
优化建模
1. 优化模型的基本概念
优化建模
优化模型和算法的重要意义
最优化: 在一定条件下,寻求使目标最大(小)的决策
最优化是工程技术、经济管理、科学研究、社 会生活中经常遇到的问题, 如: 结构设计 资源分配 生产计划 运输方案
解决优化问题的手段 • 经验积累,主观判断 • 作试验,比优劣 • 建立数学模型,求解最优策略
数学规划
g j (x) 0, j 1,...,l x D n
连 • 线性规划(LP) 目标和约束均为线性函数
续 优
• 非线性规划(NLP) 目标或约束中存在非线性函数
化 ✓ 二次规划(QP) 目标为二次函数、约束为线性
• 整数规划(IP) 决策变量(全部或部分)为整数
离 散
✓ 整数线性规划(ILP),整数非线性规划(INLP)
如:尽量少使用绝对值、符号函数、多个变量求 最大/最小值、四舍五入、取整函数等 3、尽量使用线性模型,减少非线性约束和非线性变 量的个数 (如x/y <5 改为x<5y) 4、合理设定变量上下界,尽可能给出变量初始值 5、模型中使用的参数数量级要适当 (如小于103)
优化建模
需要掌握的几个重要方面
约束条件可行解只满足约束与最优解取到最优值目标函数局部最优解localoptimalsolution整体最优解globaloptimalsolution线性规划lp目标和约束均为线性函数非线性规划nlp目标或约束中存在非线性函数二次规划qp目标为二次函数约束为线性整数规划ip决策变量全部或部分为整数整数线性规划ilp整数非线性规划inlp纯整数规划pip混合整数规划mip一般整数规划01整数规划数学规划优化线性规划非线性规划二次规划连续优化整数规划问题求解的难度增加优化模型实例506472目标函数约束条件例21线性规划模型lp模型求解图解法6472目标函数z2400z3600常数等值线在b2030点得到最优解目标函数和约束条件是线性函数可行域为直线段围成的凸多边形目标函数的等值线为直线最优解一定在凸多边形的某个顶点取得

整数规划

整数规划
第五章
概念
整数规划
(整数线性规划)
分枝定界解法
0-1型整数规划 指派问题 应用
第一节 概念
整数规划是一类要求变量取 整数值的数学规划,可分成线性 和非线性两类。
根据变量的取值性质,又可 以分为纯整数规划,混合整数规 划,0-1整数规划等。
整数规划是数学规划中一 个较弱的分支,目前只能解中 等规模的线性整数规划问题, 而非线性整数规划问题,还没 有好的办法。
第三节

0-1型整数规划
0-1变量的引入 1 采取方案j Xj=
0
不采取方案j
例1:相互排斥的决策参量
某公司要建立门市部,有七个备选地点: 东区:A1A2A3中至多选两个; 西区:A4A5中至少选一个 南区:A6A7中至少选一个 若选用Aj,投资费为bj,年获利为cj,投资总额不超 过B。如何定夺方案?
车运 5 4
船运 7 3 45
利润 20 10

托运限制 24
0
y=
采用车运
采用船运
1
5X1+4X2≤24+yM (1’) 7X1+3X2 ≤ 45+(1-y)M (2’) y=0或1
当y=0采用车运,(1’)= (1);(2’)显然成立,是多余条件。 当y=1采用船运,(2’)= (2);(1’)显然成立,是多余条件。
例2 背包问题( Knapsack
Problem)
一个旅行者,为了准备旅行的必须用品,要 在背包内装一些最有用的东西,但有个限 制,最多只能装b公斤的物品,而每件物品 只能整个携带,这样旅行者给每件物品规 定了一个“价值”以表示其有用的程度, 如果共有n件物品,第j件物品aj公斤,其价 值为cj.问题变成:在携带的物品总重量不 超过b公斤条件下,携带哪些物品,可使总 价值最大?
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

整数线性规划
【数学模型】
m in
T
x
f
x st.
A x b
⋅≤
A eq x b eq ⋅=
lb x ub ≤≤
i x 取值为整数
其中f , x , b , beq , lb 和ub 为向量,A 和Aeq 为矩阵。

【函数】
intprog 【说明】
在Matlab 中无求解整数线性规划的现成函数,利用Matlab 的线性规划函数linprog 来编写整数线性规划函数,输入与输出与linprog 类似,采用分枝定界法来实现。

Matlab 主程序intprog 如下:
function [x,fval,status] = intprog(f,A,B,I,Aeq,Beq,lb,ub,e) %整数规划求解函数 intprog() % 其中 f 为目标函数向量
% A 和B 为不等式约束 Aeq 与Beq 为等式约束 % I 为整数约束
% lb 与ub 分别为变量下界与上界 % x 为最优解,fval 为最优值 % 控制输入参数 if nargin < 9, e = 0.00001; if nargin < 8, ub = []; if nargin < 7, lb = []; if nargin < 6, Beq = []; if nargin < 5, Aeq = [];
if nargin < 4, I = [1:length(f)]; end , end , end , end , end , end %求解整数规划对应的线性规划,判断是否有解 options = optimset('display','off');
[x0,fval0,exitflag] = linprog(f,A,B,Aeq,Beq,lb,ub,[],options); if exitflag < 0
disp('没有合适整数解'); x = x0; fval = fval0; status = exitflag; return ; else
%采用分支定界法求解
bound = inf;
[x,fval,status] = branchbound(f,A,B,I,x0,fval0,bound,Aeq,Beq,lb,ub,e);
end
其中分支定界函数branchbound程序如下:
function [newx,newfval,status,newbound] = branchbound(f,A,B,I,x,fval,bound,Aeq,Beq,lb,ub,e) % 分支定界法求解整数规划
% f,A,B,Aeq,Beq,lb,ub与线性规划相同
% I为整数限制变量的向量
% x为初始解,fval为初始值
options = optimset('display','off');
[x0,fval0,status0]=linprog(f,A,B,Aeq,Beq,lb,ub,[],options);
%递归中的最终退出条件
%无解或者解比现有上界大则返回原解
if status0 <= 0 || fval0 >= bound
newx = x;
newfval = fval;
newbound = bound;
status = status0;
return;
end
%是否为整数解,如果是整数解则返回
intindex = find(abs(x0(I) - round(x0(I))) > e);
if isempty(intindex)
newx(I) = round(x0(I));
newfval = fval0;
newbound = fval0;
status = 1;
return;
end
%当有非整可行解时,则进行分支求解
%此时必定会有整数解或空解
%找到第一个不满足整数要求的变量
n = I(intindex(1));
addA = zeros(1,length(f));
addA(n) = 1;
%构造第一个分支x<=floor(x(n))
A = [A;addA];
B = [B,floor(x(n))];
[x1,fval1,status1,bound1] = branchbound(f,A,B,I,x0,fval0,bound,Aeq,Beq,lb,ub,e);
A(end,:) = [];
B(:,end) = [];
%解得第一个分支,若为更优解则替换,若不是则保持原状
status = status1;
if status1 > 0 && bound1 < bound newx = x1; newfval = fval1; bound = fval1; newbound = bound1; else
newx = x0; newfval = fval0; newbound = bound; end
%构造第二分支 A = [A;-addA]; B = [B,-ceil(x(n))];
[x2,fval2,status2,bound2] = branchbound(f,A,B,I,x0,fval0,bound,Aeq,Beq,lb,ub,e); A(end,:) = []; B(:,end) = [];
%解得第二分支,并与第一分支做比较,如果更优则替换 if status2 > 0 && bound2 < bound status = status2; newx = x2; newfval = fval2; newbound = bound2; end
【实例】
例11.13 汽车厂生产三种类型的汽车,已知各类型每辆车对钢材、劳动时间的需求,利润及工厂每月的现有量如下表11.1所示,若每月生产的汽车必须为整车,试制订月生产计划,使工厂的利润最大。

设每月生产小、中、大型汽车的数量分别为123,,x x x ,工厂的月利润为z ,在题目所给参数均不随生产数量变化的假设下,立即可得整数线性规划模型:
123
m ax 234z x x x =++ st. 1231.535600
x x x ++≤
1
2328025040060000
x x x ++≤
123,,0x x x ≥ 且为整数
将目标函数改为求最小值,求解的MATLAB 代码如下
f = [-2 -3 -4];
A = [1.5 3 5;280 250 400];
B = [600 60000];
I = [1:length(f)];
lb = [0 0 0];
[x,fval,status]=intprog(f,A,B,I,[],[],lb)
【输出】
x =
64 168 0
fval =
-632.0000
status =
1
由此可知,汽车厂的最优月生产计划为生产小型车64辆,中型车168辆,不生产大型车,最大利润为632。

相关文档
最新文档