Суфіксне дерево — основана на дереві структура даних. Знаходить застосування в алгоритмах на рядках.
Визначення
Суфіксне дерево T для рядка S довжини m це орієнтоване дерево, що має m листів пронумерованих від 1 до m. Кожна вершина, окрім кореня, має щонайменше два відгалуження, кожне ребро марковане непорожнім підрядком з рядка S. Жодна вершина не може мати ребра, маркування яких починається з однакової літери.
Головною особливістю суфіксного дерева є те, що конкатенація маркувань ребер на шляху від кореня до листа i дає суфікс рядка S починаючи з i-ї літери.
Суфіксне дерево існує не для кожного рядка. Якщо суфікс рядка збігається з його префіксом (наприклад, рядок xabxa) то шлях для першого суфікса не зможе бути завершений в листі, в графі з'явиться цикл. Цієї проблеми можна уникнути, якщо до рядка додати літеру, яка в ньому не зустрічається. Зазвичай, цю літеру позначають $
.
Історія
Перший алгоритм побудови суфіксного дерева за лінійний час був запропонований Вайнером в 1973 році. Алгоритм був істотно спрощений МакКрейтом в 1976 році та Укконеном в 1995 році. може будувати дерево по одній літері з швидкодією на рівні найшвидших алгоритмів того часу. Ці алгоритми побудови суфіксних дерев мають лінійний час роботи для скінченного алфавіту, а найгірший час роботи складає в загальному випадку.
Фарах в 1997 році запропонував оптимальний алгоритм побудови суфіксних дерев для всіх алфавітів. Зокрема, це перший алгоритм побудови суфіксного дерева для рядка з алфавітом з цілих чисел в поліноміальному діапазоні. Цей алгоритм служить основою для нових алгоритмів побудови як суфіксних дерев, так і .
Властивості
Оскільки всі внутрішні вершини суфіксного дерева крім кореня мають щонайменше два відгалуження, кількість таких вершин не може перевищувати n − 1; а загальна кількість вершин не перевищує n + (n − 1) + 1 = 2n, із них: n листів, n − 1 внутрішніх вершин окрім кореня, 1 корінь.
Застосування
Суфіксні дерева та суфіксні масиви знаходять широке застосування для розв'язання задач на рядках у прийнятний час. Наприклад, задача з'ясувати, чи входить взірець P до рядка S із побудованим суфіксним деревом може бути розв'язана за час O(|P|), найбільше загальне підстроювання двох рядків, лінеаризація циклічного рядка, завдання про підстроку для бази зразків. Узагальненні суфіксні дерева знаходять застосування при пошуку .
Примітки
Література
- Weiner, P. (1973), Linear pattern matching algorithm, , с. 1—11, doi:10.1109/SWAT.1973.13
- Gusfield, Dan (1999), Algorithms on Strings, Trees and Sequences: Computer Science and Computational Biology, Cambridge University Press, ISBN
- Srinivas Aluru (2005 }). 29. Suffix Trees and Suffix Arrays. У Dinesh P. Mehta, Sartaj Sahni (ред.). Handbook of Data Structures and Applications. Chapman & Hall/CRC. ISBN .
Див. також
Це незавершена стаття про структури даних. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Sufiksne derevo osnovana na derevi struktura danih Znahodit zastosuvannya v algoritmah na ryadkah Sufiksne derevo dlya slova prababa Kozhen pidryadok zavershuyetsya specialnim simvolom Sim shlyahiv vid korenya do listiv pokazani kvadratami vidpovidayut semi sufiksam ViznachennyaSufiksne derevo T dlya ryadka S dovzhini m ce oriyentovane derevo sho maye m listiv pronumerovanih vid 1 do m Kozhna vershina okrim korenya maye shonajmenshe dva vidgaluzhennya kozhne rebro markovane neporozhnim pidryadkom z ryadka S Zhodna vershina ne mozhe mati rebra markuvannya yakih pochinayetsya z odnakovoyi literi Golovnoyu osoblivistyu sufiksnogo dereva ye te sho konkatenaciya markuvan reber na shlyahu vid korenya do lista i daye sufiks ryadka S pochinayuchi z i yi literi Sufiksne derevo isnuye ne dlya kozhnogo ryadka Yaksho sufiks ryadka zbigayetsya z jogo prefiksom napriklad ryadok xabxa to shlyah dlya pershogo sufiksa ne zmozhe buti zavershenij v listi v grafi z yavitsya cikl Ciyeyi problemi mozhna uniknuti yaksho do ryadka dodati literu yaka v nomu ne zustrichayetsya Zazvichaj cyu literu poznachayut IstoriyaPershij algoritm pobudovi sufiksnogo dereva za linijnij chas buv zaproponovanij Vajnerom v 1973 roci Algoritm buv istotno sproshenij MakKrejtom v 1976 roci ta Ukkonenom v 1995 roci mozhe buduvati derevo po odnij literi z shvidkodiyeyu na rivni najshvidshih algoritmiv togo chasu Ci algoritmi pobudovi sufiksnih derev mayut linijnij chas roboti dlya skinchennogo alfavitu a najgirshij chas roboti skladaye O n log n displaystyle O n log n v zagalnomu vipadku Farah v 1997 roci zaproponuvav optimalnij algoritm pobudovi sufiksnih derev dlya vsih alfavitiv Zokrema ce pershij algoritm pobudovi sufiksnogo dereva dlya ryadka z alfavitom z cilih chisel v polinomialnomu diapazoni Cej algoritm sluzhit osnovoyu dlya novih algoritmiv pobudovi yak sufiksnih derev tak i VlastivostiOskilki vsi vnutrishni vershini sufiksnogo dereva krim korenya mayut shonajmenshe dva vidgaluzhennya kilkist takih vershin ne mozhe perevishuvati n 1 a zagalna kilkist vershin ne perevishuye n n 1 1 2n iz nih n listiv n 1 vnutrishnih vershin okrim korenya 1 korin ZastosuvannyaSufiksni dereva ta sufiksni masivi znahodyat shiroke zastosuvannya dlya rozv yazannya zadach na ryadkah u prijnyatnij chas Napriklad zadacha z yasuvati chi vhodit vzirec P do ryadka S iz pobudovanim sufiksnim derevom mozhe buti rozv yazana za chas O P najbilshe zagalne pidstroyuvannya dvoh ryadkiv linearizaciya ciklichnogo ryadka zavdannya pro pidstroku dlya bazi zrazkiv Uzagalnenni sufiksni dereva znahodyat zastosuvannya pri poshuku PrimitkiWeiner 1973 McCreight 1976 Ukkonen 1995 Giegerich ta Kurtz 1997 Farach 1997 Gusfield 1999 LiteraturaWeiner P 1973 Linear pattern matching algorithm s 1 11 doi 10 1109 SWAT 1973 13 Gusfield Dan 1999 Algorithms on Strings Trees and Sequences Computer Science and Computational Biology Cambridge University Press ISBN 0 521 58519 8 Srinivas Aluru 2005 29 Suffix Trees and Suffix Arrays U Dinesh P Mehta Sartaj Sahni red Handbook of Data Structures and Applications Chapman amp Hall CRC ISBN 1 58488 435 5 Div takozhPrefiksne derevo Ce nezavershena stattya pro strukturi danih Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi