What is the optimal and average number of moves for the first layer?

rybaby

Veteran
Joined
May 12, 2013
Messages
548
Location
Texas
WCA ID
2013PRZY02
YouTube
Visit Channel
In other words, what is the highest number of moves ever needed to solve one layer? I think the max for cross is 8 and average is 6, but correct me if I'm wrong.
There seem to be three main approaches:
1. Beginner: solve a cross, then place corner pieces individually.
2. Marc Waterman algorithm solve two adjacent corners, then solve the next two simultaneously. Place on edge, then the center plus another edge, and finally place the last two edges. Of course, the order can vary depending on the scramble.
3. Blockbuilding: I'm thinking Roux block, then corners, then the last edge. But thus is pretty open ended.

Of those, the latter 2 seem to be the most efficient. Marc Waterman says using his approach, the layer should take no more than 20 moves (see rubikscube.info). I read somewhere that a Roux block can be done in 8 moves or less.

Thanks in advance!
 
As far as optimal FTM/QTM solving is concerned:

The worst case FTM distance is 12.
The worst case QTM distance is 15.
The average FTM distance is ~ 10.0519
The average QTM distance is ~ 11.5994

Details:
Code:
FTM
distance    positions
  0               1
  1              15
  2             198
  3            2522
  4           31641
  5          386099
  6         4571183
  7        51639557
  8       527282834
  9      4112241789
 10     14504091929
 11      6647321132
 12        18517500
        -----------
        25866086400

QTM
distance    positions
  0               1
  1              10
  2              93
  3             856
  4            7550
  5           65324
  6          559498
  7         4699128
  8        38112557
  9       288342358
 10      1859978709
 11      8071951767
 12     13129334815
 13      2470243200
 14         2790514
 15              20
        -----------
        25866086400
 
The average FTM distance is ~ 10.0519
The average QTM distance is ~ 11.5994
[Details...]

Assuming that's for fixed color and assuming the colors are independent (they're not quite, but I'm guessing close to it), here are stats for being color neutral:

Code:
      1 colors    2 colors    3 colors    4 colors    5 colors    6 colors
 12   0.071590%   0.000051%   0.000000%   0.000000%   0.000000%   0.000000%
 11  25.698983%   6.641173%   1.711481%   0.441059%   0.113663%   0.029292%
 10  56.073778%  60.343754%  53.111939%  44.428814%  36.609793%  30.026783%
  9  15.898199%  28.551082%  38.555961%  46.401515%  52.487525%  57.141014%
  8   2.038510%   4.026539%   5.965236%   7.855724%   9.699101%  11.496441%
  7   0.199642%   0.398808%   0.597500%   0.795718%   0.993464%   1.190738%
  6   0.017672%   0.035341%   0.053006%   0.070668%   0.088326%   0.105980%
  5   0.001493%   0.002985%   0.004478%   0.005971%   0.007463%   0.008956%
  4   0.000122%   0.000245%   0.000367%   0.000489%   0.000612%   0.000734%
  3   0.000010%   0.000020%   0.000029%   0.000039%   0.000049%   0.000059%
  2   0.000001%   0.000002%   0.000002%   0.000003%   0.000004%   0.000005%
  1   0.000000%   0.000000%   0.000000%   0.000000%   0.000000%   0.000000%
  0   0.000000%   0.000000%   0.000000%   0.000000%   0.000000%   0.000000%
avg  10.0519      9.6868      9.4920      9.3563      9.2485      9.1585
Code:
dists = list(map(int, '''0               1
  1              15
  2             198
  3            2522
  4           31641
  5          386099
  6         4571183
  7        51639557
  8       527282834
  9      4112241789
 10     14504091929
 11      6647321132
 12        18517500'''.split()[1::2]))

print('  ' + "".join('    {} colors'.format(i+1) for i in range(6)))
runP = [0] * 6
avg = [0] * 6
total = sum(dists)
rp = 0
while dists:
    p = dists.pop() / total
    rp += p
    stats = '{:3}'.format(len(dists))
    for i in range(6):
        pi = rp ** (i+1) - runP[i]
        avg[i] += pi * len(dists)
        runP[i] += pi
        stats += '  {:9.6f}%'.format(100 * pi)
    print(stats)
