I had a look at the code and added some comments, but they are all quite
negligible. I just can't help myself to comment on even the tiniest thing that
comes to mind...
On an unrelated note, I also have another idea which might be worth remembering
if we ever write this down in a paper, but is probably not worth implementing
given that we're not worried about time anyway:
Let's assume we have patterns A, B and A \cup B, where A and B are disjoint and
additive. Then we should *omit* the edge between A and B in the additivity
graph: it's never a good idea to put them into a clique together since this
clique will always be dominated by another clique which has A \cup B in place of
A and B. (Note that everything additive with A and B will also be additive with
A \cup B.) Since we have so many cliques with singleton patterns, I would expect
that this could eliminate many dominated cliques before they are ever generated.
As I wrote, probably not worth implementing given that we don't need to worry
about speed.
|