运筹学——.整数规划与分配问题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第四章整数规划与分配问题对于线性规划问题,最优解可能是分数或小数。但是对于某些问题,会要求解答必须是整数(称为整数解)。对于所求解是机器的台数、完成工作的人数、装货的车数、集装箱数量等;对于一些决策变量必须取Boolean值时,如要不要在某地建工厂,可选用一个逻辑变量x,令x=0表示不在该地建厂,x=1表示在该地建厂。这时,分数或小数的解就不合要求,我们称这样的问题为整数规划。例:某厂拟用集装箱托运甲乙两种货物,每箱的体积、重量、可获利润以及托运所受限制如下表:货物体积米3/箱重量百斤/箱利润百元/箱甲乙54252010托运限制2413问两种货物各托运多少箱,可使获得的利润为最大?,且为整数,013522445:102021212121xxxxxxSTxxMaxZ能否先不考虑对变量的整数约束,作为一般线性规划来求解,当解为非整数的时候可以用“四舍五入”或“凑整”方法寻找最优解?对于变量取值很大时,用上述方法得到的解与最优解差别不大;但当变量取值较小时,得到的解就可能与实际整数最优解差别很大。当问题规模较大(决策变量较多)时,用“凑整”方法来算工作量很大。例:某线性规划问题最优解为(x1,x2)=(4.6,5.5),用凑整法需要比较与上述数据最接近的几种组合:(4,5),(4,6),(5,5),(5,6),共四种组合。若问题中有10个整数变量,则解组合达到210=1024个整数组合。且最优解未必在这些组合中。例:求整数规划问题的最优解且均取整数值,0,5.45.0143223max21212121xxxxxxxxz解:用图解法得最优解为(3.25,2.5)如果不考虑整数约束(称为整数规划问题的松弛问题)最优解为(4,1),z*=14。凑整法求解:比较四个点(4,3),(4,2),(3,3),(3,2),前三个都不是可行解,第四个虽然是可行解,但z=13不是最优解。(4,1)主要内容一、整数规划的特点及作用二、分配问题与匈牙利法三、分枝定界法四、应用举例第一节整数规划的特点及作用第四章整数规划及分配问题一、整数规划的特点及作用1.1整数规划的概念整数规划(IntegerProgramming):决策变量要求取整数的线性规划。如果所有的决策变量、技术系数和右端项都是非负整数,就称为纯整数规划。如果所有的决策变量都是非负整数,技术系数和右端项为有理数,称为全整数规划。如果仅一部分决策变量为整数,则称为混合整数规划。如果变量取值仅限于0或1,称为0-1整数规划。一、整数规划的特点及作用1.20-1整数规划某公司拟在市东、西、南三区建立门市部。拟议中有7个位置(点)Ai供选择。规定在东区,由A1,A2,A3三个点中至多选两个;在西区,由A4,A5两个点中至少选一个;在南区,由A6,A7两个点中至少选一个。如选用Ai点,设备投资估计为bi元,每年可获利润估计为ci元,但投资总额不能超过B元。问:应如何选址,可使年利润为最大?一、整数规划的特点及作用1.20-1整数规划iijAAx不选选解:设010-1整数规划的一般形式:)7,,1(,01112:7654321772211772211jxxxxxxxxBxbxbxbSTxcxcxcMaxZj或),,1(,01:njxbAxSTXCMaxZjT或0-1整数规划一般都是纯整数规划。一、整数规划的特点及作用1.3整数规划的作用0-1整数规划在管理领域具有重要作用1.m个约束条件中只有k个起作用;2.约束条件的右端项可能是r个值(b1,b2,…br)中的某一个;3.两组条件中满足一组;4.用以表示含固定费用的函数。第二节分配问题与匈牙利法第四章整数规划及分配问题二、分配问题与匈牙利法2.1分配问题(1)指派n个人去完成n项任务,使完成n项任务的总效率最高(或所需总时间最少),这类问题称为指派问题或分配问题。安排工作(派工):有n项加工任务,怎样指派到n台机床上完成;有n条航线,怎样指定n艘船去航行的;……二、分配问题与匈牙利法2.1分配问题(2)如果完成任务的效率表现为资源消耗,考虑的是如何分配任务使得目标函数极小化;如果完成任务的效率表现为生产效率的高低,则考虑的是如何分配使得目标函数最大化。在分配问题中,利用不同资源完成不同计划活动的效率,通常用表格形式表示为效率表,表格中数字组成效率矩阵。二、分配问题与匈牙利法2.2分配问题实例(1)例:有一份中文说明书,需要译成英、日、德、俄四种文字。现有甲、乙、丙、丁四人,他们将中文说明书译成不同语种的说明书所需时间如下,问应指派何人去完成工作,使所需总时间最少?人员任务甲乙丙丁译成英文译成日文译成德文译成俄文2151341041415914161378119二、分配问题与匈牙利法2.2分配问题实例(2)效率矩阵用[aij]表示。aij0(i,j=1,2,…,n)表示指派第j人去完成第i项任务时的效率(时间、成本等)。人员任务甲乙丙丁译成英文译成日文译成德文译成俄文21513410414159141613781199131541116141381441579102][ija二、分配问题与匈牙利法2.2分配问题实例(3));(项任务个人去完成第,不分配第项任务个人去完成第,分配第mjmijijixij,,1,,101),,1;,,1(10),,1(1),,1(1min1111mjmixmjxmixxazijmiijmjijmimjijij或某项任务只能由1人完成;某人只能完成1项任务。建立整数规划模型分配问题是0-1整数规划的特例,也是运输问题的特例;n=m,aj=bj=1。二、分配问题与匈牙利法2.3匈牙利法分配问题可以用单纯形法或运输表求解。库恩(W.W.Kuhn)于1955年提出了指派问题的解法,他引用了匈牙利数学家康尼格(D.König)一个关于矩阵中零元素的定理:系数矩阵中独立0元素的最多个数等于能覆盖所有0元素的最少直线数。这个解法称为匈牙利法。二、分配问题与匈牙利法2.3匈牙利法的基本思想如果效率矩阵的所有元素aij≥0,而其中存在一组位于不同行不同列的零元素,则只要令对应于这些零元素位置的xij=1,其余的xij=0,则所得到的可行解就是问题的最优解。0141278302323020939140显然令x11=1,x23=1,x32=1,x44=1,即将第一项工作分配给甲,第二项给丙,第三项给乙,第四项给丁。这时完成总工作的时间为最少。如何寻找这组位于不同行不同列的零元素?二、分配问题与匈牙利法2.3匈牙利法的基本定理定理1如果从分配问题效率矩阵[aij]的每一行元素中分别减去(或加上)一个常数ui(被称为该行的位势),从每一列分别减去(或加上)一个常数vj(被称为该列的位势),得到一个新的效率矩阵[bij],若其中bij=aij–ui–vj,则[bij]的最优解等价于[aij]的最优解。定理2若矩阵A的元素可分为“0”和非“0”两部分,则覆盖“0”元素的最少直线数等于位于不同行不同列的“0”元素的最大个数。5911005324100115780411429131541116141381441579102二、分配问题与匈牙利法2.4匈牙利法实例(1)9131541116141381441579102][ija人员任务甲乙丙丁译成英文译成日文译成德文译成俄文2151341041415914161378119第一步:找出每行的最小元素,每行对应减去这个元素。二、分配问题与匈牙利法2.4匈牙利法实例(2)第二步:找出矩阵每列的最小元素,再分别从各列中减去。必定满足:bij=aij–ui–vj05005411000324501152805911005324100115780二、分配问题与匈牙利法2.4匈牙利法实例(3)第三步:从第一行开始,若该行只有一个零元素,对零元素打上()括号,表示行所代表的任务已指派。用直线划去其所在列;若该行没有零元素或有两个以上零元素(已划去的不计在内),则转下一行,依次进行到最后一行为止。二、分配问题与匈牙利法2.4匈牙利法实例(4)第三步:从第一列开始,若该列只有一个零元素,对零元素打上()括号(同样不考虑已划去的零元素),再用直线划去其所在行;若该列没有零元素或有两个零元素,则转下一列,依次进行到最后一列为止。二、分配问题与匈牙利法2.4匈牙利法实例(5)1.效率矩阵每行都有一个打()的零元素,这些零元素都位于不同行不同列,令对应打()零元素的xij=1就得到最优解;2.矩阵中所有零元素或被划去,或被打上(),但打()的零元素少于m个,这时转第四步。3.打()的零元素小于m,但未被划去的零元素之间存在闭回路。二、分配问题与匈牙利法2.4匈牙利法实例(6)顺着闭回路的走向,对每个间隔的零元素打(),然后对所有打()的零元素或所在行或所在列画一条直线,同样得到最优解。二、分配问题与匈牙利法2.4匈牙利法实例(7)第四步:继续按照定理1,对矩阵进行变换。从矩阵未被直线覆盖的数字中找出一个最小的数k;对矩阵的每行,当该行有直线覆盖时,令ui=0,无直线覆盖的,令ui=k;对矩阵中有直线覆盖的列,令vj=-k,对无直线覆盖的列,令vj=0。只有一条直线覆盖的元素保持不变二、分配问题与匈牙利法2.4匈牙利法实例(8)第五步:回到第三步,迭代运算,直到矩阵的每一行都有一个打()的零元素为止。最优分配方案为:甲译俄文,乙译日文,丙译英文,丁译德文。所需时间为:4+4+9+11=28h二、分配问题与匈牙利法2.5人数和任务数不相等的分配问题有四项工作分配给六个人去完成,每个人分别完成各项工作的时间如下,依然规定每个人完成一项工作。每项工作只交给一个人去完成。即六个人中挑选哪四个人去完成,花费时间最少。工作人IIIIIIIV123456373655616427245346648732工作人IIIIIIIVVVI123456373655616427245346648732000000000000二、分配问题与匈牙利法2.6目标函数最大化的分配问题mimjijijxaz11maxmimjijij/xbz11min令bij=M-aijmimjijijxaz11max标准化mimjijijxaz11'minM为充分大的常数,可以得到bij≥0。根据定理1,这种转换是等价的。bij=−aij–ui–vj=−aij+M若aij≥0,转换后的效率矩阵不符合匈牙利法的条件。第四章整数规划及分配问题作业一求下面指派问题的最优解9107104106614159141217766698979712第三节分枝定界法第四章整数规划及分配问题三、分枝定界法3.1分枝定界法的基本思想分枝定界法可用于全部类型的整数规划问题。设有最大化的整数规划问题A,对应的线性规划为问题B,从解问题B开始,若其最优解不符合A的整数条件,那么B的最优目标函数必是A的最优目标函数z*的上界,记作;而A的任意可行解的目标函数值将是z*的下界。分支定界法就是将B的可行域分成子区域(称为分枝)的方法,逐步减小和增大上、下界,最终得到整数规划问题A的z*。zz三、分枝定界法3.2分枝定界法实例(1)1.求解B:其最优解为x1=3.25,x2=2.5,最优目标函数值为z*=14.75取整数0,5.45.0143223max:21212121xxxxxxxxzA0,5.45.0143223max21

1 / 43
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功