szó jelentését keresi. A DICTIOUS-ban nem csak a
szó összes szótári jelentését megtalálod, hanem megismerheted az etimológiáját, a jellemzőit és azt is, hogyan kell a
szót egyes és többes számban mondani. Minden, amit a
szóról tudni kell, itt található. A
szó meghatározása segít abban, hogy pontosabban és helyesebben fogalmazz, amikor beszélsz vagy írsz. A
és más szavak definíciójának ismerete gazdagítja a szókincsedet, és több és jobb nyelvi forráshoz juttat.
Kiejtés
Főnév
Thistlethwaite-algoritmus
- (matematika)
Thistlethwaite-algoritmus
A Thistlethwaite-algoritmus egy csoportelméleti alapú megoldás a Rubik-kocka kirakására. Az algoritmust Morwen Thistlethwaite dolgozta ki 1981-ben, és az egyik első hatékony módszer volt a 3x3-as Rubik-kocka kirakására.
---
Lényege
A Rubik-kockát egy sor alcsoportra bontjuk, amelyek egyre szűkebb megoldási teret jelentenek. Az algoritmus célja, hogy lépésről lépésre "leszűkítse" a Rubik-kocka állapotait addig, amíg el nem jutunk a végső megoldáshoz.
---
Csoportelméleti háttér
- A Rubik-kocka forgatási műveletei egy csoportot alkotnak, amelynek állapottere 43 kvintillió lehetséges konfigurációt tartalmaz:
- Thistlethwaite az állapotteret alcsoportra bontja:
- A kocka állapotát először a legnagyobb csoportból ( ) áthelyezzük egy kisebb csoportba ( ), majd lépésről lépésre egyre szűkebb alcsoportra korlátozzuk a forgatásokat.
---
Csoportok magyarázata
- : Az összes lehetséges állapot .
- : Az állapotok, ahol az élkockák orientációja helyes.
- : Az állapotok, ahol az élkockák orientációja helyes, és a sarokkockák orientációja is helyes.
- : Az állapotok, ahol az élkockák és sarokkockák orientációja helyes, és az élek és sarkok permutációja részben helyes.
- : A megoldott állapot.
---
Thistlethwaite-algoritmus lépései
- Lépés 1: Az aktuális állapotból -ból -be helyezés.
* A cél az, hogy az élkockák orientációját helyessé tegyük.
- Lépés 2: -ből -be.
* A cél az, hogy a sarokkockák orientációját helyessé tegyük.
- Lépés 3: -ből -ba.
* Az élek és sarkok részben rendezett permutációját érjük el.
- Lépés 4: -ból -be (a megoldott állapotba).
* Végül az élkockák és sarokkockák teljes permutációját helyreállítjuk.
---
Fontos tulajdonságok
- Az algoritmus biztosan megoldja a Rubik-kockát legfeljebb 52 lépésből.
- A csoportok közötti lépések száma:
* : legfeljebb 7 lépés,
* : legfeljebb 13 lépés,
* : legfeljebb 15 lépés,
* : legfeljebb 17 lépés.
---
Algoritmus implementálása és kihívások
- Csoportok definiálása: A Rubik-kocka állapotai közötti csoportelméleti szabályok nagyon bonyolultak, ezért ezt nem könnyű programozni.
- Megoldási stratégiák: A programban forgatási műveleteket definiálunk, majd ellenőrizzük, hogy az aktuális állapot melyik alcsoportba tartozik.
- Heurisztika használata: A gyakorlatban az algoritmust optimalizálják heurisztikus lépésekkel, hogy gyorsabbá tegyék a megoldást.
---
Egyszerűsített Python implementáció
A Rubik-kocka teljes állapotterének leírása itt nem lehetséges egy rövid kódban, de az alábbi példa bemutatja egy lépés orientációjának javítását egy egyszerűsített forgatási függvényekkel.
class RubiksCube:
def __init__(self):
self.state = self.solved_state()
def solved_state(self):
"""Létrehoz egy megoldott állapotot."""
return {
'U': * 9, 'D': * 9,
'F': * 9, 'B': * 9,
'L': * 9, 'R': * 9
}
def rotate_face(self, face):
"""Egyszerű forgatás egy adott oldalra."""
state = self.state
self.state = [
state, state, state,
state, state, state,
state, state, state
]
def print_cube(self):
for face, tiles in self.state.items():
print(f"{face}: {tiles}")
# Példa használat
cube = RubiksCube()
print("Eredeti állapot:")
cube.print_cube()
print("\nForgatás után:")
cube.rotate_face('F')
cube.print_cube()
---
Alkalmazások
- Rubik-kocka megoldó programok: A modern megoldók a Thistlethwaite-algoritmus továbbfejlesztett változatát használják.
- Csoportelméleti kutatások: A Rubik-kocka megoldásának tanulmányozása segít a véges csoportok tulajdonságainak megértésében.
- Optimalizálás: Az algoritmus a mozgások számának minimalizálására törekszik.
---
Összefoglalás
- A Thistlethwaite-algoritmus a Rubik-kocka kirakására szolgál csoportelméleti alapon.
- Az állapotteret alcsoportra bontja, és lépésről lépésre szűkíti a lehetséges állapotokat.
- A megoldás garantáltan legfeljebb 52 lépésből elérhető.
- Bár elméletileg hatékony, a gyakorlatban léteznek modernebb algoritmusok (pl. Kociemba algoritmus), amelyek gyorsabban működnek.
Ez az algoritmus mérföldkövet jelentett a Rubik-kocka matematikai vizsgálatában.
Fordítások