В теории графов декомпозиция дерева — это отображение графа в дерево , которое можно использовать для определения древовидной ширины графа и ускорения решения определенных вычислительных задач на графе.
Древовидные разложения также называются деревьями соединений , деревьями клик или деревьями соединений . Они играют важную роль в таких задачах, как вероятностный вывод , удовлетворение ограничений , оптимизация запросов , [1] и матричная декомпозиция .
Концепция разложения дерева была первоначально введена Рудольфом Халином (1976). Позднее она была переоткрыта Нилом Робертсоном и Полом Сеймуром (1984) и с тех пор изучалась многими другими авторами. [2]
Интуитивно, разложение дерева представляет вершины данного графа G как поддеревья дерева, таким образом, что вершины в G являются смежными только тогда, когда соответствующие поддеревья пересекаются. Таким образом, G образует подграф графа пересечений поддеревьев. Полный граф пересечений является хордовым графом .
Каждое поддерево связывает вершину графа с набором узлов дерева. Чтобы определить это формально, мы представляем каждый узел дерева как набор вершин, связанных с ним. Таким образом, для заданного графа G = ( V , E ) , разложение дерева представляет собой пару ( X , T ) , где X = { X 1 , …, X n } — семейство подмножеств (иногда называемых сумками ) V , а T — дерево, узлы которого являются подмножествами X i , удовлетворяющими следующим свойствам: [3]
Древовидная декомпозиция графа далеко не уникальна; например, тривиальная древовидная декомпозиция содержит все вершины графа в его единственном корневом узле.
Разложение дерева, в котором базовым деревом является граф путей, называется разложением пути, а параметр ширины, полученный из этих специальных типов разложения дерева, называется шириной пути .
Древовидная декомпозиция ( X , T = ( I , F )) древовидной ширины k является гладкой , если для всех и для всех . [4]
Ширина древовидной декомпозиции — это размер ее наибольшего множества X i минус один. Древовидная ширина tw( G ) графа G — это минимальная ширина среди всех возможных древовидных декомпозиций G . В этом определении размер наибольшего множества уменьшается на единицу, чтобы древовидная ширина дерева стала равна единице. Древовидная ширина может быть также определена из других структур, нежели древовидные декомпозиции, включая хордовые графы , ежевику и убежища .
NP-полной задачей является определение того, имеет ли заданный граф G древовидную ширину не более заданной переменной k . [5] Однако, когда k — любая фиксированная константа, графы с древовидной шириной k могут быть распознаны, и для них может быть построена древовидная декомпозиция ширины k за линейное время. [4] Зависимость этого алгоритма от времени k является экспоненциальной функцией k 3 .
В начале 1970-х годов было замечено, что большой класс задач комбинаторной оптимизации, определенных на графах, может быть эффективно решен с помощью не последовательного динамического программирования, пока граф имеет ограниченную размерность [6] , параметр, связанный с древовидной шириной. Позже, в конце 1980-х годов, несколько авторов независимо друг от друга заметили [7], что многие алгоритмические задачи, которые являются NP-полными для произвольных графов, могут быть эффективно решены с помощью динамического программирования для графов с ограниченной древовидной шириной, используя древовидные разложения этих графов.
В качестве примера рассмотрим задачу поиска максимального независимого множества в графе с древовидной шириной k . Чтобы решить эту задачу, сначала произвольно выберем один из узлов разложения дерева в качестве корня. Для узла X i разложения дерева пусть D i будет объединением множеств X j , нисходящих от X i . Для независимого множества пусть A ( S , i ) обозначает размер наибольшего независимого подмножества I из D i такого, что Аналогично для смежной пары узлов X i и X j , где X i дальше от корня дерева, чем X j , и независимого множества пусть B ( S , i , j ) обозначает размер наибольшего независимого подмножества I из D i такого, что Мы можем вычислить эти значения A и B путем обхода дерева снизу вверх:
где сумма при вычислении берется по потомкам узла X i .
В каждом узле или ребре есть не более 2 k множеств S, для которых нам нужно вычислить эти значения, поэтому если k является константой, то все вычисление занимает постоянное время на ребро или узел. Размер максимального независимого множества — это наибольшее значение, хранящееся в корневом узле, а само максимальное независимое множество может быть найдено (как это стандартно в алгоритмах динамического программирования) путем возврата по этим хранимым значениям, начиная с этого наибольшего значения. Таким образом, в графах ограниченной ширины дерева задача максимального независимого множества может быть решена за линейное время. Аналогичные алгоритмы применимы ко многим другим задачам графов.
Этот подход динамического программирования используется в машинном обучении через алгоритм дерева соединений для распространения убеждений в графах ограниченной ширины дерева. Он также играет ключевую роль в алгоритмах вычисления ширины дерева и построения декомпозиций деревьев: обычно такие алгоритмы имеют первый шаг, который аппроксимирует ширину дерева, строя декомпозицию дерева с этой приблизительной шириной, а затем второй шаг, который выполняет динамическое программирование в приблизительной декомпозиции дерева для вычисления точного значения ширины дерева. [4]