2.7 KiB
alias
| alias | ||
|---|---|---|
|
up::automate link:: wikipedia #s/informatique
Motivation
On veut reconnaitre un langage sur \Sigma
Ce langage peut être relativement expressif, typiquement autant qu'un langage de programmation (voir grammaire-algebrique)
Définition
Même base qu'un automate-fini, mais on rajoute une string-stack
Plus précisémment:
A=(Q, \Sigma, \Gamma, q_0, F, \gamma_0, \delta)
Avec
Qles états de l'automate\Sigmal'alphabet d'entrée\Gammal'alphabet de pileq_0l'état initialeFl'ensemble des états finaux\gamma_0le symbole de pile initial\delta: Q\times (\Sigma \cup \varepsilon) \times \Gamma \to Q \times \Gamma^*la fonction de transition
[!NOTE] Pile Il faut se rappeler que par convention, on empile et dépile par la gauche
Transition
Une configuration pour l'automate est un triplet (q, m, \alpha) avec
ql'état courantmle mot qui reste à lire\alphale mot qui constitue la pile
On définit la relation binaire \vdash , c'est elle qui spécifie le fonctionnement de l'automate
\vdash est vérifiée pour les couples de configuration sous une des deux formes:
(q, aM, zL) \vdash (q', M, VL)(q, M, zL) \vdash (q', M, VL)
Avec
q, q' \in QM \in \Sigma^*eta \in \SigmaL \in \Gamma^*,V \in \Gamma^*,z \in \Gamma(q', V) \in \delta(q, a, z)
(on a mis les mots en majuscule pour les distinguer des lettres)
Lors de la transition 1):
- on a lu la lettre
a - on a changé d'état
q \to q' - on a dépilé
zet empilé le motV - le tout était autorisé par
\delta
Lors de la transition 2), on a fait la même chose sans lire aucune lettre: on parle de transition \epsilon ou transition instantanée
On dit qu'une configuration découle d'une autre quand il existe une suite de transitions qui passe d'une configuration à l'autre
On note c_1 \vdash^* c_2
[!WARNING] Unicité Pour une configuration donnée, il peut souvent en découler plusieurs (
\deltapeut donner plusieurs possibilités. Il faut voir l'ensemble des transitions possibles comme un arbre de racine(q_0, u, \gamma_0)On parle d'automate déterministe quand cet arbre est toujours dégénéré (linéaire)
Reconaissance
On a deux modes de reconnaissance:
- par pile vide
- par état final
Pile vide
le mot u est reconnu quand
(q_0, u, \gamma_0) \vdash (q', \epsilon, \epsilon)
État final
le mot u est reconnu quand
Quand (q_0, u, \gamma_0) \vdash (q', \epsilon, \gamma) avec q \in F
Automate à deux piles
Si on lui donne deux piles, un automate devient capable de simuler une machine de turing