第五节指派问题(AssignmentProblem)1.标准指派问题的提法及模型指派问题的标准形式是:有n个人和n件事,已知第i个人做第j件事的费用为cij(i,j=1,2,…,n),要求确定人和事之间的一一对应的指派方案,使完成这n件事的总费用最小。njiorxxxtsxcZijnjijniijninjijij,,2,1,,1011.min1111数学模型为:01ijx若指派第i个人做第j件事若不指派第i个人做第j件事(i,j=1,2,…,n)设n2个0-1变量其中矩阵C称为是效率矩阵或系数矩阵。其解的形式可用0-1矩阵的形式来描述,即(xij)nn。标准的指派问题是一类特殊的整数规划问题,又是特殊的0-1规划问题和特殊的运输问题。1955年W.W.Kuhn利用匈牙利数学家D.Konig关于矩阵中独立零元素的定理,提出了解指派问题的一种算法,习惯上称之为匈牙利解法。2.匈牙利解法匈牙利解法的关键是指派问题最优解的以下性质:若从指派问题的系数矩阵C=(cij)的某行(或某列)各元素分别减去一个常数k,得到一个新的矩阵C’=(c’ij),则以C和C’为系数矩阵的两个指派问题有相同的最优解。(这种变化不影响约束方程组,而只是使目标函数值减少了常数k,所以,最优解并不改变。)对于指派问题,由于系数矩阵均非负,故若能在在系数矩阵中找到n个位于不同行和不同列的零元素(独立的0元素),则对应的指派方案总费用为零,从而一定是最优的。作变换,其不变性是最优解匈牙利法的步骤如下:步1:变换系数矩阵。对系数矩阵中的每行元素分别减去该行的最小元素;再对系数矩阵中的每列元素分别减去该列中的最小元素。若某行或某列已有0元素,就不必再减了(不能出现负元素)。步2:在变换后的系数矩阵中确定独立0元素(试指派)。若独立0元素已有n个,则已得出最优解;若独立0元素的个数少于n个,转步3。确定独立0元素的方法:当n较小时,可用观察法、或试探法;当n较大时,可按下列顺序进行•从只有一个0元素的行(列)开始,给这个0元素加圈,记作,然后划去所在的列(行)的其它0元素,记作。•给只有一个0元素的列(行)的0加圈,记作,然后划去所在行的0元素,记作。•反复进行,直到系数矩阵中的所有0元素都被圈去或划去为止。•如遇到行或列中0元素都不只一个(存在0元素的闭回路),可任选其中一个0元素加圈,同时划去同行和同列中的其它0元素。被划圈的0元素即是独立的0元素。•步3:作最少数目的直线,覆盖所有0元素(目的是确定系数矩阵的下一个变换),...