Аноним

Сортировка перестановок со знаками при помощи обращений (последовательность обращений): различия между версиями

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


== Постановка задачи ==
== Постановка задачи ==
''Подписанная перестановка'' <math>\pi</math> размера n представляет собой перестановку над множеством {-n, ... , -1, 1, ..., n}, где <math>\pi_{- i} = - \pi_i</math> для всех i.
''Перестановка со знаками'' <math>\pi</math> размера n представляет собой перестановку над множеством {-n, ... , -1, 1, ..., n}, где <math>\pi_{- i} = - \pi_i</math> для всех i.




Строка 11: Строка 11:




Пусть <math>\rho_1, ..., \rho_k</math> – последовательность обращений. Она ''сортирует'' перестановку <math>\pi</math>, если <math>\pi \cdot \rho_1 \cdot \cdot \cdot \rho_k = Id</math>, где Id = (1, ..., n) – тождественная перестановка. Длина кратчайшей последовательности обращений при сортировке <math>\pi</math> называется ''расстоянием обращения'' <math>\pi</math> и обозначается как <math>d(\pi)</math>.
Пусть <math>\rho_1, ..., \rho_k</math> – последовательность обращений. Она ''сортирует'' перестановку <math>\pi</math>, если <math>\pi \cdot \rho_1 \cdot \cdot \cdot \rho_k = Id</math>, где <math>Id = (1, ..., n)</math> – тождественная перестановка. Длина кратчайшей последовательности обращений, сортирующей <math>\pi</math>, называется ''расстоянием обращения'' <math>\pi</math> и обозначается как <math>d(\pi)</math>.




Если вычисление <math>d(\pi)</math> производится за линейное время [2] (см. статью «[[Сортировка подписанных перестановок при помощи обращений (расстояние обращения)|Расстояние обращений]]»), то вычисление последовательности размера <math>d(\pi)</math>, выполняющей сортировку <math>\pi</math>, является более сложным, и для него пока не разработано линейных алгоритмов. Наилучшие параметры сложности на данный момент демонстрирует решение Танье и Сагот [17], которое было теоретически улучшено в работах Танье, Бержерон и Сагот [18] и Хана [8].
Если вычисление <math>d(\pi)</math> производится за линейное время [2] (см. статью «[[Сортировка перестановок со знаками при помощи обращений (расстояние обращения)|Расстояние обращений]]»), то вычисление последовательности размера <math>d(\pi)</math>, выполняющей сортировку <math>\pi</math>, является более сложным, и для него пока не разработано линейных алгоритмов. Наилучшие параметры сложности на данный момент демонстрирует решение Танье и Сагот [17], которое было теоретически улучшено в работах Танье, Бержерон и Сагот [18] и Хана [8].


== Основные результаты ==
== Основные результаты ==
Вспомним, что существует линейный алгоритм для вычисления расстояния обращений по формуле d{n) = n + 1 — с{ж) + фг) (нотация из работы [ ]), где с(ж) – количество циклов в графе разрывов, а фг) вычисляется из неориентированных компонентов перестановки (см. статью «Расстояние обращений»). После расчета этого показателя тривиальный алгоритм вычисляет последовательность размера d(jr): на очередном шаге алгоритма пробовать каждое возможное обращение p, до тех пор, пока не будет найдено такое, что d(ж ■ p) = сфг) - 1. Такое обращение называется безопасным. Этот подход требует O(n) вычислений для каждого возможного обращения (они занимают не более (n + 1)(n + 2)/2 = O(n2)); в результате итераций для поиска последовательности получаем алгоритм со сложностью O(n4).
Вспомним, что существует линейный алгоритм для вычисления расстояния обращений по формуле <math>d(\pi) = n + 1 - c(\pi) + t(\pi)</math> (нотация из работы [4]), где <math>c(\pi)</math> – количество циклов в графе разрывов, а <math>t(\pi)</math> вычисляется из неориентированных компонентов перестановки, см. статью «Расстояние обращений»). После расчета этого показателя тривиальный алгоритм вычисляет последовательность размера <math>d(\pi)</math>: на очередном шаге алгоритма пробовать каждое возможное обращение <math>\rho</math>, до тех пор, пока не будет найдено такое, что <math>d(\pi \cdot \rho) = d(\pi) - 1</math>. Такое обращение называется ''безопасным''. Этот подход требует O(n) вычислений для каждого возможного обращения (которых может быть не более не более <math>(n + 1)(n + 2)/2 = O(n^2))</math>; в результате итераций для поиска последовательности получаем алгоритм со сложностью <math>O(n^4)</math>.




