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

![d_j = D[a_j],](/local--math/inline/c6dc44de5fc5573a2417a3dd04d07975.png)
где
принимает значения из множества
. Если
, то считается, что демон рекомендует программе ход
, если же
, то рекомендуемым ходом считается
. Если
, то выбирается ход
. Первоначально элементы массива
установлены в ноль. После получения информации об истинном ходе
человека демон корректирует массив
, добавляя к элементу
![D[p_0, \ldots, p_{n-1}, h_0, \ldots, h_{m-1}, h_m]](/local--math/inline/43794027cf50b9baec36454ba6d68ff6.png)
величину
,
где
— наперед заданное небольшое число, а
— номер хода.
Описание супервизора.
Супервизор управляет популяцией демонов, храня для каждого демона параметр его успешности. При необходимости предсказать очередной ход человека супервизор использует в качестве прогноза прогноз самого успешного демона, а при наличии нескольких демонов с одинаковой и максимальной успешностью, выбирает из них того, для которого величина
минимальна. В начале параметр успешности для всех демонов устанавливается в нулевое значение. После получения информации об истинном ходе человека все демоны, давшие правильный ответ премируются добавлением к их успешности величины

где
— наперед заданное небольшое число, а
— номер хода.





