Форум СИ  

Вернуться   Форум СИ > "Своя игра" > СИ - как мы ее видим

Закрытая тема
 
Опции темы Опции просмотра
Старый 29.05.2011, 13:08   #1
Евгений Машеров
Senior Member
 
Регистрация: 06.04.2006
Сообщения: 1,063
Поблагодарил(а): 1,876
Поблагодарили 1,011 раз(а) в 398 сообщениях
По умолчанию

В чисто математическом плане задача сведения набора парных сравнений к единому рейтингу почти тривиальна (в вычислительном - уже не столь тривиальна, но основные трудности тут вне математики).
Если A(i,j) это сравнение силы i-того и j-того игроков (скажем, как соотношение числа их и поражений, или же набранных очков и т.п.), а X(j) это "правильный" рейтинг j-того игрока, то естественно ожидать, что, если просуммировать рейтинги всех игроков, с которыми сыграл данный, умноженные на этот, отражающий во сколько раз i-тый игрок сильнее j-того, то получим правильный рейтинг i-того, возможно, умноженный на какую-то константу (содержательно это означает, что за победу над сильным игроком надо давать больше, чем над слабым, и даже умеренный проигрыш "гроссу" может больше указывать на силу игрока, чем его триумф над новичком).
Формально это можно записать, как
Ax=lx, где А - матрица сравнений игроков, х - вектор их рейтингов, l - постоянная величина, то есть это задача на собственные значения матрицы А (можно показать, что искомая наша величина соответствует максимальному собственному значению l).
По теореме Фробениуса-Перрона, если матрица А имеет неотрицательные значения (в данном случае её элементы - "относительные силы" игроков и A(i,j)=1/A(j,i), а для игроков, которые меж собой не встречались - пишем 0; на диагонали, то есть сравнивая с самими собою, пишем 1, впрочем, это несущественно) и неразложима (то есть, даже если два игрока i,j не встречались, можно выстроить цепочку из игроков от i-того до j-того так, чтобы соседи по цепочке меж собой играли; понятно, что если игроки распадаются на два подмножества так, что игроки из одного никогда не играли со вторым, то единого рейтинга быть не может) - существует вектор х с положительными элементами, который и будет искомым рейтингом.
Хотя матрица велика, а сложность задачи кубична, так что для такой размерности используют суперкомпьютеры, нам нужен только один вектор, и для него есть простой и достаточно быстрый метод (степенной).
Проблема в том, чтобы набрать все эти сравнения (а для начала - как оценить сравнение? Как вариант - отношением сумм набраных очков, но что делать, если кто-то в нуле или в минусе?)
Но если кто-то соберёт такой материал - то, зная матрицу А, сам рейтинг можно будет получить легко.

Последний раз редактировалось Евгений Машеров, 29.05.2011 в 22:01 Причина: Исправлена опечатка в A(i,j)=1/A(j,i)
Евгений Машеров вне форума  
Поблагодарили:
Nikolaev N. (29.05.2011), Raykoffff (29.05.2011), Svetlana_S (29.05.2011), Стас Гусаинов (30.05.2011)
Старый 29.05.2011, 13:45   #2
Svetlana_S
Зритель
 
Регистрация: 07.05.2011
Сообщения: 150
Поблагодарил(а): 72
Поблагодарили 114 раз(а) в 56 сообщениях
По умолчанию

Цитата:
Сообщение от Евгений Машеров Посмотреть сообщение
...понятно, что если игроки распадаются на два подмножества так, что игроки из одного никогда не играли со вторым, то единого рейтинга быть не может
Может быть не только на два
Svetlana_S вне форума  
Старый 29.05.2011, 14:48   #3
Raykoffff
Красный диссидент
 
Аватар для Raykoffff
 
Регистрация: 06.07.2009
Адрес: Ташкент
Сообщения: 2,198
Поблагодарил(а): 1,917
Поблагодарили 2,972 раз(а) в 907 сообщениях
По умолчанию

Цитата:
Сообщение от Евгений Машеров Посмотреть сообщение
Проблема в том, чтобы набрать все эти сравнения (а для начала - как оценить сравнение? Как вариант - отношением сумм набраных очков, но что делать, если кто-то в нуле или в минусе?)
Как вариант - взять за точку отсчёта не 0, а, скажем, -10000.
__________________
Пишите честно - Как перед расстрелом. Жизнь оправдает Честные слова (Анатолий Жигулин)
Raykoffff вне форума  
Поблагодарил(а):
Старый 29.05.2011, 15:03   #4
Svetlana_S
Зритель
 
Регистрация: 07.05.2011
Сообщения: 150
Поблагодарил(а): 72
Поблагодарили 114 раз(а) в 56 сообщениях
По умолчанию

Цитата:
Сообщение от Евгений Машеров Посмотреть сообщение
... если матрица А имеет неотрицательные значения (в данном случае её элементы - "относительные силы" игроков и A(i,j)=1/A(j,j),
A(i,j)=1/A(j,i)
Svetlana_S вне форума  
Поблагодарил(а):
Закрытая тема

Tags
2011, своя игра

Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Часовой пояс GMT +3, время: 08:52.


vBulletin v3.8.12 by vBS, Copyright ©2000-2026, Jelsoft Enterprises Ltd.
Русский перевод: zCarot, Vovan & Co