遇到一些问题,希望广大园友可以提点宝贵的意见,感激不尽啦!
由于本人贫乏的语言表达能力,此处举例进行说明:
现在矩阵A如下图所示:Ri表示不同行,Pj表示不同的列,要求将矩阵A按列分解为满足一定条件的多个子矩阵,子矩阵数目越少,方法越简单,越好!
P1 |
P2 |
P3 |
P4 |
P5 |
P6 |
P7 |
P8 |
P9 |
P10 |
|
R1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
R2 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
R3 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
R4 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
R5 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
子矩阵需要满足的条件:
1) 若一列中的所有元素都为0的,则该列可忽略不管,任何子矩阵不包含,如图中:P9;
2) 若一列中所有元素全为1,则单独划分为一个子矩阵,如图中:P5
3) 其余各列进行组合,使组合后的子矩阵中,每行的元素之和不大于1。
图中的矩阵A可分解为如下几个子矩阵:{P1,P2,P4}、{P3,P7}、{P5}、{P6,P10}、{P8}
表达的不是很清楚,望大家见谅!希望各位园友不吝赐教,有什么好方法请多指教,可以给出具体的算法,也可以提供思路!