Symetrie i inwersje Drukuj

Często na różnych stronach można znaleźć stwierdzenie, że jeden algorytm jest symetrią (mirrorem) lub inwersją drugiego. Czym właściwie one są i po co stosuje się takie określenia??

Symetrie

Symetrie, zwane z angielskiego także mirrorami, to algorytmy, których ruchy po symetrycznym odbiciu stanowią ruchy innego algorytmu. Ważna jest płaszczyzna względem której zachodzi odbicie. Poniższe algorytmy są symetryczne względem płaszczyzny przechodzącej przez warstwę M:

Taką symetrię nazywa się symetrią RL, gdyż płaszczyzna względem, której algorytm jest odbijany przechodzi między ścianami R i L. Analogicznie, oto przykład symetri FB:

Symetria może także zachodzić względem płaszczyzny przechodzącej przez miejsce styku przedniej i prawej ściany, taką symetrię nazywamy FR:

Inwersje

Inwersja danego algorytmu polega na wykonaniu go od końca i odwróceniu wszystkich ruchów. W ten sposób cofnąć można efekt jego wykonania, np:

 

Często w opisach metod podaje się ilość algorytmów potrzebnych do rozwiązania danej fazy nie wliczając inwersji, symetrii i symetrii inwersji. Wiele osób uważa, że znając dany alg jego symetrie i inwersje można już odtworzyć, więc nie trzeba się ich uczyć. W ten sposób liczba potrzebnych algorytmów znacznie się zmniejsza. W moim przekonaniu jednak, o ile symetrie nietrudno odtwarzać dosyć szybko, to inwersja jest już dla naszego umysłu totalnie innym algorytmem. Będziemy się więc go musieli nauczyć (oczywiście inwersje też można odtwarzać w naszym umyśle, ale zachodzi to dużo wolniej niż dla symetrii, więc tak naprawdę szybko będziemy to w stanie robić dopiero gdy się nauczymy inwersji), problem tylko w tym czy 'z kartki' czy bazując na podstawowym algorytmie. Poza tym często szukamy możliwie najszybszych algorytmów i nawet jeśli algorytm jest bardzo szybki to jego inwersja okazać się może wolna, dlatego znaleźć będzie trzeba inny algorytm. Czytając opis metody należy więc zwrócić uwagę czy podawana ilość algorytmów zawiera inwersje i symetrie. Jeśli nie to łącznie z nimi potrzeba będzie 2-3 razy więcej algorytmów niż podano w opisie.