# User:Prime Raptor21/Tutorials: Randomized RLS technique

The randomized RLS technique is a technique for finding novel technology. It has been successfully applied to 2c/4 in Life, resulting in spaceships and puffers of many periods. The technique consists of simply running spaceship searches while enabling the option in RLS to pick random choices for unknown cells. Once a search is complete, simply analyze the output ship for thin connections, and when they appear, try to remove the backend and restabilize them. Sometimes, you'll get a high-period spaceship or puffer out of it. While this technique is simple, a lot can be done to increase one's output.

## Choosing a symmetry

This section only applies to 2c/4 in Life specifically.

This may sound trivial, but it's not. Asymmetry is actually the easiest to search here. I find that w12a and up work well for me, and this is where the bulk of my results come from. The difficulty with symmetric searching is that RLS tends to dump large P2 components on you, which is not helpful for thin connections.

From Sokwe: w15o has been determined to be XWSSes, XWSS flotillas, x66s, and hivenudgers. w18e has been determined to just be XWSSes.

To avoid large P2 components, one useful method is to "seed" RLS with frontends that don't often connect to large P2 components. Here are some seeds for this purpose.

```x = 25, y = 5, rule = LifeHistory
25B\$25B\$2B3A3B3A3B3A3B3A2B\$BA2BA3BA2BABA2BA3BA2BAB\$4BA3BA7BA3BA4B!```
```x = 15, y = 17, rule = LifeHistory
15B\$15B\$3BA7BA3B\$2B3A5B3A2B\$2BAB2A3B2ABA2B\$3B3A3B3A3B\$.2B2A5B2A2B\$.13B
\$2.5BA5B\$2.4B3A4B\$2.2B2ABAB2A2B\$2.5BA5B\$2.2BAB3ABA2B\$3.2B5A2B\$3.9B\$4.
7B\$3.B7.B!```
```x = 25, y = 9, rule = LifeHistory
25B\$25B\$B3A4B3A3B3A4B3AB\$A2BA3BA2BA3BA2BA3BA2BA\$A3BA2B2ABA3BAB2A2BA3B
A\$6B2A2B2AB2A2B2A6B\$2A3BA13BA3B2A\$7BA2B2AB2A2BA7B\$B5A3B2A3B2A3B5AB!```
```#C Needs at least w19o
x = 19, y = 15, rule = LifeHistory
4.11B\$3.13B\$2.3B3A3B3A3B\$2.2BA2BA3BA2BA2B\$2.2BA3BABA3BA2B\$2.3B2A5B2A3B
\$2.2B2A7B2A2B\$2.3B3A3B3A3B\$3.2B3A3B3A2B\$3.13B\$4.3BA3BA3B\$5.2BA3BA2B\$5.
9B\$6.2B3A2B\$6.2B3A2B!```

## Spaceship analysis

In many cases, nothing needs to be done to restabilize the frontend. For example, I originally used randomization in an attempt to find a high-clearance back V-sparker to stabilize some other spaceship backend, but one of RLS's outputs was this.

Notice that there is an HWSS+half-x66 in the front, with a tagalong behind it. Note further that there is a thin connection in the tagalong. When I tried removing the back, out came a puffer!

Sometimes though, more effort is required. Let's look at some of these cases, starting with this puffer.

### Example puffer #1

Notice the HWSS in the back. If we remove it, the entire thing blows up.

So, what does the HWSS do? It simply stabilizes the engine. The kind of stabilization demonstrated here is one of the simpler ways that an engine might require stabilization. In this case, a piece of junk sticks to the engine, killing it, so we suppress it with a sparker.

### Example spaceship #1

This is a very nontrivial stabilization.

If we remove the HWSS, the spaceship blows up.

The reason why this is nontrivial is because in this case, it doesn't appear to be possible to stop the junk from sticking to the engine. Instead, the HWSS lets the engine SURVIVE being stuck to by the junk, instead of AVOIDING being stuck to by the junk.

### Example puffer #2

The left HWSS is relatively nontrivial; preventing junk from sticking to this engine is relatively difficult, and the HWSS is not at all obvious. However, the least obvious thing here is probably realizing that there might even be a viable engine here. The connection here is a bit thicker than usual, and removing the backend causes part of the frontend to become P8 instead of P4, further hiding the possibility of a stabilization. In fact, I don't even know how I realized that this could be viable.

## JLS

Due to the lack of randomness, JLS isn't as useful for randomized searching as RLS. However, it is far easier to input partial results into it. Even deterministic searching can sometimes be useful.

### Example spaceship #2

I noticed that hitting the back of the "bulb" in the right way would create a P8 spaceship. I was able to find a way to do so via JLS.

### Example spaceship #3

This was a far more difficult search. Here, an HWSS and an unnamed component help carry a B-heptomino upwards at 4c/8 orthogonal.

### Example puffers #3 and #4

Both were spotted from thin connections DURING a JLS search, as opposed to from looking at a result. In both cases, some constraint I had placed caused JLS to be unable to complete the object into a spaceship. Note that the second puffer here actually came from an attempt to find 4c/8 spaceships by extending from the beehive and two MWSSes. Remove the back and you get a P24 puffer instead. The first puffer actually dates from September 2020 or so; I likely considered it a one-off and didn't realize that other engines could be found from these searches. jslife-moving-master also had a smaller puffer with identical ash, so this puffer got stuck into a file and forgotten about for around 18 months or so. :(

## Hold on to every ship you find

I'm talking about the low-period spaceships straight out of RLS or JLS (or WLS!). Post every ship you find. Now, I don't mean "one ship per forum post", or even "one ship per edit". "One ship per post" would quickly spam wherever you posted them to, and "one ship per edit" would quickly eat up your time scrolling to the end of your post. Instead, stick them in a file. The text editor will scroll with you. Once you get a bunch of ships in that file, post that, and start a new one. I usually do a few hundred ships per file, though you might want to do more or less depending on your search speed. Note that you don't have to post the ships on the forums; you may also want to consider posting them to a GitHub repository.

But what's the point?

### Example puffer #5

This is an extreme case, but it'll serve to show my point. The left spaceship was originally found as a dimer in September 2020 or so. That sparker search I mentioned earlier caused me to suddenly remember that old P16 puffer, so I found my old spaceship file. In addition to digging up that old P16 puffer, I also dug up that ship. I noticed that when I removed the back, it moved for a while, then broke. I tried to stabilize it, but to no avail. Then I noticed that while it was gutter-symmetric, only the front x66 actually relied on the gutter. The rest did not. So I tried replacing half of the ship with an HWSS. That part worked, but the ship still exploded without the back. However, I was given a new surface to attack the back with. This time, I got it, with two different stabilizations.

## Feed truncated spaceships into a stdin symmetry

One way to do this is to keep spaceships in a temporary file ("box"), until you have a few hundred or so (see above). This box should have the spaceships in separate RLEs, one per spaceship. Once you're ready, you can use this script to create all possible truncations for each ship in the box.

```var slice=function(rle){
rle=rle.substring(0,rle.length-1);//Remove the ending "!"
rle=rle.split("\$");
while(rle.length){
console.log(rle.join("\$")+"!");
rle.pop();
}
};
var fs=require("fs");