Фон
Бинарное дерево решений представляет собой корневое дерево , где каждый внутренний узел (и корень) помечен индекс J ∈ { 1 , . , , , n } , так что путь от корня к листу не повторяет индекс, листья помечаются выходами в { A , B } , а каждое ребро помечается 0 для левого потомка и 1 для правого потомка. Чтобы применить дерево к входу x :
- Начать с корня
- если вы находитесь на листе, вы выводите метку листа или B и завершаете
- Прочитайте метку вашего текущего узла, если затем перейдите к левому потомку, а если то перейдите к правому потомку.
- перейти к шагу (2)
Дерево используется как способ оценки функций, в частности, мы говорим, что дерево представляет полную функцию если для каждого мы имеем . Сложность запроса дерева - это его глубина, а сложность запроса функции - это глубина самого маленького дерева, которое его представляет.
проблема
Для заданного двоичного дерева решений T выведите двоичное дерево решений T 'минимальной глубины, чтобы T и T' представляли одну и ту же функцию.
Вопрос
Каков самый известный алгоритм для этого? Известны ли нижние границы? Что если мы знаем, что ? А что, если мы требуем, чтобы T ′ был приблизительно минимальной глубины?
Наивный подход
Наивный подход дается рекурсивно перечислить все бинарные деревья решений глубинной г - 1 при тестировании , если они оценивают одно и то же , как Т . Кажется, для этого требуется O ( d 2 n n !шагов (при условии, что требуетсяdшагов, чтобы проверить, чтоT(x)оценивает для произвольногоx). Есть ли лучший подход?
мотивация
Этот вопрос мотивирован предыдущим вопросом о компромиссе между сложностью запроса и сложностью времени . В частности, цель состоит в том, чтобы ограничить временное разделение для всех функций. Мы можем создать дерево из алгоритма, оптимального по времени, со временем выполнения t , а затем мы хотим преобразовать его в дерево T ′ для алгоритма, оптимального для запроса. К сожалению, если t ∈ O ( n ! / ( N - d ) ! ) (И часто d ∈ Θ ( n )) узким местом является конверсия. Было бы неплохо , если бы мы могли бы заменить чем-то вроде 2 д .