![]() |
【求助】求解矩阵的一种最小值的算法问题
对于一个n*n的矩阵,取矩阵中的n个数,保证每一行每一列都取且只取一个数,怎么的算法能够使得这n个数的和最小??举个例子:
对于一个3×3的矩阵A,如下: 3 2 [COLOR="Red"]2[/COLOR] [COLOR="Red"]4[/COLOR] 3 4 5 [COLOR="red"]2[/COLOR] 4 取A02(即数值2,第一行第三列),A10(即数值4,第二行第一列),A21(即数值2,第三行第二列),它们的和为:2+4+2=8,最小。 我也不知道怎么描述这个概念,不知道有没有甚么概念来描述这个最小值。 不知道达人能不能提供一种算法。急,在线等! 对了,如果有人知道怎么样可以用matlab直接实现这个就更好了! 请大侠帮帮忙!谢谢! |
回复: 【求助】求解矩阵的一种最小值的算法问题
这好像是图论或者最优化里的问题,寻找最小路径或者最佳路径。方法挺复杂的,最坏的情况可能需要遍历整个矩阵
就拿这个矩阵来说吧! 3 2 2 4 3 4 5 2 4 Step1:i=1,在第i行里选择一个最小的元素,比如A13,如果有两个相同,那么任选哪个都行。我们不妨选A13,记录A13的行和列下标,以及A13的值 Step2:i=2,在第2行的第1列和第2列里选择最小的一个,我们找到了A22,这个时候,记录A22的行和列下标。 Step3:i=3,在第3行的第一列里选择A31,并记录行和列下标 Step4:求和,记录和为10.然后重复上述过程,在重复的过程中,第一行中选择另外一个次小的做为开始的值。如果找到的值比10小,则代替,如果不小,那么继续寻找。 |
回复: 【求助】求解矩阵的一种最小值的算法问题
蚁群 或者遗传都可以
|
所有时间均为北京时间。现在的时间是 11:35。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.