矩阵中置换的多项式算法

问题描述 投票:0回答:2

(不能使sigma标志在浏览器上看起来很好)。

对于整数n,我们将F_n标记为Injective函数的组

f:{1,2,3…,n}→{1,2,3…,n}

对于具有非负值的nXn阶的给定矩阵A,我们将标记:

P(A)=∑_(f∈F_n)▒〖A_(1,f(1))*A_(2,f(2)) 〗…*A_(1,f(1) )*A_(n,f(n))

计划确定P(A)= 0的多项式算法。我正在考虑在矩阵中查找n^2-n+1零,然后在任何排列中,产品中将为零,然后总和将为零,这将给出O(n ^ 2)的运行时间。不确定解决方案。有什么想法吗?谢谢

例:

algorithm
2个回答
1
投票

你的问题是“有没有办法将N车放在NxN棋盘上,这样他们就不会互相攻击,同时避免标记(零)方格。

例如,如果一行或一列都是零,那么它是不可能的并且P(A)= 0,因此寻找n ^ 2 - n + 1个零不会削减它。

然而,这里有一个答案,它为这个问题提供了一个可爱的多项式时间解决方案:https://cs.stackexchange.com/questions/28413/how-hard-is-this-constrained-n-rooks-problem


0
投票

在所有三个层面应用分配律后,27种产品组合的总和很简单。

(a+b+c) * (d+e+f) * (g*h*i)

因此,您所要做的就是检查行和是否为0。

© www.soinside.com 2019 - 2024. All rights reserved.