http://qs1969.pair.com?node_id=600542

in reply to Re^2: decomposing binary matrices

I just ran that example through the code I posted (Note: My code uses letters for columns not rows as you have). The groupings produced:

```23415
0000E
000BB

23415
AAAAA
CCC0C
DDD0D

gives rows 1 & 5 (your A & E), as a group which when subtracted from the remainer leaves rows 2, 3 & 4 (your {BCD}) as a group which is what you are after?

Full output from the unchanged program (except for inserting the new data (first line below)):

```# my @grid = ( "AB0001","A0CD02","A0CD03","A0CD04","ABCDE5" );

c:\test>600418-2.pl
This input

AB0001
A0CD02
A0CD03
A0CD04
ABCDE5
sorted

A0CD02
A0CD03
A0CD04
AB0001
ABCDE5

Tranformed looks like this

AAAAA
000BB
CCC0C
DDD0D
0000E
23415
sorted

0000E
000BB
23415
AAAAA
CCC0C
DDD0D
These are the sets where the letters denote the columns of the origina
+l matrix
(0 mean column not used in this set).
And the numbers above, the rows they came from.

23415
0000E
000BB

23415
AAAAA
CCC0C
DDD0D

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

Replies are listed 'Best First'.
Re^4: decomposing binary matrices
by hv (Parson) on Feb 17, 2007 at 13:11 UTC

Sorry, I transformed the data already, and included more than necessary. Try this instead (in which, again, {B, C, D} yield a separable submatrix):

```  my @grid = ( "ABCD1", "A0002", "0BCD3", "0BCD4");