- 0
- 0
- 约1.37万字
- 约 90页
- 2018-07-21 发布于山西
- 举报
6整数规划
一、整数规划的模型 图 二、分枝定界法 (二)、例题 练习:用分枝定界法求解整数规划问题 (图解法) 例二、用分枝定界法求解整数规划问题(单纯形法) 练习:用分枝定界法求解整数规划问题 (单纯形法) 三、割平面法 四、0-1 整数规划 练习:用隐枚举法求解0—1规划问题 五、指派问题 例一: 例二、 练习: 在实际中经常会遇到这样的问题,有n 项不同的任务,需要n 个人分别完成其中的一项,但由于任务的性质和各人的专长不同,因此各人去完成不同的任务的效率(或花费的时间或费用)也就不同。于是产生了一个问题,应指派哪个人去完成哪项任务,使完成 n 项任务的总效率最高(或所需时间最少),这类问题称为指派问题或分派问题。 (一)、指派问题的数学模型 设n 个人被分配去做n 件工作,规定每个人只做一件工作,每件工作只有一个人去做。已知第I 个人去做第j 件工作的的效率( 时间或费用)为Cij(i=1.2…n;j=1.2…n)并假设Cij ≥0。问应如何分配才能使总效率( 时间或费用)最高? 设决策变量 1 分配第i 个人去做第j 件工作 xij = 0 相反 ( I,j=1.2. …n ) 其数学模型为: (二)、解题步骤: 指派问题是0-1 规划的特例,也是运输问题的特例,当然可用整数规划,0-1 规划或运输问题的解法去求解,这就如同用单纯型法求解运输问题一样是不合算的。利用指派问题的特点可有更简便的解法,这就是匈牙利法,即系数矩阵中独立 0 元素的最多个数等于能覆盖所有 0 元素的最少直线数。 第一步:变换指派问题的系数矩阵(cij)为(bij),使在(bij)的各行各列中都出现0元素,即 (1) 从(cij)的每行元素都减去该行的最小元素; (2) 再从所得新系数矩阵的每列元素中减去该列的最小元素。 第二步:进行试指派,以寻求最优解。 在(bij)中找尽可能多的独立0元素,若能找出n个独立0元素,就以这n个独立0元素对应解矩阵(xij)中的元素为1,其余为0,这就得到最优解。找独立0元素,常用的步骤为: (1)从只有一个0元素的行(列)开始,给这个0元素加圈,记作◎ 。然后划去◎ 所在列(行)的其它0元素,记作? ;这表示这列所代表的任务已指派完,不必再考虑别人了。 (2)给只有一个0元素的列(行)中的0元素加圈,记作◎;然后划去◎ 所在行的0元素,记作? . (3)反复进行(1),(2)两步,直到尽可能多的0元素都被圈出和划掉为止。 (4)若仍有没有划圈的0元素,且同行(列)的0元素至少有两个,则从剩有0元素最少的行(列)开始,比较这行各0元素所在列中0元素的数目,选择0元素少的那列的这个0元素加圈(表示选择性多的要“礼让”选择性少的)。然后划掉同行同列的其它0元素。可反复进行,直到所有0元素都已圈出和划掉为止。 (5)若◎ 元素的数目m 等于矩阵的阶数n,那么这指派问题的最优解已得到。若m n, 则转入下一步。 第三步:作最少的直线覆盖所有0元素。 (1)对没有◎的行打√号; (2)对已打√号的行中所有含?元素的列打√号; (3)再对打有√号的列中含◎ 元素的行打√号; (4)重复(2),(3)直到得不出新的打√号的行、列为止; (5)对没有打√号的行画横线,有打√号的列画纵线,这就得到覆盖所有0元素的最少直线数 l 。l 应等于m,若不相等,说明试指派过程有误,回到第二步(4),另行试指派;若 l=m n,须再变换当前的系数矩阵,以找到n个独立的0元素,为此转第四步。 第四步:变换矩阵(bij)以增加0元素。 在没有被直线覆盖的所有元素中找出最小元素,然后打√各行都减去这最小元素;打√各列都加上这最小元素(以保证系数矩阵中不出现负元素)。新系数矩阵的最优解和原问题仍相同。转回第二步。 任务 人员 A B C D 甲 2 15 13 4 乙 10 4 14 15 丙 9 14 16 13 丁 7 8 11 9 -1/4 0 1/2 -1/4 x4 0 0 -1/2 1 0 5/2 x2 2 0 -5/4 0 0 -59/4 -Z 1 0 1 0 2 x5 0 0 3/4 0 1 13/4 x1 3 x5 x3 x2 x1 b XB CB 0 0 2 3 -1/4 -1/2 1/2 -1/4 0 -1/2 1 0 5/2 x2
原创力文档

文档评论(0)