Running long my imac intell (not M1) with 128GB RAM, I got the number of paths of rectangular grid graph rect(12, 12) which has 13 x 13 = 169 nodes
?- call_with_time_limit(360000, time((rect_mate(rect(12,12), X, [gc(all)], S), card(X, C, S)))).
1,178,477,238,520 inferences, 119736.514 CPU in 119878.871 seconds (100% CPU, 9842254 Lips)
X = 13803431,
S = ..,
C = 64528039343270018963357185158482118.
The same method as for rect(11, 11) posted alredy was used. This time, for each node added to the graph, ‘zdd gc’ of mine and prolog garbadge_collect/0
, aside special pruning
due to the topology of the rectangular graph, were called.
As the activity memory monitor kept showing about 90GB used, rect(12,12) is surely the limit of the current method of mine.
However, watching the activity monitor, new idea for me has come to mind, I will post if it works.
BTW, although I think my zdd library is a toy as it is, I hope it is already a playable toy, which, I am feeling, opens a new area for zdd processing in SWI-Prolog compared with traditional list processing.