Аноним

Дерево максимальной совместимости: различия между версиями

Материал из WEGA
м
нет описания правки
мНет описания правки
мНет описания правки
 
(не показано 19 промежуточных версий этого же участника)
Строка 4: Строка 4:


== Постановка задачи ==
== Постановка задачи ==
Представляет собой задачу сопоставления с образцом для деревьев с помеченными листьями. Каждое дерево на входе рассматривается как образец ветвления, порождающий конкретную группу листьев. Пусть имеется набор деревьев с идентичными множествами листьев; необходимо найти максимальное подмножество листьев по образцу ветвления, на котором входные деревья совпадают. Дерево максимальной совместимости – это дерево, содержащее такой набор листьев и включающее образцы ветвления входных деревьев для этих листьев. Задача нахождения дерева максимальной совместимости (maximum compatible problem, MCP) заключается в нахождении такого дерева или, что эквивалентно, его набора листьев. Больше всего решение этой задачи необходимо в филогенетике – для измерения сходства между эволюционными деревьями или для формирования консенсуса для множества деревьев. Впервые задача была поставлена в [9] и [10] под названием MRST (поддерево максимальной уточненности). Предыдущие работы рассматривали хорошо известную задачу нахождения [[поддерево максимального соответствия|поддерева максимального соответствия]] (maximum agreement subtree, MAST). Решением MAST будет нахождение наибольшего подмножества листьев, на котором все входные деревья '''точно''' совпадают. Более точно, алгоритм MAST ищет дерево, у которого схема ветвления изоморфна схеме поддерева каждого из входных деревьев, тогда как MCT ищет дерево, содержащее схему ветвления (т.е. группы) поддерева каждого входного дерева. В результате дерево, полученное по алгоритму MCT, оказывается более информативным, поскольку оно может содержать схему ветвления, представленную только в одном из деревьев, если она не противоречит остальным деревьям. Если все входные деревья являются бинарными, эти задачи эквивалентны. Ганапати и Уорноу [5] первыми предложили алгоритм для решения задачи MCT в общем виде. Алгоритм работает на базе простого динамического подхода, близкого к используемому при решении MAST [12], и имеет время исполнения, экспоненциальное относительно количества входных деревьев и максимальной степени вершин входных деревьев. Позднее в [2] был предложен алгоритм с фиксированными параметрами, использующий только один параметр. Также были получены приближенные результаты [1, 6] – недорогие алгоритмы с полиномиальным временем исполнения, аппроксимирующие дополнение задачи MCT с константным порогом.
Эта задача представляет собой задачу сопоставления с образцом для деревьев с помеченными листьями. Каждое дерево на входе рассматривается как образец ветвления, порождающий конкретную группу листьев. Пусть имеется набор деревьев с идентичными множествами листьев; необходимо найти максимальное подмножество листьев по образцу ветвления, на котором входные деревья совпадают. Дерево максимальной совместимости – это дерево, содержащее такой набор листьев и включающее образцы ветвления входных деревьев для этих листьев. Задача нахождения дерева максимальной совместимости (maximum compatible problem, MCP) заключается в нахождении такого дерева или, что эквивалентно, его набора листьев. Больше всего решение этой задачи необходимо в филогенетике – для измерения сходства между эволюционными деревьями или для формирования консенсуса для множества деревьев. Впервые задача была поставлена в [9] и [10] под названием MRST (поддерево максимальной уточненности). Предыдущие работы рассматривали хорошо известную задачу нахождения [[поддерево максимального соответствия|поддерева максимального соответствия]] (maximum agreement subtree, MAST). Решением MAST будет нахождение наибольшего подмножества листьев, на котором все входные деревья '''точно''' совпадают. Более точно, алгоритм MAST ищет дерево, у которого схема ветвления изоморфна схеме поддерева каждого из входных деревьев, тогда как MCT ищет дерево, содержащее схему ветвления (т.е. группы) поддерева каждого входного дерева. В результате дерево, полученное по алгоритму MCT, оказывается более информативным, поскольку оно может содержать схему ветвления, представленную только в одном из деревьев, если она не противоречит остальным деревьям. Если все входные деревья являются бинарными, эти задачи эквивалентны. Ганапати и Уорноу [5] первыми предложили алгоритм для решения задачи MCT в общем виде. Алгоритм работает на базе простого динамического подхода, близкого к используемому при решении MAST [12], и имеет время выполнения, экспоненциальное относительно количества входных деревьев и максимальной степени вершин входных деревьев. Позднее в [2] был предложен алгоритм с фиксированными параметрами, использующий только один параметр. Также были получены приближенные результаты [1, 6] – недорогие алгоритмы с полиномиальным временем выполнения, аппроксимирующие дополнение задачи MCT с константным порогом.




