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

Discussion in 'Машинное отделение' started by WildCat, 16 Feb 2007.

  1. Vertu
    Оффлайн

    Vertu Старожил

    Репутация:
    4
    Рыбка - Фриц (3 ply)
    +21-1=1
     
  2. NS
    Оффлайн

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

    Репутация:
    3
    У разных програм три полухода это совсем разные вещи. Кто-то с такой глубиной ничего не режет. Кто-то режет очень много. У кого-то мощный ФВ, у кого-то слабый. Разные программы с такой глубиной тратят разное время на ход, совсем разное.

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

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

    Репутация:
    3
    Интересно, к какому стилю? Или будет 10 000 партий одного шахматиста? :)
     
  4. Vertu
    Оффлайн

    Vertu Старожил

    Репутация:
    4
    а если на одном полуходе играть? Это тоже сильно разные вещи?
     
  5. Orlov
    Оффлайн

    Orlov Учаcтник

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

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

    Репутация:
    3
    Какие-же тут 2%, когда движок играющий на 300 пунктов Эло слабее легко может показать по WM-Test лучший результат... По результатам WM-Test процент даже примерно не прикинуть.

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

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

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

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

    Репутация:
    3
    Тогда тестовых позиций надо еще больше.
     
  9. NS
    Оффлайн

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

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

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

    Репутация:
    3
    Orlov, Прикинуть как зависит процент совпадений от силы вы можете по этим данным.
    http://kasparovchess.crestbook.com/viewtopic.php?id=1037

     
  11. Orlov
    Оффлайн

    Orlov Учаcтник

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

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

    Репутация:
    3
    Нет, в WM все позиционные решения основаны на тактике. Программы именно досчитываются до конкретного результата. В нем ОФ ничего не значит - любая программа досчитавшись до конкретной позиции понимает что это решение.

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

    WinPooh В.М. Staff Member

    Репутация:
    95
    Есть такая программа, pgn2epd. Не то pgn2fen. В общем, Гуглом найдёте...
     
  14. krey
    Оффлайн

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

    Репутация:
    1
    есть и то, и другое :)
     
  15. WildCat
    Оффлайн

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

    Репутация:
    0
    Можно попробовать вместо ограничений по времени использовать ограничения глубины или количества позиций. Так можно будет проводить итерации намного быстрее.
     
  16. NS
    Оффлайн

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

    Репутация:
    3
    :D У меня как раз и использует уже давно при расчете ограничение на количество узлов (Nodes) :)
     
  17. NS
    Оффлайн

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

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

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

    Репутация:
    0
    Аргументы против, конечно есть, но попробовать стоит.
     
  19. NS
    Оффлайн

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

    Репутация:
    3
    Тоже самое время для той-же точности, есть аргументы против, сходимость у меня есть и на тестовых матчах :)
    Можно персоналии гроссов так настраивать. А поиск хорошей ОФ я наверно пока так делать не буду.

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

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

    Orlov Учаcтник

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

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

    Репутация:
    3
    Точнее, 5 ночей....Что-то у меня очень долго получается. Первые результаты будут в понедельник.
     
  22. WildCat
    Оффлайн

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

    Репутация:
    0
    ОК

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

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

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

    Репутация:
    3
    Быстро! Комп, наверное, круглосуточно работал. У меня пока по ночам только.....
    А победит у меня, наверное, та версия, которую я в ручную настроил (от старой версии+ повысил ценность для слонов на b2 и g2 :) )
     
  24. WildCat
    Оффлайн

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

    Репутация:
    0
    И все?
     
  25. Fruit
    Оффлайн

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

    Репутация:
    3
    Не помню точно...Мож ещё что было :rolleyes:
     
  26. NS
    Оффлайн

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

    Репутация:
    3
    Есть способ значительно увеличить точность при том-же числе партий.
    У каждой особи запоминаем число итераций которая она существует, и нарастающим итогом (в обратном порядке) запоминаем результат.


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

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

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

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

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

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

    Orlov Учаcтник

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

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

    Репутация:
    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
    Оффлайн

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

    Репутация:
    3
    Зачем? У слона есть бонусы за возможности, у коня наоборот штрафы за углы и край доски.
     
  30. Fruit
    Оффлайн

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

    Репутация:
    3
    В принципе, правильно. Просто версия такая попалась. У неё, напр, на поле g3 конь имеет перевес, так ещё слон меньше ценится....

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

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

    Репутация:
    0
    ОК, через две недели, в понедельник.
     
  32. Fruit
    Оффлайн

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

    Репутация:
    3
    Пожалуй, где-то так. Хотя, возможно, и быстрее, если получится комп и на день ставить...Для реальной программы будет совсем долго таким методом....
     
  33. NS
    Оффлайн

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

    Репутация:
    3
    Оттестировал метод из поста #481
    Сам по себе он улучшает сходимость в пару раз, но в сочетании с еще одним методом - ускорение от четырех раз (если достаточно партий, нашли оптимум) до в 100 раз, если партий недостаточно...
     
  34. WildCat
    Оффлайн

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

    Репутация:
    0
    Дошел до 2000 настроек в режиме 30 в 10 кругов при контроле 1000 позиций на ход. Они все оказались совсем убитыми.

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

    WinPooh В.М. Staff Member

    Репутация:
    95
    Используйте перенаправление потоков ввода-вывода. Эта программа - стандартный фильтр, в терминологии юникса.

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

    pgn2epd.exe < kk13.pgn > test.epd

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

    pgn2epd.exe < kk13.pgn

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