Где протестировать свою шахматную программу?

Тема в разделе "Машинное отделение", создана пользователем KM2200, 27 авг 2016.

  1. TopicStarter Overlay

    KM2200 Учаcтник

    • Участник
    Рег.:
    28.03.2011
    Сообщения:
    269
    Симпатии:
    24
    Репутация:
    2
    Оффлайн
    Да уж, 68... Rg5?? это тяжелый случай. Придётся видимо вмонтировать в мою программу некоторые законы пешечного эндшпиля (хотя так делать я не люблю). А вообще хорошая партия. То что ваша программа не поставила мат ферзем это конечно ерунда, исправите. Ясно же, если она видит мат в 9 ходов, то на следующем ходу будет 8 и т.д.
    Я сейчас готовлю новую версию, несколько усиленную. К сожалению без рокировок пока.

    Еще я свою программу откомпилировал под Windows, но она там почему-то стала гораздо медленнее.
    Вы чем под Windows компилируете?
  2. sovaz1997 Учаcтник

    • Участник
    Рег.:
    30.08.2016
    Сообщения:
    649
    Симпатии:
    120
    Репутация:
    3
    Оффлайн
    После добавления эвристики нулевого хода моя программа не увидела мат. Я временно отключил эту эвристику - она пока, к сожалению, не дала большого преимущества. Но сегодня эта эвристика, наконец, не ухудшила силу игры, а даже улучшила. Но ваша пока чаще выигрывает.

    P.S. для компиляции в Windows использую тот же gcc (mingw 64 в Windows) - https://sourceforge.net/projects/mingw-w64/ . Вы же с -O3 компилируете, надеюсь?
  3. TopicStarter Overlay

    KM2200 Учаcтник

    • Участник
    Рег.:
    28.03.2011
    Сообщения:
    269
    Симпатии:
    24
    Репутация:
    2
    Оффлайн
    Да, я тоже взял mingw-w64. C -O3, естественно. Windows у меня на ноутбуке, там 1.3 Ггц против 3.0 на компе, но программа работает аж в 4 раза медленнее.

    Насчёт мата я что-то не понял. Если программа видит мат, она должна его поставить (ну разве только глубина катастрофически упадет). Ваша сначала видела (87. Qd2+ +M9/8 3.3s), а потом почему-то нет (88. Qc3++11.00/10 4.0s).
  4. sovaz1997 Учаcтник

    • Участник
    Рег.:
    30.08.2016
    Сообщения:
    649
    Симпатии:
    120
    Репутация:
    3
    Оффлайн
    У меня была эвристика нулевого хода: https://ru.wikipedia.org/wiki/Эвристика_нулевого_хода - из-за этого проблемы. Эту штуку надо уметь настраивать. Нулевой ход используется почти во всех современных шахматных программах. К сожалению, эвристика не идеальная (это, все же, не полный alpha-beta перебор), но при правильной реализации дает очень сильный прирост к силе игры.
  5. TopicStarter Overlay

    KM2200 Учаcтник

    • Участник
    Рег.:
    28.03.2011
    Сообщения:
    269
    Симпатии:
    24
    Репутация:
    2
    Оффлайн
    Ну тогда настраивайте. Удачи.

    А насчёт Windows я протупил, у меня же и Linux есть на том же ноутбуке, сейчас запустил под Linux, то же самое. Видно всё дело в том, что Intel >> AMD :)
  6. TopicStarter Overlay

    KM2200 Учаcтник

    • Участник
    Рег.:
    28.03.2011
    Сообщения:
    269
    Симпатии:
    24
    Репутация:
    2
    Оффлайн
    Выкладываю обновлённую версию своей программы. Теперь она Rg5?? не пойдет ;)
    Там два файла, один для Linux, другой для Windows.

    Вложения:

    • tigrament.zip
      Размер файла:
      699,4 КБ
      Просмотров:
      482
  7. sovaz1997 Учаcтник

    • Участник
    Рег.:
    30.08.2016
    Сообщения:
    649
    Симпатии:
    120
    Репутация:
    3
    Оффлайн
    KM2200, здравствуйте! А вы планируете добавлять рокировку в свой движок? Было бы интересно провести матч между движками (с дебютной книгой) ;). Я могу немного рассказать о своей реализации рокировки (я там придумал, как удобно хранить возможность рокировки)
  8. TopicStarter Overlay

    KM2200 Учаcтник

    • Участник
    Рег.:
    28.03.2011
    Сообщения:
    269
    Симпатии:
    24
    Репутация:
    2
    Оффлайн
    Да, конечно планирую. Я сейчас просто этим не занимаюсь, много других дел, может ближе к Новому Году сделаю.
  9. sovaz1997 Учаcтник

    • Участник
    Рег.:
    30.08.2016
    Сообщения:
    649
    Симпатии:
    120
    Репутация:
    3
    Оффлайн
    Понял. Хорошо)
  10. sovaz1997 Учаcтник

    • Участник
    Рег.:
    30.08.2016
    Сообщения:
    649
    Симпатии:
    120
    Репутация:
    3
    Оффлайн
    Забавная партийца получилась (Последняя версия Zevra против стабильной). Белые провели в конце партии зачем-то пешку в коня (т. к. все равно был бы размен). У белых на доске 3 коня и пешка, черные успевают провести свою пешку в ферзи, но белые следующим ходом ставят мат пешкой и 3 конями)))

  11. vasa Опытный перворазрядник

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    35.296
    Симпатии:
    17.577
    Репутация:
    583
    Адрес:
    Ростов-на-Дону
    Оффлайн
    zevra - эстет )))
  12. Valen548 Новичок

    • Новичок
    Рег.:
    09.10.2016
    Сообщения:
    47
    Симпатии:
    5
    Репутация:
    1
    Оффлайн
    Если вы запрограммировали в соответствии с протоколом UCI (http://wbec-ridderkerk.nl/html/UCIProtocol.html) то должно работать во Фрице, Арене, Винборде и других прогах.
    Вы с нуля программировали?
  13. sovaz1997 Учаcтник

    • Участник
    Рег.:
    30.08.2016
    Сообщения:
    649
    Симпатии:
    120
    Репутация:
    3
    Оффлайн
    Да, все с нуля. Уже год пишу)). Несколько раз переписывал, последний раз переписывал в Августе и с тех пор развиваю. Да, поддерживает UCI и работает во Fritz, Arena, Cutechess и других. Поддерживает все режимы (турнирный, фиксированное время/фиксированная глубина). Рейтинг - где-то уровень 1-го разряда. Сейчас на CCRL лежит старая версия, новая по моим оценкам прибавила 100-150 пунктов ЭЛО: http://www.computerchess.org.uk/ccrl/404/ . Также, программа лежит на sdchess.ru . Тестировал perft во многих тестовых позициях. Ошибок генератора ходов нет, сейчас работает очень стабильно :).

    Здесь можно скачать последние версии: https://github.com/sovaz1997/Zevra/releases
  14. ArtemonBerdyansk Учаcтник

    • Участник
    Рег.:
    29.12.2016
    Сообщения:
    176
    Симпатии:
    15
    Репутация:
    1
    Адрес:
    Украина Бердянск
    Оффлайн
    Протестируй на игровой площадке чесс ком, по сабжу
  15. Valen548 Новичок

    • Новичок
    Рег.:
    09.10.2016
    Сообщения:
    47
    Симпатии:
    5
    Репутация:
    1
    Оффлайн
    а на какой рейтинг играет ваша программа?
  16. sovaz1997 Учаcтник

    • Участник
    Рег.:
    30.08.2016
    Сообщения:
    649
    Симпатии:
    120
    Репутация:
    3
    Оффлайн
    где-то 1900-2000
  17. Valen548 Новичок

    • Новичок
    Рег.:
    09.10.2016
    Сообщения:
    47
    Симпатии:
    5
    Репутация:
    1
    Оффлайн
    ну не густо, прямо скажем :) Но все равно поздравляю , что программа играет!
    sovaz1997 нравится это.
  18. Michael-13 Господин

    • Участник
    • Старожил
    Рег.:
    18.11.2011
    Сообщения:
    3.068
    Симпатии:
    1.098
    Репутация:
    29
    Оффлайн
    Я вот все жду, когда будет доступна онлайн (или хотя бы без лишних заморочек) вся библиотека движков с CCRL. По аналогии с доступностью 8 уровней Stockfish на Lichess или кучей уровней в игре chessmaster.
    А то сейчас бывает загружу в оболочку Арена какой-нибудь движок, а он не работает. Вроде все делаю нормально, проверяю, что UCI/Winboard верны, однако не работает и все тут.
  19. Michael-13 Господин

    • Участник
    • Старожил
    Рег.:
    18.11.2011
    Сообщения:
    3.068
    Симпатии:
    1.098
    Репутация:
    29
    Оффлайн
    затем, что играть интересно с разными уровнями шахматных программ, а не только с 8. Разными по стилю и мастерству как уровни в чессмастере.
  20. sovaz1997 Учаcтник

    • Участник
    Рег.:
    30.08.2016
    Сообщения:
    649
    Симпатии:
    120
    Репутация:
    3
    Оффлайн
    Там уже полно эвристик, отсечений и выборочных продлений))
    С полным перебором или обычной alpha-beta бы и 1200 ЭЛО не было бы
    Сейчас еще такой парадокс - программа лучше решает тактику, но в реальной игре играет хуже. Я решил, что буду развивать, в первую очередь, тактическую силу движка. Сейчас программа достаточно быстро находит мат до 10 ходов (в миттельшпиле), - в последнем улучшении, в 3 - 10 раз быстрее (LMR со связкой Futility pruning и Razoring). Но пока это не улучшило силу игры по сравнению с версией без всего этого добра.
    Еще бывают трудности в улучшении из-за долгого тестирования движка. Бывает трудно понять, лучше ты сделал или хуже, пока еще не придумал, как лучше тестировать.

    Сейчас у меня времени особо нет на развитие движка, в будущем я буду его развивать в тактическую сторону (много отсечений, быстрая ОФ), а не в стратегическую. Стратегия сама по себе придет при большой глубине.
    —- добавлено: 6 май 2017, опубликовано: 6 май 2017 —-
    UCI/Windoard могут быть верны, но некоторые функции могут быть не реализованы. В моем движке (Zevra) все режимы есть. Часто бывает, что какого-то режима игры нет, отсюда все проблемы. В идеале, конечно, иметь полную таблицу с доступностью движка на определенной платформе (Mac/Linux/Windows), режимами игры и протоколом. Мне самому этого не хватает - приходится долго выбирать движки для тестирования. Впрочем, это - хорошая идея. Я даже думаю, что предложу им это сделать, а заодно и фильтрацию по этим критериям :)
  21. roman57 Учаcтник

    • Участник
    Рег.:
    23.09.2017
    Сообщения:
    116
    Симпатии:
    16
    Репутация:
    1
    Оффлайн
    Мат в 30 ходов! Лучший тест для движка!

    Вложения:

  22. rasimv Начинающий

    • Начинающий
    Рег.:
    27.10.2017
    Сообщения:
    1
    Симпатии:
    2
    Репутация:
    1
    Оффлайн
    Написал простейший клиент-сервер, чтобы запускать UCI-движок (например, stockfish) на другой машине — не на той, на которой доска. Можно, конечно, для этого использовать стандартные средства, но может быть кому-нибудь будет удобен такой вариант:
    https://github.com/rasimv/uci-network-proxy
    Приложению-доске вместо настоящего движка указывается клиент, который имитирует движок, перенаправляя команды на реальный движок, который запущен на другом компьютере. За запуск реального движка и обмен командами на другом компьютере отвечает сервер
    Challenger Spy и sovaz1997 нравится это.
  23. Valen548 Новичок

    • Новичок
    Рег.:
    09.10.2016
    Сообщения:
    47
    Симпатии:
    5
    Репутация:
    1
    Оффлайн
    Я протестирую клиент по мере сил и возможностей.
    А я пока запустил аналитический сайт по шахматам http://chess555.com
    Основная функциональность сейчас- дебютная энциклопедия построенная на играх квалифицированных игроков (2200+), анализ позиции со Стокфишем и поиск партий в базе по позиции.
    Буду благодарен за отзывы по функционалу сайта.
  24. Rom Старожил

    • Участник
    • Старожил
    Рег.:
    12.02.2012
    Сообщения:
    645
    Симпатии:
    276
    Репутация:
    28
    Оффлайн
    Несколько лет назад экспериментировал с одной из ранних версий программы Мурка, которую написал Игорь Коршунов (ник WildCat). В версии 1.2 у программы был реализован только чистый минимакс, никакого ФВ естественно не было. Так вот, с полным перебором и достаточно простой оценочной функцией эта версия программы играла примерно на 1300 эло. Но когда я ей отключил позиционную оценку, оставив только оценку по материалу, и скомпилировал, то сила игры упала примерно до 1000 эло.
  25. Rom Старожил

    • Участник
    • Старожил
    Рег.:
    12.02.2012
    Сообщения:
    645
    Симпатии:
    276
    Репутация:
    28
    Оффлайн
    Цель была - проверить как сильно играет чистый брут-форс. Без всяких оговорок. Оказалось, что играет довольно напористо. Стремится к чему-то. И мат может поставить без проблем. Глубины в пять-шесть полуходов обычно для этого хватает.
  26. Rom Старожил

    • Участник
    • Старожил
    Рег.:
    12.02.2012
    Сообщения:
    645
    Симпатии:
    276
    Репутация:
    28
    Оффлайн
    Так и не всякий безразрядник решит. Поверьте, для уровня 1000 эло игра программы совсем не выглядит дебильной. Программа зевает гораздо меньше человека такого уровня. Она, например, выигрыш материала в 2-3 хода видит, да и мат в 2-3 хода поставит.
  27. Rom Старожил

    • Участник
    • Старожил
    Рег.:
    12.02.2012
    Сообщения:
    645
    Симпатии:
    276
    Репутация:
    28
    Оффлайн
    Личная оценка на основании нескольких партий сыгранных с программой. Поскольку большая точность на таком уровне не требуется, меня такая оценка вполне устраивает.
  28. Rom Старожил

    • Участник
    • Старожил
    Рег.:
    12.02.2012
    Сообщения:
    645
    Симпатии:
    276
    Репутация:
    28
    Оффлайн
    Вполне понимаю. И примерно оценить уровень этой программы мне не так уж и сложно.
  29. Rom Старожил

    • Участник
    • Старожил
    Рег.:
    12.02.2012
    Сообщения:
    645
    Симпатии:
    276
    Репутация:
    28
    Оффлайн
    Относительно своего уровня.
  30. Rom Старожил

    • Участник
    • Старожил
    Рег.:
    12.02.2012
    Сообщения:
    645
    Симпатии:
    276
    Репутация:
    28
    Оффлайн
    Ага :)
  31. Rom Старожил

    • Участник
    • Старожил
    Рег.:
    12.02.2012
    Сообщения:
    645
    Симпатии:
    276
    Репутация:
    28
    Оффлайн
    Примерно 700-800 эло для программы.
  32. Rom Старожил

    • Участник
    • Старожил
    Рег.:
    12.02.2012
    Сообщения:
    645
    Симпатии:
    276
    Репутация:
    28
    Оффлайн
    Потому что на таком уровне говорить о какой-либо точности не стоит. Интересное обсуждение, кстати, на этот счёт было на форуме chessvdk.

    1000 эло - оценочное значение. Я уже упоминал об этом выше. Про +600 я нигде не упоминал.
  33. Rom Старожил

    • Участник
    • Старожил
    Рег.:
    12.02.2012
    Сообщения:
    645
    Симпатии:
    276
    Репутация:
    28
    Оффлайн
    прога 700
    я 700+600=1300
    , но поскольку +600 эло я ранее нигде не упоминал, то значение 700 эло не стоит принимать в расчет - прога скорее всего будет посильнее 700. А на основании тренировочных партий оценочное значение 1000 эло.

    На низовом уровне трудно оценить рейтинги соперников в контексте требований ФИДЕ или ЕВСК.
  34. Rom Старожил

    • Участник
    • Старожил
    Рег.:
    12.02.2012
    Сообщения:
    645
    Симпатии:
    276
    Репутация:
    28
    Оффлайн
    +600, это ваше предположение, остальное просто расчёт.
  35. Rom Старожил

    • Участник
    • Старожил
    Рег.:
    12.02.2012
    Сообщения:
    645
    Симпатии:
    276
    Репутация:
    28
    Оффлайн
    Нет, прогу я оценил ещё вчера. А сейчас просто произвел небольшое арифметическое действие для ваших, а не для своих условий.

Поделиться этой страницей