# Request easy(for computer) algorithms for big(20^3) cubes



## Zhiguo (Mar 1, 2010)

A friend asks me to write a program to solve 20x20x20 cube.
Optimal algorithms are not necessary.
Usual easy algorithms will be enough.
So, would you like to suggest me some algorithms that could solve 20x20x20 cubes, and at the same time as easy(to program) as possible?


Thanks in advance! ^_^ Any help will be appreciated!

P.S. I know how to solve a 3x3x3 cube, but I am not an enthusiast of it. So please suggest easy algorithms. It needs not be fast.

P.S.2 Sorry for multi-posting. I first post in "blindcubing" section, and was suggested to post here.


----------



## ben1996123 (Mar 1, 2010)

There already is a program to solve a 20x20x20 and above, so its not really necessary to write another one.

I have a video on youtube of that program solving a 20x20x20.


----------



## Googlrr (Mar 1, 2010)

I would assume that solving a 20x20x20 is relatively the same as solving any of the 4-7 cubes? You could probably just look up algs for the 4x4x4 or 6x6x6 and apply them to a larger cube, I don't see any reason why they would be too different.


----------



## PHPJaguar (Mar 1, 2010)

Googlrr said:


> I would assume that solving a 20x20x20 is relatively the same as solving any of the 4-7 cubes? You could probably just look up algs for the 4x4x4 or 6x6x6 and apply them to a larger cube, I don't see any reason why they would be too different.



He's not talking about algs that to apply to a cube, he's talking about computer algorithms. Like programming-wise.


----------



## Mike Hughey (Mar 1, 2010)

Actually, I would think a blindfolded approach might be a pretty easy way to do this. Just solve it all with commutators. Each piece will belong to an orbit with other pieces with which it can exchange. Start with one piece in that orbit, and then see where that piece needs to go. Then find the piece at that destination location, and see where it needs to go. That will give you a 3-cycle which will solve the next 2 pieces of that type. Use a commutator to solve those two pieces, and then repeat. When you hit the end of a cycle, break into a new cycle as you would do with normal 3-cycle blindsolving, and keep going.

The only difficulties then will be handling the various parities, which can probably be handled with somewhat brute-force methods - setup into an algorithm you know and then solve.

I doubt someone will be willing here to go into great detail on the algorithms necessary to do this; if you need more description than what I've given here, I recommend that you go learn to solve a cube blindfolded. Once you do, it should be fairly straightforward to come up with the algorithms you need.


----------



## TMOY (Mar 2, 2010)

IMHO the best way to handle parities is probably to fix them at the beginning of the solve: compute the permutation parity for corners and all types of wings, and then apply the corresponding layer or slice quarter-turn if needed. This is not a very practical method for humans but for a computer it should be easy


----------



## Googlrr (Mar 2, 2010)

PHPJaguar said:


> Googlrr said:
> 
> 
> > I would assume that solving a 20x20x20 is relatively the same as solving any of the 4-7 cubes? You could probably just look up algs for the 4x4x4 or 6x6x6 and apply them to a larger cube, I don't see any reason why they would be too different.
> ...



:fp I forget that algorithms exist outside of cubing sometimes. My bad.


----------



## Zhiguo (Mar 5, 2010)

Thank you! I would read it carefully! ^_^



cmowla said:


> Well, I don't know much about optimal solving algorithms, but I have written an algorithm just to directly solve the last layer wing edges on a 4x4x4 (K4 method style) which has a pretty efficient algorithm for solving one orbit of pieces at a time.
> ...


----------



## Joël (Apr 2, 2010)

ben1996123 said:


> There already is a program to solve a 20x20x20 and above, so its not really necessary to write another one.



Am I the only one who does not understand the logic behind this line of reasoning?


----------



## Stefan (Apr 2, 2010)

Joël said:


> ben1996123 said:
> 
> 
> > There already is a program to solve a 20x20x20 and above, so its not really necessary to write another one.
> ...



It's quite possible the task wasn't really to create a new program but to just provide one.


----------



## Joël (Apr 3, 2010)

StefanPochmann said:


> Joël said:
> 
> 
> > ben1996123 said:
> ...



Nope, it wasn't... 



> A friend asks me to _write_ a program to solve 20x20x20 cube.


----------



## Stefan (Apr 3, 2010)

Joël said:


> Nope, it wasn't...
> 
> 
> 
> > A friend asks me to _write_ a program to solve 20x20x20 cube.



Yeah, cause people always say exactly what they really want/need. If someone asks where he can buy a Rubik's 2x2x2, don't you think it's appropriate to tell him that there are far better 2x2x2s that he should get instead unless he really needs it to be a Rubik's for some reason? And don't you think it's quite possible he only asked for a Rubik's because he didn't know better, rather than because he actually needs a Rubik's one?

And even if that was literally correct, it still allows writing a wrapper program around an existing one.


----------



## Joël (Apr 4, 2010)

StefanPochmann said:


> And even if that was literally correct, it still allows writing a wrapper program around an existing one.



I know, I know... But I thought.. If being like that about it is good enough for you, it's good enough for me .


----------

