Say we have a finite group $G$ generated by $g_1,\cdots,g_n$. Are there any algorithms or techniques to write any element $g$ as a product of these generators?
Ofcourse we could just try all combinations, but I hope there are more elegant ways, like in a vector space, you can just project your element on the generators.
I'm asking because this is the group theoretic generalisation of solving a Rubik's cube. By labeling the stickers with natural numbers, we see that moves are permutations, and every legal position is one too. The Rubik's cube group is then the group that is generated by the legal moves:
$$G=<R,L,U,D,F,B>$$ In standard notation
To solve the cube is the same as to write an element of this group as a product of these generators, so in this case there are many algorithms to do this.
What algorithms exist for the general case?