Page 1 of 1

Glider-Dependent Clean Destruction of Circuit

Posted: September 7th, 2016, 2:14 pm
by Rhombic
Adding a number of still lifes to a circuit, especially those with gliders as output, can be very useful to completely destroy the circuit in certain conditions. I thought about a way in which it would only happen when there is an output from the circuit and an external factor, such as a glider, in an AND gate fashion. A glider seems the best external factor to use. A lane with some gliders (that could be periodically emitted or dependent on yet another factor) that will not interact with the circuit but will do so with its output is the main idea.

I'm referring to this solution, for example. Note the additional glider lane that does not interact with the still lifes unless the output from the circuit is also present (AND).

Code: Select all

x = 76, y = 45, rule = LifeHistory
42.A$43.A$41.3A$2.A$A.A$.2A10$52.A$53.A9.2A$51.3A9.2A7$61.2A11.2A$60.
A2.A10.2A$60.A.A$43.2C16.A$43.2C3$60.2A$61.A$58.3A$58.A8.2A$67.2A2$
64.2C$63.C2.C$63.C.C$64.C$52.C$51.C.C$50.C2.C$51.2C!
The benefits are that you can set up the circuit directly with the still lifes instead of having to accurately time their synthesis. Then, simply with a single glider, you can break it up leaving no trace. Sounds like a good deal to me! (and, let's face it, an additional cost of 5G in the synthesis of the circuit is greatly compensated by an extremely easy destruction that only needs one glider! glider destructions would need more gliders, each one of them properly timed and maybe interfering with other sections of a larger pattern).
To calculate the positioning of the extra still lifes or blinkers, simeks' self-destruct search program is very efficient and user-friendly.

----

I want to emphasise a particular case, which is that using the G+G-->G reaction that reflects a glider. With G1 being the conditional glider and G2 an output glider from a circuit, destructions like this one can be achieved:

Code: Select all

x = 39, y = 14, rule = LifeHistory
26.3A$.2A23.A$A.A22.3A$2.A2$37.2A$37.2A3$30.2A$30.2A5.C$36.C.C$36.C.C
$37.C!
This has an immense potential because it allows an unsurpassed flexibility when choosing the lane for G1 (in essence, you can move it left or right as much as you want, with the same result):

Code: Select all

x = 149, y = 14, rule = LifeHistory
136.3A$.2A133.A$A.A132.3A$2.A2$147.2A$147.2A3$140.2A$140.2A5.C$146.C.
C$146.C.C$147.C!

Re: Glider-Dependent Clean Destruction of Circuit

Posted: September 8th, 2016, 8:54 am
by Rhombic
A further example, with SW4T44:

Code: Select all

x = 29, y = 57, rule = LifeHistory
22.A$20.3A$19.A$19.2A$27.2A$27.A$25.A.A$19.A5.2A$19.A.A$19.3A$21.A8$C
$C$C4.2C$4.C2.C$4.C.C11.2A$5.C12.A.A$19.2A5.2C$26.2C$16.2A$17.A$14.3A
$14.A25$27.A$26.2A$26.A.A!

Re: Glider-Dependent Clean Destruction of Circuit

Posted: September 8th, 2016, 1:33 pm
by dvgrn
Rhombic wrote:A further example, with SW4T44...
I always liked the idea of a set of Herschel conduits with self-destruct circuitry built in. I.e., you could pick any conduit to start, and no matter what additional conduits you add, you could still destroy them all with the same trigger signal hitting that first conduit.

Turns out that's a very tall order. Herschel circuitry is fairly messy, and often adjustments are needed to make one conduit work correctly with the next. The simplest example is dependent vs. independent conduits, and variants where an eater may need to be present or absent depending on whether the next conduit's glider has to be used for cleanup or not. And those are the easy cases -- but they're not easy when it comes to finding self-destruct circuitry that works equally well for all possible types of connections.

An example for the above SW4T44 cleanup: if you get to SW4T44 by using an F116 conduit, there's no room for that particular solution.

Code: Select all

x = 51, y = 65, rule = LifeHistory
17.A$17.3A$20.A$19.2A4.2B$15.B3.8B$13.4B4.7B$12.6B.9B$12.6B.10B$11.
19B14.A$10.19B13.3A$10.17B14.A$11.15B15.2A$9.17B23.2A$7.21B12.4B5.A$
7.2BD21B3.2B2.6B3.A.A$6.3BDBD4B.24BC2B3.2A$7.2B3D4B2.23BCBC$6.5BD4B2.
23B3C$5.10B4.24BC$4.4B10.26B$4.3B12.16B.B.B3.2B$2.4B13.12B$2.2A15.9B$
3.A14.11B$3A16.7B.B2A$A20.4B2.BA.A$20.BAC2B5.A$21.AC7.2A$22.D4.2D$26.
D2.D$26.D.D11.2A$27.D12.A.A$41.2A5.2C$48.2C$38.2A$39.A$36.3A$36.A25$
49.D$48.2D$48.D.D!
Summary: this is definitely a very powerful technique, but there doesn't seem to be any likely way to standardize it in advance.

Any particular solution you come up with for a single specific conduit like SW4T44 -- or even a mechanism that will usually be better separated from surrounding circuitry, such as a Snark reflector -- is almost certain to end up being seriously suboptimal when you try to use it in any larger context.

Seems simpler to wait until you have a complete circuit, or at least a large isolated piece of circuitry. Then you'll be able to see where a self-destruct signal can reasonably come from, and figure things out from there.

Re: Glider-Dependent Clean Destruction of Circuit

Posted: September 10th, 2016, 5:01 am
by Rhombic
dvgrn wrote: An example for the above SW4T44 cleanup: if you get to SW4T44 by using an F116 conduit, there's no room for that particular solution.
In that case, for single circuits, we can only rely on placing these additional still lifes behind the actual circuit. In a few cases, the backwards glider will be able to create debris/general chaos behind the circuit (i.e. in the area where no other circuit would be present). With sufficiently well-planned boundaries in the destruction, a dozen or so generic self-destructions should be possible to build for the circuits that allow this (most won't, though).

Alternatively, this could also be used, as you said, for larger pieces of circuitry once it's needed.