Kostka Rubika - liczba możliwych (rozwiązywalnych) układów

Permutacje. Kombinacje. Wariacje. Rozmieszczanie kul w urnach. Silnie i symbole Newtona. Przeliczanie zbiorów. Funkcje tworzące. Teoria grafów.
jts
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 14 sty 2012, o 23:17
Płeć: Mężczyzna
Lokalizacja: okolice

Kostka Rubika - liczba możliwych (rozwiązywalnych) układów

Post autor: jts »

Witam,
Mój pierwszy post na forum, mam nadzieję, że nie ostatni

Wstyd się przyznać, ale jako inżynier mam problem z rozwiązaniem prostego (jak mi się wydawało) zadania. Chodzi mianowicie o liczbę możliwych rozwiązywalnych (zaraz wyjaśnie) układów klasycznej (3x3x3) kostki Rubika.

Kod: Zaznacz cały

http://hiremebecauseimsmart.posterous.com/post/1120517680
natknąłem się na taką liczbę 43 252 003 274 489 856 000 jednak nie wiem czy jest poprawna - czy to liczba wszystkich układów, czy tylko rozwiązywalnych. Czym się różnią jedna od drugich? Za chwilę. Najpierw odrobinę o kostce.

Zasadniczo kostka ma wymiary 3x3x3 sześciany. Byłoby ich 27 gdyby nie to, ze wewnątrz jest pustka. Mamy zatem 26 klocków. Ale tylko 20 z nich ma zmienne położenie. Każda z sześciu środkowych płytek na każdej ścianie ma stałą pozycję względem siebie (środkowa płytka każdej ściany określa kolor ściany).

Mamy zatem 20 ruchomych kostek.
Żeby nie było zbyt łatwo to nie wszystkie poruszają się w ten sam sposób. 8 narożników (każdy po 3 płytki) może być w 8 miejscach. 10 ścian bocznych (każda po dwie płytki) może zajmować 10 miejsc.

