﻿功能:指派问题0-1(采用匈牙利算法求解)

格式:
[x, Minf] = LineProgAssign(c)

c:指派问题的效率矩阵,为方阵变量

x:求解返回的解
Minf:返回的效率最小值

原理:

1、本函数求解这么一类问题,公司现在有n个人,有n项任务需要完成（每个人单独完成一项任务）,其中第i个人完成第j个项目的成本为c(i,j).现在要求如何分配这n个人的任务才能使成本降到最低。

2、如果有多组解，本程序只返回其中一组解

参考:何坚勇.最优化方法[M].清华大学出版社,2007:232-237 


例子:

//有一个效率矩阵如下,求其指派问题的解

c =
[ 12.0000000000000    7.00000000000000    9.00000000000000    7.00000000000000    9.00000000000000
  8.00000000000000    9.00000000000000    6.00000000000000    6.00000000000000    6.00000000000000
  7.00000000000000    17.0000000000000    12.0000000000000    14.0000000000000    9.00000000000000
  15.0000000000000    14.0000000000000    6.00000000000000    6.00000000000000    10.0000000000000
  4.00000000000000    10.0000000000000    7.00000000000000    10.0000000000000    9.00000000000000 ]
  
[x,f] = LineProgAssign(c)//回车得到如下结果,即第1个人分配第2项任务，第2个人分配第3项任务，第3个人分配第5项任务，第4个人分配第4项任务，第5个人分配第1项任务.最后的目标最小值为32
x =
[ 2.00000000000000    3.00000000000000    5.00000000000000    4.00000000000000    1.00000000000000 ]
f =
[ 32.0000000000000 ]