dvgrn wrote:> I was thinking how we can define CGOL as containing creatures that will control their environment out of infinite random soup....
> Do you think such task is even doable in cgol? Do we have such "probes" of a sort?
A GPC hooked up to a universal constructor is certainly capable of
setting up a specific "cleaning" reaction at each cell in an
arbitrarily large range, say a glider hitting a sacrificial block like
this to clear out blocks if they exist at the very edge of the current
range:
Code: Select all
x = 52, y = 9, rule = LifeHistory
4.2A18.2A18.2A$4.2A18.2A18.2A4$11.2C38.C$3A8.2C7.3A7.3C7.3A8.C$2.A19.
A19.A8.C$.A19.A19.A!
This one works for one phase of blinker (creating a block slightly
farther away which will be cleaned up in a later cycle) -- but not the
other phase, so we'd need something better than this. Also of course
if the first blinker phase is too close to some other still life, or
if it's part of a traffic light, or if the test reaction hits a
honeyfarm instead, all bets are off.
Basically, if Conway's Life were one of those rules where there are
only a couple of kinds of still life, plus a few really really rare
things, then we might get away with building some kind of guard fence,
reaching out through it with a construction arm, cleaning out a large
space by testing one cell at a time, and maybe returning a "success"
signal after each time that nothing unexpected happened. Whenever a
signal fails to come back, you start cleaning the entire space again.
That way if you hit one of the really rare things that your cleanup
reaction wasn't designed to handle, the odds are that you'll turn it
into a bunch of common stuff, and the cleaning will be successful the
next time through... except you might want to tear down and rebuild
the guard fence before every attempt, to be safe.
But in B3/S23, there are thousands of different objects that you're
bound to come across while trying to clean out random ash, if you
include pseudo-objects and various common closely-spaced
constellations that might get sparked into an explosion when one of
their components gets "cleaned". The explosions can be a fairly large
step backward in the cleaning process, and so far no one has come up
with a specific cleaning reaction that, on average, reliably reduces
the population of Unknown Ash Space.
Part of the problem is that we don't have a really reliable guard
fence, either. The best known arrangement is a thick layer of widely
spaced blocks, just far enough apart that a pi explosion from one
block doesn't touch any other blocks, and thick enough that there are
no open paths all the way through the blocks. That way, at least
singleton gliders will never create new gliders inside the guard fence
and create a chain reaction that way.
But unexpected explosions in Unknown Ash Space very regularly create
two gliders in the same direction, and quite often they make *WSSes,
and sometimes they make block-laying or glider-producing switch
engines... and again all bets are off. It's very difficult to find a
mechanism that can reliably recover if it's cleaning out a 100Kx100K
space, and happens to spark a GPSE aimed unluckily right at the
mechanism, starting from the far edge of that space.
A shorter answer: this topic has come up every half-decade or so, on
the LifeCA mailing list and on the conwaylife.com forums, but so far
no specific "cleaner-on-average" mechanisms have been suggested, Given
the existence of GPSEs and BLSEs, especially, the odds don't seem
terribly good that any such thing exists. At the very least, they're
apparently hard to find!