by Richard Taylor : 2022-01-22

I use the ZZ method for 3x3 solving. Originally I learned this using Conrad Rider's Tutorials and Phil Yu's YouTube Videos which are both excellent.

This article is for people who know how to use ZZ, but cannot yet plan the whole EOLine step in the 15 seconds allowed for inspection at competitions. If you've ever been at a competition and heard the judge say "12 seconds" when you still haven't a clue how you are going to start your solve... then I feel your pain.

Most people start using ZZ by solving edge orientation first, then placing the two line pieces as a second step. This works fine, as long as you don't lose track of the line pieces, or place them in an awkward position. It also feels like "beginner mode" since we know there are people who can do the whole EOLine in one step. We also know that on average there is a 6 move optimal solution... so how hard can it be?

My first attempt to improve my EOLine was to do what the tutorials suggest and think about where the line pieces will end up when solving orientation. This helped a bit, but I still found it really hard and often went wrong. So then I started looking at some optimal solutions to see if there were any tricks I was missing.

Several tools will show you an optimal EOLine for a particular scramble. The problem is that these optimal solutions are often just baffling. They look like you would never be able spot them in 15 seconds. For example this scramble:

```
R U L R U L F2 U B' L U2 F D
```

Has an optimal 7 move EOLine:
```
L2 U2 B L' U' D B
```

Which obviously is problematic because most of the action is happening out of
sight with those B turns. That brings me to my first
tip: if you normally solve with white on the bottom and green at the front,
then it is definitely worth learning to solve with either green at the front or
blue at the front. If you do so then you can switch the L turns for R turns and switch the
B turns for F turns to get
this EOLine from the opposite side:
```
y2 R2 U2 F R' U' D F
```

y2 means rotate the whole cube 180 degrees (back goes
to front).
This looks a bit better. But that R2 U2 F at the start looks weird because it moves the green-white line piece onto the blue face, which is very counter-intuitive.

But don't worry. This is only one of the optimal solutions! I wrote a tool to show all the optimal solutions for a given scramble, and the results are often quite interesting. Let's look at our scramble again:

```
# SCRAMBLE="R U L R U L F2 U B' L U2 F D"
# bin/eoline "${SCRAMBLE}"
INFO: Looking for a solution with 1 turns.
INFO: Looking for a solution with 2 turns.
INFO: Looking for a solution with 3 turns.
INFO: Looking for a solution with 4 turns.
INFO: Looking for a solution with 5 turns.
INFO: Looking for a solution with 6 turns.
INFO: Looking for a solution with 7 turns.
INFO: Solving time: 14.827 seconds.
Solutions:
D' F' U2 L' B U' F2
D F' U2 L' B U' F2
R2 F' U' L R' D B'
R2 F' L U' R' D B'
R2 F U' R' D' L2 B'
R2 F U' L R' D' B'
R2 F L U' R' D' B'
R2 U' R' D' B' U2 F
R2 U' R' D B' U2 F
R B' D' F' B' L D
R B' D' F' B L D
R B' D F B' R' D'
R B' D F B R' D'
L2 U2 B L' U' D B
```

(Note that this solves for orientation with respect to the z-axis and places
the line on the bottom. So assuming you scramble with white at the bottom and
green or blue at the front, then the line will be green-white, white centre,
white-blue)
There is our previous solution at the end, but it is only 1 out of 14 solutions with 7 turns. Let's take a look at the first one D' F' U2 L' B U' F2.

Well, the first move D' makes sense, because it places a bad edge on the front and another on the back. This is a 6 bad-edge case so that gives us 3 bad edges on the front and we know that F or F' now will leave us with 4 bad edges. In this example F' feels good because it places the two line pieces on opposite sides of the cube.

So those first two moves look like something I should be able to figure out.
What's next? There are now 4 bad edges left and 2 of them are placed on the
back face - clearly U2 L' places the other two edges
onto the back face. Notice how the blue-white edge is on the left, so we want
to do a B to fix those 4 edges *and* place the
line piece in its final place.

Now we have fixed all the edges and placed a line piece, we just have to place the final line piece, which is right there on the top, so clearly U' F2 does the job.

So this optimal solution definitely looks like something you might be able to spot in 15 seconds. Also, even if you only managed to spot the first 5 moves, which solve orientation and place one of the line pieces, then the final 2 moves are trivial to add during execution.

I think this shows that there are definitely lessons to be learned from studying the full range of optimal solutions.

We know that the most likely number of bad edges in a scramble is 6. So if
we want to investigate the other cases then we might have to try a lot of
scrambles. Instead I added a `-b`

option to my EOLine solver to
specify how many bad edges I want. It then generates a scramble with that many
bad edges and all the optimal solutions:

```
# bin/eoline -b 2
INFO: Looking for a solution with 1 turns.
INFO: Looking for a solution with 2 turns.
INFO: Looking for a solution with 3 turns.
INFO: Looking for a solution with 4 turns.
INFO: Looking for a solution with 5 turns.
INFO: Looking for a solution with 6 turns.
Scramble:
D' L' F D' F' D
INFO: Solving time: 1.12074 seconds.
Solutions:
D' F D F' L D
D2 L' U' F D2 F
D F D' F R' D'
D L D B R2 B'
D L D F D2 F'
L' U' D2 F D2 F
L D' F D F' D
L D' F D F D
```

Notice that the scramble is just the EOLine part; if you want the cube to "look
more scrambled" then just spam random combinations of R U
L turns first. Or scramble the cube, solve EOLine yourself, then apply
the EOLine scramble.
This tool gives you a way to try out lots of 6 bad-edge cases one after the other, or a set of 2 bad-edges cases, or 12 ... whatever you want. If you ask for an odd number then it will try forever to find one, just to teach you a lesson :-)

Improving at EOLine can be really tough, as many of the tutorials point you in the right direction but then leave you to find your own way. That's inevitable because there is no single best way to do it: for proof you just have to look at how many different optimal solutions the typical scramble has.

To find your personal way it helps to have lots of examples; these tools
give you as many as you will ever need. With practice you *will* be
able to find optimal, or near optimal, EOLine solutions at least some of the
time.

In the next article I will share some of the tricks I learned to cover the
gap between when you can *nearly* solve EOLine in 15 seconds and when
you can actually do it.