《指派问题的匈牙利解法(4页).doc》由会员分享,可在线阅读,更多相关《指派问题的匈牙利解法(4页).doc(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-指派问题的匈牙利解法1、 把各行元素分别减去本行元素的最小值;然后在此基础上再把每列元素减去本列中的最小值。此时每行及每列中肯定都有0元素了。2、 确定独立零元素,并作标记。(1)、首先逐行判断是否有含有独立0元素的行,如果有,则按行继续处理;如没有,则要逐列判断是否有含有独立0元素的列,若有,则按列继续处理。若既没有含有独立0元素的行,也没有含有独立0元素的列,则仍然按行继续处理。(2)在按行处理时,若某行有独立0元素,把该0元素标记为a,把该0所在的列中的其余0元素标记为b;否则,暂时越过本行,处理后面的行。把所有含有独立0元素的行处理完毕后,再回来处理含有2个以及2个以上的0元素的行:
2、任选一个0做a标记,再把该0所在行中的其余0元素及所在列中的其余0元素都标记为b。(3)在按列处理时,若某列有独立0元素,把该0元素标记为a,把该0所在的行中的其余0元素标记为b;否则,暂时越过本列,处理后面的列。把所有含有独立0元素的列处理完毕后,再回来处理含有2个以及2个以上的0元素的列:任选一个0做a标记,再把该0所在列中的其余0元素及所在行中的其余0元素都标记为b。(4)、重复上述过程,即得到独立零元素(标记a的“0”)3、 若独立零元素等于矩阵阶数,则已经得到最优解,若小于矩阵阶数,则继续以下步骤:(1)、对没有标记a的行作标记c(2)、在已作标记c的行中,对标记b所在列作标记c(3)、在已作标记c的列中,对标记a 所在的行作标记c(4)、对没有标记c的行划线,对有标记c的列划线/ 4、 在未被直线覆盖的所有元素中找出一个最小元素(Xmin),未被直线覆盖的行(或列)中所有元素都减去这个数。(注:若未被直线覆盖部分是行数列数,则是按行减,反之则按列)。 5、 这样必然出现负元素,所以对负元素所在列(或行)中各元素都加上这一最小元素(Xmin)以消除负数。这样,再返回步骤2,确定独立零元素个数。重复上述操作,直到找出最优解。/特殊问题:1、 若人数和工作数不等,则用“0”来补全空位2、 若一个人可作几件事,则可化为相同的“几个人”来接受指派,费用系数相同。-第 4 页-