Строка 25: Строка 25:
'''Сценарий обращений'''
'''Сценарий обращений'''


Все опубликованные решения для вычисления последовательности сортировок делятся на две части, следуя разбиению формулы расстояния на два параметра: первый тип решений вычисляет последовательность обращений таким образом, что полученная перестановка не имеет неориентированных компонентов; второй тип сортирует все ориентированные компоненты.
Все опубликованные решения для вычисления последовательности сортировок делятся на две части, следуя разбиению формулы расстояния на два параметра: первая часть решений вычисляет последовательность обращений таким образом, что полученная перестановка не имеет неориентированных компонентов; вторая часть сортирует все ориентированные компоненты.




Лучшее решение для первой части предложили Каплан, Шамир и Тарьян [ ]; их алгоритм выполняется за линейное время при сочетании с линейным алгоритмом вычисления расстояния [2], он основан на ранних находках Ханненхалли и Певзнера [ ].
Лучшее решение для первой части предложили Каплан, Шамир и Тарьян [10]; их алгоритм выполняется за линейное время при сочетании с линейным алгоритмом вычисления расстояния [2], он основан на ранних находках Ханненхалли и Певзнера [9].




Вторая часть представляет собой «узкое место» всей процедуры. На этот момент неориентированных компонентов уже не осталось, расстояние составляет d(jr) = n + 1 — с(ж), так что безопасным обращением будет являться такое, которое увеличивает с(ж) и не создает неориентированных компонентов (это увеличило бы фг)).
Вторая часть представляет собой «узкое место» всей процедуры. На этот момент, если неориентированных компонентов уже не осталось, расстояние составляет <math>d(\pi) = n + 1 - c(\pi)</math>, так что безопасным обращением будет являться такое, которое увеличивает <math>c(\pi)</math> и не создает неориентированных компонентов (это увеличило бы <math>t(\pi)</math>).
Обращение, увеличивающее фг), называется ориентированным. Найти ориентированное обращение несложно: его определяют любые два последовательных числа в перестановке, имеющих разные знаки. Гораздо сложнее убедиться в том, что это действие не увеличивает число неориентированных компонентов.




Квадратичные алгоритмы, разработанные, с одной стороны, Берманом и Ханненхалли [ ], а с другой – Капланом, Шамиром и Тарьяном [10], основаны на распознавании безопасных обращений за линейное время. На данный момент не известно улучшенных алгоритмов распознавания безопасных обращений, и представляется, что нижняя граница уже была достигнута, о чем свидетельствуют Озери-Флато и Шамир в работе [14], в которой они сообщили, что «главный вопрос в исследованиях перестановок геномов заключается в том, можно ли получить субквадратичный алгоритм для сортировки при помощи обращений». Этот алгоритм был получен Танье и Сагот [17], которые доказали, что распознавание безопасного обращения на каждом этапе не является необходимым; требуется только распознавание ориентированные обращений.
Обращение, увеличивающее <math>t(\pi)</math>, называется ''ориентированным''. Найти ориентированное обращение несложно: его определяют любые два последовательных числа в перестановке, имеющих разные знаки. Гораздо сложнее убедиться в том, что оно не увеличивает число неориентированных компонентов.




