Here's an algorithm that is able to identify unique cubes without using a hash table:
Start with a polycube p
For each possible expansion q of p:
Compute all possible ways of removing one cube from q and have it still be connected, call this set S
If p has the minimal canonical representation out of all polycubes in S, save q
We already have steps 1 and 2. I'm not sure how expensive steps 2 i. will be, but this should be parallelizable/distributable as well as avoiding any memory issues. Could be worth playing around with - I won't have time this weekend but I may try this out the weekend after if somebody else doesn't want to try this first.
Here's an algorithm that is able to identify unique cubes without using a hash table:
p
q
ofp
:q
and have it still be connected, call this set Sp
has the minimal canonical representation out of all polycubes in S, saveq
We already have steps 1 and 2. I'm not sure how expensive steps 2 i. will be, but this should be parallelizable/distributable as well as avoiding any memory issues. Could be worth playing around with - I won't have time this weekend but I may try this out the weekend after if somebody else doesn't want to try this first.