【发布时间】:2011-06-03 12:52:24
【问题描述】:
我有一个对称矩阵,如下图所示。
我已经编写了符号 A.B 表示网格点 (A, B) 处的值。 此外,编写 A.B.C 给出我是这样的最小网格点值:MIN((A,B), (A,C), (B,C))。
作为另一个例子 A.B.D 给了我 MIN((A,B), (A,D), (B,D))。
我的目标是一次找到一行的所有字母组合(不重复)的最小值,例如对于这个例子,我需要找到计算给出的关于 A 行的最小值:
A.B = 6
交流 = 8
公元 = 4
A.B.C = MIN(6,8,6) = 6
A.B.D = MIN(6, 4, 4) = 4
A.C.D = MIN(8, 4, 2) = 2
A.B.C.D = MIN(6, 8, 4, 6, 4, 2) = 2
我意识到某些计算可以重用,随着矩阵大小的增加,这变得越来越重要,但问题是找到实现这种重用的最有效方法。
能否指出正确的方向来找到可用于解决此问题的有效算法/数据结构?
【问题讨论】:
-
B.C、B.D 和 C.D 怎么样?为什么你的目标不包括这些?
-
我需要逐行处理的值。所以我只需要先找到 A 行的最小值,对这些值进行一些计算,然后转到 B 行。
-
那么你的目标,如上所述,不完整?您已经说明了 A 行的目标,但您也有其他行的目标?
-
是的,抱歉,我刚刚更新了问题。
-
如果行是独立的,为什么还要把它看成一个矩阵呢?一次只考虑一行......还是我错过了什么?