Rubiks kub matematik | |
---|---|
Mediafiler på Wikimedia Commons |
Mathematics of the Rubik's Cube är en uppsättning matematiska metoder för att studera egenskaperna hos Rubiks kub ur en abstrakt matematisk synvinkel. Denna gren av matematik studerar kubmonteringsalgoritmer och utvärderar dem. Baserad på grafteori , gruppteori , beräkningsbarhetsteori och kombinatorik .
Det finns många algoritmer utformade för att överföra Rubiks kub från en godtycklig konfiguration till den slutliga konfigurationen (den sammansatta kuben). 2010 bevisades det rigoröst att inte mer än 20 varv av ytorna räcker för att överföra Rubiks kub från en godtycklig konfiguration till en sammansatt konfiguration (ofta kallad "montering" eller "lösning") [1] . Detta nummer är diametern på Cayley-grafen för Rubiks kubgrupp [2] . 2014 bevisades det att 26 drag alltid räcker för att lösa Rubiks kub med endast 90° varv av ytorna [3] .
En algoritm som löser ett pussel i minsta möjliga antal drag kallas för Gud algoritmen .
Den här artikeln använder "Singmaster-notation" [4] [5] utvecklad av David Singmaster och publicerad av honom 1981 för att beteckna rotationssekvensen av ansiktena på en 3×3×3 Rubiks kub .
Bokstäverna representerar 90° medurs rotation av vänster ( vänster ), höger ( höger ), fram ( fram ), bak ( bak ), topp ( upp ) respektive botten ( ned ) sidor. 180° varv indikeras genom att lägga till en 2:a till höger om bokstaven, eller genom att lägga till en upphöjd 2 till höger om bokstaven. En 90° moturs rotation indikeras genom att lägga till ett bindestreck ( ′ ) eller lägga till en upphöjd -1 till höger om bokstaven. Så till exempel är posterna och likvärdiga, liksom posterna och .
Det finns två vanligaste sätt att mäta längden på en lösning ( metrisk ). Det första sättet - ett varv av lösningen anses vara ett varv med 90° ( kvartsvarv metriskt , QTM ). Enligt den andra metoden övervägs ett halvt varv av ansiktet också för 1 drag ( face turn metric , FTM , ibland betecknas det med HTM - half-turn metric ). Således bör F2 (vända framsidan 180°) räknas som två drag i QTM-måttet eller 1 drag i FTM-måttet [6] [7] .
För att i texten ange längden på sekvensen för den använda metriken används beteckningen [8] [9] [10] , bestående av siffrorna för antalet drag och den gemena första bokstaven i den metriska beteckningen. 14f står för "14 drag i FTM-måttet" och 10q står för "10 drag i QTM-måttet". För att indikera att antalet drag är det minsta i ett givet mått, används en asterisk : 10f* anger optimaliteten för lösningen i 10 FTM-drag.
Rubiks kub kan ses som ett exempel på en matematisk grupp .
Var och en av de sex rotationerna av Rubiks kubytor kan betraktas som en del av den symmetriska gruppen av uppsättningen av 48 Rubiks kubetiketter som inte är mitten av ytorna. Mer specifikt kan man markera alla 48 etiketterna med siffror från 1 till 48 och tilldela varje drag ett element i den symmetriska gruppen .
Då definieras Rubiks kubgrupp som den undergrupp som genereras av sex ansiktsrotationer:
Var och en av konfigurationerna kan lösas i högst 20 drag (om vi räknar varje vändning av ansiktet som ett drag) [1] .
Den högsta ordningen för ett element i är 1260. Till exempel måste sekvensen av drag upprepas 1260 gånger innan Rubiks kub återgår till sitt ursprungliga tillstånd [13] .
Sökandet efter Guds algoritm började senast 1980, då en e-postlista för fans av Rubiks kub öppnades [6] . Sedan dess har matematiker, programmerare och amatörer försökt hitta Guds algoritm så att i praktiken, med ett minimum av drag, lösa Rubiks kub. Relaterat till detta problem var problemet med att bestämma antalet Gud - antalet drag som alltid är tillräckligt för att slutföra pusslet.
2010, Palo Alto -programmeraren Thomas Rokiki, Darmstadt -matteläraren Herbert Kotsemba, matematikern Morley Davidson från University of Kent och ingenjör på Google Inc. John Dethridge bevisade att en Rubiks kub från vilket som helst demonterat tillstånd kan monteras i 20 drag. I det här fallet betraktades varje vändning av ansiktet som ett drag. Mängden beräkning var 35 års CPU-tid som donerats av Google [1] [14] [15] . Tekniska data om prestanda och antal datorer avslöjades inte. Beräkningarnas varaktighet var flera veckor [16] [17] [18] .
2014 bevisade Thomas Rockicki och Morley Davidson att Rubiks kub kan lösas i högst 26 drag utan användning av 180° vändningar. Volymen av beräkningar var 29 års processortid i Ohio superdatorcenter [3] .
Det är lätt att visa att det finns lösbara konfigurationer [19] som inte kan lösas med mindre än 17 drag i FTM-måttet eller 19 drag i QTM-måttet.
Denna uppskattning kan förbättras genom att ta hänsyn till ytterligare identiteter: kommutativiteten för rotationer av två motsatta ytor (LR = RL, L2 R = R L2, etc.) Detta tillvägagångssätt gör det möjligt att få en nedre gräns för antalet Gud i 18f eller 21q [20] [21] .
Denna uppskattning har länge varit den mest kända. Det följer av ett icke-konstruktivt bevis, eftersom det inte indikerar ett specifikt exempel på en konfiguration som kräver 18f eller 21q för att bygga.
En av de konfigurationer för vilka ingen kort lösning kunde hittas var den så kallade " superflip " eller "12-flip". I "Superflip" är alla hörn- och kantkuber på sina platser, men varje kantkub är orienterad motsatt [22] . Spetsen som motsvarar superflipen i Rubiks kubgraf är ett lokalt maximum: varje rörelse från denna konfiguration minskar avståndet till den ursprungliga konfigurationen. Detta antydde att superflip är på maximalt avstånd från den initiala konfigurationen. Det vill säga, en superflip är ett globalt maximum [23] [24] [25] .
1992 hittade Dick T. Winter en lösning på superflip i 20f [26] . 1995 bevisade Michael Reed optimaliteten av denna lösning [27] , som ett resultat av vilket den nedre gränsen för antalet av Gud blev 20 FTM. 1995 upptäckte Michael Reid lösningen på "superflipen" i 24q [28] . Optimaliteten av denna lösning bevisades av Jerry Bryan [29] . 1998 hittade Michael Reed en konfiguration vars optimala lösning var 26q* [30] .
För att få en övre gräns för Guds tal räcker det med att specificera vilken pusselsammansättningsalgoritm som helst som består av ett ändligt antal drag.
De första övre gränserna för antalet Gud baserades på "mänskliga" algoritmer bestående av flera stadier. Genom att lägga till uppskattningarna från ovan för var och en av stegen gjorde det möjligt att få en slutlig uppskattning i storleksordningen flera tiotals eller hundratals drag.
Förmodligen den första konkreta uppskattningen från ovan gavs av David Singmaster 1979. Hans monteringsalgoritm gjorde att pusslet kunde sättas ihop i högst 277 drag [16] [31] . Singmaster rapporterade senare att Alvin Berlekamp , John Conway och Richard Guy utvecklade en monteringsalgoritm som inte kräver mer än 160 drag. Snart hittade en grupp "Conways Cambridge-kubister", som höll på att sammanställa en lista med kombinationer för ett ansikte, en 94-vägsalgoritm [16] [32] . 1982 publicerade tidningen Kvant en lista över kombinationer som gör det möjligt att lösa Rubiks kub i 79 drag [33] .
Thistlethwaites algoritmI början av 1980-talet utvecklade den engelske matematikern Morvin Thistlethwaite en algoritm som avsevärt förbättrade den övre gränsen. Detaljerna i algoritmen publicerades av Douglas Hofstadter 1981 i Scientific American . Algoritmen baserades på gruppteori och omfattade fyra steg.
BeskrivningThistlethwaite använde ett antal undergrupper med längd 4
var
I det första steget reduceras en godtyckligt given konfiguration från gruppen till en konfiguration som ligger i undergruppen . Målet med det andra steget är att föra kuben till konfigurationen i undergruppen utan att använda rotationer av vänster och höger yta med ±90°. I det tredje steget reduceras Rubiks kub till en konfiguration som tillhör gruppen , medan rotationer av de vertikala ytorna med ±90° är förbjudna. I det sista, fjärde steget, monteras Rubiks kub helt genom att vrida sidorna 180°.
Undergruppsindexen vid är 2048, 1082565, 29400 respektive 663552.
För var och en av de fyra familjerna med högra coset byggs en uppslagstabell , vars storlek matchar indexet för undergruppen i gruppen . För varje angränsande undergruppsklass innehåller uppslagstabellen en sekvens av drag som översätter alla konfigurationer från denna angränsande klass till en konfiguration som ligger i själva undergruppen .
För att minska antalet poster i uppslagstabellerna använde Thistlethwaite förenklade preliminära drag. Den fick ursprungligen en poäng på 85 drag. Under 1980 reducerades denna poäng till 80 drag, sedan till 63 och 52 [16] [36] . Thistlethwaites elever gjorde en fullständig analys av vart och ett av stegen. De maximala värdena i tabellerna är 7, 10, 13 respektive 15 FTM-slag. Eftersom 7 + 10 + 13 + 15 = 45, kan Rubiks kub alltid lösas i 45 FTM [25] [37] [38] drag .
Greve SchreierSchreier-grafen är en grafassocierad med en grupp, en genereringsmängd och en undergrupp. Varje hörn av Schreier-grafen är en rätt cosetför vissa. Kanterna på greve Schreier är par.
Vart och ett av de fyra stegen i Thistlethwaites algoritm är en bredd-först genomgång av Schreier-grafen , där är genereringsuppsättningen för gruppen .
Således är den övre uppskattningen på 45 drag
var
är excentriciteten hos vertexet som motsvarar enhetens coset .Begreppet en Schreier-graf användes i verk av Radu [39] , Kunkle och Cooperman [40] .
Ändringar av thistlethwaites algoritmI december 1990 använde Hans Kloosterman en modifierad version av Thistlethwaites metod för att bevisa att 42 drag räckte [1] [20] [41] .
I maj 1992 visade Michael Reid att 39f eller 56q var tillräckligt [42] . I sin modifiering användes följande kedja av undergrupper:
Några dagar senare sänkte Dick T. Winter sin FTM-poäng till 37 drag [43] .
I december 2002 utvecklade Ryan Hayes en version av Thistlethwaites algoritm utformad för att snabbt lösa Rubiks kub [44] .
Tvåfas Kotsemba-algoritmThistlethwaites algoritm förbättrades 1992 av Herbert Kotsemba, en matematiklärare från Darmstadt.
BeskrivningKotsemba minskade antalet algoritmsteg till två [20] [45] [46] :
En visuell beskrivning av gruppen kan erhållas om följande markering görs [20] [47] :
Då kommer alla konfigurationer av gruppen att ha samma markering (sammanfaller med markeringen på den sammansatta kuben).
Lösningen består av två steg. I det första steget översätts den givna konfigurationen av en sekvens av drag till någon konfiguration . Med andra ord är uppgiften för det första steget att återställa markeringen som motsvarar den initiala konfigurationen, och ignorera färgerna på etiketterna.
I det andra steget överförs konfigurationen genom en sekvens av rörelser till den initiala konfigurationen. I detta fall används inte sidoytornas rotationer med ±90°, vilket gör att markeringen automatiskt sparas.
Att limma sekvenser av drag är en suboptimal lösning på den ursprungliga konfigurationen [20] [46] [48] .
Alternativa suboptimala lösningarKotsembas algoritm slutar inte efter att ha hittat den första lösningen. Alternativa optimala lösningar i det första steget kan leda till kortare lösningar i det andra steget, vilket minskar lösningens totala längd. Algoritmen fortsätter även att söka efter icke-optimala lösningar i det första steget för att öka deras längd [20] [46] [48] .
ImplementeringsfunktionerFör att söka efter lösningar i vart och ett av de två stegen används IDA* -algoritmen med heuristiska funktioner baserade på kostnaderna för att lösa motsvarande deluppgifter [48] .
Uppgiften för det första steget reduceras till att hitta en väg i rymden med tre koordinater från märkningen med koordinater ( x 1 , y 1 , z 1 ) till märkningen (0, 0, 0) [49] :
Betrakta tre delproblem med att hitta en väg från markeringen ( x 1 , y 1 , z 1 ) till markeringen ( x 1 ', y 1 ', 0), ( x 1 ', 0, z 1 '), (0, y 1 ', z 1 '). Värdet på den heuristiska funktionen h 1 som används i det första steget är lika med den maximala kostnaden för att lösa dessa delproblem. Kostnaderna för att lösa deluppgifter är förberäknade och lagras i form av databaser med mallar [50] [51] .
Uppgiften för det andra steget reduceras till att hitta en väg i rymden med tre koordinater från konfigurationen ( x 2 , y 2 , z 2 ) till konfigurationen (0, 0, 0) [52] :
Betrakta tre delproblem med att hitta en väg från konfiguration ( x 2 , y 2 , z 2 ) till konfiguration ( x 2 ', y 2 ', 0), ( x 2 ', 0, z 2 '), (0, y 2 ', z2 ') . Värdet på den heuristiska funktionen h 2 som används i det andra steget är lika med den maximala kostnaden för att lösa dessa delproblem.
Algoritmen använder ytterligare optimeringar som syftar till att öka prestanda och minska minnet som upptas av tabeller [20] [45] [46] [53] .
ProgramvaruimplementeringarCube Explorer är en mjukvaruimplementering av algoritmen för Windows OS. Nedladdningslänkar finns på Herbert Kotsembas hemsida [54] . År 1992, på en Atari ST PC med 1 MB minne och en frekvens på 8 MHz, tillät algoritmen att hitta en lösning som inte var längre än 22 drag inom 1-2 minuter [20] [45] . På en modern dator gör Cube Explorer det möjligt att på några sekunder hitta en lösning som inte är längre än 20 drag för en godtyckligt given konfiguration [45] .
Det finns en onlineversion av algoritmen [55] .
Analys1995 visade Michael Reed att den första och andra fasen av Kotsembas algoritm kunde kräva högst 12 respektive 18 drag (FTM). Det följer av detta att Rubiks kub alltid kan lösas i 30 drag. Ytterligare analys visade att 29f eller 42q [25] [56] alltid är tillräckligt .
Kotsembas algoritm gör att du snabbt kan hitta korta, suboptimala lösningar. Det kan dock ta lång tid att bevisa optimaliteten hos den hittade lösningen. En specialiserad algoritm för att hitta optimala lösningar behövdes.
1997 publicerade han en algoritm som gjorde det möjligt för honom att optimalt lösa godtyckliga konfigurationer av Rubiks kub. Tio slumpmässigt valda konfigurationer löstes i högst 18 FTM-drag [57] [58] .
Själva Korff-algoritmen fungerar enligt följande. Först och främst bestäms delproblem som är enkla nog att utföra en fullständig uppräkning. Följande tre deluppgifter [25] användes :
Antalet drag som krävs för att lösa vart och ett av dessa delproblem är en nedre gräns för antalet drag som krävs för att slutföra lösningen. En godtyckligt given konfiguration av Rubiks kub löses med IDA*-algoritmen , som använder denna uppskattning som en heuristik. Kostnaderna för att lösa deluppgifter lagras i form av databaser med mallar [50] [57] .
Även om denna algoritm alltid kommer att hitta optimala lösningar, avgör den inte direkt hur många drag som kan krävas i värsta fall.
En implementering av algoritmen i C finns i [59] .
2005 förbättrade Michael Reids QTM-poäng Silviu Radu till 40q [60] . 2006 bevisade Silviu Radu att Rubiks kub kan lösas i 27f [39] eller 35q [61] .
2007 använde Daniel Kunkle och Gene Cooperman en superdator för att bevisa att alla olösta konfigurationer kan lösas i högst 26 FTM-drag. Tanken var att föra in Rubiks kub i en av 15 752 delmängder av kvadratkonfigurationer , som var och en kan lösas till slut med några extra drag. De flesta av konfigurationerna löstes på detta sätt i högst 26 drag. De återstående konfigurationerna utsattes för ytterligare analys, som visade att de också kan lösas i 26 drag [40] [62] .
År 2008 publicerade Thomas Rokicki ett beräkningsbevis på lösbarheten hos FTM 25-dragpusslet [63] . I augusti 2008 tillkännagav Rokiki ett bevis på lösbarhet i 23f [64] . Senare förbättrades denna uppskattning till 22f [65] . 2009 lyckades han också visa lösbarheten i 29 QTM-drag [66] .
2010 tillkännagav Thomas Rokicki, Herbert Kotsemba, Morley Davidson och John Dethridge ett bevis på att vilken Rubiks kub-konfiguration som helst kan lösas i högst 20 drag i FTM-metriken [1] [14] . Tillsammans med den tidigare kända lägre uppskattningen av 20f* bevisade detta att Rubik's Cube God-talet i FTM-måttet är 20.
I augusti 2014 meddelade Rockiki och Davidson att gudsnumret för Rubiks kub i QTM-måttet är 26 [3] [67] .
Konfigurationen av Rubiks kub, som är belägen på maximalt avstånd från den ursprungliga konfigurationen, kallas antipoden. Alla antipoder i FTM-måttet har en optimal lösning i 20f*, och alla antipoder i QTM-måttet har en optimal lösning i 26q* [3] [68] .
Det är känt att det finns miljontals antipoder i FTM-metriken [69] . En sådan konfiguration är "superflip". Tvärtom, i QTM-metriken är för närvarande endast en antipodalkonfiguration känd (utan att räkna de konfigurationer som erhålls från den genom rotationer) - den så kallade. superflip komponerad med fyra fläckar [30] [67] [68] [70] . Endast två konfigurationer är kända på ett avstånd av 25q* från den initiala konfigurationen och cirka 80 tusen konfigurationer på ett avstånd av 24q* [3] [69] .
År 2011 visades n × n × n kubens gudsnummer vara Θ( n 2 / log( n )) [71] [72] .
Void Cube är en 3x3x3 Rubiks kub utan centrala delar.
Längden på den optimala lösningen för en "void- superflip " i FTM-metriken är 20 [73] [74] , vilket är ett bevis på att 20 drag är nödvändiga. Eftersom Void Cube är ett försvagat problem [50] av Rubik's Cube, gäller det befintliga beviset på att 20 drag räcker för Rubik's Cube [1] för Void Cube. Därför är Gud-numret för Void Cube i FTM-måttet 20.
Antalet konfigurationer av 4×4×4-pusslet ( Eng. Rubik's Revenge ) är [75]
Mätvärden 4×4×4Det finns flera sätt att bestämma måtten för en 4x4x4 kub. Det här avsnittet använder följande mätvärden:
Längden på den optimala lösningen av en godtycklig konfiguration i qb-måttet är inte större än i qw- eller qs -måttet , eftersom alla rörelser av de andra två q-måtten är tillåtna i qb -måttet. Detsamma gäller för h-metrics.
Uppskattningar av antalet Gud kub 4×4×4Under 2006-2007 Bruce Norskog gjorde en 5-stegsanalys av 4x4x4-kuben, liknande den 4-stegsanalys som Thistlethwaite gjorde för 3x3x3 Rubik's Cube. Analysen gav övre gränser för 82 drag i hw- måttet [76] , 77 drag i hs- måttet [77] [78] och 67 drag i hb- måttet [76] .
År 2011 bestämde Thomas Rokiki, baserat på flera befintliga idéer, nedre gränser för antalet Gud i sex mått för kubiska pussel med storlekar från 2×2×2 till 20×20×20 [79] .
2013 sänkte Shuang Chen (陈霜) sin hw- poäng från 82 till 57 varv [80] .
2015 bekräftade Thomas Rokicki toppbetyget på 57 hw och fick nya toppbetyg på 56 hs och 53 hb [81] . Några dagar senare lyckades Shuang Chen (陈霜) få övre gränser på 55 hw och 53 hs genom att omdefiniera bevisets steg [82] [83] .
De nuvarande kända övre och nedre poängen för 4×4×4-matrisen i olika mått visas i tabellen:
metrik | hs | H w | hb | qs | qw | qb |
---|---|---|---|---|---|---|
lägre uppskattning | 32 | 35 | 29 | 37 | 41 | 33 |
högsta uppskattning | 53 | 55 | 53 | ? | ? | ? |
Megaminx är den enklaste analogen av Rubiks kub i form av en dodekaeder. Antalet konfigurationer av 12-färgs Megaminx är 1,01·10 68 .
År 2012 bestämde Herbert Kotsemba att en nedre gräns för Megaminxs Gud-tal var 45 ansiktsrotationer genom vilken vinkel som helst, eller 55 rotationer genom en vinkel på ±72° [84] [85] .
Under 2016 förbättrade Herbert Kotsemba den lägre uppskattningen av Gud-talet för Megaminx, och ökade det till 48 ansiktsrotationer i valfri vinkel [86] .