A density-focused view of ConwayLife

For general discussion about Conway's Game of Life.
Post Reply
MathAndCode
Posts: 5052
Joined: August 31st, 2020, 5:58 pm

A density-focused view of ConwayLife

Post by MathAndCode » June 15th, 2021, 6:42 pm

(This post is derived from a bunch of posts that I made in the Discord server, starting here.)
Many patterns oscillate in density. The most common oscillation is a p2 oscillation between dense (resulting in a lot of deaths from overpopulation) and sparse/edgeshot. (Good examples of this include the XWSSes, p4 emulators, toad, generations 5–18 of the pi-heptomino, and generations 6–9 and 14–27 of the R-pentomino.) However, other density oscillation periods can occur. The more exaggerated the density oscillations are, the less specific cell placement matters. At the most extreme density oscillation, the entire pattern either is a collection of small sparks in an edgeshootable arrangement or becomes that way by the next generation. Density oscillations often help destroy still lives, which more dense phases killing large groups of cells, including inducting regions, which allows overpopulation to occur again two generations later. (Again, higher-period density oscillations can occur but are less common.) For this reason, when I'm trying to stabilize a potential synthesis base, I focus on trying ways to perturb the region that will counteract/dampen the density oscillation that the base already has. (Before I originally had the idea of the density-focused view, I would try perturbations that reinforced the base's density oscillation as often as perturbations that dampened it, and these would pretty much always fail, sometime dramatically. Realizing this is what led me to conceive the idea of a density-focused view of ConwayLife in the first place.)
A density-focused view of ConwayLife can also help explain catalysts. For example, the first recovery phase of catalysts should be a less dense phase (immediately following a phase of overpopulation) so that the catalyst is separated from the chaos. On c/2 forward movement mechanisms, fishhooks tend to work more often than blocks. This is because fishhooks synchronize their density oscillations with those of the c/2 frontend so that this clearing occurs, while blocks' density oscillations are desynchronized with those of the c/2 frontend. A fishhook first interacts with a c/2 frontend when the frontend would otherwise have one leading cell, which is practically always the c/2 frontend's more dense phase, so the overpopulated phase of the fishhook corresponds to the overpopulated phase of the c/2 frontend, resulting in sufficient clearing that allows the fishhook to recover without having to hit the chaos again. On the other hand, a block first interacts with a c/2 frontend when the frontend would otherwise have three leading cells, which is practically always the c/2 frontend's less dense phase, so the more dense phase of the block corresponds to the less dense phase of the c/2 frontend. The result of this is that the cells in the frontend next to the block don't really die of overpopulation when the block wants them to because the block's more dense phase is counteracted by the frontends less dense, and these cells tend to mess up the block's recovery. Here is an example:

Code: Select all

x = 16, y = 12, rule = B3/S23
9bo$9b3o$b2o9bo$b2o8b2o6$b3o9b3o$o2bo8bo2bo$3bo11bo!
The block forms a preblock, which is a valid recovery phase, but this triomino is diagonally connected to another cell that was born because the overpopulation wasn't complete due to desynchronized density oscillations. This unwanted cell, as well as the other cells that it is connected to (that are also due to incomplete overpopulation) result in the block being destroyed. Meanwhile, when the fishhook enters its recovery phase, the area around it is clear except for a couple of small sparks that die by the next generation and do not interact with the fishhook, so the fishhook can recover unimpeded.
A density-based theory also explains why the block is more likely to be successful in the particular types of situations that it is actually more likely to be successful in. Here's an example

Code: Select all

x = 30, y = 25, rule = B3/S23
2b2o10b2o10b2o$2b2o10b2o10b2o2$3bo11bo11bo$2bobo9bobo9bobo$bo3bo7bo3b
o7bo3bo$bo3bo7bo2bo9bobo$bo3bo7bo2bo10bo$2bobo8bobo$3bo6$2b2o10b2o10b
2o$2b2o10b2o10b2o2$3bo11bo11bo$2b3o9b3o9b3o$b2ob2o7b5o7b2ob2o$3ob3o5b
3ob2o8b3o$b2ob2o6b2ob2o10bo$2b3o9bo$3bo!
In the top row, the first overpopulation phase of the block corresponds to an overpopulation phase of the active region. In the bottom row, the first overpopulation of the block corresponds to an underpopulation phase of the active region. This explains why attempted block catalyses are more likely to work with c/3 forward movement mechanism than c/2 forward movement mechanisms.
As another example, the following is a demonstration of the first phase of the B-heptomino with one live cell in the front row/column (corresponding to when the frontend is more dense for most c/2 forward movement mechanisms) where placing a block in either front-center position results in a successful catalysis (although the chaos comes back in each case):