Строка 14: Строка 14:


== Нотация ==
== Нотация ==
Деревья, которые здесь рассматриваются, представляют собой эволюционные (филогенетические) деревья. Такое дерево T имеет множество листьев L(T), находящихся во взаимно-однозначном соответствии с множеством меток, и является либо корневым (в этом случае все внутренние вершины имеют не менее двух потомков), либо некорневым (в этом случае внутренние вершины имеют степень не ниже трех). Размером |T| дерева T является число его листьев. Пусть дано множество меток L и дерево T; ограничение T согласно L, обозначаемое T|L, представляет собой дерево, полученное следующим образом: взять наименьший порожденный подграф T, соединяющий листья с метками из L \ L(T), а затем удалить две некорневых вершины любой степени, чтобы дерево стало гомеоморфно неприводимым. Два дерева T и T0 являются изоморфными (T = T0) в том и только том случае, если существует изоморфизм графов T 7! T0, сохраняющий метки листьев (и корень, если оба дерева были корневыми). Дерево T уточняет дерево T0 (T D T0), если T может быть преобразовано в T путем коллапсирования некоторых его внутренних ребер (под коллапсированием ребра понимается его удаление и слияние его конечных точек). На рис. 1 приведены примеры таких отношений между деревьями.
Деревья, которые здесь рассматриваются, представляют собой эволюционные (филогенетические) деревья. Такое дерево T имеет множество листьев L(T), находящихся во взаимно-однозначном соответствии с множеством меток, и является либо корневым (в этом случае все внутренние вершины имеют не менее двух потомков), либо некорневым (в этом случае внутренние вершины имеют степень не ниже трех). Размером |T| дерева T является число его листьев. Пусть дано множество меток L и дерево T; [[топологическое ограничение|[топологическое] ограничение]] T согласно L, обозначаемое T|L, представляет собой дерево, полученное следующим образом: взять наименьший порожденный подграф T, соединяющий листья с метками из <math>L \cap L(T) \;</math>, а затем удалить две некорневых вершины любой степени, чтобы дерево стало гомеоморфно неприводимым. Два дерева T и T' являются [[изоморфизм|изоморфными]] (T = T') в том и только том случае, если существует [[изоморфизм графов]] <math>T \mapsto T' \;</math>, сохраняющий метки листьев (и корень, если оба дерева были корневыми). Дерево T ''уточняет'' дерево T' (<math>T \trianglerighteq T' \;</math>), если T может быть преобразовано в T путем ''коллапсирования'' некоторых его внутренних ребер (под коллапсированием ребра понимается его удаление и слияние его конечных точек). На рис. 1 приведены примеры таких отношений между деревьями.




Отметим, что дерево T, должным образом уточняющее дерево T0, согласуется со всей эволюционной историей T0, но при этом содержит дополнительную информацию, отсутствующую в T0: по меньшей мере одна вершина высокой степени из T заменяется в T несколькими вершинами меньших степеней, следовательно, T содержит больше событий видообразования, чем T0. Пусть имеется набор T = {T1, T2, ... : : Tk} входных деревьев с идентичными множествами листьев L. Мы говорим, что дерево T с листьями из L совместимо с T в том и только том случае, если 8Ti 2 T, T D TijL(T). Если существует дерево T, совместимое с T, такое, что L(T) = L, то набор T называется совместимым. Для решения вопроса, является ли набор деревьев совместимым, давно известны линейные алгоритмы (см., например, в [8]). Задача нахождения дерева максимальной совместимости представляет собой вариант естественной оптимизации данной задачи, позволяющий обрабатывать наборы несовместимых деревьев.
Отметим, что дерево T, должным образом уточняющее дерево T', согласуется со всей эволюционной историей T', но при этом содержит дополнительную информацию, отсутствующую в T': по меньшей мере одна вершина высокой степени из T заменяется в T несколькими вершинами меньших степеней, следовательно, T содержит больше событий видообразования, чем T'. Пусть имеется набор <math>\mathcal{T} = {T_1, T_2, ..., T_k} \;</math> входных деревьев с идентичными множествами листьев L. Мы говорим, что дерево T с листьями из L ''совместимо'' с <math>\mathcal{T} \;</math> в том и только том случае, если <math>\forall \mathcal{T}_i \in \mathcal{T}, T \trianglerighteq T_i|L(T) \;</math>. Если существует дерево <math>\mathcal{T} \;</math>, совместимое с T, такое, что L(T) = L, то набор T называется ''совместимым''. Для решения вопроса, является ли набор деревьев совместимым, давно известны линейные алгоритмы (см., например, в [8]). Задача нахождения дерева максимальной совместимости представляет собой вариант естественной оптимизации данной задачи, позволяющий обрабатывать наборы несовместимых деревьев.




Задача 1. Дерево максимальной совместимости (MCT)
'''Задача 1. Дерево максимальной совместимости (MCT)'''


Дано: набор деревьев T с идентичными множествами листьев. Требуется: найти дерево, совместимое с T, с наибольшим числом листьев. Такое дерево обозначается MCT(T),
Дано: набор деревьев <math>\mathcal{T} \;</math> с идентичными множествами листьев.
его пример приведен на рис. 2. Заметим, что 8T ; jMCT(T)j > jMAST(T)j, и MCT эквивалентно MAST в случае, если входные деревья являются бинарными. Также стоит отметить, что задачи MCT и MAST имеют несколько оптимальных решений.
 
Требуется: найти дерево, совместимое с <math>\mathcal{T} \;</math>, с наибольшим числом листьев. Такое дерево обозначается <math>MCT(\mathcal{T}) \;</math>, его пример приведен на рис. 2.
 
Заметим, что <math>\forall \mathcal{T}, |MCT(\mathcal{T})| \ge |MAST(\mathcal{T})| \;</math>, и MCT эквивалентно MAST в случае, если входные деревья являются бинарными. Также стоит отметить, что задачи MCT и MAST имеют несколько оптимальных решений.
   
   


[[Файл:MCT1.jpg]]
[[Файл:MCT2.jpg]]


Дерево максимальной совместимости, рис. 2
Дерево максимальной совместимости, рис. 2


Набор из двух несовместимых входных деревьев fT1;T2g и их дерево максимальной совместимости T = MCT(T1 ; T2). Если удалить лист d, входные деревья станут совместимыми, поскольку ЦТ) = fa;b;c;eg. Здесь дерево T строго уточняет T2, ограниченное согласно L(T), что выражается тем обстоятельством, что потомки вершины дерева T2 (изображенной серым цветом) распределены между несколькими связанными вершинами T (также серого цвета). Отметим также, что jMCT(T1 ; T2)j > jMAST(T1 ; T2)j
Набор из двух несовместимых входных деревьев <math>{T_1, T_2} \;</math> и их дерево максимальной совместимости <math>T = MCT(T_1, T_2) \;</math>. Если удалить лист d, входные деревья станут совместимыми, поскольку L(Т) = {a, b, c, d}. Здесь дерево T строго уточняет <math>T_2\;</math> , ограниченное согласно L(T), что выражается тем обстоятельством, что потомки вершины дерева <math>T_2 \;</math> (изображенной серым цветом) распределены между несколькими связанными вершинами T (также серого цвета). Отметим также, что <math>|MCT(T_1, T_2)| > |MAST(T_1, T_2)| \;</math>.


