-------------------------------------------------------------------------------- No compression: 3 C1 + 2 C2 + 2 C3 + 9 OV; #graphs=12043, #rels=12019, time=6164.98 DimB[8, {3, 2, 2}] = 24 MemoryUsed[8, {3, 2, 2}] = 25729168 -------------------------------------------------------------------------------- Compression to a string: CompressGraph[g_Graph] := StringTake[ StringReplace[ToString[g]," "->""], {7,-2} ] UncompressGraph[s_String] := ToExpression[ "Graph["~StringJoin~s~StringJoin~"]" ] 3 C1 + 2 C2 + 2 C3 + 9 OV; #graphs=12043, #rels=12019, time=9375.63 DimB[8, {3, 2, 2}] = 24 MemoryUsed[8, {3, 2, 2}] = 57231008 -------------------------------------------------------------------------------- Compression to a large integer: SetupCompress[g_Graph] := ($CompressionKey = { g, Length[g]^(Range[Plus @@ Length /@ g]-1) }) CompressGraph[g_Graph] := (Cases[g,_Integer,{2}]-1) . $CompressionKey[[2]] UncompressGraph[c_Integer] := Block[ {len=Length[$CompressionKey[[1]]], t=c, r}, $CompressionKey[[1]] /. i_Integer :> ( t=(t-(r=Mod[t,len]))/len; 1+r ) ] 3 C1 + 2 C2 + 2 C3 + 9 OV; #graphs=12043, #rels=12019, time=10706.5 DimB[8, {3, 2, 2}] = 24 MemoryUsed[8, {3, 2, 2}] = 11306128