A żeby było mało - to dochodzi jeszcze problem rozwiązywalności.
Nie każdy "mechanicznie" złożony układ jest możliwy do rozwiązania. Innymi słowy - jeśli mielibyśmy kostkę w rozsypce i złożyli ją dowolnie (na przykład losując klocki) to nie zawsze da się ją ułożyć poprawnie. Myślę, że ilustracje poniżej oddadzą lepiej sens kwestii rozwiązywalności i nierozwiązywalności "układu":
Układ rozwiązany (i rozwiązywalny co za tym idzie):
[url=http://imageshack.us/photo/my-images/853/imag0082e.jpg/][/url]

Jednak układ z poniższych dwóch zdjęć już nie jest możliwy bez mechanicznego rozłożenia kostki (do zrobienia zdjęcia kostkę rozłożyłem mechanicznie):
[url=http://imageshack.us/photo/my-images/233/imag0083uw.jpg/][/url][[url=http://imageshack.us/photo/my-images/848/imag0084eb.jpg/][/url]

O tym, że jest to układ nierozwiązywalny może choćby świadczyć [url=http://www.wrongway.org/cgi-bin/cube/cubexcgiout?cube-311111111222222222433333333441444444555555555666666666!withgraphics]ten komunikat[/url] solvera (nota bene solver proponuje dość długie algorytmy, ale poglądowo można czasem się nim połsużyć).

Jak zatem widać trudno tu o prosty rachunek typu liczba kostek razy liczba ich możliwych położeń razy liczba orientacji ścian (bo jak wykazałem na dwóch ostatnich zdjęciach nie każda możliwa orientacja ścian nas interesuje).

Liczenie liczby układów trzeba ugryźć od strony możliwych ruchów (zaczynając od jednego układu - powiedzmy od kostki rozwiązanej). Pamiętając jednakże, że trzykrotny ruch ścianą w jednym kierunku - to to samo co jeden ruch ścianą w przeciwnym. Że dwukrotny ruch w dowolną stronę daje ten sam efekt (niezależnie od strony obrotu). Ścian mamy 6. Ale dochodzą 3 środkowe (tzw równik, południk 0, i południk 90) - których ruch z kolei można potraktować jako złożenie ruchu 6 podstawowych ścian - np. obrót równika w lewo, to to samo co jednoczesny obrót góry i dołu w przeciwną stronę, etc.

I tu się gubię, bo kompletnie nie wiem jak to ugryźć, a chciałbym zweryfikować liczbę możliwych układów, podaną na cytowanej przeze mnie stronie.



Ktoś jest w stanie mi pomóc?

Wstyd mi w sumie, że jako inżynier, z zamiłowaniem matematycznym nie potrafię sobie z tym poradzić... Ale kto pytanie nie błądzi
(A jakby kogoś interesowało po co mi to - chciałem zbadać złożoność obliczeniową - i sprawdzić czy jest sens pisania programu do rozwiązywania kostki metodą "brutal force" - są wprawdzie algorytmy rozwiązujące, ale nie podają najkrótszych rozwiązań, a operują na kilku popularnych schematach [layer by layer, corner first, etc], A mnie interesują wyłącznie najkrótsze rozwiązania - ale żeby się za to zabrać muszę najpierw wiedzieć czy mnie nie zje złożoność obliczeniowa - czyli ile jest poprawnych mechanicznie układów)

Z góry dzięki za pomoc!
Ł
Awatar użytkownika
arek1357
Użytkownik
Użytkownik
Posty: 5745
Rejestracja: 6 gru 2006, o 09:18
Płeć: Mężczyzna
Lokalizacja: blisko
Podziękował: 130 razy
Pomógł: 526 razy

Kostka Rubika - liczba możliwych (rozwiązywalnych) układów

Post autor: arek1357 »

Bardzo dobre artykuły na temat kostki są w ostatnim MImie cały MiM jest poświęcony właśnie kostce.
Generalnie radzę ci kupić i poczytać.
Co do mnie to problem kostki za bardzo mnie nigdy nie interesował,
a co do możliwych permutacji chyba jest:

\(\displaystyle{ \frac{8! \cdot 12! \cdot 6!}{2}}\)
Pozdrawiam
Ostatnio zmieniony 15 sty 2012, o 14:48 przez Anonymous, łącznie zmieniany 1 raz.
Powód: Niepoprawnie napisany kod LaTeX-a. Proszę zapoznaj się z http://matematyka.pl/178502.htm .
abc666

Kostka Rubika - liczba możliwych (rozwiązywalnych) układów

Post autor: abc666 »

jts, to jest problem z teorii grup. Wynik podany przez arek1357, należy pomnożyć jeszcze przez \(\displaystyle{ 2^{11}}\).

A problem wcale nie jest taki banalny.

Kod: Zaznacz cały

http://geometer.org/rubik/group.pdf

http://www.math.harvard.edu/~jjchen/doc ... 20Cube.pdf
Awatar użytkownika
arek1357
Użytkownik
Użytkownik
Posty: 5745
Rejestracja: 6 gru 2006, o 09:18
Płeć: Mężczyzna
Lokalizacja: blisko
Podziękował: 130 razy
Pomógł: 526 razy

Kostka Rubika - liczba możliwych (rozwiązywalnych) układów

Post autor: arek1357 »

Wytłumacz mi abc666 czemu jeszcze przez 2 do jedenastej?
abc666

Kostka Rubika - liczba możliwych (rozwiązywalnych) układów

Post autor: abc666 »

Hmm teraz spojrzałem dopiero i zobaczyłem, że masz źle. Nie wiem, chyba popatrzyłem na jakiś wzór na stronie, którą podałem, a Twój był na tyle podobny, że mi to umknęło.

214517.htm
Awatar użytkownika
arek1357
Użytkownik
Użytkownik
Posty: 5745
Rejestracja: 6 gru 2006, o 09:18
Płeć: Mężczyzna
Lokalizacja: blisko
Podziękował: 130 razy
Pomógł: 526 razy

Kostka Rubika - liczba możliwych (rozwiązywalnych) układów

Post autor: arek1357 »

Ach no tak teraz kumam nie wszystkie są możliwe
jts
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 14 sty 2012, o 23:17
Płeć: Mężczyzna
Lokalizacja: okolice

Kostka Rubika - liczba możliwych (rozwiązywalnych) układów

Post autor: jts »

Dzisiaj nudziłem się w pracy, próbowałem policzyć liczbę układów wg wzoru z pierwszej odpowiedzi (a ponieważ w pamięci mi nie szło wszedłem na wolframaplha.

I mnie olśniło - w końcu wklepałem tan to hasło i jest

Czyli niestety liczba układów o kilka rzędów przekracza możliwości obliczeniowe w sensownym czasie na komputerze osobistym.
Daję sobie spokój (a już w wyobraźni miałem algorytm rozpisania grafu wszystkich możliwych układów, a potem liczenia najkrótszej możliwej drogi do rozwiązania - dokładnie tak jak ktoś to skrótowo opisał na wolframie - ale z taką liczbą nie podziałam).

Cóż, może dla treningu to samo sobie zakoduje z kostką 2x2x2 - tu już złożoność nie zabije mnie nim komputer skończy liczyć.

Wszystkim pomocny - wielkie dzięki!
abc666

Kostka Rubika - liczba możliwych (rozwiązywalnych) układów

Post autor: abc666 »

Kod: Zaznacz cały

http://cube20.org/

Jak możesz tam przeczytać nawet z bardzo dużą liczbą matematycznych operacji redukujących liczbę układów do rozwiązania znalezienie rozwiązania nie dłuższego niż 20 ruchów zajęłoby 35 lat na 4 rdzeniowym procesorze 2,8GHz, a stąd jeszcze daleko do rozwiązań optymalnych (zgodnie z tym co napisane na stronie 5 rzędu wielkości więcej). Zresztą takie badania są prowadzone od kiedy powstała kostka i gdyby to było takie proste już dawno by ktoś to zrobił. Jest chyba nawet jakiś projekt obliczeń rozproszonych szukający optymalnych rozwiązań.

Co do 2x2x2 dla treningu na pewno warto, jednak musisz zdawać sobie sprawę, że ktoś już to na pewno zrobił (i to nie jedna osoba).
jts
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 14 sty 2012, o 23:17
Płeć: Mężczyzna
Lokalizacja: okolice

Kostka Rubika - liczba możliwych (rozwiązywalnych) układów

Post autor: jts »

abc666 pisze:

Kod: Zaznacz cały

http://cube20.org/

Co do 2x2x2 dla treningu na pewno warto, jednak musisz zdawać sobie sprawę, że ktoś już to na pewno zrobił (i to nie jedna osoba).
A równań kwadratowych nikt nie rozwiązywał A mimo to katuje się je w szkole; a rachunek różniczkowo-całkowy? A transformaty wszelkiej maści? A szeregi? A cała masa innych treści? Przecież to nic nowego - a jednak się tym katuje uczniów a potem studentów!

I tak warto dla treningu

Kiedyś pamiętam jak kilka tygodni wymyślałem jak usprawnić algorytm wyszukiwania liczb pierwszych - wpadłem na genialny pomysł - a potem się okazało, że to na co ja wpadłem jest od dawna znane - ale i tak fajnie się czułem, że sam wyciągnąłem poprawne wnioski i potrafiłem je wykorzystać.

Więc zdaję sobie sprawę, że ktoś już otworzył te drzwi, które będę próbował wyważać
Ale trening czyni mistrza.
abc666

Kostka Rubika - liczba możliwych (rozwiązywalnych) układów

Post autor: abc666 »

jts pisze:A równań kwadratowych nikt nie rozwiązywał A mimo to katuje się je w szkole; a rachunek różniczkowo-całkowy? A transformaty wszelkiej maści? A szeregi? A cała masa innych treści? Przecież to nic nowego - a jednak się tym katuje uczniów a potem studentów!
Wątpię by większość uczniów dostała jako pracę domową wyprowadzenie wzoru na deltę
ODPOWIEDZ