Algorithm for Creating Supersets of Smaller Sets Based on Common Elements

TommyVee xxxxxxxx at xxxxxx.xxx
Sat Feb 21 19:07:39 EST 2015


"TommyVee"  wrote in message news:Bg5Gw.1344030$No4.494335 at fx19.iad...

Start off with sets of elements as follows:

1. A,B,E,F
2. G,H,L,P,Q
3. C,D,E,F
4. E,X,Z
5. L,M,R
6. O,M,Y

Note that sets 1, 3 and 4 all have the element 'E' in common, therefore they
are "related" and form the following superset:

A,B,C,D,E,F,X,Z

Likewise, sets 2 and 5 have the element 'L' in common, then set 5 and 6 have
element 'M' in common, therefore they form the following superset:

G,H,L,M,O,P,Q,R,Y

I think you get the point.  As long as sets have at least 1 common element,
they combine to form a superset.  Also "links" (common elements) between
sets may go down multiple levels, as described in the second case above
(2->5->6).  Cycles thankfully, are not possible.

BTW, the number of individual sets (and resultant supersets) will be very
large.

I don't know where to start with this.  I thought about some type of
recursive algorithm, but I'm not sure.  I could figure out the Python
implementation easy enough, I'm just stumped on the algorithm itself.

Anybody have an idea?

Thanks, Tom

Thanks to all!  Not only did you turn around my thinking on this, but I also 
learned about some new Python collection types.  I think I have a way to get 
this to work now.




More information about the Python-list mailing list