Jane Nikiforova
октябрь 2015.
9961

Как акинатор угадывает? На чем основан принцип его распознавания?

Ответить
Ответить
Комментировать
2
Подписаться
2
2 ответа
Поделиться

Sergey Litvinov дал ссылку на исчерпывающее описание общей сути алгоритма.

Если же вы хотели получить ответ простыми словами, то можно ответить так.

На каждом вопросе Акинатор пытается выбрать такой вопрос, который отсеет наибольшее количество вариантов. Например, очень хорошим первым вопросом будет "загаданный персонаж - женщина"? При любом ответе сразу же отсеивается чуть ли не половина всех вариантов (а если человек ответит "не знаю" или "не совсем", то это персонаж из фантастики или мистики). Этот вопрос также очень хорош ещё и потому, что отвечающий очень редко назовёт мужчину женщиной по ошибке. Многие вопросы в этом плане могут быть более "скользкими", как например, "есть ли у этого персонажа дети"? Отвечающий может просто не знать настоящего ответа, а значит и положиться на этот ответ полностью нельзя. Акинатор должен стараться избегать вопросов, ответа на которые игрок может не знать. Но, в реальности, почти в любом вопросе человек может "обмануть", поэтому Акинатору имеет смысл для каждого вопроса держать "в голове" статистику о том, насколько часто люди ошибаются при ответе на этот вопрос и в какую сторону они ошибаются. В случае сомнений в истинности ответа этот ответ можно будет перепроверить ещё одним вопросом.

Но это уже детали. А общий принцип таков: каждый раз после вашего ответа у Акинатора "в голове" остаётся список персонажей, которые соответствуют вашим ответам. И каждый раз он старается задать вопрос, который вычеркнет наибольшее число вариантов, пока не останется один вариант. Секреты от клуба интеллектуалов Что нужно знать, чтобы выиграть в передаче «Кто хочет стать миллионером?»Почему у кого-то эта картинка двигается, а у кого-то нет?Почему ответ 30? 1+1+1+1+1 1+1+1+1+1 1+1х0+1=...Больше интересных загадок

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

Может казаться чудом, что Акинатор за 20 вопросов часто умудряется отгадать вашего персонажа, ведь он, вроде, и вопросов никаких особых не задал. Однако математика нам говорит, что если бы на каждом из 20 вопросов удавалось подобрать такой вопрос, чтобы ответ всегда отсеивал половину вариантов (как вопрос "женщина ли она"?), то 20 вопросов было бы достаточно, чтобы правильно отличать больше миллиона разных персонажей. А 40 вопросов было бы достаточно, чтобы отличить свыше триллиона (!) персонажей. Акинатор спроектирован так, чтобы как можно лучше находить нужные вопросы, и у него это весьма хорошо получается.

По сути, "Акинатор" это экспертная система (wikipedia.org). Достоверно неизвестно, какие именно алгоритмы решили использовать его создатели, однако существует целый ряд способов создать такую игру. Вот здесь, например, рассказывается, как можно реализовать "Акинатора" с помощью Байесовского подхода: geektimes.ru

Ответить