__init__
alphacube
udostępnia kilka funkcji do różnych celów:
load(*args, **kwargs)
: Ładuje wytrenowaną sieć neuronową.solve(*args, **kwargs)
: Rozwiązuje kostkę Rubika przy użyciu załadowanego solvera.set_verbose(loglevel=logging.INFO)
: Ustawia poziom szczegółowości loggera.cli()
: Narzędzie wiersza poleceń do rozwiązywania kostki Rubika za pomocą AlphaCube.
Zobacz Pierwsze kroki, aby poznać podstawowe użycie.
load
def load(model_id: str = "small" if device.type == "cpu" else "large", *args, **kwargs)
Ładuje model solvera kostki Rubika.
Argumenty:
model_id
- Identyfikator wariantu modelu do załadowania ("small", "base" lub "large"). Domyślniesmall
na CPU;large
na GPU/MPS.*args
- Dodatkowe argumenty pozycyjne do konfiguracji ładowania modelu.**kwargs
- Dodatkowe argumenty słów kluczowych do konfiguracji ładowania modelu.
Zwraca:
None
solve
def solve(*args, **kwargs)
Rozwiązuje łamigłówkę kostki Rubika przy użyciu załadowanego modelu solvera.
Argumenty:
*args, **kwargs: Argumenty do konfiguracji rozwiązywania łamigłówki; przekazywane do alphacube.core.Solver.__call__()
i alphacube.search.beam_search
.
Zwraca:
dict
|None
: Słownik zawierający rozwiązania i metryki wydajności. None w przypadku niepowodzenia.
list_models
def list_models()
Wyświetla listę dostępnych identyfikatorów modeli.
Zwraca:
list
- Lista dostępnych identyfikatorów modeli.
cli
def cli()
Narzędzie wiersza poleceń do rozwiązywania kostki Rubika za pomocą AlphaCube.
Argumenty:
--model_id
/-m
(str): Wybiera konkretny model do rozwiązywania (domyślnie: 'small' na CPU, w przeciwnym razielarge
; inny wybór to `base``).--format
/-f
(str): Określa format wejściowy ('moves' lub 'stickers').--scramble
/-s
(str): Definiuje początkowy stan kostki za pomocą sekwencji ruchów lub słownika JSON w postaci stringa.--beam_width
/-bw
(int): Ustawia szerokość wiązki dla wyszukiwania (domyślnie: 1024).--extra_depths
/-ex
(int): Określa dodatkowe głębokości eksploracji (domyślnie: 0).--verbose
/-v
: Włącza szczegółowe wyjście do debugowania i śledzenia postępu.
Zwraca:
None
Przykłady użycia:
Składnia
alphacube [--model_id MODEL_ID] [--format FORMAT] [--scramble SCRAMBLE]
[--beam_width BEAM_WIDTH] [--extra_depths EXTRA_DEPTHS]
1. Rozwiązuje kostkę przy użyciu ustawień domyślnych
alphacube --scramble "R U R' U'"
2. Rozwiązuje kostkę z niestandardowymi ustawieniami
alphacube --model_id large --beam_width 128 --extra_depths 2 \
--scramble "R U2 F' R2 B R' U' L B2 D' U2 R F L"
3. Rozwiązuje kostkę przy użyciu reprezentacji naklejek
alphacube --format stickers \
--scramble '{ \
"U": [0, 0, 5, 5, 0, 5, 5, 4, 0], \
"D": [1, 3, 3, 4, 1, 1, 4, 1, 3], \
"L": [4, 5, 1, 0, 2, 2, 0, 1, 4], \
"R": [5, 2, 0, 2, 3, 3, 2, 0, 2], \
"F": [4, 3, 2, 4, 5, 1, 1, 4, 3], \
"B": [1, 5, 5, 0, 4, 3, 3, 2, 2] \
}' \
--beam_width 64