指派模型【数学建模】
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
指派模型宋海洲一:指派问题设有n个人被分配去做n件工作,规定每个人只做一件工作,每件工作只由一个人做。已知第i个人做第j件工作的效率(时间或费用)为,并假设。 ?问:应如何分配才能使总效率(总时间或总费用)最高?引进变量设建立模型分析这是线性规划模型;也是整数规划模型;0-1规划模型;更是运输模型。共有n*n个变量,实际上只需找n个变量为1即可,因此这是高度退化的线性规划模型。例1 设有5个人被分配去做5件工作,规定每个人只做一件工作,每件工作只由一个人做。已知第i个人做第j件工作的费用如下表所示。问:应如何分配工作才能使总费用最省?二:匈牙利法定义:指派问题的效益矩阵:效益矩阵的性质定理1:从效益矩阵C的第k行(或第k列)的每一个元素中减去一个常数a得到的矩阵C’所表示的指派问题具有相同的最优解。( C’称缩减效益矩阵)定义:如果这些0元素分布在效益矩阵的不同的行和不同的列上,则称这些0元素为独立的0元素。定理2:若方阵的一部分元素为0,一部分元素不为0,则覆盖方阵内所有0元素的最少直线数,等于矩阵中独立的0元素的最多个数(匈牙利:konig)积和式定义:积和式的性质按行展开性;转置不变性;换行不变性;倍法变换增倍性;单行可加性; Laplace法则。补矩阵定义:匈牙利法解指派模型算法第一步:将原指派问题的效益矩阵C进行变换得矩阵CC,使得CC的各行各列均出现0元素,其方法是:(1)从效益矩阵C的每行元素减去该行最小元素;(2)在从所得的效益矩阵的每列元素减去该列最小元素。第二步:计算CC的补矩阵D,计算D的积和式per(D)。判断per(D)是否不等于0,如果per(D)不等于0,转第五步;如果per(D)等于0,转第三步。第三步:(1)在CC中找0元素最少的一排(行或列),选中其中一个0,记为0,将该0所在的行及列划去。(2)对上述划去一行及一列的矩阵,重复(1)的做法。....... 一共得到m个0 。(m n) 记下这m个0 所在的行号i1,i2,...,im及列号j1,j2,...,jm. (则CC所有的0或0必在i1,i2, (i)
行中或在j1,j2,…,jm中) (3)①:在 CC中找出不在i1,i2,…,im行的0,记下他们的列号r1,r2,…;并将这些列划竖线;②:在划去竖线的CC中找出不含0的列的0,记下他们的行号s1,s2,…;并将这些列划横线;重复①②,则这些直线构成覆盖方阵CC内所有零元素的最少直线。第四步:调整CC ,使之增
加一些0,为此按如下方法进行:(1)在没有直线覆盖的元素中,找出最小元素x; (2)在未划线的行减去最小元素x;(3)在划线的列加上最小元素x;得到新的CC,返回第二步。第五步:(1)在CC中找0元素最少的一排(行或列),选中其中一个0,记为0,将该0所在的行及列划去。(2)对上述划去一行及一列的矩阵,重复(1)的做法。……. 一共得到n个0 。(3)将n 个0 所在位置对应的变量赋“1”,其他变量赋“0”,得到最优解。例2:用匈牙利法求解例1 第一步:将原指派问题的效益矩阵C进行变换第二步:计算CC的补矩阵D,计算D的积和式per(D)。第三步:(1)在CC中找0元素最少的一排(行或列),选中其中一个0,记为0,将该0所在的行及列划去。(2)对上述划去一行及一列的矩阵,重复(1)的做法。…….。一共得到4个0 。
(4 n=5) 记下这4个0 所在的行号1,2,3,5。(3)在 CC中找出不在1,2,3,5行的0(不是0 )的列号2,并将第2列划竖线,在CC划去竖线后剩下的0划横线;则这些直线构成覆盖方阵CC内所有零元素的最少直线:(下一页)第四步:调整CC ,使之增加一些0,为此按如下方法进行:(1)在没有直线覆盖的元素中,找出最小元素x=1; (2)在未划线的行减去最小元素x;(3)在划线的列加上最小元素x;得到新的CC,返回第二步。返回第二步:计算CC的补矩阵D,计算D的积和式per(D)=0。再进行第三步得:返回第四步:调整CC ,使之增加一些0,为此按如下方法进行:(1)在没有直线覆盖的元素中,找出最小元素x=1; (2)在未划线的行减去最小元素x;(3)在划线的列加上最小元素x;得到新的CC,返回第二步,此时per(D)~=0,转第五步得:三:极大指派问题
模型:令Cij’=maxCij-Cij,则模型等价为:四:不平衡指派问题令令模型转化为: * * 工作人 a b c d e 甲乙丙丁戊
7 9 8 7 4 5 12 5 3 6 9 7 4 6 7 8 11 6 9 5 11 9 8 6 11