Теория шахматного программирования

Тема в разделе "Машинное отделение", создана пользователем WildCat, 16 фев 2008.

  1. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
  2. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
  3. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Я предлагал давать ссылки на "хорошие" ресурсы. А там все в кучу свалено.
    Лучше достань оттуда все самое ценное и здесь дай прямые ссылки.
     
  4. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
  5. дуп
    Оффлайн

    дуп Учаcтник

    Репутация:
    0
    Чего то на первой ссылке (wikispaces.com) у меня dr Web сработал. Лицензионный, за два года ни разу не подвел. У других то как ?
     
  6. ShAV
    Оффлайн

    ShAV Зарегистрирован

    Репутация:
    0
    Отличная тема. Давно хотел сам ее создать. Только вот рускоязычных сайтов бы подкинули, а то в английском не все сильны. У меня с английским особых проблем нет, но приятнее читать на родном. :)
     
  7. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
  8. WinPooh
    Онлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
  9. Valergrad
    Оффлайн

    Valergrad Учаcтник

    Репутация:
    0
    А есть где-нибудь статьи про распараллеливание движков, или исходники какого-либо многопроцессорного движка?
     
  10. krey
    Оффлайн

    krey Михаил Кройтор Команда форума Команда форума

    Репутация:
    1
  11. dan77790
    Оффлайн

    dan77790 Учаcтник

    Репутация:
    0
    а что, на русском языке ничего нет ?
     
  12. bankuss
    Оффлайн

    bankuss Александр баннер

    Репутация:
    6
    dan77790 наши программисты не любят писать статьи на такие темы.:D
     
  13. дуп
    Оффлайн

    дуп Учаcтник

    Репутация:
    0
    Нет ли у кого чего-нибудь по теме "Альтернатива альфа-бете" ? Наверняка ведь пытались люди.
    Гуглой найти ничего не получилось. Попадаются в основном одни разговоры типа " даже и не дергайтесь". Хотелось бы чего-нибудь с кодом посмотреть.
     
  14. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
  15. дуп
    Оффлайн

    дуп Учаcтник

    Репутация:
    0
    Спасибо. Хотя я думаю, что и MTD(f) и NegaScout (NS :)) это просто модификации альфа-беты. Про SSS впервые слышу, пойду читать, спасибо.
     
  16. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    MTD(f) - принципиально другой алгоритм. SSS* очень похоже MTD(f), и "в среднем" хуже его. Есть еще DUAL*, и есть еще предшественники MTD(f)
     
  17. Марджорин
    Оффлайн

    Марджорин Учаcтник

    Репутация:
    0
    А нет ли чего-либо для начинающих програмистофф на русском?
     
  18. phisey
    Оффлайн

    phisey Модератор

    Репутация:
    0
    Есть такая книжка 'Программирование шахмат и других логических игр' Евгения Корнилова. Она именно для начинающих программистов в шахматах. То есть представление о программировании неприменительно к шахматам надо иметь.

    + сама шахматная программа там слабая, но про алгоритмы рассказывается.
     
  19. krey
    Оффлайн

    krey Михаил Кройтор Команда форума Команда форума

    Репутация:
    1
    касательно этой книги - по моему личному мнению книга написана плохо. Приводятся алгоритмы, но не объясняется, почему эти алгоритмы работают. Автор скатывается на ту самую дорожку, а которой он упоминает в самом начале книги негативно.
     
  20. Марджорин
    Оффлайн

    Марджорин Учаcтник

    Репутация:
    0
    Тоесть,как я поняла,чтобы быть шах.программистом-нужно иметь образование программиста в частности?
     
  21. phisey
    Оффлайн

    phisey Модератор

    Репутация:
    0
    Да иметь навыки программирования.
     
  22. Mustitz
    Оффлайн

    Mustitz баннер

    Репутация:
    36
    Надо уметь программировать
     
  23. bankuss
    Оффлайн

    bankuss Александр баннер

    Репутация:
    6
    темы про программирование шахмат умерли? ))

    тогда вопрос, чтобы расшевелить...
    как сделать не сильно навороченный список фигур? я свой старый исходник поднял... ну там сканирование доски у меня. вроде как не по "феншую". типа лишние проверки идут, с другой стороны, экономия на обновлении списка фигур.
    в одном месте теряем, в другом находим. но все таки со списком удобней другие места программы реализовывать.

    и еще в дополнение, есть какая-нибудь циферка подсчитанных узлов для проверки генератора взятий? типа "perft capture".
     
  24. EvgeniyZh
    Оффлайн

    EvgeniyZh Учаcтник

    Репутация:
    15
    А почему список фигур а не битбоард?
     
  25. Осипов Юрий
    Оффлайн

    Осипов Юрий Учаcтник

    Репутация:
    11
    Реализацию списков фигур можно посмотреть в исходниках Фрукта. Списки удобны, но лучше в сочетании с битбоардами. В генераторах ходов и оценке организуем цикл по списку фигур определенного типа, а дальше получаем битбоард возможных ходов для генерации ходов, оценки подвижности, атак на другие фигуры и на короля, всяких там xrays и взятий в see. Это - оптимальное решение, но только для 32-битного движка. Для 64 бит лучше оставить только битбоарды.
     
  26. bankuss
    Оффлайн

    bankuss Александр баннер

    Репутация:
    6
    потому что движок старинный, и сделан на пробу, что смогу что-то сваять ))) никаких битбордов не использовал.
    переделывать на битборды - это тоже самое что с нуля писать. да и разбираться в них надо... я принцип знаю, как оно там работает, но свою реализацию делать - это изобретать велосипед.

    кстати скорость perft генератора у меня не такая уж и маленькая получилась. сравнивал с Греко, мой на глубину 6 считает за 8.9 сек. а битбордовый Греко 5.5 за 10 сек. (32 бит версии).

    по проверке взятий, я так понимаю инфы нет... ну ладно.
     
  27. bankuss
    Оффлайн

    bankuss Александр баннер

    Репутация:
    6

    вот в такой позиции движок начинает чудить:
    [​IMG]
    не пойму как может в PV попадать ход с плохой оценкой (потеря материала). поиск - стандартная альфа-бета + ФВ.
    ФВ отключал - только оценку делал, тоже самое. уже не знаю куда и копать.... все перепроверил.
    может у кого встречалось такое на этапах тестирования ))
     
  28. Осипов Юрий
    Оффлайн

    Осипов Юрий Учаcтник

    Репутация:
    11
    Проверьте сортировку ходов в корне поиска в случае шаха.
     
  29. bankuss
    Оффлайн

    bankuss Александр баннер

    Репутация:
    6
    нашел в чем косяк был - маленькое значение константы infinity. увеличил в 3 раза - косяк исчез. )
     
  30. WinPooh
    Онлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    Раз победили Греку, попробуйте теперь сразиться с монстрами былых времён. Вам сюда: http://kasparovchess.crestbook.com/threads/1806/
     
  31. bankuss
    Оффлайн

    bankuss Александр баннер

    Репутация:
    6
    неее... битбордовый движок все равно не обгонишь )
     
  32. WinPooh
    Онлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    У Греки исполнитель ходов под perft не оптимизирован - там обновляется много дополнительной информации (хэш-код позиции, материал). Если эти обновления убрать, пару-другую лишних knps в perft можно получить.
    Кстати, моя лучшая считалка perft была на списках фигур, без битбордов. Плюс набор специальных таблиц для атак. Скорость была раза в два лучше, чем у обычной GreKo.
     
  33. Sashko
    Оффлайн

    Sashko Заблокирован

    Репутация:
    326
  34. Zayats
    Оффлайн

    Zayats Без определенного статуса

    Репутация:
    156
    http://www.computerchess.org.uk/ccrl/4040/

    Не совсем топ-уровень. И не 72 часа. Также не может не удивлять стойкое мнение авторов, что все существующие программы анализируют варианты на одинаковую глубину, без раздачи приоритетов.
     
  35. bankuss
    Оффлайн

    bankuss Александр баннер

    Репутация:
    6
    для такой позы какие эвристики более эффективны?
    8/7p/5k2/5p2/p1p2P2/Pr1pPK2/1P1R3P/8 b - - 0 1

    продления на шахах, и продления для проходных, я так понимаю, или что-то еще можно?
    никак не хочет движок кушать на b2 :chess:

    ну и хорошая глубина перебора нужна, чтобы досчитаться до нужных позиций, в статике такую позицию не решить.
     
    SDChess нравится это.