Алгоритм основан на следующей теореме, приведенной в работе [ ]. Последовательность ориентированных обращений Pi,.: ; , k называется максимальной, если не существует ориентированного обращения в ж • pi • • • k. В частности, последовательность сортировки является максимальной, в то же время обратное неверно.
Квадратичные алгоритмы, разработанные, с одной стороны, Берманом и Ханненхалли [5], а с другой – Капланом, Шамиром и Тарьяном [10], основаны на распознавании безопасных обращений за линейное время. На данный момент не известно улучшенных алгоритмов распознавания безопасных обращений, и представляется, что нижняя граница уже была достигнута, что было замечено Озери-Флато и Шамир в работе [14], в которой они сообщили, что «главный вопрос в исследованиях перестановок геномов заключается в том, можно ли получить субквадратичный алгоритм для сортировки при помощи обращений». Этот алгоритм был получен Танье и Сагот [17], которые доказали, что распознавание безопасного обращения на каждом этапе не является необходимым; требуется только распознавание ориентированных обращений.




Теорема 1. Если последовательность S является максимальной, но не является последовательностью сортировки ориентированных обращений для перестановки, то существует непустая последовательность S0 ориентированных обращений, такая, что S может быть разбита на две части S = S1; S2, и S1; S0; S2 является последовательностью ориентированных обращений.
Алгоритм основан на следующей теореме, приведенной в работе [18]. Последовательность ориентированных обращений <math>\rho_1, ..., \rho_k</math> называется ''максимальной'', если не существует ориентированного обращения в <math>\pi \cdot \rho_1 \cdot \cdot \cdot \rho_k</math>. В частности, сортирующая последовательность является максимальной, в то же время обратное неверно.




Это позволяет строить последовательность ориентированных обращений вместо безопасных обращений и увеличивать их размер за счет добавления обращений внутрь последовательности, а не в ее конец, получая последовательность сортировки.
'''Теорема 1. Если последовательность S является максимальной, но не является сортирующей последовательностью ориентированных обращений для перестановки, то существует непустая последовательность S' ориентированных обращений, такая, что S может быть разбита на две части <math>S = S_1, S_2</math>, и <math>S_1, S', S_2</math> является последовательностью ориентированных обращений.'''




Этот алгоритм, с классической структурой данных для представления перестановок (например, в виде массива), также имеет сложность O(n2), поскольку на каждом этапе он должен провести проверку на наличие ориентированного обращения и применить его к перестановке.
Это позволяет строить последовательности ориентированных обращений вместо безопасных обращений и увеличивать их размер за счет добавления обращений внутрь последовательности, а не в ее конец, получая в итоге сортирующую последовательность.




Небольшая модификация структуры данных, предложенная Капланом и Вербином [ ], позволяет выбирать и применять ориентированное обращение за время O(n log n); с ее помощью алгоритм Танье-Сагот достигает временной сложности O(n3/2plog n).
Этот алгоритм, с классической структурой данных для представления перестановок (например, в виде массива), также имеет сложность <math>O(n^2)</math>, поскольку на каждом этапе он должен провести проверку на наличие ориентированного обращения и применить его к перестановке.




Недавно Хан [8] предложил еще одну структуру данных, позволяющую выбирать и применять ориентированное обращение за время O(pn); аналогичная небольшая модификация, вероятно, поможет снизить сложность алгоритма в целом до O(n3/2).
Небольшая модификация структуры данных, предложенная Капланом и Вербином [11], позволяет выбирать и применять ориентированное обращение за время <math>O(\sqrt{n \; log \; n})</math>; с ее помощью алгоритм Танье-Сагот достигает временной сложности <math>O(n^{3/2} \sqrt{log \; n})</math>.




'''Пространство оптимальных решений'''
Недавно Хан [8] предложил еще одну структуру данных, позволяющую выбирать и применять ориентированное обращение за время <math>O(\sqrt{n})</math>; аналогичная небольшая модификация, вероятно, поможет снизить сложность алгоритма в целом до <math>O(n^{3/2})</math>.


Почти все исследования последовательностей сортировки для обращений были ориентированы на выдачу строго одной последовательности, хотя было замечено, что нередко этих последовательностей оказывается много (даже для n < 10 их может быть несколько миллионов). Лишь несколько исследований попытались восполнить этот пробел.


'''Пространство всех оптимальных решений'''


