Matematika Rubikovy kostky | |
---|---|
Mediální soubory na Wikimedia Commons |
Matematika Rubikovy kostky je soubor matematických metod pro studium vlastností Rubikovy kostky z abstraktního matematického hlediska. Tento obor matematiky studuje algoritmy sestavování krychle a vyhodnocuje je. Založeno na teorii grafů , teorii grup , teorii vyčíslitelnosti a kombinatorice .
Existuje mnoho algoritmů navržených pro převod Rubikovy kostky z libovolné konfigurace do konečné konfigurace (složené kostky). V roce 2010 bylo důsledně prokázáno, že k převedení Rubikovy kostky z libovolné konfigurace do sestavené konfigurace (často nazývané „sestavení“ nebo „řešení“) nestačí více než 20 otočení čel [1] . Toto číslo je průměrem Cayleyho grafu skupiny Rubikovy kostky [2] . V roce 2014 bylo prokázáno, že k vyřešení Rubikovy kostky stačí vždy 26 tahů pouze pomocí 90° otočení ploch [3] .
Algoritmus, který řeší hádanku co nejmenším počtem tahů, se nazývá Boží algoritmus .
Tento článek používá "Singmaster notation" [4] [5] vyvinutý Davidem Singmasterem a publikovaný jím v roce 1981 k označení sledu rotace tváří 3×3×3 Rubikovy kostky .
Písmena představují otočení o 90° ve směru hodinových ručiček levého ( vlevo ), pravého ( pravého ), předního ( předního ), zadního ( zadního ), horního ( nahoru ) a spodního ( dolů ) čela. Otoky o 180° jsou označeny přidáním 2 vpravo od písmene nebo přidáním horního indexu 2 vpravo od písmene. Otočení o 90° proti směru hodinových ručiček je indikováno přidáním pomlčky ( ′ ) nebo přidáním horního indexu -1 napravo od písmene. Takže například položky a jsou ekvivalentní, stejně jako položky a .
Existují dva nejběžnější způsoby měření délky řešení ( metrický ). První způsob - jedno otočení řešení je považováno za otočení čela o 90° ( quarter turn metric , QTM ). Podle druhého způsobu je uvažováno i poloviční otočení plochy na 1 tah ( face turn metric , FTM , někdy se označuje HTM - half-turn metric ). F2 (otočení přední strany o 180°) by se tedy mělo počítat jako dva tahy v metrice QTM nebo 1 tah v metrice FTM [6] [7] .
Pro označení délky posloupnosti u použité metriky v textu slouží zápis [8] [9] [10] , složený z čísel počtu tahů a prvního malého písmene označení metriky. 14f znamená „14 tahů v metrice FTM“ a 10q znamená „10 tahů v metrice QTM“. K označení, že počet tahů je minimální v dané metrice, se používá hvězdička : 10f* označuje optimalitu řešení v 10 FTM tahech.
Rubikova kostka může být viděna jako příklad matematické grupy .
Každou ze šesti rotací ploch Rubikovy kostky lze považovat za prvek symetrické skupiny množiny 48 štítků Rubikovy kostky, které nejsou středy ploch. Přesněji řečeno, lze označit všech 48 štítků čísly od 1 do 48 a přiřadit každému z tahů prvek symetrické skupiny .
Potom je skupina Rubikovy kostky definována jako podskupina generovaná šesti rotacemi ploch:
Každou z konfigurací lze vyřešit nanejvýš 20 tahy (pokud za tah počítáme jakékoli otočení obličeje) [1] .
Nejvyšší řád prvku v je 1260. Například sekvence tahů se musí opakovat 1260krát, než se Rubikova kostka vrátí do původního stavu [13] .
Hledání Božího algoritmu začalo nejpozději v roce 1980, kdy byl otevřen mailing list pro fanoušky Rubikovy kostky [6] . Od té doby se matematici, programátoři a amatéři snažili najít Boží algoritmus tak, aby v praxi s minimálním počtem tahů vyřešili Rubikovu kostku. S tímto problémem souvisel problém určení čísla Boha – počtu tahů, který je vždy dostatečný k dokončení hádanky.
V roce 2010 programátor Palo Alto Thomas Rokiki, učitel matematiky v Darmstadtu Herbert Kotsemba, matematik Morley Davidson z University of Kent a inženýr společnosti Google Inc. John Dethridge dokázal, že Rubikovu kostku z jakéhokoli rozloženého stavu lze sestavit na 20 tahů. V tomto případě bylo jakékoli otočení obličeje považováno za jeden pohyb. Množství výpočtů bylo 35 let CPU času darovaného společností Google [1] [14] [15] . Technické údaje o výkonu a počtu počítačů nebyly zveřejněny. Doba výpočtů byla několik týdnů [16] [17] [18] .
V roce 2014 Thomas Rockicki a Morley Davidson dokázali, že Rubikovu kostku lze vyřešit nanejvýš 26 tahy bez použití otočení o 180°. Objem výpočtů byl 29 let procesorového času v superpočítačovém centru Ohio [3] .
Je snadné ukázat, že existují řešitelné konfigurace [19] , které nelze vyřešit za méně než 17 tahů v metrice FTM nebo 19 tahů v metrice QTM.
Tento odhad lze vylepšit zohledněním dalších identit: komutativnosti rotací dvou protilehlých ploch (LR = RL, L2 R = R L2 atd.) Tento přístup umožňuje získat spodní hranici pro číslo Boha v 18f nebo 21q [20] [21] .
Tento odhad je dlouhodobě nejznámější. Vyplývá to z nekonstruktivního důkazu, protože neuvádí konkrétní příklad konfigurace, která vyžaduje k sestavení 18f nebo 21q.
Jednou z konfigurací, pro kterou nebylo možné nalézt žádné krátké řešení, byl takzvaný „ superflip “ nebo „12-flip“. V "Superflip" jsou všechny rohové a hranové kostky na svých místech, ale každá hranová kostka je orientována opačně [22] . Vrchol odpovídající superflipu v grafu Rubikovy kostky je lokální maximum: jakýkoli pohyb z této konfigurace snižuje vzdálenost k počáteční konfiguraci. To naznačuje, že superflip je v maximální vzdálenosti od počáteční konfigurace. To znamená, že superflip je globální maximum [23] [24] [25] .
V roce 1992 našel Dick T. Winter řešení superflipu v 20f [26] . V roce 1995 Michael Reed prokázal optimálnost tohoto řešení [27] , v důsledku čehož se dolní mez pro číslo Boha stala 20 FTM. V roce 1995 objevil Michael Reid řešení „superflipu“ v 24q [28] . Optimálnost tohoto řešení dokázal Jerry Bryan [29] . V roce 1998 našel Michael Reed konfiguraci, jejíž optimální řešení bylo 26q* [30] .
Chcete-li získat horní hranici pro Boží číslo, stačí zadat jakýkoli algoritmus sestavení puzzle skládající se z konečného počtu tahů.
První horní hranice pro číslo Boha byly založeny na „lidských“ algoritmech skládajících se z několika stupňů. Sečtením odhadů shora pro každou z fází bylo možné získat konečný odhad v řádu několika desítek či stovek tahů.
Pravděpodobně první konkrétní odhad shora uvedl David Singmaster v roce 1979. Jeho montážní algoritmus umožňoval sestavení hlavolamu na více než 277 tahů [16] [31] . Singmaster později uvedl, že Alvin Berlekamp , John Conway a Richard Guy vyvinuli algoritmus sestavování, který nevyžaduje více než 160 pohybů. Brzy skupina „Conwayových cambridgeských kubistů“, kteří sestavovali seznam kombinací pro jednu tvář, našla 94směrný algoritmus [16] [32] . V roce 1982 časopis Kvant zveřejnil seznam kombinací, které umožňují vyřešit Rubikovu kostku v 79 tazích [33] .
Thistlethwaiteho algoritmusNa začátku 80. let anglický matematik Morvin Thistlethwaite vyvinul algoritmus, který výrazně zlepšil horní hranici. Podrobnosti o algoritmu publikoval Douglas Hofstadter v roce 1981 ve Scientific American . Algoritmus byl založen na teorii grup a zahrnoval čtyři fáze.
PopisThistlethwaite použil řadu podskupin délky 4
kde
V první fázi je libovolně daná konfigurace ze skupiny redukována na konfiguraci ležící v podskupině . Cílem druhé fáze je uvést krychli do konfigurace v podskupině bez použití rotace levé a pravé plochy o ±90°. Ve třetí fázi je Rubikova kostka redukována na konfiguraci patřící do skupiny , přičemž otáčení svislých ploch o ±90° je zakázáno. V poslední, čtvrté fázi je Rubikova kostka kompletně sestavena otočením čel o 180°.
Indexy podskupin jsou 2048, 1082565, 29400 a 663552, v tomto pořadí.
Pro každou ze čtyř rodin pravých coset je vytvořena vyhledávací tabulka , jejíž velikost odpovídá indexu podskupiny ve skupině . Pro každou třídu sousedství podskupiny obsahuje vyhledávací tabulka sekvenci pohybů, které převádějí jakoukoli konfiguraci z této třídy sousedství do konfigurace, která leží v samotné podskupině .
Aby se snížil počet záznamů ve vyhledávacích tabulkách, Thistlethwaite použil zjednodušené předběžné tahy. Původně obdržel skóre 85 tahů. Během roku 1980 bylo toto skóre sníženo na 80 tahů, poté na 63 a 52 [16] [36] . Thistlethwaiteovi studenti provedli úplnou analýzu každé z fází. Maximální hodnoty v tabulkách jsou 7, 10, 13 a 15 FTM zdvihů. Protože 7 + 10 + 13 + 15 = 45, lze Rubikovu kostku vždy vyřešit tahy 45 FTM [25] [37] [38] .
Hrabě SchreierSchreierův graf je grafspojený se skupinou, generující množinou a podskupinou. Každý vrchol Schreierova grafu jepro některé. Hrany hraběte Schreiera jsou dvojice.
Každá ze čtyř fází Thistlethwaitova algoritmu je procházením Schreierova grafu v první šířce , kde je generující množina grupy .
Horní odhad je tedy 45 tahů
kde
je excentricita vrcholu odpovídající jednotkové coset .Pojem Schreierův graf byl použit v pracích Radu [39] , Kunkleho a Coopermana [40] .
Modifikace thistlethwaiteho algoritmuV prosinci 1990 Hans Kloosterman použil upravenou verzi Thistlethwaiteovy metody k prokázání dostatečnosti 42 tahů [1] [20] [41] .
V květnu 1992 Michael Reid ukázal, že 39f nebo 56q je dostačující [42] . V jeho modifikaci byl použit následující řetězec podskupin:
O několik dní později Dick T. Winter snížil své skóre FTM na 37 tahů [43] .
V prosinci 2002 Ryan Hayes vyvinul verzi Thistlethwaiteova algoritmu navrženou k rychlému vyřešení Rubikovy kostky [44] .
Dvoufázový algoritmus KotsembaThistlethwaiteův algoritmus byl vylepšen v roce 1992 Herbertem Kotsembou, učitelem matematiky z Darmstadtu.
PopisKotsemba snížil počet kroků algoritmu na dva [20] [45] [46] :
Vizuální popis skupiny lze získat, pokud je provedeno následující označení [20] [47] :
Pak budou mít všechny konfigurace skupiny stejné označení (shodné s označením na sestavené krychli).
Řešení se skládá ze dvou fází. V první fázi je daná konfigurace převedena sekvencí pohybů do nějaké konfigurace . Jinými slovy, úkolem první fáze je obnovit označení odpovídající počáteční konfiguraci, přičemž se ignorují barvy štítků.
Ve druhé fázi je konfigurace převedena sekvencí pohybů do výchozí konfigurace. V tomto případě není použito otočení bočních ploch o ±90°, díky čemuž se označení automaticky uloží.
Lepení sekvencí tahů je neoptimální řešení původní konfigurace [20] [46] [48] .
Alternativní suboptimální řešeníKotsembův algoritmus se po nalezení prvního řešení nezastaví. Alternativní optimální řešení v první fázi mohou vést ke kratším řešením ve druhé fázi, což zkrátí celkovou délku řešení. Algoritmus pokračuje v hledání i neoptimálních řešení v první fázi, aby se zvětšila jejich délka [20] [46] [48] .
Funkce implementacePro hledání řešení v každé ze dvou fází se používá algoritmus IDA* s heuristickými funkcemi založenými na nákladech na řešení odpovídajících dílčích úloh [48] .
Úkol první fáze je redukován na nalezení cesty v prostoru se třemi souřadnicemi od označení souřadnicemi ( x 1 , y 1 , z 1 ) po označení (0, 0, 0) [49] :
Zvažte tři dílčí problémy hledání cesty od označení ( x 1 , y 1 , z 1 ) ke značce ( x 1 ', y 1 ', 0), ( x 1 ', 0, z 1 '), (0, y 1 ', z 1 '). Hodnota heuristické funkce h 1 použitá v první fázi je rovna maximálním nákladům na řešení těchto dílčích problémů. Náklady na řešení dílčích úkolů jsou předkalkulovány a uloženy ve formě databází se šablonami [50] [51] .
Úkol druhého stupně je redukován na nalezení cesty v prostoru se třemi souřadnicemi z konfigurace ( x 2 , y 2 , z 2 ) do konfigurace (0, 0, 0) [52] :
Zvažte tři dílčí problémy hledání cesty od konfigurace ( x 2 , y 2 , z 2 ) ke konfiguraci ( x 2 ', y 2 ', 0), ( x 2 ', 0, z 2 '), (0, y 2 ', z2 ') . Hodnota heuristické funkce h 2 použitá ve druhé fázi je rovna maximálním nákladům na řešení těchto dílčích problémů.
Algoritmus využívá další optimalizace zaměřené na zvýšení výkonu a snížení paměti zabrané tabulkami [20] [45] [46] [53] .
Softwarové implementaceCube Explorer je softwarová implementace algoritmu pro OS Windows. Odkazy ke stažení jsou na webu Herberta Kotsemby [54] . V roce 1992 na počítači Atari ST s pamětí 1 MB a frekvencí 8 MHz umožnil algoritmus najít řešení ne delší než 22 tahů během 1-2 minut [20] [45] . Na moderním počítači Cube Explorer umožňuje během několika sekund najít řešení ne delším než 20 tahů pro libovolně danou konfiguraci [45] .
Existuje online verze algoritmu [55] .
AnalýzaV roce 1995 Michael Reed ukázal, že první a druhá fáze Kotsembova algoritmu může vyžadovat maximálně 12 a 18 tahů (FTM). Z toho vyplývá, že Rubikovu kostku lze vždy vyřešit za 30 tahů. Dodatečná analýza ukázala, že 29f nebo 42q [25] [56] je vždy dostačující .
Kotsembův algoritmus vám umožňuje rychle najít krátká, neoptimální řešení. Prokázání optimálnosti nalezeného řešení však může trvat značnou dobu. Bylo zapotřebí specializovaného algoritmu pro nalezení optimálních řešení.
V roce 1997 publikoval algoritmus, který mu umožnil optimálně řešit libovolné konfigurace Rubikovy kostky. Deset náhodně vybraných konfigurací bylo vyřešeno ne více než 18 FTM tahy [57] [58] .
Samotný Korffův algoritmus funguje následovně. Nejprve jsou určeny podproblémy, které jsou dostatečně jednoduché na provedení úplného výčtu. Byly použity následující tři dílčí úkoly [25] :
Počet tahů potřebných k vyřešení každého z těchto dílčích problémů je spodní hranicí počtu tahů potřebných k dokončení řešení. Libovolně daná konfigurace Rubikovy kostky je řešena pomocí algoritmu IDA* , který tento odhad využívá jako heuristiku. Náklady na řešení dílčích úkolů jsou uloženy ve formě databází se šablonami [50] [57] .
Přestože tento algoritmus vždy najde optimální řešení, přímo neurčuje, kolik tahů může být zapotřebí v nejhorším případě.
Implementaci algoritmu v C lze nalézt v [59] .
V roce 2005 skóre QTM Michaela Reida zlepšilo Silviu Radu na 40q [60] . V roce 2006 Silviu Radu dokázal, že Rubikovu kostku lze vyřešit v 27f [39] nebo 35q [61] .
V roce 2007 Daniel Kunkle a Gene Cooperman použili superpočítač, aby dokázali, že všechny nevyřešené konfigurace lze vyřešit maximálně 26 pohyby FTM. Cílem bylo přenést Rubikovu kostku do jedné z 15 752 podmnožin čtvercových konfigurací , z nichž každou lze nakonec vyřešit několika tahy navíc. Většina konfigurací byla takto vyřešena maximálně na 26 tahů. Zbývající konfigurace byly podrobeny dodatečné analýze, která ukázala, že je lze také vyřešit 26 tahy [40] [62] .
V roce 2008 Thomas Rokicki publikoval výpočetní důkaz řešitelnosti FTM 25-tahové hádanky [63] . V srpnu 2008 Rokiki oznámila důkaz řešitelnosti v 23f [64] . Později se tento odhad zlepšil na 22f [65] . V roce 2009 se mu také podařilo prokázat řešitelnost ve 29 tazích QTM [66] .
V roce 2010 Thomas Rokicki, Herbert Kotsemba, Morley Davidson a John Dethridge oznámili důkaz, že jakoukoli konfiguraci Rubikovy kostky lze vyřešit nanejvýš 20 tahy v metrice FTM [1] [14] . Spolu s dříve známým nižším odhadem 20f* to dokázalo, že číslo boha Rubikovy kostky v metrice FTM je 20.
V srpnu 2014 Rockiki a Davidson oznámili, že Boží číslo pro Rubikovu kostku v metrice QTM je 26 [3] [67] .
Konfigurace Rubikovy kostky, která se nachází v maximální vzdálenosti od výchozí konfigurace, se nazývá antipod. Jakýkoli antipod v metrice FTM má optimální řešení v 20f* a jakýkoli antipod v metrice QTM má optimální řešení v 26q* [3] [68] .
Je známo, že v metrice FTM jsou miliony antipodů [69] . Jednou z takových konfigurací je „superflip“. Naopak v metrice QTM je v současnosti známá pouze jedna antipodální konfigurace (nepočítáme-li konfigurace z ní získané rotacemi) - tzv. superflip složený se čtyřmi spoty [30] [67] [68] [70] . Jsou známy pouze dvě konfigurace ve vzdálenosti 25q* od výchozí konfigurace a asi 80 tisíc konfigurací ve vzdálenosti 24q* [3] [69] .
V roce 2011 se ukázalo, že Boží číslo n × n × n krychle je Θ( n 2 / log( n )) [71] [72] .
Void Cube je Rubikova kostka 3x3x3 bez centrálních dílků.
Délka optimálního řešení pro "void- superflip " v metrice FTM je 20 [73] [74] , což je důkaz, že je potřeba 20 tahů. Protože Prázdná kostka je oslabeným problémem [50] Rubikovy kostky, platí pro Prázdnou kostku existující důkaz dostatku 20 tahů pro Rubikovu kostku [1] . Proto je Boží číslo prázdné kostky v metrice FTM 20.
Počet konfigurací puzzle 4×4×4 ( Eng. Rubik's Revenge ) je [75]
Metriky 4×4×4Existuje několik způsobů, jak určit metriku pro krychli 4x4x4. Tato část používá následující metriky:
Délka optimálního řešení libovolné konfigurace v metrice qb není větší než v metrice qw nebo qs , protože v metrice qb jsou povoleny všechny pohyby dalších dvou q-metrik . Totéž platí pro h-metriky.
Odhady počtu kostek Boha 4×4×4V letech 2006-2007 Bruce Norskog provedl 5-krokovou analýzu kostky 4x4x4, podobnou čtyřkrokové analýze, kterou provedl Thistlethwaite pro Rubikovu kostku 3x3x3. Analýza poskytla horní hranici 82 pohybů v metrice hw [76] , 77 pohybů v metrice hs [77] [78] a 67 pohybů v metrice hb [76] .
V roce 2011 Thomas Rokiki na základě několika existujících myšlenek určil dolní hranice pro číslo Boha v šesti metrikách pro kubické puzzle o velikostech od 2×2×2 do 20×20×20 [79] .
V roce 2013 Shuang Chen (陈霜) snížil své hw skóre z 82 na 57 otáček [80] .
V roce 2015 Thomas Rokicki potvrdil nejvyšší skóre 57 hw a získal nové nejvyšší skóre 56 hs a 53 hb [81] . O několik dní později se Shuang Chen (陈霜) podařilo získat horní hranici 55 hw a 53 hs předefinováním kroků důkazu [82] [83] .
Aktuální známá horní a dolní skóre pro kostku 4×4×4 v různých metrikách jsou uvedeny v tabulce:
metriky | hs | hw | hb | qs | Q w | qb |
---|---|---|---|---|---|---|
nižší odhad | 32 | 35 | 29 | 37 | 41 | 33 |
nejvyšší odhad | 53 | 55 | 53 | ? | ? | ? |
Megaminx je nejjednodušší obdoba Rubikovy kostky ve formě dvanáctistěnu. Počet konfigurací 12barevného Megaminxu je 1,01· 1068 .
V roce 2012 Herbert Kotsemba určil dolní hranici pro Boží číslo Megaminx na 45 otočení obličeje pod libovolným úhlem nebo 55 otočení pod úhlem ±72° [84] [85] .
V roce 2016 Herbert Kotsemba zlepšil spodní odhad Božího čísla pro Megaminx a zvýšil jej na 48 otočení obličeje o jakýkoli úhel [86] .