Меряем позиционную силу программ

Тема в разделе "Машинное отделение", создана пользователем Fruit, 11 ноя 2006.

  1. TopicStarter Overlay

    Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    Уже писал про свой эксперимент. А сюда собираюсь выкладывать результаты.
    Условия следующие: все партии Каспарова смотрятся прогой на скорости 300 миллисек на ход за Каспарова в автоматическом режиме. При этом, первые 5 ходов не рассматриваются. Далее подсчитываю количество совпадений с помощью проги, которую написал NS.

    Тога 1.2.1а - Каспаров белые 12816/26730 = 47,946%
    Тога 1.2.1а - Каспаров чёрные 12464/26010 = 47,920%
    Всего 25280/52740 = 47,933%


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

    P.S. Понимаю, что партий мало и нужно больше. :)
  2. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Остальные тесты переигрываешь? Теперь с нулевым окном?
    Для точности в 0.1% партий достаточно.
  3. TopicStarter Overlay

    Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    Да, теперь переигрываю заново...Прошлый, не совсем верный результат для Тоги был 47,583%.....А вот результат рыбки, кажется, совсем не изменится (уже все партии белыми она посмотрела)
  4. NS Нефёдов Сергей

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

    Fruit Александр

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

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

    Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    Ага, я это понял. Если оценка не менялась, то вариант программы не приводился и сам ход из подсчёта исключался.
  8. TopicStarter Overlay

    Fruit Александр

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

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

    Fruit Александр

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

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    У меня глупая ошибка, время положительное, при фиксированном времени на ход я сравниваю Время-1000 и Время-Время/100. И даю большее... При контроле меньше 1000 мс. на ход Время-1000 становится бОльшим, и при этом очень большИм :(
    сделано было потому что PV у меня может выводится не сразу, а только после того как сработает команда stop или закончится время, и при найденном решении (на наборах тестовых позиций) ШреддерКлассик его не засчитывал, так как по его мнению было потрачено чуть больше отведенного времени.
    Я решил вычесть меньшее из 1% и 1 сек. И немного промахнулся :(
  12. TopicStarter Overlay

    Fruit Александр

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

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

    Fruit Александр

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

    Rybka 2.1c Каспаров белыми 12966/26730 = 48,507%
    Rybka 2.1c Каспаров чёрными 12760/26010 = 49,058%
    Всего 25726/52740 = 48,779%

    Время убивается по страшному. На тестирование каждой проги уходит около 11 часов. :(
  15. TopicStarter Overlay

    Fruit Александр

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

    Loop 10.32f Каспаров белыми 12984/26730 = 48,575%
    Loop 10.32f Каспаров чёрными 12615/26010 = 48,501%
    Всего 25599/52740 = 48,538%
  16. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Интересно насколько будут другими результаты какого-нибудь слабого движка.
  17. Мастер Икс Василий Щепетнев

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    3.616
    Симпатии:
    282
    Репутация:
    19
    Адрес:
    Деревня Великая Гвазда
    Оффлайн
    Или более сильного?
    Предложенная метода определяет не позициооную силу, а сродство шахматного движка к стилю Каспарова (тут хорошо бы по немецки длинное умное научное слово (донерветерхендехохкаспаровшах).
    Каспаров не идеал позиционного игрока (никто не идеал), рассматривая все партии, можно найти множество не-лучших ходов. В ряде партий Каспаров стремился к короткой ничьей (например, в первом матче К-К), что не есть идеал., иногда играл авантюрно, а еще есть детские партии, блиц...
    Если через n лет прогресс дойдет до создания комплекса шахпрограмма-суперкомпьютер с рейтингом в 4000, то совпадений с ходами Г.К может быть куда меньше, чем у Рыбки-2006.
    В общем, Каспаров - человек, и человеческое ему не чуждо.

    Другое дело, когда пытаются имитировать стиль Каспарова или других игроков (как персоналии Чесмастера, Дипсиенга и некоторых других движков). С точки зрения шахматиста-любителя подобная функция - персоналии - очень привлекательна, вот только бы она хоть в какой-то мере отражала суть.
    Проводить тюнинг по методе NS, наверное, очень полезно.
    Только опять-таки, пожалуй, следует выбрать не все партии, а сыгранные в расцвете сил -раз, и где была борьба - два.
  18. NS Нефёдов Сергей

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

    Чтоб уменьшить зависимость от стиля - можно тестировать либо на партиях нескольких гроссов (есно партии нужно брать сыгранные на пике силы), либо тестировать людей на анализе несколькими сильными движками.



    Что получаем в результате тестирования:
    1. Если тестируемый играет значительно слабее тестирующего - то получаем показатель именно силы игры, стиль игры практически на результаты не влияет.
    2. Если сила тестируемого приближается к силе тестируемого то получаем показатель - близость стилей, силу уже достоверно не определить.
    3. Если Тестируемый сильнее тестирующего то получаем показатель - Силу Тестирующего :)

    В приведенных выше результатах на Рыбке уже идет различие результатов разным цветом. Похоже 300мс. на ход Рыбке много, она слишком сильно приближается по силе к Каспарову, и идет уже тестирование близости стилей.

    Кстати - методика Сергея Маркова, а не моя :)
    Мои два предложения:
    1. Тестирование силы Шахматистов при помощи программы с добавлением параметра - отклонение оценки.
    (эта идея тоже не нова)
    2. Настройка весов (и поиск признаков) в ОФ при помощи метода наименьших квадратов на наборе тестовых позиций. Но у меня есть подозрение что такое-же "изобретение" сделал Васик.
  19. TopicStarter Overlay

    Fruit Александр

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

    Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    По моему мнению, очень трудно опеределить, что определят данная метода (силу, позиционную силу, силу игры на сверхбыстрых контролях, привеженность к стилю Каспарова, может ничего и не определят, ввиду того, что партий мало)....Например, почему именно к стилю Каспарова? Какой процент ходов подпадает под стиль Каспарова? А каков процент просто сильных ходов?.....Я исходил из того, что просто сильных ходов больше, чем "стилевых" или слабых.....
    В любом случае, давайте подождём пока не будут получены результаты, хотя бы по 10 движкам, тогда и решим, чего стоит данная метода.

    С этим согласен.
  21. TopicStarter Overlay

    Fruit Александр

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

    Сергей Марков: Сейчас есть еще подстройка по БД: когда для большой БД партий для каждой позиции производится перебор с глубиной 4-5 полуходов и затем выбранный движком ход сравнивается с ходом в партии. Этот подход был в свое время предложен командой Deep Blue.
  22. TopicStarter Overlay

    Fruit Александр

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

    Сергей Марков: Ну и что. Ведь используется множество партий. Причем рассматриваются ходы выигравшей стороны в партиях, выигранные игроками с ELO >2600. Если мы предположим, что ошибок в этих партиях меньше, чем не ошибочных ходов, то на множестве партий стремящемся к бесконечности наш метод будет работать. Посколько мы предполагаем, что количество ошибочных ходов существенно меньше, чем не ошибочных, то на сравнительно большом множестве партий этот подход должен работать.

    Только поэтому я делаю вывод, что полторы тысячи партий Каспарова мало для сравнения силы.
  23. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Могу сделать поддержку этого под UCI. Напиши мне на мыло и я тебе сегодня или завтра дам версию.
    Кстати, какую конкретно команду посылает GUI в этом случае?
    Например, для анализа посылаются:
    position startpos moves d2d4 d7d5
    go infinite
  24. NS Нефёдов Сергей

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

    Это шлют не GUI (они время на ход в миллисекундах не поддерживают :)
    Это шлет мой переходник, через который производится тестирование.

    До этого варинта 2 -
    position fen
    и
    position startpos moves
  25. TopicStarter Overlay

    Fruit Александр

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

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Не совсем посылают переходник, а либо не поддерживают стандартный для протокола UCI контроль - время на ход (в миллисекундах)
    Либо не понимают время на ход меньшее чем 1000мс (и так-же почему-то поддержка такого времени не добавлена в GUI - они поддерживают только время кратное 1000, причины этого мне не совсем понятны... :) )
  27. TopicStarter Overlay

    Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    Я сказал почти тоже самое только одним словом :)
    Кстати, как заранее узнать поддерживает движок или нет? Иначе, трачу время на подключение, а потом ничего не работает.
  28. NS Нефёдов Сергей

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

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    У меня проверка времени примерно 10 раз в секуду, т.е. через каждые 100 мс.
    Получается, что если задать 300 мс будет тратить ~350.
    Правда еще проверяется при изменении текущего хода в корне (а в начале они меняются значительно чаще, чем 100 мс).
    GUI позволяет узнать сколько тратил времени движок?
  30. TopicStarter Overlay

    Fruit Александр

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

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

    timegettime выполняется очень быстро, и раз проверяешь исход времени раз в 1/10 секунды - значит всё-таки время проверяешь чаще? :)
  32. TopicStarter Overlay

    Fruit Александр

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

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

    Fruit Александр

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

    List 5.12 Каспаров белыми 12352/26730 = 46,210%
    List 5.12 Каспаров чёрными 12043/26010 = 46,301%
    Всего 24395/52740 = 46,255%
  35. Kirr Администратор

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    1.208
    Симпатии:
    22
    Репутация:
    8
    Оффлайн
    46-47-48. Какая-то микроскопическая разница между движками, при том что разинца в рейтинге заметная. Нужно по-моему как-то доработать идею. Например так... Считать только те ходы, где разница между лучшим ходом (предлагаемым движком) и вторым лучшим ходом больше определённой величины. То есть те ходы в которых движок уверен. Чтобы отсеять шум. Так же предлагаю исключить те ходы для которых выбор всех движков и Каспарова совпал - так как эти ходы видимо единственные.

    И нужно протестировать хотя бы пару движков послабее, пунктов на 300 слабее чем List 5.12, чтобы понять есть ли зависимость от силы.

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