Автоматический подбор параметров движка

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

  1. Vertu Старожил

    • Участник
    • Старожил
    Рег.:
    22.12.2006
    Сообщения:
    972
    Симпатии:
    44
    Репутация:
    4
    Оффлайн
    Рыбка - Фриц (3 ply)
    +21-1=1
  2. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    У разных програм три полухода это совсем разные вещи. Кто-то с такой глубиной ничего не режет. Кто-то режет очень много. У кого-то мощный ФВ, у кого-то слабый. Разные программы с такой глубиной тратят разное время на ход, совсем разное.

    И с такой глубиной страдает реализация перевеса. Как минимум нужны ЭБ.
  3. Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    Интересно, к какому стилю? Или будет 10 000 партий одного шахматиста? :)
  4. Vertu Старожил

    • Участник
    • Старожил
    Рег.:
    22.12.2006
    Сообщения:
    972
    Симпатии:
    44
    Репутация:
    4
    Оффлайн
    а если на одном полуходе играть? Это тоже сильно разные вещи?
  5. Orlov Учаcтник

    • Участник
    Рег.:
    27.02.2007
    Сообщения:
    177
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Сергей!
    Если провести сравнение между движками на 100 позициях WM-test, то я бы не говорил о разнице в 2% :)
    Правда я тестировал в режиме 15 сек на ход. Вот если бы найти такую базу на пару тыс. позиций! Тест реально отражает силу движков. Во всяком случае я протестировал около 10 движков и все они выстроились по ранжиру :)
    Кстати, Вы не подскажете как собрать в автоматическом режиме пару тысяч EPD позиций из качественных компьютерных партий?
    Спасибо.
  6. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Какие-же тут 2%, когда движок играющий на 300 пунктов Эло слабее легко может показать по WM-Test лучший результат... По результатам WM-Test процент даже примерно не прикинуть.

    Силу он не показывает, и это тактический тест - его результаты от ОФ вообще практически не зависят.
  7. Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    Никаких, особенно достоверных, цифр я не получил. У меня на всех партиях Каспарова получалось:
    1 Программы распределили места, в соответствии с рейтингом (иключая Тогу, у которой хистори всё портил)
    2 Пропорциональности, между разницей в % отгадываемых ходов и разницей рейтингов программ, не было. То есть, я не мог определить сколько точно эло дают 2%. Кстати, мне показалось, что 2% это значительно больше 100 пунктов (примерно, как между Rybka-й и SOS)
  8. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Тогда тестовых позиций надо еще больше.
  9. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    А зачем??? Возьмите любую оболочку, и поставьте партии на поиск ошибок с нулевым порогом. Потом при помощи поей программы посчитайте процент совпадений.
  10. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Orlov, Прикинуть как зависит процент совпадений от силы вы можете по этим данным.
    http://kasparovchess.crestbook.com/viewtopic.php?id=1037

  11. Orlov Учаcтник

    • Участник
    Рег.:
    27.02.2007
    Сообщения:
    177
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Благодарю за ответы. Но WM тест как мне показалось не только тактический, там много позиционных решений.
  12. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Нет, в WM все позиционные решения основаны на тактике. Программы именно досчитываются до конкретного результата. В нем ОФ ничего не значит - любая программа досчитавшись до конкретной позиции понимает что это решение.

    Есть исключения - например первая позиция (Рети-Алехин). Но не факт что она корректна.
  13. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Есть такая программа, pgn2epd. Не то pgn2fen. В общем, Гуглом найдёте...
  14. krey Михаил Кройтор

    • Команда форума
    Рег.:
    10.04.2006
    Сообщения:
    3.709
    Симпатии:
    50
    Репутация:
    1
    Адрес:
    Кишинев
    Оффлайн
    есть и то, и другое :)
  15. TopicStarter Overlay

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Можно попробовать вместо ограничений по времени использовать ограничения глубины или количества позиций. Так можно будет проводить итерации намного быстрее.
  16. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    :D У меня как раз и использует уже давно при расчете ограничение на количество узлов (Nodes) :)
  17. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Вспомнил свой аргумент против настройки по базе позиций.
    1. Это подмена. Программ должна играть патию, а не решать позиции.
    2. Программа научится играть хорошо в позициях случившихся в партих гроссов, но всё-равно у неё останется другой стиль игры, и получать в практических партиях она будет не эти позиции, а другие, которые она играть будет уже хуже.
  18. TopicStarter Overlay

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Аргументы против, конечно есть, но попробовать стоит.
  19. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Тоже самое время для той-же точности, есть аргументы против, сходимость у меня есть и на тестовых матчах :)
    Можно персоналии гроссов так настраивать. А поиск хорошей ОФ я наверно пока так делать не буду.

    У меня до сих пор продолжает сходиться. Подняла стоимость шашек e1, d4, f6,
    еще уменьшила разницу между сильнейшими полями и слабейшими.

    Не сходится только седьмой ряд (кроме поля a7), а так понял вес этих трех полей в пределах моей точности на силу не влияет.
    Шестой ряд (b6,d6,f6) сходится, но очень медленно. Видимо очень мало влияние весов на силу.
  20. Orlov Учаcтник

    • Участник
    Рег.:
    27.02.2007
    Сообщения:
    177
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Запустил твою прогу на бесхозном пентиуме 3 600-м. Когда нужно будет тормознуть - скажешь.
    Пахать будет без перерыва.
  21. Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    Точнее, 5 ночей....Что-то у меня очень долго получается. Первые результаты будут в понедельник.
  22. TopicStarter Overlay

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    ОК

    А у меня первая закончилась этой ночью. Остальные трохи побыстрее пойдут.
    Дефолтную обогнали только две новые. Это уже больше похоже на правду :)

    Но я свою наверно брошу, а буду переделывать под лимит в 10000 позиций на ход.
  23. Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    Быстро! Комп, наверное, круглосуточно работал. У меня пока по ночам только.....
    А победит у меня, наверное, та версия, которую я в ручную настроил (от старой версии+ повысил ценность для слонов на b2 и g2 :) )
  24. TopicStarter Overlay

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    И все?
  25. Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    Не помню точно...Мож ещё что было :rolleyes:
  26. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Есть способ значительно увеличить точность при том-же числе партий.
    У каждой особи запоминаем число итераций которая она существует, и нарастающим итогом (в обратном порядке) запоминаем результат.


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

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

    Что это дает - хороших новых особей на каждой итерации мало, а правильной сортировкой старых особей - мы оставляем действительно сильнейших.

    То есть например удаление в группе особей существующих две и более итераций уже будет производится по результатам в два раза большего количества партий и т.д.

    То-же самое и с тестами на наборе позиций из партий гроссов (совпадение ходов)
    На каждой итерации используем новый набор партий. И так-же запоминаем результат нарастающим итогом.

    Можно еще сортировать особи по общему проценту (по результатам всех итераций на которых они существовали), но тогда если случайно достанется простой набор позиций с большим процентом совпадений - то все старые особи будут незаслуженно убиты слабыми новыми.
  27. Orlov Учаcтник

    • Участник
    Рег.:
    27.02.2007
    Сообщения:
    177
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Спасибо! Может поможете ее запустить?
    Стандартный запуск не проходит:
    pgn2epd.exe test.pgn test.epd
    Да и вообще ничего не происходит. Просто стартует консольное окно и делай с ним што хош:)
  28. Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    Поднапрягся и вот:

    1. 28.prs 58
    2. 13.prs 53
    3. 7.prs 44
    4. 21.prs 42
    5. 26.prs 38
    6. 18.prs 32
    7. 27.prs 31
    8. 23.prs 27
    9. 0.prs 27
    10. 20.prs 25
    11. 17.prs 16
    12. 24.prs 11
    13. 11.prs 10
    14. 19.prs -6
    15. 22.prs -7
    16. 6.prs -9
    17. 5.prs -9
    18. 29.prs -10
    19. 12.prs -12
    20. 16.prs -13
    21. 8.prs -13
    22. 25.prs -14
    23. 3.prs -15
    24. 15.prs -16
    25. 4.prs -24
    26. 10.prs -34
    27. 2.prs -50
    28. 9.prs -53
    29. 1.prs -64
    30. 14.prs -65

    У 28.prs конь ценнее слона.....Может запретить генерировать ценность коня большую, чем слона?
  29. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Зачем? У слона есть бонусы за возможности, у коня наоборот штрафы за углы и край доски.
  30. Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    В принципе, правильно. Просто версия такая попалась. У неё, напр, на поле g3 конь имеет перевес, так ещё слон меньше ценится....

    Кстати, когда сдача лучших версий? :) Я думаю, не менее 2 недель нужно тестить (с моим графиком), чтобы что-то стоящее появилось.
  31. TopicStarter Overlay

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    ОК, через две недели, в понедельник.
  32. Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    Пожалуй, где-то так. Хотя, возможно, и быстрее, если получится комп и на день ставить...Для реальной программы будет совсем долго таким методом....
  33. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Оттестировал метод из поста #481
    Сам по себе он улучшает сходимость в пару раз, но в сочетании с еще одним методом - ускорение от четырех раз (если достаточно партий, нашли оптимум) до в 100 раз, если партий недостаточно...
  34. TopicStarter Overlay

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Дошел до 2000 настроек в режиме 30 в 10 кругов при контроле 1000 позиций на ход. Они все оказались совсем убитыми.

    Теперь попробую вариант 100 в 10 кругов. Здесь уже точность измерений будет приемлемая, но возможно еще придется увеличивать контроль.
  35. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Используйте перенаправление потоков ввода-вывода. Эта программа - стандартный фильтр, в терминологии юникса.

    Например, у меня есть файл kk13.pgn (из дистрибутива Winboard).
    Запускаем:

    pgn2epd.exe < kk13.pgn > test.epd

    И в результате получаем файл test.epd со всеми позициями и нужными ходами.
    Если запустить без перенаправления вывода, вот так:

    pgn2epd.exe < kk13.pgn

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

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