Code: Select all

x = 15, y = 15, rule = B3/S23
b2o9b2o$b2o9b2o2$2bo9bo$b3o7b3o$o2bo6bo2bo$2o8b2o$bo9bo$3b2o8b2o$b4o6b
4o$o2bo6bo2bo$2bo9bo2$bobo7bobo$2b2o8b2o!
The reason that this is the first time that works is because the lower density for the frontend with three leading cells on the next generation is not as severe. (In fact, it is arguably in a mildly more dense phase.) Mainly, the center cell of the front row has four neighbors, not three, because neither of the cells diagonally behind it died from overpopulation from the previous generation (because that overpopulation was not as severe as in previous generations corresponding to the overpopulated phase of a c/2 forward movement mechanism), so that front-center cell actually dies by the next generation (which would result in a switch to a c/3 forward movement mechanism if the block weren't there), which corresponds to the first underpopulation phase of the block. Because the density oscillation of the frontend is not counteracting the density oscillation of the block, the block can clear the area of chaos with overpopulation then recover without being interfered with.
Even the exceptions prove the rule. For example, here is an example where the region to be eaten by the block (the bullet heptomino) is especially dense/overpopulated in the generation immediately before the block's first phase of overpopulation:

Code: Select all

x = 3, y = 6, rule = B3/S23
3o$3o$bo2$b2o$b2o!
The reason why the block successfully recovers is because the bullet heptomino's next dense/overpopulated phase (the doughnut octomino) is not two generations later but instead three generations later, so it aligns with a dense/overpopulated phase of the block, resulting in an overpopulation powerful enough to clear the chaos from the block so that it can recover.

Code: Select all

x = 12, y = 6, rule = B3/S23
3o6b3o$3o6b3o$bo8bo2$b2o$b2o!
[[ T 3 PAUSE 1 ]]
As yet another example, one reason why an eater 3 often works in certain situations where a fishhook fails is because with an eater 3, three cells are born during the initial interaction instead of two for a fishhook. This is a stronger overpopulation, and a stronger catalyst density oscillation can more easily overpower resistance/desynchronization from the chaos. Here's an example with a loaf predecessor:

Code: Select all

x = 28, y = 15, rule = B3/S23
2bo12bo$2bo12bo$3o10b3o$4b2o11b2o$4bobo9bo2bo2b2o$6bo9bobo4bo2bo$6b2o
9bo5bobobo$20b2obo2bo$20bo2bo$17bo4bo$17b5o2$19bo$18bobo$19bo!
As the last example for catalysts, consider this attempted block catalysis:

Code: Select all

x = 3, y = 9, rule = B3/S23
o$bo$bo$2bo$obo$bo2$b2o$b2o!
It fails because the density oscillation of the chaos counteracts that of the block, so the block cannot muster powerful enough of an overpopulation to clear the chaos from it in order to recover unhindered. This can be fixed by adding another catalyst (either a fishhook or a boat in the examples) to reinforce the density oscillation of the block, helping muster the necessary powerful overpopulation.

Code: Select all

x = 22, y = 13, rule = B3/S23
5bo13bo$6bo13bo$6bo13bo$7bo13bo$5bobo11bobo$6bo9bo3bo$15bobo$6b2o7b2o
3b2o$2b2o2b2o12b2o$bobo$bo$2o17b2o$19b2o!
If we replace catalysts with gliders, we can see that a density-focused view is also relevant for finding cleanups. Consider the following one-glider cleanup:

Code: Select all

x = 30, y = 38, rule = B3/S23
2bo$obo$b2o4$7bobo$8b2o$8bo2$11bo$12b2o$11b2o4bo$17bobo$17b2o9$14b2o2b
2o$15bo2b2o$12b3o$12bo5b2o$17bo2bo$18b2o7$28b2o$27b2o$29bo!
The glider is timed so that the overpopulation that it causes occurs when the section that it hits is already dense enough to be undergoing overpopulation. The glider makes the overpopulation more drastic, resulting in more drastic underpopulation in that section during the following generation. As a result, the chaos is smaller and therefore more likely to die quickly, which it goes.

In conclusion, a density-focused view of ConwayLife is a useful tool in several areas. Because of this, I believe that it merits further investigation.
Attachments
Mandelbrot density.png
Mandelbrot density.png (114.15 KiB) Viewed 1117 times

Post Reply