4511
правок
Irina (обсуждение | вклад) мНет описания правки |
Irina (обсуждение | вклад) мНет описания правки |
||
(не показана 21 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
== Ключевые слова и синонимы == | == Ключевые слова и синонимы == | ||
Поддерево максимальной уточненности (MRST) | [[Поддерево максимальной уточненности]] (MRST) | ||
== Постановка задачи == | == Постановка задачи == | ||
Эта задача представляет собой задачу сопоставления с образцом для деревьев с помеченными листьями. Каждое дерево на входе рассматривается как образец ветвления, порождающий конкретную группу листьев. Пусть имеется набор деревьев с идентичными множествами листьев; необходимо найти максимальное подмножество листьев по образцу ветвления, на котором входные деревья совпадают. Дерево максимальной совместимости – это дерево, содержащее такой набор листьев и включающее образцы ветвления входных деревьев для этих листьев. Задача нахождения дерева максимальной совместимости (maximum compatible problem, MCP) заключается в нахождении такого дерева или, что эквивалентно, его набора листьев. Больше всего решение этой задачи необходимо в филогенетике – для измерения сходства между эволюционными деревьями или для формирования консенсуса для множества деревьев. Впервые задача была поставлена в [9] и [10] под названием MRST (поддерево максимальной уточненности). Предыдущие работы рассматривали хорошо известную задачу нахождения [[поддерево максимального соответствия|поддерева максимального соответствия]] (maximum agreement subtree, MAST). Решением MAST будет нахождение наибольшего подмножества листьев, на котором все входные деревья '''точно''' совпадают. Более точно, алгоритм MAST ищет дерево, у которого схема ветвления изоморфна схеме поддерева каждого из входных деревьев, тогда как MCT ищет дерево, содержащее схему ветвления (т.е. группы) поддерева каждого входного дерева. В результате дерево, полученное по алгоритму MCT, оказывается более информативным, поскольку оно может содержать схему ветвления, представленную только в одном из деревьев, если она не противоречит остальным деревьям. Если все входные деревья являются бинарными, эти задачи эквивалентны. Ганапати и Уорноу [5] первыми предложили алгоритм для решения задачи MCT в общем виде. Алгоритм работает на базе простого динамического подхода, близкого к используемому при решении MAST [12], и имеет время выполнения, экспоненциальное относительно количества входных деревьев и максимальной степени вершин входных деревьев. Позднее в [2] был предложен алгоритм с фиксированными параметрами, использующий только один параметр. Также были получены приближенные результаты [1, 6] – недорогие алгоритмы с полиномиальным временем выполнения, аппроксимирующие дополнение задачи MCT с константным порогом. | |||
[[Файл:MCT1.jpg]] | |||
Дерево максимальной совместимости, рис. 1 | Дерево максимальной совместимости, рис. 1 | ||
Три некорневых дерева: дерево T; дерево T’, такое, что T’ = T | {a, c, e}; дерево T’’, такое, что T’’ | |||
Три некорневых дерева: дерево T; дерево T’, такое, что T’ = T | {a, c, e}; дерево T’’, такое, что T’’ <math>\trianglerighteq</math> T | |||
== Нотация == | == Нотация == | ||
Деревья, которые здесь рассматриваются, представляют собой эволюционные (филогенетические) деревья. Такое дерево T имеет множество листьев L(T), находящихся во взаимно-однозначном соответствии с множеством меток, и является либо корневым (в этом случае все внутренние вершины имеют не менее двух потомков), либо некорневым (в этом случае внутренние вершины имеют степень не ниже трех). Размером |T| дерева T является число его листьев. Пусть дано множество меток L и дерево T; ограничение T согласно L, обозначаемое T|L, представляет собой дерево, полученное следующим образом: взять наименьший порожденный подграф T, соединяющий листья с метками из L \ L(T), а затем удалить две некорневых вершины любой степени, чтобы дерево стало гомеоморфно неприводимым. Два дерева T и | Деревья, которые здесь рассматриваются, представляют собой эволюционные (филогенетические) деревья. Такое дерево 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, должным образом уточняющее дерево | Отметим, что дерево 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. Заметим, что | |||
Требуется: найти дерево, совместимое с <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 имеют несколько оптимальных решений. | |||
[[Файл:MCT2.jpg]] | |||
Дерево максимальной совместимости, рис. 2 | Дерево максимальной совместимости, рис. 2 | ||
Набор из двух несовместимых входных деревьев | Набор из двух несовместимых входных деревьев <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 в общем виде. Они показали, как для двух деревьев <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>. | |||
Результат можно легко расширить на некорневые деревья, если рассматривать каждый из n листьев как возможный корень для всех деревьев набора. | Результат можно легко расширить на некорневые деревья, если рассматривать каждый из n листьев как возможный корень для всех деревьев набора. | ||
Теорема 2 ([5]). Пусть дан набор из k некорневых деревьев, степени которых не превышают d + 1, с множеством листьев мощности n. Тогда задача MCT может быть решена за время O( | '''Теорема 2 ([5]).''' Пусть дан набор из k некорневых деревьев, степени которых не превышают d + 1, с множеством листьев мощности n. Тогда задача MCT может быть решена за время <math>O(2^{2kd} n^{k+1}) \;</math>. | ||
Пусть T – набор деревьев с листьями из множества L. В работе [2] рассматривалась следующая задача, названная | Пусть <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]). | '''Теорема 3 ([2]).''' | ||
1. Задача <math>MCT_p \;</math> для корневых деревьев может быть решена за время <math>O(min \{ 3^p kn, 2.27^p + kn^3 \}) \;</math>. | |||
2. Задача <math>MCT_p \;</math> для некорневых деревьев может быть решена за время <math>O \big( (p + 1) \times min \{ 3^p kn, 2.27^p + kn^3 \} \big) \;</math>. | |||
Терм <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. | |||
'''Теорема 4 ([7]).''' | |||
1. MCT является W[1]-полной относительно D. | 1. MCT является W[1]-полной относительно D. | ||
2. MCT не может быть решена за время O( | |||
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 является выбор наименьшего числа листьев <math>S \subseteq I \;</math>, таких, что набор <math>\{ T_i | (L - S): T_i \in \mathcal{T} \} \;</math> является совместимым. | |||
'''Теорема 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 листьев. | ||
Отметим, что достижимый порог аппроксимации для CMCT не меняется в зависимости от того, рассматриваются ли корневые или некорневые деревья [1]. | Отметим, что достижимый порог аппроксимации для CMCT не меняется в зависимости от того, рассматриваются ли корневые или некорневые деревья [1]. | ||
== Применение == | == Применение == | ||
Строка 79: | Строка 97: | ||
== Открытые вопросы == | == Открытые вопросы == | ||
В будущем имеет смысл изучение варианта алгоритма MCT, в котором некоторые листья обязательно должны быть представлены в выходном дереве. Эта проблема появляется тогда, когда биологи хотят, чтобы определенные виды, занимающие важное место в их исследовании, обязательно содержались в выходном дереве. Для задачи MAST на двух деревьях этот вариант с ограничениями показал такую же сложность, как и стандартный вариант [ ]. Однако для MCT подобное ограничение может быть связано с решением нескольких проблем оптимизации. Еще одна необходимая работа – это серия экспериментов по измерению диапазона параметров, для которых окажутся полезными алгоритмы точного или приближенного решения задачи MCT. | В будущем имеет смысл изучение варианта алгоритма MCT, в котором некоторые листья обязательно должны быть представлены в выходном дереве. Эта проблема появляется тогда, когда биологи хотят, чтобы определенные виды, занимающие важное место в их исследовании, обязательно содержались в выходном дереве. Для задачи MAST на двух деревьях этот вариант с ограничениями показал такую же сложность, как и стандартный вариант [4]. Однако для MCT подобное ограничение может быть связано с решением нескольких проблем оптимизации. Еще одна необходимая работа – это серия экспериментов по измерению диапазона параметров, для которых окажутся полезными алгоритмы точного или приближенного решения задачи MCT. | ||
== См. также == | == См. также == | ||
* ''[[Поддерево максимального соответствия (для двух бинарных деревьев)]] | * ''[[Поддерево максимального соответствия|Поддерево максимального соответствия (для двух бинарных деревьев)]] | ||
* ''[[Поддерево максимального соответствия (для трех или более деревьев)]] | * ''[[Поддерево максимального соответствия (для трех или более деревьев)]] | ||
== Литература == | == Литература == |
правок