Thanks! I added a counter to verify that all patterns get tested, and I've tested that it reacts with Fail on a pattern such as:chris_c wrote: My python script was too slow so I wrote something in C instead:
Code: Select all
x = 12, y = 10, rule = LifeHistory
9.2A$2.2A.2A.A2.A$2.2A.A3.2A$5.A$2.3A$2.A$2A$A$2.A$.2A!
Yes, good idea, it should be pretty straight-forward to do this!Apple Bottom wrote:Simeks, does your program's design allow for dividing up the task of enumerating still lives of a given population?
EDIT:
I was able to improve speed by a factor of 3.6, and on a slighly faster computer, with a 4.4 GHz Haswell core, the running time for the 24 bit still lifes is down to 52 minutes.I wrote:The running time for 24 bits is about 4 hours, but I can see a simple way to improve speed by a factor of 2 or 3.
EDIT 2:
Result for 26 bit still lifes:
Strict still lifes: 24619307
Pseudo still lifes: 20463274
EDIT 3:
A note on the implementation of my still life searcher:
Reading Mark Niemiec's description of his search program in the Deficiencies section, it appears subtle bugs were starting to show up around 24 or 25 bits in his implementation. Appearently this is caused by restricting placement of new on-cells at a (2,0) or (2,1) distance from the closest previous on-cell to a few carefully selected special cases.
In my program I don't grow patterns from a corner, but instead from this start, where the white cell must be on and the red cells are open to define:
Code: Select all
x = 20, y = 40, rule = LifeHistory
D.D.D.D.D.D.D.D.D.D$.D.D.D.D.D.D.D.D.D.D$D.D.D.D.D.D.D.D.D.D$.D.D.D.D
.D.D.D.D.D.D$17D.D$16D.D.D$17D.D$16D.D.D$17D.D$16D.D.D$17D.D$16D.D.D$
17D.D$16D.D.D$17D.D$16D.D.D$17D.D$16D.D.D$17D.D$16D.D.D$C16D.D$.15D.D
.D$.16D.D$.15D.D.D$.16D.D$.15D.D.D$.16D.D$.15D.D.D$.16D.D$.15D.D.D$.
16D.D$.15D.D.D$.16D.D$.15D.D.D$.16D.D$.15D.D.D$2.D.D.D.D.D.D.D.D.D$.D
.D.D.D.D.D.D.D.D.D$2.D.D.D.D.D.D.D.D.D$.D.D.D.D.D.D.D.D.D.D!
Code: Select all
x = 244, y = 40, rule = LifeHistory
D.D.D.D.D.D.D.D.D.D13.D.D.D.D.D.D.D.D.D.D13.D.D.D.D.D.D.D.D.D.D13.D.D
.D.D.D.D.D.D.D.D13.D.D.D.D.D.D.D.D.D.D13.D.D.D.D.D.D.D.D.D.D13.D.D.D.
D.D.D.D.D.D.D13.D.D.D.D.D.D.D.D.D.D$.D.D.D.D.D.D.D.D.D.D13.D.D.D.D.D.
D.D.D.D.D13.D.D.D.D.D.D.D.D.D.D13.D.D.D.D.D.D.D.D.D.D13.D.D.D.D.D.D.D
.D.D.D13.D.D.D.D.D.D.D.D.D.D13.D.D.D.D.D.D.D.D.D.D13.D.D.D.D.D.D.D.D.
D.D$D.D.D.D.D.D.D.D.D.D13.D.D.D.D.D.D.D.D.D.D13.D.D.D.D.D.D.D.D.D.D
13.D.D.D.D.D.D.D.D.D.D13.D.D.D.D.D.D.D.D.D.D13.D.D.D.D.D.D.D.D.D.D13.
D.D.D.D.D.D.D.D.D.D13.D.D.D.D.D.D.D.D.D.D$.D.D.D.D.D.D.D.D.D.D13.D.D.
D.D.D.D.D.D.D.D13.D.D.D.D.D.D.D.D.D.D13.D.D.D.D.D.D.D.D.D.D13.D.D.D.D
.D.D.D.D.D.D13.D.D.D.D.D.D.D.D.D.D13.D.D.D.D.D.D.D.D.D.D13.D.D.D.D.D.
D.D.D.D.D$17D.D13.17D.D13.17D.D13.17D.D13.17D.D13.17D.D13.17D.D13.17D
.D$16D.D.D12.16D.D.D12.16D.D.D12.16D.D.D12.16D.D.D12.16D.D.D12.16D.D.
D12.16D.D.D$17D.D13.17D.D13.17D.D13.17D.D13.17D.D13.17D.D13.17D.D13.
17D.D$16D.D.D12.16D.D.D12.16D.D.D12.16D.D.D12.16D.D.D12.16D.D.D12.16D
.D.D12.16D.D.D$17D.D13.17D.D13.17D.D13.17D.D13.17D.D13.17D.D13.17D.D
13.17D.D$16D.D.D12.16D.D.D12.16D.D.D12.16D.D.D12.16D.D.D12.16D.D.D12.
16D.D.D12.16D.D.D$17D.D13.17D.D13.17D.D13.17D.D13.17D.D13.17D.D13.17D
.D13.17D.D$16D.D.D12.16D.D.D12.16D.D.D12.16D.D.D12.16D.D.D12.16D.D.D
12.16D.D.D12.16D.D.D$17D.D13.17D.D13.17D.D13.17D.D13.17D.D13.17D.D13.
17D.D13.17D.D$16D.D.D12.16D.D.D12.16D.D.D12.16D.D.D12.16D.D.D12.16D.D
.D12.16D.D.D12.16D.D.D$17D.D13.17D.D13.17D.D13.17D.D13.17D.D13.17D.D
13.17D.D13.17D.D$16D.D.D12.16D.D.D12.16D.D.D12.16D.D.D12.16D.D.D12.
16D.D.D12.16D.D.D12.16D.D.D$17D.D13.17D.D13.17D.D13.17D.D13.17D.D13.
17D.D13.17D.D13.17D.D$16D.D.D12.2D2C12D.D.D12.16D.D.D12.3DC12D.D.D12.
2D2C12D.D.D12.16D.D.D12.2D2C12D.D.D12.16D.D.D$17D.D13.3DC13D.D13.17D.
D13.D3C13D.D13.2DC14D.D13.17D.D13.2DC14D.D13.17D.D$16D.D.D12.3C13D.D.
D12.2C14D.D.D12.C15D.D.D12.CDC13D.D.D12.C15D.D.D12.CDC13D.D.D12.2C14D
.D.D$2C15D.D13.C16D.D13.CDC14D.D13.2C15D.D13.2C15D.D13.3C14D.D13.2C
15D.D13.C16D.D$.C14D.D.D13.15D.D.D13.DC13D.D.D13.15D.D.D13.15D.D.D13.
2DC12D.D.D13.15D.D.D13.3C12D.D.D$.CDC13D.D14.16D.D14.D2C13D.D14.16D.D
14.16D.D14.D2C13D.D14.16D.D14.2DC13D.D$.D2C12D.D.D13.15D.D.D13.15D.D.
D13.15D.D.D13.15D.D.D13.15D.D.D13.15D.D.D13.15D.D.D$.16D.D14.16D.D14.
16D.D14.16D.D14.16D.D14.16D.D14.16D.D14.16D.D$.15D.D.D13.15D.D.D13.
15D.D.D13.15D.D.D13.15D.D.D13.15D.D.D13.15D.D.D13.15D.D.D$.16D.D14.
16D.D14.16D.D14.16D.D14.16D.D14.16D.D14.16D.D14.16D.D$.15D.D.D13.15D.
D.D13.15D.D.D13.15D.D.D13.15D.D.D13.15D.D.D13.15D.D.D13.15D.D.D$.16D.
D14.16D.D14.16D.D14.16D.D14.16D.D14.16D.D14.16D.D14.16D.D$.15D.D.D13.
15D.D.D13.15D.D.D13.15D.D.D13.15D.D.D13.15D.D.D13.15D.D.D13.15D.D.D$.
16D.D14.16D.D14.16D.D14.16D.D14.16D.D14.16D.D14.16D.D14.16D.D$.15D.D.
D13.15D.D.D13.15D.D.D13.15D.D.D13.15D.D.D13.15D.D.D13.15D.D.D13.15D.D
.D$.16D.D14.16D.D14.16D.D14.16D.D14.16D.D14.16D.D14.16D.D14.16D.D$.
15D.D.D13.15D.D.D13.15D.D.D13.15D.D.D13.15D.D.D13.15D.D.D13.15D.D.D
13.15D.D.D$.16D.D14.16D.D14.16D.D14.16D.D14.16D.D14.16D.D14.16D.D14.
16D.D$.15D.D.D13.15D.D.D13.15D.D.D13.15D.D.D13.15D.D.D13.15D.D.D13.
15D.D.D13.15D.D.D$2.D.D.D.D.D.D.D.D.D15.D.D.D.D.D.D.D.D.D15.D.D.D.D.D
.D.D.D.D15.D.D.D.D.D.D.D.D.D15.D.D.D.D.D.D.D.D.D15.D.D.D.D.D.D.D.D.D
15.D.D.D.D.D.D.D.D.D15.D.D.D.D.D.D.D.D.D$.D.D.D.D.D.D.D.D.D.D13.D.D.D
.D.D.D.D.D.D.D13.D.D.D.D.D.D.D.D.D.D13.D.D.D.D.D.D.D.D.D.D13.D.D.D.D.
D.D.D.D.D.D13.D.D.D.D.D.D.D.D.D.D13.D.D.D.D.D.D.D.D.D.D13.D.D.D.D.D.D
.D.D.D.D$2.D.D.D.D.D.D.D.D.D15.D.D.D.D.D.D.D.D.D15.D.D.D.D.D.D.D.D.D
15.D.D.D.D.D.D.D.D.D15.D.D.D.D.D.D.D.D.D15.D.D.D.D.D.D.D.D.D15.D.D.D.
D.D.D.D.D.D15.D.D.D.D.D.D.D.D.D$.D.D.D.D.D.D.D.D.D.D13.D.D.D.D.D.D.D.
D.D.D13.D.D.D.D.D.D.D.D.D.D13.D.D.D.D.D.D.D.D.D.D13.D.D.D.D.D.D.D.D.D
.D13.D.D.D.D.D.D.D.D.D.D13.D.D.D.D.D.D.D.D.D.D13.D.D.D.D.D.D.D.D.D.D!
Code: Select all
x = 20, y = 40, rule = LifeHistory
D.D.D.D.D.D.D.D.D.D$.D.D.D.D.D.D.D.D.D.D$D.D.D.D.D.D.D.D.D.D$.D.D.D.D
.D.D.D.D.D.D$17D.D$16D.D.D$17D.D$16D.D.D$17D.D$16D.D.D$17D.D$16D.D.D$
D4.12D.D$5.11D.D.D$2.2C.12D.D$3.C.11D.D.D$3C2.12D.D$C4.11D.D.D$4.13D.
D$C4.11D.D.D$3C2.12D.D$3.C.11D.D.D$2.2C.12D.D$5.11D.D.D$5.12D.D$.15D.
D.D$.16D.D$.15D.D.D$.16D.D$.15D.D.D$.16D.D$.15D.D.D$.16D.D$.15D.D.D$.
16D.D$.15D.D.D$2.D.D.D.D.D.D.D.D.D$.D.D.D.D.D.D.D.D.D.D$2.D.D.D.D.D.D
.D.D.D$.D.D.D.D.D.D.D.D.D.D!
Code: Select all
x = 20, y = 40, rule = LifeHistory
D.D.D.D.D.D.D.D.D.D$.D.D.D.D.D.D.D.D.D.D$D.D.D.D.D.D.D.D.D.D$.D.D.D.D
.D.D.D.D.D.D$17D.D$16D.D.D$17D.D$16D.D.D$17D.D$16D.D.D$17D.D$16D.D.D$
D7.9D.D$9.7D.D.D$2.2C.2C3.7D.D$3.C.C5.5D.D.D$3C3.3C3.5D.D$C7.C4.3D.D.
D$8.C.C2.4D.D$C5.2C.2C2.3D.D.D$3C4.C5.4D.D$3.C.C.C4.4D.D.D$2.2C.2C3.
7D.D$9.7D.D.D$8.9D.D$.15D.D.D$.16D.D$.15D.D.D$.16D.D$.15D.D.D$.16D.D$
.15D.D.D$.16D.D$.15D.D.D$.16D.D$.15D.D.D$2.D.D.D.D.D.D.D.D.D$.D.D.D.D
.D.D.D.D.D.D$2.D.D.D.D.D.D.D.D.D$.D.D.D.D.D.D.D.D.D.D!
EDIT 4:
Result for 27 bit still lifes:
Strict still lifes: 60823008
Pseudo still lifes: 52816265