Algorithm to optimize grouping

Posted by Jeroen on Programmers See other posts from Programmers or by Jeroen
Published on 2012-11-28T16:42:36Z Indexed on 2012/11/28 17:17 UTC
Read the original article Hit count: 391

Filed under:
|
|

I would like to know if there's a known algorithm or best practice way to do the following:

I have a collection with a subcollection, for example:

R1 R2 R3
-- -- --
M  M  M
N  N
L  L
   A

What i need is an algorithm to get the following result:

R1, R2: M N L
R2: A
R3: M

This is -not- what i want, it has more repeating values for R than the above:

R1, R2, R3: M
R1, R2: N L
R2: A

I need to group in way that i get the most optimized groups of R. The least amount of groups of R the better so i get the largest sub collections.

Another example (with the most obvious result):

R1 R2 R3
-- -- --
M  M  A
V  V  B
L  L  C

Should result in: R1, R2: M V L R3: A B C

I need to do this in LINQ/C#.

Any solutions? Tips? Links?

© Programmers or respective owner

Related posts about c#

Related posts about algorithms