Rubik-kocka matematika | |
---|---|
Médiafájlok a Wikimedia Commons oldalon |
A Rubik-kocka matematikája a Rubik-kocka tulajdonságainak absztrakt matematikai nézőpontból történő tanulmányozására szolgáló matematikai módszerek összessége . A matematikának ez az ága a kocka összeállítási algoritmusokat tanulmányozza és értékeli. Gráfelmélet , csoportelmélet , kiszámíthatóságelmélet és kombinatorika alapján .
Számos algoritmus létezik arra, hogy a Rubik-kockát egy tetszőleges konfigurációból a végső konfigurációba (az összeállított kockába) vigye át. 2010-ben szigorúan bebizonyosodott, hogy legfeljebb 20 lapfordulat elegendő a Rubik-kocka tetszőleges konfigurációból összeszerelt konfigurációba való átviteléhez (amelyet gyakran "összeállításnak" vagy "megoldásnak" neveznek) [1] . Ez a szám a Rubik-kockacsoport Cayley-gráfjának átmérője [2] . 2014-ben bebizonyosodott, hogy 26 mozdulat mindig elegendő a Rubik-kocka megoldásához, a lapok mindössze 90°-os elforgatásával [3] .
Azt az algoritmust, amely a lehető legkevesebb mozdulattal old meg egy rejtvényt, Isten algoritmusnak nevezzük .
Ez a cikk a David Singmaster által kifejlesztett és 1981-ben általa publikált "Singmaster jelölést" [4] [5] használ a 3 × 3 × 3 méretű Rubik-kocka lapjainak forgási sorrendjének jelölésére .
A betűk a bal ( bal ), jobb ( jobb ), első ( elülső ), hátsó ( hátul ), felső ( fel ) és alsó ( lefelé ) oldalak óramutató járásával megegyező 90°-os elforgatását jelzik. A 180°-os fordulatokat egy 2-es hozzáadásával jelzi a betű jobb oldalán, vagy egy 2-es felső index hozzáadásával a betű jobb oldalán. Az óramutató járásával ellentétes 90°-os elforgatást egy kötőjel ( ′ ) vagy a -1 felső index hozzáadásával jelezzük a betű jobb oldalán. Így például a és bejegyzések egyenértékűek, valamint a és a bejegyzések .
A megoldás hosszának ( metrika ) mérésének két leggyakoribb módja van . Az első mód - a megoldás egy fordulata az arc 90°-os elfordulásának minősül ( negyedfordulat metrika , QTM ). A második módszer szerint az arc félfordulatát is figyelembe veszik 1 mozdulatnál ( face turn metrika , FTM , néha HTM - félfordulat metrika jelöli ). Így az F2-t (az elülső oldal 180°-os elfordítása) két lépésnek kell számítani a QTM metrikában, vagy 1 lépésnek az FTM metrikában [6] [7] .
A használt metrika sorozat hosszának szövegben történő jelzésére a [8] [9] [10] jelölést használjuk , amely a lépések számából és a metrika megjelölésének kis kezdőbetűjéből áll. A 14f a "14 lépést az FTM-metrikában", a 10q pedig a "10 lépést a QTM-metrikában" jelenti. Annak jelzésére, hogy a lépések száma a minimális egy adott metrikában, egy csillagot használunk : a 10f* a megoldás optimálisságát jelöli 10 FTM lépésben.
A Rubik-kocka egy matematikai csoport példájának tekinthető .
A Rubik-kocka lapjainak mind a hat elforgatása a 48 Rubik-kocka címkék halmazának szimmetrikus csoportjának elemének tekinthető , amelyek nem a lapok középpontjai. Pontosabban, mind a 48 címkét megjelölhetjük 1-től 48-ig terjedő számokkal, és mindegyik lépéshez hozzárendelhetjük a szimmetrikus csoport egy-egy elemét .
Ekkor a Rubik-kocka csoportot hat lapelforgatással generált alcsoportként határozzuk meg :
A csoport sorrendje : [11] [12]
A konfigurációk mindegyike legfeljebb 20 mozdulattal oldható meg (ha az arc bármely fordulatát mozdulatnak számítjuk) [1] .
Egy elem legmagasabb sorrendje 1260. Például a lépések sorozatát 1260 -szor kell megismételni, mielőtt a Rubik-kocka visszatér eredeti állapotába [13] .
Az Isten algoritmusának keresése legkésőbb 1980-ban kezdődött, amikor is megnyitottak egy levelezőlistát a Rubik-kocka rajongói számára [6] . Azóta matematikusok, programozók és amatőrök igyekeznek megtalálni Isten algoritmusát, hogy a gyakorlatban a minimális számú mozdulattal megoldják a Rubik-kockát. Ehhez a problémához kapcsolódott az Isten számának meghatározása – a mozdulatok száma, amely mindig elegendő a rejtvény befejezéséhez.
2010-ben Thomas Rokiki Palo Alto programozója, Herbert Kotsemba darmstadti matematikatanár, Morley Davidson, a Kenti Egyetem matematikusa és a Google Inc. mérnöke. John Dethridge bebizonyította, hogy a Rubik-kocka bármilyen szétszerelt állapotból 20 mozdulattal összeállítható. Ebben az esetben az arc bármely fordulatát egy mozdulatnak tekintették. A számítás mennyisége 35 év CPU-idő volt , amelyet a Google adományozott [1] [14] [15] . A teljesítményre és a számítógépek számára vonatkozó műszaki adatokat nem hozták nyilvánosságra. A számítások időtartama több hét volt [16] [17] [18] .
2014-ben Thomas Rockicki és Morley Davidson bebizonyította, hogy a Rubik-kocka legfeljebb 26 mozdulattal megoldható 180°-os fordulatok használata nélkül. A számítások mennyisége 29 év processzoridő volt az ohiói szuperszámítási központban [3] .
Könnyen kimutatható, hogy vannak olyan megoldható konfigurációk [19] , amelyek nem oldhatók meg kevesebb mint 17 lépéssel az FTM metrikában vagy 19 lépésnél a QTM metrikában.
Ez a becslés javítható további azonosságok figyelembevételével: két ellentétes lap forgásának kommutativitása (LR = RL, L2 R = R L2 stb.) Ez a megközelítés lehetővé teszi, hogy Isten számának alsó korlátját kapjuk 18f-ben. vagy 21q [20] [21 ] .
Ez a becslés régóta a legismertebb. Ez egy nem építő jellegű bizonyításból következik, mivel nem jelez konkrét példát olyan konfigurációra, amelyhez 18f vagy 21q szükséges.
Az egyik olyan konfiguráció, amelyre nem sikerült rövid megoldást találni, az úgynevezett " superflip " vagy "12-flip". A "Superflip"-ben minden sarok- és élkocka a helyén van, de minden élkocka ellentétes irányban [22] . A Rubik-kocka gráfban a szuperflipnek megfelelő csúcs egy lokális maximum: ebből a konfigurációból minden elmozdulás csökkenti a távolságot a kezdeti konfigurációtól. Ez arra utalt, hogy a szuperflip a legnagyobb távolságban van a kezdeti konfigurációtól. Vagyis a szuperflip egy globális maximum [23] [24] [25] .
1992-ben Dick T. Winter 20f-ben talált megoldást a szuperflipre [26] . 1995-ben Michael Reed bebizonyította ennek a megoldásnak az optimálisságát [27] , aminek következtében az Isten számának alsó korlátja 20 FTM lett. 1995-ben Michael Reid felfedezte a "szuperflip" megoldását a 24q-ban [28] . Ennek a megoldásnak az optimálisságát Jerry Bryan bizonyította [29] . 1998-ban Michael Reed talált egy konfigurációt, amelynek optimális megoldása 26q* volt [30] .
Ahhoz, hogy Isten számának felső korlátját megkapjuk, elegendő bármely, véges számú lépésből álló rejtvény-összeállítási algoritmust megadni.
Az Isten számának első felső határa több szakaszból álló „emberi” algoritmusokon alapult. Az egyes szakaszokhoz tartozó felülről származó becslések összeadása lehetővé tette, hogy több tíz vagy száz lépés nagyságrendű végső becslést kapjunk.
Valószínűleg az első konkrét becslést felülről David Singmaster adta 1979-ben. Összeszerelő algoritmusa lehetővé tette a puzzle összeállítását legfeljebb 277 mozdulattal [16] [31] . A Singmaster később beszámolt arról, hogy Alvin Berlekamp , John Conway és Richard Guy olyan összeállítási algoritmust fejlesztettek ki, amely legfeljebb 160 mozdulatot igényel. Hamarosan "Conway cambridge-i kubistáinak" egy csoportja, akik egy arc kombinációinak listáját állították össze, találtak egy 94 irányú algoritmust [16] [32] . 1982-ben a Kvant magazin közzétett egy listát azokról a kombinációkról, amelyek lehetővé teszik a Rubik-kocka 79 mozdulattal történő megoldását [33] .
Thistlethwaite algoritmusaAz 1980-as évek elején Morvin Thistlethwaite angol matematikus kifejlesztett egy algoritmust, amely jelentősen javította a felső határt. Az algoritmus részleteit Douglas Hofstadter tette közzé 1981-ben a Scientific Americanban . Az algoritmus csoportelméleten alapult, és négy szakaszból állt.
LeírásThistlethwaite számos 4-es hosszúságú alcsoportot használt
ahol
Az első szakaszban a csoport egy tetszőlegesen megadott konfigurációja az alcsoportban található konfigurációvá redukálódik . A második szakasz célja, hogy a kockát az alcsoport konfigurációjába hozza anélkül, hogy a bal és jobb oldalt ±90°-kal elforgatná. A harmadik szakaszban a Rubik-kocka a csoportba tartozó konfigurációra redukálódik , míg a függőleges lapok ±90°-os elforgatása tilos. Az utolsó, negyedik szakaszban a Rubik-kockát a lapok 180°-os elfordításával teljesen összeállítják.
Az alcsoport indexei 2048 , 1082565, 29400 és 663552.
Mind a négy jobb coset családhoz létrejön egy keresőtábla , amelynek mérete megegyezik a csoport alcsoportjának indexével . Az egyes alcsoportok szomszédsági osztályaihoz a keresési táblázat egy olyan lépéssorozatot tartalmaz, amely az adott szomszédsági osztály bármely konfigurációját olyan konfigurációvá alakítja, amely magában az alcsoportban található .
A keresési táblákban lévő bejegyzések számának csökkentése érdekében Thistlethwaite egyszerűsített előzetes lépéseket alkalmazott. Eredetileg 85 lépést kapott. 1980 folyamán ez a pontszám 80 lépésre, majd 63-ra és 52-re csökkent [16] [36] . Thistlethwaite tanítványai teljes elemzést készítettek az egyes szakaszokról. A táblázatokban a maximális értékek 7, 10, 13 és 15 FTM ütés. Mivel 7 + 10 + 13 + 15 = 45, a Rubik-kocka mindig 45 FTM [25] [37] [38] mozdulattal megoldható .
Schreier grófA Schreier-gráf egy gráf, amely egy csoporthoz, egy generáló halmazhoz és egy alcsoporthoz. A Schreier-gráf minden csúcsa egy jobb cosetnéhány. Schreier gróf élei párok.
Thistlethwaite algoritmusának mind a négy szakasza a Schreier-gráf szélességi bejárása , ahol a csoport generáló halmaza .
Így a 45 lépés felső becslése az
ahol
az egység cosetnek megfelelő csúcs excentricitása .A Schreier-gráf fogalmát Radu [39] , Kunkle és Cooperman [40] munkáiban használták .
Thistlethwaite algoritmusának módosításai1990 decemberében Hans Kloosterman Thistlethwaite módszerének módosított változatával igazolta a 42 lépés elegendőségét [1] [20] [41] .
1992 májusában Michael Reid kimutatta, hogy a 39f vagy az 56q elegendő [42] . Módosításában a következő alcsoportok láncát használtuk:
Néhány nappal később Dick T. Winter 37 lépésre csökkentette FTM-pontszámát [43] .
2002 decemberében Ryan Hayes kifejlesztette Thistlethwaite algoritmusának a Rubik -kocka gyors megoldására tervezett változatát [44] .
Kétfázisú Kotsemba algoritmusThistlethwaite algoritmusát 1992-ben Herbert Kotsemba, darmstadti matematikatanár fejlesztette tovább.
LeírásKotsemba kettőre csökkentette az algoritmus lépéseinek számát [20] [45] [46] :
A csoport vizuális leírását a következő jelölésekkel kaphatjuk meg [20] [47] :
Ekkor a csoport minden konfigurációja ugyanazzal a jelöléssel rendelkezik (egybeesik az összeállított kockán lévő jelöléssel).
A megoldás két szakaszból áll. Az első szakaszban az adott konfigurációt egy mozdulatsorral lefordítják valamilyen konfigurációba . Vagyis az első szakasz feladata a kezdeti konfigurációnak megfelelő jelölés visszaállítása, figyelmen kívül hagyva a címkék színeit.
A második szakaszban a konfigurációt egy mozdulatsorral továbbítják a kezdeti konfigurációhoz. Ebben az esetben az oldallapok ±90°-os elforgatása nem kerül felhasználásra, ami miatt a jelölés automatikusan mentésre kerül.
A mozdulatsorok ragasztása szuboptimális megoldás az eredeti konfigurációhoz képest [20] [46] [48] .
Alternatív szuboptimális megoldásokA Kotsemba algoritmusa az első megoldás megtalálása után sem áll le. Az első szakasz alternatív optimális megoldásai a második szakaszban rövidebb megoldásokhoz vezethetnek, ami csökkenti a megoldás teljes hosszát. Az algoritmus az első szakaszban folytatja a nem optimális megoldások keresését is a hosszuk növelésének sorrendjében [20] [46] [48] .
Megvalósítási jellemzőkA megoldások kereséséhez mind a két szakaszban az IDA* algoritmust használjuk a megfelelő részfeladatok megoldási költségein alapuló heurisztikus függvényekkel [48] .
Az első szakasz feladata három koordinátájú térbeli út megtalálása az ( x 1 , y 1 , z 1 ) koordinátákkal való jelöléstől a (0, 0, 0) címkézésig [49] :
Tekintsünk három részproblémát a jelöléstől ( x 1 , y 1 , z 1 ) a jelölésig ( x 1 ', y 1 ', 0 ), ( x 1 ', 0, z 1 '), (0, y 1 ', z 1 '). Az első szakaszban használt h 1 heurisztikus függvény értéke megegyezik ezen részfeladatok megoldásának maximális költségével. A részfeladatok megoldásának költségeit előre kalkulálják és adatbázisok formájában tárolják sablonokkal [50] [51] .
A második szakasz feladata a ( x 2 , y 2 , z 2 ) konfigurációtól a (0, 0, 0) konfigurációig terjedő három koordinátával a térben való út megtalálására korlátozódik [52] :
Tekintsünk három részproblémát az ( x 2 , y 2 , z 2 ) konfigurációtól az ( x 2 ', y 2 ', 0 ), ( x 2 ', 0, z 2 '), (0, y 2 ) konfigurációhoz vezető út megtalálásához ', z2 ') . A második szakaszban használt h 2 heurisztikus függvény értéke megegyezik ezen részfeladatok megoldásának maximális költségével.
Az algoritmus további optimalizációkat használ, amelyek célja a teljesítmény növelése és a [20] [45] [46] [53] táblázatok által elfoglalt memória csökkentése .
Szoftver implementációkA Cube Explorer az algoritmus szoftveres megvalósítása a Windows operációs rendszerhez. A letöltési linkek Herbert Kotsemba honlapján találhatók [54] . 1992-ben egy 1 MB memóriával és 8 MHz-es frekvenciájú Atari ST PC -n az algoritmus 1-2 percen belül 22 lépésnél hosszabb megoldást tett lehetővé [20] [45] . Egy modern számítógépen a Cube Explorer segítségével néhány másodperc alatt 20 mozdulatnál hosszabb megoldást találhatunk egy tetszőleges konfigurációra [45] .
Az algoritmusnak létezik online változata [55] .
Elemzés1995-ben Michael Reed kimutatta, hogy a Kotsemba algoritmusának első és második fázisa legfeljebb 12, illetve 18 mozdulatot (FTM) igényelhet. Ebből az következik, hogy a Rubik-kocka mindig 30 mozdulattal megoldható. További elemzések azt mutatták, hogy a 29f vagy a 42q [25] [56] mindig elegendő .
A Kotsemba algoritmusa lehetővé teszi, hogy gyorsan találjon rövid, szuboptimális megoldásokat. A megtalált megoldás optimálisságának bizonyítása azonban jelentős időt vehet igénybe. Az optimális megoldások megtalálásához speciális algoritmusra volt szükség.
1997-ben kiadott egy algoritmust, amely lehetővé tette számára a Rubik-kocka tetszőleges konfigurációinak optimális megoldását. Tíz véletlenszerűen kiválasztott konfigurációt legfeljebb 18 FTM-mozgásban oldottak meg [57] [58] .
Maga a Korff-algoritmus a következőképpen működik. Mindenekelőtt olyan részproblémákat határoznak meg, amelyek elég egyszerűek a teljes felsoroláshoz. A következő három részfeladatot [25] használtuk :
Az egyes részproblémák megoldásához szükséges lépések száma a megoldás befejezéséhez szükséges lépések számának alsó határa. A Rubik-kocka egy tetszőlegesen megadott konfigurációját az IDA* algoritmussal oldjuk meg , amely ezt a becslést használja heurisztikaként. A részfeladatok megoldásának költségeit adatbázisok formájában tároljuk sablonokkal [50] [57] .
Bár ez az algoritmus mindig megtalálja az optimális megoldást, nem határozza meg közvetlenül, hogy a legrosszabb esetben hány lépésre lehet szükség.
Az algoritmus C-beli implementációja megtalálható az [59]-ben .
2005-ben Michael Reid QTM-pontszáma 40q-ra javította Silviu Radut [60] . 2006-ban Silviu Radu bebizonyította, hogy a Rubik-kocka 27f-ben [39] vagy 35q-ban [61] megoldható .
2007-ben Daniel Kunkle és Gene Cooperman egy szuperszámítógép segítségével bebizonyították, hogy az összes megoldatlan konfiguráció legfeljebb 26 FTM-mozdulattal megoldható. Az ötlet az volt, hogy a Rubik-kockát a 15 752 négyzet -konfiguráció egyikébe hozzuk , amelyek mindegyike néhány extra mozdulattal végül megoldható. A legtöbb konfigurációt így sikerült megoldani legfeljebb 26 mozdulattal. A fennmaradó konfigurációkat további elemzésnek vetették alá, ami azt mutatta, hogy 26 lépésben is megoldhatók [40] [62] .
Thomas Rokicki 2008-ban publikált egy számítási bizonyítékot az FTM 25 lépéses rejtvény megoldhatóságára [63] . 2008 augusztusában Rokiki bejelentette a megoldhatóság igazolását a 23f-ben [64] . Később ez a becslés 22f-re javult [65] . 2009-ben 29 QTM lépésben is sikerült megmutatnia a megoldhatóságot [66] .
2010-ben Thomas Rokicki, Herbert Kotsemba, Morley Davidson és John Dethridge bebizonyította, hogy bármely Rubik-kocka konfiguráció legfeljebb 20 mozdulattal megoldható az FTM-metrikában [1] [14] . A korábban ismert alsó 20f* becsléssel együtt ez bebizonyította, hogy a Rubik-kocka istenszáma az FTM-mutatóban 20.
2014 augusztusában Rockiki és Davidson bejelentette, hogy a Rubik-kocka istenszáma a QTM-metrikában 26 [3] [67] .
A Rubik-kocka konfigurációját, amely a kezdeti konfigurációtól a legnagyobb távolságra található, antipódnak nevezzük. Az FTM-metrika bármely antipódjának optimális megoldása van 20f*-ban, a QTM-metrika bármely antipódjában pedig 26q*-ban [3] [68] .
Ismeretes, hogy az FTM-metrikában több millió antipód található [69] . Az egyik ilyen konfiguráció a "superflip". Ellenkezőleg, a QTM-metrikában jelenleg csak egy antipodális konfiguráció ismert (nem számítva a belőle forgással kapott konfigurációkat) - az ún. négy folttal összeállított szuperflip [30] [67] [68] [70] . A kezdeti konfigurációtól 25q* távolságra csak két konfiguráció ismert, 24q* távolságban pedig körülbelül 80 ezer konfiguráció [3] [69] .
2011-ben az n × n × n kocka Isten-szám Θ ( n 2 / log( n )) volt [71] [72] .
Az üres kocka egy 3x3x3-as Rubik-kocka, központi darabok nélkül.
Az FTM-metrikában a "void - szuperflip " optimális megoldásának hossza 20 [73] [74] , ami azt bizonyítja, hogy 20 lépés szükséges. Mivel az üres kocka a Rubik-kocka gyengített problémája [50], a Rubik-kocka 20 lépésének elégséges bizonyítéka [1] az üres kockára vonatkozik. Ezért az üres kocka istenszáma az FTM-mutatóban 20.
A 4×4×4-es kirakó ( Eng. Rubik's Revenge ) konfigurációinak száma [75]
Metrikák 4×4×4A 4x4x4-es kocka metrikáját többféleképpen is meghatározhatja. Ez a szakasz a következő mutatókat használja:
Egy tetszőleges konfiguráció optimális megoldásának hossza a qb metrikában nem nagyobb, mint a qw vagy qs metrikákban , mivel a másik két q-metrika minden mozgása megengedett a qb metrikában. Ugyanez vonatkozik a h-metrikákra is.
A 4×4×4 istenkocka számának becslései2006-2007-ben Bruce Norskog elvégezte a 4x4x4-es kocka 5-lépéses elemzését, hasonlóan a Thistlethwaite által a 3x3x3-as Rubik-kocka 4-lépéses elemzéséhez. Az elemzés a hw metrikában 82 elmozdulást [76] , a hs metrikában 77 elmozdulást [77] [78] , a hb metrikában pedig 67 lépést [76] eredményezett .
2011-ben Thomas Rokiki számos létező elképzelés alapján meghatározta az Isten számának alsó határát hat metrikában a 2 × 2 × 2 és 20 × 20 × 20 méretű kockarejtvények esetében [79] .
2013-ban Shuang Chen (陈霜) 82-ről 57 kanyarra csökkentette a teljesítményét [80] .
2015-ben Thomas Rokicki megerősítette az 57 hw -os csúcspontszámot, és új csúcspontokat kapott: 56 hs és 53 hb [81] . Néhány nappal később Shuang Chennek (陈霜) a bizonyítás lépéseinek újradefiniálásával sikerült elérnie az 55 hw és 53 hs felső határát [82] [83] .
A 4×4×4-es vágószerszám jelenlegi ismert felső és alsó pontszáma különböző mérőszámokban a táblázatban látható:
mérőszámok | hs | hw | hb | qs | qw | qb |
---|---|---|---|---|---|---|
alacsonyabb becslés | 32 | 35 | 29 | 37 | 41 | 33 |
felső becslés | 53 | 55 | 53 | ? | ? | ? |
A Megaminx a Rubik-kocka legegyszerűbb analógja dodekaéder formájában. A 12 színből álló Megaminx konfigurációinak száma 1,01·10 68 .
2012-ben Herbert Kotsemba Megaminx istenszámának alsó korlátját 45 tetszőleges szögben vagy ±72°-os szögben 55 elforgatásban határozta meg [84] [85] .
2016-ban Herbert Kotsemba javította a Megaminx istenszámának alsó becslését, és tetszőleges szögben 48 lapelfordulásra növelte [86] .