2.7 KiB
alias
alias | ||
---|---|---|
|
up::automate link:: wikipedia #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
Q
les états de l'automate\Sigma
l'alphabet d'entrée\Gamma
l'alphabet de pileq_0
l'état initialeF
l'ensemble des états finaux\gamma_0
le 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
q
l'état courantm
le mot qui reste à lire\alpha
le 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 Q
M \in \Sigma^*
eta \in \Sigma
L \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é
z
et 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 (
\delta
peut 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-turing