Сравнение системы Эло с системой Сонаса.

Тема в разделе "Машинное отделение", создана пользователем NS, 22 дек 2006.

  1. TopicStarter Overlay

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

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

    При этом метод наискорейшего спуска точно найдет единственный существующий экстремум для системы Сонаса (Так как она линейна, для суммы квадратов получается квадратичная форма, имеющая единственную точку минимума)

    А для системы Эло может и не сойтись - но на таком количестве партий должно быть всё ОК, но если появится несходимость (будет сходиться в локальном экстремуме) - то добавлю Монте-Карло.
  2. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    А как угадать, что он локальный?
  3. TopicStarter Overlay

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

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

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Решал я этим методом одну задачу. Результат был хорошим, но далеким (относительно) от оптимального.
  5. TopicStarter Overlay

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

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

    Можно еще по координатной сетке - но 20 параметров слишком много, не потянет.
  6. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Да в этой задаче найти решение не должно быть сложно.
    Можно просто посмотреть какой рейтинг дает наибольшую ошибку. По этой координате и спускаемся.
    У меня так Сонас сделан, но там все линейно и просто.
  7. TopicStarter Overlay

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

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

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Здесь скорость сходимости не имеет значения, т.к. оно сходится очень быстро.
  9. TopicStarter Overlay

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

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

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Более менее универсальная. Но парсит pgn только, чтобы выдрать из него результаты.
    Список файлов можно задавать.
  11. TopicStarter Overlay

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

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Я тоже только выдираю результаты, по строкам
    '[White'
    '[Black'
    '[Result'

    Три возможных результата
    if t1='"0-1"' then
    table[BlackN,WhiteN]:=table[BlackN,WhiteN]+1;
    if t1='"1-0"' then
    table[WhiteN,BlackN]:=table[WhiteN,BlackN]+1;
    if t1='"1/2-1/2"' then
    Begin
    table[BlackN,WhiteN]:=table[BlackN,WhiteN]+0.5;
    table[WhiteN,BlackN]:=table[WhiteN,BlackN]+0.5;
    end;

    Доверительные интервалы считаешь исходя из посчитанного рейтинга соперников?
    Вероятность ничьи какую берешь?
  12. TopicStarter Overlay

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

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

    E:=0.5+D/800;
    if E>1 then E:=1;
    if E<0 then E:=0;

    2564 "Thinker 4.7a"
    2889 "Rybka 2.0 Beta 8 mp 32-bit"
    2637 "Ruffian 2.1.0"
    2582 "Deep Sjeng 1.6"
    2815 "Fruit 2.2.1"
    2797 "Shredder 10"
    2771 "Spike 1.2 Turin"
    2686 "SmarThink 1.0"
    2642 "Naum 1.91"
    2691 "Glaurung 1.2.1"
    2627 "Gandalf 6.0"
    2669 "The King 3.33"
    2588 "Aristarch 4.50"
    2660 "Pro Deo 1.1"
    2805 "Ktulu 8"
    2551 "Zappa 1.1"
    2663 "SlowChess Blitz WV2.1"
    2853 "Loop 10.32f"
    2597 "Pharaon 3.5.1"
    2765 "Shredder 9.1"
    2847 "Hiarcs X50"

    Сумма квадратов отклонений 1573
  13. TopicStarter Overlay

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

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

    2570 "Thinker 4.7a"
    2882 "Rybka 2.0 Beta 8 mp 32-bit"
    2642 "Ruffian 2.1.0"
    2589 "Deep Sjeng 1.6"
    2808 "Fruit 2.2.1"
    2790 "Shredder 10"
    2766 "Spike 1.2 Turin"
    2688 "SmarThink 1.0"
    2645 "Naum 1.91"
    2692 "Glaurung 1.2.1"
    2633 "Gandalf 6.0"
    2670 "The King 3.33"
    2594 "Aristarch 4.50"
    2661 "Pro Deo 1.1"
    2800 "Ktulu 8"
    2558 "Zappa 1.1"
    2664 "SlowChess Blitz WV2.1"
    2847 "Loop 10.32f"
    2605 "Pharaon 3.5.1"
    2760 "Shredder 9.1"
    2836 "Hiarcs X50"

    1573

    Одинаково... :/
  14. TopicStarter Overlay

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

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Без округления.
    Эло 1572,67422737493
    Сонас 1573,32631007668

    Особой разницы нет, но и по матчу версий Тоги, и по IKRL - Эло чуть лучше. :)
  15. TopicStarter Overlay

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

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

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

    Надо посмотреть как ЭлоСтат считает. До сих пор не посмотрел :)
  16. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Я не считаю.
    Кинь исходники в мыло.
  17. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    У меня разница между Рыбкой и Заппой 360, а у тебя всего 337.
    Выведи средний рейтинг соперников для каждого движка.
  18. TopicStarter Overlay

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

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

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

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

    2678 2564 "Thinker 4.7a"
    2717 2889 "Rybka 2.0 Beta 8 mp 32-bit"
    2680 2637 "Ruffian 2.1.0"
    2678 2582 "Deep Sjeng 1.6"
    2725 2815 "Fruit 2.2.1"
    2724 2797 "Shredder 10"
    2717 2771 "Spike 1.2 Turin"
    2715 2686 "SmarThink 1.0"
    2647 2642 "Naum 1.91"
    2723 2691 "Glaurung 1.2.1"
    2658 2627 "Gandalf 6.0"
    2702 2669 "The King 3.33"
    2659 2588 "Aristarch 4.50"
    2694 2660 "Pro Deo 1.1"
    2717 2805 "Ktulu 8"
    2657 2551 "Zappa 1.1"
    2694 2663 "SlowChess Blitz WV2.1"
    2720 2853 "Loop 10.32f"
    2654 2597 "Pharaon 3.5.1"
    2721 2765 "Shredder 9.1"
    2774 2847 "Hiarcs X50"
  20. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    У меня коэфициент 850.
  21. TopicStarter Overlay

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

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Тогда всё ОК :)
    у тебя 360, у меня 360*800/850=339, один пункт в разнице мог потеряться на округлениях (у тебя чуть меньше 360, у меня чуть больше 338)
  22. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Сделай с коэф. 850 и начальный рейтинг выбери так, чтобы у Shredder 9.1 было 2750.
    Тогда можно будет легко сравить результаты.
  23. TopicStarter Overlay

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

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

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

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    2658 2536 "Thinker 4.7a"
    2699 2882 "Rybka 2.0 Beta 8 mp 32-bit"
    2660 2614 "Ruffian 2.1.0"
    2658 2556 "Deep Sjeng 1.6"
    2708 2803 "Fruit 2.2.1"
    2706 2784 "Shredder 10"
    2699 2756 "Spike 1.2 Turin"
    2697 2667 "SmarThink 1.0"
    2624 2619 "Naum 1.91"
    2706 2671 "Glaurung 1.2.1"
    2637 2604 "Gandalf 6.0"
    2683 2648 "The King 3.33"
    2638 2562 "Aristarch 4.50"
    2675 2638 "Pro Deo 1.1"
    2699 2793 "Ktulu 8"
    2636 2522 "Zappa 1.1"
    2675 2642 "SlowChess Blitz WV2.1"
    2702 2844 "Loop 10.32f"
    2632 2571 "Pharaon 3.5.1"
    2703 2750 "Shredder 9.1"
    2760 2837 "Hiarcs X50"

    1573,32614488571
    1573,32614418799
  25. TopicStarter Overlay

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

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

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

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

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

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


    1572,67404203588
    1572,67404159884
  28. Crest Админ, МГ

    • Команда форума
    Рег.:
    05.02.2006
    Сообщения:
    57.245
    Симпатии:
    21.136
    Репутация:
    628
    Адрес:
    Москва, Россия
    Оффлайн
    Установлена премия $ 10000 за лучшую систему обсчета рейтинга

    Сонас, Томпсон и Фридель веселятся на даче и обсуждают мировые проблемы.

    [​IMG]

    Эх, переводик бы статьи почитать...
    Без него наш Енот не сможет побороться и с корнем вырвать из лап буржуев столь необходимые для него и для нас (будем в доле) деньги. :)

    P.S. Есть у нас еще одна забытая тема Проверка систем расчета рейтинга, в которой есть пара полезных постов, и в которой было бы логично дать данную информацию.

    P.P.S. Как оказалось, есть и тема-дубликат Рейтинги Jeff Sonas
    В общем, тем-недорослей полно, а где обсуждать рейтинги - непонятно.
    Пусть будет здесь...
  29. MS Михаил Семионенков

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    6.542
    Симпатии:
    3.361
    Репутация:
    175
    Оффлайн
    Речь идёт о системе, на основании которой можно предсказать результаты соревнований. (Явных указаний на то, что это должен быть "рейтинг", т.е. одномерная оценка, я не увидел, т.е. это не о замене Эло).

    В предыдущем конкурсе ("Эло против остального мира") участвовали 258 команд, результат рейтинга Эло - 141-ое место.

    В данном конкурсе модели участников, обученные на 1.8 млн игр, должны предсказать результат 100 тысяч игр за 3 месяца. Конкурс закончится 3-его мая.
  30. Crest Админ, МГ

    • Команда форума
    Рег.:
    05.02.2006
    Сообщения:
    57.245
    Симпатии:
    21.136
    Репутация:
    628
    Адрес:
    Москва, Россия
    Оффлайн
    Серьезно?? Я и не знал, что енотов так много по всему свету... И все же наш Енот круче! :)
  31. Kirr Администратор

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

    Мои модели все для статических игроков (движков), поэтому не буду париться с участием (скорее всего). :)
  32. Crest Админ, МГ

    • Команда форума
    Рег.:
    05.02.2006
    Сообщения:
    57.245
    Симпатии:
    21.136
    Репутация:
    628
    Адрес:
    Москва, Россия
    Оффлайн
    Судя по тому, какие бредовые результаты выдает Е-рейтинг на небольшой дистанции в швейцарках, на победу рассчитывать трудно. Но на длинной дистанции у него бывают творческие удачи...

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