== Основные результаты ==
== Основные результаты ==


Точные алгоритмы
'''Точные алгоритмы'''


Было показано, что задача MCT является NP-полной для 6 деревьев ([9]) и для 2 деревьев [10]. NP-полнота появляется, когда по меньшей мере одно из входных деревьев имеет неограниченную степень. Для случая двух деревьев с ограниченной степенью Хайн и коллеги упоминают алгоритм с полиномиальным временем исполнения, основанный на выравнивании деревьев [10]. Ганапати и Уорноу [5] предложили экспоненциальный алгоритм для решения задачи MCT в общем виде. Они показали, как для двух деревьев T1, T2 вычислить бинарное дерево MCT для любой пары поддеревьев (S1 2 T1; S2 2 T2) при помощи динамических алгоритмов. Поддеревья, корни которых имеют высокую степень, обрабатываются путем рассмотрения каждого возможного разбиения потомков корня на два множества. Из-за этого в оценке сложности появляется экспоненциальный терм относительно d – максимальной степени вершин входных деревьев. Если имеются k входных деревьев, то рассматриваются кортежи из k поддеревьев и производится подобное же разбиение потомков корневых вершин на два множества для k поддеревьев. Следовательно, сложность по-прежнему является экспоненциальной относительно k.
Было показано, что задача MCT является NP-полной для 6 деревьев ([9]) и для 2 деревьев [10]. NP-полнота появляется, когда по меньшей мере одно из входных деревьев имеет неограниченную степень. Для случая двух деревьев с ограниченной степенью Хайн и коллеги упоминают алгоритм с полиномиальным временем выполнения, основанный на выравнивании деревьев [10]. Ганапати и Уорноу [5] предложили экспоненциальный алгоритм для решения задачи MCT в общем виде. Они показали, как для двух деревьев <math>T_1, T_2 \;</math> вычислить бинарное дерево MCT для любой пары поддеревьев <math>(S_1 \in T_1, S_2 \in T_2) \;</math> при помощи динамических алгоритмов. Поддеревья, корни которых имеют высокую степень, обрабатываются путем рассмотрения каждого возможного разбиения потомков корня на два множества. Из-за этого в оценке сложности появляется экспоненциальный терм относительно d – максимальной степени вершин входных деревьев. Если имеются k входных деревьев, то рассматриваются кортежи из k поддеревьев и производится подобное же разбиение потомков корневых вершин на два множества для k поддеревьев. Следовательно, сложность по-прежнему является экспоненциальной относительно k.
 
 
'''Теорема 1 ([5]).''' Пусть L – множество, содержащее n листьев. Задача MCT для набора из k корневых деревьев с листьями из L, в котором каждое дерево имеет степень не выше d + 1, может быть решена за время <math>O(2^{2kd} n^k) \;</math>.




