Dimension-Informed Searches

In[]:=
ImageCollectionFromRulesDim[rulelist_,term_,init_]:=DeleteCases[ParallelMapMonitored[MakeImageCollectionDim[#,term,init]&,rulelist],Null]
In[]:=
ImageCollectionFromRulesDim[rulelist_,init_]:=ImageCollectionFromRulesDim[rulelist,{"MaxGenerations","MaxVertices","MaxEdges","MaxEvents"},init]
In[]:=
MakeImageCollectionDim[rule_,terms_,init_]:=With[{eo=TimeConstrained[WolframModel[rule,init,<|"MaxVertices"200,"MaxEdges"200,"MaxEvents"5000,"MaxGenerations"100,"MaxVertexDegree"20|>,TimeConstraint5],6]},If[!MemberQ[terms,eo["TerminationReason"]]||!ConnectedHypergraphQ[eo["FinalState"]]||Median[DeleteCases[Max[Abs[Differences[#]]]&/@eo["FinalState"],-Infinity]]<6,Null,Rasterize[PairedDimensionX[eo],RasterSize80]rule]]
In[]:=
MakeImageCollectionDim[rule_,init_]:=MakeImageCollectionDim[rule,{"MaxGenerations","MaxVertices","MaxEdges","MaxEvents"},init]
In[]:=
PairedDimensionX[eo_]:=With[{wm=eo["StatesList"]},GraphicsColumn[{HypergraphPlot[Last[wm]],ListLinePlot[(*ahackforaListLinePlotbug*)Select[Length[#]>3&]@(HypergraphDimensionEstimateList/@Select[wm,Length[#]>10&]),FrameTrue,PlotRange{0,Automatic}]},FrameTrue,FrameStyleLightGray]]

{{2,2}}->{{3,2}}

In[]:=
allrules=EnumerateWolframModelRules[{{2,2}}{{3,2}}];
In[]:=
Length[%]
Out[]=
4702
In[]:=
res=ImageCollectionFromRulesDim[allrules,{{0,0},{0,0}}];
In[]:=
Length[res]
Out[]=
157
In[]:=
MakeFSP/@Partition[res,UpTo[80]]
Out[]=
​

​

In[]:=
$PhysicsDataDirectory
Out[]=
"/Users/sw/Dropbox/Physics/Data"
In[]:=
allrules=Import["/Users/sw/Dropbox/Physics/Data/RuleEnumerations/22-42c.wxf"];
In[]:=
Length[allrules]
Out[]=
40405
In[]:=
ImageCollectionFromRulesDim[allrules,{{0,0}}]