Определение уровня игры с помощью программы

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

  1. kdvdenis
    Оффлайн

    kdvdenis Учаcтник

    Репутация:
    0
    Гуру, подскажите пожалуйста:

    У меня есть Фриц 8.

    Например ставлю блиц на 3-5 мин, либо анализирую чужую партию, либо играю сам с ним.
    Можно ли ориентировочно определить (т.е. выдает ли сам Фриц) в какую силу была сыграна партия по ЭЛО, хотя бы ориентировочно?
     
  2. Fruit
    Оффлайн

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

    Репутация:
    3
    Определять эло по 20-30 ходам? Пока такое невозможно.
     
  3. kdvdenis
    Оффлайн

    kdvdenis Учаcтник

    Репутация:
    0
    Ну а по ряду партий.
    Скажем 5-10 с ходами 30-50 в каждой?

    ну. т.е. обычный турнир.
     
  4. Fruit
    Оффлайн

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

    Репутация:
    3
    А не проще поиграть в Rated game? Там и можно узнать свой приблизительный рейтинг....По 5-10-ти партиям можно постичтать кол-во совпадений с прогами, тяжесть ошибок. Однако, не ясно, как с помошью этих данных начислять рейтинг.....
     
  5. kdvdenis
    Оффлайн

    kdvdenis Учаcтник

    Репутация:
    0
    Поиграть то можно. Но а если охота узнать на каком уровне игрок сыграл на том или ином турнире.
    Да и себя так можно оценивать. Идея то хорошая. Я удивлен что ее еще не реализовали.
     
  6. NS
    Оффлайн

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

    Репутация:
    3
    Дашь денег? :)
    Идея хорошая, только денег за её реализацию никто не даст.
     
  7. kdvdenis
    Оффлайн

    kdvdenis Учаcтник

    Репутация:
    0
    Да я думал это уже во фрице сделали) или в Арене). или я ошибаюсь?
     
  8. NS
    Оффлайн

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

    Репутация:
    3
    Нет такого. По анализу партий силу никто не пишет.
     
  9. kdvdenis
    Оффлайн

    kdvdenis Учаcтник

    Репутация:
    0
    Плохо блин. )
     
  10. Guest
    Оффлайн

    Guest

    Репутация:
    0
    во фрице можно организовать турнир с движками и задать им эло - как оно влияет на силу движка? Я ставил ради интереса 1500 и играл от балды, но по ощущениям ничего особенно не изменилось, когда до этого играл с 2000, хотя по идее он должен был зевать...?
     
  11. NS
    Оффлайн

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

    Репутация:
    3
    Вы задали Эло для подстановки его в базу турнира. Как это эло может поменять на силу? Если вы проставите Каспарову Эло 2200 во всех партиях в Megabase - он всё равно будет играть сильнее КМСа :)
     
  12. Guest
    Оффлайн

    Guest

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

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

    Репутация:
    3
    В параметрах некоторых движков есть выставление силы в пунктах Эло.
    Но не там где вы пытались его выставить :)
     
  14. Fruit
    Оффлайн

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

    Репутация:
    3
    С таким же успехом можно было себе 2600 выставить. :D
     
  15. kdvdenis
    Оффлайн

    kdvdenis Учаcтник

    Репутация:
    0
    2Fruit: Да. Где бы у себя эту кнопку найти :)
     
  16. Мастер Икс
    Оффлайн

    Мастер Икс Василий Щепетнев Команда форума

    Репутация:
    19
    Рейтинг любой анализируемой партии можно посчитать по формуле: Икс умножить на Игрек. Икс - это процент ККХ в партии, Игрек - коэффициент анализируемой программы. Время, отведенное на анализ должно более-меннее совпадать со временем игры.
    Для "Рыбки" на целероне - 2000 1 процент ККХ равен 26 пунктам Эло для классики.
    Достоверный результат будет после анализа 1000 ходов. (20-25 полнокровных партий)
    Достоверно до уровня ММ.
     
  17. kdvdenis
    Оффлайн

    kdvdenis Учаcтник

    Репутация:
    0
    ККХ - это извинюсь что ).
     
  18. Мастер Икс
    Оффлайн

    Мастер Икс Василий Щепетнев Команда форума

    Репутация:
    19
    Компьютерно-качественный ход
     
  19. stirlitz
    Оффлайн

    stirlitz баннер

    Репутация:
    13
    Не понимаю, как коэфициент ЭЛО можно вообще на что-то умножать. Или я что-то неправильно понял?
     
  20. WinPooh
    Оффлайн

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

    Репутация:
    95
    Ну, я так понимаю, что это эмпирическая формула. Вроде как "вес = рост - 100", вычитаем из сантиметров безразмерную величину, и получаем килограммы :)
     
  21. stirlitz
    Оффлайн

    stirlitz баннер

    Репутация:
    13
    Я бы считал не процент ККХ, а среднеквадратическое отклонение в оценках между лучшим по мнению компьютера ходом и сделанным. Правда, что с ним дальше делать я не знаю :)
     
  22. NS
    Оффлайн

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

    Репутация:
    3
    Собирается статистика по Большой базе партий. Для каждого диапазона рейтигов - Получаем процент отклонений оценки хода от хода предложенного программой на заданную величину.

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

    После этого получаем инструмент для замера силы.
     
  23. Russianbear
    Оффлайн

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

    Репутация:
    0
    Всем привет. Хороший у вас форум, интересно читать знающих людей, особенно многие ветки в "Машинном отделении".

    Я - модератор на англоязычном форуме ChessNinja.com и на том форуме вопрос определения уровня игры по анализируемым партиям обсуждался и обсуждается довольно серьезно. Кому это интересно - советую прочесть

    http://www.chessninja.com/cgi-bin/ultimatebb.cgi?ubb=get_topic;f=10;t=000589

    и, продолжение ветки -

    http://www.chessninja.com/cgi-bin/ultimatebb.cgi?ubb=get_topic;f=10;t=000590

    Может, подкините идеи или сами чего интересного найдете :)

    А вообще, давайте дружить форумами :)
     
  24. Kirr
    Оффлайн

    Kirr Команда форума Команда форума

    Репутация:
    8
    Привет Russianbear. Может быть вы могли бы для русскоязычных участников кратенько сформулировать основные выводы (или точки зрения) серьёзного обсуждения в вашем форуме? (+ аргументы или примеры если не сложно). :)
     
  25. krey
    Оффлайн

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

    Репутация:
    1
    и вообще - по этому поводу можно написать в пм Самому Кресту!!! :cool:
    ну, или любому другому админу-можератору...
     
  26. Russianbear
    Оффлайн

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

    Репутация:
    0
    Да, конечно, только вот пока что многое еще на уровне теорий и догадок. До окончательных выводов еще достаточно далеко.

    Пару лет назад, (а то и больше), один из участников форума (littlefish) проанализировал коллекцию игр игроков разной силы - и действительно, была связь между рейтингом и средним отклонением в оценке сделанных шахматистами ходов от ходов, предлагаемых Фрицем. Но обнаружилось что Фриц больше наказывает шахматистов, чей стиль принято охарактеризовывать как "атакующий" или "комбинационный". Например, если есть два игрока, примерно равных по силам, но разных по стилям, как, например, Таль-Петросян или Леко-Морозевич, то Фриц соглашается гораздо больше с шахматистом "позиционным". Это в принципе, объяснимо, ведь, игрок типа Таля или Морозевича зачастую делают объективно не сильнейшие ходы (например, интуитивные жертвы, и т.д.), но эти ходы ведут к позициям где в борьбе человека против человека есть хорошие шансы, но которые компьютер беспощадно отметает, как объективно более слабые.

    Этот нюанс не так легко обойти, так что на какое-то время можно сказать что все сошло на нет. Однако не так давно (конец 2006 года), в Chessbase была опубликована статья Ивана Братко (того самого Братко, кто был автором т.н. "теста Братко-Копека") и Матея Гуида "Computers choose: who was the strongest player?" (Компьютеры выбирают: кто был сильнейшим игроком?"). Статья на английском лежит здесь : http://www.chessbase.com/newsdetail.asp?newsid=3455

    В двух словах, Братко и Гуид пытались опредилить сильнейшего из всех 14-ти чампионов мира, сравнивая, насколько с их ходами соглашается или не соглашается движок Крафти. Ведь, действительно, почему бы не попробовать сравнить, скажем, Алехина и Каспарова? Многое в той статье было спорно, но важно было то, что они предложили как можно (теоретически, хотя бы) обойти ту самую проблему где игроки тактического стиля наказываются компьютерными программи больше, чем игроки более "солидного" стила. Они предложили делать поправку на сложность позиции. Например, партии Таля или Топалова на порядок сложнее партий Капабланки. Таль и Топалов как правило ищут осложнений и идут на борьбу, а Капабланка наоборот, как правило, предпочитает менять фигуры и играть технические эндшпили. И, естественно, при прочих равных, игрок, идущий на осложения, будет больше ошибаться чем тот, кто всегда исчет упрощений. Потому, Братко/Гуид предложили подсчитывать сложность позиции и использовать ее как коэффициент в вычислениях.

    Во многом они были, скорей всего, неправы - например в том, что Крафти, который едва ли имеет рейтинг 2600, анализируя до фиксированной глубины в 12 полуходов, может выяснить, какой из чемпионов мира сильнее других. Но сама идея этого коэффициента сложности позиции дала новый импульс нашим дискуссиям :) Во первых, конечно, было решено отказаться от Крафти и перейти на более сильные движки, дабы улучшить качество анализа. Мы решили использовать Тогу - т.к. нужен движок с открытыми исходниками и Тога все-таки значительно сильнее Крафти. Я нашел способ также интегрировать Рыбку в алгоритм Братко/Гуида, так что вместо анализа движка с рейтингом в 2600 мы будем иметь анализ движка с рейтингом в 2900 или около того.

    Возникает вопрос, а как собственно, можно посчитать этот самый коэффициента сложности позиции. Ответа на этот вопрос нет - во всяком служае нет простого ответа. Нужен был алгоритм нахождениа формулы коэффициента сложности позиции. Было предложено сделать следующее:

    -взять большую подборку партий шахматистов разного уровня (от КМСа до СуперГМа) - мы пробовали разное количество партий и игриков, но сейчас остановились на чуть более 20 людях и 100 партий на каждого.
    -провести как можно более глубокий анализ этих партий с Рыбкой
    -провести как можно более глубокий анализ этих партий с Тогой - это нужно для сборки всяческих параметров для настройки формулы коэффициента сложности позиции. На этой стадии собирается все, что может потенциально быть полезно для вычисления коэффициента сложности позиции; для каждого хода: материал на доске, кол-во возможных ходов, взятий, безопасность короля, пожертвованный материал, и т.д.
    -и наконец, настроить по параметрам, полученным от Тоги, формулу коэффициента сложности позиции так чтобы минимизировать отклонение предпологаемых рейтингов от реальных. Я предложил для этой оптимизации генетический алгоритм.
    -в конце концов, это все должно дать нам алгоритм определения силы шахматиста то партиям

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