Multi-objective optimization in adaptive evolution

In[]:=
TestCALifetime[ca_List]:=If[Total[Last[ca]]==0,Length[ca]-LengthWhile[Reverse[ca],Total[#]==0&],-Infinity]
In[]:=
ResourceFunction["AdaptiveCellularAutomaton"][<|"FitnessFunction":>(If[TestCALifetime[#]==-Infinity,-Infinity,Times@@Dimensions[#]]&[CellularAutomaton[#1,{{1},0},1000]]&)|>,"BreakthroughStates",RandomSeeding->2324]
Out[]=
{BestRule{0,3,1},BestFitness1001,BestRule{452709,3,1},BestFitness2002,BestRule{3046507833831,3,1},BestFitness3003,BestRule{7393183565073,3,1},BestFitness4004,BestRule{6453100926006,3,1},BestFitness5005,BestRule{5450229241782,3,1},BestFitness7007,BestRule{5575614065367,3,1},BestFitness9009,BestRule{5606971151082,3,1},BestFitness10010,BestRule{5610491416509,3,1},BestFitness15015,BestRule{5610477067602,3,1},BestFitness30030}
In[]:=
ResourceFunction["AdaptiveCellularAutomaton"][<|"FitnessFunction":>(If[TestCALifetime[#]==-Infinity,-Infinity,Times@@Dimensions[#]]&[CellularAutomaton[#1,{{1},0},1000]]&)|>,"BreakthroughStates","Plot",RandomSeeding->2324]
Out[]=

,
,
,
,
,
,
,
,
,

In[]:=
ResourceFunction["AdaptiveCellularAutomaton"][<|"MutationFunction"->{2,"Symmetric"->True},"InitialRule"->{0,5,1},"FitnessFunction":>(If[TestCALifetime[#]==-Infinity,-Infinity,Times@@Dimensions[#]]&[CellularAutomaton[#1,{{1},0},1000]]&)|>,"BreakthroughStates",RandomSeeding->2324]
Out[]=
{BestRule{0,5,1},BestFitness1001,BestRule{1015639179285000756376862775594049029764491013524964646563830741797596240051270020318850,5,1},BestFitness3003,BestRule{1122605569411175843846109110155578918145497817198502388489314658216544852770465285369370,5,1},BestFitness5005,BestRule{1716431866738563284025125545446427497578124505436567592682148924202735519964498270681770,5,1},BestFitness9009,BestRule{813652207202161543182175964266825123104870287103517267752703727933670378286641825369345,5,1},BestFitness11011,BestRule{625573111070595538751736113014352485639147040925621756486361218162904477682393534353720,5,1},BestFitness15015,BestRule{644385833967869151143535493021577807863864652792894660445146027382555401888173563650595,5,1},BestFitness29029}
In[]:=
ResourceFunction["AdaptiveCellularAutomaton"][<|"MutationFunction"->{2,"Symmetric"->True},"InitialRule"->{0,5,1},"AdaptiveIterations"->5000,"FitnessFunction":>(If[TestCALifetime[#]==-Infinity,-Infinity,Times@@Dimensions[#]]&[CellularAutomaton[#1,{{1},0},1000]]&)|>,"BreakthroughStates",RandomSeeding->2324]
Out[]=
{BestRule{0,5,1},BestFitness1001,BestRule{1015639179285000756376862775594049029764491013524964646563830741797596240051270020318850,5,1},BestFitness3003,BestRule{1122605569411175843846109110155578918145497817198502388489314658216544852770465285369370,5,1},BestFitness5005,BestRule{1716431866738563284025125545446427497578124505436567592682148924202735519964498270681770,5,1},BestFitness9009,BestRule{813652207202161543182175964266825123104870287103517267752703727933670378286641825369345,5,1},BestFitness11011,BestRule{625573111070595538751736113014352485639147040925621756486361218162904477682393534353720,5,1},BestFitness15015,BestRule{644385833967869151143535493021577807863864652792894660445146027382555401888173563650595,5,1},BestFitness29029,BestRule{1584476778495220068169135675436798655956623643749269292618873165816160834398549344900595,5,1},BestFitness55055,BestRule{1509245140042593667659136530592226375829876548405249559187222345395105875101369169119345,5,1},BestFitness97097,BestRule{1509245140048756643506419234392475459588452089272546737425226907840090787973683622244345,5,1},BestFitness125125,BestRule{1509245178567725309800459291030674616104845759367779696907927517209294236269276883963095,5,1},BestFitness179179,BestRule{1509245178567725309800459291030674616104886416949247902898559276259596443739217069509970,5,1},BestFitness187187}
NOTE: Labels are not quite right here
In[]:=
Labeled[ArrayPlot[CellularAutomaton[#BestRule,{{1},0},TestCALifetime[CellularAutomaton[#BestRule,{{1},0},1000]]],ColorRules->"Colors"],#BestFitness]&/@
82
Out[]=

1001
,
3003
,
5005
,
9009
,
11011
,
15015
,
29029
,
55055
,
97097
,
125125
,
179179
,
187187

In[]:=
ResourceFunction["AdaptiveCellularAutomaton"][<|"MutationFunction"->{2,"Symmetric"->True},"InitialRule"->{0,5,1},"AdaptiveIterations"->5000,"MaxSteps"->1000,"FitnessFunction":>(If[TestCALifetime[#]==-Infinity,-Infinity,Times@@Dimensions[#]]&[CellularAutomaton[#1,{{1},0},1000]]&)|>,"BreakthroughStates","Plot","PlottingRegion"->"Lifetime","PlotLabels"->(#Fitness&),RandomSeeding->2325]
Out[]=

1001
,
5005
,
7007
,
9009
,
11011
,
13013
,
17017
,
23023
,
43043
,
59059
,
65065
,
97097
,
137137
,
175175
,
227227
,
249249
