Skip to content

KyroFrCode/Automate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Automate

Manipulation d'automates finis en Python : lecture d'automates décrits dans un fichier texte, test d'acceptation de mots, opérations classiques (déterminisation, complétion, etc.) et visualisation graphique via Graphviz.

Python Graphviz License


📌 Description

Ce projet implémente une bibliothèque de manipulation d'automates finis. Un automate est décrit dans un fichier texte (états, états initiaux, états finaux et transitions), puis chargé en mémoire pour être analysé, transformé et affiché sous forme de graphe.

Le rendu graphique s'appuie sur l'outil dot de Graphviz : la méthode show() génère un fichier .dot intermédiaire puis le convertit en PDF.


🗂️ Structure du projet

Fichier Rôle
automate.py Classe Automate : opérations de haut niveau (acceptation d'un mot, succession d'états, etc.)
automateBase.py Classe AutomateBase : structure de base, génération du format .dot et méthode show()
state.py Classe State (un état de l'automate)
transition.py Classe Transition (une transition étiquetée entre deux états)
myparser.py Parser des fichiers de description d'automates
sp.py Bibliothèque interne de combinateurs de parsing utilisée par myparser.py
test.py Script d'exemple / point d'entrée modifiable
exempleAutomate.txt Exemple de fichier de description d'automate

✅ Prérequis

  • Python 3.x
  • Graphviz (fournit la commande dot, indispensable pour la visualisation)

Aucune dépendance pip externe n'est requise : le projet n'utilise que la bibliothèque standard de Python et ses propres modules.

Installer Graphviz

Windows

  1. Télécharger l'installeur sur graphviz.org/download.
  2. Pendant l'installation, cocher l'option « Add Graphviz to the system PATH ».
  3. Vérifier : dot -V

Linux (Debian/Ubuntu)

sudo apt update && sudo apt install graphviz

macOS (Homebrew)

brew install graphviz

Vérifier l'installation :

dot -V

🚀 Installation

# 1. Cloner le dépôt
git clone https://github.com/KyroFrCode/Automate.git

# 2. Se placer dans le dossier
cd Automate

Il n'y a rien d'autre à installer côté Python : les modules sont autonomes.


▶️ Exécution

Lancer le script d'exemple :

python test.py

Sous certains systèmes, utilisez python3 au lieu de python.

Le script charge l'automate décrit dans exempleAutomate.txt, puis génère sa représentation graphique (exempleAutomate.pdf).

Utilisation dans votre propre code

from automate import Automate

# Charger un automate depuis un fichier
a = Automate.creationAutomate("exempleAutomate.txt")

# Tester si un mot est accepté
if Automate.accepte(a, "aaab"):
    print("Le mot est accepté")
else:
    print("Le mot est refusé")

# Générer la visualisation (produit monAutomate.pdf via Graphviz)
a.show("monAutomate")

📝 Format d'un fichier automate

Un automate se décrit avec quatre sections. Exemple (exempleAutomate.txt) :

#E: 0 1 2 3
#I: 0
#F: 3
#T: (0 a 0)
(0 b 0)
(0 a 1)
(1 a 2)
(2 a 3)
(3 a 3)
(3 b 3)
Balise Signification
#E: Liste des états (identifiants numériques séparés par des espaces)
#I: Liste des états initiaux
#F: Liste des états finaux
#T: Liste des transitions au format (état_source étiquette état_destination)

🛠️ Dépannage

  • dot: command not found / la visualisation ne s'affiche pas → Graphviz n'est pas installé ou pas dans le PATH. Réinstallez-le puis vérifiez avec dot -V.
  • Aucun PDF généré → assurez-vous d'avoir les droits d'écriture dans le dossier courant.

📄 Licence

Ce projet est distribué sous licence MIT.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages