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

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

  1. TopicStarter Overlay

    kdvdenis Учаcтник

    • Участник
    Рег.:
    25.04.2007
    Сообщения:
    22
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Гуру, подскажите пожалуйста:

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

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

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

    kdvdenis Учаcтник

    • Участник
    Рег.:
    25.04.2007
    Сообщения:
    22
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Ну а по ряду партий.
    Скажем 5-10 с ходами 30-50 в каждой?

    ну. т.е. обычный турнир.
  4. Fruit Александр

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

    kdvdenis Учаcтник

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

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

    kdvdenis Учаcтник

    • Участник
    Рег.:
    25.04.2007
    Сообщения:
    22
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Да я думал это уже во фрице сделали) или в Арене). или я ошибаюсь?
  8. NS Нефёдов Сергей

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

    kdvdenis Учаcтник

    • Участник
    Рег.:
    25.04.2007
    Сообщения:
    22
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Плохо блин. )
  10. Guest

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

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

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

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

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

    kdvdenis Учаcтник

    • Участник
    Рег.:
    25.04.2007
    Сообщения:
    22
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    2Fruit: Да. Где бы у себя эту кнопку найти :)
  16. Мастер Икс Василий Щепетнев

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

    kdvdenis Учаcтник

    • Участник
    Рег.:
    25.04.2007
    Сообщения:
    22
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    ККХ - это извинюсь что ).
  18. Мастер Икс Василий Щепетнев

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    3.616
    Симпатии:
    282
    Репутация:
    19
    Адрес:
    Деревня Великая Гвазда
    Оффлайн
    Компьютерно-качественный ход
  19. stirlitz Заслуженный

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    13.02.2006
    Сообщения:
    7.869
    Симпатии:
    274
    Репутация:
    13
    Оффлайн
    Не понимаю, как коэфициент ЭЛО можно вообще на что-то умножать. Или я что-то неправильно понял?
  20. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.492
    Симпатии:
    3.122
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Ну, я так понимаю, что это эмпирическая формула. Вроде как "вес = рост - 100", вычитаем из сантиметров безразмерную величину, и получаем килограммы :)
  21. stirlitz Заслуженный

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    13.02.2006
    Сообщения:
    7.869
    Симпатии:
    274
    Репутация:
    13
    Оффлайн
    Я бы считал не процент ККХ, а среднеквадратическое отклонение в оценках между лучшим по мнению компьютера ходом и сделанным. Правда, что с ним дальше делать я не знаю :)
  22. NS Нефёдов Сергей

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

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

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

    Рег.:
    16.06.2007
    Сообщения:
    3
    Симпатии:
    0
    Репутация:
    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 Администратор

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

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

    Рег.:
    16.06.2007
    Сообщения:
    3
    Симпатии:
    0
    Репутация:
    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 партий на каждого.
    -провести как можно более глубокий анализ этих партий с Рыбкой
    -провести как можно более глубокий анализ этих партий с Тогой - это нужно для сборки всяческих параметров для настройки формулы коэффициента сложности позиции. На этой стадии собирается все, что может потенциально быть полезно для вычисления коэффициента сложности позиции; для каждого хода: материал на доске, кол-во возможных ходов, взятий, безопасность короля, пожертвованный материал, и т.д.
    -и наконец, настроить по параметрам, полученным от Тоги, формулу коэффициента сложности позиции так чтобы минимизировать отклонение предпологаемых рейтингов от реальных. Я предложил для этой оптимизации генетический алгоритм.
    -в конце концов, это все должно дать нам алгоритм определения силы шахматиста то партиям

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

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