Алгоритм оптимизации деревьев решений

16

Фон

Бинарное дерево решений представляет собой корневое дерево , где каждый внутренний узел (и корень) помечен индекс J { 1 , . , , , n } , так что путь от корня к листу не повторяет индекс, листья помечаются выходами в { A , B } , а каждое ребро помечается 0 для левого потомка и 1 для правого потомка. Чтобы применить дерево к входу x :Tj{1,...,n}{A,B}01x

  1. Начать с корня
  2. если вы находитесь на листе, вы выводите метку листа или B и завершаетеAB
  3. Прочитайте метку j вашего текущего узла, если xj=0 затем перейдите к левому потомку, а если xj=1 то перейдите к правому потомку.
  4. перейти к шагу (2)

Дерево используется как способ оценки функций, в частности, мы говорим, что дерево T представляет полную функцию f если для каждого x{0,1}n мы имеем T(x)=f(x) . Сложность запроса дерева - это его глубина, а сложность запроса функции - это глубина самого маленького дерева, которое его представляет.


проблема

Для заданного двоичного дерева решений T выведите двоичное дерево решений T 'минимальной глубины, чтобы T и T' представляли одну и ту же функцию.

Вопрос

Каков самый известный алгоритм для этого? Известны ли нижние границы? Что если мы знаем, что ? А что, если мы требуем, чтобы T был приблизительно минимальной глубины?depth(T)=O(logdepth(T))T


Наивный подход

Наивный подход дается рекурсивно перечислить все бинарные деревья решений глубинной г - 1 при тестировании , если они оценивают одно и то же , как Т . Кажется, для этого требуется O ( d 2 n n !d=depth(T)d1Tшагов (при условии, что требуетсяdшагов, чтобы проверить, чтоT(x)оценивает для произвольногоx). Есть ли лучший подход?O(d2nn!(nd)!)dT(x)x

мотивация

Этот вопрос мотивирован предыдущим вопросом о компромиссе между сложностью запроса и сложностью времени . В частности, цель состоит в том, чтобы ограничить временное разделение для всех функций. Мы можем создать дерево из алгоритма, оптимального по времени, со временем выполнения t , а затем мы хотим преобразовать его в дерево T для алгоритма, оптимального для запроса. К сожалению, если t O ( n ! / ( N - d ) ! ) (И часто d Θ ( n )TtTtO(n!/(nd)!)dΘ(n)) узким местом является конверсия. Было бы неплохо , если бы мы могли бы заменить чем-то вроде 2 д .n!/(nd)!2d

Артем Казнатчеев
источник
Нахождение оптимального дерева решений является NP-полным. Меня учили, что в теории принятия решений и на занятиях по интеллектуальному анализу данных они основывались на заметках, и я не знаю оригинальной статьи, в которой был представлен результат.
chazisop
@chazisop круто, спасибо. Для меня не очевидно, что поиск оптимального дерева решений находится в NP, но я подумаю об этом / поищу его еще немного. Иногда знание утверждения теоремы - это уже полпути к доказательству: D.
Артем Казнатчеев
Я думаю, что самая ранняя ссылка на это: Нижние границы в списках решений и деревьях. (Хэнкок и др. 1994) cs.uwaterloo.ca/~mli/dl.ps
Лев Рейзин
1
Доказательство того, что нахождение оптимального дерева решений является NP-полной задачей, было дано Лораном Хьяфилом и Рональдом Л. Ривестом в Построении оптимальных бинарных деревьев решений, является NP-полным (1976). ссылка: здесь
антуан

Ответы:

16

У меня есть 3 ответа, все дают несколько разные результаты твердости.

Пусть - некоторая функция.f:{0,1}n{0,1}

Ответ 1

Учитывая решение дерева вычислительное п и число, это NP-трудно сказать , если существует дерево решений Т ' вычислительное п размером не более этого числа. TfTf( Zantema and Bodlaender '00 )

Ответ 2

Учитывая дерево решений вычисляющее f , NP трудно приблизить наименьшее вычисление дерева решений f к любому постоянному коэффициенту. Tff( Sieling '08 )

Ответ 3

Пусть будет размером наименьшего дерева решений, вычисляющего f . Учитывая дерево решений T, вычисляющее f , предполагая, что N P D T I M E ( 2 n ϵ ) для некоторого ϵ < 1 , невозможно найти эквивалентное дерево решений T размера s k для любого k 0 .sfTfNPDTIME(2nϵ)ϵ<1Tskk0

Я думаю, что этот более сильный ответ (опираясь на более слабое предположение) может быть получен из известных результатов теории обучения алгоритмов Оккама для деревьев решений с помощью следующего аргумента:

  1. Можно ли найти дерево решений по переменным за время n log s , где s - это наименьшее дерево решений, согласующееся с примерами из распределения (модель PAC). ( Blum '92 ) nnlogss
  2. Предполагая, что для некоторого ϵ < 1 , мы не можем PAC выучить деревья решений размера s по деревьям решений размера s k для любого k 0 . ( Алехнович и др. '07 )NPDTIME(2nϵ)ϵ<1sskk0

Эти два результата, по-видимому, подразумевают результат твердости вашей проблемы. С одной стороны (1) мы можем найти большое дерево решений; с другой стороны (2), мы не должны быть в состоянии минимизировать его, чтобы получить эквивалентный «маленький», размера , даже если существует размер s .sks

Лев Рейзин
источник
(Я нашел ваш ответ из этого ответа , который был размещен менее часа назад.)Похоже , что « » можно заменить «положительные е , так как уменьшаются е делает правая стороны Удерживающей в меньше .ϵ<1ϵϵ Кроме того, где в этом документе 2. показано?
См. Пункт № 2 в аннотации здесь: researchcher.watson.ibm.com/researcher/files/us-vitaly/…
Лев Рейзин
(исходя из того же ответа, что и Рикки Демер) Не могли бы вы подробнее рассказать, как вы получаете «ответ 3» из пунктов 1. и 2.? Я не очень знаком с теорией обучения и мне трудно соединять части ...
Марк
Эта проблема согласованности и обучаемости тесно связана с бритвой Оккама. Идея состоит в том, что если вы сможете найти непротиворечивую функцию из небольшого набора, вы сможете добиться успеха в изучении PAC. Следовательно, твердость результата обучения подразумевает результат «твердости последовательности». Я не уверен, сколько еще я могу объяснить в комментарии ...
Лев Рейзин
Насколько я понимаю, алгоритм, вызванный для 1., не запускается во время которое было бы необходимо, чтобы получить противоречие с 2. (точный результат в статье, если я понял его правильно говорит, что нет алгоритма обучения polytime для деревьев решений). Так что может быть проблема с вашей аргументацией. Poly(n,s)
Марк