Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

4    1    #1
04.02.2019 15:07

qwerty
Участник (+243, -117)
Зарегистрирован: 21.12.2005
Сообщений: 206
Вебсайт

Новые методы голосования на КРИЛ

Надеюсь, в будущих КРИЛах применяться будет метод Шульце, то есть, голосующие будут присылать список игр от наиболее понравившейся к наименее понравившейся. Сейчас, если игрок ставит одной игре 10, а четырём другим 1, то он поднимает одну игру над всеми играми вообще и опускает 4 другие ниже всех игр вообще. Если же игрок оценит 5 игр согласно методу Шульце, то он просто даст знать, какую из оцененных игр он ценит выше других оцененных им игр. И это уравнивает голоса игроков с разной шкалой: допустим, один оценил игры КРИЛа в диапазоне 1..6, другой - в 3...8, третий - в 5..10. Выяснять "абсолютную оценку" в такой ситуации бессмысленно- разные люди ставят X баллов за совершенно разное. Но метод Шульце выявляет главное: какая игра оказалась предпочтительнее других.

Неактивен

4    1    #2
08.02.2019 10:34

Olegus t.Gl.
Участник (+1049, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2866
Вебсайт

Re: Новые методы голосования на КРИЛ

qwerty написал:

Надеюсь, в будущих КРИЛах применяться будет метод Шульце, то есть, голосующие будут присылать список игр от наиболее понравившейся к наименее понравившейся. Сейчас, если игрок ставит одной игре 10, а четырём другим 1, то он поднимает одну игру над всеми играми вообще и опускает 4 другие ниже всех игр вообще. Если же игрок оценит 5 игр согласно методу Шульце, то он просто даст знать, какую из оцененных игр он ценит выше других оцененных им игр. И это уравнивает голоса игроков с разной шкалой: допустим, один оценил игры КРИЛа в диапазоне 1..6, другой - в 3...8, третий - в 5..10. Выяснять "абсолютную оценку" в такой ситуации бессмысленно- разные люди ставят X баллов за совершенно разное. Но метод Шульце выявляет главное: какая игра оказалась предпочтительнее других.

В общем, я немного заморочился и подключил метод Шульце к текущим оценкам, чтобы перед началом нового КРИЛ мы смогли проанализировать его применимость к нашему конкурсу и претендентам. Посмотреть можно тут: https://forum.ifiction.ru/kril2018schulze.php

Трудоёмкость ввода информации о местах можно решить интерфейсом, однако нужно понимать, что этот же интерфейс будет подспорьем и для манипуляций. Но насколько этот метод устойчив к разного рода вбросам неадекватных оценок — вот над этим нужно подумать.

Обратите внимание на выдержку из статьи из Википедии о методе Шульце:

Избиратели могут ставить одинаковые числа нескольким кандидатурам, либо вообще не заполнять это поле для части кандидатур (в таком случае считается, что избиратель поставил такие кандидатуры одинаково ниже всех, для которых он указал число).

В представленном мной примере, можно включить/выключить этот подход, чтобы проанализировать, как это влияет на результаты.

Неактивен

4    0    #3
09.02.2019 01:30

Olegus t.Gl.
Участник (+1049, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2866
Вебсайт

Re: Новые методы голосования на КРИЛ

crem написал:

crem написал:

У меня всё то же самое (вроде бы), но когда ничьи, то от твоего порядок отличается:

Нет не всё то же самое. Например, у меня фуга выше чашки супа, а у тебя нет (если "остальные хуже").
Короче, давай исходник.

Может ты вначале в общей куче всех отсортировал, а потом разделил на номинации?
Может ты не пользовался официальными оценками игр, опубликованными ореолеком?

Нет, я не считал по общей куче. Я считал всё по каждой номинации отдельно.
Нет, я пользовался именно что официальными оценками игр. Ореолек брал эти оценки из того же источника, откуда я беру для расчёта как по методу Шульце, так и по средней для результата КРИЛа.

Для пущей прозрачности и наглядности, я добавил таблицу с оценками участников (без имён), а также инструмент выделения интересующих пар для проверки корректности расчёта. Например, по "Фуге" и "Чашке супа" это выглядит так: https://forum.ifiction.ru/kril2018schul … mp;g=36:41

Алгоритм я брал с Википедии (уж что оказалось под рукой). Именно там, ещё раз обращаю внимание (особенно Виталия Блинова), содержится замечание, что метод включает в себя условие (не опцию, не выбор, не возможность, а обязательное условие), что если ты не проголосовал за кого-то, значит, ты поставил эти игры ниже тех, каким ты проставил баллы.

1. Если включена опция "Без оценок считать ниже всех", то дополняю таблицу оценок нулями.
2. По таблице оценок я заполняю таблицу, сколько голосующих той или иной игре отдали предпочтение. Тут всё просто: беру оценки участника, сравниваю игры попарно и добавляю +1 игре, у которой оценка выше.
Пример:
База для расчёта: https://forum.ifiction.ru/kril2018schul … 1#a_scores
Результат: https://forum.ifiction.ru/kril2018schul … 41#a_votes

3. Расчитываю силу путей. Перебираю все пути по возможным переходам по направленному графу (возможные переходы по каждой игре выделены жёлтым в таблице: "Число голосующих, предпочитающих одну игру другой"). Внизу можно посмотреть, какие пути были найдены, и почему был выбран определённый путь (максимальная слабая точка).

4. Для построения финального рейтинга я сравниваю силу пути игр попарно и записываю +1 в победы той, у кого сила больше. По количеству побед и сортирую.

5. Насчёт ничьих я пока не успел реализовать задумки, но соображения на этот счёт есть (сравнение каждой игры из комплекта ничьих по предпочтениям с выше-, нижестоящими по рейтингу). Но не знаю, насколько это соответствует методу.

Если найдёте ошибки в результатах — сообщайте, обсудим, доработаем. Если есть предложения по алгоритму — излагайте.

Неактивен

3    0    #4
09.02.2019 11:59

Olegus t.Gl.
Участник (+1049, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2866
Вебсайт

Re: Новые методы голосования на КРИЛ

crem написал:

Olegus t.Gl. написал:

4. Для построения финального рейтинга я сравниваю силу пути игр попарно и записываю +1 в победы той, у кого сила больше. По количеству побед и сортирую.

А что если в обе стороны равный вес дуг? Я в этом случае записываю +0.5.
(точнее, я записываю 1 если больше, -1 если меньше, и 0 если равное значение, но это то же самое что если записывать 1 если больше, и 0.5 если ничья).

Для построения финального рейтинга обрабатывается таблица сил сильнейших путей. Там нет значений дуг, там значения сил сильнейших путей.
Веса дуг используются на предыдущем шаге, хранятся в таблице "Число голосующих, предпочитающих одну игру другой" и означают, соответственно, "количество голосующих, отдавших предпочтение той или иной игре".
Так вот, если значения сил путей двух игр равны, то это ничья. "Ничья — результат в матче или партии, при котором победитель игры или состязания не выявлен", поэтому записывать обеим играм победы в данном случае сложно для восприятия со стороны и объяснения. Это вмешательство в логику метода, а это на данном этапе неправильно (так мы к единым результатам не придём никогда).

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

Например, сейчас в рейтинге по методу Шульце у игр "Паладин" и "Star Wars: Турнир Юнлингов" ничья.

1. Сравниваем их друг с другом. Тут всё, в принципе, просто: "П" оценили выше "SW" 16 против 15. В этой ситуации данных достаточно, чтобы построить локальный рейтинг внутри этой группы ничьих.

Смотрим вторую группу: "Золотарский хомяк" и "КрШа: Новая история со старыми персонажами".

1. Вариант сравнения друг с другом не годится — у них равное число голосующих, 11.

2. Смотрим на игру "Павший во мраке - Иные", стоящую выше по рейтингу. Сравним, "Х" и "К" с "Павшим".

"К" проигрывает "Павшему" 6 против 17 голосующих, а "Х" проигрывает "Павшему" — 7 против 22.

И вот тут вступаем в область "высшей математики". Что лучше +6/-17 или +7/-22? От этого зависит, как строить рейтинг в этой группе ничьих. И вот тут уже можно рассмотреть вариант, с исключением нулевых оценок, чтобы оценивать по реальным голосам и смотреть уже на эти результаты.

Как-то так.

P.S. Кстати, у "SW" и "Супа" ещё и ничья по голосам, то есть как раз по весам дуг, а это влияет на переходы. Но это отдельная тема.

Неактивен

1    1    #5
09.02.2019 13:53

Olegus t.Gl.
Участник (+1049, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2866
Вебсайт

Re: Новые методы голосования на КРИЛ

crem написал:

Не понимаю, объясни например почему у тебя сильнейший путь из Фуги в Чашку супа 14?
У меня 17:
Фуга. Чёрный странник. -> (20) -> Ты всё равно победишь! -> (17) -> Star Wars: Турнир Юнлингов -> (18) -> Ради чашки супа

(по поводу ничьих в пол-очка это у меня воспоминания из предыдущего метода, сейчас действительно никакой ничьи в пол-очка нету)

Я завтра отвечу, сейчас очень занят. Сделаю, чтобы можно было посмотреть ещё и пути, ведущие в тупик или в цикл, чтобы можно было разбирать все варианты.

Неактивен

2    0    #6
09.02.2019 15:11

Olegus t.Gl.
Участник (+1049, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2866
Вебсайт

Re: Новые методы голосования на КРИЛ

crem написал:

В процессе поиска сильнейшего пути надо найти самое слабое звено.

Уточню, чтобы не было недопонимания этого пункта. Нужно найти не самое слабое звено всех возможных путей, а самое слабое звено у сильнейшего пути. И поскольку сила пути определяется его слабейшим звеном, то из всех возможных путей нужно выбрать тот, у кого слабейшее звено БОЛЬШЕ, чем у остальных.

Неактивен

3    0    #7
09.02.2019 16:05

Olegus t.Gl.
Участник (+1049, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2866
Вебсайт

Re: Новые методы голосования на КРИЛ

crem написал:

А можно поинтересоваться, для кого это уточнение? smile
Если это объяснение метода для остальных посетителей форума, ок.
Но мне просто оно прозвучало так, будто бы оно мне и Блинову. Но по-моему должно быть очевидно, что если мы уже написали свои реализации алгоритма, то основы нам понятны.

Поскольку у нас у всех разные результаты, то кто-то что-то не так понял в основах. И я вполне допускаю, что все, кто у себя реализует это метод, могут сомневаться в моих результатах и алгоритмах. Поэтому я озвучиваю, как я воспринимаю (и соответственно как у меня реализованы) те или важные пункты. Просто, чтобы отбросить их из разбора, почему у нас всё разное. Никакого менторства.

Неактивен

1    0    #8
09.02.2019 16:11

Olegus t.Gl.
Участник (+1049, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2866
Вебсайт

Re: Новые методы голосования на КРИЛ

crem написал:

Раз уж мы заговорили о широком спектре голосований методом Шульце, добавлю ещё несколько переменных.

Между "остальные хуже" (добавляется 1 к дуге) и "остальные не знаю" (добавляется 0), возможен широкий спектр вариантов (от 0 до 1).
То есть можно сделать, чтоб "остальные хуже" учитывалось, но было меньший вес, чем активные голоса. (например, вес 0.3)

Так же, не обязательно делать "остальные хуже" (то есть как будто остальным поставили 0).
Вместо этого, можно сделать например "остальным 2.5".
Чтобы можно было поиграть в игру и поставить оценку "это настолько плохая игра, что я думаю, что она хуже тех игр, которые я не открывал".

Погоди, метод Шульце рассматривает не баллы, а места. Поэтому "остальные хуже" — это как раз нулевые баллы, чтобы гарантировано не смешивать их с теми, кому проставили 1 балл. В зачёт же идут не разницы между баллами, а больше они или меньше друг-друга. Наличие нуля в оценках указывает алгоритму, что эту пару можно сравнить. Если нуль отсутствует, то сравнивать тут нечего, тут нельзя определить кому отдать голос и всё такое.

Неактивен

3    0    #9
10.02.2019 14:01

Olegus t.Gl.
Участник (+1049, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2866
Вебсайт

Re: Новые методы голосования на КРИЛ

Olegus t.Gl. написал:

Я завтра отвечу, сейчас очень занят. Сделаю, чтобы можно было посмотреть ещё и пути, ведущие в тупик или в цикл, чтобы можно было разбирать все варианты.

Обновил модуль. Можно выбирать методику расчёта показателя сравнения (crem, по твоему перечню это 1, 2 и, наверное, 3), а также смотреть все пути, включая тупики и циклы (для сверки расчётов).

Вот: https://forum.ifiction.ru/kril2018schul … =1&c=2

Чтобы посмотреть пути теперь обязательно нужно выбрать пару игр. Для этого в нужно щёлкнуть на пересечении в таблице B или C.

Неактивен

Powered by PunBB
© copyright 2001–2022 iFiction.Ru