-
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
- 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)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-01-12 USB3.x->HDMI/DP ze sterownikami w win11
- 2025-01-12 Jak na naszych oczach odradza się cenzura :-)
- 2025-01-11 Koszty prowadzenia firmy za granicą
- 2025-01-11 19 migrantów
- 2025-01-11 300km/h
- 2025-01-11 Kongres USA uchwalił "Prawo babci Pawlakowej" na MTK [Lex Gradma Pawlak]
- 2025-01-11 Riga => Specjalista ds. public relations <=
- 2025-01-11 Przestępca wyborczy Musk nadciąga nad Tuskistan?
- 2025-01-11 Białystok => Delphi Programmer <=
- 2025-01-09 Jaka nawigacja z asystentem zmiany pasa ruchu?
- 2025-01-10 Coś dusi.
- 2025-01-09 akumulator napięcie 12.0v
- 2025-01-10 Białystok => Architekt rozwiązań (doświadczenie w obszarze Java, A
- 2025-01-10 Warszawa => Software .Net Developer <=
- 2025-01-10 Białystok => Application Security Engineer <=