Hejto.pl
Dodaj post

Wpisz coś do wyszukania (minimum 2 znaki)

boardgamestheoryStatysta

Dołączył/a:

  • 3 wpisów
  • 0 komentarzy
  • 0 obserwujących

Statysta

w Dyskusje

0piorunów

Stochastyczne Procesy Decyzyjne Markowa i Kryptograficznie Sprawdzalna Uczciwość Kostek (Commit-Reveal) w Tryktraku

Tryktrak (Backgammon) jest jedną z najstarszych i najbardziej fascynujących gier planszowych na świecie. W przeciwieństwie do szachów czy warcabów, tryktrak łączy głęboką strategię pozycyjną ze stochastyczną niepewnością wynikającą z rzutów dwiema sześciennymi kostkami. W teorii sztucznej inteligencji gra ta formalizowana jest jako dyskretny stochastyczny proces decyzyjny Markowa (Markov Decision Process – MDP) o skończonym horyzoncie czasowym.

1. Backgammon jako Stochastyczny Proces Decyzyjny Markowa (MDP)

W ujęciu matematycznym stan gry w tryktraka można zdefiniować jako 4-krotkę (S, A, P, R):

• S (Przestrzeń Stanów): Wektor reprezentujący liczbę i położenie pionów obu graczy na 24 punktach planszy, na bandzie (bar) oraz w strefie zbitych pionów (borne off), a także stan kostki podwajającej (doubling cube). Przestrzeń ta liczy w przybliżeniu 10^18 dopuszczalnych stanów.
• A (Przestrzeń Akcji): Zbiór dopuszczalnych przesunięć pionów dla zadanego rzutu kostkami.
• P (Prawdopodobieństwo Przejść): P(s' | s, a) określa prawdopodobieństwo przejścia do stanu s' po wykonaniu akcji a. Kluczowym elementem stochastycznym jest rozkład rzutu dwiema kośćmi: istnieje 36 równoprawdopodobnych kombinacji elementarnych dających 21 unikalnych wyników (15 par niesymetrycznych o prawdopodobieństwie 2/36 oraz 6 dubletów o prawdopodobieństwie 1/36).
• R (Funkcja Wypłaty / Reward): Wartość końcowa gry wyznaczana w equity punktowym (+1 za zwykłą wygraną, +2 za gammon, +3 za backgammon, skalowane przez stan kostki podwajającej).

2. Równania Optymalności Bellmana i Drzewa Expectiminimax

W celu wyznaczenia optymalnego posunięcia silnik analityczny (np. TD-Gammon autorstwa Geralda Tesauro lub współczesne sieci neuronowe GNU Backgammon i WildBG) rozwiązuje równanie optymalności Bellmana. Wartość stanu V(s) jest obliczana za pomocą algorytmu Expectiminimax:

Węzły decyzyjne maksymalizują oczekiwaną wartość equity, podczas gdy węzły losowe (węzły szansy - chance nodes) obliczają średnią ważoną equity po wszystkich 21 możliwych kombinacjach rzutu kością w następnej turze. Złożoność obliczeniowa drzewa rośnie wykładniczo z głębokością (ply), dlatego w czasie rzeczywistym stosuje się wielowarstwowe sieci neuronowe z aproksymacją wartości pozycyjnej.

3. Problem Zaufania w Grach Cyfrowych i Pseudolosowość PRNG

W tradycyjnej rozgrywce fizycznej gracze polegają na mechanicznej losowości kubka i kostek. W grach internetowych generowanie liczb pseudolosowych opiera się na generatorach algorytmicznych (PRNG). Częstym problemem psychologicznym w społeczności graczy jest tzw. „bias confirmation” – przekonanie, że serwer faworyzuje jednego z graczy w krytycznych momentach (np. wyrzucenie idealnego dubletu ucieczkowego).

Standardowy generator PRNG po stronie serwera nie daje graczowi żadnej gwarancji, że wynik rzutu nie został wygenerowany post-factum na podstawie aktualnej konfiguracji planszy.

4. Kryptograficzny Protokół Provably Fair (Commit-Reveal)

Aby wyeliminować konieczność ślepego zaufania do serwera, stosuje się protokoły kryptograficzne oparte na schemacie Commit-Reveal z użyciem funkcji skrótu HMAC-SHA256.

Architektura kryptograficznie sprawdzalnej losowości działa w trzech krokach:

1. Zobowiązanie Serwera (Server Commitment): Przed rozpoczęciem partii lub tury serwer generuje tajne ziarno (Server Seed) i publikuje graczowi wyłącznie jego kryptograficzny skrót SHA-256 (Hash). Serwer nie może zmienić swojego ziarna po opublikowaniu hasha bez natychmiastowego unieważnienia dowodu.
2. Entropia Gracza (Client Seed): Klient (przeglądarka gracza) generuje własne losowe ziarno (Client Seed), na które serwer nie ma żadnego wpływu.
3. Deterministyczna Generacja i Weryfikacja: Wynik każdego rzutu kością jest deterministyczną funkcją HMAC-SHA256(ServerSeed, ClientSeed + ":" + Nonce). Po zakończeniu gry serwer ujawnia Server Seed, a gracz może niezależnie zweryfikować każdy rzut w dowolnym zewnętrznym narzędziu kryptograficznym.

5. Nowoczesne Standardy w Aplikacjach Nowej Generacji

Zastosowanie kryptografii Provably Fair całkowicie redefiniuje standardy uczciwości w grach turniejowych online. Nowoczesną implementację tego rozwiązania prezentuje platforma Boardgammon – kryptograficznie weryfikowalny algorytm rzutów kostką Provably Fair, gdzie każdy gracz ma pełny wgląd w ziarna kryptograficzne, hashe SHA-256 i matematyczne dowody bezstronności każdego rzutu.

Pokaż więcej komentarzy (2)

Statysta

w Dyskusje

2piorunów

Rozwiązanie Matematyczne Gry w Warcaby (8x8): 32-Bitowe Bitboardy i Bazy Końcówek Chinook

W 2007 roku zespół prof. Jonathana Schaeffera z University of Alberta ogłosił na łamach prestiżowego czasopisma Science pełne matematyczne rozwiązanie klasycznej gry w warcaby angielskie (8x8 Draughts / Checkers). Przestrzeń stanów gry licząca około 5 × 10^20 możliwych konfiguracji została zredukowana do formalnego dowodu teorii gier: przy perfekcyjnej grze obu stron wynik partii warcabowej jest bezwzględnym remisem.

1. Reprezentacja 32-Bitowa i Izomorfizm Planszy

Podczas gdy w szachach używa się planszy 8x8 z 64 aktywnymi polami, w warcabach bierki poruszają się wyłącznie po polach ciemnych. Dokładnie 32 pola są funkcjonalne, co pozwala na idealne odwzorowanie całego stanu gry w 32-bitowych rejestrach procesora (uint32_t).

Do pełnego opisu dowolnej pozycji w pamięci RAM wystarczą cztery 32-bitowe maski bitowe: piony jasne, damki jasne, piony ciemne oraz damki ciemne. Operacje ruchów po przekątnych (prawo-góra, lewo-góra, prawo-dół, lewo-dół) realizowane są poprzez proste stałe przesunięcia bitowe (bit-shift) o 3, 4 lub 5 pozycji, z uwzględnieniem parzystości wierszy planszy.

2. Wymuszone Bicia i Kombinatoryka Generacji Ruchów

Fundamentalną regułą wyróżniającą warcaby jest obowiązek bicia (ang. mandatory capture). W generatorze ruchów najpierw oblicza się wektor skoków za pomocą bitowych operacji logicznych AND pomiędzy polami zajętymi przez przeciwnika a polami docelowymi przesuniętymi o wektor skoku. Jeśli maska skoków jest niezerowa, silnik całkowicie pomija generowanie cichych przesunięć, drastycznie redukując gałąź przeszukiwania.

Wielokrotne bicia (ciągi bić damką lub pionem) są ewaluowane rekurencyjnie przy użyciu algorytmów przeszukiwania w głąb (DFS) z natychmiastowym cofaniem stanu (backtracking na bitboardach).

3. 10-Bierkowe Bazy Końcówek (Endgame Tablebases)

Kluczowym filarem sukcesu projektu Chinook było stworzenie bezbłędnych baz końcówek (Endgame Tablebases) obliczonych metodą retrograde analysis (analizy wstecznej). Zespół Schaeffera przeliczył wszystkie możliwe układy do 10 bierek włącznie, co stanowiło bazę danych o objętości ponad 39 bilionów pozycji.

Dla każdej z tych pozycji wyznaczono wartość w sensie teorii gier (Wygrana, Przegrana, Remis) oraz metrykę DTM (Distance to Mate / Distance to Conversion). W trakcie przeszukiwania drzewa gry Alpha-Beta silnik, trafiając na dowolną konfigurację z 10 lub mniej bierkami, nie dokonuje heurystycznej oceny, lecz pobiera z tablicy dokładną wartość z prawdopodobieństwem błędu równym zero.

4. Proof Number Search i Rozwiązanie Gry

Samo przeszukiwanie minimax z bazami końcówek nie wystarczyłoby do rozwiązania gry od pozycji początkowej. Schaeffer zastosował algorytm Proof Number Search (PNS) oraz jego wariant df-pn (depth-first proof-number search). Algorytmy te dynamicznie przypisują każdemu węzłowi dwie liczby: liczbę dowodu (proof number - wysiłek potrzebny do udowodnienia wygranej) oraz liczbę zaprzeczenia (disproof number - wysiłek potrzebny do udowodnienia remisu lub przegranej), kierując zasoby obliczeniowe tam, gdzie najłatwiej obalić słabe warianty.

5. Praktyczna Implementacja i Nowoczesne Aplikacje Webowe

Architektura 32-bitowych warcabów stanowi wzorzec czystości inżynieryjnej. Implementacja silników analitycznych w WebAssembly pozwala graczom na błyskawiczną analizę posunięć, wykrywanie błędów taktycznych i doskonalenie wariantów otwarć bezpośrednio w przeglądarce. Świetnym przykładem takiego nowoczesnego narzędzia jest Checkers Crown – gra w warcaby online z silnikiem analizy, oferująca intuicyjny interfejs, precyzyjne reguły i zaawansowaną analizę partii dla graczy na każdym poziomie.

Autorytet0piorunów

Co to za gówno?

Koneser0piorunów

@WysokiTrzmiel tl;dr - zrobili automat do wygrywania w warcaby. Nie taki, który potrafi obliczyć sobie najlepsze ruchy etc, ale taki, który w zasadzie ma przewidziane WSZYSTKIE możliwe partie - i wybiera zawsze najlepsze możliwe rozwiązanie, niczego nie musi obliczać.

Czytałem o tym jeszcze w Angorze (czy w Angorce nawet?) właśnie gdzieś w okolicach tego 2007 roku. Do teraz muszę przyznać, że jestem pod wrażeniem i to podwójnym:
1) dla tych naukowców, że to się dało psiakrew zrobić i to zrobili
2) dla szachów, gdyż podobny manewr dla nich ni prącia by nie wypalił - bo możliwych kombinacji ruchów i partii jest w zasadzie nieskończenie wiele.

