Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование в широком смысле слова > Алгоритмика

Алгоритмика Об алгоритмах вообще; методы, обсуждения способов решения

Ответ
 
Опции темы
Старый 31.07.2014, 13:02   #1
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Рейтинг Эло

Есть такая рейтинговая система в шахматах для двух соперников: http://ru.wikipedia.org/wiki/%D0%A0%...% D0%BB%D0%BE

Есть ли какие-то мысли как ее можно модифицировать для числа игроков, больше чем 2?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 31.07.2014, 13:38   #2
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Рейтинг Эло

Система эло до определенного времени применялась в МОБА-игре League of Legends идентичным образом, вплоть до числовых значений, если я правильно понял задачу.
(Offline)
 
Ответить с цитированием
Старый 31.07.2014, 14:31   #3
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Рейтинг Эло

Сама система рассчитана на двух игроков. Мне интересно как модифицировать систему для использования расчета рейтинга в матчах с 2+ игроков.

Подобная система используется в минииграх от mail.ru, так же использовалась на двух соревнованиях по искусственному интеллекту CodeTanks и CodeTroopers.

У меня пока два варианта:
1. Посчитать сумму изменений рейтинга с каждым соперником.
2. Найти наихудшего победителя (по отношению к расчетному игроку) и наилучшего побежденного и посчитать сумму изменений.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 31.07.2014, 14:40   #4
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Рейтинг Эло

Всё, дошло.

Вот, чего я нарыл: http://gamedev.stackexchange.com/que...an-two-players
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pax (31.07.2014)
Старый 31.07.2014, 14:47   #5
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Рейтинг Эло

Спасибо. Нашел там ссылку http://elo.divergentinformatics.com/ и похоже там используется сумма по каждому сопернику. Как я думал по первому варианту.

Написал вот такую фигню по симуляции http://microraces.com/rating_simulation_elo.php Галочка "По всем игрокам" вроде подобным образом считает. Но мне не нравится, что на большом числе игроков довольно сильно меняется рейтинг.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 31.07.2014, 15:03   #6
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Рейтинг Эло

Просмотрел таблички, самое большое изменение рейтинга, что я нашёл - 25, по-моему это вполне себе нормальный результат.
(Offline)
 
Ответить с цитированием
Старый 31.07.2014, 15:06   #7
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Рейтинг Эло

По тому примеру если стоит галочка, то изменение рейтинга довольно большое:


особенно для топовых игроков:


Когда галочка снята - используется второй вариант, когда ищется наихудший победитель и наилучший побежденный.



Второй вариант мне больше нравится, но может есть еще идеи? Но к сожалению на таком варианте проблемы когда рейтинги игроков практически одинаковы.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 31.07.2014, 15:17   #8
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Рейтинг Эло

Ставить галочку, и делить результат на 10, вполне годные числа выходят.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pax (31.07.2014)
Старый 31.07.2014, 15:29   #9
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Рейтинг Эло

Сделал чтобы коэффициенты зависели от числа игроков в матче. Лучше стало?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 31.07.2014, 15:41   #10
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Хорошо Ответ: Рейтинг Эло

Потыцкал, красивые результаты вылазят только на высоком эло, на том же 2-2.5 и ниже выстреливают личности с +85 эло или около того посреди +11, -7 и т.д.
(Offline)
 
Ответить с цитированием
Старый 31.07.2014, 15:45   #11
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Рейтинг Эло

Выстреливать должны новички, у которых заездов меньше 30 и рейтинг ниже 2400. Это нормально я думаю.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 31.07.2014, 15:47   #12
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Рейтинг Эло

Возможно, но не в таких же масштабах. Процентов 200-300% еще можно понять, но не в 8-10 же раз больше получать. Правда, я с этой системой не настолько хорошо знаком, если я в корне неправ, прошу простить.
(Offline)
 
Ответить с цитированием
Старый 31.07.2014, 15:48   #13
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Рейтинг Эло

Там выстрел идет за счет выигрыша у большого количества более опытных игроков. Покажи пожалуйста пример, который тебе не нравится.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 31.07.2014, 16:00   #14
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Рейтинг Эло

Вложение 20773
Я понимаю, что у игрока с 6 матчами должа быть более легкая дорога, чем у более опытных, но на деле такая ситуёвина приводит к тому, что ты либо взлетел на винстрике в небывалые высоты и уже оттуда никогда не упадешь, поскольку отнимают понты; либо первые отборочные игры ты ничем не отличился, и сиди до конца веков в низах, потому что подняться будет сложно. Могу даже пример привести: игра League of Legends, благо я достаточно отыграл еще при системе Эло, такие ситуации были там сплошь и рядом, - кто выиграл первые 10 игр, взлетает высоко, и крепко там зацепляется, а кому в первых 10 играх не так повезло потом до конца сезона пытается выкарабкаться.
Собственно, поэтому Riot Games и убрали эту систему, заменив более совершенной.

Последний раз редактировалось Andvrok, 13.08.2016 в 16:37.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pax (31.07.2014)
Старый 31.07.2014, 16:10   #15
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Рейтинг Эло

Попробую уменьшить коэффициент для новичков. В любом случае будем обкатывать.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

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


Часовой пояс GMT +4, время: 12:39.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com