eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming[c] doom sourceRe: program stockfish
  • 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/

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: