Przejdź do głównej zawartości

__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ślnie small 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 razie large; 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