Эта проблема, кажется, идеально подходит для сокращения альфа-бета, так как легко получить нижнюю границу для ваших очков. Предположим, игрок сталкивается с четным числом бинов. Затем он может играть таким образом, чтобы все бины были четными или все нечетными:
Скажем, у нас есть 1 0 1 0 1 0, затем он может взять 1 слева, и, что бы ни делал противник, он просто продолжает собирать 1.
Таким образом, легко рассчитать нижнюю границу - это максимум суммы всех лотков на четных позициях и суммы всех лотков на нечетных позициях.
Для «нечетного» игрока вы можете просто взять сумму (длины + 1) / 2 наименьших значений, которая не так хороша, как оценка для «четного» игрока, но также легко рассчитывается.
Я думаю, что с этими границами дерево поиска будет редким для практического применения (хотя, я думаю, вы всегда можете найти «патологические» контрпримеры для этого типа проблемы), поэтому решение должно быть довольно быстрым.