AI : Technologie, Aplikacje i Wyzwania : Implementacja agenta szachowego przy użyciu SARSA Network-Moduł Opis Biblioteki

https://aie24.pl/

Keras: Aby załadować i zapisać model DNN zasad eksperckich.

Python-chess: Biblioteka symulacji szachów dla Pythona.

Składniki:

RLC_model.h5: Polityka ekspercka

Model Kerasa.

Agent: zawiera wszystkie wymagane funkcje, w tym strategię aktualizacji polityki.

Środowisko: zawiera funkcje związane z charakterystyką środowiska szachowego.

TD_search_m: zawiera kod symulacji gry i kod wyszukiwania MCTS.

Środowisko:

Cel: Efektywnie grać w szachy przeciwko ludzkiemu przeciwnikowi.

Środowisko jest budowane przy użyciu biblioteki o nazwie Python-chess. Rysunek pokazuje szachownicę stworzoną przez Python-chess.

Biblioteka zapewnia:

  1. Reprezentacja Zarządu
  2. Reprezentacja sztuk
  3. Pokolenie ruchu
  4. Przenieś walidację
  5. Wsparcie dla UCI (uniwersalny interfejs szachowy), FEN (notacja Forsyth-Edwards), SAN (standardowa notacja algebraiczna).
  6. Wyrenderuj szachownicę za pomocą SVG (Scalable Vector Graphics)

Fragment kodu : Pseudokod obliczający nagrodę za działanie w określonym stanie.

Obliczanie nagrody:

  1. Załóżmy, że plansza znajduje się w jakimś pośrednim stanie gry.
  2. Stan płytki jest modelowany jako węzeł w drzewie MCTS.
  3. System jest iterowany po wszystkich dzieciach węzła.
  4. Dla każdego dziecka ten sam proces jest powtarzany aż do pewnej głębokości drzewa.
  5. Po dotarciu do węzła liścia
  6. Jeśli nagroda = 1, jeśli system wygra grę.
  7. Jeśli nagroda = -1, jeśli system przegra grę.
  8. Nagroda wynosi 0,01 * różnica wartości materialnej stanu początkowego i końcowego dla wszystkich innych sytuacji.
  9. Na podstawie otrzymanej nagrody końcowej aktualizujemy wartość działania państwa rodzica tego dziecka za pomocą formuł sieci SARSA.
  10. Val(ParentState,Action) = Val(ParentState,Action) + LearningRate *(Reward of Child State + Discount_Factor *Val(ChildState,Action) – Val(ParentState,Action))
  11. Używając Val stanu podrzędnego, możemy zaktualizować wartość stanu rodzica o współczynnik uczenia się i współczynnik dyskontowy.
  12. Para StateAction dla bieżącego węzła ze wszystkimi dziećmi zostaje znaleziona, a ruch, który daje najlepszą nagrodę, jest wybierany jako następny ruch wykonywany przez agenta.

Strategie decyzyjne agenta – zasady:

Agent wykorzystuje dwa różne rodzaje strategii podejmowania decyzji, aby wykonać ruch. Oni są:

  1. Eksploracja: Wybiera losowy ruch z listy dozwolonych ruchów i bada różne stany gry.
  2. Eksploatacja: Wybiera ruch spośród dozwolonych ruchów, który ma największe prawdopodobieństwo wygranej.

W każdym stanie agent poświęca 1 sekundę na rozszerzenie MCTS. Kroki wykonywane przez agenta przez 1 sekundę są pokazane na rysunku.

Są to:

  1. Wybór: Wybierz ruch z listy dozwolonych ruchów.
  2. Rozszerzenie: Utwórz nowy węzeł podrzędny, jeśli węzeł nie istnieje lub przenieś się do istniejącego węzła podrzędnego.
  3. Symulacja: Wykonaj krok 1 (Wybór) i krok 2 (Rozbudowa) kilkakrotnie, aż upłynie czas.
  4. Propagacja wsteczna: Po upływie czasu nagroda zostanie przyznana. Węzły nadrzędne można aktualizować za pomocą funkcji wartości SARSA.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *