Przepychanki

Wpisy w Łamiblogu pojawiają się rzadziej niż dawniej (brak czasu), więc zadania bywają trudniejsze – takie bardziej dla wytrwałych, dla programistów albo dla wytrwałych programistów. Dziś postanowiłem trochę przegiąć i rzucić wyzwanie najwytrwalszym, zamieszczając rodzaj zadania, za którym nie przepadam, czyli przesuwankę.

Kwadrat ułożony z płytek przypominających skrablowe, ale z cyframi, jaki jest, każdy widzi.

Jedyny dozwolony ruch to przepychanie rzędu złożonego z trzech płytek – w dół (D), w górę (G), w lewo (L) lub w prawo (P). W ten sposób można zmieniać układ płytek. Co można zrobić w pięciu ruchach, pokazuje przykład:

Zapis tego przemeblowania wygląda tak:
2DD-7P-8G-9L-8G.

Zadanie polega na wykonaniu przepychanki złożonej z jak najmniejszej liczby ruchów, która zmieni układ wyjściowy w kwadrat magiczny, czyli:

Szkopuł w tym, że kwadrat magiczny nie musi znajdować się w takiej pozycji jak na rysunku – może być w jednym z ośmiu możliwych ustawień (obroty i odbicia lustrzane). A szkopuł szkopułu w tym, że niektóre z tych ustawień są w ogóle niemożliwe do uzyskania dozwolonym sposobem przepychania.

Czy ktoś się pokusi o znalezienie najlepszego, czyli najkrótszego rozwiązania (którego nie znam; wiem tylko, że podobno można zejść poniżej 20 ruchów)? Mam nadzieję, że tak.