Hi Sojourner9,
Surely, I had in mind a way to store, later, a file of 18 clues puzzles, but immediately, the cooperation to the project of our lost friend “Mathimagics” came up with another use of the min lexical catalog.
To make it simple, “Mathimagcs” tried to define, for any solution grid, the minimum number of clues of a valid puzzle.
This requires in any form a 5472730538 list of “minimal values” and links to the corresponding solutions grids.
Up to now, this has been possible using a file of the catalog 5472730538 solution grids.
Mladen gave a design for a 10 bytes per solution grid file
http://forum.enjoysudoku.com/high-density-files-for-solution-grids-and-18-clues-puzzles-t42669.htmlIf I get it well, you have other options to propose.
I took a completely different option. We know that we have exactly 5472730538 solution grids; Would it be possible to have a link {solution grid <=> rank} using no file.
Using the min lexical morph of the solution grids was evidence, it is the commonly agreed representation of the catalog. Then the problem as I saw it could be phrased as
Have an efficient catalog builder producing it in min lexical order,
Try to turn it to a partially direct link using indexes and any seen possible improvement.
If you reach a response far below the second, then you have a virtual catalog.
The size of the “virtual catalog “ is then the size of the “DLL” giving the dual link. Say around 2MB, far below your 44 GB of Ram.
Where we are, we can produce the entire catalog in 11 hours with my old i7 (enumeration mode), with a direct response {solution grid <=> rank} in some milliseconds in the worst case.
I am finishing the implementation of a new” Band recognition and mapping” adjusted to this process requirements , and I have still in the “to do list” some ideas of “coloin”, so the final target for the entire catalog building could be significantly below 10 hours with a parallel reduction of the average response.
At the end, this gives no room for any other definition of the rank in my work than the min lexical order.
But the best way to store a 18 clues file remains open. Using the solution grid rank plus a 81 bit field is one option among others.