Теорема 1 ([5]). Пусть L – множество, содержащее n листьев. Задача MCT для набора из k корневых деревьев с листьями из L, в котором каждое дерево имеет степень не выше d + 1, может быть решена за время O(22kdnk).
Результат можно легко расширить на некорневые деревья, если рассматривать каждый из n листьев как возможный корень для всех деревьев набора.
Результат можно легко расширить на некорневые деревья, если рассматривать каждый из n листьев как возможный корень для всех деревьев набора.




Теорема 2 ([5]). Пусть дан набор из k некорневых деревьев, степени которых не превышают d + 1, с множеством листьев мощности n. Тогда задача MCT может быть решена за время O(22kd nk+1).
'''Теорема 2 ([5]).''' Пусть дан набор из k некорневых деревьев, степени которых не превышают d + 1, с множеством листьев мощности n. Тогда задача MCT может быть решена за время <math>O(2^{2kd} n^{k+1}) \;</math>.
 
 
Пусть <math>\mathcal{T} \;</math> – набор деревьев с листьями из множества L. В работе [2] рассматривалась следующая задача, названная <math>MCT_p \;</math>: пусть даны <math>\mathcal{T} \;</math> и <math>p \in [0, n] \;</math>; верно ли, что <math>|MCT(\mathcal{T})j| \ge n - p \;</math>?
 
 
'''Теорема 3 ([2]).'''
 
