“Planning and Learning in Permutation Groups”, Shahar Mose, Adi Shamir, Ilan Shimshoni, Gabor Tardos1989-10-30 ()⁠:

[discussion, implementation; similar] Planning is defined as the problem of synthesizing a desired behavior from given basic operations, and learning is defined as the dual problem of analyzing a given behavior to determine the unknown basic operations.

Algorithms for solving these problems in the context of invertible operations on finite-state environments are developed.

In addition to their obvious artificial intelligence applications, the [meet-in-the-middle-esque] algorithms can efficiently find the shortest way to solve Rubik’s cube, test ping-pong protocols, and solve systems of equations over permutation groups.