core
Ez a modul biztosítja a központi Solver
osztályt, amely betölt egy modellt és Rubik-kocka megoldásokat keres egy „beam search” algoritmus segítségével.
Osztály:
Solver
: Egy osztály a Rubik-kocka konfigurációjának, a megoldó modellnek és a keresési funkciónak a kezelésére.
Solver
class Solver()
Egy megoldó osztály a környezet, a modell és a keresési konfigurációk kezelésére.
Ez az osztály hangolja össze a kocka környezetet, a neurális hálózati modellt és a „beam search” algoritmust a megoldások megtalálásához.
Metódusok:
load
: Betölti a megoldó modellt és optimalizálja azt CPU-ra vagy GPU-ra.__call__
(vagysolve
): Beállítja a kocka állapotát és megoldásokat keres a „beam search” segítségével.benchmark
: Kiértékeli a megoldó keresési hatékonyságát.evaluate_temporal_performance
: (Elavult) Kiértékeli a megoldás hosszát az idő függvényében.
load
def load(
model_id: str = dict(cpu="small").get(device.type, "large"),
prefer_gpu: bool = True,
quantize_on_cpu: bool = True,
jit_mode: bool = False,
cache_dir: str = os.path.expanduser("~/.cache/alphacube")
)
Betölti a Rubik-kocka megoldó modellt és optimalizálja azt CPU-ra vagy GPU-ra.
Argumentumok:
model_id
str - A betöltendő modellváltozat azonosítója ("small", "base" vagy "large").prefer_gpu
bool - Használjon-e GPU-t, ha elérhető.quantize_on_cpu
bool - Kvantálja-e a modellt a CPU-optimalizáláshoz.jit_mode
bool - Engedélyezze-e a JIT módot a potenciálisan gyorsabb végrehajtás érdekében.cache_dir
str - A modellfájlok gyorsítótárazására szolgáló könyvtár.
Visszatérési érték:
None
__call__
def __call__(
scramble,
format="moves",
allow_wide=True,
beam_width: int = 1024,
extra_depths: int = 0,
ergonomic_bias: dict | None = None
)
Beállítja a kocka állapotát és megoldásokat keres a „beam search” segítségével.
Argumentumok:
scramble
list vagy str - A kezdeti kockaállapotot leíró mozdulatsorozat vagy matrica-reprezentáció.format
str - A keverés bemeneti formátuma: "moves" vagy "stickers".allow_wide
bool - Engedélyezze-e a széles (wide) mozdulatokat a keresési térben.Megjegyzés
- Ezt gyakran automatikusan vezérli azergonomic_bias
.beam_width
int - A keresési algoritmus nyalábszélessége (beam width).extra_depths
int - A megoldás megtalálása után keresendő extra mélységek száma.ergonomic_bias
dict, opcionális - Egy szótár, amely az ergonomikus preferenciák alapján bizonyos mozdulatok felé tolja el a keresést.
Visszatérési érték:
dict
|None
: Egy szótár, amely a megoldás(oka)t és a keresési metaadatokat tartalmazza, vagyNone
, ha nem található megoldás.
benchmark
Az alphacube.solver.benchmark(...)
egy rövidített metódus, amely funkcionálisan megegyezik az alphacube._evaluator.benchmark(alphacube.solver, ...)
metódussal. Az evaluate_search_efficiency
a visszamenőleges kompatibilitás érdekében erre a metódusra irányít át.
evaluate_temporal_performance
Elavult. Az alphacube._evaluator.evaluate_temporal_performance
rövidítése.