Вы можете смоделировать то, что вы в настоящее время знаете об обследуемом, как вектор чисел. Каждый ответ, который вы соберете, будет обновлять этот вектор, и каждый вопрос будет иметь вектор весов, который переводит вектор обследуемого в одно число, показывающее, насколько хорошо задать следующий вопрос. Затем вы просто выбираете вопрос из оставшихся вопросов, который имеет наибольшую ценность. Ответ снова обновит вектор обследуемого, и весь процесс повторится. Вы также можете включить постоянный член для каждого вопроса, что сделало бы некоторые вопросы предпочтительнее других независимо от ответов.
Простейшим случаем было бы просто использовать одно число в качестве вектора обследуемого и векторов весов. Самый сложный случай - иметь векторы той же длины, что и количество возможных ответов. Вы также можете найти хорошую золотую середину.
Концептуально вы можете думать о каждом значении в ваших векторах как о конкретном «измерении» знаний об обследуемом. Например, если цель вашего опроса состоит в том, чтобы узнать факты об обследуемом по пяти различным параметрам, как, например, личностный тест «Большой пятерки», у вас может быть пять значений, отражающих, насколько хорошо вы уже знаете конкретное из пяти лакомств. Ответ, который сделает вас более уверенным в признаке «Открытость», снизит соответствующее значение и, по сути, сделает менее вероятным появление другого вопроса об этой характеристике. адаптировать это к различным вариантам использования. Его также должно быть просто реализовать, поскольку на многих языках есть библиотеки для хранения векторов и выполнения на них скалярного умножения.