A teraz czuję się staro.

Pokaż więcej komentarzy (2)

Statysta

w Dyskusje

1piorunów

Architektura Silników Szachowych: 64-Bitowe Magic Bitboards, Podcinanie Alfa-Beta i Quiescence Search

Projektowanie współczesnych silników szachowych stanowi jedno z najbardziej wyrafinowanych osiągnięć inżynierii oprogramowania i algorytmiki deterministycznych gier o pełnej informacji. Podczas gdy pionierskie programy szachowe operowały na tablicach dwuwymiarowych lub reprezentacji 0x88, współczesne silniki klasy Stockfish bazują na 64-bitowych strukturach rejestrowych, zwanych Bitboardami, zaawansowanych technikach haszowania Magic Bitboards oraz głębokim przeszukiwaniu heurystycznym z eliminacją efektu horyzontu.


## 1. 64-bitowe Bitboardy i Równoległość Bitowa

Standardowa szachownica składająca się z 64 pól idealnie mapuje się na 64-bitowy typ liczbowy bez znaku (uint64_t w C/C++ lub u64 w Rust). Układ pól indeksowany jest w formacie LERF (Little-Endian Rank-File), gdzie bit 0 to pole a1, bit 7 to h1, bit 56 to a8, a bit 63 to h8. Pełny stan gry może być wyrażony za pomocą 12 elementarnych bitboardów (6 typów bierek × 2 kolory) powiększonych o maski zajętości pól.

