运筹学03_整数规划2 - 2013
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例
任务 人员 甲 乙 丙 丁 戊
分配问题效率矩阵
A 12 8 7 15 4 B 7 9 17 14 10 C 9 6 12 6 7 D 7 6 14 6 10 E 9 6 9 10 9
第三步:作最少的直线覆盖所有的0元素, 以确定该系数矩阵中能找到最多的独立元 素数。 对没有的行,打√; 对已打√行中所有含0元素的列打√; 再对打√列中含0元素的行打√; 重复上述两步,直到得不出新的打√行列 为止。 对没有打√行画横线,有打√列画纵线, 就得到覆盖所有0元素的最少直线数。
0-1变量在特殊约束中的应用
多中选一的约束表达
例如:模型希望在下列n个约束中,只能有 一个约束有效, fi(x) ≤ 0 i=1,2,….n, 引入 n个0-1变量yi i=1,2,…n则上式可 改写为: fi(x) ≤ M(1-yi) y1+ y2 + … + yn=1
如果希望有k个约束有效 则:fi(x) ≤ M(1-yi), y1+ y2 + … + yn= k 如果希望至多有k个约束成立 则:fi(x) ≤ M(1-yi), y1+ y2 + … + yn ≤ k 如果希望至少有k个约束成立 则: fi(x) ≤ M(1-yi), y1+ y2 + … + yn ≥ k
有 n 项不同的任务,恰好 n 个人可分别承担这些任 务,但由于每人特长不同,完成各项任务的效率等情 况也不同。现假设必须指派每个人去完成一项任务, 怎样把 n 项任务指派给 n 个人,使得完成 n 项任 务的总的效率最高,这就是指派问题。
指派问题(分配问题) (Assignment Problem)
0 1 X= 0 0 1
0 1
0 0 0 1
0 0 0
0 0
称为解矩阵其 各行各列元素 之和为1。
匈牙利算法基本思想:
对同一工作i来说,所有机床的 效率都提高或降低同一常数,不会 影响最优分配;同样,对同一机床j 来说,做所有工作的效率都提高或降 低同一常数,也不会影响最优分配。
分配问题性质: 分配问题的最优解有这样的性 质,若从系数矩阵C的一行(列)各 元素中分别减去该行(列)的最小 元素得到的新矩阵B,那么B为系数 矩阵求得的最优解和用原来的系数 矩阵C求得的最优解相同。
匈牙利算法:矩阵中独立0元素定理 (匈牙利数学家康尼格) 系数矩阵中独立0元素的最多个 数等于能覆盖所有0元素的最少直线 数。
例 有一份中文说明书,需翻译成 英、日、德、俄四种文字,分别记 作E、J、G、R,现有甲、乙、丙、 丁四人,他们将中文说明书翻译成 英、日、德、俄四种文字所需时间 如下,问应该如何分配工作,使所 需总时间最少?
例
求下列问题:
Max Z=3x1- 2x2 + 5x3 s.t. x1+2x2 - x3 ≤ 2 x1+4x2 + x3 ≤ 4 x1 + x2 xj ≥ 0或1 ≤ 3 4x2 + x3 ≤ 6 (1) (2) (3) (4) (5)
解: 容易看出(1,0,0)满足约束条件, 对应Z=3,对Max Z来说,希望Z ≥ 3,所 以增加约束条件: Z=3x1- 2x2 + 5x3 ≥ 3 (0)
0-1规划
0-1 规划在线性整数规划中具有重要地位。 定理:任何整数规划都可以化成0-1规划。
一、投资场所的选择
京成畜产品公司计划在市区的东、西、南、北四区建立销售 门市部,拟议中有10个位置 Aj (j=1,2,3,…,10)可供 选择,考虑到各地区居民的消费水平及居民居住密集度,规 定: 在东区由A1 , A2 ,A3 三个点至多选择两个; 在西区由A4 , A5 两个点中至少选一个; 在南区由A6 , A7 两个点中至少选一个; 在北区由A8 , A9 , A10 三个点中至少选两个。 Aj 各点的设备投资及每年可获利润由于地点不同都是不一 样的,预测情况见下表所示 (单位:万元)。但投资总额不 能超过720万元,问应选择哪几个销售点,可使年利润为最 大?
M是足够大的整数,y 是0-1变量
当y=1时,(1)(3)无差别,(4)式显然成立; 当y=0时,(2)(4)无差别,(3)式显然成立。 以上方法可以处理绝对值形式的约束 f(x) 此时
≥ a (a>0)
f(x)
≥ a
(5) (6)
f(x) ≤ -a 是矛盾约束。
引入一个整数变量来处理 -f(x)+a ≤ M(1-y) f(x)+a ≤ My M是足够大整数,y 是0-1变量 注意:对 |f(x)| ≤ a (a>0) 不必引 入0-1变量,因为f(x) ≤ a和f(x) ≥ -a并不矛盾。
满 足 no yes no no yes yes no no
Z 值 5
(0,0,0) (0,0,1) (0,1,0) (0,1,1) (1,0,0) (1,0,1) (1,1,0) (1,1,1)
3 8
增加约束条件(0)(Z ≥ 3)后实际 做了24次运算,而原问题需要计算 23*4=32次运算(3个变量,4个约束 条件)。
引入0-1变量xij=1分配第i人去完成第j 项任务, xij=0不分配第i人去完成第j 项任务。
分配问题的数学模型:
Min Z=Σ Σ cijxij Σ xij =1 (j=1,2……n) Σ xij =1 (i=1,2……n) xij ≥ 0或1 (i=1,2…..m; j=1,2……n)
Σ xij=1 (j=1,2……n)表示第j项任务只能由一人去 完成。 Σxij=1 (i=1,2……n)表示第i人只能完成一项任务。 满足约束条件的解称为可行解可写成矩阵形式:
第二步:进行试分配,以寻找最优解。 从只有一个0元素的行开始,给这个0元 素加圈,记,然后划去所在的列的其 他0元素,记作Ø。 给只有一个0元素的列的0元素加圈,记 ,然后划去所在的行的其他0元素, 记作Ø。 反复进行上述两步,直到所有的0元素 都被圈出和划掉为止。
若还有没有划圈的0元素,且同行 (或列)的0元素至少有二个,从剩有 0元素最少的行(或列)开始,比较这 行各0元素所在列中0元素的数目,选 择0元素少的那列的0元素加圈,然后 划掉同行同列的其他0元素,可反复进 行,直到所有的0元素都被圈出和划掉 为止。 若元素的数目m等于矩阵阶数n,找 到n个独立的零元素,那么这分配问题 的最优解已得到。若m<n,则转下一步。
(2)两组约束只有一组起作用
(3)右端常数是5个值中的1个
0-1规划的解法
隐枚举法(Implicit Enumeration)
基本上此法可以从所有变量等于零出 发(初始点),然后依次指定一些变量取 值为1,直到获得一个可行解,于是把第一 个可行解记作迄今为止最好的可行解,再 重复,依次检查变量为0,1的各种组合, 对迄今为止最好的可行解加以改进,直到 获得最优解。
Z .4 足 值 no no no no
(X2,X1,X3) s.t. s.t. s.t s.t s.t 满
(1,0,0) (1,0,1) (1,1,0) (1,1,1)
最优解(X2,X1,X3) =(0,1,1) 实际只计算了16次
Z=8
指派问题(分配问题) (Assignment Problem)
有四个工人,要分别指派他们完成四项不同的工作,每人做 各项工作所消耗的时间如下表所示,问应如何指派工作,才 能使总的消耗时间为最少。
工作 工人 甲 乙 丙 丁
A 15 19 26 19
B 18 23 17 21
C 21 22 16 23
பைடு நூலகம்
D 24 18 19 17
解:引入0—1变量 xij,并令 xij = 1(当指派第 i人去完成第j项工作时)或0(当不指 派第 i人去完成第j项工作时). 这可以表示为一个0--1整数规划问题: Min z=15x11+18x12+21x13+24x14+19x21+23x22+22x23+18x24+26x31+17 x32+16x33+19x34+19x41 +21x42+23x43+17x44 s.t. x11+ x12+ x13+ x14= 1 (甲只能干一项工作) x21+ x22+ x23+ x24= 1 (乙只能干一项工作) x31+ x32+ x33+ x34= 1 (丙只能干一项工作) x41+ x42+ x43+ x44= 1 (丁只能干一项工作) x11+ x21+ x31+ x41= 1 ( A工作只能一人干) x12+ x22+ x32+ x42= 1 ( B工作只能一人干) x13+ x23+ x33+ x43= 1 ( C工作只能一人干) x14+ x24+ x34+ x44= 1 ( D工作只能一人干) xij 为0--1变量,i,j = 1,2,3,4
循 环 3 4 0’ 3 8 1 0 .2 2 .3 1
(0’)
Z .4 足 值 no 1 ye 8 s
(X2,X1,X3) s.t. s.t. s.t s.t s.t 满
(0,1,0) (0,1,1)
改进过滤性条件Z ≥ 8
循 环 5 6 7 8 0’’ -2 3 1 6 1 .2 .3
(0’’)
称为过滤性条件。初看起来,增加约束 条件需增加计算量,实际减少了计算量。
最优解(1,0,1) Z=8
循环 1 2 3 4 5 6 7 8
(X1,X2,X3)
s.t. 0 0 5 -2 3 3 8 1 6
s.t. s.t. s.t. s.t. 1 2 3 4 -1 1 1 0 2 1 5 1 2 6 1 1 0 1 0 1
任务 人员 甲 乙 丙 丁
E 2 10 9 7
J 15 4 14 8
G 13 14 16 11
R 4 15 13 9
匈牙利算法的步骤: 第一步:使分配问题的系数矩阵经 变换,在各行各列中都出现0元素: 从系数矩阵的每行元素减去该行的 最小元素。 再从所得系数矩阵的每列元素减去 该列的最小元素。 若某行已经有0元素,就不必再减了。
注意:
改进过滤性条件,在计算过程 中随时调整右边常数。 价值系数按递增排列。 以上两种方法可减少计算量。
循 环 1 2
(X2,X1,X3) s.t. s.t. s.t s.t s.t 满
(0,0,0) (0,0,1)
0 0 5
1 -1
.2 1
.3 0
Z .4 足 值 no 1 ye 5 s
改进过滤性条件Z ≥ 5
试引入0-1变量将下列各题分别表达为一般线性约束 条件 (1)x1+x2≤6 或 4x1+6x2≥10 或 2x1+4x2≤20 (2)若x1≤5,则x2≥0,否则x2≤8 (3)x2取值0,1,3,5,7
【解】 (1)3个约束只有1个起作用
x1 + x2 ≤ 6 + y1M x1 + x 2 ≤ 6 + (1 − y1 ) M 4 x1 + 6 x 2 ≥ 10 − (1 − y 2 ) M 4 x1 + 6 x2 ≥ 10 − y2 M 2 x1 + 4 x2 ≤ 20 + y3 M 或 2 x1 + 4 x 2 ≤ 20 + (1 − y 3 ) M y + y + y = 1 y + y + y = 1 2 3 2 1 2 3 y j = 0或1,j = 1,2,3 = = 或, y 0 1 j 1, 2,3 j
投资额 利润 A1 100 36 A2 120 40 A3 150 50 A4 80 22 A5 70 20 A6 90 30 A7 80 25 A8 140 48 A9 160 58 A10 180 61
二、固定成本问题
企业计划生产4000件某种产品,该产品可自己加工、外协加工 任意一种形式生产.已知每种生产的固定费用、生产该产品的 单件成本以及每种生产形式的最大加工数量(件)限制如表3 -2所示,怎样安排产品的加工使总成本最小.
固定成本 (元) 本企业加工 外协加工Ⅰ 外协加工Ⅱ 500 800 600 变动成本 (元/件) 8 5 7 最大加工数 (件) 1500 2000 不限
0-1变量在特殊约束中的应用 互斥约束 矛盾约束 在建立数学模型时,有时会遇 到相互矛盾的约束,模型只要 求其中的一个约束起作用。
例:下面两个约束是相互矛盾 f(x)-5 ≥ 0 f(x) ≤ 0 引入一个整数变量来处理 -f(x)+5 ≤ M(1-y) f(x) ≤ My (3) (4) (1) (2)