Показать сообщение отдельно
  #19  
Старый 13.03.2013, 14:23
Аватар для Alexander B.
Alexander B. Alexander B. вне форума
Super Moderator
 
Регистрация: 05.06.2006
Сообщения: 1,517
Отправить сообщение для  Alexander B. с помощью ICQ
По умолчанию

У вас в незнайке некий двоичный алгоритм, а там должен быть некий матричный.
Там допускаются неверные ответы, иногда он одинаоковые вопросы два раза подряд задает, как бы переспрашивает, когда в тупик заходит.
И вариантов ответов там 5: да, нет, не знаю, скорее да, скорее нет.


Как бы я делал алгоритм акинатора.
пусть 100.000 персонажей.
и 1.000 вопросов.
На каждый вопрос и каждый персонаж матрица содержит всего один байт, со знаком. Получается 100.000 *1.000 — всего 100Мб которые можно без проблем засунуть в оперативную память.
Байт матрицы — отвечает за степень привязки конкретного вопроса к конкретному персонажу.


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

для примера: 3 вопроса, 4 персонажа, сумма 100.
персонаж мужчина?
Джон Сильвер +90
Алла пугачева -100
Я 0
Конек-Горбунок +10

ваш персонаж одноногий и с попугаем?
Джон Сильвер +100
Алла пугачева -34
Я -32
Конек-Горбунок-34

ваш персонаж человек?
Джон Сильвер +33
Алла пугачева +33
Я +33
Конек-Горбунок -100


На первых этапах можно задавать вопросы случайно, но нужно считать ответы по всем персонажам.
Лучше особенно выделить стартовые вопросы: те, что имеют плавное распределение ответов, и близкое к равному количество положительных и отрицательных.
Ближе к концу можно отсеивать из алгоритма персонажей с низкой набранной суммой. Но нужно выбирать вопросы так, что-бы выявить из нескольких лидеров явного лидера. Для этого нужно задавать вопрос с наибольшей суммой абсолютных значений в линии матрицы, из оставшихся в лидерах персонажей. Он будет наиболее информативен.
Ответить с цитированием