Kluczową zaletą bitboardów jest naturalna równoległość na poziomie instrukcji procesora (bit-level SIMD). Przesunięcia bitowe i operacje logiczne AND/OR pozwalają na jednoczesne obliczenie trajektorii ataku wszystkich pionów w jednym cyklu zegara bez żadnych instrukcji warunkowych branchingu.


## 2. Figury Ślizgające się i Magic Bitboards

O ile figury nieślizgające się (skoczki i króle) posiadają stałe wzorce ataków pobierane ze statycznych tablic przeglądowych, o tyle figury ślizgające się (wieże, gońce i hetmany) napotykają przeszkody dynamicznie blokujące zasięg rażenia.

Technika Magic Bitboards rozwiązuje problem generowania ataków figur ślizgających się w czasie O(1). Zastosowanie odpowiednio wygenerowanej stałej 64-bitowej (liczby magicznej) oraz operacji mnożenia z przesunięciem pozwala na bezkolizyjne zmapowanie dowolnej konfiguracji bierek blokujących na zwarty indeks tablicy ataków.

W nowoczesnych procesorach z zestawem instrukcji BMI2, instrukcja sprzętowa _pext_u64 (Parallel Bits Extract) wyodrębnia bity maski w zaledwie 1 cyklu procesora. Dzięki temu nowoczesne generatory ruchów osiągają przepustowość rzędu setek milionów pozycji na sekundę (MNPS).