print('avg' + "".join('  {:7.4f}   '.format(a) for a in avg))
Code:
      1 colors    2 colors    3 colors    4 colors    5 colors    6 colors
 15   0.000000%   0.000000%   0.000000%   0.000000%   0.000000%   0.000000%
 14   0.010788%   0.000001%   0.000000%   0.000000%   0.000000%   0.000000%
 13   9.550124%   0.914109%   0.087397%   0.008356%   0.000799%   0.000076%
 12  50.758876%  35.470658%  21.859818%  13.230158%   7.984645%   4.816726%
 11  31.206699%  47.386210%  54.725419%  56.937255%  56.243973%  53.970126%
 10   7.190801%  13.680051%  19.528379%  24.791263%  29.519462%  33.759421%
  9   1.114751%   2.213330%   3.295948%   4.362814%   5.414131%   6.450104%
  8   0.147346%   0.294413%   0.441204%   0.587717%   0.733954%   0.879916%
  7   0.018167%   0.036330%   0.054489%   0.072643%   0.090794%   0.108940%
  6   0.002163%   0.004326%   0.006489%   0.008652%   0.010815%   0.012977%
  5   0.000253%   0.000505%   0.000758%   0.001010%   0.001263%   0.001515%
  4   0.000029%   0.000058%   0.000088%   0.000117%   0.000146%   0.000175%
  3   0.000003%   0.000007%   0.000010%   0.000013%   0.000017%   0.000020%
  2   0.000000%   0.000001%   0.000001%   0.000001%   0.000002%   0.000002%
  1   0.000000%   0.000000%   0.000000%   0.000000%   0.000000%   0.000000%
  0   0.000000%   0.000000%   0.000000%   0.000000%   0.000000%   0.000000%
avg  11.5994     11.1814     10.9434     10.7763     10.6501     10.5501
 
(Intentional double post.)

Another question that I've been wanting the analysis of?

Which, if each substep is done optimally, 2-step method is the best (ignore recognition)?

1x2x3, 1x1x3
Corners, Edges
Edges, Corner
Other?

Here is what I get for some 2-step first layer move counts. A fixed first layer is assumed, and if the first step makes a block, a fixed block is assumed. All move counts are for face turn metric. The two steps are regarded as independent and there is no consideration of possible cancellations of moves between the steps.

Code:
1st step goal   worst case           average

1x2x3 		9 +  9 = 18    7.1299 + 6.5535 = 13.6834

1x1x3 outer     7 + 12 = 19    4.8748 + 9.1929 = 14.0678    (corner-edge-corner)

1x1x3 inner     5 + 12 = 17    3.3333 + 9.7039 = 13.0372    (edge-center-edge)

corners         7 + 12 = 19    5.2917 + 9.8862 = 15.1779

edges           8 + 12 = 20    5.8121 + 9.2183 = 15.0304

(Note: One of the sums may appear slightly "off" because of rounding effects.)

Details:
Code:
   Step 1                Step 2
dist  positions       dist  positions

1x2x3:

  0         1           0         1
  1        12           1         3
  2       132           2         9
  3      1406           3        42
  4     14099           4       156
  5    122279           5       491
  6    797145           6      1297
  7   2638638           7      2068
  8   1715068           8       771
  9     33460           9        22
 
total 5322240                  4860

1x1x1 corner-edge-corner

  0         1           0         1
  1        12           1         3
  2       104           2         9
  3       615           3        51
  4      2666           4       250
  5      6045           5      1405
  6      2559           6      9021
  7        94           7     55668
                        8    293469
                        9    949576
                       10    806192
                       11     22754
                       12         1

total   12096               2138400

1x1x1 edge-center-edge

  0         1           0         1
  1         9           1         6
  2        62           2        27
  3       215           3       177
  4       223           4      1239
  5        18           5      8637
                        6     60391
                        7    419171
                        8   2697845
                        9  13257719
                       10  26849310
                       11   5690815
                       12      3462

total     528              48988800


Corners

  0         1           0         1
  1        15           5        54
  2       198           6       176
  3      2030           7      1315
  4     15396           8      7704
  5     61768           9     38927
  6     53528          10    104451
  7      3144          11     37276
                       12       176

total  136080                190080

Edges

  0         1           0         1
  1        15           3        24
  2       158           4        28
  3      1394           5       282
  4      9809           6      1395
  5     46381           7      4598
  6     97254           8     17932
  7     34966           9     52964
  8       102          10     55272
                       11      3580
                       12         4

total  190080                136080
 
Last edited:
Back
Top