Simulateur de machine à états finis (FSM) en ligne
Simulez une machine à états finis déterministe : entrez règles, état initial et chaîne pour obtenir le chemin et l'état final.
Commencer
Fonctionnalités et exemple concret
Ce simulateur traite une table de transitions déterministe. Chaque règle doit être unique : un même couple (état, caractère) ne peut apparaître qu'une seule fois. Les noms d'états ne doivent pas être vides et ne peuvent pas dépasser 50 unités de code UTF-16. Chaque symbole d'entrée est un point de code Unicode unique (par exemple un caractère). La chaîne d'entrée est limitée à 10 000 unités de code UTF-16.
Exemple vérifié
Avec les règles :
q0,0,q0 q0,1,q1 q1,0,q0 q1,1,q1
l'état initial q0 et la chaîne 1011, le chemin obtenu est :
q0 -> q1 -> q0 -> q1 -> q1
L'état final est q1.
Limites importantes
- Le nombre de règles doit être compris entre 1 et 200.
- Les virgules sont structurelles : elles ne peuvent pas être incluses dans les noms d'états ou les symboles.
- Le simulateur ne gère pas les transitions epsilon, le non-déterminisme, les états acceptants, la conversion en expression régulière, la minimisation ou le diagramme.
- Il ne décide pas si une chaîne est acceptée ; il affiche seulement le chemin et l'état final.
Questions fréquentes
Que se passe-t-il si une transition est manquante ?
Le traitement s'arrête immédiatement au caractère où la transition est absente et un message d'erreur est affiché. Par exemple, si la règle pour (q1,0) manque et que l'entrée contient un 0 après avoir atteint q1, la simulation s'interrompt.
Puis-je utiliser des espaces dans les noms d'états ?
Oui, les espaces sont autorisés dans les noms d'états, mais ils doivent être non vides et ne pas dépasser 50 unités de code UTF-16. Les virgules ne sont pas autorisées.
Comment sont traités les caractères Unicode ?
Chaque symbole d'entrée est un point de code Unicode unique. La chaîne est traitée point de code par point de code. Les caractères hors BMP, comme 😀 (U+1F600), sont acceptés comme un seul symbole ; ils comptent pour deux unités UTF-16 dans la limite de longueur.
Liste de contrôle
- Vérifiez que chaque ligne de règle contient exactement trois champs séparés par des virgules.
- Assurez-vous qu'il n'y a pas de doublons de couples (état, symbole).
- Testez avec une chaîne courte avant d'utiliser une entrée longue.
- Comparez chaque transition avec la table pour valider le résultat.
Les noms d’états et l’état initial sont limités à 50 unités de code UTF-16, l’entrée à 10000. Les espaces aux extrémités des champs de règle sont retirés ; un symbole composé uniquement d’espacement est donc impossible. Recopiez exactement l’état initial, sans espaces autour, en respectant la casse. Une entrée vide conserve l’état initial. Une transition manquante produit une erreur générale, sans position ni chemin partiel.
Le traitement s’effectue localement dans votre navigateur.