1. Задача <math>MCT_p \;</math> для корневых деревьев может быть решена за время <math>O(min \{ 3^p kn, 2.27^p + kn^3 \}) \;</math>.


Пусть T – набор деревьев с листьями из множества L. В работе [2] рассматривалась следующая задача, названная MCTp: пусть даны T и p 2 [0; n]; верно ли jMCT(T)j > n-p?
2. Задача <math>MCT_p \;</math> для некорневых деревьев может быть решена за время <math>O \big( (p + 1) \times min \{ 3^p kn, 2.27^p + kn^3 \} \big) \;</math>.




Теорема 3 ([2]).
Терм <math>3^p kn \;</math> возникает из-за использования алгоритма, который вначале за время O(kn) локализует множество S из трех листьев, на котором входные деревья конфликтуют, а затем рекурсивным образом вычисляет деревья максимальной совместимости <math>T_1 \;</math>, <math>T_2 \;</math> и <math>T_3 \;</math> для каждого из трех наборов <math>\mathcal{T}_1 \;</math>, <math>\mathcal{T}_2 \;</math> и <math>\mathcal{T}_3 \;</math>, соответственно, полученных посредством удаления принадлежащего S листа из входных деревьев, и затем возвращает <math>T_i \;</math>, такое, что <math>|T_i| \;</math> максимально (для <math>i \in [1, 3] \;</math>). Терм <math>2.27^p + kn^3 \;</math> появляется из-за использования алгоритма, выполняющего редукцию MCT до 3-HITTING SET. Гийемо и Николя получили отрицательный результат при рассмотрении возможности разрешимости MCT с фиксированными параметрами для входных деревьев степени не выше D.
1. Задача MCTp для корневых деревьев может быть решена за время O(minf3pkn; 2:27p + kn3g).
2. Задача MCTp для некорневых деревьев может быть решена за время O({p + 1) x minf3p kn; 2:27p + kn3}).


Терм 3pkn возникает из-за использования алгоритма, который вначале за время O(kn) локализует множество S из трех листьев, на котором входные деревья конфликтуют, а затем рекурсивным образом вычисляет деревья максимальной совместимости T1, T2 и T3 для каждого из трех наборов T1, T2 и T3, соответственно, полученных посредством удаления принадлежащего S листа из входных деревьев, и затем возвращает Ti, такое, что \T\ максимально (для i 2 [1; 3]). Терм 2:27p + kn3 появляется из-за использования алгоритма, выполняющего редукцию MCT до 3-HITTING SET. Гийемо и Николя получили отрицательный результат при рассмотрении возможности разрешимости MCT с фиксированными параметрами для входных деревьев степени не выше D.


'''Теорема 4 ([7]).'''


Теорема 4 ([7]).
1. MCT является W[1]-полной относительно D.
1. MCT является W[1]-полной относительно D.
2. MCT не может быть решена за время O(No(2D/2)), если только не выполняется SNP С SE, где N обозначает длину входных элементов, т.е. N = O(kn).
 
2. MCT не может быть решена за время <math>O(N^{o(2^{D/2})}) \;</math>, если только не выполняется <math>SNP \subseteq SE \;</math>, где N обозначает длину входных элементов, т.е. N = O(kn).
 


Задача MCT также предполагает вариант для супердеревьев, то есть деревьев, имеющих различные, но перекрывающиеся наборы листьев. В этом варианте задача является W[2]-полной относительно top[3].
Задача MCT также предполагает вариант для супердеревьев, то есть деревьев, имеющих различные, но перекрывающиеся наборы листьев. В этом варианте задача является W[2]-полной относительно top[3].




