В UCB1 есть два термина, которые определяют, какая рука выбрана следующей - средняя награда и граница достоверности.
average + sqrt(2 ln N / n_i)
Откладывая пока среднее вознаграждение, второй член зависит от общей суммы. количество выборок (N), которое является одинаковым для всех плеч, и общее количество образцов данного плеча (n_i). Таким образом, для всех рукавов, отобранных за одно и то же количество раз, второе слагаемое будет одинаковым.
Простой подход состоит в том, чтобы использовать ковши с количеством выполненных замеров. Затем, в каждом ведре, вы можете сортировать по наградам (по убыванию). Когда вы хотите решить, какую руку выбрать для следующей выборки, вы просто проверяете руку с наибольшей выплатой в каждой группе, а затем выбираете группу с наибольшим значением (из уравнения UCB) для выборки следующей. Вам не нужно будет тестировать больше, чем первая запись из каждого сегмента.
Есть и другие улучшения, которые могут быть выполнены в дополнение к этому, но это будет значительно лучше, чем перебирать все руки на каждом временном шаге. .