Message #243

From: Roice Nelson <>
Subject: Re: [MC4D] 2^d and 3^d solve function
Date: Mon, 15 May 2006 11:05:02 -0500

Awesome Don! This is really cool and impressive, and it would be sweet to
incorporate it (probably wouldn’t be too bad, perhaps just involving a
function to convert between our different internal representations of the
puzzle. Incorporating java into our c++/c# code might be a little difficult
too, not sure yet). In the mean time, are you interested in posting this
online? I could link to you if you posted it yourself, or would be happy to
post it for you as well on the MC5D page.

I have an interest in studying how you did this because one thing I thought
would be entertaining to work on at some point is using computers for
shortest solutions. I thought the genetic algorithm might be well suited,
and my approach would be to use a GA to optimize the number of preliminary
moves before performing sequences (I don’t think a GA on a full puzzle would
ever realistically get anywhere). Anyway, I’ll be interested to look at how
you place the pieces in your code, specifically how you do preliminary moves
before running a cycling sequence.

Your observations on the pieces are interesting. The lack of parity of the
2^4 does surprise me. I remember having parity problems on the 4^4 that
required undoing a portion of my solution while working on that guy (aside:
now I wonder if it is possible to have parity situations only with certain
solution approaches though). Assuming it does have parity, perhaps the
parity goes away for a 4^d puzzle for some larger d though. On the corner
piece observation, I had noticed a corner piece twirl possibility on the 3^5
while trying to generalize my main MC4D corner sequence. The one I came up
with cycles three 5-colored cubies, but ends up twirling a 4th. I haven’t
gotten to the end yet, so I wasn’t sure if I was going to have to deal with
a single twirled piece or not, but it is nice to see it won’t be a problem
regardless :)


On 5/15/06, Don Hatch <> wrote:
> Hi folks,
> Sorry I’ve been out of the loop, I have not tackled my spam problem yet
> and have been simply avoiding my mailbox :-(
> But Melinda showed me Roice and Charlie’s 5d program the other day
> when I was visiting… awesome, you guys :-)
> Attached is a general function to solve the n^d puzzle
> (length n = 2 or 3, any number of dimensions d >= 3).
> It should be easy to plug this into
> Melinda’s and/or Roice&Charlie’s program, if you are so inclined.
> (I wrote it in java this time to make it easy on you :-) )
> A couple of surprising facts I discovered while doing this–
> not sure whether they are already well-known?
> - The notion of parity (i.e. whether the solution will have
> an even or odd number of twists)
> does not exist for 2^d puzzles with d >= 4;
> that is, for such puzzles, there is a sequence of an odd number
> of 90 degree twists that will bring the solved puzzle
> back to solved state (unlike the 2^3, and n^d with n odd,
> all of which have a parity restriction).
> Not sure whether this is true for n^d for other even n
> (I didn’t look at trying to solve anything with n>3).
> - There is no "twirl modulus" restriction on corner cubies
> for n^d puzzles with d >= 5:
> that is, you can cycle 3 stickers
> on a single corner cubie (without having to anti-cycle
> 3 stickers on some other corner cubie like you have to do
> in 3 or 4 dimensions).
> This is fairly easy to see if you think about it–
> it’s exactly the same reasoning that lets you
> twirl a single 3-sticker cubie on the 3^4 puzzle.
> The crux of the matter is that
> in >=5 dimensions you can’t tell the difference
> between a cycle and an anti-cycle (of 3 stickers on a corner cubie);
> that is, one can be rotated to the other.
> So, to cycle 3 stickers a,b,c on a single corner cubie:
> 1. cycle a,b,c and anti-cycle 3 stickers on some other cubie
> 2. twist a face containing a,b,c and not the other cubie so
> that:
> a goes to a
> b goes to c
> c goes to b
> d goes to e
> e goes to d
> (where d,e are two more stickers on the same corner cubie
> as a,b,c – this is where d>=5 is needed)
> (you can’t just swap b and c without swapping some other d
> and e,
> since that would turn the cubie inside out)
> 3. undo 1.
> 4. undo 2.
> The result is that a,b,c got forward-cycled twice and nothing else
> on the puzzle was touched– i.e. they got backward-cycled once.
> So do all of the above in reverse to cycle a,b,c forward, as desired
> :-)
> Don
> Yahoo! Groups Links