Heurystyka zerowego ruchu

Dla programów szachowych The heurystyczny null ruch jest techniką heurystyczny stosowany w celu poprawy szybkości algorytmu z przycinania alfa-beta . Opracowany przez Beala w 1989 r., A następnie przez Goetscha i Campbella w 1990 r., To Christian Donninger - zaangażowany w projekt Hydra - udostępnił tę technikę fanom szachowego programowania , zamieszczając swoje komentarze.

Zasada

Technika przycinania alfa-beta to optymalizacja algorytmu MinMax polegająca na identyfikowaniu „cięć” - będących węzłami drzewa decyzyjnego, które są tak silne dla gracza z inicjatywą, że najlepiej. to możliwe. Ponieważ tego typu pozycja nie jest wynikiem najlepszego możliwego ruchu przeciwnika, wszystkie gałęzie drzewa decyzyjnego, które wypływają z tych węzłów, są ignorowane. Im więcej „cięć” generuje oprogramowanie, tym szybsze jest wyszukiwanie najlepszego ujęcia. Heurystyka zerowego ruchu umożliwia odgadnięcie węzłów odcinających w mniejszej liczbie prób, przy zachowaniu rozsądnej precyzji.

Zasada opiera się na fakcie, że większość ruchów szachowych przyczynia się do poprawy pozycji gracza. Więc jeśli gracz z inicjatywą spasował swoją turę (co jest sprzeczne z regułami gry w szachy), ale nadal utrzymywał pozycję wystarczająco silną, aby spowodować cięcia, to obecna pozycja z pewnością generowałaby cięcie również podczas wykonywania ruchu. ( poprawa pozycji dzięki temu nowemu skokowi).

Korzystając z tej techniki, oprogramowanie najpierw przechodzi kolejkę gracza mającego cechę, a następnie inicjuje przycinanie alfa-beta na wynikowych pozycjach, ale na bardziej płytkim poziomie niż bez użycia ruchu zerowego. Jeśli to ograniczone wyszukiwanie spowoduje cięcie, wnioskujemy, że bardziej zaawansowane wyszukiwanie - po wykonaniu ruchu - również spowodowałoby cięcie w tej gałęzi drzewa decyzyjnego. W ten sposób wykrycie cięcia jest szybsze, co przyspiesza proces oceny oprogramowania. Jeśli wyszukiwanie ograniczone nie znajdzie żadnych przerw, oprogramowanie wyszukuje tak głęboko, jak to możliwe.

Podejście to opiera się na dwóch przesłankach. Po pierwsze, wada pominięcia zakrętu musi być większa niż wada przeprowadzenia ograniczonego przeszukiwania. Zakładając, że badanie to nie jest zbyt powierzchowne - w praktyce to badanie jest płytsze o dwa lub trzy półskoki w porównaniu z badaniem klasycznym - generalnie tak jest. Po drugie, badania te będą musiały znaleźć wystarczającą liczbę cięć, aby uzasadnić czas spędzony przy użyciu tej techniki (w przeciwnym razie połączymy te dwa wyszukiwania). W praktyce często się to zdarza.

Jednak niektóre pozycje w połączeniu z zastosowaniem tej metody mogą prowadzić do rażących błędów taktyki. Na tych pozycjach zugzwang gracz, który jest na linii, ma do wyboru tylko złe ruchy i dlatego wolałby raczej pominąć swoją turę niż grę. W tych pozycjach wyszukiwanie ograniczone oparte na „utracie” okrążenia znajduje przerwę, podczas gdy wyszukiwanie klasyczne by go nie znalazło. Konsekwencją jest to, że oprogramowanie ocenia jako dobrą pozycję, która w rzeczywistości może być bardzo zła.

Dlatego konieczne jest ograniczenie stosowania tej techniki optymalizacji i odrzucenie jej w następujących przypadkach:

Inną heurystyczną technikę rozwiązywania problemów z zugzwangiem oferują Omid David i Nathan Netanyahu . W tej metodzie, gdy funkcja wyszukiwania ograniczonego wskazuje przerwę, zamiast przecinania gałęzi w bieżącym węźle, wyszukiwanie jest kontynuowane na zmniejszonej głębokości.

Linki zewnętrzne

  1. ICCA Journal , tom. 16 nr 3, wrzesień 1993
  2. ICGA Journal , wrzesień 2002