3

Kociemba wrote very nice algorithm, which is the fastest working algorithm returning optimal or almost optimal solution very efficiently. If you want to derive your own system, try in steps: 0) invent notation for the cube, do not try to optimize it. 1) try BFS or something like A* (this one will be harder, with heuristics). 2) try some kind of memoization, ...


2

have not heard of use of abstract languages to model the rubiks cube. however, there is a huge amount of group theory intrinsically associated with it, and there are natural ways to represent group theory using languages (and automata). as for using the theory to solve the cube, there are many standard algorithms and it would be difficult for newcomers to ...


2

It sounds like you want to compute the intersection of two languages. Depending upon what kind of languages you are looking at and how they're represented, you might look into the "product construction" and closure properties for your class of languages. For instance, for regular languages, there is a standard method for computing the intersection of two ...


2

Yes. The research area is known as program synthesis. You can find hundreds or thousands of papers on the subject. (You might also be interested in declarative programming.) What you're describing is way beyond the state of the art. It'd be really cool if we could do something like that -- but we're a long long way away from knowing how to build that.


1

Lennart Augustsson and Kent Petersson 1994 present syntax and type rules for a small functional language which is basically just lambda calculus with GADTs. They have two kinds of judgments, one to indicate that "the expression e has type T in the type environment $\Gamma$" and the other to indicate that "the declaration d generates the type environment $\...


Only top voted, non community-wiki answers of a minimum length are eligible