## 3. Poda Alfa-Beta, Przeszukiwanie PVS i Tablice Transpozycji

Przy średnim współczynniku rozgałęzienia b ≈ 35, algorytmy Alpha-Beta Pruning oraz Principal Variation Search (PVS) redukują wykładnik drzewa do √b ≈ 6, co umożliwia podwojenie osiąganej głębokości w tym samym budżecie czasu obliczeniowego.

Efektywność odcięć alfa-beta zależy w głównej mierze od porządku sprawdzania ruchów (Hash Move z tablicy transpozycji, MVV-LVA dla bić oraz Killer Moves dla cichych ruchów wywołujących odcięcia beta). W celu wykrywania transpozycji stosuje się Zobrist Hashing z operacjami XOR.


## 4. Efekt Horyzontu i Quiescence Search

Najgroźniejszym zjawiskiem w heurystycznym przeszukiwaniu drzew jest efekt horyzontu (Horizon Effect). Rozwiązaniem jest Quiescence Search (przeszukiwanie ciszy), które na węzłach liści bada wyłącznie ruchy taktyczne, wymuszone bicia i promocje pionów z zastosowaniem heurystyki Stand-Pat oraz Delta Pruning.


## 5. Implementacje Przeglądarkowe i Nowoczesna Architektura

Dzięki rozwojowi WebAssembly oraz wieloplatformowych frameworków renderujących, silniki oparte na architekturze bitboardów mogą być uruchamiane bezpośrednio w przeglądarce i na urządzeniach mobilnych bez obciążania serwerów. Praktycznym przykładem takiego nowoczesnego rozwiązania edukacyjnego jest Boardgammon Chess – silnik szachowy i analiza pozycji online, który integruje szybką ewaluację bitboardową, analizę taktyczną i interaktywną naukę gry w nowoczesnym interfejsie.

Pokaż więcej komentarzy (4)