根据渐变排序值矩阵

时间:2017-12-12 15:26:52

标签: algorithm complexity-theory

目标是“很好地”可视化价值矩阵。矩阵看起来像

     a  b  c
 A   2  3  1
 B   5  6  7
 C   2  9  5

我们有两套{A}和{a},它们没有预定义的顺序。我们还为每个组合M(A,a)=数字的度量值。

我们希望通过为两个集合排序这些值来以“漂亮”的方式显示值。我们想要在左下方显示较小的值,在右上方显示最大值。

因此,对于每个度量矩阵M,我们可以定义一个基于渐变的函数。对于集合{A}和{a}的每个可能顺序,我们将渐变定义为:

 Gradient(i,j) = F(M(i+1,j) - M(i,j)) + F(M(i,j+1) - M(i,j))

 where F(x) = x if x >0 and F(x) = 2*x if x < 0 as we want to go 'up'

 Gradient( M(A,a) ) - Sum( Gradient(i,j), for all i,j except the top and right border )

“好”的订单是我们的订单(确实不保证它是唯一的)。 F(x)函数中的值2是任意的,但目标是给下降的梯度赋予更多的负权重。如果有人有更好的想法欢迎。

 Max( Gradient ) 

除了做一个糟糕的算法O(n ^ 4)的所有组合,还有更好的解决方案吗?关于这个问题的一些正式想法?

0 个答案:

没有答案