-
Data: 2012-05-03 12:51:31
Temat: Re: program stockfish
Od: " M.M." <m...@g...SKASUJ-TO.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]<f...@g...SKASUJ-TO.pl> napisał(a):
> - no ale normalnie pewnie nie przeszukuje sie kompletnie wszerz
> tylko wybiorczo w glab, nie?
> - tu jest 6 ruchow czy 6 tur ?
Jeśli przeszukujemy po to aby wyznaczyć optymalny ruch, a nie po to
aby sprawdzić ile drzewo ma pod-węzłów, to okazuje się że pewnych
gałęzi nie trzeba przeszukiwać. O niektórych gałęziach z jakimś
prawdopodobieństwem można powiedzieć że są 'bezsensowne' bez konieczności
przeszukiwania. Wykorzystuje się do tego tzw techniki przycinania. Różne
techniki mają różną skuteczność. Niektóre techniki dają blisko 100% pewności
że dalsze przeszukiwanie nie ma sensu.
W niektórych grach taką przykładową techniką jest null-move. Wykonujemy
dwa ruchy pod rząd nie dając przeciwnikowi do wykonania ani jednego
ruchu. Jeśli w dwóch ruchach nie udało się nam uzyskać wyraźniej przewagi
to wnioskujemy że gałąź jest tak zła, że nie ma sensu jej analizować.
Zwykle wykonujemy ruchy które poprawiają naszą sytuację, więc jeśli w
dwóch ruchach nie udało się poprawić, to prawdopodobnie trafiliśmy na
przegraną pozycję.
Czasami mówi się że dzisiejsze programy szachowe mają średni poziom
rozgałęzienia cztery ruchy na węzeł. Nie lubię tego oszacowania, ponieważ
moim zdaniem jest zbyt uproszczone.
> nie jest to az takie hiperzlozone, szczerze mowiac, jak sie
> ma troche pojecia (i umie programowac wogole), jest tez
> dosyc ciekawe
Tak się wydaje że to nie jest takie trudne. Np. mój program prawie w
każdej wersji miał jakiś drobny błąd w generatorze ruchów. Jeśli nie
wspomagamy się zewnętrznymi narzędziami, to trzeba napisać 3-4 wersje
najlepiej od zera i sprawdzić czy dają takie same wyniki. A przecież
generator ruchów to jedna z najprostszych rzeczy w programie szachowym :)
Ponadto mój program nie miał nawet szans na dobrą grę, ponieważ nie
wiedziałem o istnieniu choćby takiej techniki jak qsearch. Technika ta polega
na tym, analizuje tylko ważne ruchy plus jeden sztuczny ruch którym
jest pas. W qsearch gracz ma prawo do wykonania ważnego ruchu (np.
bicia, albo promocji pionka na damę) i ma prawo do spasowania.
Takich technik jak qsearch jest więcej. Nie sposób aby jeden programista w
ciągu jednego życia wymyślił je wszystkie sam. Trzeba skądś się dowiedzieć
przynajmniej o najważniejszych technikach. Wtedy się zgodzę że napisanie
podstawowego programu do grania w szachy nie jest takie hipertrudne.
Jednak podstawowy program od dobrego programu dzieli przepaść. Przerobienie
podstawowego programu na bardzo dobry program jest zawsze hipertrudne.
Trudność ma kilka swoich źródeł:
1) Techniki często poprawiają grę minimalnie, jeśli są napisane niezbyt
wydajnie to stosowanie ich się nie opłaci.
2) W związku z pierwszym trzeba napisać 50-100 technik bez błędów przy
zachowaniu bardzo wydajnego kodu, często stosuje się wstawki w asemblerze.
3) Techniki często z sobą nie współpracują, z dodaniem każdej nowej techniki
trzeba przeanalizować wszystkie pozostałe. Jeśli technika w jakiś
etapach gry, albo w jakiś układach, albo w jakiś stanach przeszukiwania
drzewa gry nie działa, to trzeba te sytuacje odfiltrować ifami.
4) Każda technika ma kilka do nawet kilkudziesięciu parametrów. Łącznie
w programie szachowym może być np. 200 bardzo ważnych parametrów i
2tys mniej ważnych. Trzeba ustalić wartości tych parametrów w pobliżu
optimum.
> aczkolwiek, sam jak mowielem bardziej interesuje sie grami
> 'video' z tego chyba przede wszystkim powodu ze mz lepiej sie
> w nie gra,
I lepiej sprzedaje :)
> co do szachow to jedyny program szachowy jaki kojarze to
> 'collosus ches iles tam zero' (2.0? 3.0?) - dolaczany na
> cartridge'u do commodore (fajne bylo to ze jak mu sie
> ustawilo sekunde czasu max na myslenie to slabo grał (!))
Jeśli masz ochotę, to może spróbuj pograć z tym programem:
http://www.tckerrigan.com/Chess/TSCP
To jest podstawowy program szachowy, a właściwie to jest
minimalny program szachowy - ale co ważne poprawny i
kompletny i bez błędów. Jest dostępny z dobrze okomentowanym
źródłem. Można mu regulować głębokość przeszukiwania drzewa gry.
Ustaw np. na jeden ruch i zagraj. Potem na dwa ruchy... :)
Można do tego programu podpiąć GUI, ale ja wolę tekstowy i
na zwykłej planszy przestawiać bierki :)
Pozdrawiam
P.S.
A na stronie brodacza głębokość 6 oznacza że w sumie obie strony zrobiły 6
ruchów, czyli każda ze stron po 3 ruchy.
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Następne wpisy z tego wątku
- 03.05.12 20:08
- 04.05.12 00:51 M.M.
- 08.05.12 16:10 zażółcony
- 08.05.12 17:05 Edek Pienkowski
- 08.05.12 22:37 M.M.
- 08.05.12 23:16 Michoo
- 09.05.12 10:11 Edek Pienkowski
Najnowsze wątki z tej grupy
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
Najnowsze wątki
- 2025-05-03 gazowe kuchnie są znacznie bardziej szkodliwe dla zdrowia, niż dotychczas sądzono
- 2025-05-03 Czyli jednak elektryki są TANIE i powszechnie dostępne dla obywateli
- 2025-05-03 Elektryki do Morskiego Oka do utylizacji
- 2025-05-03 Crash testy na publicznej drodze - 4 BMW zderzone
- 2025-05-03 pojebane Google
- 2025-05-03 Brednie w wiki - hasło Dehomag
- 2025-05-03 gazowe kuchnie są znacznie bardziej szkodliwe dla zdrowia, niż dotychczas sądzono
- 2025-05-03 Chiny => Koordynator Produkcji / Przedstawiciel ds. rozwoju produktu <
- 2025-05-03 Gdańsk => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-05-03 Warszawa => Frontend Developer (Angular13+) <=
- 2025-05-02 Gliwice => Business Development Manager - Network and Network Security
- 2025-05-02 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2025-05-02 Polska => Senior Key Account Manager <=
- 2025-05-02 Warszawa => Senior Programmer C <=
- 2025-05-02 Gdańsk => Team Lead Data Engineer (Snowflake) <=