Алгоритм перечисления всех безопасных обращений на одном этапе был предложен и реализован Сипелем [16]. Структуру пространства оптимальных решений открыли Шаве и др. [ ]; алгоритмические подходы к этой структуре исследовались в работе [6].
Почти все исследования последовательностей сортировки для обращений были ориентированы на выдачу строго одной последовательности, хотя было замечено, что нередко этих последовательностей оказывается много (даже для <math>n \le 10</math> их может быть несколько миллионов). Лишь несколько исследований попытались восполнить этот пробел.
 
 
Алгоритм перечисления всех безопасных обращений на одном этапе был предложен и реализован Сипелем [16]. Структуру пространства оптимальных решений открыли Шаве и др. [3]; алгоритмические подходы к этой структуре исследовались в работе [6].


== Применение ==
== Применение ==
Основной мотивацией и основной областью применения для этих исследований является вычислительная биология. Перестановки со знаками оказались адекватным способом моделирования относительного положения и ориентации гомологичных участков ДНК двух особей. Обобщение этой задачи до мультихромосомных моделей было разработано и применено для геномов млекопитающих [15], свидетельствуя в пользу эволюционной модели, в которой обращения встречаются не случайным образом.
Аджана и др. [1] применили случайные исследования в пространстве решений для проверки гипотезы, заключавшейся в том, что у бактерий обращения встречаются главным образом вблизи точек начала или окончания репликации.
Обобщения этого подхода для сравнения более чем двух геномов широко рассматривались в литературе и применялись для реконструкции эволюционных событий и организации геномов общих предков биологических видов, а также для вывода ортологичных генов на основе их позиций; они основаны на эвристических принципах, базирующихся на теории сортировки перестановок со знаками при помощи обращений [12, 13].
== Открытые вопросы ==
• Уменьшение сложности ниже значения <math>O(n^{3/2})</math>. Этого можно добиться за счет применения более рациональной структуры данных или изменения принципа работы алгоритма, в силу чего отпадет необходимость применения на каждом этапе обращения сортировки для получения возможности вычисления следующих.
• Эффективное представление и перечисление всего множества решений (определенные шаги в этом направлении были сделаны в работах [3, 6]).
• Поиск среди всех решений таких, которые удовлетворяли бы некоторым биологическим ограничениям – таким как сохранение некоторой общей группы генов или приоритетность небольших инверсий (некоторые достижения представлены в работе [7]).
== Экспериментальные результаты ==
Алгоритм Танье, Бержерон и Сагот [18] был реализован в его квадратичной версии (без конкретной структуры данных, что, вероятно, имеет смысл только для перестановок очень большого размера) Дикманном (http://biomserv.univ-lyon1.fr/~tannier/PSbR/), однако не сообщалось ни о реализации структур данных, ни об экспериментальных данных по сложности.
== Ссылки на код ==
• http://www.cse.ucsd.edu/groups/bioinformatics/GRIMM/
Теслер из группы Певзнера выложил в Интернет реализацию мультихромосомного обобщения алгоритма Каплана, Шамира и Тарьяна [10], названную им GRIMM, что означает «Genome Rearrangements In Man and Mouse» (Перестройка генома человека и мыши).
• http://www.cs.unm.edu/~moret/GRAPPA/
Название GRAPPA расшифровывается как «Genome Rearrangements Analysis under Parsimony and other Phylogenetic Algorithms» (Анализ перестройки генома при помощи подхода на базе максимальной экономичности и других филогенетических алгоритмов). Алгоритм включает вычисление расстояний и способен находить все безопасные обращения за один шаг. Он был разработан группой Морета.
• http://www.math.tau.ac.il/~rshamir/GR/
Апплет, написанный Мантином, реализует алгоритм Каплана, Шамира и Тарьяна [10].
• http://biomserv.univ-lyon1.fr/~tannier/PSbR/
Созданная Дикманном программа выполняет поиск сценария обращений с дополнительными ограничениями для перестановок со знаками, реализуя алгоритм Танье и Сагот [17].
• http://www.geocities.com/mdvbraga/baobabLuna.html
Программа, разработанная Марилией Брагой для обработки перестановок и, в частности, для сортировки перестановок со знаками при помощи обращений, а также для выдачи сжатого представления всех оптимальных последовательностей перестановок, является реализацией алгоритма из работы [6].
== См. также ==
[[Сортировка перестановок со знаками при помощи обращений (расстояние обращения)]]
== Литература ==
1. Ajana, Y., Lefebvre, J.-F.,Tillier, E., El-Mabrouk, N.: Exploring the Set of All Minimal Sequences of Reversals - An Application to Test the Replication-Directed Reversal Hypothesis, Proceedings of the Second Workshop on Algorithms in Bioinformatics. Lecture Notes in Computer Science, vol. 2452, pp. 300-315.Springer, Berlin (2002)
2. Bader, D.A., Moret, B.M.E., Yan, M.: A Linear-Time Algorithm for Computing Inversion Distance between Signed Permutations with an Experimental Study. J. Comput. Biol. 8(5), 483-491 (2001)
3. Bergeron, A., Chauve, C., Hartman, T., St-Onge, K.: On the properties of sequences of reversals that sort a signed permutation. Proceedings of JOBIM'02,99-108 (2002)
4. Bergeron, A., Mixtacki, J., Stoye, J.:The inversion distance problem. In: Gascuel, O. (ed.) Mathematics of evolution and phylogeny. Oxford University Press, USA (2005)
5. Berman, P., Hannenhalli, S.: Fast Sorting by Reversal, proceedings of CPM '96. Lecture notes in computer science 1075,168-185(1996)
6. Braga, M.D.V., Sagot, M.F., Scornavacca, C., Tannier, E.: The Solution Space of Sorting by Reversals. In: Proceedings of IS-BRA'07. Lect. Notes Comp. Sci. 4463,293-304 (2007)
7. Diekmann, Y., Sagot, M.F., Tannier, E.: Evolution under Reversals: Parsimony and Conversation of Common Intervals. IEEE/ACMTransactions in Computational Biology and Bioinformatics, 4, 301-309,1075 (2007)
8. Han, Y.: Improving the Efficiency of Sorting by Reversals, Proceedings of The 2006 International Conference on Bioinformatics and Computational Biology. Las Vegas, Nevada, USA (2006)
9. Hannenhalli, S., Pevzner, P.: Transforming cabbage into turnip (polynomial algorithm for sorting signed permutations by reversals). J. ACM 46,1 -27 (1999)
10. Kaplan, H., Shamir, R., Tarjan, R.E.: Faster and simpler algorithm for sorting signed permutations by reversals. SIAM J. Comput. 29,880-892(1999)
11. Kaplan, H., Verbin, E.: Efficient data structures and a new randomized approach for sorting signed permutations by reversals. In: Proceedings of CPM'03. Lecture Notes in Computer Science 2676,170-185
12. Moret, B.M.E.,Tang, J.,Warnow,T.: Reconstructing phylogenies from gene-content and gene-order data. In: Gascuel, O. (ed.) Mathematics of Evolution and Phylogeny. pp. 321-352, Oxford Univ. Press, USA (2005)
13. Murphy, W., et al.: Dynamics of Mammalian Chromosome Evolution Inferred from Multispecies Comparative Maps. Science 309,613-617(2005)
14. Ozery-Flato, M., Shamir, R.: Two notes on genome rearrangement. J. Bioinf. Comput. Biol. 1, 71-94 (2003)
15. Pevzner, P., Tesler, G.: Human and mouse genomic sequences reveal extensive breakpoint reuse in mammalian evolution. PNAS 100,7672-7677 (2003)
16. Siepel, A.C.: An algorithm to enumerate sorting reversals for signed permutations. J. Comput. Biol. 10, 575-597 (2003)
17. Tannier, E., Sagot, M.-F.: Sorting by reversals in subquadratic time. In: Proceedings of CPM'04. Lecture Notes Comput. Sci. 3109,1-13
18. Tannier, E., Bergeron, A., Sagot, M.-F.: Advances on Sorting by Reversals. Discret.
4430

правок