Алгоритмы аппроксимации
'''Аппроксимационные алгоритмы'''
Идея локализации и последующего успешного удаления всех конфликтов между входными деревьями также привела к созданию алгоритмов аппроксимации для дополнения задачи MCT, обозначаемого CMCT. Пусть L – множество листьев каждого дерева входного набора T. Целью задачи CMCT является выбор наименьшего числа листьев SCI, таких, что набор fTij(L - S) : Ti 2 Tg является совместимым.
 
Идея локализации и последующего успешного удаления всех конфликтов между входными деревьями также привела к созданию аппроксимационных алгоритмов для ''дополнения'' задачи MCT, обозначаемого CMCT. Пусть L – множество листьев каждого дерева входного набора T. Целью задачи CMCT является выбор наименьшего числа листьев <math>S \subseteq I \;</math>, таких, что набор <math>\{ T_i | (L - S): T_i \in \mathcal{T} \} \;</math> является совместимым.




Теорема 5 ([6]). Пусть дан набор T из k корневых деревьев с множеством листьев L мощности n. Тогда существует алгоритм 3-аппроксимации задачи MCT с временем исполнения O(k2n2).
'''Теорема 5 ([6]).''' Пусть дан набор <math>\mathcal{T} \;</math> из k корневых деревьев с множеством листьев L мощности n. Тогда существует алгоритм 3-аппроксимации задачи MCT с временем выполнения <math>O(k^2 n^2) \;</math>.
Время исполнения этого алгоритма позднее было улучшено:
 
 
Время выполнения этого алгоритма позднее было улучшено:
 
 
'''Теорема 6 ([1]).''' Существует алгоритм 3-аппроксимации с временем выполнения <math>O(kn + n^2) \;</math> для решения задачи CMCT на наборе k корневых деревьев с n листьев.




Теорема 6 ([1]). Существует алгоритм 3-аппроксимации с временем исполнения O(kn + n2) для решения задачи CMCT на наборе k корневых деревьев с n листьев.
Отметим, что достижимый порог аппроксимации для CMCT не меняется в зависимости от того, рассматриваются ли корневые или некорневые деревья [1].
Отметим, что достижимый порог аппроксимации для CMCT не меняется в зависимости от того, рассматриваются ли корневые или некорневые деревья [1].


== Применение ==
== Применение ==
Строка 83: Строка 97:


== Открытые вопросы ==
== Открытые вопросы ==
В будущем имеет смысл изучение варианта алгоритма MCT, в котором некоторые листья обязательно должны быть представлены в выходном дереве. Эта проблема появляется тогда, когда биологи хотят, чтобы определенные виды, занимающие важное место в их исследовании, обязательно содержались в выходном дереве. Для задачи MAST на двух деревьях этот вариант с ограничениями показал такую же сложность, как и стандартный вариант [ ]. Однако для MCT подобное ограничение может быть связано с решением нескольких проблем оптимизации. Еще одна необходимая работа – это серия экспериментов по измерению диапазона параметров, для которых окажутся полезными алгоритмы точного или приближенного решения задачи MCT.
В будущем имеет смысл изучение варианта алгоритма MCT, в котором некоторые листья обязательно должны быть представлены в выходном дереве. Эта проблема появляется тогда, когда биологи хотят, чтобы определенные виды, занимающие важное место в их исследовании, обязательно содержались в выходном дереве. Для задачи MAST на двух деревьях этот вариант с ограничениями показал такую же сложность, как и стандартный вариант [4]. Однако для MCT подобное ограничение может быть связано с решением нескольких проблем оптимизации. Еще одна необходимая работа – это серия экспериментов по измерению диапазона параметров, для которых окажутся полезными алгоритмы точного или приближенного решения задачи MCT.
 


== См. также ==
== См. также ==


* ''[[Поддерево максимального соответствия (для двух бинарных деревьев)]]
* ''[[Поддерево максимального соответствия|Поддерево максимального соответствия (для двух бинарных деревьев)]]
* ''[[Поддерево максимального соответствия (для трех или более деревьев)]]
* ''[[Поддерево максимального соответствия (для трех или более деревьев)]]


== Литература ==
== Литература ==
4446

правок