Arbre palindromique
Un arbre palindrome ou arbre palindromique, aussi appelé arbre eertree, est un graphe utilisé pour des algorithmes de combinatoire des mots.
DĂ©couvreur ou inventeur |
Mikhail Rubinchik (d) |
---|---|
Date de découverte | |
ProblÚme lié |
Description
L'arbre palindrome pour un mot de longueur est une structure de donnĂ©e sous forme d'un graphe proche d'un arbre et qui reprĂ©sentent tous les palindromes distincts qui sont facteurs de avec une place additionnelle en [2]. Lorsque est de longueur sur un alphabet de taille et est donnĂ©e on-line, l'arbre peut ĂȘtre construit en temps et place .
Les sommets du graphe représentent des palindromes, les arcs décrivent le passage d'un palindrome au suivant ou à un précédent.
Il y a deux types d'arcs, des arcs directs â qui sont les arcs d'un arbre â et des liens suffixes qui permettent de revenir en arriĂšre.
Les arcs directs sont étiquetés par des symboles de l'alphabet. Il y a un arc direct du sommet vers le sommet étiqueté par la lettre si :
- .
Ainsi, on a dans l'exemple, les arcs
- .
Les liens suffixes sont des arcs qui vont d'un sommet au sommet , oĂč est le plus long suffixe palindrome propre de . Dans l'exemple, les liens suffixes sont tracĂ©s en rouge. On a par exemple :
- .
Deux sommets spéciaux sont ajoutés à la structure :
- le sommet qui est la racine de l'arbre ; les arcs sortant de ce sommet et étiqueté ont pour extrémité le sommet ; on a donc, pour tout symbole figurant dans , l'arc
- .
- Le sommet qui représente le mot vide (qui est un palindrome) ; on a alors
- si est facteur de . Le sommet est le lien suffixe du sommet et de lui-mĂȘme.
La notation curieuse pour ces sommets particuliers est une conséquence de la numérotation des sommets de l'arbre, qui va de 1 jusqu'à un entier qui est aussi le nombre de palindromes figurant dans le mot .
Complexité
On peut montrer[2] que la construction de l'arbre palindromique peur se faire en temps et place . Des variantes ont été données notamment par Mieno, Watanabe et al.[3].
Notes et références
- (en) Mikhail Rubinchik et Arseny M. Shur, « Eertree : An efficient data structure for processing palindromes in strings », Journal europĂ©en de combinatoire, Elsevier, vol. 68,â , p. 249-265 (ISSN 0195-6698 et 1095-9971, DOI 10.1016/J.EJC.2017.07.021, arXiv 1506.04862, lire en ligne)
- Rubinchik et Shur (2018).
- Mieno, Watanabe et Nakashima (2022).
Bibliographie
- Mikhail Rubinchik et Arseny M. Shur, « EERTREE: An efficient data structure for processing palindromes in strings », Lecture Notes in Computer Science, vol. 9538 « Combinatorial Algorithms. IWOCA 2015 »,â , p. 321-333 (DOI 10.1007/978-3-319-29516-9_27, arXiv 1506.04862)
- Mikhail Rubinchik et Arseny M. Shur, « EERTREE: An efficient data structure for processing palindromes in strings », European Journal of Combinatorics, vol. 68,â , p. 249-265 (DOI 10.1016/j.ejc.2017.07.021, arXiv 1506.04862) â version "journal" de l'article prĂ©cĂ©dent
- Takuya Mieno, Kiichi Watanabe, Yuto Nakashima, Shunsuke Inenaga, HideoBannai et MasayukiTakeda, « Palindromic trees for a sliding window and its applications », Information Processing Letters, vol. 173,â , article no 106174 (DOI 10.1016/j.ipl.2021.106174, lire en ligne )
Lien externe
- « Palindromic tree » ; blog sur adilet.org.
- « Palindromic Tree : Introduction & Implementation » ; sur geeksforgeeks.org.