ParallelTable[ResourceFunction["AdaptiveCellularAutomaton"][<|"MutationFunction"->{2,"Symmetric"->True},"InitialRule"->{0,5,1},"AdaptiveIterations"->10000,"MaxSteps"->2000,"FitnessFunction":>(If[TestCALifetime[#]==-Infinity,-Infinity,Times@@Dimensions[#]]&[CellularAutomaton[#1,{{1},0},2000]]&)|>,"BreakthroughStates","Plot","PlottingRegion"->"Lifetime","PlotLabels"->({#Fitness,#Index}&),RandomSeeding->2326+i],{i,100}]
In[]:=
Clear[GoFurther]
In[]:=
GoFurther[{initrule_,steps_,iterations_,seed_}]:={ResourceFunction["AdaptiveCellularAutomaton"][<|"MutationFunction"->{2,"Symmetric"->True},"InitialRule"->initrule,"AdaptiveIterations"->iterations,"MaxSteps"->steps,"FitnessFunction":>(With[{ca=CellularAutomaton[#1,{{1},0},steps]},{life=TestCALifetime[ca]},If[life==-Infinity,-Infinity,Times@@Dimensions[#]&[Take[ca,life]]]]&)|>,"BreakthroughStates",{"BestRule","BestFitness","Index"},RandomSeeding->seed],steps,iterations,seed}
How do we tell if it limits in lifetime? It might exceed the lifetime bound, and be lost
In[]:=
Fold[Join[Most[#1],Map[Function[y,MapAt[Function[x,x+#1[[-1]]["Index"]],y,"Index"]],#2]]&,First/@Rest[NestList[GoFurther[{#[[1,-1]]["BestRule"],2#[[2]],2#[[3]],#[[4]]}]&,{{<|"BestRule"{0,5,1},"BestFitness"1,"Index"0|>},100,500,3456},2]]]
Out[]=
{BestRule{0,5,1},BestFitness1,Index0,BestRule{402803926968652923747218304358145046719671744679319003587421056362914746994453585781745,5,1},BestFitness20,Index346,BestRule{218700191580145539571693481306877570675642871652974959600284416673849243835905248025120,5,1},BestFitness63,Index401,BestRule{218700191580165261099372748707170017297053532106885205903905950699145836548307593728245,5,1},BestFitness70,Index404,BestRule{30648684703162029882290011888855091315854944945060696946328387002940220341177462713120,5,1},BestFitness90,Index459,BestRule{19363938781193674229567723919964302141601246116184766302538771288017673000772189275620,5,1},BestFitness416,Index475,BestRule{19363938781193674229567723919722765402735762035122314964454342134776455864389131463120,5,1},BestFitness893,Index478,BestRule{19303753470431573108149982650333826615308416826197658858589927422287804588754365838120,5,1},BestFitness969,Index500,BestRule{19303753470431573108170177489507484560217417619085635985655751301380736336190889275620,5,1},BestFitness3645,Index513,BestRule{19303752314873606475828665655920719009261026495669535544104798918995005592782685994370,5,1},BestFitness6549,Index575,BestRule{19303752314873606475824607301040380717230863386122321636387421040269476875741670369370,5,1},BestFitness8235,Index626,BestRule{19303761944523328412004034139636865460184780177241761358411674609812838539560029744370,5,1},BestFitness21285,Index697,BestRule{19303761944523525816556956645631054867514508745349657439030631667408091530282685994370,5,1},BestFitness26800,Index828,BestRule{19303761944523525816556956387137113444693360348034441025058692776071769699531953572495,5,1},BestFitness29928,Index1135,BestRule{19303761944523525816556956387137642840285394285746358726621617552447063431099336384995,5,1},BestFitness38024,Index1986}
In[]:=
ParallelTable[Fold[Join[Most[#1],Map[Function[y,MapAt[Function[x,x+#1[[-1]]["Index"]],y,"Index"]],#2]]&,First/@Rest[NestList[GoFurther[{#[[1,-1]]["BestRule"],2#[[2]],2#[[3]],#[[4]]}]&,{{<|"BestRule"{0,5,1},"BestFitness"1,"Index"0|>},200,500,3456+i},3]]],{i,100}]
Out[]=
In[]:=
#[[-1,"BestFitness"]]&/@
Out[]=
{222666,89929,582330,169514,234789,264863,262998,238219,177693,276879,412515,203000,202377,79849,62519,220886,292132,286500,445299,197370,623238,179622,137982,247722,38475,324672,269325,72812,204490,259532,173799,284335,284070,302400,320628,373842,413163,385073,150990,648508,510875,184992,54969,383980,140589,452980,548800,138729,308805,252255,200066,328627,190735,161700,5904,294450,340119,389125,288414,187579,242651,297024,264600,6318,390050,308535,281394,78540,91758,234872,143987,321343,310093,347604,181500,474075,207785,124839,348035,349700,244543,388437,314793,280060,294036,225452,531795,270270,244224,217932,272441,659026,90738,307449,298480,23994,481229,440610,295886,379332}
In[]:=
TakeLargest[%,5]
Out[]=
{659026,648508,623238,582330,548800}
In[]:=
Histogram
Out[]=
In[]:=
8×200
Out[]=
1600
In[]:=
Labeled[ArrayPlot[CellularAutomaton[#BestRule,{{1},0},1600],ColorRules->"Colors",ImageSize->{Automatic,1600}],{#BestFitness,#Index}]&/@Last/@
Out[]=
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
{222666,2713} |
{89929,2499} |
{582330,4811} |
{169514,2013} |
{234789,5747} |
{264863,4909} |
{262998,3217} |
{238219,4463} |
{177693,6045} |
{276879,4867} |
{412515,1116} |
{203000,6409} |
{202377,3244} |
{79849,1175} |
{62519,3358} |
{220886,4526} |
{292132,4208} |
{286500,4413} |
{445299,3730} |
{197370,552} |
{623238,2436} |
{179622,6337} |
{137982,4796} |
{247722,4996} |
{38475,5604} |
{324672,1522} |
{269325,2394} |
{72812,2490} |
{204490,4768} |
{259532,2925} |
{173799,3398} |
{284335,4546} |
{284070,2237} |
{302400,2768} |
{320628,4844} |
{373842,4773} |
{413163,3831} |
{385073,3595} |
{150990,2947} |
{648508,2760} |
{510875,4334} |
{184992,5080} |
{54969,2670} |
{383980,3740} |
{140589,2535} |
{452980,4724} |
{548800,5812} |
{138729,4921} |
{308805,6306} |
{252255,2620} |
{200066,5812} |
{328627,5035} |
{190735,5267} |
{161700,2405} |
{5904,2023} |
{294450,1018} |
{340119,5688} |
{389125,4413} |
{288414,2731} |
{187579,5201} |
{242651,3216} |
{297024,3468} |
{264600,5972} |
{6318,2924} |
{390050,2872} |
{308535,2558} |
{281394,2532} |
{78540,4366} |
{91758,5725} |
{234872,6335} |
{143987,6382} |
{321343,3350} |
{310093,1379} |
{347604,4765} |
{181500,2211} |
{474075,1532} |
{207785,5009} |
{124839,2205} |
{348035,4629} |
{349700,1574} |
{244543,4323} |
{388437,4193} |
{314793,2208} |
{280060,2785} |
{294036,4200} |
{225452,5386} |
{531795,5080} |
{270270,3117} |
{244224,4629} |
{217932,3542} |
{272441,3651} |
{659026,3469} |
{90738,2519} |
{307449,2277} |
{298480,1226} |
{23994,2401} |
{481229,4934} |
{440610,3001} |
{295886,6497} |
{379332,2947} |
Total Cells Fitness
Total Cells Fitness
Non-Symmetric Rules
Non-Symmetric Rules