Skip to content

Latest commit

 

History

History
146 lines (101 loc) · 4.04 KB

File metadata and controls

146 lines (101 loc) · 4.04 KB

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.