Jumalan algoritmi on käsite, joka syntyi keskustelun aikana Rubikin kuution ratkaisutavoista . Termiä voidaan käyttää myös muiden permutaatiopulmien yhteydessä . Palapelijumala-algoritmi on mikä tahansa algoritmi , joka tuottaa pulmaratkaisun, joka sisältää mahdollisimman vähän liikkeitä (optimaalinen ratkaisu) mistä tahansa tietystä konfiguraatiosta alkaen.
Yksi Rubikin kuution matemaattisen teorian pioneereista , David Singmaster [1] , kuvaa termin ulkoasua seuraavasti:
John Conway , yksi maailman johtavista ryhmäteoreetikoista, huomautti, että Kuutio noudattaa niin kutsuttuja säilymislakeja (tai pariteettilakeja), mikä tarkoittaa, että jotkut liikkeet ovat yksinkertaisesti mahdottomia. Joko Conway tai yksi hänen kollegoistaan Cambridgessa määritteli lyhimmän polun mistä tahansa tietystä tilasta takaisin alkutilaan "Jumalan algoritmiksi".
Alkuperäinen teksti (englanniksi)[ näytäpiilottaa] John Conway, yksi maailman suurimmista teoreetikoista, havaitsi, että kuutio noudattaa niin kutsuttuja säilymislakeja (tai pariteettilakeja), mikä tarkoittaa, että jotkut liikkeet eivät yksinkertaisesti ole mahdollisia. Joko Conway tai yksi hänen kollegoistaan Cambridgessa määritteli lyhimmän reitin mistä tahansa tietystä paikasta takaisin lähtöasentoon "Jumalan algoritmiksi". - David Singmaster [2]Jumalan algoritmi voi olla olemassa arvoituksille, joissa on rajallinen määrä mahdollisia kokoonpanoja ja rajallinen joukko "siirtoja", jotka ovat sallittuja jokaisessa kokoonpanossa, jotka muuttavat nykyisen kokoonpanon toiseksi. Termi "ratkaise palapeli" tarkoittaa liikesarjan osoittamista, joka vie alkukokoonpanon johonkin lopulliseen kokoonpanoon. Optimaalinen ratkaisu pulmaan on ilmoittaa lyhin siirtosarja pulman ratkaisemiseksi. Optimaalisia ratkaisuja voi olla useita.
Merkittäviä tämän määritelmän piiriin kuuluvia pulmia ovat Rubikin kuutio , Hanoin torni , 15-peli , Chip Solitaire , erilaiset verensiirto- ja kuljetusongelmat (" Susi, vuohi ja kaali "). Kaikille näille arvoituksille yhteistä on, että niitä voidaan kuvata graafina , jonka kärjet ovat kaikki mahdolliset pulman konfiguraatiot ja reunat ovat mahdollisia siirtymiä niiden välillä ("liikkuja").
Monissa tällaisissa pulmapeleissä lopullinen konfiguraatio oletetaan epäsuorasti esimerkiksi "tunnisteissa" - järjestetyssä luiden järjestelyssä Rubikin kuutiolle - kasvojen sama väri. Näissä tapauksissa "palapelin kokoaminen" tarkoittaa, että mielivaltaista alkukokoonpanoa varten on määriteltävä siirtosarja, joka johtaa kiinteään lopulliseen kokoonpanoon.
Algoritmi ratkaisee pulman, jos se ottaa syötteeksi mielivaltaisen parin alku- ja lopullisia kokoonpanoja (tai vain alkuperäisen konfiguraation, jos lopullinen konfiguraatio on kiinteä) ja palauttaa tuloksena siirtosarjan, joka siirtää alkuperäisen konfiguraation lopulliseen ( jos tällainen sekvenssi on olemassa, muuten algoritmi ilmoittaa ratkaisun mahdottomuudesta). Optimaalinen ratkaisu sisältää mahdollisimman vähän liikkeitä.
Sitten Jumalan algoritmi (tietylle pulmalle) on algoritmi, joka ratkaisee pulman ja löytää ainakin yhden optimaalisen ratkaisun mielivaltaiselle kokoonpanoparille.
Jotkut kirjoittajat uskovat, että Jumalan algoritmin tulisi myös olla käytännöllinen , eli käyttää kohtuullista muistia ja suorittaa kohtuullisessa ajassa.
Olkoon G permutaatiopulmaryhmä (tietyllä generointijoukolla), v G : n Cayley-graafin huippu . Etsi tehokas , käytännöllinen algoritmi polun määrittämiseksi v :stä kärkeen v 0 , joka liittyy neutraaliin elementtiin, jonka pituus on yhtä suuri kuin etäisyys v :stä v 0 :aan . [...] Tätä algoritmia kutsutaan Jumalan algoritmiksi .
Alkuperäinen teksti (englanniksi)[ näytäpiilottaa] Olkoon G permutaatiopulman ryhmä (kiinteällä generointijoukolla) ja olkoon v G:n Cayley-graafin huippu. Etsi tehokas, käytännöllinen algoritmi polun määrittämiseksi v:stä identiteettiin liittyvään kärkipisteeseen v 0 jonka pituus on yhtä suuri kuin etäisyys v:stä v 0 :aan . [...] Tätä algoritmia kutsutaan Jumalan algoritmiksi . – David Joyner [3]Käytännön voi ymmärtää eri tavoin. Joten on olemassa tietokoneohjelmia, joiden avulla voidaan löytää optimaalinen ratkaisu mielivaltaiseen Rubikin kuution konfiguraatioon kohtuullisessa ajassa [4] . Samaan aikaan samanlainen tehtävä 4×4×4 kuutiolla on tällä hetkellä käytännössä mahdotonta [5] [6] [7] . Joillekin arvoituksille on olemassa strategia, jonka avulla yksinkertaisten sääntöjen mukaan optimaalinen ratkaisu voidaan määrittää manuaalisesti ilman tietokoneen apua.
Vaihtoehtoinen määritelmä Jumalan algoritmille: Algoritmia ei vaadita koko liikesarjan löytämiseen; Sen sijaan riittää, että löydetään optimaalisen ratkaisun ensimmäinen liike, joka tuo sen lähemmäksi tavoitetta ja siirtää sen uuteen kokoonpanoon. Kaksi määritelmää ovat samanarvoisia: soveltamalla algoritmia uudelleen uuteen konfiguraatiopariin löytää jälleen optimaalisen ratkaisun liikkeen, mikä mahdollistaa optimaalisen ratkaisun koko siirtosarjan saamisen.
Tietyn pulman jumalaluku on luku n , jolloin pulmalle on ainakin yksi konfiguraatio, jonka optimaalinen ratkaisu koostuu n liikkeestä, eikä ole konfiguraatiota, jonka optimaalisen ratkaisun pituus ylittää n . Toisin sanoen, Jumalan luku on pienin yläraja pulmakokoonpanojen optimaalisten ratkaisujen pituuksien joukossa.
3x3x3 Rubikin kuution jumalaluku on 20 - tämä on Rubikin kuutioryhmän Cayley-graafin halkaisija [ 8 ] .
Yleensä (mielivaltaiselle permutaatiopulmalle) Jumalan luku ei ole yhtä suuri kuin pulmaryhmän Cayley-graafin halkaisija, vaan pulmapelin "kootun" tilaa vastaavan kärjen epäkeskisyys .
Speedcubing | |
---|---|
Organisaatio |
|
Urheiluväline | |
Käsitteet |
|
Maailmanmestaruus |