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