Loading AI tools
type d'automate théorique De Wikipédia, l'encyclopédie libre
En théorie des automates, un automate à piles emboîtées est un automate fini qui utilise comme mémoire auxiliaire une pile dont les éléments peuvent eux-mêmes être des piles[1]. Mais contrairement à un automate à pile usuel, un automate à piles emboîtées peut se déplacer en avant et en arrière sur la « pile », qui est donc plutôt structurée en liste ; de plus, l'automate peut insérer une nouvelle pile, opérer sur elle, la détruire, et continuer à travailler sur l'ancienne pile. Ce mode opératoire peut être emboîté récursivement à une profondeur arbitraire ; toutefois, l'automate manipule toujours la pile la plus interne.
Un automate à piles emboîtées est capable de reconnaître un langage indexé, et de fait les langages indexés sont exactement les langages reconnus par les automates à piles emboîtées non déterministes[2],[1],[3].
Les automates à piles emboîtées diffèrent des automates à piles embarquées qui sont moins puissants puisque pour ces derniers, la mémoire auxiliaire, toujours organisée récursivement, n'est accessible que par le haut de pile. Les automates à pile embarquée reconnaissent exactement les langages engendrés par les grammaires d'arbres adjoints[4].
Un automate à piles emboîtées lit ses données sur une bande d'entrée ; le mot d'entrée n'est pas modifiable, il est délimité par deux marqueurs, et dans le cas bidirectionnel, la tête de lecture peut se déplacer sur la bande d'entrée en avant et en arrière ; pour des automates emboîtés unidirectionnels, la tête de lecture du mot d'entrée ne peut pas revenir en arrière.
L'automate est composé d'ensembles
La mémoire auxiliaire, appelée pile (« stack ») est en fait une structure linéaire où la tête de pile peut se déplacer dans les deux sens. La pile est un codage d'une structure arborescente : ses éléments sont soit des symboles de l'alphabet de pile , soit des piles elles-mêmes, représentées linéairement à l'aide de marqueurs de début et fin de pile. Les sous-piles peuvent elles-mêmes contenir des piles. Une pile peut se présenter typiquement sous la forme linéaire suivante :
Si, pour plus de lisibilité, on remplace les marqueurs , par des parenthèses ouvrante et fermante et qu'on omet marqueur , on obtient l'écriture :
La pile contient les éléments de l’alphabet de pile, puis une sous-pile réduite à l'élément suivie d'une deuxième sous-pile composée de et enfin la lettre . La tête de lecture-écriture est positionnée en début de la sous-pile , ce qui est représenté par un soulignement.
Voici une séquence d'opérations et leur effet sur la pile. À l'étape 2, une pile est créée à l'intérieur de la sous-pile ; cette sous-sous-pile est . Elle est ensuite progressivement vidée, puis détruite à l’étape 5. À l'étape 8, la tête d'écriture sur la pile se retrouve au niveau du début et une insertion simple ajoute les symboles .
n° | action | pile |
---|---|---|
1: | ||
2: | création de sous-pile | |
3: | pop | |
4: | pop | |
5: | destruction de sous-pile | |
6: | descente | |
7: | montée | |
8: | montée | |
9: | push |
La description formelle des règles de transition est complexe, puisqu'elle doit tenir compte des symboles de pile et de la structure arborescente de la pile.
On peut définir des automates bidirectionnels à piles emboîtées, et on peut montrer que cela n'augmente pas la puissance de calcul par rapport aux automates à pile bidirectionnels ordinaires[5].
Robert Gilman et Michael Shapiro ont utilisé des automates à piles emboîtées pour résoudre le problème du motdans certains groupes certain groups[6].
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.