From cube-lovers-errors@mc.lcs.mit.edu Wed Dec 23 17:40:01 1998 Return-Path: Received: from sun28.aic.nrl.navy.mil (sun28.aic.nrl.navy.mil [132.250.84.38]) by mc.lcs.mit.edu (8.9.1a/8.9.1-mod) with SMTP id RAA08319 for ; Wed, 23 Dec 1998 17:40:01 -0500 (EST) Precedence: bulk Errors-To: cube-lovers-errors@mc.lcs.mit.edu Message-Id: <36816C59.1204@hrz1.hrz.tu-darmstadt.de> Date: Wed, 23 Dec 1998 23:19:05 +0100 From: Herbert Kociemba Reply-To: kociemba@hrz1.hrz.tu-darmstadt.de To: cube-lovers@ai.mit.edu Cc: michael reid Subject: Re: Optimal Cube Solver References: <199812222337.SAA26516@adams.math.brown.edu> michael reid wrote: > since this big table is sparse, we don't need most of it. what i > should do is have another table (11880 char's) to transform "sliceedges" > into permutations of four edges. the location of the four R-L slice > edges determines the location of the four F-B slice edges, so we only > need to know how they're permuted. thus the big table can be replaced > by one with 1680 * 24 shorts that gives the permutation of the eight > U and D edges. it no longer would have error-checking (i.e. making > sure we don't get an invalid entry in the big table), but that could > be installed with another simple table lookup, if desired. > > with this new mechanism, only about 543K of tables would be needed, > the largest being a lookup table which tells how "sliceedges" > transform under face turns. this is much better than the 6 megabytes > of tables i'm currently using. i don't know why i didn't think of > this earlier! > > mike Is it necessary to use the table for the map from the "sliceedges" to the 1680 "4 out of 8"-coordinate at all? I think you constructed this "helper"-coordinate, because a 11880*11880 table-size was too big and 1680*1680 was reasonable. But 11880*24 also is small (just twice as much as the lookup table which tells how "sliceedges" transform under face turns). In the way I construct the sliceedge-coordinate x, the x mod 24 gives the permutation part, x/24 the location part. So I could compute the edge-coordinate at the start of phase 2 with M[x][y mod 24], where x and y are the RL- and FB-sliceedge coordinates and M is a table with 11880*24 shorts. So I need only one tablelookup to get the coordinate. Herbert