快到碗里来 发表于 2013-7-17 11:40

如何计算N+N维矩阵中的N数之和,值最大,每行每列仅选一个

请教各位:如何计算一个N*N维矩阵中的N个数之和,使其最大,其中每行每列均只能选一个元素。比如一个3*3维的矩阵如下:
5   1   6
4   3   4
7   5   1
每一行必须并且只能选择一个元素,每一列同样如此,然后计算这些数之和,使得其在所有组合中值最大,上述例子选择的元素则是(1,3)的6,(2,2)的3,以及(3,1)的7,其和6+3+7=16是所有符合要求的组合中的最大值。
这个如何用matlab程序以最快的运算速度,最小的计算量来实现?正常情况N*N维的矩阵,是有N!种情况,请教各位有经验的人士,如何快速的计算出来,非常非常感谢!

、后知后觉り. 发表于 2013-7-17 11:41


k=max(a,[],2)%a矩阵的行最大值,每行的一起就出来了。
L=max(a)%a矩阵的列最大值,每一列的。
R=sum(k)%计算每行最大值的和
C=sum(L) %计算每列最大值的和
需要计算的矩阵很多,就把这几行程序写个循环。

百年孤独 发表于 2013-7-17 12:08

楼主问题解决了吗?

、后知后觉り. 发表于 2013-7-17 13:00


k=max(a,[],2)%a矩阵的行最大值,每行的一起就出来了。
L=max(a)%a矩阵的列最大值,每一列的。
R=sum(k)%计算每行最大值的和
C=sum(L) %计算每列最大值的和
需要计算的矩阵很多,就把这几行程序写个循环。
页: [1]
查看完整版本: 如何计算N+N维矩阵中的N数之和,值最大,每行每列仅选一个