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

Discussion in 'Машинное отделение' started by NS, 22 Dec 2006.

  1. TopicStarter Overlay

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

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

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

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

    • Команда форума
    Member Since:
    04.05.2006
    Message Count:
    3.599
    Likes Received:
    4
    Репутация:
    0
    Location:
    Гомель
    Оффлайн
    А как угадать, что он локальный?
  3. TopicStarter Overlay

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

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

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

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

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

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

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

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

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

    • Команда форума
    Member Since:
    04.05.2006
    Message Count:
    3.599
    Likes Received:
    4
    Репутация:
    0
    Location:
    Гомель
    Оффлайн
    Здесь скорость сходимости не имеет значения, т.к. оно сходится очень быстро.
  9. TopicStarter Overlay

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

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

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

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

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Я тоже только выдираю результаты, по строкам
    '[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 Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Система Сонаса:

    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 Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Система Эло:

    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 Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Без округления.
    Эло 1572,67422737493
    Сонас 1573,32631007668

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

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

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

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

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

    • Команда форума
    Member Since:
    04.05.2006
    Message Count:
    3.599
    Likes Received:
    4
    Репутация:
    0
    Location:
    Гомель
    Оффлайн
    Я не считаю.
    Кинь исходники в мыло.
  17. WildCat Коршунов Игорь

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

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

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

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

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

    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 Коршунов Игорь

    • Команда форума
    Member Since:
    04.05.2006
    Message Count:
    3.599
    Likes Received:
    4
    Репутация:
    0
    Location:
    Гомель
    Оффлайн
    У меня коэфициент 850.
  21. TopicStarter Overlay

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

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

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

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

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    отсортировать по рейтингу?
  24. TopicStarter Overlay

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

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    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 Нефёдов Сергей

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

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

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

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

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


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

    • Команда форума
    Member Since:
    05.02.2006
    Message Count:
    57.245
    Likes Received:
    21.136
    Репутация:
    628
    Location:
    Москва, Россия
    Оффлайн
    Установлена премия $ 10000 за лучшую систему обсчета рейтинга

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

    [​IMG]

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

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

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

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

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

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

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

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

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

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

Share This Page