139 66 1MB
Dutch Pages 51 Year 2015
Faculteit Wetenschappen Vakgroep Wiskunde
Een groepentheoretische kijk op permutatiepuzzels
Jens Bossaert Bachelorproef ingediend tot het behalen van de graad van bachelor in de Wiskunde Academiejaar 2014–2015 Promotor: Prof. dr. H. Van Maldeghem Vakgroep Wiskunde
This work is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0). To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/.
Inhoudsopgave
1 Inleiding 2 Voorbereidend werk 2.1 Centrale algebra¨ısche structuren . . . 2.2 Permutaties . . . . . . . . . . . . . . 2.3 Permutatiegroepen . . . . . . . . . . 2.4 Generatoren van Sym(n) en Alt(n) . 2.5 Generatoren van permutatiegroepen 3 Abstracte permutatiepuzzels 3.1 Abstracte definitie . . . . . . . . . . . 3.2 Praktische interpretatie . . . . . . . . 3.3 Kleuren . . . . . . . . . . . . . . . . . Via permutatie-equivalentie . . . Via groepsacties en stabilisatoren 3.4 Oplossingen . . . . . . . . . . . . . . 3.5 Bijzondere gevallen . . . . . . . . . . 3.6 Cayleygrafen . . . . . . . . . . . . . . Afstandsmaten . . . . . . . . . . .
5
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
4 Permutatiepuzzels oplossen 4.1 Basissen en sterk genererende verzamelingen 4.2 Algoritme van Schreier–Sims . . . . . . . . . . Bepalen van de baan . . . . . . . . . . . . . Bepalen van de nevenklasseleiders . . . . . Bepalen van de stabilisator . . . . . . . . . Het uiteindelijke algoritme . . . . . . . . . Toepassingen . . . . . . . . . . . . . . . . . 4.3 Filters . . . . . . . . . . . . . . . . . . . . . . . Sims’ filter . . . . . . . . . . . . . . . . . . Jerrums filter . . . . . . . . . . . . . . . . . 4.4 Toepassing op permutatiepuzzels . . . . . . . 4.5 Optimalisatie voor permutatiepuzzels . . . . .
3
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . .
7 7 8 8 9 11
. . . . . . . . .
13 13 13 15 15 15 16 17 18 18
. . . . . . . . . . . .
21 21 23 23 24 24 25 26 27 27 27 28 28
5 Concrete permutatiepuzzels 5.1 Hongaarse ringen . . . . 5.2 TopSpin . . . . . . . . . . 5.3 Larry’s Square . . . . . . 5.4 Rubik’s Clock . . . . . . 5.5 Atomic Chaos . . . . . . 5.6 Rubik’s Cheese . . . . . . 5.7 Rubik’s Cube . . . . . . . 6 Schuifpuzzels 6.1 14-15-puzzel . . . . . 6.2 Stelling van Wilson . 6.3 Conways M13 -puzzel 6.4 Groepo¨ıden . . . . . .
. . . .
. . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . .
31 32 33 33 34 35 36 37
. . . .
41 41 43 44 46
A Bronnen
47
B Code
49
C Index
51
4
1
Inleiding
Vele wiskundigen, zowel studenten als professoren, zijn gefascineerd door puzzels en spelletjes, en dat is niet toevallig: vaak schuilt er heel wat interessante wiskunde achter spel- of puzzelmechanismen. Een treffende uitspraak van John Conway vat het prachtig samen: some serious mathematics, but I also do games, and for me they’re very similar. If you play “ Iadogame—if you learn to be good at it—you find what it is you should have been thinking about. That’s really rather subtle. . . and that’s what we do in mathematics. Puzzles, for instance: what are puzzles? They’re something where you can do something you didn’t think you could do. John Conway Mystery and Magic of Mathematics: Martin Gardner and friends
”
Een categorie waarop dit in het bijzonder van toepassing is, omhelst de zogenaamde permutatiepuzzels. Bij dit type van puzzels is elke configuratie te beschrijven als een zekere permutatie, en corresponderen ook geldige zetten met permutaties op de componenten. Het beroemdste voorbeeld is zonder twijfel de Rubik’s Cube, maar vele andere puzzels behoren eveneens tot deze categorie en het is daarom interessant een algemene theorie uit te werken over permutatiepuzzels. Om permutatiepuzzels te beschrijven is niet veel diepere wiskunde vereist dan algemene groepentheorie. We beginnen met een snelle herhaling en enkele algemene stellingen die her en der te pas komen. Daarna defini¨eren we wat een abstracte permutatiepuzzel inhoudt, onderzoeken we de algemene eigenschappen en bespreken we algoritmische technieken om deze puzzels op te lossen. Tot slot analyseren we enkele concrete permutatiepuzzels, met een bijzondere aandacht voor de Rubik’s Cube, en bestuderen we hoe de geziene onderwerpen ook op schuifpuzzels van toepassing zijn. Voor een analyse van bepaalde groepen vallen we terug op GAP (Groups, Algorithms and Programming): een computeralgebrasysteem voor computationele discrete algebra met een nadruk op computationele groepentheorie, uitermate geschikt voor de omvangrijke groepen die we tijdens dit project tegenkomen. Meer informatie op http://www.gap-system.org. Deze bachelorproef bleek een werk van lange adem, die niet tot een goed einde gebracht zou zijn zonder de steun van enkele mensen. Bijzondere dank gaat uit naar professor Hendrik Van Maldeghem, voor het aanreiken van vele mooie idee¨en en voor zijn expertise in het onderwerp. Ik moet eveneens Sebastian Egner bedanken, die mij in de zomervakantie van 2014 warm maakte voor het onderwerp door via mail de methode van Schreier–Sims te schetsen en door te verwijzen naar concrete bronnen.
5
2
Voorbereidend werk
to have your tools with you. If you don’t, you’re apt to find something you didn’t expect “ Itandis best get discouraged. Stephen King, On Writing: A Memoir of the Craft
”
We gaan van start met wat algemene resultaten omtrent permutaties en permutatiegroepen, die hun nut doorheen de rest van dit project zullen bewijzen. Ook defini¨eren we de afgezwakte noties van mono¨ıden en groepo¨ıden, die we later zullen tegenkomen bij het defini¨eren van oplossingen en bij schuifpuzzels.
2.1
Centrale algebra¨ısche structuren
Definitie 2.1.1. Een groep (G, ∗) is een niet-ledige verzameling G uitgerust met een inwendige binaire bewerking ∗ : G × G → G die voldoet aan volgende drie axioma’s: • Associativiteit: voor elke x, y, z ∈ G geldt dat (x ∗ y) ∗ z = x ∗ (y ∗ z). • Identiteit: er bestaat een e ∈ G zodat voor elke x ∈ G geldt dat e ∗ x = x = x ∗ e. • Invertibiliteit: voor elke x ∈ G bestaat een y ∈ G zodat x ∗ y = e = y ∗ x. Voor een opfrissing van groepentheorie in het algemeen verwijzen we naar [1]. Definitie 2.1.2. Een mono¨ıde (M, ∗) is een niet-ledige verzameling M uitgerust met een inwendige binaire bewerking ∗ : M × M → M die voldoet aan volgende twee axioma’s: • Associativiteit: voor elke x, y, z ∈ M geldt dat (x ∗ y) ∗ z = x ∗ (y ∗ z). • Identiteit: er bestaat een e ∈ M zodat voor elke x ∈ M geldt dat e ∗ x = x = x ∗ e. Met andere woorden, een mono¨ıde is een gebrekkige groep waarin het invertibiliteitsaxioma geschonden kan worden. Net als bij groepen kunnen we echter ook spreken van deelmono¨ıden, morfismen, acties, voortbrengers. . . Enkele klassieke voorbeelden zijn de natuurlijke getallen met de vermenigvuldiging, een machtsverzameling met de intersectie, of de verzameling Σ∗ van eindige strings uit een alfabet Σ met de concatenatie. Dit laatste voorbeeld wordt ook wel de vrije mono¨ıde over Σ genoemd en heeft de lege string ε als identiteitselement. In de informatica en de studie van formele talen wordt Σ∗ ook wel de Kleene-ster van Σ genoemd. Definitie 2.1.3. Een groepo¨ıde (G, ∗) is een niet-ledige verzameling G uitgerust met een unaire, overal gedefinieerde bewerking (·)−1 : G → G en een parti¨ele binaire bewerking ∗ : G × G → 7 G die voldoen aan volgende drie axioma’s: • Associativiteit: voor elke x, y, z ∈ G geldt dat wanneer x ∗ y en y ∗ z gedefinieerd zijn, dan ook (x ∗ y) ∗ z en x ∗ (y ∗ z) en deze zijn bovendien gelijk aan elkaar. 7
• Invertibiliteit: voor elke x ∈ G zijn x ∗ x−1 en x−1 ∗ x steeds gedefinieerd. • Identiteit: voor elke x, y ∈ G geldt dat wanneer x ∗ y gedefinieerd is, dan x ∗ y ∗ y −1 = x en x−1 ∗ x ∗ y = y (deze uitdrukkingen zijn al gedefinieerd volgens voorgaande axioma’s). Met andere woorden, een groepo¨ıde is een gebrekkige groep waarin de binaire bewerking niet voor elk koppel gedefinieerd hoeft te zijn. Dit houdt tevens enkele complicaties in; zo zijn x ∗ x−1 en x−1 ∗ x wel gedefinieerd maar niet noodzakelijk gelijk aan elkaar. Toch zijn ook hier meerdere concepten uit de groepentheorie te veralgemenen. Zo kunnen we ook een groepo¨ıde laten werken op een verzameling S en daar de banen en stabilisatoren voor bestuderen. Kiezen we dan een element s ∈ S, dan vormen de groepo¨ıde-elementen die s fixeren niet alleen een deelgroepo¨ıde maar zelfs een volwaardige groep.
2.2
Permutaties
Een permutatie van een verzameling is een bijectie ervan naar zichzelf, en dus een bijzonder soort functie. Permutaties op een vastgekozen eindige verzameling Ω kunnen worden samengesteld en ge¨ınverteerd, en voldoen zo aan een groepsstructuur. Deze groep heet de symmetrische groep op Ω en noteren we als Sym(Ω). Het eenheidselement is de identieke permutatie, die alle elementen fixeert. Als |Ω| = n, dan zijn er n! verschillende permutaties op deze verzameling, zodat | Sym(Ω)| = n!. Bovendien, als |Ω1 | = |Ω2 | = n dan is Sym(Ω1 ) ∼ = Sym(Ω2 ); we kunnen dus spreken van de symmetrische groep op n elementen, en noteren die dan ook als Sym(n). Een permutatie die juist twee elementen omwisselt heet een transpositie. We kunnen elke permutatie ontbinden in een product van transposities. Zo’n decompositie is niet uniek, maar de pariteit van het aantal transposities is steeds dezelfde, zodat ook de pariteit van een permutatie goed gedefinieerd is. Een deelgroep van een symmetrische groep heet een permutatiegroep. Een belangrijke deelgroep van Sym(n), met index twee, is de alternerende groep Alt(n) van alle even permutaties. Merk ook op dat de deelgroep van alle permutaties die k vaste elementen fixeren, isomorf is met Sym(n − k). Concrete permutaties noteren we via de cykelnotatie. We volgen bovendien de conventie om composities van links naar rechts te evalueren (conform met GAP), zodat bijvoorbeeld (1, 2) · (1, 3) = (1, 2, 3). Dit betekent dat we de inwerking van een permutatie interpreteren als een rechtse actie. We noteren dan ook het beeld van x onder de permutatie g als xg, zodat x(g · h) = (xg)h. We vermijden de vertrouwde prefixnotatie g(x) omdat dan (g · h)(x) = h(g(x)), en de exponenti¨ele postfixnotatie xg ten voordele van de leesbaarheid en om verwarring met toevoeging te vermijden.
2.3
Permutatiegroepen
Zoals de naam al aangeeft, is een studie van permutatiegroepen onontbeerlijk om permutatiepuzzels goed te begrijpen. We zullen dan ook starten met een algemene studie van deze bijzondere groepen. Een eerste stelling zal aantonen dat deze eigenlijk niet zo bijzonder zijn: Stelling 2.3.1 (Cayley). Elke groep (G, ∗) is isomorf met een permutatiegroep (die werkt op G). Bewijs. Stel voor elk groepselement g de afbeelding σg : G → G : x 7→ x ∗ g. Zo’n afbeelding is duidelijk injectief (want als x ∗ g = y ∗ g, dan is y = x) en surjectief (want elk element y wordt bereikt, door x = y ∗ g −1 ), en is dus een permutatie van de verzameling G.
8
Beschouw vervolgens de afbeelding ϕ : G → Sym(G) : g 7→ σg . Deze is een groepsmorfisme: x(σg · σh ) = ((x)σg )σh = (x ∗ g) ∗ h = x ∗ (g ∗ h) = xσg∗h . Bovendien is ϕ injectief aangezien x ∗ g = x ∗ h impliceert dat g = h. Volgens de eerste isomorfiestelling is G dan isomorf met het beeld van ϕ, zijnde de deelgroep {σg | g ∈ G} van Sym(G). Het morfisme ϕ zoals gedefinieerd in het bewijs wordt de reguliere representatie van de groep (G, ∗) genoemd. Het eenheidselement van G correspondeert met de identieke permutatie en elk ander element met een permutatie zonder fixpunten. Bemerk dat dit dan ook geldt voor machten van een groepselement kleiner dan zijn orde, zodat elke permutatie in de reguliere representatie bestaat uit even lange cykels; de lengte van deze cykels is precies de orde van het groepselement. Bovendien vormen de elementen in e´ e´ n cykel van σg een linkse nevenklasse van de deelgroep gegenereerd door g. Hoewel elementair is deze beroemde stelling van Cayley interessant voor dit project. Het blijkt namelijk geen beperking om uitsluitend permutatiegroepen te bestuderen: de structuur van eender welke groep kan worden bestudeerd door over te gaan op een permutatiegroep via een geschikt homomorfisme.
2.4
Generatoren van Sym(n) en Alt(n)
Symmetrische en alternerende groepen zijn onontbeerlijk om permutatiegroepen te kunnen bestuderen. We zullen later puzzels tegenkomen met kleuren, en dan zullen we de permutatiegroepen bestuderen die de componenten met eenzelfde kleur onderling omwisselen. Deze groepen zijn dan een direct product van symmetrische groepen. Het is dan ook handig om over een compacte verzameling voortbrengers te beschikken, zodat we deze groepen later kort kunnen omschrijven. Stelling 2.4.1. De symmetrische groep Sym(n) (met n ≥ 2) kan als volgt worden voortgebracht: • door alle transposities van de vorm (k, k + 1) met 1 ≤ k ≤ n − 1; • door alle transposities van de vorm (1, k) met 2 ≤ k ≤ n; • door de n-cykel (1, 2, . . . , n) en de transpositie (1, 2). Bewijs. We tonen de eerste situatie expliciet aan en herleiden de overige twee naar de eerste. • Via inductie op n: voor n = 2 is de opgave triviaal, dus beschouw een permutatie α en veronderstel de opgave bewezen voor kleinere n. Om de inductiehypothese te kunnen toepassen, volstaat het een product β van de vooropgestelde transposities te vinden zodat n(α · β) = n, want dan is α · β te beperken tot permutatie in Sym(n − 1). Noteer nα = k. Als k = n, dan is er niets te bewijzen; als k < n, dan voldoet β = (k, k + 1) · (k + 1, k + 2) · · · (n − 1, n). • Observeer dat (1, k) · (1, k + 1) · (1, k) = (k, k + 1) met 2 ≤ k ≤ n − 1. • Observeer dat (1, 2, . . . , n)1−k · (1, 2) · (1, 2, . . . , n)k−1 = (k, k + 1) met 1 ≤ k ≤ n − 1. Merk op dat de inductieve strategie in het bewijs om permutaties te ontbinden in transposities feitelijk neerkomt op het BubbleSort-algoritme, dat herhaaldelijk adjacente koppels in een te sorteren lijst al dan niet omkeert tot de volledige lijst gesorteerd is. 9
Er bestaan gelijkaardige verzamelingen met bijzondere voortbrengers voor de alternerende groepen. Stelling 2.4.2. De alternerende groep Alt(n) (met n ≥ 3) kan als volgt worden voortgebracht: • door alle permutaties van de vorm (1, 2)(k, k + 1) met 2 ≤ k ≤ n − 1; • door alle permutaties van de vorm (1, k, l) met 2 ≤ k < l ≤ n; • door alle permutaties van de vorm (1, 2, k) met 3 ≤ k ≤ n; • door (1, 2, . . . , n) en (1, 2, 3) voor oneven n, of door (2, . . . , n) en (1, 2, 3) voor even n. Zonder bewijs. Analoog aan stelling 2.4.1.
In het bijzonder worden zowel Sym(n) als Alt(n) voortgebracht door slechts twee elementen. Een mooi verwant resultaat is de stelling van Dixon, die uitdrukt dat zo’n kleine basis helemaal niet zeldzaam is: Stelling 2.4.3 (Dixon). Kies aselect en onafhankelijk twee elementen uit Sym(n). Noteer f1 (n) voor de kans dat ze heel Sym(n) voortbrengen en f2 (n) voor de kans dat ze Alt(n) voortbrengen. 3 1 en dat lim f2 (n) = . n→∞ 4 4 Alternatief, noteer g1 (n) voor de conditionele kans dat de twee permutaties Sym(n) voortbrengen gegeven dat ze niet beide even zijn, en g2 (n) voor de conditionele kans dat ze Alt(n) voortbrengen gegeven dat ze wel beide even zijn. Dan geldt dat lim f1 (n) = n→∞
Dan geldt dat lim g1 (n) = lim g2 (n) = 1. n→∞
n→∞
Zonder bewijs. Zie [9]; het achterliggende idee is dat twee permutaties niet heel Sym(n) of Alt(n) voortbrengen als en slechts als er een maximale echte deelgroep van Sym(n) of Alt(n) bestaat die beide permutaties bevat; het bewijs is gebaseerd op een afschatting van de kans daartoe. Concreet is de kans dat twee willekeurige permutaties Sym(n) of Alt(n) genereren, 1 − 1/n + O(1/n2 ). In de context van permutatiepuzzels zal de stelling van Dixon betekenen dat zelfs in puzzels met weinig geldige zetten vaak toch alle mogelijke configuraties te bereiken zijn (bij voldoende componenten). Ook geldt het volgende resultaat, dat uitdrukt dat ongeacht hoe groot een puzzel is, e´ e´ n extra geldige zet steeds zou volstaan om alle mogelijke configuraties oplosbaar te maken. Stelling 2.4.4 (Piccard). Voor elke niet-triviale permutatie α ∈ Sym(n) bestaat er een permutatie β ∈ Sym(n) zodat α en β samen de volledige symmetrische groep voortbrengen, tenzij voor n = 4 en α een product van twee disjuncte transposities. Zonder bewijs. We verwijzen hiervoor naar [14].
In praktijk zullen beide stellingen minder relevant blijken, omdat geldige zetten van permutatiepuzzels vaak van een bijzondere vorm (bijvoorbeeld cykels) moeten zijn om mechanisch haalbaar te blijven. 10
2.5
Generatoren van permutatiegroepen
Voor een willekeurige permutatiegroep zijn voortbrengende verzamelingen over het algemeen moeilijk te beschrijven. Zelfs bruikbare grenzen op het minimale aantal voortbrengers blijken niet zo eenvoudig te vinden. Mark Jerrum kon in 1982 volgende handige bovengrens aantonen, met bovendien een effici¨ent en elegant constructief bewijs. Stelling 2.5.1 (Jerrums filter). Elke deelgroep van Sym(n) wordt voortgebracht door hoogstens n − 1 elementen. Bovendien kan zo’n genererende verzameling gevonden worden via een “online”algoritme: gegeven een geschikte genererende verzameling voor H en een element g ∈ Sym(n), dan is het mogelijk daar een geschikte genererende verzameling uit te construeren voor hH, gi. Bewijs. Noteer S = {1, 2, . . . , n}. Met elke permutatie g ∈ Sym(n) verschillend van de identiteit associ¨eren we een element i(g) in S en een koppel e(g) in S × S, als volgt: • i(g) is het kleinste element uit S dat niet gefixeerd wordt door g; • e(g) is het koppel (i(g), i(g)g), bestaande uit i(g) en het beeld ervan onder g. Gegeven M ⊆ Sym(n) kunnen we e(M ) = {e(g) : g ∈ M } beschouwen als bogenverzameling van een graaf met toppenverzameling S. We beweren dat elke deelgroep van Sym(n) kan worden gegenereerd door een deelverzameling M waarvoor de graaf e(M ) geen cykels bevat; dit volstaat want een acyclische graaf met n toppen heeft hoogstens n − 1 bogen (met gelijkheid als en slechts als de graaf een boom is). Het bewijs werkt constructief door een initi¨ele verzameling generatoren e´ e´ n per e´ e´ n toe te voegen en het geheel telkens te reduceren indien nodig, totdat er uiteindelijk n − 1 elementen overblijven die dezelfde groep blijven opspannen. Veronderstel dus e(M ) acyclisch en beschouw eender welke permutatie g, dan willen we voor hM, gi een nieuwe genererende verzameling M 0 vinden waarvoor ook e(M 0 ) acyclisch is. Er zijn drie mogelijke gevallen: • g = id: dan voldoet M 0 = M . • e(M ∪ {g}) is acyclisch: dan voldoet M 0 = M ∪ {g}. • e(M ∪ {g}) bevat een cykel: dan is die noodzakelijkerwijs uniek is en bevat die de boog e(g). P Noteer M1 = M ∪ {g} en definieer de functie m(T ) = g∈T i(g) voor verzamelingen T met juist e´ e´ n cykel in e(T ). Merk op dat deze functie naar boven begrensd is, bijvoorbeeld door n2 (want |T | ≤ n en i(g) ≤ n voor g 6= id). Het volstaat om uit M1 een verzameling M2 te construeren waarvoor hM1 i = hM2 i en waarvoor ofwel e(M2 ) acyclisch is, ofwel e(M2 ) een unieke cykel bevat en m(M2 ) > m(M1 ); bij herhaling van dit proces kan het tweede geval zich immers slechts een eindig aantal keer voordoen en vinden we ooit een verzameling M 0 met hM ∪{g}i = hM 0 i en e(M 0 ) acyclisch. Noem i de kleinste waarde van S die optreedt als een top van de cykel in e(M1 ). We kunnen vanuit i rondgaan langs de cykel en bijhouden welke permutaties we onderweg tegenkomen via g of g −1 naargelang de boog van i(g) naar i(g)g gaat of vice versa. Zo bekomen we een product h = g11 · g22 · · · gkk (met j = ±1) dat i fixeert, en bovendien elke waarde kleiner
11
dan i want dat doet elk van de factoren. Vervang nu het element g1 in M1 door h. De waarde van m neemt dan strikt toe, omdat i(h) > i(g1 ) = i. Daarenboven is e(M1 \ g1 ) acyclisch, zodat er hoogstens e´ e´ n cykel ontstaat na het toevoegen van h. Tot slot is g1 uit te drukken in termen van h en de andere generatoren en omgekeerd, dus wijzigt de deelgroep erdoor voortgebracht niet. We hebben dus de gezochte verzameling M2 gevonden. Het aantal voortbrengers kan nog verder worden teruggeschroefd: Annabel McIver en Peter Neumann toonden in 1987 aan dat elke deelgroep van Sym(n) voor n > 3 door hoogstens bn/2c elementen wordt voortgebracht. Deze bovengrens is wel optimaal (beschouw bijvoorbeeld de elementair abelse 2-groep voortgebracht door bn/2c disjuncte transposities) maar het bewijs van de McIver–Neumanngrens berust op de classificatie van de eindige enkelvoudige groepen en suggereert geen manier om zo’n genererende verzameling te vinden, laat staan via een praktisch online-algoritme.
12
3 3.1
Abstracte permutatiepuzzels
Abstracte definitie
Intu¨ıtief is een permutatiepuzzel (zoals de Rubik’s Cube) een geheel van kleinere onderdelen, die door elkaar gehusseld kunnen worden volgens enkele vaste toegestane zetten. De opgave is om een bepaalde startpositie via uitsluitend deze zetten te herleiden naar een vooropgestelde opgeloste positie. Sommige puzzels maken bovendien gebruik van kleuren, zodat componenten met dezelfde kleur niet te onderscheiden zijn. We gieten dit in een formele definitie. Definitie 3.1.1. Een abstracte permutatiepuzzel P is een tupel (S, G, δ, ε, ∼) met volgende data: • een eindige verzameling S van componenten; • een verzameling permutaties G ⊆ Sym(S) van geldige zetten; • een permutatie δ ∈ Sym(S) die de beginconfiguratie voorstelt; • een permutatie ε ∈ Sym(S) die de opgeloste configuratie voorstelt; • een equivalentierelatie ∼ op S, waarvan de equivalentieklassen kleuren voorstellen. Een algemene permutatie σ ∈ Sym(S) heet een configuratie van de puzzel. Later zullen we bepaalde configuraties als equivalent bestempelen door het gebruik van de kleuren, zodat we eigenlijk meteen over een hele equivalentieklasse aan opgeloste configuraties beschikken. We zullen deze terminologie dan ook geregeld wat misbruiken door geen expliciet onderscheid meer te maken tussen een configuratie en een equivalentieklasse van configuraties. We kunnen op een voor de hand liggende manier equivalentie tussen twee permutatiepuzzels defini¨eren, door te eisen dat er tussen hun componentenverzamelingen een bijectie bestaat die zowel de equivalentierelatie als de relevante configuraties bewaart. Zo is elke permutatiepuzzel equivalent met een puzzel met {1, 2, . . . , n} als componentenverzameling en de identieke permutatie als opgeloste configuratie. Definitie 3.1.2. Het uitvoeren van een zet g ∈ G op de configuratie σ leidt tot de configuratie σ · g. Alvorens dieper in te gaan op dit abstracte model voor permutatiepuzzels is het interessant om na te gaan hoe een concrete puzzel in het model past, dat wil zeggen, hoe we de posities van een puzzel omzetten naar permutaties (conform met bovenstaande definities).
3.2
Praktische interpretatie
Volgens de definitie worden er twee soorten permutaties geassocieerd aan een permutatiepuzzel, beide formeel beschouwd elementen uit dezelfde groep Sym(S) maar met een verschillende interpretatie: 1. permutaties die de configuraties van de puzzel beschrijven; 13
2. permutaties die overeenkomen met (een reeks van) geldige zetten. Label zowel de componenten als hun uitgangsposities van een concrete puzzel met de labels {1, 2, . . . , n}, zodanig dat in een vastgekozen referentiepositie (bijvoorbeeld de opgeloste positie) de labels van alle componenten overeenkomen met de posities. We voeren dan volgende conventies in: Definitie 3.2.1 (positie −→ permutatie). Een positie correspondeert met de permutatie α : S → S waarvoor iα = j als en slechts als de component met label i zich op positie j bevindt. Definitie 3.2.2 (zet −→ permutatie). Een zettenreeks correspondeert met de permutatie β : S → S waarvoor iβ = j als en slechts als de component op positie i naar positie j wordt verplaatst. In eerste instantie lijkt het natuurlijker om de posities andersom voor te stellen, door permutaties die de posities afbeelden op de labels van de componenten op die posities in plaats van vice versa. De reden om dit toch zo te doen is om te voldoen aan definitie 3.1.2. Onder deze conventie is het zeer eenvoudig het effect van een reeks zetten op een configuratie te berekenen, door de bijhorende permutaties op de goede manier samen te stellen. We bundelen dit in een lemma. Lemma 3.2.1. Beschouw een positie met bijhorende permutatie α en laat er de sequentie zetten met permutaties g1 , g2 , . . . , gk (in die volgorde) op los. Noem β de permutatie bij de resulterende positie. Dan geldt dat β = α · g1 · g2 · · · gk . Bewijs. Beschouw eender welke component i ∈ S. Deze start in positie x0 = iα en wordt bij het uitvoeren van de zetten verplaatst naar posities x1 , x2 , enzoverder tot positie xk , waarbij: x1 = x0 g1 = (iα)g1 = i(α · g1 ) x2 = x1 g2 = i(α · g1 )g2 = i(α · g1 · g2 ) .. . x = x g = i(α · g · g · · · g )g = i(α · g · g · · · g ·g ) k
k−1 k
1
2
k−1
k
1
2
k−1
k
We lezen af dat iβ = xk = i(α · g1 · g2 · · · gk ) voor eender welke i ∈ S, wat inderdaad betekent dat β = α · g1 · g2 · · · gk . Merk op dat de permutaties van het tweede type dus te beschouwen zijn als bijzondere gevallen van het eerste type: de permutatie geassocieerd met een geldige zet is immers juist de permutatie geassocieerd aan de positie van de puzzel verkregen door deze zet toe te passen op de referentiepositie. Voorbeeld 1. De Rubik’s Cube kan worden gezien als bestaande uit 54 afzonderlijke componenten, met name de gekleurde vlakjes, negen op elk zijvlak. Bij een vaste ori¨entatie van de kubus corresponderen de basiszetten met het roteren van boven-, onder-, linker-, rechter-, voor- of achtervlak. Natuurlijk zijn er restricties op de beweeglijkheid, aangezien de vlakjes per twee of per drie vastzitten aan de deelblokjes en dit gaat zelfs zo ver dat het toelaten van de equivalentierelatie de Rubik’s Cube niet eenvoudiger maakt: in een configuratie waarin alle kleuren kloppen, moeten ook de componenten kloppen. Bovendien fixeren de toegestane zetten de centrale component van elk zijvlak, zodat de puzzel essentieel uit 48 elementen bestaat. We analyseren deze puzzel verder in hoofdstuk 5.7. 14
3.3
Kleuren
Via permutatie-equivalentie We hebben tot hier toe nog geen gebruik gemaakt van de equivalentierelatie ∼ op S. Het idee is om die over te hevelen op de verzameling configuraties Sym(S), om aldus ook configuraties als equivalent te kunnen bestempelen. Dit heeft voor- en nadelen. Enerzijds hoeven de labels niet exact te kloppen om de puzzel op te lossen, zodat er mogelijks kortere oplossingen bestaan. Sterker nog, het is niet ondenkbaar dat bepaalde puzzels onoplosbaar zijn als uitsluitend de labels in beschouwing worden genomen, en de extra vrijheid die de kleuren toevoegen kan dit probleem oplossen. Anderzijds is het computationeel veel moeilijker om een oplossing te vinden, daar de achterliggende groepsstructuur wat verloren gaat en effici¨ente algoritmen net op die data steunen. De ge¨ınduceerde equivalentie tussen configuraties moet betekenen dat componenten op dezelfde posities dezelfde kleur hebben. Dit geeft aanleiding tot volgende definitie: Definitie 3.3.1. Twee configuraties α en β in Sym(S) heten equivalent als en slechts als iα−1 ∼ iβ −1 voor alle componenten i ∈ S. We noteren daartoe α h β. De equivalentieklassen Sym(S)/h stellen dan de configuraties van de puzzel voor, rekening houdend met de kleuren. We zullen de equivalentieklassen ook nog steeds “configuraties” van de puzzel noemen. Als de originele relatie ∼ de verzameling S partitioneert in k klassen met groottes n1 , n2 , . . . , nk , waarbij n1 + n2 + . . . + nk = |S| = n, dan leert een eenvoudig telargument: n n! |Sym(S)/h| = = n1 , n2 , . . . , nk n1 ! · n2 ! · · · n k ! Elk van de equivalentieklassen bevat n1 ! · n2 ! · · · nk ! configuraties. Merk wel op dat deze telling slechts het aantal mogelijkheden telt om de componenten te ordenen rekening houdend met equivalentie, maar niet met toegestane zetten; we hebben niets gezegd over hoeveel configuraties ook “op te lossen” zijn.
Via groepsacties en stabilisatoren We kunnen het uitvoeren van een zet, waarbij we rekening houden met kleuren, globaal opvatten als een rechtse groepsactie van hGi op Sym(S)/h door middel van volgende afbeelding: ϕ : (Sym(S)/h) × hGi → (Sym(S)/h) : ([σ], g) 7→ [σ · g] Hierin stelt [σ] de equivalentieklasse van Sym(S)/h voor met representant σ. Omdat we de inwerking van een zet nog geregeld nodig zullen hebben, is een compacte notatie handig. Gezien de definitie is het niet onredelijk om ϕ([σ], g) kortweg te noteren als [σ] · g, zodat [σ] · g = [σ · g]. Dat deze afbeelding wel degelijk een groepsactie definieert, vereist drie kleine controles: • Identiteit: [σ] · id = [σ], trivialerwijs. • Compatibiliteit: ([σ] · g) · h = [(σ · g) · h] = [σ · (g · h)] = [σ] · (g · h). • Goed gedefinieerd: veronderstel dat σ1 h σ2 , dus dat iσ1−1 ∼ iσ2−1 voor alle i ∈ S. Aangezien g −1 een permutatie van S is, is dan ook (ig −1 )σ1−1 ∼ (ig −1 )σ2−1 , ofwel i(σ1 · g)−1 ∼ i(σ2 · g)−1 , voor alle i ∈ S. Dit betekent dat inderdaad σ1 · g h σ2 · g; de groepsactie is dus onafhankelijk van de gekozen representant van de equivalentieklasse. 15
Definitie 3.3.2. De stabilisator van een configuratie α ∈ Sym(S) is de deelgroep van permutaties γ waarvoor [α] · γ = [α] of equivalent, waarvoor α · γ h α. We noteren deze deelgroep als Stab(α). Stab(α) bestaat juist uit de permutaties die enkel componenten van eenzelfde kleur in de configuratie α onderling permuteren. Als de partitieklassen van S/∼ opnieuw groottes n1 , n2 , . . . , nk hebben, dan is dus Stab(α) ∼ = Sym(n1 ) × Sym(n2 ) × · · · × Sym(nk ). In het bijzonder is | Stab(α)| = n1 ! · n2 ! · · · nk !. Merk op dat deze deelgroepen ook onderling isomorf zijn. Feitelijk zijn ze zelfs toegevoegd aan elkaar binnen Sym(S), aangezien wat rekenwerk oplevert dat (Stab α)β = Stab(αβ). Ook is α h β als en slechts als αβ −1 ∈ Stab(id) als en slechts als α−1 β ∈ Stab(β).
3.4
Oplossingen
Intu¨ıtief is een oplossing van een puzzel een reeks van geldige zetten die de beginconfiguratie naar de opgeloste configuratie brengt, eventueel op kleurequivalentie na. Het is dus niet nodig om de labels exact te matchen met de opgeloste configuratie, maar het volstaat als de kleuren overeenkomen. Een ietwat storende complicatie treedt op wanneer we elementen uit hGi zonder meer beschouwen. Deze corresponderen weliswaar met alle mogelijke combinaties van geldige zetten, maar uit een permutatie van hGi kunnen we niet aflezen welke zetten. Bovendien, zelfs al kunnen we de permutatie factoriseren als een product van de voortbrengers, blijft het wat subtiel om het concept lengte van een oplossing te defini¨eren. We pakken het daarom anders aan, en defini¨eren eerst een algebra¨ısche structuur die wel de zetten en hun volgorde bijhoudt, en dat wordt een mono¨ıde. Definitie 3.4.1. Ken de zetten G = {g1 , g2 , . . . , gm } de respectievelijke labels L = {`1 , `2 , . . . , `m } toe. Dan is Mov(P) de vrije mono¨ıde {`1 , `2 , . . . , `m }∗ van rang m, m.a.w. de verzameling woorden met de labels als letters, en de concatenatie als binaire operatie. Het is duidelijk dat een woord in Mov(P) zo precies een aantal opeenvolgende geldige zetten weergeeft in een specifieke volgorde, en dus een handige, algebra¨ısche manier levert om zetten te noteren. Rest ons nog een evaluatiemorfisme te defini¨eren, dat zo’n woord ook effectief op de corresponderende permutatie in Sym(S) afstuurt: Definitie 3.4.2. Het evaluatiemorfisme (·) : Mov(P) → Sym(S) ligt uniek vast zodra de beelden van de elementen `i gedefinieerd zijn, en dit ligt voor de hand: `i = gi . Zo wordt het woord `i1 · `i2 · · · `ik (als concatenatie van letters) afgebeeld op de permutatie gi1 · gi2 · · · gik (als product van permutaties). De definitie houdt in dat het lege woord (geen zetten) overeenkomt met de identieke permutatie. Bemerk wel dat dit morfisme een mono¨ıdemorfisme is dat vanuit een mono¨ıde naar een groep gaat. Dit is echter geen probleem aangezien een groep op te vatten is als een mono¨ıde met een extra structuur. Dit evaluatiemorfisme is duidelijk niet injectief, aangezien Mov(P) oneindig groot is, terwijl Sym(S) steeds eindig is. Beschouw bijvoorbeeld concreet het element gi ∈ G en stel dat deze orde k heeft, dan is het beeld van `i · `i · · · `i (met k letters) triviaal. Anderzijds is het beeld van Mov(P) precies hGi, zodat het morfisme wel surjectief is als en slechts als G de volledige symmetriegroep Sym(S) voortbrengt. Definitie 3.4.3. Een oplossing van de abstracte permutatiepuzzel P = (S, G, δ, ε, ∼) is een woord w in Mov(P) waarvoor geldt dat δ · w h ε of equivalent, waarvoor δ · w · ε−1 ∈ Stab(id). De verzameling van alle oplossingen noteren we Sol(P). Als een oplossing bestaat, noemen we P uiteraard oplosbaar, en anders onoplosbaar. 16
Het is duidelijk wat we verstaan onder de lengte van een woord, of in concreto, een oplossing. Formeel is de lengtefunctie op Mov(P) het unieke mono¨ıdemorfisme |(·)| : Mov(P) → (N, +) dat elk label `i op 1 afstuurt. Praktisch is het natuurlijk interessant om oplossingen te bekomen met minimale lengte, alhoewel dat computationeel onhaalbaar zal blijken te zijn. Voorbeeld 2. Bij de Rubik’s Cube zijn er twee conventies in gebruik om aan een zettenreeks (i.h.b. een oplossing) een lengte toe te kennen. De half-turn metric (HTM) beschouwt een rotatie van eender welk zijvlak over eender welke hoek als e´ e´ n zet, terwijl de quarter-turn metric (QTM) slechts rotaties over 90◦ toestaat. Als we de zes basiszetten noteren als L, R, U, D, F, B, dan moeten we G als volgt kiezen om de minimale lengte in de twee conventies uit te drukken: • half-turn metric: G = {L, L2 , L−1 , R, R2 , R−1 , U, U2 , U−1 , D, D2 , D−1 , F, F2 , F−1 , B, B2 , B−1 }; • quarter-turn metric: G = {L, L−1 , R, R−1 , U, U−1 , D, D−1 , F, F−1 , B, B−1 }. Men kon bewijzen dat de minimale lengte van de oplossing van eender welke beginconfiguratie begrensd wordt door 20 in HTM (en die bovengrens wordt bereikt), terwijl het analogon in QTM 26 bedraagt.
3.5
Bijzondere gevallen
Het abstracte model is algemeen van toepassing, maar daardoor minder krachtig voor permutatiepuzzels met specifiekere eigenschappen. We geven een overzicht van welke bijzondere gevallen het model omvat en hoe deze extra data benut kan worden. • Micro-inverteerbaar: deze term wordt in [10] gebruikt voor puzzels waarin elke elementaire zet ongedaan te maken is door een andere elementaire zet, met andere woorden waarin G gesloten is onder inverteren. De meeste praktische puzzels voldoen aan deze eigenschap. Uiteraard is elke puzzel wel macro-inverteerbaar, wat betekent dat elke elementaire zet ongedaan te maken is door een combinatie van geldige zetten, omdat elke permutatie σ in een eindige permutatiegroep een eindige orde k heeft, zodat σ −1 = σ k−1 en dus hGi = hG ∪ G −1 i. Deze eigenschap heeft als voordeel dat de mono¨ıde Mov(P) op natuurlijke wijze een groep vormt, namelijk de vrije groep over L, en deze extra structuur komt erg van pas bij het computationeel zoeken naar effici¨ente oplossingen. Atomic Chaos is een voorbeeld van een puzzel die te modelleren is via een niet-micro-inverteerbaar model, indien op de goede manier bekeken. We bespreken deze puzzel op blz. 35. • Triviale equivalentierelatie: sommige permutatiepuzzels gebruiken kleuren die niet onderling te permuteren zijn door geldige zetten. Formeel geldt dat hGi ∩ Stab(id) = {id}. Het gebruik van (niet te onderscheiden) kleuren in plaats van (wel te onderscheiden) labels zorgt dus niet voor meer vrijheid in de puzzel. Zoals eerder al aangehaald is de Rubik’s Cube een voorbeeld: doordat de vlakjes aan de deelblokjes vastzitten, is het onmogelijk om twee vlakjes van dezelfde kleur om te wisselen op eerlijke wijze. Ook de 2 × 2 × 2-variant (de Pocket Cube) behoort tot deze categorie. • Abels: wanneer bij een micro-inverteerbare puzzel met triviale equivalentierelatie bovendien hGi abels is, blijkt het vinden van een minimale oplossing equivalent aan het vinden van een dichtste vector in een eindig voortgebracht rooster. Veronderstel namelijk G = {g1 , g2 , . . . , gm } abels en beschouw een element g ∈ hGi om te factoriseren. De vectoren {~e ∈ Zm | g = `e11 · `e22 · · · `emm } 17
staan dan in bijectief verband met de factorisaties van g (op volgorde na), en de lengte van zo’n factorisatie is dan gelijk aan |e1 | + |e2 | + . . . + |em |, de L1 -norm van ~e. Deze verzameling vectoren noteren we als E en is op te vatten als een translatie van het rooster Z voortgebracht door de relatoren van G (triviale producten van de generatoren): als we beschikken over eender welke factorisatie met corresponderende vector ~e0 , dan is E = ~e0 + Z. We zoeken een element ~es ∈ E zodat L1 (~es ) minimaal is. Deze ~es is van de vorm ~e0 + ~z (met ~z ∈ Z), zodat we eigenlijk een vector ~z in het rooster zoeken die in L1 -norm het dichtst bij ~e0 gelegen is. Het vinden van een dichtste roosterpunt klinkt uitermate eenvoudig, alleszins in weinig dimensies en over een “regelmatig” rooster, maar in zijn algemeenheid is dit algoritmisch zeer zwaar. Men kan bewijzen dat het probleem tot de complexiteitsklasse NP-hard behoort (informeel gezien minstens even moeilijk als de moeilijkste NP-problemen). Dit geeft toch al een indruk van de moeilijkheidsgraad van het bepalen van een minimale oplossing voor een algemene abstracte permutatiepuzzel, als zelfs de drie sterke aannames in deze paragraaf nog steeds tot zware vraagstukken leiden! Als voorbeeld van een puzzel in deze categorie bespreken we de Rubik’s Clock op blz. 34.
3.6
Cayleygrafen
Ge¨ınspireerd op de klassieke Cayleygrafen in de groepentheorie, die de structuur van een groep vertalen naar een graaf, kunnen we ook aan een abstracte permutatiepuzzel een graaf hechten en daar bepaalde informatie uit afleiden. Definitie 3.6.1. De Cayleygraaf Γ(P) van een puzzel P is de gerichte graaf met toppenverzameling de quoti¨entruimte Sym(S)/h, waarbij een boog van [α] naar [α] · gi gaat voor alle [α] ∈ Sym(S)/h en gi ∈ G \ {id}. Praktisch wordt aan elke boog het label `i togekend om te kunnen herkennen met welke zet gi de boog correspondeert. Het is niet uitgesloten dat er meerdere bogen bestaan tussen twee toppen in deze graaf, overeenstemmend met verschillende elementaire zetten die toch hetzelfde resultaat geven (met andere woorden, Γ(P) kan een multigraaf zijn). Ook lussen kunnen voorkomen en stemmen overeen met zetten die een puzzelconfiguratie invariant laten. Hiervoor is het wel noodzakelijk dat de equivalentierelatie h niet-triviaal is, omdat α · gi = α · gj impliceert dat gi = gj en α · gi = α dat gi = id. Cayleygrafen geven weer een nieuwe, grafentheoretische visie op een permutatiepuzzel: een geldige zet correspondeert precies met een “stap” naar een adjacente top in de Cayleygraaf. Een woord van Mov(P) correspondeert dan ook met een gericht pad op de graaf (vanuit een nog onbepaalde starttop), en een oplossing met een gericht pad vanuit top [δ] naar top [ε]. Voor gerichte grafen zijn er twee verschillende noties van samenhang: zwakke samenhang, wat betekent dat de achterliggende ongerichte graaf samenhangend is als we de richtingen negeren, en sterke samenhang, wat betekent dat er tussen elke twee toppen een gericht pad bestaat. Voor deze Cayleygrafen zijn de twee begrippen echter equivalent aangezien een puzzel steeds macro-inverteerbaar is: als er een pad van top [α] naar top [β] gaat, dan is [β] = [α] · g voor een zekere g ∈ G, maar g heeft een eindige orde k en dan is [β] · g k−1 = [α]. Het is dus steeds ook mogelijk om van [β] naar [α] te gaan, via een omweg.
Afstandsmaten Op grafen kunnen een aantal afstandsnoties gedefinieerd worden, die ook voor puzzels steek houden. 18
• De afstand tussen twee toppen is het minimale aantal bogen op een gericht pad ertussen. • De excentriciteit van een top is de maximale afstand tussen die top en elke andere top. • De straal van een graaf is de minimale excentriciteit van de toppen. • De diameter van een graaf is de maximale excentriciteit van de toppen. Hierbij is onderverstaan dat de afstand tussen twee toppen die niet in dezelfde samenhangcomponent zitten (dus niet door een pad verbonden zijn), oneindig bedraagt. Een configuratie is dus oplosbaar als en slechts als de afstand tussen de toppen die corresponderen met de start- en opgeloste configuraties, eindig is, en de exacte waarde is precies de lengte van de kortste oplossing. Definitie 3.6.2. Voor een permutatiepuzzel is Gods getal de minimale waarde van k zodanig dat voor elke oplosbare beginconfiguratie een oplossing bestaat met lengte hoogstens k, of met andere woorden, de excentriciteit van de top [ε] in zijn samenhangcomponent in de Cayleygraaf. Het berekenen van Gods getal kan een computationeel zeer zware uitdaging zijn; voor de Rubik’s Cube werd dit pas gekraakt in 2010 na intensieve computerberekeningen. Meer hierover op blz. 37.
19
4
Permutatiepuzzels oplossen
was wonderful how after a few turns the colors became mixed, apparently in random fashion. “ ItIt was tremendously satisfying to watch this color parade. Like after a nice walk when you have seen many lovely sights you decide to go home, after a while I decided it was time to go home, let us put the cubes back in order. And it was at that moment that I came face to face with the big challenge: what is the way home? Ern˝o Rubik
”
Het enorme aantal mogelijke configuraties dat kan optreden (zelfs bij kleine puzzels) maakt het vinden van korste oplossingen voor permutatiepuzzels een computationeel zwaar probleem. Maken we bijvoorbeeld gebruik van de Cayleygrafen, dan is het probleem equivalent met het vinden van een kortste pad tussen twee welbepaalde toppen in een gerichte ongewogen graaf. De aangewezen methode voor dit probleem is breedte-eerst doorzoeken, wat op grafen met toppenverzameling V en bogenverzameling E een tijdscomplexiteit O(|E| + |V |) heeft. Onze Cayleygrafen hebben echter zoveel bogen dat dit algoritme gigantisch veel tijd nodig zou hebben—en dit berust nog op de aanname dat we de graaf gemakkelijk kunnen bijhouden en overlopen. Willen we per se vasthouden aan de eis van minimaliteit, dan zit er niets anders op dan de baan van [ε] te bepalen door steeds nieuwe geldige zetten uit te voeren tot geen nieuwe configuraties meer gevonden worden. Wanneer we [δ] onderweg tegenkomen, hebben we een minimale oplossing vast; in het andere geval is de puzzel niet oplosbaar. Het moge duidelijk zijn dat deze methode veel te veel mogelijkheden moet overlopen om nog praktisch te zijn voor realistische puzzels. Een alternatieve methode verloopt analoog aan de intu¨ıtieve manier om permutatiepuzzels op te lossen, maar levert vaak (veel) langere oplossingen dan noodzakelijk: probeer allereerst een eerste component goed te krijgen, dan een tweede component zonder de positie van de eerste te wijzigen, dan een derde, enzoverder tot alle componenten goed zitten. Wiskundig komt dit neer op het construeren van een zogenaamde stabilizer chain. Het gevierde algoritme van Schreier–Sims is de standaardmethode om zo’n structuur te bepalen uit een genererende verzameling voor een permutatiegroep, en laat trouwens toe om nog meer informatie van de groep af te leiden (zoals zijn orde, of een lidmaatschapstest). Het algoritme in zijn klassieke vorm werkt enkel voor “zuivere” permutatiegroepen, dat wil zeggen voor micro-inverteerbare puzzels zonder kleuren. Op het einde van dit hoofdstuk zullen we echter schetsen hoe we deze aanpak wat kunnen veralgemenen en optimaliseren voor praktische oplossingen.
4.1
Basissen en sterk genererende verzamelingen
We starten met enkele definities. Beschouw een eindige permutatiegroep G op een verzameling Ω. 21
Definitie 4.1.1. Een basis voor G is een sequentie (β1 , β2 , . . . , βk ) van verschillende elementen uit Ω zodat enkel de triviale permutatie in G alle βi puntsgewijze fixeert. Definitie 4.1.2. De stabilisatorketen (stabilizer chain) geassocieerd aan een basis is de dalende keten (i−1) van deelgroepen G = G(0) ≥ G(1) ≥ G(2) ≥ · · · ≥ G(k) = {id}, waarbij G(i) = Gβi . Een stabilisatorketen is dus niets meer dan een rij geneste deelgroepen die telkens e´ e´ n basispunt meer fixeren, totdat de keten uiteindelijk triviaal wordt door de volledige basis vast te houden. Elke permutatiegroep heeft een triviale basis, namelijk Ω zelf, waar steeds nog een zekere overtolligheid in zit. We noemen een basis dan ook gereduceerd als geen enkele stabilisator in de keten triviaal is, of met andere woorden als G(i) 6= G(j) voor i 6= j. Merk op dat zo’n gereduceerde basis niet noodzakelijk uniek is, zelfs niet in lengte! Zo heeft de Chevalleygroep G2 (4) bijvoorbeeld een gereduceerde basis van lengte vijf e´ n van lengte zeven. Men kan wel bewijzen dat de lengte van een gereduceerde basis steeds hoogstens log2 (|G|) is. Basissen zijn voornamelijk computationeel interessant als ze significant kleiner zijn dan Ω, en dit loopt bijvoorbeeld mis bij de symmetrische en alternerende groepen (voor die uitzonderingsgevallen bestaan wel vaak gespecialiseerde algoritmes). Vele groepen hebben echter wel degelijk een “kleine” basis. Definitie 4.1.3. Een sterk genererende verzameling (strong generating set) is een deelverzameling S van groepselementen met de eigenschap dat hS ∩ G(i) i = G(i) voor alle 0 ≤ i ≤ k. In het bijzonder geldt dat hSi = G, zodat een sterk genererende verzameling wel degelijk genererend is. We noteren S ∩ G(i) ook als S (i) , zodat hS (i) i = G(i) . Bemerk dat S (i) precies die elementen van S zijn die β1 tot en met βi fixeren. Voorbeeld 3. • De symmetrische groep Sym(n) heeft een gereduceerde basis (1, 2, . . . , n − 1) en bijhorende sterk genererende verzameling {(1, 2), (2, 3), . . . , (n − 1, n)}. Er bestaat geen kleinere basis. • De alternerende groep Alt(n) heeft een gereduceerde basis (1, 2, . . . , n − 2) en bijhorende sterk genererende verzameling {(1, 2, 3), (2, 3, 4), . . . , (n − 2, n − 1, n)}. Er bestaat geen kleinere basis. • De di¨edergroep op een regelmatige n-hoek heeft een gereduceerde basis (1, 2) en bijhorende sterk genererende verzameling {(1, 2, . . . , n), (2, n)(3, n − 1) . . .}. • De sporadische Mathieugroep M11 heeft een gereduceerde basis (1, 2, 3, 4) en bijhorende sterk genererende verzameling {s1 , s2 , . . . , s7 }, waarbij: s1 = (1, 10)(2, 8)(3, 11)(5, 7), s2 = (1, 4, 7, 6)(2, 11, 10, 9), s3 = (2, 3)(4, 5)(6, 11)(8, 9), s4 = (3, 5, 7, 9)(4, 8, 11, 6), s5 = (4, 6)(5, 11)(7, 10)(8, 9), s6 = (4, 10, 6, 7)(5, 9, 11, 8), s7 = (4, 11, 6, 5)(7, 8, 10, 9). 22
4.2
Algoritme van Schreier–Sims
Het algoritme van Schreier–Sims laat toe om effici¨ent een sterk genererende verzameling te construeren uit een permutatiegroep gedefinieerd via generatoren. Die kan dan worden gebruikt voor verschillende doeleinden, zoals het bepalen van de orde van de groep, het controleren of opgegeven permutaties tot de groep behoren, of het factoriseren van groepselementen in generatoren. We hebben hiervoor nog enkele hulpresultaten nodig, die het mogelijk zullen maken om de stabilisator van een punt te bepalen uit zijn baan. Dit lukt via een omweg: enerzijds moeten we een verband vinden tussen de baan en de nevenklasseleiders van de stabilisator, en anderzijds tussen de nevenklasseleiders en de generatoren van de stabilisator.
Bepalen van de baan Beschouw een permutatiegroep G op een verzameling Ω, gegeven door generatoren. Gegeven een startpunt in Ω is het zeer eenvoudig om de baan ervan onder de actie van G te bepalen: pas herhaaldelijk de generatoren toe totdat geen nieuwe punten meer gevonden worden. Conceptueel komt dit sterk overeen met het algoritme dat samenhangende componenten in een graaf opspoort. Praktisch wordt dit proces opgeslagen in een lijst, met op positie i ∈ Ω een referentie naar die generator die voor het eerst tot i leidt. De positie van het startpunt wordt gemarkeerd met een herkenbaar teken of een negatief getal. Als er meerdere banen zijn, kunnen verschillende negatieve getallen gebruikt worden om de verschillende startposities te markeren, en dus volstaat e´ e´ n lijst van lengte |Ω| om informatie over alle banen in de groep bij te houden. In de literatuur heet deze datastructuur een Schreiervector. Voorbeeld 4a. Beschouw de permutatiegroep G voortgebracht door A = (1, 2)(4, 5), B = (1, 3)(2, 4) en C = (2, 3)(4, 6). Startend bij het punt 1 blijkt achtereenvolgens dat 2 = 1A, 3 = 1B, 4 = 2B, 5 = 4A, 6 = 4C, en dan hebben we heel de baan 1G vast. De Schreiervector wordt [∗, A, B, B, A, C]. 1 A
2 A
1 5 4
B
5
4
3 C
3
3
1
2 C
2
C
2
6
C
A
6
B
A
B
A
A
B
C
B
6
B
6
C
4
Uit zo’n Schreiervector kunnen we zonder veel moeite aflezen hoe we generatoren moeten samenstellen om het startpunt af te sturen op een punt in zijn baan: lees de generator op de desbetreffende positie af, keer met diens inverse een stap terug, en herhaal tot het startpunt wordt bereikt. De constructie van de Schreiervector garandeert bovendien dat hier geen kortere producten van generatoren voor bestaan. Het voorbeeld schetst ook een grafische weergave via een boomstructuur; elke top met een nieuw punt van de baan vertakt verder, tot alle bladeren reeds bekend zijn. De benodigde producten van generatoren corresponderen dan precies met de paden tussen de wortel en de inwendige toppen van deze boom. 23
Bepalen van de nevenklasseleiders Eenmaal beschikking over de baan van een element (bijvoorbeeld via een Schreiervector), willen we daar de nevenklasseleiders van zijn stabilisator uit construeren. Algemeen heet zo’n verzameling nevenklasseleiders van een deelgroep H ≤ G een transversaal van H in G. Ook deze stap blijkt eenvoudig. Lemma 4.2.1. Beschouw een permutatiegroep G op Ω en kies een element β ∈ Ω. Als γ bevat is in de baan van β, dan is {g ∈ G : βg = γ} een nevenklasse van de stabilisator van β. Bewijs. Kies h ∈ G zodat βh = γ, dan is {g ∈ G : βg = γ} = {g ∈ G : gh−1 ∈ Gβ } = Gβ ·h. Hieruit volgt direct dat de lengte van de baan van een element gelijk is aan de index van zijn stabilisator, ofwel |β G | = [G : Gβ ], een resultaat dat we al kennen als de baanformule. Belangrijker hier is dat we de gezochte verzameling van nevenklasseleiders van Gβ vinden als de permutaties die β afbeelden op de verschillende elementen van zijn baan, en die zijn af te lezen uit de Schreiervector. Voorbeeld 4b. Voor de Schreiervector [∗, A, B, B, A, C] vinden we dat id : 1 7→ 1, A : 1 7→ 2, B : 1 7→ 3, AB : 1 7→ 4, ABA : 1 7→ 5 en ABC : 1 7→ 6. Volgens lemma 4.2.1 is {id, A, B, AB, ABA, ABC} dan een verzameling nevenklasseleiders voor de stabilisator G1 .
Bepalen van de stabilisator Als laatste tussenstap wensen we een transversaal van een deelgroep om te zetten naar een verzameling generatoren voor die deelgroep. Deze stap is het lastigst en steunt op het lemma van Schreier. Lemma 4.2.2 (Schreiers lemma). Beschouw de eindig voortgebrachte groep G = hg1 , . . . , gr i en een deelgroep H ≤ G. Kies representanten x1 , . . . , xt voor de rechtse nevenklassen van H, met x1 = id, en noteer voor elke y ∈ G de gekozen representant van Hy als JyK. Dan is H = hSi, met S = {xi · gj · Jxi · gj K−1 | 1 ≤ i ≤ t, 1 ≤ j ≤ r}.
Bewijs. Allereerst geldt per definitie dat Hxi gj = HJxi gj K, zodat S ⊆ H en dus hSi ≤ H.
Vervolgens berekenen we de inverse van α ∈ S. Veronderstel dat α = xi gj · Jxi gj K−1 = xi gj x−1 k , −1 −1 −1 −1 −1 −1 −1 met xk = Jxi gj K. Dan is xi = Jxk gj K en dus α = xk gj xi = xk gj · Jxk gj K . We vinden dus een uitdrukking van gelijkaardige vorm, maar dan met de inverse van de voortbrenger gj . We beweren dat ook H ≤ hSi, waaruit het gestelde volgt. Kies om dit te staven h ∈ H willekeurig en schrijf die als een product van de voortbrengers van G en hun inversen (waarin i = ±1): m h = gi11 · gi22 · · · · · gim .
Definieer verder xi0 = id en xik = Jxik−1 gjkk K voor elke k ≤ m. Deze definitie expliciet uitwerken geeft xim = JhK = id, aangezien h ∈ H. Dan kunnen we h als volgt herschrijven: m h = xi0 · gi11 · x−1 · xi1 · gi22 · x−1 · · · · · xim−1 · gim · x−1 i1 i1 im .
24
Inderdaad, de buitenste extra factoren zijn gelijk aan de eenheid en de binnenste heffen elkaar op, zodat slechts het originele product voor h overblijft. Maar in de laatste schrijfwijze is elke factor tussen haakjes een element van S of de inverse ervan (naargelang k ), zodat inderdaad h ∈ hSi. Let op de kardinaliteit van de gevonden voortbrengende verzameling S: als we starten met r generatoren voor de gehele groep en een transversaal van grootte t, dan is |S| = r · t. Doorgaans is S erg redundant en komen enkele filters van pas om het aantal voortbrengers terug te dringen. Voorbeeld 4c. Omdat het niet bijster leerzaam is om het lemma van Schreier met de hand uit te voeren, zullen we het voorbeeld verder uitwerken in GAP. In dit geval zijn er drie generatoren voor G (r = 3) en zes nevenklasseleiders (t = 6). 1 2 3 4
A G T H
:= := := :=
(1 ,2) (4 ,5) ; B : = (1 ,3) (2 ,4) ; C : = (2 ,3) (4 ,6) ; G ro u p Wi t h G en e r at o r s ([ A , B , C ]) ; [() , A , B , A ∗B , A ∗ B ∗A , A ∗ B ∗ C ]; Stabilizer (G , 1) ;
5 rep : = x −> Intersection (T , RightCoset (H , x ) ) [1]; 6 S : = ListX (T , [A ,B , C ] , function (x , g ) return x ∗ g ∗ Inverse ( rep ( x ∗ g ) ) ; end ) ; 7 [ () , () , (2 ,3) (4 ,6) , () , () , (2 ,3 ,4 ,5 ,6) , (2 ,5) (3 ,4) , () , (2 ,6 ,5 ,4 ,3) , () , () , () , () , (2 ,5) (3 ,4) , (2 ,3) (4 ,6) , (2 ,3) (4 ,6) , (2 ,6) (3 ,5) , () ] 8 Du plicat eFreeL ist ( S ) ; 9 [ () , (2 ,3) (4 ,6) , (2 ,3 ,4 ,5 ,6) , (2 ,5) (3 ,4) , (2 ,6 ,5 ,4 ,3) , (2 ,6) (3 ,5) ] 10 M i n i m a l G e n e r a t i n g S e t ( G ro u p Wi t h Ge n e ra t o rs ( S ) ) ; 11 [ (3 ,6) (4 ,5) , (2 ,4 ,6 ,3 ,5) ] 12 H = G r ou p W it h G en e r at o r s ( S ) ; 13 true
We merken uiteindelijk dat S inderdaad een voortbrengende verzameling vormt voor de stabilisator G1 , ook al bevat die veel duplicaten. Zelfs na het verwijderen van dubbels blijven er relatief veel nutteloze elementen over. Zeker bij grote groepen is het wegfilteren van zulke elementen geen overbodige luxe; we bespreken de twee belangrijkste filters verderop in dit hoofdstuk.
Het uiteindelijke algoritme We hebben nog e´ e´ n nieuwe definitie nodig: de ide elementaire baan ∆(i) is de baan van βi in G(i−1) . Bemerk dat |∆(i) | = [G(i−1) : G(i) ] volgens de baanformule en de definitie van G(i) . We kunnen nu alle geziene begrippen en technieken bundelen in het uiteindelijke algoritme van Schreier–Sims, dat voor eender welke permutatiegroep gegeven door generatoren een stabilisatorketen en een bijhorende sterk genererende verzameling S = S (1) ∪ S (2) ∪ · · · ∪ S (k) construeert. 25
Input: een basis {βi } en een genererende verzameling S (0) voor een permutatiegroep G(0) . Output: een stabilisatorketen G(0) ≥ G(1) ≥ . . . ≥ G(k) en sterk genererende verzameling S. 1 i ← 1. 2 while G(i−1) 6= {id} do 3 Bereken een Schreiervector voor ∆(i) t.o.v. S (i−1) . 4 Bereken hieruit een transversaal voor G(i) in G(i−1) . 5 Bereken hieruit een genererende verzameling S 0(i) voor G(i) . 6 Filter S 0(i) tot een “handelbare” genererende verzameling S (i) . 7 i ← i + 1. 8 end
Toepassingen • Orde van G bepalen. Als we de groottes van de elementaire banen bijhouden, wordt het bepalen van |G| kinderspel, aangezien |G| = [G(0) : G(1) ] · · · [G(k−1) : G(k) ] = |∆(1) | · |∆(2) | · · · |∆(k) |. • Zeven. We kunnen verifi¨eren of een opgegeven permutatie g tot de permutatiegroep G behoort door die doorheen de stabilisatorketen te “zeven”. Ga na of β1 g ∈ ∆(1) . Indien nee, dan is g 6∈ G; indien ja, dan is β1 g = β1 t1 voor een zekere (unieke) nevenklasseleider t1 van G(1) in G, en dan (1) is g ∈ G als en slechts als g · t−1 1 ∈ G , wat dan recursief kan worden geverifieerd. Uiteindelijk −1 −1 (k) = {id} en dan is g = t · · · t ·t ∈ G. vinden we dat ofwel g 6∈ G, ofwel g ·t−1 2 1 k 1 ·t2 · · · tk ∈ G • Factoriseren. Na het zeven van g ∈ G vinden we een representatie g = tk · · · t2 · t1 ∈ G. Alle transversaalelementen zijn tijdens het algoritme geconstrueerd als een product van generatoren, dus in principe levert deze representatie een factorisatie in de generatoren. Een praktisch bezwaar is dat de lengte van ti (als woord in de generatoren) min of meer verdubbelt in elke stap, zodat de lengtes van deze factorisaties exponentieel groeien met de lengte van de stabilisatorketen. • Morfismen berekenen. Het vorige punt laat ook toe om het beeld van een morfisme te bepalen dat gedefinieerd wordt op de generatoren. Er bestaat echter een mooie alternatieve methode die computationeel wat lichter is. Beschouw een morfisme ϕ : G → H tussen twee permutatiegroepen, en het direct product G×H, dat eveneens een permutatiegroep is maar met graad deg(G)+deg(H). Definieer nu de deelgroep C ≤ D gegenereerd door de permutaties van de vorm (g, ϕ(g)). Bereken dan via Schreier–Sims een stabilisatorketen voor C vanuit de basispunten voor G. Als we nu het element (x, 1) door deze keten zeven, stranden we op (1, ϕ(x)−1 ) en kunnen we het beeld ϕ(x) meteen aflezen. Bovendien is de kern van ϕ terug te vinden als de stabilisator in C van alle punten in H. • Alle groepselementen opsommen. Gezien de uniciteit van de representatie als een product van transversaalelementen, leidt het systematisch overlopen van het cartesisch product van de transversalen tot een enumeratie van alle groepselementen. • Willekeurige groepselementen trekken. Kiest men in elke transversaal een uniform random element, dan is het product ervan een uniform random element uit de volledige groep. 26
4.3
Filters
Zoals eerder al geschetst voorziet het lemma van Schreier een genererende verzameling die meestal zeer redundant is, en is het zeer ineffici¨ent om telkens alle voortbrengers bij te houden. De nieuwe deelgroep in elke stap heeft immers index O(n); als we starten met r generatoren voor een permutatiegroep G ≤ Sym(n), dan krijgen we ruwweg rn generatoren voor G(1) , rn2 voor G(2) , enzoverder. Het is dus zaak dit aantal onder controle te houden. De aangewezen methodes zijn de filter van Sims en de filter van Jerrum, die uit een voortbrengende verzameling een kleinere verzameling construeren die dezelfde groep blijft voortbrengen. Beide filters hebben hun sterke kanten: die van Sims werkt sneller maar minder krachtig, die van Jerrum filtert dieper maar trager. Ze hebben wel gemeen dat ze idempotent zijn (m.a.w. opnieuw filteren heeft geen effect). In de volgende besprekingen beschouwen we de filters in hun algemeenheid, voor groepen G ≤ Sym(n) voortgebracht door r opgegeven generatoren; doorheen de fases van Schreier–Sims is de parameter r uiteraard niet constant.
Sims’ filter De filter van Sims is vooral bruikbaar voor een quick-and-dirty genererende verzameling, bijvoorbeeld in e´ e´ n tussenstap van van Schreier–Sims, en filtert in O(rn2 ) tijd tot een grootteorde van O(n2 ). Het algoritme houdt een n × n-tableau bij dat gedeeltelijk gevuld wordt met groepselementen, zodanig dat een element op positie (i, j) in het tableau alles kleiner dan i fixeert en i zelf afstuurt op j. Bemerk dat dit enkel kan wanneer i < j en het tableau dus hoogstens n(n−1)/2 elementen bevat. Het algoritme werkt in n − 1 fasen en vult in de ide fase de ide rij van het tableau. Input: een initi¨ele genererende verzameling M . Output: een genererende verzameling van grootte O(n2 ). 1 for i = 1 to n − 1 do 2 foreach g ∈ M nog niet in het tableau do 3 if g = id, then verwijder g uit M . 4 else 5 Bereken ig = j. 6 if tableau op positie (i, j) is nog leeg, then zet g daar. 7 if tableau op positie (i, j) bevat een element h, then vervang g in M door g −1 h.
end 9 end 10 end 8
Na elke stap blijft M dezelfde groep voortbrengen, maar uiteindelijk blijft er voor elke i < j slechts e´ e´ n element over dat i naar j stuurt en alle elementen kleiner dan i fixeert. De grootte van de resulterende voortbrengende verzameling is dus gereduceerd tot hoogstens n2 = O(n2 ).
Jerrums filter De filter van Jerrum (in 1982 opgesteld door Mark Jerrum) is intensiever dan die van Sims en is in feite niet veel meer dan een praktische implementatie van het constructieve bewijs voor stelling 2.5.1. We zullen 27
ons hier dan ook niet verder buigen over deze concrete implementatie. Na toepassen van de filter vinden we gegarandeerd een equivalente voortbrengende verzameling van grootte hoogstens n − 1 = O(n), na O(rn4 ) tijd. Ondanks de grote tijdscomplexiteit in vergelijking met die van Sims wordt de filter van Jerrum als beter beschouwd. Niet alleen vindt het gegarandeerd een kleinere voortbrengende verzameling, maar bovendien gaat het om een online-algoritme, zodat de voortbrengers e´ e´ n per e´ e´ n verwerkt kunnen worden. Dit betekent ook dat het proces op elk moment kan worden afgebroken; dan is de partieel gereduceerde verzameling plus de rest van de invoer bruikbaar.
4.4
Toepassing op permutatiepuzzels
Het construeren van een stabilisatorketen komt overeen met de intu¨ıtieve methode om een puzzel op te lossen, door stapsgewijs te proberen meer componenten goed te krijgen tot de puzzel volledig opgelost is. Concreet kunnen we nu—in theorie—een permutatiepuzzel P = (S, G, δ, ε, ∼) als volgt oplossen, als we P micro-inverteerbaar en de equivalentierelatie triviaal aannemen: 1. Kies een basis voor hGi ≤ Sym(S). 2. Construeer via Schreier–Sims een stabilisatorketen t.o.v. deze basis. 3. Zeef het element δ −1 · ε doorheen de keten en vind een factorisatie in de voortbrengers G. Het is nu eenvoudig om de gevonden factorisatie g11 · g22 · · · gss (met alle gi ∈ G en i = ±1) om te zetten in een woord w ∈ Mov(P) zodat w = δ −1 · ε, door elke factor gi te vervangen door de letter `i . Deze w vormt dan een oplossing van de puzzel. Voor niet-micro-inverteerbare puzzels moeten we op voorhand “ambachtelijk” reeksen zetten trachten te vinden die de geldige zetten terug ongedaan maken. Dan kunnen we hetzelfde principe toepassen, en uiteindelijk elke factor gi+1 vervangen door `i en elke factor gi−1 door zo’n inverse reeks voor de zet gi . Het moge duidelijk zijn dat een oplossing op die manier veel langer kan worden dan noodzakelijk. Ook voor puzzels met niet-triviale kleuren kunnen we een algemene oplossingsstrategie opstellen, want als δ · w h ε e´ n w ∈ hGi, dan moet w ∈ δ −1 · ε · Stab(ε) ∩ hGi. Het volstaat dus om een element in deze doorsnede te vinden en die doorheen de stabilisatorketen van G te factoriseren; als de doorsnede leeg blijkt dan bestaan er duidelijkerwijze geen oplossingen. Rest nog een computationeel eenvoudige manier te vinden om de doorsnede te bepalen. Over hGi itereren is ineffici¨ent, maar er bestaan betere methodes, waarvan we er hier e´ e´ n schetsen. Veronderstel algemener dat we de doorsnede van twee nevenklassen hH en kK zoeken. Stel dan eerst een (linkse) transversaal op van H ∩ K in H, en doorzoek die naar een element t met k −1 · h · t ∈ K. Dan geldt dat ht ∈ kK e´ n ht ∈ hH zodat de gezochte doorsnede de nevenklasse ht(H ∩ K) is. Wordt er geen zo’n t gevonden, dan is de doorsnede ledig.
4.5
Optimalisatie voor permutatiepuzzels
Naast een overvloed aan overbodige generatoren geeft Schreiers lemma nog een praktisch probleem in de context van permutatiepuzzels: in elk volgende niveau neemt de lengte van de woorden min of meer met een factor twee toe. Dit resulteert in een exponenti¨ele groei van de lengtes van de Schreiervoortbrengers en dus ook in zeer lange factorisaties. Om een indruk te schetsen, toegepast op de Rubik’s Cube bekomen we zo oplossingen met lengtes in de 50000, onbruikbaar in praktijk. Er zijn dus nog optimalisaties nodig. 28
Het cruciale probleem is om korte woorden in de generatoren te vinden voor de transversalen in de keten. Een aanzienlijke verbetering werd gegeven door Torsten Minkwitz in [13], en produceert oplossingen met een gemiddelde lengte 100 voor de Rubik’s Cube. Ook Sebastian Egner en Markus P¨uschel werkten in [10] technieken uit die het factorisatieprobleem via stabilisatorketens optimaliseren. We schetsen een kort overzicht van de verbeteringen. Bemerk dat er nog veel vrijheid schuilt in de keuze van de basis, die we kunnen benutten om een effici¨ente stabilisatorketen bij een goedgekozen basis te construeren. Egner en P¨uschel kiezen de basis bijvoorbeeld in functie van een aantal lazy pairs, korte woorden in de generatoren met veel fixpunten. De basis wordt zodanig gekozen dat deze lazy pairs zoveel mogelijk gespreid liggen over de levels van de stabilisatorketen. Daarna worden resterende transversaalelementen gevonden met heuristische methoden, en tot slot moet een “trillen” (trembling) van de factorisaties deze nog wat korter maken. Deze methode is bij uitstek geschikt voor permutatiepuzzels, precies door het bestaan van lazy pairs. Bij willekeurige voortbrengers van permutatiegroepen zijn lazy pairs zeldzaam, maar praktische puzzels zijn vaak zodanig opgesteld dat bijvoorbeeld commutatoren van de zetten veel componenten bewaren. Bij de Hongaarse ringen (zie blz. 32) fixeert de zet L−1 ·R−1 ·L·R maar liefst 32 van de 38 componenten!
29
5
Concrete permutatiepuzzels
fell into a labyrinth: when we thought we had arrived at the end, we twisted round again and “ We reappeared as if at the beginning of our search, just as much in want as when we first started it. Plato, Euthydemus
”
Het is interessant om het abstracte puzzelmodel eens in concrete puzzels toegepast te zien. We bespreken nu dan ook enkele praktische puzzels en gaan na hoe we die kunnen modelleren via permutaties. Voor de effectieve berekeningen vallen we terug op GAP. Het volgende eenvoudige toy model illustreert de interpretatie van een abstracte permutatiepuzzel en zijn bijhorende Cayleygraaf. Beschouw S = {1, 2, 3, 4, 5} waarin 1 ∼ 2 ∼ 3 en 4 ∼ 5, die een puzzel met vijf balletjes in twee kleuren (laat ons zeggen drie groene en twee rode) modelleert. De quoti¨entverzameling Sym(S)/h bestaat dan uit 5!/(2! · 3!) = 10 configuraties van vijf balletjes, waarin configuraties die qua kleur niet te onderscheiden zijn als equivalent worden beschouwd. We defini¨eren als drie toegestane zetten het omkeren van de drie linkse, middenste of rechtse balletjes, respectievelijk L = (1, 3), C = (2, 4) en R = (3, 5). Merk op dat dit drie involuties zijn, gelijk aan hun inverse, zodat de Cayleygraaf van de puzzel evengoed ongericht kan worden voorgesteld: L,C,R
L
R R C
L C
R
C L
L
R R
L,C
L C
C,R
We zien dat de Cayleygraaf uit drie samenhangende componenten bestaat, zodat niet elke configuratie om te zetten is naar elke andere configuratie. E´en configuratie correspondeert met een ge¨ısoleerde top in de graaf, en blijkt dus zelfs invariant onder de drie zetten. 31
5.1
Hongaarse ringen
Een klassiek voorbeeld van een permutatiepuzzel zijn de Hongaarse ringen, die standaard bestaan uit 38 balletjes in vier kleuren, gelegen in twee snijdende ringen. Hongaars wiskundige en ingenieur Endre Pap ontwierp de tweedimensionale variant die later onder deze naam bekend zou worden, terwijl er eigenlijk al een patent voor de puzzel werd aangevraad in 1891 door William Churchill.
10
9
8
7
R
5
38
11
L
6
12
37
13
36 15
16
17
18
19
21
22
23
24 25
4 3
26 27
2
35
14
20
28
1 34
33
32
31
30
29
In de opgeloste configuratie zitten alle balletjes van eenzelfde kleur bij elkaar; op kleurequivalentie na kan dit op juist acht manieren. Door de ringen rond te draaien, worden de balletjes door elkaar gehaald. Deze rotaties zijn machten van twee elementaire zetten, die de balletjes in de linker- resp. rechterring over e´ e´ n positie doorschuiven, en de puzzelgroep wordt dan ook voortgebracht door twee elementen van Sym(38). Geven we dit in in GAP, dan vinden we toch wel een spectaculair resultaat: 1 L : = (1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 ,15 ,16 ,17 ,18 ,19 ,34) ; 2 R : = (20 ,21 ,22 ,23 ,24 ,25 ,26 ,27 ,28 ,29 ,30 ,31 ,32 ,33 ,34 ,35 ,36 ,37 ,38 ,5) ; 3 puzzle : = Group (L , R ) ; 4 Size ( puzzle ) ; 5 523022617466601111760007224100074291200000000 6 Index ( SymmetricGroup (38) , puzzle ) ; 7 1
De puzzelgroep blijkt gelijk aan de volledige symmetrische groep op 38 elementen en heeft dan ook orde 38! ≈ 5.23 × 1044 , ook al wordt die voortgebracht door slechts twee elementen. Denk hierbij terug aan de stelling van Dixon op blz. 10. Dit betekent concreet dat elke beginconfiguratie oplosbaar is in labels, en dat de kleuren kunnen helpen om kortere oplossingen te vinden maar niet noodzakelijk zijn. Merk op: voor een goedgedefinieerde lengte van oplossingen moeten we afspreken of we een rotatie van een ring over meerdere posities ook als meerdere zetten of als slechts e´ e´ n zet zien. In het eerste geval stellen we G = {L, L−1 , R, R−1 }, in het laatste geval is G = {L, L2 , . . . , L19 , R, R2 , . . . , R19 }. De stabilisatoren van een configuratie, de groep van permutaties die enkel balletjes met dezelfde kleuren permuteren, is duidelijkerwijze isomorf met Sym(9) × Sym(9) × Sym(10) × Sym(10). Het totale aantal configuraties is dan ook 38!/(9!2 · 10!2 ) ≈ 3.02 × 1020 als we rekening houden met de kleuren. Om een puzzel ook praktisch op te lossen, is het het eenvoudigst om in elk van de beide ringen een reeks van tien opeenvolgende balletjes op te bouwen (dit lukt zonder veel moeite). Daarna volstaat e´ e´ n serie zetten om de overige balletjes goed te “ritsen”. 32
De Rubik’s Rings is een driedimensionale variant met 34 balletjes, in drie kleuren.
5.2
TopSpin
TopSpin is een variant van de Hongaarse ringen met 20 balletjes, in e´ e´ n ring gelegen, waarbij een draaischijf de positie van vier adjacente balletjes kan omkeren. De puzzel maakt geen gebruik van kleuren en geeft elke component een label; het doel is uiteraard de labels terug in de correcte volgorde te plaatsen.
T 19 18
20
1
3
2
5
4
6 7
S
17 16
15
8 14
13
12
11
10
9
Ook hier blijken de twee basiszetten voldoende om elke mogelijke beginconfiguratie op te lossen. 1 S : = (1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 ,15 ,16 ,17 ,18 ,19 ,20) ; 2 T : = (1 ,4) (2 ,3) ; 3 puzzle : = Group (S , T ) ; 4 Index ( SymmetricGroup (20) , puzzle ) ; 5 1
5.3
Larry’s Square
Deze puzzel en varianten erop werden meegeleverd als applicatie op oude Nokia-gsm’s. De puzzel bestaat uit zestien tegels in een 4×4-rooster, en een geldige zet roteert een 3×3-deelrooster. Bovendien worden de blokjes gekleurd in vier kleuren, en de bedoeling is om ze zodanig te verschuiven dat elk kwadrant van het rooster monotoon gekleurd is zoals op de figuur rechts. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
In tegenstelling tot bij de vorige puzzels, blijken de vier elementaire zetten hier samen niet de volledige symmetriegroep Sym(16) te genereren. De kleuren zijn dus noodzakelijk voor meer vrijheid.
33
1 2 3 4 5
A : = (1 ,3 ,11 ,9) (2 ,7 ,10 ,5) ; B : = (2 ,4 ,12 ,10) (3 ,8 ,11 ,6) ; C : = (5 ,7 ,15 ,13) (6 ,11 ,14 ,9) ; D : = (6 ,8 ,16 ,14) (7 ,12 ,15 ,10) ; puzzle : = Group (A ,B ,C , D ) ;
6 Index ( SymmetricGroup (16) , puzzle ) ; 7 25740
Defini¨eren we de stabilisator Stab(ε) van de opgeloste configuratie ε, dan is een configuratie oplosbaar als en slechts als voor een corresponderende permutatie σ er geldt dat σ · g = h voor een zekere g ∈ hGi en h ∈ Stab(ε), met andere woorden, als en slechts als σ ∈ Stab(ε) · hGi. Dit product is g´ee´ n deelgroep, maar zoals bewezen in [1] geldt voor de ordes van willekeurige deelgroepen H1 en H2 van een eindige groep dat |H1 · H2 | · |H1 ∩ H2 | = |H1 | · |H2 |, dus kunnen we als volgt verder: 10 Stab : = Group ((1 ,2) ,(1 ,2 ,5 ,6) ,(3 ,4) ,(3 ,4 ,7 ,8) , (9 ,10) ,(9 ,10 ,13 ,14) ,(11 ,12) ,(11 ,12 ,15 ,16) ) ; 11 Order ( Stab ) ∗ Order ( puzzle ) / Order ( Intersection ( Stab , puzzle ) ) ; 12 2106910310400 13 Factorial (16) 14 20922789888000
Zelfs op kleurequivalentie na blijken niet alle configuraties oplosbaar. Een concrete configuratie vinden die niet oplosbaar is, blijkt echter zelfs voor GAP een te zware klus.
5.4
Rubik’s Clock
Deze mechanische puzzel werd uitgevonden door Christopher Wiggs en Christopher Taylor. Hun patent werd dan later opgekocht door Ern˝o Rubik om deze onder zijn naam op de markt te brengen. De puzzel heeft een voor- en achtervlak met elk negen klokjes, waarvan het paar aan elke hoek aan elkaar vastzit en rechtstreeks geroteerd kan worden. Tussen de klokjes zitten er vier knoppen. Worden die omhoog of omlaag geduwd, dan worden de omliggende klokjes aan het voor- of achtervlak aangesloten op die aan de hoek, zodat ze samen roteren. Het doel van de puzzel is alle klokjes op twaalf uur te zetten.
34
Rubik’s Clock heeft de opmerkelijke eigenschap dat de volgorde van de zetten geen belang heeft. In [21] bespreekt Stefan Pochmann een methode om de puzzel op te lossen in hoogstens 14 zetten. Interessant genoeg kan de puzzel algoritmisch worden opgelost via lineaire algebra, gebruik makende van het feit dat de puzzelgroep abels is. We hebben daarvoor 14 “onafhankelijke” zetten nodig, waarmee we bedoelen dat geen enkele ervan nagebootst kan worden met de 13 overige. Eender welke 14 onafhankelijke zetten volstaan om de puzzel op te lossen, aangezien elke configuratie van de 18 klokjes kan worden beschreven door 14 onafhankelijke lineaire vergelijkingen en 14 onbekenden, die uitdrukken hoe ver de wijzers nog gedraaid moeten worden. Via de computer wordt het zeer eenvoudig om de puzzel zo op te lossen door de vergelijkingen in matrixvorm te gieten. Deze methode toont eveneens aan dat elke mogelijke configuratie oplosbaar is, tenminste als de klokken aan de hoeken overeenkomen. De toestanden van de puzzel worden dus beschreven door de groep Z14 12 . 4 Van de 4 · 2 = 64 elementaire zetten hebben er een aantal hetzelfde effect, en er blijken 30 verschillende basiszetten te zijn.
5.5
Atomic Chaos
De Atomic Chaos is een interessant voorbeeld van een puzzel die niet zo eenvoudig te modelleren valt. Deze bestaat uit twee spiegelsymmetrische helften, elk met zes kokers van verschillende lengte in een cirkel gerangschikt, die zodanig geroteerd kunnen worden dat tegenoverliggende kokers verschillende lengtes krijgen. In de startpositie bevindt er zich in de eerste koker e´ e´ n balletje in een eerste kleur, in de tweede koker twee balletjes in een tweede kleur etc. De puzzel wordt door elkaar geschud door de kokers herhaaldelijk om te keren en rond te draaien. We stellen de puzzel als volgt schematisch voor en labelen de componenten: F E
·
D
·
·
C
·
·
·
B
·
·
·
·
A
·
·
·
·
·
·
·
·
·
·
·
1
2
4
7
11
16
3
5
8
12
17
6
9
13
18
10
14
19
15
20 21
35
Het is niet meteen duidelijk hoe we de geldige zetten kunnen associ¨eren met permutaties, maar in [10] geven Sebastian Egner en Markus P¨uschel volgende methode. Definieer voor elk van de bovenste kokers (A tot en met F) de permutatie van de balletjes verkregen door die koker eerst boven de kleinste koker te draaien, de puzzel vervolgens om te keren, en de kokers ten slotte verder te draaien in dalende richting tot alle balletjes terug in de onderste helft verdeeld zitten. Merk op dat de configuratie dan horizontaal gespiegeld is, maar dat hindert niet als we elke configuratie identificeren met hun gespiegelde variant. Dit geeft aanleiding tot zes systematische elementaire zetten, die blijken te volstaan: 1 2 3 4 5 6 7
a : = (2 ,3) (4 ,6) (7 ,10) (8 ,9) (11 ,15) (12 ,14) (16 ,21) (17 ,20) (18 ,19) ; b : = (1 ,3 ,6 ,8 ,14 ,18 ,11 ,21 ,2 ,5 ,9 ,13 ,19 ,7 ,15 ,17 ,16) (4 ,10 ,12 ,20) ; c : = (1 ,6 ,13 ,16 ,3 ,9 ,19 ,7 ,21 ,4 ,15 ,11) (2 ,10 ,18 ,8 ,20 ,5 ,14 ,12 ,17) ; d : = (1 ,10 ,16 ,6 ,19 ,9 ,17 ,5 ,20 ,8 ,18 ,4 ,21 ,7) (2 ,15 ,11 ,3 ,14 ,12) ; e : = (1 ,15 ,13 ,4) (2 ,21 ,11 ,6 ,18 ,8) (3 ,20 ,12 ,5 ,19 ,7) (9 ,17) (10 ,16) ; f : = (1 ,21 ,16 ,15 ,17 ,14 ,7 ,6 ,19 ,12 ,9 ,4 ,3 ,20 ,11 ,10 ,18 ,13 ,8 ,5 ,2) ; puzzle : = Group (a ,b ,c ,d ,e , f ) ;
8 Index ( SymmetricGroup (21) , puzzle ) ; 9 1
GAP berekent inderdaad dat deze zes zetten de volledige groep voortbrengen, dus het is niet nodig om extra zetten in beschouwing te nemen en elke beginconfiguratie is oplosbaar, zelfs zonder kleuren. Er is wel een caveat: op de eerste na zijn deze zetten niet zomaar ongedaan te maken. De puzzel is dus niet micro-inverteerbaar en het algoritme van Schreier–Sims is niet rechtstreeks van toepassing, omdat we hier specifiek factorisaties nodig hebben in de elementaire zetten (zonder hun inversen) om instanties van de puzzel op te lossen.
5.6
Rubik’s Cheese
De Rubik’s Cheese is een relatief onbekende en zeldzame permutatiepuzzel, en ziet eruit als een kaasbol gesneden in twaalf spie¨en over twee lagen. De puzzel is gekleurd, maar geen van de twaalf componenten zijn gelijk gekleurd en we mogen de puzzel dus evengoed ongekleurd veronderstellen. Als geldige zetten kunnen we de lagen roteren, of elk van de zes helften van de kaasbol een halve slag ronddraaien.
⇒
1
2
3
4
5
6
7
8
9
10
11
12
36
Met GAP vinden we dat deze zeven basiszetten de volledige symmetriegroep voortbrengen: 1 2 3 4 5 6 7
S : = (7 ,8 ,9 ,10 ,11 ,12) ; T1 : = (6 ,8) (1 ,7) (2 ,12) ; T2 : = (1 ,9) (2 ,8) (3 ,7) ; T3 : = (2 ,10) (3 ,9) (4 ,8) ; T4 : = (3 ,11) (4 ,10) (5 ,9) ; T5 : = (4 ,12) (5 ,11) (6 ,10) ; T6 : = (5 ,7) (6 ,12) (1 ,11) ;
8 puzzle : = Group (S , T1 , T2 , T3 , T4 , T5 , T6 ) ; 9 Size ( puzzle ) ; 10 479001600 11 Index ( SymmetricGroup (12) , puzzle ) ; 12 1
Bemerk dat we nog reducties kunnen doorvoeren door de puzzel ook in de ruimte te roteren; een helft van de puzzel ronddraaien heeft dan bijvoorbeeld hetzelfde effect als de andere helft ronddraaien.
5.7
Rubik’s Cube
Laten we nog tot slot de bekendste permutatiepuzzel aller tijden, de Rubik’s Cube, eens nader bestuderen. De zes centrale vlakjes kunnen niet door elkaar worden gegooid, hoogstens geroteerd in de ruimte; als we deze als referentie fixeren, dan kunnen we de zetten op de puzzel beschrijven via zes permutaties die elk een zijvlak roteren. Allereerst labelen we de vlakjes als volgt:
⇒
1
2
3
4
U
5
6
7
8
9
10
11
17
18
19
25
26
27
33
34
35
12
L
13
20
F
21
28
R
29
36
B
37
14
15
16
22
23
24
30
31
32
38
39
40
41
42
43
44
D
45
46
47
48
Merk op dat we niet zomaar de 27 deelblokjes als componenten kunnen zien, daar ook hun positionering van belang is: e´ e´ n hoekblokje bijvoorbeeld heeft drie mogelijke maar inequivalente positioneringen. Ook hoeven we ons geen zorgen te maken over de kleuren: het is fysiek onmogelijk† om labels van eenzelfde kleur om te wisselen zonder de overige vlakjes mee te wijzigen. †
Tenzij door de stickers los te trekken en te herplakken, maar deze actie kunnen we uiteraard moeilijk een legale zet noemen.
37
We gebruiken de notatie van Singmaster om zetten te beschrijven: schrijf U voor upper layer, L voor left, F voor front, R voor right, B voor back en D voor down. Een letter zonder meer slaat op een kloksgewijze kwartslag, een letter met een accent op een kwartslag in de andere richting en een letter gevolgd door een 2 op een halve slag. Er zijn extra notaties voor bijvoorbeeld rotaties in de ruimte en samenstellingen van zetten, maar die zijn niet bijzonder praktisch voor de theoretischere analyse. In GAP: 10 U : = (1 ,3 ,8 ,6) (2 ,5 ,7 ,4) (9 ,33 ,25 ,17) (10 ,34 ,26 ,18) (11 ,35 ,27 ,19) ; 11 L : = (9 ,11 ,16 ,14) (10 ,13 ,15 ,12) (1 ,17 ,41 ,40) (4 ,20 ,44 ,37) (6 ,22 ,46 ,35) ; 12 F : = (17 ,19 ,24 ,22) (18 ,21 ,23 ,20) (6 ,25 ,43 ,16) (7 ,28 ,42 ,13) (8 ,30 ,41 ,11) ; 13 R : = (25 ,27 ,32 ,30) (26 ,29 ,31 ,28) (3 ,38 ,43 ,19) (5 ,36 ,45 ,21) (8 ,33 ,48 ,24) ; 14 B : = (33 ,35 ,40 ,38) (34 ,37 ,39 ,36) (3 ,9 ,46 ,32) (2 ,12 ,47 ,29) (1 ,14 ,48 ,27) ; 15 D : = (41 ,43 ,48 ,46) (42 ,45 ,47 ,44) (14 ,22 ,30 ,38) (15 ,23 ,31 ,39) (16 ,24 ,32 ,40) ; 16 puzzle : = Group (U ,L ,F ,R ,B , D ) ; 17 Size ( puzzle ) ; 18 4 3 2 5 2 0 0 3 2 7 4 4 8 9 8 5 6 0 0 0
We vinden zo’n 4.3 × 1019 verschillende configuraties, waarvan slechts e´ e´ n opgelost. Om een dooreengeschudde Rubik’s Cube op te lossen, zijn commutatoren zeer handig aangezien die vaak veel vlakjes fixeren. Hier kunnen we bijvoorbeeld verifi¨eren dat de commutator [U, L] slechts 18 van de 48 vlakjes effectief verplaatst. Door deze zetten goed te combineren, kunnen we handige zettenreeksen bepalen. Enkele concrete voorbeelden: [U, L]2 wisselt drie zijblokjes om zonder hoekblokjes te wijzigen, en [U, L]3 wisselt twee paar hoekblokjes om zonder zijblokjes te wijzigen. Door gekende zetten te combineren met commutators kunnen bijvoorbeeld ook drie hoekblokjes worden doorgeschoven of twee hoekblokjes geroteerd (de rest vasthoudend), via relatief eenvoudige zettenreeksen. 10 NrMovedPoints ( Comm (U , L ) ) ; 11 18 12 Comm (U , L ) ^2; 13 (1 ,35 ,9) (2 ,20 ,4) (3 ,27 ,33) (6 ,17 ,11) (10 ,34 ,13) (16 ,22 ,41) 14 Comm (U , L ) ^3; 15 (1 ,33) (3 ,35) (6 ,41) (9 ,27) (11 ,22) (16 ,17) 16 Comm ( L ∗ D ^2∗ L^−1,U ) ; 17 (1 ,38 ,6) (9 ,48 ,17) (11 ,35 ,32) 18 Comm ( L^−1∗D ^2∗ L ∗ B ∗ D ^2∗ B^−1,U ) ; 19 (1 ,9 ,35) (3 ,27 ,33)
38
Aangezien toegevoegde elementen nauw verwant zijn met commutators hoeft het niet te verwonderen dat ook toevoeging in handige zettenreeksen resulteert. De commutator op regel 18 bijvoorbeeld keert twee adjacente hoekblokjes om, en kan door toevoeging worden gemodificeerd zodat die twee tegenoverliggende hoekblokjes omkeert, zoals B · [L−1 · D2 · L · B · D2 · U−1 , U] · B−1 . 20 Comm ( L^−1∗D ^2∗ L ∗ B ∗ D ^2∗ B^−1,U ) ^( B^−1); 21 (3 ,33 ,27) (32 ,48 ,38)
In [7] beschrijft Jamie Mulholland enkele karakterisaties voor oplosbaarheid. Dit ligt niet voor de hand: zo blijkt een configuratie met precies e´ e´ n zijblokje omgekeerd niet oplosbaar, terwijl twee omgekeerde zijblokjes dan weer wel goed te draaien zijn. Ook precies twee zijblokjes of twee hoekblokjes omwisselen of e´ e´ n hoekblokje roteren blijkt niet mogelijk. Stelling 5.7.1. Een startconfiguratie van de Rubik’s Cube is oplosbaar als en slechts als volgende vier voorwaarden voldaan zijn: • de zes centrale vlakjes zitten goed; • de permutaties van de twaalf zijblokjes en van de acht hoekblokjes hebben dezelfde pariteit; • het aantal in wijzerzin geroteerde hoekblokjes is congruent met het aantal in tegenwijzerzin geroteerde hoekblokjes modulo drie; • het aantal omgekeerde zijblokjes is even. Zonder bewijs. De concrete stappen zijn terug te vinden in [7]; het bewijs steunt enerzijds op een nauwkeurig verifi¨eren dat de voorwaarden invariant blijven onder de zes basiszetten, en anderzijds op een algoritmische oplossing voor een configuratie die voldoet aan de voorwaarden. Uit deze karakteristatie kunnen we de puzzelgroep van de Rubik’s Cube concreter beschrijven. Stelling 5.7.2. Noteer O voor de deelgroep van zetten die de ori¨entaties van alle blokjes behouden, P voor de deelgroep van zetten die de posities behouden, en G voor de volledige groep. Dan geldt: • O∼ = {(ρ, σ) ∈ S8 × S12 | sign(ρ) = sign(σ)}; • P ∼ = C87 × C211 ; • G∼ = O n P. Ook het centrum van de groep kunnen we relatief eenvoudig afleiden uit deze karakteriserende stelling. Concreet is een element in het centrum een reeks zetten die evengoed voor of na eender welke andere reeks zetten uitgevoerd kan worden met hetzelfde resultaat. Het is welbekend dat er (behalve de lege zet) een unieke configuratie zit in het centrum van de Rubik’s Cube: 22 Centre ( puzzle ) ; 23 Group ([(2 ,34) (4 ,10) (5 ,26) (7 ,18) (12 ,37) (13 ,20) (15 ,44) (21 ,28) (23 ,42) (29 ,36) (31 ,45) (39 ,47) ])
39
Deze configuratie heet de Superflip. Elk blokje zit er op zijn correcte plaats, en alle hoekblokjes bovendien in de correcte ori¨entering, maar alle zijblokjes omgekeerd. Er is een andere reden waarom de Superflip beroemd is: het is de eerste configuratie waarvan bewezen is dat een oplossing minstens 20 zetten nodig heeft (als we een halve slag ook als e´ e´ n zet beschouwen). Een concrete oplossing van lengte 20 wordt gegeven door U R2 F B R B2 R U2 L B2 R U’ D’ R2 F R’ L B2 U2 F2.
Om een dooreengeschudde Rubik’s Cube ook effectief op te lossen, bestaan er verschillende algoritmes. Zo werkt David Singmasters algoritme door de puzzel laag per laag op te lossen. Een andere beroemde methode is die van Morwen Thistlethwaite, die gegarandeerd werkt in hoogstens 45 zetten, maar te koste van uitgebreide opzoektabellen dus voornamelijk interessant voor computeralgoritmes. Deze werkt door middel van volgende deelgroepenketen: • G0 = hL, R, F, B, U, Di; • G1 = hL, R, F, B, U 2 , D2 i; • G2 = hL, R, F 2 , B 2 , U 2 , D2 i; • G3 = hL2 , R2 , F 2 , B 2 , U 2 , D2 i; • G4 = {id}. Thistlethwaite stelde voor elke nevenklassenruimte Gi+1 \Gi tabellen op, die voor elke configuratie in Gi een korte reeks zetten naar een niveau dieper opslaat. Ook al is de gehele groep G0 veel te groot voor rechtstreekse computerberekeningen, de nevenklassenruimtes zijn veel kleiner: G2 \G1 is met “slechts” 1082565 elementen de grootste. Zo vond Thistlethwaite in 1980 voor elk stadium zetten van maximale lengtes respectievelijk 7, 10, 13 en 15, zodat elke configuratie in hoogstens 45 zetten opgelost kan worden. Herbert Kociemba vond in 1992 een verbetering die meteen van G0 naar G2 naar G4 springt, in slechts een twintigtal zetten. Richard Korf publiceerde in 1997 een methode om optimale oplossingen op te sporen. Vroeger wist men al dat de Superflip minstens 20 zetten vereist, zoals door Michael Reid bewezen in 1995, maar in 2010 werd ook aangetoond dat geen enkele zet strikt m´ee´ r zetten nodig heeft. Met andere woorden, 20 bleek een scherpe bovengrens voor de lengtes van optimale oplossingen, een getal dat sindsdien bekendstaat als Gods getal. Het bewijs steunt op intensieve computerberekeningen, waarvoor Google zo’n 35 jaar CPU-tijd van hun servers doneerde.
40
6
Schuifpuzzels
became infatuated with the puzzle. Ludicrous tales are told of shopkeepers who neglected “ People to open their stores, of a distinguished clergyman who stood under a street lamp all through a wintry night trying to recall the way he had performed the feat. Pilots are said to have wrecked their ships, engineers rush their trains past stations and business generally became demoralized. A famous Baltimore editor tells how he went for his noon lunch and was discovered by frantic staff long past midnight pushing little pieces of pie around on a plate! Sam Loyd Sam Loyd’s Cyclopaedia of 5000 Puzzles, Tricks and Conundrums
”
De bespreking uit de vorige hoofdstukken zijn niet direct van toepassing op schuifpuzzels, want het gat zorgt ervoor dat twee geldige zetten niet altijd samen te stellen zijn. De natuurlijke algebra¨ısche structuur die zich opdringt is die van de groepo¨ıden, afgezwakte versies van groepen waarin de binaire operatie vervangen is door een parti¨ele binaire operatie, die niet noodzakelijk voor alle koppels gedefinieerd hoeft te zijn. Veel van de idee¨en en constructies zijn wel overdraagbaar; zo kunnen we bijvoorbeeld spreken van een actie van een groepo¨ıde op de configuraties.
6.1
14-15-puzzel
De klassieke schuifpuzzel staat historisch ook wel bekend als de 14-15-puzzel. Tot aan zijn dood in 1911 beweerde Sam Loyd (die algemeen erkend wordt als een van Amerika’s grootste puzzeluitvinders ooit) dat hij de uitvinder was, al behoort die eer feitelijk toe aan postbeambtenaar Noyes Chapman. De puzzel bestaat uit een 4 × 4-frame van blokjes waarin er eentje ontbreekt, zodat de vijftien blokjes verschoven kunnen worden. De blokjes zijn gelabeld en de bedoeling is om ze in de correcte volgorde te schuiven.
41
In praktijk staat er vaak een illustratie op de blokjes. Hier labelen we deze zoals op de linkerfiguur:
1
2
3
4
5
6
7
8
9
10 11 12
⇔
13 14 15
1
2
3
4
5
6
7
8
9
10 11 12
13 15 14
De originele opgave, die een ontzettende rage ontketende in 1880, bestond erin om de blokjes gelabeld 14 en 15 (vandaar ook de naam) om te wisselen, zoals hierboven geschetst. Een deel van de rage is te wijten aan het feit dat Loyd later een geldprijs van $1000 aanbood voor wie hierin slaagde. De prijs werd nooit uitgereikt, om de eenvoudige reden dat de puzzel onoplosbaar is! Het is voornamelijk interessant een criterium te vinden voor oplosbaarheid, en daarin zal de alternerende groep Alt(15) opduiken. Een eerste observatie leert al waarom de opgave van Loyd onmogelijk is: Stelling 6.1.1. Beschouw het gat als een imaginair blokje met label 16. Een configuratie is oplosbaar als en slechts als de bijhorende permutatie van de “zestien blokjes” dezelfde pariteit heeft als de Manhattan-afstand† tussen het imaginaire blok en de positie rechtsonder. Bewijs. • Enerzijds komt e´ e´ n verschuiving overeen met een transpositie van de “zestien blokjes”, zodat de pariteit van de bijhorende permutatie met e´ e´ n wijzigt. Hetzelfde geldt voor de Manhattanafstand. Aangezien bij de opgeloste configuratie beide pariteiten even zijn (de permutatie is triviaal en de Manhattan-afstand nul), blijft dit invariant onder geldige zetten vanuit of naar de opgeloste configuratie. • Anderzijds moeten we nog demonstreren dat elke beginconfiguratie die voldoet aan de voorwaarden ook effectief op te lossen is. Hiervoor verschuiven we eerst het gat naar de positie rechtsonder—dan is de permutatie van de vijftien fysieke blokjes even. Het volstaat nu aan te tonen dat elke even permutatie van de vijftien blokjes realiseerbaar is met geldige zetten. Aangezien Alt(15) wordt voortgebracht door (1, 2, 3) en (1, 2, 3, . . . , 15) (zie stelling 2.4.2), hoeven we slechts aan te tonen dat deze twee permutaties te realiseren zijn. – Verschuif vanuit de opgeloste configuratie achtereenvolgens de blokjes met label 15, 11, 7, 3, 2, 6, 3, 7, 10, 9, 5, 3, 6, 1, 3, 5, 9, 10, 11, 15 om de permutatie (1, 2, 3) te verkrijgen. – Verschuif vanuit de opgeloste configuratie achtereenvolgens de blokjes met label 12, 11, 15, 12, 11, 8, 7, 6, 10, 15, 12, 14, 13, 9, 15, 12, 8, 7, 4, 3, 6, 10, 5, 15, 12, 8, 10, 4, 7, 11, 14, 13, 9, 12, 8, 5, 4, 6, 2, 1, 15, 4, 5, 9, 13, 14 om de permutatie (1, 2, . . . , 15) te verkrijgen. De zetten in omgekeerde volgorde uitvoeren, lost deze configuraties op. †
Met Manhattan-afstand tussen twee posities wordt bedoeld: het minimale aantal verschuivingen nodig om het gat van de ene naar de andere positie te schuiven. Dit stemt overeen met de Manhattan- of taximetriek, een alternatieve vorm van meetkunde ge¨ıntroduceerd door Hermann Minkowski in de 19de eeuw.
42
We hebben onderweg volgend corollarium bewezen. Stelling 6.1.2. De oplosbare permutaties van de vijftien blokjes vormen precies de groep Alt(15), wanneer de positie van het gat in de start- en eindconfiguratie dezelfde is. Van alle mogelijke configuraties in Sym(16) blijkt dus precies de helft oplosbaar; dit zijn er 16!/2 ≈ 1013 . De nevenklasse van de alternerende groep heeft wel een opmerkelijke pseudo-oplossing als representant, waarbij het gat linksboven zit. We kunnen eender welke startconfiguratie dan ook naar e´ e´ n (en juist e´ e´ n) van deze twee toestanden herleiden:
1
2
3
4
5
6
7
8
9
10 11 12
of
1
2
3
4
5
6
7
8
9
10 11
12 13 14 15
13 14 15
Deze resultaten dateren al van 1879, toen Woolsey Johnson de onoplosbaarheid van oneven permutaties bewees, en William Story de oplosbaarheid van even permutaties (zie [11]). Hun oorspronkelijke bewijs werkt voor puzzels van grootte m × n (waarbij m, n ≥ 2) via inductie op m en n. Het bewijs hierboven is veel korter, maar ook erg ineffici¨ent om een puzzel praktisch op te lossen. Herbert Kociemba deelt op zijn webpagina [20] een programma dat optimale oplossingen voor de schuifpuzzel berekent; het blijkt dat er nooit meer dan 80 zetten nodig zijn en dat precies 17 configuraties deze bovengrens bereiken.
6.2
Stelling van Wilson
Richard Wilson bestudeerde in 1974 een veralgemening van de klassieke 14-15-puzzel naar schuifpuzzels op willekeurige grafen, waarbij labels op de toppen liggen en verschoven mogen worden langs de bogen. Zoals in het klassieke geval blijft e´ e´ n top hiervoor leeg. De puzzel van Loyd is dan een bijzonder geval, gespeeld op de graaf P4 × P4 (het cartesisch product van twee padgrafen van lengte vier). Een samenhangcomponent die het lege label niet bevat, is ook niet beweeglijk, en een articulatietop (d.i. een top zodat bij verwijdering ervan het aantal samenhangcomponenten strikt toeneemt) kan enkel door het lege label worden overgestoken, zodat de puzzel uiteenvalt in kleinere deelpuzzels. Het volstaat dus om samenhangende grafen te beschouwen zonder articulatietoppen, ook wel bisamenhangend genoemd (biconnected). Een schematische weergave van zo’n articulatietop:
43
Net zoals bij permutatiepuzzels kunnen we aan een schuifpuzzel op een graaf G een nieuwe graaf Γ(G) hechten, die alle mogelijke puzzelconfiguraties als toppen heeft en waarin twee toppen adjacent zijn als en slechts als de ene configuratie in de andere omgevormd kan worden door een verschuiving van een label naar de lege top langs een boog van G. Een configuratie is ook hier oplosbaar als en slechts als die zich in dezelfde samenhangcomponent van Γ(G) bevindt als de opgeloste configuratie. Wilson kon oplosbaarheid in het algemene geval als volgt karakteriseren: Stelling 6.2.1. Beschouw een eindige, bisamenhangende graaf G. • Als G een cykelgraaf Cn is met n ≥ 5, dan bestaat Γ(G) uit (n − 2)! componenten. • Als G de θ0 -graaf is (zie figuur (a) hieronder), dan bestaat Γ(G) uit zes componenten. • Als G bipartiet is en niet in vorige gevallen zit, dan bestaat Γ(G) uit twee componenten. • In alle andere gevallen is Γ(G) samenhangend. Zonder bewijs. De details zijn terug te vinden in [15]. Het bewijs werkt via inductie op het cyclomatisch getal β(G), het minimale aantal bogen dat moet worden verwijderd om G acyclisch te maken. Voor samenhangende grafen kan men aantonen dat β(G) = |E(V )|−|V (G)|+1. De bisamenhangende grafen met β(G) = 1 zijn juist de cykelgrafen, terwijl die met β(G) = 2 de zogenaamde θ-grafen zijn (waaronder de θ0 -graaf).
(a) de graaf θ0 .
(b) de graaf P4 × P4 .
(c) de Petersengraaf.
De graaf P4 ×P4 voor de klassieke schuifpuzzel is bipartiet, zodat volgens het criterium van Wilson inderdaad slechts de helft van de configuraties oplosbaar is. Een andere interessante graaf is de Petersengraaf (zie figuur (c) hierboven): de stelling leert dat elke startconfigurtie van deze puzzel oplosbaar is.
6.3
Conways M13 -puzzel
John Conway stelde in 1989 een prachtige schuifpuzzel voor, die de rol van de alternerende groep Alt(15) voor de 14-15-puzzel vervangt door de Mathieugroep M12 . Van de 26 sporadische enkelvoudige groepen ´ werd deze groep het eerst ontdekt, door Emile Mathieu in 1861 (nog voor Sylow zijn beroemde stellingen bewees). Met een orde van slechts 95040 is M12 bovendien de tweede kleinste sporadische groep, na de eveneens door Mathieu ontdekte groep M11 . 44
M12 kunnen we beschrijven als een 5-transitieve permutatiegroep op 12 elementen, voortgebracht door twee permutaties (2, 3)(5, 6)(8, 9)(11, 12) en (1, 2, 4)(3, 5, 7)(6, 8, 10)(9, 11, 12), of ook als de automorfismegroep van een Steinersysteem S(5, 6, 12). Camille Jordan kon bewijzen dat M11 en M12 de enige scherp k-transitieve groepen zijn voor een zekere k ≥ 4, naast de triviale gevallen Sym(k) en Alt(k +2). 1 B1 : = (2 ,3) (5 ,6) (8 ,9) (11 ,12) ; 2 B2 : = (1 ,2 ,4) (3 ,5 ,7) (6 ,8 ,10) (9 ,11 ,12) ; 3 M12 : = Group ( B1 , B2 ) ; 4 Transitivity ( M12 ,[1..12]) ; 5 5
Conways puzzel wordt gespeeld op het eindige projectieve vlak P2 (F3 ) over het veld met drie elementen. Dit vlak bevat 32 + 3 + 1 = 13 punten en evenveel rechten die elk vier punten bevatten. E´en punt wordt leeg gelaten, de overige twaalf krijgen een label. Een geldige zet werkt dan als volgt: kies eerst een punt van het vlak, dat samen met het lege punt een unieke rechte bepaalt, en verschuif het label van dit punt naar het lege punt, hierbij nog de twee unieke overige punten op deze rechte omwisselend. Een mooie visualisatie van P2 (F3 ) plaatst de dertien punten rond elkaar, met daartussen dertien kleinere aanduidingen die de rechten voorstellen, elk vier punten verbindend:
12
1
11
2
10
3
9
4 8
5 7
6
Bijvoorbeeld, het knooppunt tussen de punten 4 en 5 verbindt de punten 2, 4, 5 en 9. Veronderstel dat we punt 4 willen verplaatsen. De unieke “rechte” tussen dit punt en het lege punt bevat bovendien 10 en 12, dus we mogen 4 verschuiven naar het lege punt op voorwaarde dat we 10 en 12 omwisselen, en na een aantal zetten geraakt de puzzel zo door elkaar. De puzzelgroepo¨ıde bevat alle permutaties van de labels die verkregen kunnen worden door deze zetten samen te stellen. Deze vormt geen groep, want zetten kunnen alleen worden samengesteld als de positie van het gat matcht. De permutaties waarin de positie van het gat dezelfde is (die dus werkt op 12 punten) voldoen wel aan een groepsstructuur, isomorf met M12 ! De volledige groepo¨ıde (die werkt op 13 punten) wordt met M13 aangeduid. Meer informatie is terug te vinden in [8]. Een zelfgeschreven implementatie is terug te vinden op mijn website [22], in de vorm van een Flash-applet. 45
6.4
Groepo¨ıden
We hebben gezien dat zuivere groepentheorie volstaat om de schuifpuzzels in dit hoofdstuk te analyseren. In 2003 werd er op de nieuwsgroep sci.physics.research discussie gevoerd of de symmetrie¨en van schuifpuzzels nu natuurlijker worden geformuleerd in termen van groepen of van groepo¨ıden. Lubos Motl verdedigde vurig het standpunt van de groepen, met volgend bijpassend commentaar: humans who like groups, only let the groups act on configurations that contain “comparable “ The objects” so that it is always possible to perform the same operations. In the case of Loyd’s game, the operations from A15 can be gotten by a convolution of a number of moves so that it returns the empty tile to the right lower corner. The human(oid)s who like groupoids, allow the representations to contain apples as well as oranges, and the elements of the groupoid are sometimes allowed to convert an apple into another apple or an orange, but sometimes the element of the groupoid has no clue what to do.
”
Zoals reeds gedefinieerd in hoofdstuk 2 is een groepo¨ıde een afgezwakte variant van een groep, waarbij de operatie versoepeld wordt tot een parti¨ele operatie. Zoals Motl opmerkt, is een groepo¨ıde op te vatten als een groep met een aantal “toestanden” waarbij de operaties tussen de verscheidene toestanden lopen. Volgende schematische weergave helpt het verschil verduidelijken; links staat een groep, bestaande uit een enkele toestand van vergelijkbare objecten, en rechts een groepo¨ıde, met meerdere toestanden.
⇔
In het geval van schuifpuzzels geeft de positie van het gat een concrete interpretatie aan de toestanden. De groepo¨ıde van de 14-15-puzzel bevat bijvoorbeeld al diens configuraties (ongeacht waar het gat zich bevindt) onderverdeeld in zestien toestanden (elk met alle configuraties waar het gat op eenzelfde positie zit). De geldige zetten en combinaties ervan lopen tussen al deze toestanden. Als we e´ e´ n configuratie selecteren en alle transformaties beschouwen die daar starten e´ n eindigen, dan vinden we wel een groep: de alternerende groep Alt(15) bij de 14-15-puzzel, en de Mathieugroep M12 bij Conways schuifpuzzel.
46
A
Bronnen
Boeken en syllabi [1] Tom De Medts, Algebra I en Algebra II. Universiteit Gent, 2014. [2] Peter Cameron, Permutation Groups. Cambridge University Press, 1999. [3] Oleg Bogopolski, Introduction to Group Theory. European Mathematical Society, 2008. [4] John Conway, Robert Curtis et al., ATLAS of Finite Groups. Oxford University Press, 1985, http://brauer.maths.qmul.ac.uk/Atlas/v3/. [5] Alexander Hulpkes, Notes on Computational Group Theory. Colorado State University, 2010. [6] Gregory Butler, Fundamental Algorithms for Permutation Groups. Springer-Verlag, 1991. [7] Jamie Mulholland, Permutation Puzzles: A Mathematical Perspective. Simon Fraser University, 2013.
Artikels en presentaties [8] John Conway, Noam Elkies et al., The Mathieu group M12 and its pseudogroup extension M13 . Experimental Mathematics, vol. 15 (2), 2006. [9] John Dixon, The probability of generating the symmetric group. Mathematische Zeitschrift, vol. 110, 1969. [10] Sebastian Egner, Markus P¨uschel, Solving puzzles related to permutation groups. ACM, 1998. [11] Woolsey Johnson, William Story, Notes on the “15” puzzle. American Journal of Mathematics, vol. 2 (4), 1879. [12] Alexander Hulpke, Basic algorithms for permutation groups. Arizona Summer Program 2008. [13] Torsten Minkwitz, An algorithm for solving the factorization problem in permutation groups. Journal of Symbolic Computation, vol. 26, 1998. 47
[14] Sophie Piccard, Sur les bases du groupe sym´etrique et du groupe alternant. Mathematische Annalen, vol. 116, 1939. [15] Richard Wilson, Graph puzzles, homotopy, and the alternating group. Journal of Combinatorial Theory (B) 16, blz. 86–96, 1974.
Websites [16] God’s Number is 20. http://www.cube20.org. [17] Martin Sch¨onert, Analyzing Rubik’s Cube with GAP. http://www.gap-system.org/Doc/Examples/rubik.html. [18] GAP Reference Manual. http://www.gap-system.org/Manuals/doc/ref/chap0.html. [19] Jaap Scherphuis, Jaap’s Puzzle Page. http://www.jaapsch.net/puzzles/. [20] Herbert Kociemba, 15-Puzzle Optimal Solver. http://kociemba.org/fifteen/fifteensolver.html. [21] Stefan Pochmann, Speedsolving Rubik’s Clock. http://www.stefan-pochmann.info/spocc/speedsolving/clock. [22] Jens Bossaert, Conway’s M13 puzzle. http://users.ugent.be/~jebossae/M13.
48
B
Code
We geven hier een overzicht van de GAP-commando’s die we het nuttigst bleken voor dit project. Voor gedetailleerde informatie verwijzen we naar de GAP-documentatie, [18]. 1 2 3 4
# Definieer elementaire zetten als permutaties in cykelnotatie A : = ...; B : = ...; C : = ...;
5 # Definieer de permutatiegroep erdoor voortgebracht 6 puzzle : = G r ou p W it h G en e r at o r s (A ,B , C ) ; 7 # Bereken de orde van de permutatiegroep 8 Order ( puzzle ) ; 9 # Definieer de permutatie bij een configuratie vanuit diens labels 10 sigma : = M ap p i ng P e rm L i st L i s t ([...] ,[1..20]) ; 11 # Verifieer of een willekeurige permutatie sigma in de groep zit 12 sigma in puzzle ; 13 # Definieer het ev aluati emorfi sme vanuit de vrije groep 14 Free : = FreeGroup ( " a " ," b " ," c " ) ; 15 eval : = G r o u p H o m o m o r p h i s m B y I m a g e s ( Free , puzzle , Gen erator sOfGro up ( Free ) , Gen erator sOfGro up ( puzzle ) ) ; 16 # Bereken een oplossing voor de configuratie sigma 17 P r e I m a g e s R e p r e s e n t a t i v e ( eval , sigma ) ; 18 # Bereken een st abilis atorke ten voor de puzzelgroep 19 StabChain ( puzzle ) ;
49
Concreet toegepast op de Rubik’s Cube: 1 # Definieer de groep van de Rubik ’s Cube 2 U : = (1 ,3 ,8 ,6) (2 ,5 ,7 ,4) (9 ,33 ,25 ,17) (10 ,34 ,26 ,18) (11 ,35 ,27 ,19) ; 3 L : = (9 ,11 ,16 ,14) (10 ,13 ,15 ,12) (1 ,17 ,41 ,40) (4 ,20 ,44 ,37) (6 ,22 ,46 ,35) ; 4 F : = (17 ,19 ,24 ,22) (18 ,21 ,23 ,20) (6 ,25 ,43 ,16) (7 ,28 ,42 ,13) (8 ,30 ,41 ,11) ; 5 R : = (25 ,27 ,32 ,30) (26 ,29 ,31 ,28) (3 ,38 ,43 ,19) (5 ,36 ,45 ,21) (8 ,33 ,48 ,24) ; 6 B : = (33 ,35 ,40 ,38) (34 ,37 ,39 ,36) (3 ,9 ,46 ,32) (2 ,12 ,47 ,29) (1 ,14 ,48 ,27) ; 7 D : = (41 ,43 ,48 ,46) (42 ,45 ,47 ,44) (14 ,22 ,30 ,38) (15 ,23 ,31 ,39) (16 ,24 ,32 ,40) ; 8 puzzle : = G ro u p W it h G en e r at o r s (U ,L ,F ,R ,B , D ) ; 9 # Definieer het ev aluati emorfisme 10 Free : = FreeGroup ( " U " ," L " ," F " ," R " ," B " ," D " ) ; 11 eval : = G r o u p H o m o m o r p h i s m B y I m a g e s ( Free , puzzle , Gen erator sOfGro up ( Free ) , Gen erator sOfGro up ( puzzle ) ) ; 12 13 14 15
# Stel een st artcon figura tie voorop sigma : = (7 ,18) (13 ,20) (21 ,28) (23 ,42) ; sigma in puzzle ; true
16 # Bereken een oplossing voor de configuratie sigma 17 P r e I m a g e s R e p r e s e n t a t i v e ( eval , sigma ) ; 18 U ∗ F ∗ R ∗ U ∗ R^−1∗U^−1∗F^−1∗U^−1∗L^−1∗U^−1∗B^−1∗U ^2∗ B ∗ L ∗ F ∗ R ∗ U^−1∗R^−1∗ F^−1∗L^−1∗U^−1∗L ∗ U ∗ L ∗ F^−1∗L^−1∗F^−2∗U ∗ F^−1∗U^−1∗F^−1∗L ∗ F ^2∗ ( U ∗ F^−1∗U^−1∗L^−1) ^2∗ U ∗ L ∗ F ∗ U^−1∗F ∗ U ∗ R ∗ U^−1∗R^−1∗U ∗ F^−1∗ ( U^−1∗L^−1∗U^−1∗L ) ^2∗ L ∗ U ∗ B ∗( L^−1∗B^−1) ^2∗ U^−1∗B ∗ L ∗ D ∗ F^−2∗ D^−1∗R ∗ F ∗ U^−1∗F^−1∗R^−1∗F^−1∗U ∗ L^−1∗F ∗ D^−1∗L^−1∗D ∗ F^−1 19 # Bereken een st abilis atorke ten voor de puzzelgroep 20 StabilizerChain : = StabChain ( puzzle ) ; 21
50
C
Index
14-15-puzzel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
vrije mono¨ıde . . . . . . . . . . . . . . . . . . . . . . . . . 7
A Atomic Chaos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
P permutatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 permutatiegroep . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 permutatiepuzzel . . . . . . . . . . . . . . . . . . . . . . . . . 13 Piccard (stelling) . . . . . . . . . . . . . . . . . . . . . . . . . . 10
B basis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 C Cayley (stelling) . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Cayleygraaf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Conway (M13 -puzzel) . . . . . . . . . . . . . . . . . . . . . 44
R reguliere representatie . . . . . . . . . . . . . . . . . . . . . 9 Rubik’s Cheese . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Rubik’s Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Rubik’s Cube . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Rubik’s Rings . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
D Dixon (stelling) . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
S Schreier Schreier (lemma) . . . . . . . . . . . . . . . . . . . . . 24 Schreier–Sims (algoritme) . . . . . . . . . . . . . 23 Schreiervector . . . . . . . . . . . . . . . . . . . . . . . 23 Sims Schreier–Sims (algoritme) . . . . . . . . . . . . . 23 Sims (filter) . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Singmaster (notatie) . . . . . . . . . . . . . . . . . . . . . . 37 stabilisatorketen . . . . . . . . . . . . . . . . . . . . . . . . . . 22 sterk genererende verzameling . . . . . . . . . . . . 22
G GAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Gods getal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 groepo¨ıde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 H Hongaarse ringen . . . . . . . . . . . . . . . . . . . . . . . . 32 J Jerrum (filter) . . . . . . . . . . . . . . . . . . . . . . . . . 11, 27 L Larry’s Square . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
T TopSpin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
M micro-inverteerbaar . . . . . . . . . . . . . . . . . . . . . . 17 mono¨ıde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
W Wilson (stelling) . . . . . . . . . . . . . . . . . . . . . . . . . . 43
51